Термики, болтанка, пыльные вихри, грозы
Термик — это столб тёплого воздуха, поднимающийся от прогретой солнцем земли. Дельтапланерист кружит внутри него, набирая высоту; вокруг термика воздух, наоборот, слабо опускается. Ниже — как это устроено в игре, откуда взяты формулы и что модель не умеет.
Как это устроено
Каждый термик в игре — пузырь (AtmoThermal) с источником на земле, жизненным циклом рост → зрелость →
распад и профилем подъёма по радиусу. Мир разбит на клетки (thermal_spacing_m), у каждой клетки —
свой цикл с детерминированной фазой, силой и точкой источника (выбранной по солнечной освещённости
склона); один и тот же день полностью воспроизводим независимо от того, где летал пилот.
Профиль по радиусу — «мексиканская шляпа» Гедеона: ядро с подъёмом в центре, вокруг — кольцо слабого опускания, дальше — нуль. Поток массы через горизонтальное сечение ровно нулевой — сколько воздуха поднялось, столько рядом опустилось:
Радиус растёт с высотой по модели Аллена (NASA, автономные планеры-парители): термик расширяется от
земли к кромке облаков, подъём нарастает от земли как z^(1/3) и гаснет у верха:
Ось термика наклонена ветром — воздух поднимается со скоростью ядра и одновременно сносится:
Δx(z) ≈ z · U(z_mid) / w_c. При ветре 5 м/с, ядре 3 м/с и слое 1500 м облако оказывается на ~2,5 км
по ветру от источника; угол наклона ограничен сверху — иначе термик должен был бы просто разорваться
ветром, как это и происходит в жизни.
Жизненный цикл: кучевое облако живёт 15–30 мин, «хороший» термик — 10–20 мин. На стадии распада низ столба отрывается от источника раньше верха — пилот низко под распадающимся облаком уже не находит подъём, знакомая ситуация.
Облачный подсос. Под крупным растущим облаком последние сотни метров под основанием набор заметно ускоряется (внутри облака конденсация добавляет плавучести — воздух там остывает медленнее сухой адиабаты), у Cb — до опасного «затягивания». Под мелкими, молодыми и распадающимися облаками подсоса нет — термик слабеет к кромке, как без облака.
Ветер и турбулентность. Профиль ветра степенной, показатель 0,14; в самом слое перемешивания почти постоянный. Механическая болтанка моделируется «замороженной турбулентностью» Тейлора — поле пульсаций переносится ветром целиком, а не пересчитывается заново; масштаб вихрей 30–80 м сравним с размахом крыла, поэтому консоли получают разный подъём и крыло болтает по крену. СКО пульсаций складывается из механической составляющей, конвективной (по профилю Леншоу), болтанки на краю термика и ротора за гребнем — как независимые случайные величины:
Фоновое опускание между термиками — −0,3…−1 м/с (по умолчанию −0,5), из сохранения массы: то, что поднялось в термиках, должно где-то опуститься.

Физика: законы и приближения
Масштаб подъёма — конвективная скорость Дирдорфа: чем сильнее прогрев земли и выше слой перемешивания, тем сильнее термики.
Для хорошего летнего дня w* ≈ 1,5–3 м/с, в слабый день ≈ 1 м/с; ядро термика набирает ≈ 1…1,5·w*,
то есть 0,5–5 м/с — согласуется с записями дельтапланеристов («хороший термик — 1–2 м/с крейсерский
набор, 2–3,5 в сильный день», docs/research/xc_reference.md). По
годовой статистике станции Desert Rock (Allen 2006) медианный w* за год — 2,56 м/с при z_i ≈ 1400 м,
в июле в среднем 2,69 м/с (z_i ≈ 1975 м), максимум за год — 6,3 м/с.
Профиль термика по высоте (Леншоу и Стивенс 1980, по самолётным измерениям над морем; Аллен 2006 — та же формула, подогнана под автономные аппараты):
— максимум ≈ 0,45·w* на z ≈ 0,25·z_i, обнуляется у 0,91·z_i. По записям парапланов во Франции
(2017–2024, 1,47 млн наборов высоты) над горами набор на 30–40 % сильнее, чем над равниной: в полдень
летом на равнине ≈ 1,03 м/с, в высоких горах ≈ 1,41 м/с — что учтено косвенно через силу источника,
завязанную на классы рельефа.
Пыльные вихри рождаются у основания молодого сильного термика над сухой поверхностью, живут 10–60 с, высота 20–200 м от силы термика, дрейфуют с приземным ветром.
Границы модели
- Не CFD. Термик — аналитическая формула (Гедеон + Аллен), а не расчёт течения: форма ядра и кольца опускания подогнаны под ощущения опытного пилота, а не выведена из уравнений с нуля.
- Термики генерируются на регулярной сетке клеток, а не как в реальном пограничном слое, где число и положение термиков — случайный, но статистически структурированный процесс; у нас — детерминированный генератор по клетке, циклу и зерну.
- Верхний спад подъёма у кромки сделан настраиваемым (
top_taper_m), а не строго по 10 % высоты слоя, как получается у формулы Аллена — иначе под растущим облаком подъём гас бы нереалистично рано. - Нет прямого расчёта потока тепла по физике почвы для силы термика в статичном режиме: сила и доля источников берутся из таблицы опор по высоте кромки (см. страницу «Погода»), а не заново из измеренного потока каждый раз.
- Один и тот же профиль турбулентности (Леншоу) используется и для конвективной болтанки, и как нормировка амплитуды — упрощение общей картины сдвига ветра в реальном пограничном слое.
- Подробно про облака (форма, тени, стадии) — отдельная механика: /mechanics/clouds/.
Что рассматривали и почему так
- Модель пузыря (столб) вместо всплывающего кольца (Scorer). В жизни встречаются оба режима — долго работающая «колонна» над солнечным склоном и короткоживущий «пузырь», отрывающийся и всплывающий. Выбрана колонна с жизненным циклом, у которой на стадии распада отрывается низ — это даёт то же ощущение «пузыря, ушедшего вверх», не считая отдельно вихревое кольцо.
- Профиль Гедеона выбран за гладкость: разница подъёма между консолями крыла (≈10 м) плавно растёт к краю ядра, поэтому крыло кренит «из термика», как в жизни, а не рывком на резкой границе.
- Экстремальные термики (7–9 м/с) сделаны редкими и только в сильный день — по словам пилота «+8 — уже надо валить»: проверено тестом, что в слабый и средний день таких термиков не бывает вовсе, а в сильный они редки и всегда под крупным облаком.
- Сухие термики без облака оставлены отдельной долей (в слабый день — не меньше 40 %) — пилот их ищет «по вариометру», без визуальной подсказки в виде кучевого облака.
Грозы — редкое явление, не типичный элемент погоды. Доля сильных термиков, которые действительно
становятся кучево-дождевыми (Cb), отделена от общей «грозовости дня» (коммит 105bf45):
раньше при дневном максимуме +26 °C гроза у старта возникала почти в каждом полёте, что не соответствует
жизни. Замер по 100 случайным дням на Онгудае (tools/weather/storm_rarity.tscn):
| Температура днём | Cb ближе 15 км за первый час | Гроза у старта в начале полёта |
|---|---|---|
| +26 °C | 0–1 % полётов | 0 % |
| +30 °C | 20–40 % | 0–4 % |
| +34 °C | 50–70 % | 3–6 % |
Внутри грозовой ячейки (storm_field.gd) — нисходящий поток под ливнем, растекание у земли и фронт
порывов; растекание соседних ячеек не складывается — раньше без этого ограничения скорости
растекания нескольких ячеек суммировались до 30–60 м/с, что физически неверно (реальный шквал такой
силы — редкое стихийное явление, а не рядовая гроза).
Дальше
Источники термиков, их сила и потолок теперь берутся не из таблицы опор по высоте кромки, а из общего поля воздуха: максимумы подъёма и схождения потока у земли на этот час, масштаб Дирдорфа — из смоделированного потока тепла и высоты слоя перемешивания в конкретной точке. Форма самого пузыря (Гедеон/Аллен) и его жизнь остались такими же — подробнее на странице модели воздуха и в docs/guide/air-model.md → «Масштаб 2: термики из поля». Описанная выше таблица опор работает как запасной путь, если поле недоступно.
Подробнее
- docs/research/thermals.md — формулы и источники: Гедеон, Аллен, Леншоу и Стивенс, Деардорф.
- docs/research/calibration_data.md — таблица наблюдаемых с погрешностями (§1 «Термики»).
- docs/research/xc_reference.md — эталоны маршрутных полётов (набор, доля времени в кружении, число термиков на 10 км).
- docs/guide/atmosphere.md — устройство модуля атмосферы, таблица «слова пилота в числах».
- scripts/atmosphere/thermal_field.gd, scripts/atmosphere/atmo_thermal.gd, scripts/atmosphere/storm_field.gd, scripts/atmosphere/dust_devils.gd — код.
- configs/atmosphere.json, configs/weather_model.json — параметры.