# Aircraft flight dynamics
> [[PORTAL_Aviation|Aviation]] · [[PORTAL_Avionics|Avionics]] spine.
<!-- MICROSIMGEN:BEGIN v1.7 — hand-placed to match siblings; regenerate with g08_place_microsims.py (§15) -->
## Microsims — three.js
### Aircraft flight dynamics (three.js)
<div class="microsim-player">
<iframe src="https://wikitube-3d-microsims.netlify.app/Aircraft_flight_dynamics.html" width="100%" height="620" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="Aircraft flight dynamics — three.js microsim"></iframe>
</div>
**Open it full-screen:** [Aircraft_flight_dynamics.html](https://wikitube-3d-microsims.netlify.app/Aircraft_flight_dynamics.html) · library `threejs` · route `microsim/threejs/`
### Related microsims
Live sims on neighbouring articles:
- [[Fixed-wing_aircraft]]
- [[Helicopter]]
- [[Turbojet]]
- [[Airplane]]
- [[Three-axis]]
- [[Avionics]]
*Sim hosted off-article; the article owns the reference, not the runtime (WIKI_RULES §10.4).*
<!-- MICROSIMGEN:END -->
## Overview
A rigid aeroplane in flight has **six degrees of freedom**: three translations and three rotations. Flight dynamics describes them in a right-handed **body-axis frame** whose origin sits at the centre of gravity and whose axes are carried around by the airframe itself — *x* forward along the fuselage reference line, *y* out the right wing, *z* down through the belly. The three translations are surge, sway and heave along those axes, with velocity components *u*, *v*, *w*. The three rotations are **roll** about *x*, **pitch** about *y* and **yaw** about *z*, with angular rates *p*, *q* and *r*. The orientation of the body frame relative to the earth is normally reported as the three **Euler angles** — bank φ, pitch attitude θ and heading ψ — obtained by a 3‑2‑1 sequence of rotations (yaw, then pitch, then roll) from a local north‑east‑down frame.
Three primary controls act, nominally, one per axis. The **ailerons** are differentially deflected surfaces near the wingtips and produce a rolling moment *L* about *x*. The **elevator** on the horizontal tail produces a pitching moment *M* about *y*. The **rudder** on the fin produces a yawing moment *N* about *z*. This tidy one-control-per-axis picture is the first thing every pilot is taught and the first thing every pilot discovers to be false.
The reason is that the equations of motion are coupled in at least four independent ways, and all four are visible in the microsim above. **Kinematically**, a roll rate at a non-zero angle of attack feeds directly into sideslip, because *p* has a component along the wind axis. **Gravitationally**, once the aircraft is banked, weight has a component along the body *y* axis and the aircraft slips toward the low wing. **Aerodynamically**, the ailerons produce a yawing moment as well as a rolling moment (**adverse yaw**), and sideslip produces a rolling moment as well as a yawing moment (**dihedral effect**). And **dynamically**, roll and yaw combine into a single oscillatory mode, the **Dutch roll**, in which the two motions trade energy about a quarter of a cycle out of phase.
Sitting underneath all of this is the one parameter that decides whether the aeroplane flies at all: the fore-and-aft position of the centre of gravity relative to the **neutral point**. Move the CG aft past that point and the pitch stiffness derivative *C*<sub>mα</sub> changes sign, the aircraft becomes statically unstable in pitch, and a small nose-up disturbance grows instead of decaying. Nothing else in the subject changes character so completely on the strength of one sign.
The method used to write all of this down as equations is due to **G. H. Bryan**, whose *Stability in Aviation* (1911) introduced the idea of expanding the aerodynamic forces and moments as a first-order Taylor series in the disturbance variables. The coefficients of that expansion are the **stability derivatives**, and they remain the standard currency of the field more than a century later.
## The physics
### The linearisation and the derivatives
Assume the aircraft is trimmed in steady, wings-level flight at speed *U*<sub>0</sub>, and consider only small perturbations away from that condition. Each aerodynamic force and moment is then written as a first-order expansion, so that for example the pitching moment becomes
M = M_0 + (dM/dalpha)*alpha + (dM/dq)*q + (dM/dalpha_dot)*alpha_dot + (dM/ddelta_e)*delta_e
Each partial derivative is non-dimensionalised by dynamic pressure *q̄* = ½ρ*U*², a reference area *S* and a reference length — the mean aerodynamic chord *c̄* for pitch, the span *b* for roll and yaw — giving the familiar coefficients *C*<sub>mα</sub>, *C*<sub>mq</sub>, *C*<sub>lβ</sub>, *C*<sub>lp</sub>, *C*<sub>nβ</sub>, *C*<sub>nr</sub> and their relatives. The rate derivatives carry an extra factor *c̄*/2*U* or *b*/2*U*, which is why every mode frequency in the sim scales with airspeed while the damping ratios barely move.
Because the trim state is symmetric, the linearised problem separates into two independent sets: a **longitudinal** set in α, *q*, θ and speed, and a **lateral‑directional** set in β, *p*, *r* and φ. That separation is a property of the *linearisation*, not of the aeroplane. The sim keeps the linear aerodynamics but propagates attitude with exact quaternion kinematics, so at large bank angles the two sets visibly stop being independent.
The numbers used are the widely reproduced derivative set for the **North American Navion**, a four-seat general-aviation aeroplane that has served as the standard worked example in flight-dynamics teaching since the 1960s: *S* = 17.09 m², *b* = 10.18 m, *c̄* = 1.737 m, mass 1247 kg, *I*<sub>xx</sub> = 1421 kg m², *I*<sub>yy</sub> = 4068 kg m², *I*<sub>zz</sub> = 4786 kg m², trimmed at 53.6 m/s at sea level. That the numbers really are that aeroplane's can be checked from the sim's own output: it reproduces the published Navion modes to within a few per cent — roll subsidence time constant 0.119 s, short period ω<sub>n</sub> = 3.60 rad/s at ζ = 0.69, Dutch roll near 2.2–2.4 rad/s at ζ ≈ 0.20–0.23, and a spiral root of order 0.009 s⁻¹, marginally divergent.
### Longitudinal stability: the neutral point and the sign of *C*<sub>mα</sub>
Static longitudinal stability asks a single question: if a gust raises the angle of attack, does the aeroplane generate a moment that pushes the nose back down? Writing the pitching-moment coefficient about the CG as
Cm = Cm0 + Cm_alpha * alpha
the requirement is simply *C*<sub>mα</sub> < 0.
The **neutral point** *x*<sub>np</sub> is the fore-and-aft station at which the whole aircraft's aerodynamic lift increment due to a change in angle of attack acts — the aerodynamic centre of the complete configuration, wing plus tail plus fuselage, including the downwash the wing sheds onto the tail. If the CG is ahead of it, an increase in α puts extra lift *behind* the CG, and the resulting nose-down moment opposes the disturbance. If the CG is behind it, the extra lift acts *ahead* of the CG and the moment amplifies the disturbance.
The distance between the two, expressed as a fraction of the mean aerodynamic chord, is the **static margin**:
SM = (x_np - x_cg) / c_bar
and the pitch stiffness follows directly:
Cm_alpha = -CL_alpha * SM
This is the live equation displayed in the microsim's heads-up display. With *C*<sub>Lα</sub> = 4.44 rad⁻¹ and the tabulated *C*<sub>mα</sub> = −0.683 rad⁻¹, the reference static margin is 15.4 % of the MAC — an entirely ordinary forward-CG light-aircraft value. Drag the CG slider aft and *C*<sub>mα</sub> marches toward zero, passes through it, and comes out positive.
What that sign change does to the *dynamics* is best seen in the short-period approximation, in which airspeed is held constant (which is exactly what the sim's airspeed slider does) so the state reduces to α and *q*:
alpha_dot = (Z_alpha/U) * alpha + q
q_dot = (M_alpha + M_adot*Z_alpha/U) * alpha + (M_q + M_adot) * q
The characteristic equation is *s*² − (trace)*s* + (determinant) = 0. At the reference CG the determinant is positive, the roots are a complex conjugate pair, and the aircraft answers a disturbance with a well-damped oscillation of ω<sub>n</sub> = 3.60 rad/s and ζ = 0.69 — the classic **short period**, over in about a second. Push the CG to a static margin of −10 % and the determinant goes *negative*. A negative determinant means two real roots of opposite sign, one of them positive: the motion is no longer an oscillation at all but an **aperiodic divergence**, with a time to double amplitude of about 2.4 s in this case. The sim reports exactly this, switching the short-period readout from (ω<sub>n</sub>, ζ) to a doubling time as soon as the determinant changes sign.
There is a second longitudinal mode, the slow, lightly damped **phugoid** exchange of altitude and airspeed, with a period of tens of seconds. It is deliberately absent here, because holding airspeed constant is precisely the assumption that removes it.
### Lateral–directional stability and the Dutch roll
The lateral–directional set has three important derivatives. *C*<sub>yβ</sub> is the side force from sideslip, dominated by the fin. *C*<sub>nβ</sub> is the **weathercock** or directional stiffness; it must be positive for the nose to swing back into the relative wind. *C*<sub>lβ</sub> is the **dihedral effect**; it must be negative, meaning that a sideslip to the right produces a roll to the left, so that a dropped wing tends to pick itself back up.
Those two stiffnesses, coupled by the kinematics and by *C*<sub>lr</sub> (roll due to yaw rate) and *C*<sub>np</sub> (yaw due to roll rate), produce three modes rather than two. The **roll subsidence** is a fast, non-oscillatory first-order lag governed almost entirely by roll damping, with time constant τ = −1/*L*<sub>p</sub> ≈ 0.12 s: bank commands are essentially rate commands. The **spiral mode** is a very slow convergence or divergence of bank angle; on this airframe it is marginally divergent with a doubling time of about 76 s, which is typical, and which is why an aeroplane left alone gradually rolls into a descending turn.
The interesting one is the **Dutch roll**: a coupled oscillation in which the nose scribes an ellipse while the wings rock, roll and yaw running roughly a quarter cycle out of phase. The name comes from the gait of a Dutch speed skater, whose body rolls one way while the skate swings the other. A two-degree-of-freedom approximation in β and *r* gives
omega_dr = sqrt( N_beta + Y_beta*N_r/U )
zeta_dr = -(N_r + Y_beta/U) / (2*omega_dr)
which for the reference condition returns 2.18 rad/s and ζ = 0.23, or a period of about 2.9 s. The physical loop is short: sideslip generates a yawing moment through *C*<sub>nβ</sub> that removes the sideslip and overshoots, while the same sideslip generates a rolling moment through *C*<sub>lβ</sub>, and the resulting yaw rate feeds back into roll through *C*<sub>lr</sub>. An aircraft with a large dihedral effect relative to its directional stiffness — swept wings and a high altitude are the usual culprits — has a badly damped Dutch roll, which is why almost every jet transport carries a **yaw damper**, an automatic rudder loop that feeds back yaw rate. Regulators treat it as a certification item; 14 CFR § 25.181 requires any lateral–directional oscillation to be positively damped with the controls free.
The **Dutch-roll doublet** button in the sim is the standard flight-test excitation: full rudder one way for half a period, full rudder the other way for half a period, then hands off. Timing the pulses to the mode's own period pumps energy into it rather than fighting it, and the sim sizes its doublet from the currently computed Dutch-roll period so the technique still works after the airspeed slider has moved.
### Adverse yaw
Deflect the ailerons to roll right and the nose initially swings **left**. Two distinct mechanisms are responsible, and both are in the model.
The first is *C*<sub>nδa</sub>, the direct yawing moment from the aileron deflection itself. Rolling right requires the left aileron down, which increases the lift on the left wing and, with it, the induced drag on that wing. The extra drag on the left wing yaws the nose left. The derivative is therefore opposite in sign to *C*<sub>lδa</sub>, and for this airframe it is small: −0.0035 against +0.134.
The second, and in a sustained roll much the larger, is *C*<sub>np</sub>, yaw due to roll rate. Once the aircraft is actually rolling, each wing meets a local relative wind tilted by its own vertical velocity. On the down-going wing that tilt inclines the local lift vector forward; on the up-going wing it inclines it aft. The pair of forces is a couple about the yaw axis, again nose-left for a right roll. (The accompanying change in induced drag pushes the other way, but for a normal unswept wing the lift-vector tilt dominates, so *C*<sub>np</sub> comes out negative.) At full aileron the sim's secondary readout shows the roll-rate contribution running several times larger than the aileron contribution, which is the honest ranking for a general-aviation wing; on other configurations, and during the first fraction of a second before roll rate has built up, the balance is different.
The consequences follow at once. Hold aileron and watch: the yaw-rate readout goes briefly negative — that is the adverse yaw — then reverses as sideslip builds and the fin weathercocks the nose back. Meanwhile the bank angle grows, gravity acquires a component along body *y*, and sideslip builds toward the low wing. Real aeroplanes attack this with **differential ailerons** (more up-travel than down), **Frise ailerons** (whose down-going nose protrudes into the airflow beneath the wing), an **aileron–rudder interconnect**, or, on large jets, **spoilers** that roll by killing lift rather than adding it. The pilot's version is simply to lead with rudder.
## Controls -> what each maps to
| Control | Symbol | Range and units | Physical meaning |
| --- | --- | --- | --- |
| Aileron | *δ*<sub>a</sub> | −20 to +20 degrees | Differential wing-trailing-edge deflection. Positive is right aileron up, left aileron down: stick right, roll right. Drives the rolling moment through *C*<sub>lδa</sub> = +0.134 rad⁻¹ and, unavoidably, an adverse yawing moment through *C*<sub>nδa</sub> = −0.0035 rad⁻¹. |
| Elevator | *δ*<sub>e</sub> | −25 to +25 degrees | Horizontal-tail trailing-edge deflection, measured as a perturbation from the trim setting. Positive is trailing edge **down**, giving a nose-down moment: *C*<sub>mδe</sub> = −0.923 rad⁻¹. Pulling back on a real stick corresponds to negative *δ*<sub>e</sub>. |
| Rudder | *δ*<sub>r</sub> | −25 to +25 degrees | Fin trailing-edge deflection. Positive is trailing edge right — right pedal, nose right: *C*<sub>nδr</sub> = +0.072 rad⁻¹. It also produces a small rolling moment *C*<sub>lδr</sub> because the fin force acts above the CG, and a much larger *indirect* roll through the sideslip it creates acting on *C*<sub>lβ</sub>. |
| Airspeed | *V* (or *U*<sub>0</sub>) | 35 to 95 m/s (68 to 185 kt) | True airspeed at the trim point, held constant by assumption. Sets the dynamic pressure *q̄* = ½ρ*V*², hence every dimensional derivative, hence the mode frequencies. It also sets the trim angle of attack, since *C*<sub>L</sub> = *mg*/*q̄S* must still equal weight: 5.25° at 53.6 m/s, 12.3° at 35 m/s, 1.7° at 95 m/s. |
| Static margin | SM | −15 to +35 % of MAC | Centre-of-gravity position expressed as (*x*<sub>np</sub> − *x*<sub>cg</sub>)/*c̄*. Positive means the CG is ahead of the neutral point. Sets *C*<sub>mα</sub> = −*C*<sub>Lα</sub>·SM directly, so it is a sign switch on longitudinal static stability. The airframe visibly slides forward on screen as the CG moves aft, because the CG is by definition the origin of the body axes. |
| Dutch-roll doublet | — | button, or the **D** key | Applies a flight-test rudder doublet of ±4°, each half-pulse lasting half the currently computed Dutch-roll period, then releases the controls so the free mode can be watched decaying. |
| Rate damping | *C*<sub>mq</sub>, *C*<sub>mα̇</sub>, *C*<sub>lp</sub>, *C*<sub>nr</sub> | on / off | Zeroes the four pure rate-damping derivatives. With them off, the short period rings, the roll rate no longer settles, and the Dutch roll loses most of its damping. The cross-coupling derivatives *C*<sub>np</sub> and *C*<sub>lr</sub> are deliberately left in, because they are the lesson. This is a thought experiment, not a configuration any aeroplane has. |
| Reset | — | button, or the **R** key | Returns to trimmed level flight at 53.6 m/s with a 15.4 % static margin, zeroes all perturbation states and clears the trails. |
Keyboard equivalents exist for every control: arrow keys for aileron and elevator, comma and full stop for rudder, square brackets to move the CG, **C** to centre the controls, **K** to toggle damping.
## Learning objective
**After using this microsim, the learner should be able to state the sign condition for longitudinal static stability (*C*<sub>mα</sub> < 0, equivalently a positive static margin), predict from the CG position alone whether a pitch disturbance will oscillate or diverge, and explain — with the correct derivative named in each case — why deflecting the ailerons alone produces sideslip and yaw, and why roll and yaw combine into the single oscillatory Dutch roll mode rather than remaining independent.**
## Limits and connections
The aerodynamic model here is a **linearised stability-derivative model** and nothing more. Every force and moment is a first-order Taylor coefficient multiplied by a state or a control deflection, evaluated about one trimmed condition. It is not a full nonlinear flight simulator, and it should not be read as one. Specifically:
- **No stall, and no nonlinear aerodynamics of any kind.** Lift is proportional to angle of attack all the way up. The heads-up display flags total α beyond about 15°, and freezes the integration entirely beyond 45° or 4 rad/s, because past those points the equations are describing nothing physical. Read the *trend*, not the numbers, once the warnings appear.
- **Airspeed is a control, not a state.** There is no thrust–drag balance and therefore no phugoid, no speed stability, and no explanation of what happens to trim when the throttle moves.
- **The cross-product of inertia *I*<sub>xz</sub> is omitted**, so roll and yaw are coupled only aerodynamically and kinematically, not inertially. On a real aircraft with a heavy fuselage this term matters, and it matters a great deal in rapid rolls.
- **Moving the CG changes only *C*<sub>mα</sub>.** In reality shifting the CG also changes *C*<sub>mq</sub> and *C*<sub>mα̇</sub> (both scale roughly with the square of the tail moment arm), changes *C*<sub>nβ</sub> through the fin arm, and changes *I*<sub>yy</sub>. Holding them fixed isolates the sign change, which is the point, but it understates how much else moves. The elevator required to re-trim is likewise not recomputed, because elevator here is a perturbation from whatever trim exists.
- **Only two things are not linearised**, and both are flagged in the source: attitude is propagated as a unit quaternion from *p*, *q*, *r*, and the gravity term in the sideslip equation retains its sin φ cos θ form. Without those, large bank angles would be nonsense.
- **Sign conventions for control deflections genuinely differ between texts.** The derivative magnitudes used are the published Navion values; the signs have been normalised to the conventions stated in the table above, and at least one standard reference tabulates rudder derivatives with the opposite sign because it defines positive rudder as trailing-edge-*left*. A derivative sign carries no meaning without the deflection convention attached to it.
- **The Dutch roll and spiral figures shown are approximations**, computed from the standard two-degree-of-freedom and quasi-steady formulae rather than from the eigenvalues of the full fourth-order lateral matrix. They land within a few per cent of the exact roots for this airframe; they would not for every airframe.
The wider story runs in two directions. Backwards, to the airframe: the [[Fixed-wing_aircraft]] and [[Airplane]] articles cover the surfaces and structure that generate these derivatives in the first place, and [[Three-axis]] control is the pilot-facing description of the same three moments. [[Helicopter]] flight dynamics is a genuinely different problem, because the rotor supplies lift, propulsion and control simultaneously and the flapping blades introduce their own lightly damped modes. [[Turbojet]] engine dynamics set the timescale on which the thrust that this model simply assumes can actually be changed.
Forwards, to the control system: the negative static margin that this sim treats as a failure is, on modern fighters, a design choice. **Relaxed static stability** deliberately places the CG at or behind the neutral point to cut trim drag and sharpen pitch response, and then hands the divergent airframe to a full-authority digital flight control system that stabilises it hundreds of times a second. The General Dynamics F‑16 was the first production aircraft built this way. That is the point at which flight dynamics becomes [[Avionics]]: the aeroplane is no longer required to be stable, only *stabilisable*, and the sign of *C*<sub>mα</sub> stops being a verdict on the airframe and becomes a specification for the computer.
## References
- Bryan, G. H. *Stability in Aviation: An Introduction to Dynamical Stability as Applied to the Motions of Aeroplanes.* Macmillan, London, 1911. (The origin of the stability-derivative method.)
- Etkin, B.; Reid, L. D. *Dynamics of Flight: Stability and Control*, 3rd ed. Wiley, New York, 1996. ISBN 0-471-03418-5.
- Nelson, R. C. *Flight Stability and Automatic Control*, 2nd ed. WCB/McGraw-Hill, Boston, 1998. ISBN 0-07-046273-9. (Appendix B tabulates the Navion derivative set used here.)
- McRuer, D.; Ashkenas, I.; Graham, D. *Aircraft Dynamics and Automatic Control.* Princeton University Press, Princeton, 1973. ISBN 0-691-08083-6.
- Teper, G. L. *Aircraft Stability and Control Data.* Systems Technology, Inc., Technical Report 176-1, Hawthorne, California, 1969 (prepared for NASA Ames Research Center). (Primary source for the Navion and many other derivative sets.)
- Stevens, B. L.; Lewis, F. L.; Johnson, E. N. *Aircraft Control and Simulation: Dynamics, Controls Design, and Autonomous Systems*, 3rd ed. Wiley, Hoboken, 2016. ISBN 978-1-118-87098-3.
- Cook, M. V. *Flight Dynamics Principles: A Linear Systems Approach to Aircraft Stability and Control*, 3rd ed. Butterworth-Heinemann, Oxford, 2013.
- Roskam, J. *Airplane Flight Dynamics and Automatic Flight Controls, Part I.* DARcorporation, Lawrence, Kansas, 2001.
- Phillips, W. F. *Mechanics of Flight*, 2nd ed. Wiley, Hoboken, 2009.
- Perkins, C. D.; Hage, R. E. *Airplane Performance, Stability and Control.* Wiley, New York, 1949.
- Abzug, M. J.; Larrabee, E. E. *Airplane Stability and Control: A History of the Technologies That Made Aviation Possible*, 2nd ed. Cambridge University Press, Cambridge, 2002.
- Anderson, J. D., Jr. *Fundamentals of Aerodynamics*, 6th ed. McGraw-Hill Education, New York, 2017.
- Gilruth, R. R. *Requirements for Satisfactory Flying Qualities of Airplanes.* NACA Report No. 755, National Advisory Committee for Aeronautics, 1943.
- Talay, T. A. *Introduction to the Aerodynamics of Flight.* NASA SP-367, NASA Scientific and Technical Information Office, Washington, D.C., 1975.
- United States Department of Defense. *Military Specification: Flying Qualities of Piloted Airplanes*, MIL-F-8785C, 1980.
- Federal Aviation Administration. *Airworthiness Standards: Transport Category Airplanes*, Title 14 Code of Federal Regulations Part 25, § 25.171–§ 25.181 (static and dynamic stability).
- Federal Aviation Administration. *Pilot's Handbook of Aeronautical Knowledge*, FAA-H-8083-25C, 2023. (Chapters on aerodynamics of flight and weight and balance.)
- Federal Aviation Administration. *Airplane Flying Handbook*, FAA-H-8083-3C, 2021.
**On the spine:** [[Aircraft]] · [[Aircraft_flight_dynamics]] · [[Fixed-wing_aircraft]] · [[Helicopter]] · [[Turbojet]] · [[Jet_engine]] · [[Sonic_boom]] · [[Contrail]] · [[Air_traffic_control]] · [[Avionics]] · [[Aviation]].
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Aircraft_flight_dynamics) : [Wikitube](https://en.wikitube.io/wiki/Aircraft_flight_dynamics)
---
*PORTAL_Aviation three.js batch · 2026-08-05 · sim staged in `_3d_deploy_stage/`.*