Почему моя математика аэродинамики полета не работает? [закрыто]

Контекст:

Для некоторого контекста, я разработчик игр, и я создаю авиасимулятор. Моя цель — реалистичная физика полета, а не аркадная физика.

У меня проблемы с математикой — он ведет себя не так, как я ожидал бы от самолета. Имейте в виду, я не аэродинамик!

Я использую постоянную тягу, направленную вперед (локальную), постоянную силу веса, направленную вниз (мир), подъемную силу, рассчитанную с помощью приведенных ниже уравнений, направленную перпендикулярно скорости, и сопротивление, направленное противоположно скорости. У меня также есть прижимная сила, обеспечиваемая лифтами.

Мой самолет основан на A320 с использованием множества фигурок, найденных в Интернете. Масса 72 000 кг, размах крыла около 35 м, площадь крыла около 122 м, тяга двигателей по 110 000 Н каждый.

Моя математика на данный момент:

л "=" С л р 2 в 2 А
Д "=" С Д р 2 в 2 А

Источник

С л оценивается по таблице зависимости от угла атаки, где 0 "=" 0,5 , 5 "=" 1.1 , 10 "=" 1,45 и т. д.

С Д оценивается, где С Д м я н "=" 0,025 , е "=" 0,75 , и А р "=" Размах крыла 2 Площадь крыла , как:

С Д "=" С Д м я н + С л 2 π А р е

Источник

Проблема:

Когда самолет разгоняется, он не отрывается от земли примерно до 300 узлов. Когда это происходит, он на мгновение падает, отскакивает от взлетно-посадочной полосы, а затем быстро набирает высоту.

Силы лифта явно неверны. Раньше я просто использовал простой ползунок, где я вручную выбирал силу, приложенную к лифту, в диапазоне от -300 000 Н до 300 000 Н. Затем я попытался использовать уравнение подъемной силы с оценкой размера и площади крыла, но сила была слишком велика. Это создавало слишком большой крутящий момент, и самолет крутился почти на месте. Я также не был уверен, как управлять уравнением подъемной силы с помощью пользовательского ввода.

Сила сопротивления также не работает должным образом. Даже когда я уменьшаю тягу до нуля, создаваемая сила лобового сопротивления настолько ничтожна, что для торможения самолета потребуется целая вечность.

Это скриншот моего самолета на взлетно-посадочной полосе. На момент создания снимка скорость самолета составляла 212 узлов, он создавал подъемную силу 444 000 Н, а лобовое сопротивление составляло 16 000 Н. Синий квадрат представляет результирующую силу.

Силы, приложенные к самолету

С учетом всего сказанного, вот несколько конкретных вопросов:

  1. Может ли кто-нибудь определить, что я сделал неправильно? Уравнения/константы/приложения и т. д. в порядке?
  2. Будет ли реальный самолет самостоятельно отрываться от земли после достижения определенной скорости (без участия пилота в руле высоты)?
  3. Есть ли уравнение для горизонтальных стабилизаторов? Это просто обычное уравнение подъемной силы, но направленное вниз?
  4. Как закрылки, рули высоты, элероны и т. д. влияют на уравнение подъемной силы — как я могу точно смоделировать это с помощью математики?
  5. Где действуют подъемные силы? Всегда ли он применяется относительно центра масс, даже при повороте/подъеме?
Я не знаю, это просто типографика или часть вашей проблемы. В ваших формулах для л и Д так не должно быть п , но вместо р (пишется как \rho). р "=" 1,2   к г / м 3 это плотность воздуха.
Ах, не знал, что у TeX есть символ для этого. сейчас поправлю.
Вы сами реализовали уравнения Эйлера для вращения/крутящего момента, или двигатель каким-то образом справился с этим за вас? Можете ли вы проверить, что подъемная сила ваших крыльев равна нулю при угле атаки 90 градусов? Ваша модель подъемной силы показывает только малые углы атаки. Вы правильно балансировали свой самолет? Центр подъемной силы должен быть немного позади центра масс, иначе ваш самолет будет падать носом или станет неустойчивым.
Это построено в единстве. Unity сама обрабатывает приложение сил — я просто вычисляю числа. Я не понимал, что центр подъемной силы не совпадает с центром масс, я попытаюсь сдвинуть это. Есть ли способ точно рассчитать это? Подъемная сила не будет равна нулю ровно на 90 градусов, так как мой С л линейно интерполируется из небольшой таблицы точек, но она должна быть близкой.
Если он близок к нулю, то на данный момент этого должно быть достаточно.
Возможно, вы захотите покопаться на Aviation.stackexchange.com. Там тоже много вопросов по авиационным формулам.
@BowlOfRed разрешен ли кросспостинг?
В общем, нет. meta.stackexchange.com/questions/64068/… . Но вы наверняка можете поискать похожие уже там. Кроме того, если на ваш вопрос нет разумных ответов, размещение на другом сайте через некоторое время может быть допустимо.
Вам не хватает центра расчета аэродинамического давления, оцениваемого с помощью коэффициента С М . Прочтите этот современный справочник или этот . Конечно, у НАСА тоже есть хорошие данные.
@ ja72 Если я правильно понимаю, аэродинамическое давление - это центр подъемной силы, а это четверть длины хорды аэродинамического профиля? Как поступить в случае, когда крылья стреловидны? Где выбрать трехмерную центральную точку?
В исходной точке (1/4 хорды) действуют силы и моменты. Момент найден с М "=" 1 2 С М р А в 2 и вы посмотрите значение С М в диаграммах аэродинамических характеристик. Комбинация силы и момента приводит к перемещению линии действия силы вперед или назад в зависимости от знака момента. Это предполагает двухмерный поток, поэтому вы разбиваете стреловидное крыло на множество полос и выполняете расчет для каждой полосы. Прочтите это и это из информации X-plane.
Возможно, вы захотите опубликовать этот вопрос в разделе «Разработка игр».

Ответы (4)

Если единство управляет силами за вас, то вы должны прикладывать каждую силу в той точке плоскости, где она генерируется. Например, для ваших крыльев примените подъемную силу каждого крыла в центре масс этого крыла. Не прикладывайте силу к центру масс всего самолета. Это потому, что единство может рассчитать правильный крутящий момент только таким образом.

Одной из игр, которая хорошо справляется с такой симуляцией, является космическая программа kerbal. Я предлагаю вам прочитать этот учебник по дизайну самолетов для этой игры. В основном центр подъемной силы (CoL) должен быть выше центра масс (CoM). Если у вас есть подвижные рули на вашем самолете, их следует разместить так, чтобы ЦД был немного позади ЦМ для устойчивости, но ЦД перемещался немного впереди ЦМ, когда вы перемещаете рули. Затем самолет взлетает только при подтягивании.

Чтобы рассчитать CoL, вам нужно взять сумму всех подъемных сил, действующих на тело, а затем вычислить точку относительно CoM, в которой общая подъемная сила будет генерировать тот же крутящий момент, что и все подъемные силы вместе взятые. Но вы также можете просто поиграть с положением крыльев, пока не получите стабильный самолет.

введите описание изображения здесь

Я нашел эти уравнения:

(1) Ф Икс "=" м а "=" Ф р Вт
(2) Ф у "=" Н + А м г "=" 0

где: Ф сила тяги

р "=" мю Н сила сопротивления качению

Вт "=" 1 2 с Вт р С в 2 сила сопротивления воздуха

А "=" 1 2 с А р С в 2 подъемная сила

С площадь крыла

Из уравнения (2)

Н "=" м г А "=" м г 1 2 с А р С в 2

Таким образом, для Н "=" 0 мы получаем:

в С 2 "=" 2 м г с А С р С
где с А С < с А

из уравнения (1) получаем:

м а "=" Ф р Вт "=" Ф мю ( м г 1 2 с А р С в 2 ) 1 2 с Вт р С в 2

после некоторых расчетов и с с р "=" с Вт мю с А Вы получаете:

а ( в ) "=" с р р С 2 м ( 2 Ф мю м г с р р С в Е 2 в 2 )

самолет может взлететь только тогда, когда в Е > в С

взлетная дистанция:

с С "=" 0 в С в г в а ( в ) "=" м с р р С п ( 1 в С 2 в Е 2 )

Для Airbus A340 с:

Ф "=" 600 [кН]

м "=" 275 [т]

С "=" 362 [ м 2 ]

мю "=" 0,04

с А С "=" 1,9 , с А "=" 1,5

с А / с Вт "=" 5

р "=" 1,21 [ к г / м 3 ]

Вы получаете:

в С "=" 290 [ к м / час ]

в Е "=" 348 [ к м / час ]

и

с С "=" 3085 [ м ]

Это выглядит очень многообещающе. Ваши цифры в конце на месте. Быстрый вопрос: что такое мю ?
мю коэффициент трения качения
Кроме того, что Н ? Это сила поддержки, обеспечиваемая землей?
Извините, N - это ограничивающая сила между колесом (покрышкой) и «дорогой».
О, теперь я вижу. Так когда Н "=" 0 подъемная сила достаточно велика, чтобы преодолеть вес, и именно так вы рассчитали взлетную скорость и расстояние. Теперь это имеет смысл!

Непонятно, как вы учитываете вращение самолета вокруг поперечной горизонтальной оси. Например, когда самолет взлетает, тяга больше не направлена ​​горизонтально. Следует учитывать точки приложения сил: подъемная сила в основном прикладывается к крыльям, вес прикладывается к центру масс и т. д.

Тяга прикладывается вдоль относительного направления самолета вперед. Вес, подъемная сила и сопротивление применяются к COM. Кроме того, что подразумевается под «поперечной горизонтальной осью»?
@mr-matt: я не уверен, что такое «относительное направление самолета вперед», но, вероятно, у нас одна и та же идея, означающая, что абсолютное направление тяги изменяется во время взлета. В общем случае лифт не применяется к COM. «поперечная горизонтальная ось» — это ось, ортогональная плоскости симметрии самолета.
Я почти уверен, что это одно и то же. То есть, когда самолет вращается при взлете, тяга следует за вращением самолета.

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

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

Это НЕ простая проблема. Может быть, лучше поискать наиболее реалистичный пример аркадной физики, который вы можете найти, провести некоторое исследование этого примера и реализовать решение, которое использует ваш конкретный самолет на основе этого примера.

Это всего лишь быстрый прототип самолета. Позже поменяю на что-нибудь покрасивее. А пока представьте, что это а320! Я попробую рассчитать крутящие моменты вручную. Прямо сейчас я могу прикладывать силы в определенных положениях, и двигатель справляется с крутящим моментом. Я попробую разные коэффициенты сопротивления для каждой оси. Есть ли способ рассчитать их или мне придется использовать какую-то художественную лицензию?