Редактирование: КП: Динамика лавины
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 22: | Строка 22: | ||
Снег удерживается на склоне горы за счет силы трения. Сход лавины происходит в тот момент, когда сила давления массы снега начинает превышать силу трения. | Снег удерживается на склоне горы за счет силы трения. Сход лавины происходит в тот момент, когда сила давления массы снега начинает превышать силу трения. | ||
− | Наиболее благоприятными для лавинообразования являются склоны крутизной | + | Наиболее благоприятными для лавинообразования являются склоны крутизной 25—45°. Сход со склона скопившейся снежной массы обычно провоцируется климатическими причинами: резкой сменой погоды, дождями, а также механическими воздействиями на снежную массу. Иногда, в силу установившегося относительного равновесия между действующей силой трения и силой давления, сход лавины может инициироваться незначительным толчком (например, звуком ружейного выстрела или давлением на снег одного человека — горнолыжника, сноубордиста) |
== Решение == | == Решение == | ||
− | Моделирование | + | Моделирование сходы лавины происходит в двумерном пространстве. В качестве простейшей модели горы был взят прямоугольный треугольник, а в качестве снежной массы - большое количество элементов-кругов радиуса <math>r</math>,имитирующих отдельные частицы снежной массы. |
− | Целесообразно разделить движение | + | Целесообразно разделить движение шаров на 2 части: движение по наклонной плоскости и движение по горизонтальной поверхности. |
− | При движении по наклонной плоскости шары скатываются со склона за счет силы тяжести <math> F_{mg} </math> | + | При движении по наклонной плоскости шары скатываются со склона за счет силы тяжести <math> F_{mg} </math>. |
− | + | <math> | |
+ | ma = mg + F_{тр} + N | ||
+ | </math> | ||
− | + | <math> | |
+ | a = g(\sin\alpha - \mu \cos\alpha) | ||
+ | </math> | ||
− | == Визуализация | + | <math> |
+ | v_x = at\cos\alpha, v_y = at\sin\alpha | ||
+ | </math> | ||
+ | |||
+ | <math> | ||
+ | r_x = r_{0x} + \frac{at^2}{2}\cos\alpha, r_y = r_{0y} + \frac{at^2}{2}\cos\alpha | ||
+ | </math> | ||
+ | |||
+ | После того, как шары скатились со склона, они продолжают движение по горизонтальной поверхности, замедляясь за счет силы трения <math> F_{тр2}</math>. | ||
+ | |||
+ | == Визуализация программы == | ||
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Sizova/dl_avalanche_finish.html | справа |width=900|height=500 |border=0 }} | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Sizova/dl_avalanche_finish.html | справа |width=900|height=500 |border=0 }} | ||
Строка 49: | Строка 63: | ||
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; | ||
Строка 56: | Строка 71: | ||
var cos_alpha_1 = 0.866; | var cos_alpha_1 = 0.866; | ||
var sun_r = 50; | var sun_r = 50; | ||
− | var | + | var rx = 0, ry = mountian_length * sin_alpha_1 / cos_alpha_1 - r; |
− | |||
− | |||
var g = 2; | var g = 2; | ||
− | var dt = 0. | + | 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 | + | var fy = 0; |
− | + | var fx = 0; | |
− | |||
− | |||
− | |||
− | var | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function step() { | function step() { | ||
Строка 85: | Строка 87: | ||
function tick() { | function tick() { | ||
− | if ( | + | if (rx + r > 0 && rx - r < mountian_length && ry < (height - grass_height - mountian_length * sin_alpha_1 / cos_alpha_1) * rx |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ mountian_length * sin_alpha_1 / cos_alpha_1) { | + mountian_length * sin_alpha_1 / cos_alpha_1) { | ||
− | + | fy = m * g - B * vy; | |
− | + | fx = m * g - B * vx; | |
− | + | vy = vy + fy / m * dt * sin_alpha_1; | |
− | + | vx = vx + fx / m * dt * cos_alpha_1; | |
− | + | ry = ry + vy * dt * sin_alpha_1; | |
− | + | rx = rx + vx * dt * cos_alpha_1; | |
} | } | ||
− | if ( | + | if (rx - r > mountian_length){ |
− | + | fx = - B2 * vx; | |
− | + | vx = vx + fx / m * dt; | |
− | + | rx = rx + vx * dt; | |
− | |||
} | } | ||
− | + | //if (rx - r < 0 || rx + r > width) vx = -vx; | |
+ | //if (ry - r < 0) vy = -vy; | ||
+ | //rx = rx + vx; | ||
+ | //ry = ry + vy; | ||
} | } | ||
Строка 162: | Строка 134: | ||
ctx.fill(); | ctx.fill(); | ||
− | ctx.fillStyle="# | + | ctx.fillStyle="#e6e5d1"; //snow |
− | |||
− | |||
− | |||
− | |||
− | |||
ctx.beginPath(); | ctx.beginPath(); | ||
− | ctx.arc( | + | ctx.arc(rx, ry, r, 0, 2 * Math.PI); |
− | |||
− | |||
− | |||
− | |||
− | |||
ctx.fill(); | ctx.fill(); | ||
Строка 183: | Строка 145: | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== Обсуждение результатов и выводы == | == Обсуждение результатов и выводы == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Строка 214: | Строка 154: | ||
[[Медиа:avalanche.doc|Скачать отчет]] | [[Медиа:avalanche.doc|Скачать отчет]] | ||
<br> | <br> | ||
− | + | Скачать презентацию: | |
− | |||
== Ссылки по теме == | == Ссылки по теме == |