For some context, I'm a game developer and I'm building a flight sim game. My goal is to have realistic flight physics -- not arcade physics.

I'm having issues with the maths -- it is not behaving how I would expect an aircraft to behave. Bear in mind, I'm no aerodynamicist!

I use a constant thrust directed forward (local), a constant weight force directed down (world), lift calculated with the below equations directed perpendicular to velocity, and drag directed opposite to velocity. I also have a down force provided by the elevators.

My plane is loosely based on an A320 using a wide variety of figures found online. The mass is 72,000 kg, wing span is about 35m, wing area is about 122m, engine thrust is 110,000N each.

My Maths So Far:

$$L = C_L \cdot \frac{\rho}{2} \cdot v^2 \cdot A$$ $$D = C_D \cdot \frac{\rho}{2} \cdot v^2 \cdot A$$


$C_L$ is estimated with a table against angle of attack where $0^{\circ} = 0.5$, $5^{\circ} = 1.1$, $10^{\circ} = 1.45$ etc.

$C_D$ is estimated, where $C_{D_{min}} = 0.025$, $e=0.75$, and $AR = \frac{\text{Wing Span}^2}{\text{Wing Area}}$, as: $$C_D = C_{D_{min}} + \frac{{C_L}^2}{\pi \cdot AR \cdot e}$$



When the plane accelerates it doesn't lift off the ground until about 300 knots. When it does so, it falls back down momentarily, bounces off the runway, and then climbs rapidly.

The elevator forces are clearly wrong. Before, I was just using a simple slider where I would manually select a force to apply to the elevator ranging between -300,000N to 300,000N. I then tried using the lift equation with an estimation of the wing size and area, but the force was much too strong. It produced too much torque and the plane would spin almost on the spot. I also wasn't sure how to control the lift equation with user input.

The drag force also don't work properly. Even when I reduce the thrust to zero, the drag force produced is so minuscule it would take forever to decelerate the plane.

This is a screenshot of my airplane on the runway. At the time of taking the screenshot, the aircraft was travelling at 212 knots, it was producing 444,000N of lift, and drag was 16,000N. The blue square represents the resultant force.

Forces applied to an airplane

With that all said, here are some specific questions:

  1. Can anyone identify something I've done wrong? Are the equations/constants/applications etc. ok?
  2. Will a real plane lift off the ground on it's own after reaching a certain speed (without elevator input from the pilot)?
  3. Is there an equation for the horizontal stabilizers? Is it just the regular lift equation but directed down?
  4. How do flaps, elevators, ailerons etc. affect the lift equation -- how can I accurately model this with maths?
  5. Where are the lift forces applied? Is it always applied about the center of mass even when turning/climbing?
  • $\begingroup$ I don't know if it is just typography or part of your problem. In your formulas for $L$ and $D$ it should not be $p$, but instead $\rho$ (written as \rho). $\rho = 1.2\ \mathrm{kg/m}^3$ is the density of air. $\endgroup$ – Thomas Fritsch Sep 11 '19 at 7:30
  • $\begingroup$ Ah, didn't realize TeX had a symbol for it. I'll correct it now. $\endgroup$ – mr-matt Sep 11 '19 at 7:31
  • $\begingroup$ Did you implement the eulers equations for rotation/torque yourself, or does the engine somehow handle that for you? Can you verify that the lift on your wings is zero when angle of attack is 90 degrees? Your model for lift only shows small angles of attack. Did you balance your plane properly? The center of lift has to be slightly behind the center of mass, otherwise you plane will nose down or become unstable. $\endgroup$ – Azzinoth Sep 11 '19 at 17:31
  • $\begingroup$ This is built in unity. Unity handles the application of the forces itself - I just calculate the numbers. I didn’t realise the centre of lift isn’t the same as centre of mass, I will try moving that. Is there a way of precisely calculating that? Lift won’t be zero at exactly 90 degrees since my $C_L$ is linearly interpolated from a small table of points but it should be close. $\endgroup$ – mr-matt Sep 11 '19 at 17:38
  • $\begingroup$ If it is close to zero then it should be good enough for now. $\endgroup$ – Azzinoth Sep 11 '19 at 17:56

If unity handles forces for you, then you must apply each force at the point on the plane where it is generated. For example for your wings apply the lift force of each wing at the center of mass of that wing. Do not apply the force at the center of mass of the whole airplane. That is because unity can only calculate the correct torque that way.

One game which does a good job at such a simulation is kerbal space program. I suggest you read this tutorial on airplane design for that game. Basically the center of lift (CoL) must be above the center of mass (CoM). If you have moveable control surfaces on your plane, they should to be placed such that the CoL is slightly behind the CoM for stability, but the CoL moves slightly ahead of CoM when you move the control surfaces. The plane then only takes off when pulling up.

To calculate the CoL you need to take the sum of all lift forces on the body and then calculate the point relative to the CoM at which the total lift force would generate the same torque as all the lift forces together. But you can also just play around with the position of your wings until you get a stable aircraft.


enter image description here

I found this equations:

$$\sum{F}_x=m\,a=F-R-W\tag 1$$ $$\sum{F}_y=N+A-m\,g=0\tag 2$$

where: $F$ thrust force

$R=\mu\,N$ rolling resistance force

$W=\frac{1}{2}c_W\,\rho\,S\,v^2$ air resistance force

$A=\frac{1}{2}c_A\,\rho\,S\,v^2$ lift force

$S$ wing area

From equation (2)


so for $N=0$ we get: $$v_S^2=\frac{2m\,g}{c_{AS}\,\rho\,S}$$ where $c_{AS} < c_A$

from equation (1) you get:

$$m\,a=F-R-W=F-\mu\left(m\,g-\frac{1}{2}c_A\,\rho\,S\,v^2\right) -\frac{1}{2}c_W\,\rho\,S\,v^2$$

after some calculation and with $c_R=c_W-\mu\,c_A$ you get:


the plane can only takeoff when $v_E > v_S$

the take-off distance is:


For Airbus A340 with:

$F=$ 600 [kN]

$m=$ 275 [t]

$S=362$ $[m^2]$




$\rho=1.21 \quad [kg/m^3]$

you get:

$v_S=290 \quad [km/h]$

$v_E=348\quad [km/h]$


$s_S=3085\quad [m]$

  • $\begingroup$ This looks very promising. Your numbers at the end are spot on. Quick question: what is $\mu$? $\endgroup$ – mr-matt Sep 11 '19 at 20:37
  • 1
    $\begingroup$ $\mu$ is the rolling friction coefficient $\endgroup$ – Eli Sep 11 '19 at 21:18
  • $\begingroup$ Also, what's $N$? Is it support force provided by the ground? $\endgroup$ – mr-matt Sep 11 '19 at 21:32
  • $\begingroup$ Sorry, N is the constraint Force between the wheel (tyre ) and the „road“ $\endgroup$ – Eli Sep 11 '19 at 21:35
  • 1
    $\begingroup$ Oh I see now. So when $N=0$ the lift force is great enough to overcome the weight and that's how you calculated takeoff speed and distance. That makes sense now! $\endgroup$ – mr-matt Sep 11 '19 at 21:36

It is not clear how you take into account the rotation of the airplane around the transverse horizontal axis. For example, when the airplane takes off, the thrust is not directed horizontally anymore. You should take into account the points where the forces are applied: the lift is applied mostly to the wings, the weight is applied to the center of mass, etc.

  • $\begingroup$ Thrust is applied along the relative forward direction of the plane. Weight, lift, and drag are applied to the COM. Also, what is meant by "transverse horizontal axis"? $\endgroup$ – mr-matt Sep 11 '19 at 7:11
  • $\begingroup$ @mr-matt : I am not sure what "relative forward direction of the plane" is, but probably we have the same idea, meaning that the absolute direction of the thrust changes during take-off. In a general case, the lift is not applied to COM. "transverse horizontal axis" is an axis that is orthogonal to the symmetry plane of the airplane. $\endgroup$ – akhmeteli Sep 11 '19 at 7:23
  • $\begingroup$ I'm pretty sure that's the same thing. That is, as the plane rotates on takeoff, the thrust follows the rotation of the plane. $\endgroup$ – mr-matt Sep 11 '19 at 7:24

This is going to take a lot more than two equations. If I was coding this problem, I would start with a free-body diagram of the airplane, and draw all forces acting on it. The reference plane (rather than reference frame) would be level ground. Forces would have to be broken into horizontal and vertical components relative to this plane.

In addition, I would identify the center of gravity, and determine the torque of the airplane around the three known rotation axes, based on the forces that have been identified. The rotation rate would depend on the moment of inertia of the airplane in each of these axes, which may not be all that easy to get, since the airplane is not a "convenient" shape and it's weight distribution around those axes may not be ideal. In addition, there will be drag associated with rotation, and you will have a different drag coefficient associated with each axis of rotation.

This is NOT a simple problem. It may be better to search for the most realistic arcade physics example you can find, do some research on that example, and implement a solution that uses your particular airplane based on that example.

  • $\begingroup$ This is just a quick prototype plane. Later on I will swap it out with something nicer. In the mean time, pretend it’s an a320! I will try calculating torques manually. Right now I can apply forces at positions and the engine handles the torque. I will try different drag coefficient for each axis. Is there a way of calculating these or will I have to use some artistic licence? $\endgroup$ – mr-matt Sep 11 '19 at 17:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.