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

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

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

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

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

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

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

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


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

Эллиптическое распределение — теоретический идеал, соответствующий минимальному индуктивному сопротивлению (теорема Мунка–Прандтля):

cl_c_elliptic(η) = (4 × CL × S) / (π × b) × √(1 − η²)

где:
- η = y / (b/2) — относительная координата по полуразмаху
- S — площадь крыла (м²)
- b — размах (м)
- CL — суммарный коэффициент подъёмной силы

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


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

VLM (Vortex Lattice Method)

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

  1. Из объекта VLM извлекаются центры вихрей vortex_centers[:, 1] (y-координаты) и интенсивности vortex_strengths.
  2. Берётся только правая полупанель (y > 0).
  3. Вихри группируются по y-полосам (округление до 3 знаков).
  4. Для каждой полосы: 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_tip / cl_root > 0.9 Опасно (красный)
cl_tip / cl_root > 0.75 Предупреждение (жёлтый)
cl_tip / cl_root ≤ 0.75 Норма (зелёный)

При обнаружении — в правой панели Designer отображается предупреждение.


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

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

Фактическая кривая (синяя) повторяет форму эллипса (серая). Это оптимально — минимальное индуктивное сопротивление. Характерно для крыльев с умеренным сужением (λ ≈ 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
# }