Spin Testing (flight-test-operations/envelope/spin-testing)
Use when the task is the spin flight test: the spin test point matrix
across configuration, center of gravity, weight, and altitude, the
entry, incipient, and developed spin phases, the recovery control
procedure and its turn count and altitude loss criteria, the recovery
parachute decision, and the spin resistance verdict with pro-spin
controls held at the stall. This leaf covers the spin itself and its
recovery; the stall boundary and warning onset are the
stall-characteristics-testing leaf, and the post-stall and deep stall
envelope with departure and spin entry resistance from the high angle
of attack side is the high-angle-of-attack-testing leaf.
Domain quick reference
- Spin entry procedure: from a stabilized condition at or above the
entry altitude, slow to the stall, then apply the pro-spin controls
(full aft stick, full rudder in the spin direction, ailerons neutral
or with the rotation) and hold them until autorotation develops; the
entry point is recorded at the first sustained yaw rate.
- Incipient versus developed spin: the incipient phase covers the
first 1 to 2 turns while the rotation rate builds and the motion is
not yet steady; the developed spin is the steady autorotation with a
stabilized yaw rate, typically from about 2 turns onward.
- Spin recovery controls: the standard recovery is opposite rudder
against the rotation, stick forward to break the stall, and ailerons
neutral, held until rotation stops, then the resulting dive is
arrested; recovery is measured from the moment the recovery controls
are applied.
- Recovery criteria: a program typically requires the recovery to be
complete within a set turn count (for example 2 additional turns) and
a set altitude loss (for example 3000 m) from recovery control
application; exceeding either limit marks the spin unrecoverable by
the criterion.
- Recovery parachute requirements: the spin chute is the last-resort
recovery device, required when there is no prior recovery
demonstration for the configuration, when developed spin testing is
planned, when the recovery check predicts an unrecoverable spin, or
on the first flight of a new configuration.
- Test point matrix: points combine configuration (gear and flap
setting), CG position in percent MAC, gross weight, and pressure
altitude; the critical points are the aft CG, the light weight, and
the high altitude cases, and points outside the approved CG envelope
are flagged for envelope approval or parachute coverage before they
fly.
- Spin-resistant criteria (FAR 25.201 / CS-25.201 context,
paraphrased): in the stall demonstration with pro-spin controls
applied at the stall, the airplane must be resistant to spinning; if
autorotation develops it must stay within the allowed turn count and
altitude loss and stop promptly.
- Instrumentation and data reduction: rotation rate, bank angle, angle
of attack, sideslip, control positions, altitude and altitude loss,
and the turn count from entry are recorded and reduced per flight;
the phase classification uses the turn count and the sustained yaw
rate.
- Safety and abort criteria: a minimum entry altitude floor, the
parachute arm and disarm sequence, and the abort rule that the spin
is terminated the moment the recovery controls fail to stop the
rotation within the limits.
Workflow
- Build the spin test point matrix with
spin_test_point_matrix(configs, cg_conditions, weights_kg,
altitudes_m): every combination of configuration, CG, weight, and
altitude is one point, and each point carries the cg_envelope_ok
flag against the approved CG envelope.
- Classify the rotation with
spin_phase_classify(turns, yaw_rate_deg_s) to label the entry,
incipient, and developed phases of each spin.
- Check the recovery with
spin_recovery_check(turns_to_recover, altitude_loss_m,
turns_limit, altitude_loss_limit_m) for each spin flown.
- Decide the recovery parachute with
recovery_parachute_requirement(prior_recovery_demonstrated,
developed_spin_planned, unrecoverable_predicted, first_flight)
before the campaign starts and before any developed spin point.
- Judge the spin resistance with
spin_resistance_check(pro_spin_turns, pro_spin_altitude_loss_m,
max_allowed_turns, max_allowed_altitude_loss_m) for the
pro-spin control checks at the stall.
- Confirm the deterministic behavior with the contract test
scripts/test_spin_testing.py.
Worked example
A transport test program plans spin points over configurations
[clean, takeoff-flaps], CG positions [18.0, 30.0, 36.0] percent MAC,
weights [18000, 21000] kg, and altitudes [3000, 6000] m, with an
approved CG envelope of 15 to 35 percent MAC:
- spin_test_point_matrix builds 2 * 3 * 2 * 2 = 24 points; the 8
points at 36.0 percent MAC carry cg_envelope_ok False and need
envelope approval or parachute coverage before they fly.
- spin_phase_classify(0.5, 25.0) returns "entry";
spin_phase_classify(1.5, 30.0) returns "incipient";
spin_phase_classify(2.5, 40.0) returns "developed".
- spin_recovery_check(1.5, 1800.0) against the 2 turn and 3000 m
limits returns recoverable; spin_recovery_check(3.5, 1500.0)
exceeds the turn limit and returns unrecoverable.
- With no prior recovery demonstration and developed spins planned,
recovery_parachute_requirement returns required with two reasons,
so the spin chute is fitted before the developed spin points.
- spin_resistance_check(0.8, 900.0) against the 1 turn and 1500 m
limits returns resistant; spin_resistance_check(2.1, 800.0)
returns not-resistant.
Pitfalls
- Flying CG points outside the approved envelope without approval: the
8 points at 36.0 percent MAC against a 15-35 percent approved
envelope carry cg_envelope_ok False and need envelope approval or
parachute coverage before they fly.
- Classifying the phase from the turn count alone: the phase label
uses the turn count with the sustained yaw rate - (0.5, 25.0) is
entry, (1.5, 30.0) incipient, and (2.5, 40.0) developed.
- Judging recoverability against the wrong criteria: the recovery
check compares turns and altitude loss against the program limits
(2 turns, 3000 m here), so (1.5, 1800.0) recovers while (3.5,
1500.0) exceeds the turn limit and is unrecoverable.
- Flying developed spin points before the parachute decision: with no
prior recovery demonstration and developed spins planned,
recovery_parachute_requirement returns required with two reasons and
the spin chute is fitted first.
- Confusing spin resistance with spin recovery: resistance is judged
against its own limits (1 turn, 1500 m), so (0.8, 900.0) is
resistant while (2.1, 800.0), past the turn limit, is not.
- Treating the parachute as optional whenever recovery is predicted:
the chute is also required on the first flight of a new configuration
and when an unrecoverable spin is predicted, per the requirement
logic.
Related leaves
This leaf sits in the envelope pack beside
stall-characteristics-testing (the stall boundary, warning onset, and
stall recovery demonstration), high-angle-of-attack-testing (the
post-stall and deep stall envelope with departure and spin entry
resistance), envelope-expansion (clearing the envelope that spin
testing probes), and v-speeds (the speed references for the entry
maneuvers).
Behavior contract (gate 3)
The matrix builder, phase classification, recovery check, parachute
requirement, and spin resistance logic is exercised by the gate 3
contract test: scripts/test_spin_testing.py against
scripts/spin_testing_logic.py (stdlib unittest, offline). Run:
python3 scripts/test_spin_testing.py
Compliance
- Standards referenced, not reproduced: FAR-25 is US government work
(public domain) and CS-25 is a free EASA download; the spin entry,
phase, recovery, parachute, and spin resistance practice is common
flight test methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: spin-testing3description: Use when the task is spin flight testing, spin recovery, spin resistance, or recovery parachute planning. Plan and execute the spin flight test: build the spin test point matrix across configurations, center of gravity positions, weights, and altitudes, flag the points outside the approved CG envelope, classify the entry, incipient, and developed spin phases from the rotation, apply the recovery control procedure and check the recovery against the turn count and altitude loss limits, decide when the recovery parachute is required, and judge the FAR 25.201 spin resistance verdict with pro-spin controls held at the stall. Produces the test point matrix, the phase classification, the recovery verdict, the parachute decision, and the spin resistance assessment. Trigger: spin testing, spin entry, incipient spin, developed spin, spin recovery, recovery parachute, spin resistance, FAR 25.201, spin test point matrix.4license: Apache-2.05---67# Spin Testing (flight-test-operations/envelope/spin-testing)89Use when the task is the spin flight test: the spin test point matrix10across configuration, center of gravity, weight, and altitude, the11entry, incipient, and developed spin phases, the recovery control12procedure and its turn count and altitude loss criteria, the recovery13parachute decision, and the spin resistance verdict with pro-spin14controls held at the stall. This leaf covers the spin itself and its15recovery; the stall boundary and warning onset are the16stall-characteristics-testing leaf, and the post-stall and deep stall17envelope with departure and spin entry resistance from the high angle18of attack side is the high-angle-of-attack-testing leaf.1920## Domain quick reference2122- Spin entry procedure: from a stabilized condition at or above the23 entry altitude, slow to the stall, then apply the pro-spin controls24 (full aft stick, full rudder in the spin direction, ailerons neutral25 or with the rotation) and hold them until autorotation develops; the26 entry point is recorded at the first sustained yaw rate.27- Incipient versus developed spin: the incipient phase covers the28 first 1 to 2 turns while the rotation rate builds and the motion is29 not yet steady; the developed spin is the steady autorotation with a30 stabilized yaw rate, typically from about 2 turns onward.31- Spin recovery controls: the standard recovery is opposite rudder32 against the rotation, stick forward to break the stall, and ailerons33 neutral, held until rotation stops, then the resulting dive is34 arrested; recovery is measured from the moment the recovery controls35 are applied.36- Recovery criteria: a program typically requires the recovery to be37 complete within a set turn count (for example 2 additional turns) and38 a set altitude loss (for example 3000 m) from recovery control39 application; exceeding either limit marks the spin unrecoverable by40 the criterion.41- Recovery parachute requirements: the spin chute is the last-resort42 recovery device, required when there is no prior recovery43 demonstration for the configuration, when developed spin testing is44 planned, when the recovery check predicts an unrecoverable spin, or45 on the first flight of a new configuration.46- Test point matrix: points combine configuration (gear and flap47 setting), CG position in percent MAC, gross weight, and pressure48 altitude; the critical points are the aft CG, the light weight, and49 the high altitude cases, and points outside the approved CG envelope50 are flagged for envelope approval or parachute coverage before they51 fly.52- Spin-resistant criteria (FAR 25.201 / CS-25.201 context,53 paraphrased): in the stall demonstration with pro-spin controls54 applied at the stall, the airplane must be resistant to spinning; if55 autorotation develops it must stay within the allowed turn count and56 altitude loss and stop promptly.57- Instrumentation and data reduction: rotation rate, bank angle, angle58 of attack, sideslip, control positions, altitude and altitude loss,59 and the turn count from entry are recorded and reduced per flight;60 the phase classification uses the turn count and the sustained yaw61 rate.62- Safety and abort criteria: a minimum entry altitude floor, the63 parachute arm and disarm sequence, and the abort rule that the spin64 is terminated the moment the recovery controls fail to stop the65 rotation within the limits.6667## Workflow68691. Build the spin test point matrix with70 spin_test_point_matrix(configs, cg_conditions, weights_kg,71 altitudes_m): every combination of configuration, CG, weight, and72 altitude is one point, and each point carries the cg_envelope_ok73 flag against the approved CG envelope.742. Classify the rotation with75 spin_phase_classify(turns, yaw_rate_deg_s) to label the entry,76 incipient, and developed phases of each spin.773. Check the recovery with78 spin_recovery_check(turns_to_recover, altitude_loss_m,79 turns_limit, altitude_loss_limit_m) for each spin flown.804. Decide the recovery parachute with81 recovery_parachute_requirement(prior_recovery_demonstrated,82 developed_spin_planned, unrecoverable_predicted, first_flight)83 before the campaign starts and before any developed spin point.845. Judge the spin resistance with85 spin_resistance_check(pro_spin_turns, pro_spin_altitude_loss_m,86 max_allowed_turns, max_allowed_altitude_loss_m) for the87 pro-spin control checks at the stall.886. Confirm the deterministic behavior with the contract test89 scripts/test_spin_testing.py.9091## Worked example9293A transport test program plans spin points over configurations94[clean, takeoff-flaps], CG positions [18.0, 30.0, 36.0] percent MAC,95weights [18000, 21000] kg, and altitudes [3000, 6000] m, with an96approved CG envelope of 15 to 35 percent MAC:9798- spin_test_point_matrix builds 2 * 3 * 2 * 2 = 24 points; the 899 points at 36.0 percent MAC carry cg_envelope_ok False and need100 envelope approval or parachute coverage before they fly.101- spin_phase_classify(0.5, 25.0) returns "entry";102 spin_phase_classify(1.5, 30.0) returns "incipient";103 spin_phase_classify(2.5, 40.0) returns "developed".104- spin_recovery_check(1.5, 1800.0) against the 2 turn and 3000 m105 limits returns recoverable; spin_recovery_check(3.5, 1500.0)106 exceeds the turn limit and returns unrecoverable.107- With no prior recovery demonstration and developed spins planned,108 recovery_parachute_requirement returns required with two reasons,109 so the spin chute is fitted before the developed spin points.110- spin_resistance_check(0.8, 900.0) against the 1 turn and 1500 m111 limits returns resistant; spin_resistance_check(2.1, 800.0)112 returns not-resistant.113114## Pitfalls115116- Flying CG points outside the approved envelope without approval: the117 8 points at 36.0 percent MAC against a 15-35 percent approved118 envelope carry cg_envelope_ok False and need envelope approval or119 parachute coverage before they fly.120- Classifying the phase from the turn count alone: the phase label121 uses the turn count with the sustained yaw rate - (0.5, 25.0) is122 entry, (1.5, 30.0) incipient, and (2.5, 40.0) developed.123- Judging recoverability against the wrong criteria: the recovery124 check compares turns and altitude loss against the program limits125 (2 turns, 3000 m here), so (1.5, 1800.0) recovers while (3.5,126 1500.0) exceeds the turn limit and is unrecoverable.127- Flying developed spin points before the parachute decision: with no128 prior recovery demonstration and developed spins planned,129 recovery_parachute_requirement returns required with two reasons and130 the spin chute is fitted first.131- Confusing spin resistance with spin recovery: resistance is judged132 against its own limits (1 turn, 1500 m), so (0.8, 900.0) is133 resistant while (2.1, 800.0), past the turn limit, is not.134- Treating the parachute as optional whenever recovery is predicted:135 the chute is also required on the first flight of a new configuration136 and when an unrecoverable spin is predicted, per the requirement137 logic.138139## Related leaves140141This leaf sits in the envelope pack beside142stall-characteristics-testing (the stall boundary, warning onset, and143stall recovery demonstration), high-angle-of-attack-testing (the144post-stall and deep stall envelope with departure and spin entry145resistance), envelope-expansion (clearing the envelope that spin146testing probes), and v-speeds (the speed references for the entry147maneuvers).148149## Behavior contract (gate 3)150151The matrix builder, phase classification, recovery check, parachute152requirement, and spin resistance logic is exercised by the gate 3153contract test: scripts/test_spin_testing.py against154scripts/spin_testing_logic.py (stdlib unittest, offline). Run:155156python3 scripts/test_spin_testing.py157158## Compliance159160- Standards referenced, not reproduced: FAR-25 is US government work161 (public domain) and CS-25 is a free EASA download; the spin entry,162 phase, recovery, parachute, and spin resistance practice is common163 flight test methodology, summary-only per standards-map.yaml.164- compliance: STANDARDS-REF, gated: false.