AVL / VLM расчёт

Обновлено: 2026-08-11 avl vlm устойчивость SM NP

AVL / VLM Расчёт

VLM (Vortex Lattice Method) — метод вихревой решётки. Быстрый линейный метод для расчёта аэродинамики крыла.


Что считается

Параметр Описание
CL Коэффициент подъёмной силы при данном угле атаки
CD_ind Индуктивное сопротивление
CD_total Полное сопротивление = CD_ind + cd0_airframe (сумма CD0 в коде ОДНА — AD-1423)
cd0_airframe ПОЛНЫЙ CD0 борта = cd0_parasite + CD_profile (AD-1423). Именно к нему относится типовой диапазон 0.02…0.04 класса RC и проверка правдоподобия стадии S13; к подтоталу cd0_parasite диапазон НЕ применим
L/D Аэродинамическое качество
Cm Момент тангажа
CL_alpha Производная CL по α (1/рад) — крутизна поляры
Cm_alpha Производная Cm по α — ключевой параметр продольной устойчивости
Cn_β Производная Cn по β (1/рад) — путевая устойчивость (weathercock); >0 = вертикальное оперение достаточно, чтобы «флюгерить» нос обратно на поток, ≤0 = неустойчиво
NP (% MAC) Нейтральная точка — % от MAC от ПК
SM Запас устойчивости = NP − CG (% MAC)
Cm тяги Момент от тяги при T/W=1 (информационно)
Drag breakdown cd0_fus, cd0_nacelles, cd0_gear, cd0_interference
Распределение по размаху cl×c по полосам крыла + эллиптический эталон + местный Cl сечения
Угол атаки (L = W) Рабочий угол, на котором посчитано всё остальное: подобран так, чтобы подъёмная сила равнялась весу борта

Балансировка по подъёмной силе

Расчёт больше не ведётся на произвольном угле атаки: сначала подбирается угол,
на котором подъёмная сила равна весу (L = W при заданных проектной массе,
скорости и площади крыла), и уже на нём считаются сопротивление, качество,
потребная тяга и мощность. Отсюда простое следствие, которого раньше не было:
проектная масса реально меняет цифры — тяжелее борт, больше угол атаки,
больше индуктивное сопротивление, больше потребная тяга.

Опорная площадь — одна на весь расчёт: площадь крыла В ПЛАНЕ (проекция
сверху, поперечное V в неё не входит) — та же, что показывает редактор и по
которой считается нагрузка на крыло. По ней обезразмерены все коэффициенты
(CL, CD, Cm, Cnβ), от неё же считаются потребная тяга, скорость сваливания и
бюджет сопротивления. Раньше решатель нормировал коэффициенты по площади,
измеренной вдоль поперечного V, — на 20–30° поперечного V это расходилось с
остальными числами отчёта на 6–15%.

Это балансировка сил, а не моментов: угол установки оперения и отклонение
руля высоты в модели не задаются, поэтому момент тангажа при найденном угле в
общем случае не нулевой, а балансировочное сопротивление от отклонённого руля
не учитывается (качество получается слегка оптимистичным).

Если равновесие не достигнуто, отчёт честно предупреждает об этом, а не
показывает цифры как рабочий режим. Предупреждений два, и они разные:

  • решатель назвал причину — веса на этой скорости не унести ни на каком
    угле, который модель умеет считать. Проверьте скорость сваливания: скорее
    всего, выбранная скорость ниже неё;
  • причины нет — в результате вообще нет сведений о балансировке. Так
    выглядит отчёт, посчитанный до появления балансировки, и результат, который
    решатель не успел досчитать. Пересчитайте.

Проверка правдоподобия режима (единицы измерения)

В запросе к расчёту масса задаётся в килограммах, скорость — в метрах в
секунду
. Раньше это держалось только на подписи поля: 400 граммов, введённые
числом 400, считались как 400 кг, а 72 км/ч числом 72 — как 72 м/с
(259 км/ч). Расчёт при этом проходил и выдавал уверенные числа — просто про
другой самолёт.

На экране редактора скорость — в километрах в час (крейсерская в мастере
создания и в стадии «Design assumptions», скорость сваливания в отчёте).
Пересчёт делает интерфейс на границе показа: в проект, в запрос и в отчёт
скорость по-прежнему уезжает в м/с, поэтому всё сказанное ниже про единицы
запроса касается сторонних вызовов (MCP, скрипты, интеграции) без изменений.
Скороподъёмность и там и там в м/с — это вертикальная скорость, её так
показывают вариометры.

Теперь перед запуском проверяется, существует ли такой режим вообще: из условия
L = W считается потребный коэффициент подъёмной силы. Если он выше того, что
даёт любое крыло, или, наоборот, настолько мал, что крыло почти не нагружено,
расчёт не запускается, а сообщение называет посчитанные числа и напоминает
единицы.

Проверка физическая, а не «диапазон побольше» — и границы у неё честные:
массу в граммах (в тысячу раз больше) она ловит всегда, а скорость в км/ч
(в 3.6 раза больше) — только там, где режим от этого становится неправдоподобным;
у медленного борта с большим крейсерским углом атаки такая ошибка может пройти.
Полностью её закроет только явное указание единиц в запросе.

Одна масса и одна скорость на весь расчёт

Проектная масса и крейсерская скорость со стадии «Design assumptions» — те же
числа, по которым считается полёт и которыми подписан отчёт. Раньше они ехали
на сервер дважды (режим расчёта отдельно от проектных допущений), и ничто не
мешало прислать разные: получился бы расчёт по одной массе с подписью о другой.
Теперь такой запрос отклоняется с объяснением, какая пара разошлась.

Для работы в дизайнере это ничего не меняет — редактор всегда отправляет одно
и то же число; проверка защищает сторонние вызовы (MCP, скрипты, интеграции).


Как запустить расчёт

  1. В дизайнере выберите скорость, массу и угол атаки (или «Auto trim»)
  2. Нажмите кнопку Рассчитать в блоке AVL
  3. Дождитесь результата (обычно 3–10 сек)
  4. Результаты появятся в правой панели

Как читать результаты

Cm_alpha — главный индикатор устойчивости

Cm_alpha < 0  →  самолёт устойчив по тангажу ✓
Cm_alpha > 0  →  самолёт неустойчив ✗ (увеличить плечо хвоста, ЦТ вперёд)

Типичные значения: от −0.8 до −0.3 /рад

SM — запас статической устойчивости

SM = NP% − CG%

5–15%  →  хорошая устойчивость (тренер/FPV)
15–25% →  высокая устойчивость (слабая манёвренность)
< 5%   →  малый запас, риск колебаний
< 0%   →  метастабильный или неустойчивый

Cn_β — путевая устойчивость (weathercock)

Cn_β > 0  →  самолёт путево устойчив ✓ (вертикальное оперение возвращает нос на поток)
Cn_β ≤ 0  →  путево неустойчив ✗ (увеличить площадь ВО / плечо киля)

Считается через β-производную (обдув под углом скольжения ±0.5°) в том же
прогоне VLM, что и продольные производные — отдельный канал, продольную
устойчивость (Cm_alpha/NP/SM) не затрагивает. Летающее крыло без киля обычно
даёт Cn_β ≤ 0.

В конструкторе v2 (/tools/aero-designer-v2, только для администраторов)
путевая устойчивость Cn_β и базовые ЛТХ показываются в оверлее «Полный расчёт
борта». ЛТХ разделены на две группы, и граница между ними — наличие
располагаемой тяги:

  • всегда — скорость сваливания (по CL_max крыла: максимум поляры
    профиля приведён к крылу по распределению нагрузки этого же расчёта — крыло
    срывается, когда до предела профиля дошло первое сечение, поэтому потолок
    крыла ниже, а скорость сваливания выше; в отчёте рядом показаны оба числа и
    сам множитель), потребная тяга и
    мощность, скорость снижения с выключенным мотором. Всё это считается
    целиком по планеру;
  • только после стадии «Силовая установка» (мотор, винт, батарея) —
    скороподъёмность, максимальная скорость горизонтального полёта, избыток
    тяги, статическая тяга и обороты винта.

Пока стадия не пройдена, вторая группа не показывается вовсе. Это не
недоделка: единственная тяга, известная без мотора, — потребная, а она
равна сопротивлению по определению. Избыток тяги, посчитанный по ней, — ноль
по построению, и «скороподъёмность» из него получалась бы выдуманным числом
(так и было до AD-1379: до 91% ответа давало постороннее слагаемое). Разбор —
docs/reference/skyforge-design-flow-reference.md § 14, вопрос В1.

Распределение подъёмной силы по размаху и срыв законцовки

График показывает погонную нагрузку cl×c по полуразмаху крыла (η = y/(b/2),
0 — корень, 1 — законцовка) и рядом — эллиптический эталон: распределение с
минимальным индуктивным сопротивлением при той же подъёмной силе. Чем ближе
расчётная кривая к эталону, тем меньше индуктивные потери.

Предупреждение о срыве законцовки считается по местному Cl сечения
(cl×c, делённое на местную хорду) — отношение «максимум в зоне законцовки
(η ≥ 0.7) / значение у корня»:

≤ 1.05    →  хорошее распределение ✓ (корень срывается первым)
1.05…1.12 →  нагрузка у законцовки высокая — подумайте об отрицательной крутке
> 1.12    →  риск срыва законцовки ✗ (увеличьте крутку или уменьшите сужение)

Почему местный Cl, а не cl×c: срыв начинается там, где сечение первым доходит
до Cl_max профиля. В погонную нагрузку вшита сужающаяся к законцовке хорда,
поэтому на трапециевидном крыле оценка «по cl×c» систематически занижает риск.
Срыв законцовки опасен тем, что элероны теряют эффективность раньше, чем
проваливается корень — самолёт сваливается на крыло.

Почему максимум по зоне, а не значение у самой кромки: у крайней панели
циркуляция обнуляется концевым вихрем по построению метода — это ноль у кромки,
а не нагрузка законцовки. Ориентиры калибровки (крыло без крутки и
стреловидности, замер при α = 2°, обновлён в AD-1203): сужение 0.7 — около 0.94,
сужение 0.6 — около 0.98, сужение 0.45 — около 1.06, сужение 0.4 — около 1.09,
сужение 0.25 — около 1.19. Стреловидность назад добавляет примерно +0.07 на
каждые 10°.
Полная таблица и разбор влияния крутки — Распределение по размаху.

Распределение считается по панелям основного крыла (циркуляция оперения в
него не входит), а эллиптический эталон нормируется на подъёмную силу этого же
крыла. Если данных панелей нет, показывается приближение по методу Шренка
(среднее эллиптического и планформного распределений) — в этом случае под
графиком стоит явная пометка, что это приближение.

В конструкторе v2 (/tools/aero-designer-v2, только для администраторов)
график и предупреждение показываются в обоих оверлеях — «Анализ крыла» и
«Полный расчёт борта». В классическом дизайнере график тот же, но
предупреждение там осталось на старом критерии — по погонной нагрузке cl×c у
крайней станции, — а он на данных VLM практически никогда не срабатывает
(замер: 0.32 / 0.27 / 0.19 для сужений 1.0 / 0.6 / 0.25 при пороге 0.9).
Проще говоря: зелёная подпись под графиком в классическом дизайнере ничего
не гарантирует — оценивайте риск по таблице выше и по форме самой кривой.

L/D — аэродинамическое качество

  • Тренер на 80 км/ч: L/D ≈ 10–15
  • FPV racing 150 км/ч: L/D ≈ 5–8
  • Планер 60 км/ч: L/D ≈ 20–30

Профильное сопротивление — по рабочему режиму

Профильное сопротивление крыла берётся на том режиме, на котором борт
реально летит
: сначала подбирается угол балансировки (L = W), затем по
поляре профиля на рабочем числе Рейнольдса берётся Cd при получившемся Cl.

Раньше вместо этого подставлялся минимум поляры — самая выгодная точка, в
которой борт находится ровно на одной скорости. На всех остальных режимах
сопротивление профиля выше, а значит показанное качество (L/D) было завышено:
по измеренной поляре E387 уже на крейсерском Cl = 0.6 занижение составляло
18%. Поэтому после обновления качество и дальность могут показаться хуже,
чем раньше — это не ухудшение борта, а исчезнувшая ошибка расчёта.

Рядом с Cd профиля показывается Cl, на котором он взят: без него число
нечем проверить.

Точность. Полярa вычисляется, а не измеряется, и её достоверность падает с
числом Рейнольдса. Ориентир получен сравнением двух независимых аэродинамических
труб на одном и том же профиле (UIUC против NASA Langley, отчёт TM-4062):

Рабочее число Рейнольдса Расхождение самих измерений по Cd
≥ 200 000 −13…+6%
≈ 100 000 +15…+38%, причём измерители это расхождение не объяснили

Ниже Re ≈ 200 000 точность профильного сопротивления принципиально хуже, и
никакая модель этого не исправляет: при таких числах Рейнольдса поток на
профиле бывает в двух разных состояниях при одном и том же угле атаки
(гистерезис ламинарного пузыря), то есть однозначной зависимости Cd(Cl) там
просто не существует. Маленькие модели на малых скоростях — как раз этот режим.

Измеренные поляры, по которым проверяется расчёт, произведены в рамках
UIUC Low-Speed Airfoil Test program (M. Selig, J. Guglielmo, A. Broeren,
P. Giguere, «Summary of Low-Speed Airfoil Data, Volume 1», SoarTech
Publications; данные — https://m-selig.ae.illinois.edu/pd.html).

Drag breakdown

cd0_airframe = cd0_parasite + CD_profile     # полный CD0 борта, AD-1423
                    ↳ фюзеляж
                    ↳ шасси (если есть)
                    ↳ интерференция

CD_total = CD_induced + cd0_airframe         # вторая сумма тех же слагаемых
                                             # НЕ собирается (AD-1423)

Сверка с ТЗ — «а достаточно ли этого»

Расчёт отвечает на вопрос «что получилось». Чтобы понять, достаточно ли
этого
, нужен второй набор чисел — то, что аппарат ОБЯЗАН уметь. Он живёт в
секции «Design assumptions» v2-редактора, блок «ТЗ модели»: скорость сваливания
не выше, время полёта и дальность не меньше, полезная нагрузка не меньше,
взлётная масса и транспортный размах не больше.

Отчёт борта показывает эти требования таблицей: слева обязательство, рядом
посчитанный результат, справа исход. Исходов четыре, и три из них — не
«выполнено»:

Исход Что означает
Выполнено требование задано, результат посчитан и не хуже требования
Не выполнено то же, но результат хуже — это и есть расхождение, ради которого стадия существует
Не проверяется требования нет. Пустое поле НИКОГДА не считается выполненным: сравнивать не с чем
Нечем проверить требование есть, а результата никто не производит (см. ниже)

Три требования сегодня попадают в последнюю строку, и это сказано прямо, а не
скрыто зелёной галочкой:

  • время полёта и дальность — нужен энергетический баланс силовой установки
    (ёмкость батареи против потребной мощности); его считает отдельная задача;
  • полезная нагрузка — в справочнике компонентов нет категории «полезная
    нагрузка», поэтому отделить её от оснащения нечем. Полная известная масса
    борта — другая величина, и она сюда сознательно не подставляется.

Два уточнения про то, с чем сравнивается результат:

  • взлётная масса сверяется с расчётной (снизу вверх) массой — компоненты
    компоновки плюс масса конструкции планера, — а не с проектной массой из
    допущений: проектная масса это то, чем борт СЧИТАЕТСЯ, и сверять её с собой
    бессмысленно;
  • транспортный размах сегодня равен полётному: разъёмного и складного крыла
    в редакторе нет. Это допущение написано под таблицей. Именно его снимает
    конструктивное решение — разъёмность или складывание отвязывают размах в
    багажнике от размаха в полёте, не трогая ни одного требования.

Ограничения метода

  • VLM — линейный метод: не учитывает отрыв потока, нелинейности при больших α.
    Модели срыва в нём нет вообще — угол балансировки может оказаться уже за
    срывом, поэтому смотрите его вместе со скоростью сваливания
  • Нейтральная точка и SM предварительные, пока ЦТ не задан компоновкой: тогда
    за ЦТ берётся аэродинамический центр крыла — ¼ САХ, отсчитанная от
    ПЕРЕДНЕЙ КРОМКИ САХ (у стреловидного/сужающегося крыла она лежит ПОЗАДИ
    корневой передней кромки, а не на ней). В оверлее «Анализ крыла»
    v2-редактора реального ЦТ нет вообще, поэтому показанный там запас подписан
    как «при опорном ЦТ» — настоящий запас устойчивости даёт «Полный расчёт
    борта» с ЦТ из компоновки
  • Балансировка — только по силам (L = W). Моментного трима (Cm = 0
    отклонением руля высоты) нет: органов управления в модели не задано,
    балансировочное сопротивление не учтено

Типичные ошибки

Проблема Причина Решение
SM < 0% CG слишком сзади или ГО мало Сдвинуть ЦТ вперёд, увеличить Vh
SM > 30% CG слишком впереди Сдвинуть ЦТ назад
L/D кажется высоким Нет профильного drag (нет данных xfoil) Запустить расчёт профиля сначала
Cm_alpha > 0 Летающее крыло без стреловидности, или ГО слишком мало Увеличить стреловидность / плечо

Связь с другими разделами