Для некоторого контекста, я разработчик игр, и я создаю авиасимулятор. Моя цель — реалистичная физика полета, а не аркадная физика.
У меня проблемы с математикой — он ведет себя не так, как я ожидал бы от самолета. Имейте в виду, я не аэродинамик!
Я использую постоянную тягу, направленную вперед (локальную), постоянную силу веса, направленную вниз (мир), подъемную силу, рассчитанную с помощью приведенных ниже уравнений, направленную перпендикулярно скорости, и сопротивление, направленное противоположно скорости. У меня также есть прижимная сила, обеспечиваемая лифтами.
Мой самолет основан на A320 с использованием множества фигурок, найденных в Интернете. Масса 72 000 кг, размах крыла около 35 м, площадь крыла около 122 м, тяга двигателей по 110 000 Н каждый.
оценивается по таблице зависимости от угла атаки, где , , и т. д.
оценивается, где , , и , как:
Когда самолет разгоняется, он не отрывается от земли примерно до 300 узлов. Когда это происходит, он на мгновение падает, отскакивает от взлетно-посадочной полосы, а затем быстро набирает высоту.
Силы лифта явно неверны. Раньше я просто использовал простой ползунок, где я вручную выбирал силу, приложенную к лифту, в диапазоне от -300 000 Н до 300 000 Н. Затем я попытался использовать уравнение подъемной силы с оценкой размера и площади крыла, но сила была слишком велика. Это создавало слишком большой крутящий момент, и самолет крутился почти на месте. Я также не был уверен, как управлять уравнением подъемной силы с помощью пользовательского ввода.
Сила сопротивления также не работает должным образом. Даже когда я уменьшаю тягу до нуля, создаваемая сила лобового сопротивления настолько ничтожна, что для торможения самолета потребуется целая вечность.
Это скриншот моего самолета на взлетно-посадочной полосе. На момент создания снимка скорость самолета составляла 212 узлов, он создавал подъемную силу 444 000 Н, а лобовое сопротивление составляло 16 000 Н. Синий квадрат представляет результирующую силу.
Если единство управляет силами за вас, то вы должны прикладывать каждую силу в той точке плоскости, где она генерируется. Например, для ваших крыльев примените подъемную силу каждого крыла в центре масс этого крыла. Не прикладывайте силу к центру масс всего самолета. Это потому, что единство может рассчитать правильный крутящий момент только таким образом.
Одной из игр, которая хорошо справляется с такой симуляцией, является космическая программа kerbal. Я предлагаю вам прочитать этот учебник по дизайну самолетов для этой игры. В основном центр подъемной силы (CoL) должен быть выше центра масс (CoM). Если у вас есть подвижные рули на вашем самолете, их следует разместить так, чтобы ЦД был немного позади ЦМ для устойчивости, но ЦД перемещался немного впереди ЦМ, когда вы перемещаете рули. Затем самолет взлетает только при подтягивании.
Чтобы рассчитать CoL, вам нужно взять сумму всех подъемных сил, действующих на тело, а затем вычислить точку относительно CoM, в которой общая подъемная сила будет генерировать тот же крутящий момент, что и все подъемные силы вместе взятые. Но вы также можете просто поиграть с положением крыльев, пока не получите стабильный самолет.
Я нашел эти уравнения:
где: сила тяги
сила сопротивления качению
сила сопротивления воздуха
подъемная сила
площадь крыла
Из уравнения (2)
Таким образом, для мы получаем:
из уравнения (1) получаем:
после некоторых расчетов и с Вы получаете:
самолет может взлететь только тогда, когда
взлетная дистанция:
Для Airbus A340 с:
600 [кН]
275 [т]
Вы получаете:
и
Непонятно, как вы учитываете вращение самолета вокруг поперечной горизонтальной оси. Например, когда самолет взлетает, тяга больше не направлена горизонтально. Следует учитывать точки приложения сил: подъемная сила в основном прикладывается к крыльям, вес прикладывается к центру масс и т. д.
Это займет гораздо больше, чем два уравнения. Если бы я кодировал эту задачу, я бы начал с диаграммы свободного тела самолета и изобразил все силы, действующие на него. Базовая плоскость (а не система отсчета) будет на уровне земли. Силы должны были бы быть разбиты на горизонтальную и вертикальную составляющие относительно этой плоскости.
Кроме того, я бы определил центр тяжести и определил крутящий момент самолета вокруг трех известных осей вращения на основе идентифицированных сил. Скорость вращения будет зависеть от момента инерции самолета в каждой из этих осей, что может быть не так просто получить, поскольку самолет не имеет «удобной» формы, и его распределение веса вокруг этих осей может быть не идеальным. . Кроме того, будет сопротивление, связанное с вращением, и у вас будет различный коэффициент сопротивления, связанный с каждой осью вращения.
Это НЕ простая проблема. Может быть, лучше поискать наиболее реалистичный пример аркадной физики, который вы можете найти, провести некоторое исследование этого примера и реализовать решение, которое использует ваш конкретный самолет на основе этого примера.
Томас Фрич
\rho
).мистер-мэтт
Аззинот
мистер-мэтт
Аззинот
ЧашаКрасного
мистер-мэтт
ЧашаКрасного
Джон Алексиу
мистер-мэтт
Джон Алексиу
Джон Алексиу