КП: Динамика лавины — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Обсуждение результатов и выводы)
(Решение)
Строка 25: Строка 25:
  
 
== Решение ==
 
== Решение ==
Моделирование схода лавины происходит в двумерном пространстве. В качестве простейшей модели горы был взят прямоугольный треугольник с углом наклона <math> 30^\circ </math>, а в качестве снежной массы - элементs-кругb радиуса <math>r</math>,имитирующиt отдельные частицы снежной массы.
+
Моделирование схода лавины происходит в двумерном пространстве. В качестве простейшей модели горы был взят прямоугольный треугольник с углом наклона <math> 30^\circ </math>, а в качестве снежной массы - элементs-круги радиуса <math>r</math>, имитирующие отдельные частицы снежной массы.
  
 
Целесообразно разделить движение частицы на 2 части: движение по наклонной плоскости и движение по горизонтальной поверхности.
 
Целесообразно разделить движение частицы на 2 части: движение по наклонной плоскости и движение по горизонтальной поверхности.
Строка 32: Строка 32:
  
 
После того, как шары скатились со склона, они продолжают движение по горизонтальной поверхности, замедляясь за счет силы трения <math> F_{тр2}</math>. Сила, действующая на частицу, считается аналогично <math> F=-B_2v</math>, однако взят другой коэффициент пропорциональности и составляющие, отвечающие за движение по вертикали взаимоуничтожают друг друга, за счёт чего происходит лишь торможение по горизонтальной оси.
 
После того, как шары скатились со склона, они продолжают движение по горизонтальной поверхности, замедляясь за счет силы трения <math> F_{тр2}</math>. Сила, действующая на частицу, считается аналогично <math> F=-B_2v</math>, однако взят другой коэффициент пропорциональности и составляющие, отвечающие за движение по вертикали взаимоуничтожают друг друга, за счёт чего происходит лишь торможение по горизонтальной оси.
 +
 +
Изначально частицы расположены на расстоянии, превышающим радиус частицы в 8 раз.
  
 
== Визуализация задачи==
 
== Визуализация задачи==

Версия 15:16, 11 июня 2015

А.М. Кривцов > Теоретическая механика > Курсовые проекты ТМ 2015 > Динамика лавины
Сход лавины

Курсовой проект по Теоретической механике

Исполнитель: Сизова Екатерина

Группа: 09 (23604)

Семестр: весна 2015

Аннотация проекта

На данный момент лавины являются одним из самых опасных видов природных катастроф. Под снежными лавинами погибает большое количество горнолыжников, сноубордистов, горных туристов, а также происходит разрушение горных деревень, дорожной инфраструктуры и наносится экологический вред лесам. Целью данной работы является разработка модели лавины, условий, при которых происходит ее сход(отрыв), а также расчет последствий, к которым может привести сход лавины.


Формулировка задачи

  • разработка модели лавины, как набор шариков, обладающих определенной массой и находящихся в неустойчивом состоянии
  • расчет параметров отрыва(схода лавины), ее распространения, а также исследование динамических характеристик процесса жизненного цикла лавины


Общие сведения по теме

Снег удерживается на склоне горы за счет силы трения. Сход лавины происходит в тот момент, когда сила давления массы снега начинает превышать силу трения.

Наиболее благоприятными для лавинообразования являются склоны крутизной [math] 25-40^\circ[/math]. Сход со склона скопившейся снежной массы обычно провоцируется климатическими причинами: резкой сменой погоды, дождями, а также механическими воздействиями на снежную массу. Иногда, в силу установившегося относительного равновесия между действующей силой трения и силой давления, сход лавины может инициироваться незначительным толчком (например, звуком ружейного выстрела или давлением на снег одного человека — горнолыжника, сноубордиста)

Решение

Моделирование схода лавины происходит в двумерном пространстве. В качестве простейшей модели горы был взят прямоугольный треугольник с углом наклона [math] 30^\circ [/math], а в качестве снежной массы - элементs-круги радиуса [math]r[/math], имитирующие отдельные частицы снежной массы.

Целесообразно разделить движение частицы на 2 части: движение по наклонной плоскости и движение по горизонтальной поверхности.

При движении по наклонной плоскости шары скатываются со склона за счет силы тяжести [math] F_{mg} [/math], однако удерживаются на склоне за счет силы трения [math] F_{тр1}[/math]. При данном движении меняются координаты частицы и по оси ординат, и по оси абсцисс. Сила, действующая на частицу, вычисляется по формуле [math] F = mg-Bv[/math], где [math] B [/math] - коэффициент, связывающий скорость частицы и силу.

После того, как шары скатились со склона, они продолжают движение по горизонтальной поверхности, замедляясь за счет силы трения [math] F_{тр2}[/math]. Сила, действующая на частицу, считается аналогично [math] F=-B_2v[/math], однако взят другой коэффициент пропорциональности и составляющие, отвечающие за движение по вертикали взаимоуничтожают друг друга, за счёт чего происходит лишь торможение по горизонтальной оси.

Изначально частицы расположены на расстоянии, превышающим радиус частицы в 8 раз.

Визуализация задачи

Текст программы на языке JavaScript:

Файл "dl_avalanche_finish.js"

 1 function main_dl_avalanche_finish() {
 2 
 3     var ctx = canvas_avalanche_finish.getContext("2d");
 4     var width = canvas_avalanche_finish.width;
 5     var height = canvas_avalanche_finish.height;
 6 
 7     ctx.fillStyle="#8888ff";
 8                            
 9         var vx = 2, vy = 2;                         // скорость шара
10         var r = 5;                                 // радиус шара
11 
12 	var grass_height = 5;
13 	var mountian_length = 400;
14 
15 	var sin_alpha_1 = 0.5;
16 	var cos_alpha_1 = 0.866;
17 
18 	var sun_r = 50;
19 	var rx = 0, ry =  mountian_length * sin_alpha_1 / cos_alpha_1 - r;
20 	
21 	var g = 2;
22 	var dt = 0.1;
23 	var m = 1;
24 	var B = 0.06;
25 	var B2 = 0.09;
26 	var fy = 0;
27 	var fx = 0;
28 
29     function step() {                           
30         tick();
31         draw();
32     }
33 
34     function tick() {  
35 		if (rx + r > 0 && rx - r < mountian_length && ry < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1)
36                                                                     * rx + mountian_length * sin_alpha_1 / cos_alpha_1) {
37 			fy = m * g - B * vy;
38 			fx = m * g - B * vx;
39 
40 			vy = vy + fy / m * dt * sin_alpha_1;
41 			vx = vx + fx / m * dt * cos_alpha_1;
42 
43 			ry = ry + vy * dt * sin_alpha_1;
44 			rx = rx + vx * dt * cos_alpha_1;
45 		}
46 		if (rx - r > mountian_length){
47 
48 			fx = - B2 * vx;
49 			vx = vx + fx / m * dt;
50 			rx = rx + vx * dt;
51 		}
52         
53     }
54 
55     function draw() { 
56 		
57         ctx.clearRect(0, 0, width, height);     //clear
58 		ctx.beginPath();
59 		
60 		ctx.fillStyle="#49b9ed"; //sky
61 		ctx.beginPath();
62 		ctx.fillRect(0, 0, width, height);
63 		
64 		ctx.fillStyle="#16a600"; //grass
65 		ctx.beginPath();
66 		ctx.fillRect(0, height - grass_height, width, height);
67 		
68 		ctx.fillStyle="#57564c"; //mountain
69 		ctx.beginPath();
70 		ctx.moveTo(0, height - grass_height);
71 		ctx.lineTo(mountian_length, height - grass_height);
72 		ctx.lineTo(0, mountian_length * sin_alpha_1 / cos_alpha_1);
73 		ctx.lineTo(0, height - grass_height);
74 		ctx.fill();
75 		
76 		
77 		ctx.fillStyle="#fff200"; //sun
78                 ctx.beginPath();
79                 ctx.arc(width, 0, sun_r, 0, 2 * Math.PI);
80                 ctx.fill();
81 		
82 		ctx.fillStyle="#e6e5d1"; //snow
83 		ctx.beginPath();
84                 ctx.arc(rx, ry, r, 0, 2 * Math.PI);
85                 ctx.fill();
86 		        
87 				
88     }
89 
90     setInterval(step, 1000 / 60);               // функция step будет запускаться 60 раз в секунду (60 раз / 1000 мс)
91 
92 }

Файл "dl_avalanche_finish.html"

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>Avalanche</title>
 5     <script src="dl_avalanche_finish.js"></script>
 6 </head>
 7 <body onload="main_dl_avalanche_finish();">
 8     <canvas id="canvas_avalanche_finish" width="800" height="400" style="border: 1px solid #000000"></canvas>
 9 </body>
10 </html>

Обсуждение результатов и выводы

В ходе работы над курсовым проектом была разработана простейшая модель, визуализирующая процесс схода лавины. Было установлено, что при увеличении коэффициента пропорциональности между силой [math] F [/math], действующей на частицу и скоростью частицы [math] v [/math] уменьшается координата конечного положения частицы. При увеличении начальной скорости [math] v [/math] увеличивается координата конечного положения частицы.

Дальнейшие предложения по проекту:

  • Увеличить число частиц, дав возможность пользователю выбирать количество с помощью движка
  • Дать возможность пользователю менять коэффициент пропорциональности с помощью движка
  • Добавить движок, позволяющий менять угол наклона горы



Скачать отчет
Скачать презентацию:

Ссылки по теме

См. также