Распределение подъёмной силы по размаху (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):
- Из объекта VLM извлекаются центры вихрей
vortex_centers[:, 1](y-координаты) и интенсивностиvortex_strengths. - Берётся только блок панелей первого (основного) крыла. AeroSandbox складывает панели всех поверхностей — крыла, ГО и ВО — в один массив без признака поверхности; без этого среза на станциях внутри размаха ГО в «распределение по крылу» подмешивалась циркуляция оперения (нагрузка у корня завышалась вплоть до смены знака). Длина блока считается по разбиению крыла и сверяется с суммарным числом панелей; если раскладка не подтвердилась — честный переход на приближение Шренка, а не нарезка наугад.
- Берётся только правая консоль (
y > 0). - Вихри группируются по y-полосам (округление до 3 знаков).
- Для каждой полосы:
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 (одно на всю кривую). Кривая из приближения Шренка подписывается на графике явно.