Слайд 1 из 23
Аэродинамика самолёта
Сегодня переходим к самолёту. До этого вы управляли дроном, которому воздух не нужен: тяга моторов не зависит от того, как он движется. У самолёта наоборот: почти все силы создаёт воздух, и зависят они от того, под каким углом поток бьёт в крыло. На обложке — профиль крыла в потоке: зелёная стрелка подъёмная сила, оранжевая лобовое сопротивление, красная вес. К концу пары вы напишете чистую математику этих сил и сможете посчитать по ней скорость полёта и скорость срыва на бумаге. Сцену сегодня не собираем.
Слайд 2 из 23
Цель занятия
Покажите цель и сразу скажите, что сегодняшний код — одна статическая функция-библиотека без единого игрового объекта. Это сознательно: формулы проще отлаживать тестами и арифметикой, чем следить за самолётом в сцене. Через две недели те же четыре функции станут сердцем крыла, стабилизатора и киля. Поэтому сегодня главное — понимать, что означает каждый аргумент: на следующей паре ошибка в знаке или в градусах будет выглядеть как «самолёт кувыркается» и искать её будет трудно.
Слайд 3 из 23
План пары · 90 минут
Функции студенты дописывают по ходу, сразу после соответствующего блока теории: угол атаки — после слайда про проекцию скорости, коэффициент подъёмной силы — после срыва, сопротивление — после поляры. Блок 52–68 — сверка с эталоном и запуск тестов. Если группа отстаёт, последние слайды с числами можно сделать домашним расчётом, но формулу скорости срыва проговорите вслух: к ней вернёмся на приёме работ.
Слайд 4 из 23
Какие силы действуют на самолёт
Четыре силы знает каждый, но важны два отличия от дрона. Первое: подъёмная сила и лобовое сопротивление создаются не двигателем, а потоком воздуха, и меняются со скоростью и с углом. Второе: подъёмная сила перпендикулярна потоку, а не направлена по оси самолёта вверх. Это основа всей сегодняшней пары. Вес считает Unity, тяга появится на занятии 8; сегодня считаем L и D. Условие горизонтального полёта L равно W понадобится в конце, когда будем искать скорость. Обратите внимание на рисунок: самолёт летит вправо; на стенде AeroLab профиль нарисован в системе потока, там воздух идёт слева направо, а нос слева.
Слайд 5 из 23
Как работает аэродинамическая поверхность
Это карта на ближайшие две пары. Никаких отдельных «моментов тангажа» мы не задаём: самолёт поворачивается потому, что силы приложены не в центре масс. Сегодня мы делаем математику профиля: на входе скорость и параметры крыла, на выходе коэффициенты и силы. Она не знает ни про Rigidbody, ни про сцену, поэтому её можно проверить тестами в EditMode. Скорость точки и точку приложения добавим на занятии 7. Пусть студенты запомнят порядок: скорость, угол, коэффициенты, сила.
Слайд 6 из 23
Угол атаки через проекцию скорости
Вывод формулы по картинке: профиль летит вперёд и немного вниз, значит vy отрицательна, минус на vy делает угол положительным. Проверьте таблицу устно, каждую строку. Последняя строка показывает, зачем atan2: при vz равном нулю обычное деление упало бы. Скорость в локальные оси переводит вызывающий код: transform.InverseTransformDirection от скорости. Сама функция принимает уже готовый локальный вектор. Пусть студенты напишут AngleOfAttack прямо сейчас: это одна строка, и первый тест — поток вдоль хорды даёт ноль.
Слайд 7 из 23
угол атаки — не тангаж
Это самая частая ошибка в этой теме: взять transform.up или угол наклона носа и назвать его углом атаки. Тангаж говорит только об ориентации корпуса. Крыло же чувствует поток: если самолёт набирает высоту под тем же углом, поток идёт вдоль хорды и подъёмной силы «за наклон» нет. Приведите пример из жизни: самолёт заходит на посадку с носом чуть ниже горизонта, но угол атаки у него положительный, потому что он снижается ещё круче. Формула в рамке верна в вертикальной плоскости без крена, для общего случая используем проекцию скорости.
Слайд 8 из 23
Подъёмная сила
Формула подъёмной силы — это скоростной напор, умноженный на площадь и на безразмерный коэффициент. Скорость в квадрате: удвоили скорость, получили вчетверо больше подъёмной силы при том же угле. Плотность воздуха считаем постоянной: на наших высотах до ста метров она меняется на доли процента. Направление найдём через векторное произведение направления потока и оси размаха на следующей паре; сегодня запомните только, что при поднятом носе подъёмная сила наклоняется вместе с потоком, а не остаётся вдоль оси «вверх» самолёта. Напишите DynamicPressure: это одна строка и седьмой тест.
Слайд 9 из 23
CL(α): линейный участок
Пока угол мал, коэффициент растёт линейно. Две константы: наклон k, пять на радиан, и угол нулевой подъёмной силы. У изогнутого профиля он отрицательный, то есть крыло несёт даже при нулевом угле атаки. Это объясняет, почему самолёт летит горизонтально, хотя хорда смотрит по потоку. У симметричных стабилизатора и киля альфа ноль равен нулю. Не забудьте предупредить студентов: в функцию приходит угол, уже отсчитанный от нулевой подъёмной силы. Это место для ошибок на следующей паре.
Слайд 10 из 23
Срыв потока
Здесь модель перестаёт быть линейной. До критического угла всё просто. После него воздух не успевает обтекать верх крыла и отрывается: подъёмная сила не растёт, а резко падает, одновременно растёт сопротивление. В коде это три ветки. Кривая нарисована у нас с изломом, у настоящих профилей она более плавная, но суть та же. Обратите внимание на третью строку таблицы: 0,52 — это ровно сорок процентов от 1,31. Чекпойнт — главная практическая мысль: срыв нельзя «пересилить» штурвалом. Спросите, что делает пилот: опускает нос, угол атаки уменьшается, поток снова прилипает.
Слайд 11 из 23
Стенд AeroLab · CL и срыв
Это единственная интерактивная модель пары. Слева профиль в системе потока: воздух идёт слева направо, нос слева. Хорда наклонена на угол атаки. Подъёмная сила всегда вертикальна, перпендикулярна потоку, а серый пунктир «up профиля» наклоняется вместе с хордой: это наглядный ответ на ошибку с transform.up. Лобовое нарисовано в три раза крупнее для наглядности. Справа CL от угла атаки, жёлтая точка — текущее состояние, оранжевая полоса — зона срыва, пунктир — угол нулевой подъёмной силы.
Что сделать на стенде:
- Нажмите «Горизонт 44 м/с»: подъёмная сила почти равна весу, значение «L = вес при» около 44 м/с.
- Предскажите, потом проверьте: поднимайте AoA медленно. Где подъёмная сила перестанет расти? Ответ: на 12°, дальше падение.
- «Предел срыва»: 12° и 20 м/с, подъёмная сила близка к весу; это скорость срыва.
- «Глубокий срыв»: 22°, подъёмная сила упала до 40 %, появилась метка СВАЛИВАНИЕ.
- Поставьте AoA = −3°: подъёмной силы нет. Перейдите на отрицательные углы: сила направлена вниз, так работает стабилизатор.
- Переместите скорость при AoA = 5°: сила растёт как квадрат скорости.
Формулы в компоненте повторяют AeroMath.cs: те же константы, тот же порядок веток.
Слайд 12 из 23
градусы, радианы и отсчёт от α₀
Три ошибки, на которых застревают чаще всего. Градусы вместо радиан: в инспекторе удобнее вводить градусы, а внутри формулы считаем в радианах, перевод на границе. Забытый угол нулевой подъёмной силы: срыв наступит «не там», кривая будет сдвинута на три градуса; в тесте это видно как неправильное значение. И Atan вместо Atan2, о чём мы уже говорили. Если у кого-то тест на нечётность не проходит — первым делом проверьте знак: функция должна возвращать отрицательное значение для отрицательного угла.
Слайд 13 из 23
Лобовое сопротивление
Сопротивление тоже считаем по формуле через скоростной напор, но коэффициент составной. Первое слагаемое — трение, оно есть всегда. Второе — чем сильнее крыло несёт, тем сильнее тормозит; зависит от квадрата CL. Третье включается только в срыве: оторванный поток превращает крыло в щит. Обратите внимание на деталь модели: синус берётся от alpha, угла от нулевой подъёмной силы. Для нашей учебной модели этого достаточно, и это ровно то, что написано в AeroMath. Сопротивление направлено против скорости точки, а подъёмная сила перпендикулярна ей; вместе они дают полную аэродинамическую силу.
Слайд 14 из 23
Поляра и качество
Таблицу посчитать вручную долго, она нужна для картины: качество растёт, достигает максимума и падает. Максимум получается при CL около 0,7: это угол, на котором самолёт без двигателя пролетел бы дальше всего. Поляру на стенде можно показать кнопкой: в срыве кривая уходит вправо, сопротивление растёт, подъёмная сила падает. Чекпойнт: подставьте числа руками. Значения таблицы посчитаны для крыла отдельно, без оперения и фюзеляжа, поэтому в полном самолёте качество будет ниже. Значение 650 ньютонов мы возьмём на следующем занятии, когда будем смотреть, хватает ли тяги двигателя.
Слайд 15 из 23
Стенд AeroLab · сопротивление и поляра
Тот же стенд, но справа — поляра: по горизонтали CD, по вертикали CL, оранжевая часть кривой — срыв. Попросите студентов проделать на нём следующее.
- Поставьте 44 м/с и AoA = 0°: прочитайте D внизу, сверьте с расчётом 650 Н.
- Поднимайте AoA до 12°: CL растёт, D растёт быстрее, потому что индуктивная часть квадратична.
- Перейдите за 12°: CL падает, а CD продолжает расти, это форм-драг. В поляре кривая загибается вправо.
- Скорость ставим 70 м/с и AoA 22°: D огромное, самолёт сильно тормозится. Это и есть «щит».
- Следите за CL / CD: максимум около 5°.
Кнопка «Показать CL(α)» возвращает график подъёмной силы.
Слайд 16 из 23
Шаг 1 · AeroMath.cs — чистая математика профиля
Файл целиком, он положен в Runtime/Plane/. Читайте сверху вниз. Это статический класс: ни полей-состояния, ни MonoBehaviour. Четыре функции собирают всё, что мы вывели на слайдах. Обратите внимание на LiftCoefficient: у неё два результата, коэффициент и stallDepth через out. Он нужен сопротивлению и будущему индикатору «СВАЛИВАНИЕ». Сверьте свой код с этим файлом и прогоните тесты.
Разбор кода
using UnityEngine— нужныMathfиVector3.namespace SimulationCourse— тот же namespace и asmdef, что у остальных скриптов курса.static class AeroMath— только функции, без состояния иMonoBehaviour: проверяется EditMode-тестами без сцены.AirDensity— плотность воздуха у земли,1,225 кг/м³; на высотах до 100 м считаем постоянной.PostStallRange— закритическая зона10°, в которойCLпадает до долиPostStallLift.PostStallLift—0,4: во что превращается максимумCLпосле срыва.AngleOfAttack:localVelocity— скорость профиля в его осях; переводInverseTransformDirectionделает вызывающий код;Atan2(-y, z)— положителен, когда поток бьёт снизу.
LiftCoefficient:absиsign— модуль и знак угла: функция нечётная;clMax— максимум линейного участка,slope * stallAngle ≈ 1,31;- первая ветка (
abs <= stallAngle) — линейный рост без срыва,stallDepth = 0; stallDepth— доля пройденной закритической зоны, от 0 до 1;- вторая ветка —
LerpотclMaxдо0,4 · clMax; fade— дальше линейно к нулю на 60°;out stallDepth— второй результат для сопротивления и HUD.
DragCoefficient:cd0— паразитное сопротивление;inducedFactor * cl * cl— индуктивное;1.2f * sin * sin * stallDepth— форм-драг срыва.
DynamicPressure—q = ½ρV².
Слайд 17 из 23
Что проверяют тесты
Тесты проверяют поведение на границах, а не внутренности. Пройдитесь по списку и спросите, какая строка кода отвечает за каждый тест: первая — Atan2, пятая — sign, шестая — слагаемое со stallDepth. Если тест красный, сначала проверьте единицы измерения и отсчёт угла от нулевой подъёмной силы. Тесты лежат в методичке, студенты переносят их в Tests/EditMode. Дождитесь, пока у большинства группы все семь станут зелёными, прежде чем идти дальше: этот файл завтра нужен целиком.
Слайд 18 из 23
Число 1 · скорость полёта
Пройдите расчёт строка за строкой, пусть студенты считают на калькуляторе. Сначала вес. Затем CL при нулевом AoA: альфа три градуса, ноль целых пять сотых радиана, умножаем на пять. Затем соберите все константы в один множитель перед V в квадрате: 2,57. Остаётся извлечь корень. При точных вычислениях получается 43,7 метра в секунду; округляем до 44. Это та самая скорость, которую мы ожидаем увидеть у самолёта на следующей паре. Чекпойнт показывает смысл слова «триммированная»: быстрее — подъёмная сила больше веса, и самолёт стремится вверх.
Слайд 19 из 23
Число 2 · скорость срыва
Здесь та же формула, но с обратной стороны. Мы берём максимально возможный CL и спрашиваем: при какой наименьшей скорости крыло ещё держит вес. Подставляем: ноль шестьсот двенадцать пять — это половина плотности воздуха, шестнадцать — площадь, 1,31 — максимум. Получаем около 19,6 метра в секунду. Проверьте на стенде: поставьте AoA 12 и скорость 20, подъёмная сила близка к весу. Обратите внимание на чекпойнт: отношение скоростей — корень из отношения коэффициентов. Это объясняет, почему разница между «летит ровно» и «сваливается» такая большая: пилоты называют её запасом по скорости.
Слайд 20 из 23
Что дальше · занятие 7, 22 октября
Короткий анонс. Через две недели вы получаете компонент AeroSurface, который берёт то, что мы написали сегодня, и прикладывает силы в точках. Числа таблицы — площади и наклоны поверхностей; крылья вдвое больше оперения. Три идеи для запоминания. Первая: скорость точки у хвоста не такая, как у центра, когда самолёт вращается; поэтому хвост сам гасит вращение. Вторая: никаких моментов мы не задаём, они возникают из плеча. Третья: руль не добавляет вращающий момент «из воздуха», а меняет угол атаки поверхности, и поверхность создаёт больше или меньше подъёмной силы. Всё это опирается на AeroMath, поэтому тесты сегодня должны быть зелёными.
Слайд 21 из 23
Чекпойнт
Три вопроса на три главные идеи: проекция скорости, срыв, квадрат скорости. Спрашивайте разных студентов и открывайте ответы кликом только после устного ответа. Если кто-то отвечает на первый вопрос через transform.up, вернитесь на слайд с тангажом и разберите пример со снижением.
Слайд 22 из 23
Результат занятия
Подведите итог по пунктам. Проверка работы на этом занятии — зелёный Test Runner и умение объяснить формулу. Если у кого-то красные тесты, пусть откроют слайд с разбором кода и сверятся по строкам; разбор можно закончить дома. В следующий раз начинаем с проверки: у кого AeroMath не собран, тот не сможет собрать AeroSurface.
Слайд 23 из 23
К занятию 7 · 22 октября
Третий пункт — самопроверка на формулах: ответ приведён, чтобы можно было сверить результат с калькулятором или стендом AeroLab. Подъёмная сила в двенадцать килоньютонов втрое больше веса: на AoA 6° при 40 м/с самолёт выполняет вертикальный манёвр, это не полёт по прямой. Четвёртый пункт необязательный: он ускорит следующую пару, потому что сцену придётся собирать без урока теории. Напомните, что самолёт можно сдавать с 5 ноября.