Short-Period Mode Analysis (flight-mechanics/stability-control/short-period-mode-analysis)
Use when the task is the short-period longitudinal mode: the fast,
well-damped pitch oscillation that dominates the response to elevator
input and turbulence on transport aircraft. This leaf takes the
dimensionless stability derivatives, converts them to dimensional
per-unit-mass derivatives, and derives the short-period natural
frequency and damping ratio from the two-DOF (alpha, q) pitch model,
then checks the mode against Level 1 flying qualities damping and
frequency boundaries. It complements the static pitch stability
treatment of flight-mechanics/stability-control/longitudinal-stability
and the full-mode treatment of
flight-mechanics/stability-control/dynamic-stability.
Domain quick reference
Documented convention (stability axes): x forward, y out the right
wing, z down. Perturbation states are the angle of attack alpha and
the pitch rate q. Dimensionless stability coefficients (per rad):
C_Z_alpha, C_Z_q, C_m_alpha, C_m_q, C_m_alphadot. Conversion to
dimensional per-unit-mass derivatives uses the dynamic pressure
q_bar, the wing area S, the mean chord c_bar, the mass m, the pitch
inertia I_yy, the speed V, and the aerodynamic timescale
tau = c_bar / (2 * V):
- Z_alpha = q_bar * S * C_Z_alpha / m, in m/s^2 per rad.
- Z_q = q_bar * S * c_bar * C_Z_q / (2 * V * m), in m/s per rad;
the state matrix keeps the 1 + Z_q / V term only when |Z_q| / V is
not negligible (z_q_negligible flags the case).
- M_alpha = q_bar * S * c_bar * C_m_alpha / I_yy, in 1/s^2 per rad.
- M_q = q_bar * S * c_bar^2 * C_m_q / (2 * V * I_yy), in 1/s per rad.
- M_alphadot = q_bar * S * c_bar^2 * C_m_alphadot / (2 * V * I_yy),
in 1/s per rad.
The two-DOF pitch model with Z_q neglected has the state matrix
A = [[Z_alpha / V, 1],
[M_alpha + M_alphadot * Z_alpha / V, M_q + M_alphadot]]
with det(A) = M_q * Z_alpha / V - M_alpha (the M_alphadot terms
cancel in the determinant) and tr(A) = Z_alpha / V + M_q +
M_alphadot. Therefore:
- omega_nsp = sqrt(M_q * Z_alpha / V - M_alpha), in rad/s.
- zeta_sp = -(Z_alpha / V + M_q + M_alphadot) / (2 * omega_nsp),
dimensionless.
For a pitch-stable, damped configuration M_alpha < 0, M_q < 0 and
Z_alpha < 0, so the radicand is positive. A non-positive radicand is
categorized as a non-oscillatory or divergent (unstable) mode, and
short_period_analysis returns it with level 3. Zero total damping
gives zeta_sp = 0 (undamped oscillation) and negative total damping
gives zeta_sp < 0 (divergent oscillation); both fail Level 1.
Phugoid separation: the Lanchester phugoid frequency is
omega_np = sqrt(2) * g / V. The short-period approximation assumes
the phugoid is much slower; phugoid_separation flags the mode as
separated when omega_nsp / omega_np >= 5 (default).
Level 1 flying qualities (MIL-F-8785C style summary, referenced not
reproduced): damping ratio bands 0.35-1.30 (category A), 0.30-2.00
(category B), 0.25-2.00 (category C); minimum natural frequency
0.28 rad/s (A and C) and 0.10 rad/s (B). Level 1 requires both
criteria, boundaries inclusive. A damped oscillation outside the
Level 1 band is Level 2; undamped, divergent, or non-oscillatory
modes are Level 3.
Relation to the longitudinal-stability leaf: that leaf establishes
static pitch stability from C_m_alpha (the pitch stiffness slope and
the neutral point); this leaf treats the same configuration
dynamically, where M_alpha contributes the spring term of the
short-period oscillation while M_q and M_alphadot provide the
damping.
Workflow
- Collect the dynamic pressure, wing area, mean chord, speed, mass,
pitch inertia, and the coefficient slopes C_Z_alpha, C_Z_q,
C_m_alpha, C_m_q, C_m_alphadot.
- Convert the coefficients to dimensional derivatives with
dimensionless_derivative_conversion; check the resulting Z_q with
z_q_negligible to confirm the approximation holds.
- Compute the natural frequency with short_period_frequency and the
damping ratio with short_period_damping.
- Verify the mode separation with phugoid_separation against the
Lanchester phugoid frequency.
- Get the complete verdict with short_period_analysis, which returns
stable, oscillatory, omega_n, zeta, and the Level 1/2/3 verdict
with reasons; pick the flight phase category (A, B, or C) for the
band check.
- Confirm the deterministic checks with the contract test
scripts/test_short_period_mode_analysis.py.
Worked example
A transport configuration at cruise: q_bar = 14000 Pa, S = 30 m^2,
c_bar = 2.5 m, V = 150 m/s, m = 12000 kg, I_yy = 85000 kg m^2,
C_Z_alpha = -5.0, C_Z_q = -3.0, C_m_alpha = -0.6, C_m_q = -12.0,
C_m_alphadot = -3.0.
- tau = 2.5 / 300 = 0.00833 s.
- Z_alpha = 14000 * 30 * (-5) / 12000 = -175 m/s^2 per rad, so
Z_alpha / V = -1.167 /s.
- M_alpha = 14000 * 30 * 2.5 * (-0.6) / 85000 = -7.41 /s^2.
- M_q = 14000 * 30 * 6.25 * (-12) / (2 * 150 * 85000) = -1.235 /s.
- M_alphadot = 14000 * 30 * 6.25 * (-3) / (2 * 150 * 85000) =
-0.309 /s.
- omega_nsp = sqrt((-1.235)(-175)/150 - (-7.41)) = sqrt(8.853) =
2.98 rad/s (period about 2.1 s).
- zeta_sp = -(-1.167 - 1.235 - 0.309) / (2 * 2.98) = 0.456.
- Level 1 check (category A): zeta 0.456 is within [0.35, 1.30] and
omega_n 2.98 rad/s is above 0.28 rad/s, so the mode is Level 1.
- Phugoid separation: omega_np = sqrt(2) * 9.80665 / 150 =
0.0925 rad/s; the ratio omega_nsp / omega_np = 32.2, well above
the minimum of 5, so the approximation is valid.
- Z_q negligibility: |Z_q| / V = 0.875 / 150 = 0.0058, below 0.05,
so neglecting Z_q in the state matrix is justified.
Pitfalls
- Taking the square root of a non-positive radicand: omega_nsp =
sqrt(M_q*Z_alpha/V - M_alpha) is real only for a pitch-stable damped
configuration; a non-positive radicand means a non-oscillatory or
divergent mode and short_period_analysis reports level 3, so do not force
a frequency from it.
- Neglecting Z_q without the check: the state matrix keeps the 1 + Z_q/V
term only when |Z_q|/V is not negligible (0.05 rule); z_q_negligible flags
the case before you drop the term.
- Reading the Level 1 band as open: the boundaries are inclusive (0.35-1.30
category A damping, 0.28 rad/s minimum frequency) and Level 1 requires
both damping and frequency; zero total damping (zeta = 0) and negative
damping are Level 3, not Level 2.
- Checking the wrong category band: the damping bands differ by flight phase
category (A 0.35-1.30, B 0.30-2.00, C 0.25-2.00) with frequency floors
0.28 (A, C) and 0.10 (B) rad/s.
- Forgetting phugoid separation: the approximation assumes
omega_nsp/omega_np >= 5 against the Lanchester frequency sqrt(2)*g/V;
phugoid_separation flags when the mode separation assumption does not
hold.
Related leaves
- flight-mechanics/stability-control/longitudinal-stability: static
pitch stability, C_m_alpha sign, and neutral point; the static
counterpart of this leaf.
- flight-mechanics/stability-control/dynamic-stability: the full
longitudinal and lateral-directional mode set including the
short-period band criterion at the aircraft level.
- flight-mechanics/stability-control/trim-analysis: the trimmed
flight condition (q_bar, alpha) that fixes the operating point for
the derivative evaluation.
- flight-mechanics/stability-control/stability-derivatives-avl:
estimating the dimensionless coefficient slopes this leaf consumes.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_short_period_mode_analysis.py
The test covers the derivative conversion, the natural frequency and
damping anchors, the M_alphadot effect on damping, zero and negative
damping, unstable non-oscillatory modes, the Level 1 boundaries at
the band edges and frequency floors, the category-dependent bands,
phugoid separation, the Z_q negligibility check, and invalid-input
edge cases.
Compliance
- Standards referenced, not reproduced: FAR-25.181 and CS-25.181
require heavily damped short period oscillations for transport
aeroplanes; the damping and frequency bands are a MIL-F-8785C style
summary only, per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: short-period-mode-analysis3description: Use when you must analyze the short-period longitudinal mode of an aircraft: convert the dimensionless stability derivatives C_m_alpha, C_m_q, C_m_alphadot, C_Z_alpha and C_Z_q to dimensional per-unit-mass derivatives with the aerodynamic timescale, compute the short-period natural frequency and damping ratio from the two-DOF pitch model, verify the phugoid separation assumption, and check the mode against the Level 1 flying qualities damping and frequency boundaries for the flight phase category. Produces the mode metrics and the Level 1, 2, or 3 verdict that feeds the dynamic stability assessment and complements the static longitudinal stability leaf. Trigger: short period, natural frequency, damping ratio, flying qualities, pitch oscillation, stability derivatives, mode analysis.4license: Apache-2.05---67# Short-Period Mode Analysis (flight-mechanics/stability-control/short-period-mode-analysis)89Use when the task is the short-period longitudinal mode: the fast,10well-damped pitch oscillation that dominates the response to elevator11input and turbulence on transport aircraft. This leaf takes the12dimensionless stability derivatives, converts them to dimensional13per-unit-mass derivatives, and derives the short-period natural14frequency and damping ratio from the two-DOF (alpha, q) pitch model,15then checks the mode against Level 1 flying qualities damping and16frequency boundaries. It complements the static pitch stability17treatment of flight-mechanics/stability-control/longitudinal-stability18and the full-mode treatment of19flight-mechanics/stability-control/dynamic-stability.2021## Domain quick reference2223Documented convention (stability axes): x forward, y out the right24wing, z down. Perturbation states are the angle of attack alpha and25the pitch rate q. Dimensionless stability coefficients (per rad):26C_Z_alpha, C_Z_q, C_m_alpha, C_m_q, C_m_alphadot. Conversion to27dimensional per-unit-mass derivatives uses the dynamic pressure28q_bar, the wing area S, the mean chord c_bar, the mass m, the pitch29inertia I_yy, the speed V, and the aerodynamic timescale30tau = c_bar / (2 * V):3132- Z_alpha = q_bar * S * C_Z_alpha / m, in m/s^2 per rad.33- Z_q = q_bar * S * c_bar * C_Z_q / (2 * V * m), in m/s per rad;34 the state matrix keeps the 1 + Z_q / V term only when |Z_q| / V is35 not negligible (z_q_negligible flags the case).36- M_alpha = q_bar * S * c_bar * C_m_alpha / I_yy, in 1/s^2 per rad.37- M_q = q_bar * S * c_bar^2 * C_m_q / (2 * V * I_yy), in 1/s per rad.38- M_alphadot = q_bar * S * c_bar^2 * C_m_alphadot / (2 * V * I_yy),39 in 1/s per rad.4041The two-DOF pitch model with Z_q neglected has the state matrix4243 A = [[Z_alpha / V, 1],44 [M_alpha + M_alphadot * Z_alpha / V, M_q + M_alphadot]]4546with det(A) = M_q * Z_alpha / V - M_alpha (the M_alphadot terms47cancel in the determinant) and tr(A) = Z_alpha / V + M_q +48M_alphadot. Therefore:4950- omega_nsp = sqrt(M_q * Z_alpha / V - M_alpha), in rad/s.51- zeta_sp = -(Z_alpha / V + M_q + M_alphadot) / (2 * omega_nsp),52 dimensionless.5354For a pitch-stable, damped configuration M_alpha < 0, M_q < 0 and55Z_alpha < 0, so the radicand is positive. A non-positive radicand is56categorized as a non-oscillatory or divergent (unstable) mode, and57short_period_analysis returns it with level 3. Zero total damping58gives zeta_sp = 0 (undamped oscillation) and negative total damping59gives zeta_sp < 0 (divergent oscillation); both fail Level 1.6061Phugoid separation: the Lanchester phugoid frequency is62omega_np = sqrt(2) * g / V. The short-period approximation assumes63the phugoid is much slower; phugoid_separation flags the mode as64separated when omega_nsp / omega_np >= 5 (default).6566Level 1 flying qualities (MIL-F-8785C style summary, referenced not67reproduced): damping ratio bands 0.35-1.30 (category A), 0.30-2.0068(category B), 0.25-2.00 (category C); minimum natural frequency690.28 rad/s (A and C) and 0.10 rad/s (B). Level 1 requires both70criteria, boundaries inclusive. A damped oscillation outside the71Level 1 band is Level 2; undamped, divergent, or non-oscillatory72modes are Level 3.7374Relation to the longitudinal-stability leaf: that leaf establishes75static pitch stability from C_m_alpha (the pitch stiffness slope and76the neutral point); this leaf treats the same configuration77dynamically, where M_alpha contributes the spring term of the78short-period oscillation while M_q and M_alphadot provide the79damping.8081## Workflow82831. Collect the dynamic pressure, wing area, mean chord, speed, mass,84 pitch inertia, and the coefficient slopes C_Z_alpha, C_Z_q,85 C_m_alpha, C_m_q, C_m_alphadot.862. Convert the coefficients to dimensional derivatives with87 dimensionless_derivative_conversion; check the resulting Z_q with88 z_q_negligible to confirm the approximation holds.893. Compute the natural frequency with short_period_frequency and the90 damping ratio with short_period_damping.914. Verify the mode separation with phugoid_separation against the92 Lanchester phugoid frequency.935. Get the complete verdict with short_period_analysis, which returns94 stable, oscillatory, omega_n, zeta, and the Level 1/2/3 verdict95 with reasons; pick the flight phase category (A, B, or C) for the96 band check.976. Confirm the deterministic checks with the contract test98 scripts/test_short_period_mode_analysis.py.99100## Worked example101102A transport configuration at cruise: q_bar = 14000 Pa, S = 30 m^2,103c_bar = 2.5 m, V = 150 m/s, m = 12000 kg, I_yy = 85000 kg m^2,104C_Z_alpha = -5.0, C_Z_q = -3.0, C_m_alpha = -0.6, C_m_q = -12.0,105C_m_alphadot = -3.0.106107- tau = 2.5 / 300 = 0.00833 s.108- Z_alpha = 14000 * 30 * (-5) / 12000 = -175 m/s^2 per rad, so109 Z_alpha / V = -1.167 /s.110- M_alpha = 14000 * 30 * 2.5 * (-0.6) / 85000 = -7.41 /s^2.111- M_q = 14000 * 30 * 6.25 * (-12) / (2 * 150 * 85000) = -1.235 /s.112- M_alphadot = 14000 * 30 * 6.25 * (-3) / (2 * 150 * 85000) =113 -0.309 /s.114- omega_nsp = sqrt((-1.235)(-175)/150 - (-7.41)) = sqrt(8.853) =115 2.98 rad/s (period about 2.1 s).116- zeta_sp = -(-1.167 - 1.235 - 0.309) / (2 * 2.98) = 0.456.117- Level 1 check (category A): zeta 0.456 is within [0.35, 1.30] and118 omega_n 2.98 rad/s is above 0.28 rad/s, so the mode is Level 1.119- Phugoid separation: omega_np = sqrt(2) * 9.80665 / 150 =120 0.0925 rad/s; the ratio omega_nsp / omega_np = 32.2, well above121 the minimum of 5, so the approximation is valid.122- Z_q negligibility: |Z_q| / V = 0.875 / 150 = 0.0058, below 0.05,123 so neglecting Z_q in the state matrix is justified.124125## Pitfalls126127- Taking the square root of a non-positive radicand: omega_nsp =128 sqrt(M_q*Z_alpha/V - M_alpha) is real only for a pitch-stable damped129 configuration; a non-positive radicand means a non-oscillatory or130 divergent mode and short_period_analysis reports level 3, so do not force131 a frequency from it.132- Neglecting Z_q without the check: the state matrix keeps the 1 + Z_q/V133 term only when |Z_q|/V is not negligible (0.05 rule); z_q_negligible flags134 the case before you drop the term.135- Reading the Level 1 band as open: the boundaries are inclusive (0.35-1.30136 category A damping, 0.28 rad/s minimum frequency) and Level 1 requires137 both damping and frequency; zero total damping (zeta = 0) and negative138 damping are Level 3, not Level 2.139- Checking the wrong category band: the damping bands differ by flight phase140 category (A 0.35-1.30, B 0.30-2.00, C 0.25-2.00) with frequency floors141 0.28 (A, C) and 0.10 (B) rad/s.142- Forgetting phugoid separation: the approximation assumes143 omega_nsp/omega_np >= 5 against the Lanchester frequency sqrt(2)*g/V;144 phugoid_separation flags when the mode separation assumption does not145 hold.146147## Related leaves148149- flight-mechanics/stability-control/longitudinal-stability: static150 pitch stability, C_m_alpha sign, and neutral point; the static151 counterpart of this leaf.152- flight-mechanics/stability-control/dynamic-stability: the full153 longitudinal and lateral-directional mode set including the154 short-period band criterion at the aircraft level.155- flight-mechanics/stability-control/trim-analysis: the trimmed156 flight condition (q_bar, alpha) that fixes the operating point for157 the derivative evaluation.158- flight-mechanics/stability-control/stability-derivatives-avl:159 estimating the dimensionless coefficient slopes this leaf consumes.160161## Behavior contract (gate 3)162163Run the deterministic contract test (stdlib unittest, offline):164165 python3 scripts/test_short_period_mode_analysis.py166167The test covers the derivative conversion, the natural frequency and168damping anchors, the M_alphadot effect on damping, zero and negative169damping, unstable non-oscillatory modes, the Level 1 boundaries at170the band edges and frequency floors, the category-dependent bands,171phugoid separation, the Z_q negligibility check, and invalid-input172edge cases.173174## Compliance175176- Standards referenced, not reproduced: FAR-25.181 and CS-25.181177 require heavily damped short period oscillations for transport178 aeroplanes; the damping and frequency bands are a MIL-F-8785C style179 summary only, per standards-map.yaml.180- compliance: STANDARDS-REF, gated: false.