Редактирование: КП: Динамика лавины

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 49: Строка 49:
  
 
     ctx.fillStyle="#8888ff";
 
     ctx.fillStyle="#8888ff";
                         
+
                         
    var r = 5;                                 
+
        var vx = 2, vy = 2;                        // скорость шара
 +
        var r = 5;                                // радиус шара
 +
 
 
var grass_height = 5;
 
var grass_height = 5;
 
var mountian_length = 400;
 
var mountian_length = 400;
 +
 
var sin_alpha_1 = 0.5;
 
var sin_alpha_1 = 0.5;
 
var cos_alpha_1 = 0.866;
 
var cos_alpha_1 = 0.866;
 +
 
var sun_r = 50;
 
var sun_r = 50;
var rx1 = 0, ry1 (mountian_length)* sin_alpha_1 / cos_alpha_1 - r;
+
var rx = 0, ry =  mountian_length * sin_alpha_1 / cos_alpha_1 - r;
var rx2 = 40, ry2 =  (mountian_length + rx2 - 4 * r) * sin_alpha_1 / cos_alpha_1;
 
var rx3 = 80, ry3 =  (mountian_length + rx3 - 6 * r) * sin_alpha_1 / cos_alpha_1;
 
 
 
 
var g = 2;
 
var g = 2;
var dt = 0.15;
+
var dt = 0.1;
 
var m = 1;
 
var m = 1;
 
var B = 0.06;
 
var B = 0.06;
 
var B2 = 0.09;
 
var B2 = 0.09;
var vx1 = 2, vy1 = 2;
+
var fy = 0;
var vx2 = 2, vy2 = 2;
+
var fx = 0;
var vx3 = 2, vy3 = 2;
 
var fy1 = 0;
 
var fx1 = 0;
 
var fy2 = 0;
 
var fx2 = 0;
 
var fy3 = 0;
 
var fx3 = 0;
 
 
var mu1 = 0.2;
 
 
var a1 = g * (sin_alpha_1 - mu1 * cos_alpha_1);
 
  
 
     function step() {                           
 
     function step() {                           
Строка 85: Строка 76:
  
 
     function tick() {   
 
     function tick() {   
if (rx1 + r > 0 && rx1 - r < mountian_length && ry1 < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1) * rx1
+
if (rx + r > 0 && rx - r < mountian_length && ry < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1)
+ mountian_length * sin_alpha_1 / cos_alpha_1) {
+
                                                                    * rx + mountian_length * sin_alpha_1 / cos_alpha_1) {
fy1 = m * g - B * vy1;
+
fy = m * g - B * vy;
fx1 = m * g - B * vx1;
+
fx = m * g - B * vx;
vy1 = vy1 + fy1 / m * dt * sin_alpha_1;
+
 
vx1 = vx1 + fx1 / m * dt * cos_alpha_1;
+
vy = vy + fy / m * dt * sin_alpha_1;
ry1 = ry1 + vy1 * dt * sin_alpha_1;
+
vx = vx + fx / m * dt * cos_alpha_1;
rx1 = rx1 + vx1 * dt * cos_alpha_1;  
+
 
+
ry = ry + vy * dt * sin_alpha_1;
 +
rx = rx + vx * dt * cos_alpha_1;
 
}
 
}
if (rx1 - r > mountian_length){
+
if (rx - r > mountian_length){
+
 
fx1 = - B2 * vx1;
+
fx = - B2 * vx;
vx1 = vx1 + fx1 / m * dt;
+
vx = vx + fx / m * dt;
rx1 = rx1 + vx1 * dt;
+
rx = rx + vx * dt;
ry1 = height - grass_height;
 
}
 
if (rx2 + r > 0 && rx2 - r < mountian_length && ry2 < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1) * rx2
 
+ mountian_length * sin_alpha_1 / cos_alpha_1) {
 
fy2 = m * g - B * vy2;
 
fx2 = m * g - B * vx2;
 
vy2 = vy2 + fy2 / m * dt * sin_alpha_1;
 
vx2 = vx2 + fx2 / m * dt * cos_alpha_1;
 
ry2 = ry2 + vy2 * dt * sin_alpha_1;
 
rx2 = rx2 + vx2 * dt * cos_alpha_1;
 
}
 
if (rx2 - r > mountian_length){
 
ry2 = height - grass_height;
 
fx2 = - B2 * vx2;
 
vx2 = vx2 + fx2 / m * dt;
 
rx2 = rx2 + vx2 * dt;
 
}
 
if (rx3 + r > 0 && rx3 - r < mountian_length && ry3 < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1) * rx3
 
+ mountian_length * sin_alpha_1 / cos_alpha_1) {
 
fy3 = m * g - B * vy3;
 
fx3 = m * g - B * vx3;
 
vy3 = vy3 + fy3 / m * dt * sin_alpha_1;
 
vx3 = vx3 + fx3 / m * dt * cos_alpha_1;
 
ry3 = ry3 + vy3 * dt * sin_alpha_1;
 
rx3 = rx3 + vx3 * dt * cos_alpha_1;
 
}
 
if (rx3 - r > mountian_length){
 
ry3 = height - grass_height;
 
fx3 = - B2 * vx3;
 
vx3 = vx3 + fx3 / m * dt;
 
rx3 = rx3 + vx3 * dt;
 
 
}
 
}
 
          
 
          
Строка 158: Строка 119:
 
 
 
ctx.fillStyle="#fff200"; //sun
 
ctx.fillStyle="#fff200"; //sun
        ctx.beginPath();
+
                ctx.beginPath();
        ctx.arc(width, 0, sun_r, 0, 2 * Math.PI);
+
                ctx.arc(width, 0, sun_r, 0, 2 * Math.PI);
        ctx.fill();
+
                ctx.fill();
 
 
ctx.fillStyle="#ff0000"; //snow1
+
ctx.fillStyle="#e6e5d1"; //snow
 
ctx.beginPath();
 
ctx.beginPath();
        ctx.arc(rx1, ry1, r, 0, 2 * Math.PI);
+
                ctx.arc(rx, ry, r, 0, 2 * Math.PI);
        ctx.fill();
+
                ctx.fill();
 
ctx.fillStyle="#0900ff"; //snow2
 
ctx.beginPath();
 
        ctx.arc(rx2, ry2, r, 0, 2 * Math.PI);
 
        ctx.fill();
 
 
ctx.fillStyle="#e6e5d1"; //snow3
 
ctx.beginPath();
 
        ctx.arc(rx3, ry3, r, 0, 2 * Math.PI);
 
        ctx.fill();
 
 
         
 
         
 
 
Строка 183: Строка 134:
  
 
}
 
}
 +
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 201: Строка 153:
  
 
== Обсуждение результатов и выводы ==
 
== Обсуждение результатов и выводы ==
В ходе работы над курсовым проектом была разработана простейшая модель, анализирующая процессы, происходящие при сходе лавины. Было установлено, что при увеличении коэффициента пропорциональности между силой <math> F </math>, действующей на частицу, и скоростью частицы <math> v </math>  уменьшается координата конечного положения частицы. При увеличении начальной скорости <math> v </math> увеличивается координата конечного положения частицы.
+
В ходе работы над курсовым проектом была разработана простейшая модель, визуализирующая процесс схода лавины. Было установлено, что при увеличении коэффициента пропорциональности между силой <math> F </math>, действующей на частицу и скоростью частицы <math> v </math>  уменьшается координата конечного положения частицы. При увеличении начальной скорости <math> v </math> увеличивается координата конечного положения частицы.
  
Из программы видно, что частица, находящаяся выше, "обогнала" частицу, находящуюся ниже. Такое изменение в положении частиц произошло из-за того, что частицы, скатывающаяся с большей высоты, приобретают при спуске большую скорость.Также видно, что в конечный момент времени расстояние между частицами уменьшается по сравнению с расстоянием между начальными положениями, т.е. происходит "кучкование" частиц. Следовательно, можно сделать вывод о том, что линейные размеры района, охваченного снежной массой после схода лавины, значительно меньше линейных размеров снежной массы, из которой образуется лавина.   
+
Из визуализации программы видно, что после схода расстояние между частицами уменьшается по сравнению с расстоянием между начальными положениями частиц примерно в <math> 8 </math> раз, т.е. происходит "кучкование" частиц. Следовательно можно сделать вывод о том, что линейные размеры района, охваченного снежной массой, значительно меньше линейных размеров снежной массы, из которой образуется лавина.   
  
 
Дальнейшие предложения по проекту:
 
Дальнейшие предложения по проекту:
* Увеличить число частиц, дав возможность пользователю выбирать количество с помощью движка;
+
* Увеличить число частиц, дав возможность пользователю выбирать количество с помощью движка
* Дать возможность пользователю менять коэффициент пропорциональности с помощью движка;
+
* Дать возможность пользователю менять коэффициент пропорциональности с помощью движка
* Добавить движок, позволяющий менять угол наклона горы;
+
* Добавить движок, позволяющий менять угол наклона горы
  
  
Строка 214: Строка 166:
 
[[Медиа:avalanche.doc|Скачать отчет]]
 
[[Медиа:avalanche.doc|Скачать отчет]]
 
<br>
 
<br>
[[Медиа:ДИНАМИКА_ЛАВИНЫ.pptx|Скачать презентацию]]
+
Скачать презентацию:
<br>
 
  
 
== Ссылки по теме ==
 
== Ссылки по теме ==
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)