Распределение по размаху

Обновлено: 2026-08-08 spanwise эллипс tip stall крутка

Распределение подъёмной силы по размаху (Spanwise / Cp-plot)

Что это и зачем

График spanwise lift distribution показывает, как подъёмная сила распределена вдоль размаха крыла. Это один из ключевых инструментов оценки аэродинамического качества и предупреждения срыва потока.

По оси X — нормированная полупоразмашина (0 = корень, 1 = законцовка).
По оси Y — произведение местного коэффициента подъёмной силы на хорду: cl × c (м).

Почему cl × c, а не просто cl?

cl × c пропорционально местной циркуляции Γ и фактической подъёмной силе на единицу размаха. Это позволяет корректно сравнивать секции с разными хордами (трапециевидное, крыло с сужением).


Эталонное эллиптическое распределение

Эллиптическое распределение — теоретический идеал, соответствующий минимальному индуктивному сопротивлению (теорема Мунка–Прандтля). Его форма всегда √(1 − η²), а масштаб подбирается так, чтобы эталон нёс ту же подъёмную силу, что и расчётная кривая:

cl_c_elliptic(η) = A × √(1 − η²),   A = 4 × I / (π × b/2)

где:
- η = y / (b/2) — относительная координата по полуразмаху
- I — интеграл фактической cl × c по полуразмаху крыла
- b — размах (м)

Раньше масштаб брался как 4 × CL × S / (π × b), то есть от суммарного CL всего борта. После того как расчётная кривая стала строиться только по панелям крыла (см. ниже), такой эталон оказывался систематически выше факта — на долю подъёмной силы оперения. Теперь обе кривые нормированы на одну и ту же величину, и «зазор до эллипса» читается честно.

Приближение Шренка (ниже) нормируется по-прежнему от CL: там обе кривые строятся из одного и того же CL, рассогласования нет.

На графике эллиптическое распределение показано серой пунктирной линией.


Метод расчёта

VLM (Vortex Lattice Method)

При наличии данных панельного метода (AeroSandbox VLM):

  1. Из объекта VLM извлекаются центры вихрей vortex_centers[:, 1] (y-координаты) и интенсивности vortex_strengths.
  2. Берётся только блок панелей первого (основного) крыла. AeroSandbox складывает панели всех поверхностей — крыла, ГО и ВО — в один массив без признака поверхности; без этого среза на станциях внутри размаха ГО в «распределение по крылу» подмешивалась циркуляция оперения (нагрузка у корня завышалась вплоть до смены знака). Длина блока считается по разбиению крыла и сверяется с суммарным числом панелей; если раскладка не подтвердилась — честный переход на приближение Шренка, а не нарезка наугад.
  3. Берётся только правая консоль (y > 0).
  4. Вихри группируются по y-полосам (округление до 3 знаков).
  5. Для каждой полосы: cl_c = 2 × Γ_strip / V_∞

Fallback: метод Шренка

Если данные VLM недоступны, используется приближение Шренка:

cl_c_schrenk(η) = (cl_c_elliptic(η) + cl_c_planform(η)) / 2

где cl_c_planform(η) = CL × chord(η) — "планформное" распределение (пропорциональное хорде).

Метод Шренка даёт хорошее приближение для прямых трапециевидных крыльев с умеренным сужением (λ > 0.3).


Предупреждение о срыве законцовки (Tip Stall)

Срыв потока опаснее всего у законцовки, так как именно там расположены элероны. Критерий берёт максимум местного cl в зоне законцовки (внешние 30% полуразмаха, η ≥ 0.7) и делит на местный cl у корня:

Условие Статус
> 1.12 Опасно (красный) — увеличить крутку или уменьшить сужение
1.05 … 1.12 Предупреждение (жёлтый)
≤ 1.05 Норма (зелёный) — корень срывается первым

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

Второй потребитель той же кривой — CL_max крыла (AD-1538). Из того же
распределения считается множитель перехода «максимум профиля → максимум крыла»:
крыло срывается, когда первое сечение дошло до предела профиля, поэтому потолок
крыла равен пределу профиля, умноженному на отношение средней местной нагрузки
к максимальной. Из него и берётся показанная скорость сваливания — сужение,
крутка и стреловидность учитываются автоматически, через форму этой кривой.
Распределения в расчёте нет — берётся типовая оценка 0.9 (Raymer), и отчёт
честно помечает, какой из двух путей сработал. Складывать их нельзя: они
описывают одну и ту же неравномерность нагрузки.

Предел у каждого сечения СВОЙ (AD-1540). Число Рейнольдса пропорционально
местной хорде, поэтому при сужении 0.4 законцовка работает при Re вдвое-втрое
ниже корневого (на борте класса «размах 1.5 м, 15 м/с» — 95 000 против 238 000),
а ниже ~100 000 профиль ведёт себя качественно иначе. Поляра поэтому считается
не в одной точке: к поляре по средней аэродинамической хорде добавляются поляры
на самой широкой и самой узкой хорде крыла, а предел между ними интерполируется
по Re (за пределами посчитанного диапазона держится крайнее значение — наклон
в непосчитанный режим не продолжается). Крыло сорвано, когда ПЕРВОЕ сечение
дошло до СВОЕГО предела: у некрученого крыла с сужением это обычно сечение ближе
к законцовке (потолок крыла падает на 0.5–1.5%), а при крутке — корень, который
работает при большем Re, и тогда потолок наоборот немного растёт. В отчёте
показаны число Рейнольдса самого узкого сечения и пары «Re → предел профиля»,
по которым посчитана поправка; на прямоугольном крыле разброса Re нет, поправка
нулевая и дополнительных поляр не считается вовсе.

Почему максимум по зоне, а не значение у самой кромки: у крайней панели циркуляция обнуляется концевым вихрем по построению метода — это ноль у кромки, а не нагрузка законцовки. Критерий «по крайней станции» на данных VLM не срабатывал вообще ни на одной реальной геометрии.

Пороги откалиброваны замером на реальном решателе при α = 2°, крылья без крутки и стреловидности, удлинения 5…13 (замер обновлён в AD-1203 — см. оговорку под таблицей):

Сужение Метрика Статус
1.0 0.79…0.89 норма
0.7 0.90…0.97 норма
0.6 0.95…1.00 норма
0.5 1.01…1.04 норма
0.45 1.05…1.06 норма, на границе при малом удлинении
0.4 1.08…1.09 предупреждение
0.35 1.11…1.12 предупреждение / опасно (переключается удлинением)
0.30 1.14…1.16 опасно
0.25 1.17…1.21 опасно

Сужение 0.30 — минимум ползунка в конструкторе v2, и он выходит за верхний порог: такая планформа без крутки действительно опасна. Сужение 0.25 в таблице — для полноты картины (через интерфейс его не задать).

Стреловидность назад добавляет примерно +0.07 на каждые 10° — это физика (законцовка грузится сильнее), и критерий её не «прощает».

Почему числа изменились в AD-1203. Пороги (1.05 / 1.12) не менялись — изменилась
ПЛАНФОРМА, которую видит решатель: угол стреловидности теперь понимается по линии
¼ хорды и там, и в чертеже, поэтому у сужающегося крыла даже при нулевом угле
передняя кромка идёт назад (как и на экспортируемой модели). Законцовка при этом
грузится чуть сильнее, и вся кривая «сужение → метрика» поднялась примерно на
+0.03. То есть предупреждение теперь считается по тому крылу, которое вы реально
печатаете.

Вердикт зависит от рабочего угла атаки — а он теперь зависит от массы. С AD-1201 анализ считается на угле, который балансирует вес (L = W), а не на фиксированных 2°. На крыле без крутки это почти ничего не меняет: отношение растёт с 0.96 при 0° до 0.98 при 12°, то есть таблица порогов выше остаётся в силе. С круткой зависимость сильная (то же крыло при −2°: 0.42 при 0° → 0.74 при 2° → 0.93 при 12°) — washout «выгорает» с ростом угла, поэтому на тяжёлом или медленном режиме вердикт закономерно строже. Смотрите его вместе с показанным в отчёте углом балансировки.

Крутка в конструкторе v2 — это washout, и он попадает в экспорт. Слайдер крутки задаёт угол законцовки относительно корня: корень остаётся на нуле, к законцовке угол уходит линейно по размаху. Так его понимают и чертёж, и экспортируемая модель, и решатель — то есть совет «увеличьте крутку» из предупреждения выше действительно исправляет ту модель, которую вы напечатаете.

Что изменилось в AD-1184. До этой правки чертёж поворачивал всё крыло целиком (по сути — угол установки), а решатель считал крутку по размаху. Из-за этого вердикт от слайдера «зеленел», а washout в экспортируемой геометрии не появлялся: совет формально срабатывал, физически — нет. Числа таблицы порогов правка не двигала (они сняты на решателе, а он трактовал крутку правильно и раньше); прежняя оговорка под вердиктом в конструкторе снята вместе с причиной.


Интерпретация результатов

Крыло близко к эллиптическому

Фактическая кривая (синяя) повторяет форму эллипса (серая). Это оптимально — минимальное индуктивное сопротивление. Характерно для крыльев с умеренным сужением (λ ≈ 0.4–0.5) и небольшой отрицательной круткой.

Повышенная нагрузка на законцовку

Фактическая кривая выше эллипса у законцовки. Признаки: малое сужение (λ → 1) или положительная крутка на законцовке. Риск срыва потока у элеронов при маневрировании.

Повышенная нагрузка у корня

Фактическая кривая выше эллипса у корня (треугольное крыло, сильное сужение). Срыв потока начнётся у корня — относительно безопасно, но ухудшает эффективность крыла.


Как улучшить распределение

Проблема Решение
Высокая нагрузка на законцовку Увеличить отрицательную крутку (washout) на −2…−3°
Высокая нагрузка на законцовку Уменьшить сужение (λ → 0.4–0.5)
Распределение далеко от эллиптического Использовать мультисекционное крыло с разными профилями

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

  • Крутка (twist_deg): отрицательная крутка (washout) снижает местный cl у законцовки → приближает к эллиптическому при нестреловидном крыле
  • Сужение (taper_ratio): λ ≈ 0.4–0.5 даёт почти эллиптическое распределение без крутки
  • Стреловидность: смещает центр давления назад, влияет на pitching moment по размаху

API

from web.services.avl.spanwise import extract_spanwise, _schrenk_fallback

# После запуска VLM:
spanwise_data = extract_spanwise(vlm_object, cond, geo, CL)

# Каждый элемент:
# {
#   "y_norm":        float,  # 0..1 (нормированная полупоразмашина)
#   "y_m":           float,  # абсолютная координата (м)
#   "cl_c":          float,  # фактическое cl × chord (м)
#   "cl_c_elliptic": float,  # эллиптический эталон (м), нормирован на ту же подъёмную силу
#   "chord_local":   float,  # местная хорда (м)
#   "cl_local":      float,  # местный cl = cl_c / chord_local
#   "source":        str,    # "vlm" (панели решателя) или "schrenk" (приближение)
# }

Ответ джобы конструктора v2 (/api/designer-v2/analysis/wing и .../aircraft) отдаёт компактную версию точек (y_norm, cl_c, cl_c_elliptic, cl_local) в поле spanwise, а источник кривой — отдельным полем spanwise_source (одно на всю кривую). Кривая из приближения Шренка подписывается на графике явно.