Level Acceleration Flight Test (flight-test-operations/performance/level-acceleration-test)
Use when the task is acceleration capability flight testing at constant altitude: the total energy (TPS) reduction of an accelerated level flight run into the specific excess power P_s, the excess thrust (the drag gap), the acceleration, and the sustained acceleration speeds of the test band. The input is the recorded airspeed versus time trace of the run at the test weight and altitude; the output is the reduced P_s and excess thrust data an operator compares with the level flight requirements, plus the thrust available estimate when the drag polar is provided. Calibration, time alignment, and raw channel filtering of the recorder belong to flight-test-data-reduction, not to this leaf.
Domain quick reference
- Units: forces and weight in N, speeds in m/s, density in kg/m^3, time in s, g = 9.80665 m/s^2. P_s is specific power, power per unit weight, in m/s.
- Test technique: a level acceleration run at full throttle and constant altitude through the speed band, with time, calibrated airspeed, pressure altitude, outside air temperature, and weight recorded per sample; straight flight, fixed configuration.
- ISA atmosphere: isa_conditions(altitude_m) returns the temperature (K), pressure (Pa), and density (kg/m^3): T = 288.15 - 0.0065 h in the troposphere to 11000 m (216.65 K isothermal above), pressure from the hydrostatic balance, rho = P / (R T). Worked: at 8000 m, T = 236.15 K, P = 35599.8 Pa, rho = 0.52517 kg/m^3 (density ratio 0.4287); at sea level 1.225 kg/m^3.
- Equivalent to true airspeed: true_airspeed_from_eas, V_tas = V_eas * sqrt(rho0 / rho), equal dynamic pressure at the test density, the standard subsonic conversion. Worked: 110 m/s EAS at 8000 m gives 168.0 m/s true airspeed.
- Smoothing: smooth_trace applies a centered moving average over an odd window, clipped at the trace ends; even windows raise. A linear ramp is preserved exactly wherever the full window fits. Worked: window 5 on the 150 to 170 m/s ramp keeps sample 10 at 160.0 m/s.
- Acceleration: acceleration_from_trace differentiates the smoothed trace, a = dV/dt by central differences, one-sided at the two ends; times must be strictly increasing. Worked: the 150 to 170 m/s ramp over 20 s gives 1.0 m/s^2 on the assessment region.
- Total energy method: specific_excess_power, P_s = dh/dt + V * a / g, the energy height rate. Level flight has dh/dt = 0 so P_s = V * a / g; the dh/dt term covers slightly non-level runs. Worked: 160 m/s at 1 m/s^2 gives 16.315 m/s.
- Excess thrust: excess_thrust_from_ps, delta_T = W * P_s / V, the drag gap, thrust available minus drag. For a level run this equals (W / g) * a, Newton's second law along the path. Worked: 250000 N at 160 m/s gives 25492.9 N, independent of speed.
- Drag polar: lift_coefficient CL = W / (0.5 * rho * V^2 * S), drag_coefficient CD = cd0 + k * CL^2, and drag_from_polar D = 0.5 * rho * V^2 * S * CD, the thrust required for steady level flight at that speed. Worked at 160 m/s, S 122.6 m^2: CL 0.3034, CD 0.02386, D 19667.8 N.
- Thrust available: thrust_available_estimate, T = delta_T + D from the measured drag gap and the polar drag. The aircraft sustains the acceleration at a given speed when T > D, that is when the measured excess thrust is positive. Worked: 45160.8 N at 160 m/s.
- Reference corrections (documented simplified): weight_corrected_ps, P_s_ref = P_s * W_test / W_ref at constant excess thrust, first order while the induced drag change over the weight difference is small; density_corrected_ps, P_s_std = P_s * (rho_test / rho_std)^(lapse_exp - 0.5) at constant indicated airspeed with the jet thrust lapse exponent, default 0.7, the same model the climb leaf applies. Worked: 250000 N to 240000 N gives 16.995 m/s; rho ratio 0.9 gives 15.975 m/s; combined 16.641 m/s.
- Assessment region: the reported means average the samples where the smoothing window and the central difference stencil are both full, indices (window + 1) / 2 to n - (window + 1) / 2; near-edge samples carry clipped windows and reduced smoothing.
- Model caveat: the polar omits the compressibility drag rise, so the drag and thrust available estimates run optimistic at high Mach; the excess thrust from the measured acceleration does not depend on the polar and needs no model.
Workflow
- Fly the level acceleration: trim at the entry speed, full throttle, constant altitude, no configuration change through the band; record time, calibrated airspeed, pressure altitude, OAT, and weight.
- Convert the airspeed samples to true airspeed with true_airspeed_from_eas, using isa_conditions at the test altitude, or the measured day density when recorded (module scripts/level_acceleration_test_logic.py).
- Smooth the true airspeed trace with smooth_trace over an odd window (5 is the default for 1 Hz recording; widen it for noisier traces).
- Differentiate with acceleration_from_trace to the acceleration of the smoothed trace; the recorded times must be strictly increasing.
- Evaluate the specific excess power per point with specific_excess_power, dh/dt = 0 for the level run or the recorded climb rate for a slightly non-level run.
- Estimate the excess thrust per point with excess_thrust_from_ps at the test weight; the drag gap needs no polar.
- When the wing area, cd0, and k are available, add the polar drag with drag_from_polar and close to the thrust available with thrust_available_estimate; the speeds where the excess thrust is positive are the sustained acceleration speeds of the band.
- Correct the measured specific excess power to the reference condition with weight_corrected_ps and density_corrected_ps, or ps_at_reference_conditions for the combined correction.
- For the one-pass reduction call level_acceleration_summary with the times, the true airspeed trace, the test weight, the altitude or density, and optionally the polar and the reference conditions; it returns the smoothed trace, the acceleration, P_s, the excess thrust, the per-sample and band sustained verdicts, and the mean values over the assessment region.
- Report the P_s curve, the excess thrust, the sustained acceleration speeds, and the thrust available estimate for the acceleration capability assessment.
Worked example
Level acceleration run at 8000 m on the standard day (rho 0.52517 kg/m^3): true airspeed from 150 to 170 m/s over 20 s, recorded at 1 s intervals (21 samples), W = 250000 N, S = 122.6 m^2, CD0 = 0.02, K = 0.042. Smoothing window 5.
- Acceleration: the ramp slope is 1.0 m/s^2; the smoothed interior
keeps it exact and the mean over the assessment region (samples 3 to
- is 1.000 m/s^2.
- Specific excess power at 160 m/s: P_s = 160 * 1.0 / 9.80665 = 16.315 m/s; the underlying motion carries P_s = V / g from 15.296 m/s at the 150 m/s entry to 17.335 m/s at the 170 m/s exit.
- Excess thrust: delta_T = 250000 * 16.315 / 160 = 25492.9 N, equal to W * a / g, constant across the run; positive everywhere, so the whole band is sustained acceleration.
- Drag polar at 160 m/s: CL = 0.3034, CD = 0.02386, D = 19667.8 N, the thrust required; thrust available T = 25492.9 + 19667.8 = 45160.8 N. The mean drag over the smoothed band is 19686.8 N and the mean thrust available 45179.8 N.
- Constant speed check: the same airplane at 160 m/s constant over 20 s gives a = 0, P_s = 0, and delta_T = 0 exactly; the verdict is not accelerating, and the thrust available collapses to the drag, 19667.8 N.
- Weight correction to the 240000 N reference weight: P_s = 16.315 * 250000 / 240000 = 16.995 m/s at the 160 m/s point; the excess thrust is unchanged by the constant excess thrust assumption.
Verification
- ISA anchors: sea level (288.15 K, 101325 Pa, 1.225 kg/m^3), 8000 m (236.15 K, 35599.8 Pa, 0.52517 kg/m^3), tropopause 216.65 K with density ratio 0.2971, isothermal above.
- EAS to TAS identity at the sea level density and 168.0 m/s for 110 m/s EAS at 8000 m, within 1 percent.
- Smoothing preserves a linear ramp on the interior exactly and leaves a constant trace unchanged; odd windows only.
- Acceleration of a linear ramp equals the slope; a constant trace gives exactly zero; the quadratic trace reproduces 2 t by central differences.
- Worked anchors reproduced within 1 percent: P_s 16.315 m/s, excess thrust 25492.9 N equal to W * a / g, drag 19667.8 N, thrust available 45160.8 N at 160 m/s; the constant speed sub-case is exactly zero.
- The one-pass summary equals the per-point scalar chain over the assessment region, and the mean thrust available equals the mean drag plus the mean excess thrust (round-trip identity).
- Corrections are identities at the reference weight and density and reproduce the worked anchors within 1 percent.
- ValueError on non-positive speeds, weights, and densities, even windows, non-increasing times, mismatched lengths, partial polar arguments, and a trace too short for the window (all asserted in the contract test).
Related leaves
- flight-test-operations/performance/climb-performance-flight-test: the steady climb measures P_s as dh/dt; the level acceleration measures the same specific excess power as (V / g) * a, and the two runs share the weight and density correction models.
- flight-test-operations/performance/engine-flight-test: converts the measured drag gap plus the polar drag into the installed thrust and verifies the engine performance; this leaf measures the gap itself.
- flight-test-operations/performance/takeoff-distance-determination: integrates the same a = (T - D) * g / W relation over the ground roll, the accelerating case on the runway.
- flight-test-operations/planning/flight-test-data-reduction: calibration correction, time alignment, and raw trace filtering precede this reduction.
- flight-test-operations/planning/telemetry-data-acquisition: sizes the airspeed, altitude, and time channels the recorded trace comes from.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 skills/flight-test-operations/performance/level-acceleration-test/scripts/test_level_acceleration_test.py
The test covers the worked example within 1 percent, the constant speed zero sub-case, the ISA and EAS to TAS anchors, smoothing and central difference identities, the polar chain, the reference corrections, the one-pass summary against the per-point scalar calls, and ValueError rejection of non-physical inputs, even windows, and malformed traces.
Pitfalls
- Routing analytical excess power questions here: computing P_s from thrust, drag, speed, and weight, energy height trades, and zoom climb belong to flight-mechanics/performance/energy-height; this leaf is the flight test side, reducing the recorded acceleration trace of a flown run.
- Routing engine questions here: engine systems checks, fuel flow, EGT margins, and installed thrust determination belong to engine-flight-test; the level acceleration provides the drag gap, not the engine limits.
- Routing channel reduction questions here: calibration correction, time alignment, and recorder filtering belong to flight-test-data-reduction; this leaf starts from the converted, aligned trace.
- Confusing the drag gap with the installed thrust: the excess thrust is T - D, so converting it to the installed thrust requires the drag, see engine-flight-test.
- Differentiating the raw trace: differentiate the smoothed trace, or the scatter in the recorded airspeed dominates the acceleration.
- Trusting the near-edge samples: clipped smoothing windows distort the first and last (window - 1) / 2 samples; judge the band on the assessment region.
- Using an even smoothing window: the centered stencil needs a midpoint and raises.
- Forgetting the weight and density corrections before comparing runs: the measured P_s at the test weight and day does not give the reference acceleration capability directly.
- Treating the polar drag estimate as the measured result: the parabolic polar without compressibility runs optimistic at high Mach; the measured excess thrust stands alone.
- A zero or negative excess thrust is a finding, not an error: the speed is beyond the sustained acceleration capability, and the verdict reports it.
Compliance
- Standards referenced, not reproduced: FAR-25 is US government work (public domain) and CS-25 is a free EASA download; accelerated level flight testing with the total energy method is common methodology in the FAR 25.101 general performance context, summary-only per standards-map.yaml. No standard text is quoted.
- compliance: STANDARDS-REF, gated: false.