V-Speeds (flight-test-operations/envelope/v-speeds)
Use when the task is v-speeds determination for a flight test:
reference landing speed, takeoff safety speed, rotation speed, and
the vno/vne guard.
Domain quick reference
- V-speeds from stall speeds with the standard certification
factors (FAR-25.107/25.125 context; the factors are common
certification practice, the exact basis comes from the flight
test program):
- vref = 1.3 * vs0, with vs0 the stalling speed in the landing
configuration, in m/s.
- v2 = 1.2 * vs1, with vs1 the stalling speed in the takeoff
configuration, in m/s.
- vr = 1.1 * vs1.
- All speeds are in m/s; convert knots or km/h before use.
- Speed ordering for a valid configuration set: vs1 >= vs (the
takeoff configuration stalls at or above the clean
configuration) and vs0 <= vs1 (the landing configuration stalls
below the takeoff configuration); every speed must be positive.
- vno_vne_guard: margin_mps = vne - operating_speed; a positive
margin means the operating speed stays below the never exceed
speed.
Workflow
- Collect the stalling speeds vs (clean), vs0 (landing
configuration), and vs1 (takeoff configuration) in m/s.
- Derive the reference landing speed with
reference_landing_speed(vs0).
- Derive the takeoff safety speed with takeoff_safety_speed(vs1).
- Derive the rotation speed with rotation_speed(vs1).
- Assemble and validate the set with v_speeds(vs, vs0, vs1);
invalid orderings raise ValueError.
- Check the operating speed against the limit with
vno_vne_guard(operating_speed, vne).
- Gate the flight test speed assessment on the validated dict and
the guard verdict.
Pitfalls
- Mixing configurations: vs0 is the landing configuration stall
and vs1 the takeoff configuration stall; swapping them flips the
ordering checks and the resulting vref and v2 values.
- Applying the factors to the wrong base speed: vref uses vs0,
while v2 and vr both use vs1.
- Trusting an unvalidated set: vs1 below vs (takeoff stall below
clean stall) or vs0 above vs1 is a physically impossible
configuration and raises ValueError, not a soft warning.
- Using a non-positive vne: the guard raises ValueError instead of
reporting a negative margin.
- Unit drift: every speed must be in m/s; a knots value fed
straight in produces vref, v2, and vr off by the conversion
factor.
Behavior contract (gate 3)
The reference landing speed, takeoff safety speed, rotation speed,
validation, and vno/vne guard logic is exercised by the gate 3
contract test: scripts/test_v_speeds.py against
scripts/v_speeds_logic.py (stdlib unittest, offline). Run:
python3 scripts/test_v_speeds.py
Compliance
- Standards referenced, not reproduced: FAR-25 is US government
work (public domain) and CS-25 is a free EASA download; the
1.3/1.2/1.1 certification factors and the vno/vne limits sit in
the FAR-25.107/25.125 context as common certification practice,
summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: v-speeds3description: Use when you must compute the v-speeds set for a flight test: derive the vref reference landing speed as 1.3 times the vs0 stalling speed in landing configuration, the v2 takeoff safety speed as 1.2 times the vs1 stalling speed in takeoff configuration, and the vr rotation speed as 1.1 times vs1, then validate the speed ordering and check the vno normal operating limit and the vne never exceed speed. Produces the vref, v2, and vr speeds, a validated v-speeds dict, and the vne guard verdict with the margin in m/s that gate the flight test speed assessment. Trigger: vref, v2, vr, vs0, vs1, vno, vne.4license: Apache-2.05---67# V-Speeds (flight-test-operations/envelope/v-speeds)89Use when the task is v-speeds determination for a flight test:10reference landing speed, takeoff safety speed, rotation speed, and11the vno/vne guard.1213## Domain quick reference1415- V-speeds from stall speeds with the standard certification16 factors (FAR-25.107/25.125 context; the factors are common17 certification practice, the exact basis comes from the flight18 test program):19 - vref = 1.3 * vs0, with vs0 the stalling speed in the landing20 configuration, in m/s.21 - v2 = 1.2 * vs1, with vs1 the stalling speed in the takeoff22 configuration, in m/s.23 - vr = 1.1 * vs1.24- All speeds are in m/s; convert knots or km/h before use.25- Speed ordering for a valid configuration set: vs1 >= vs (the26 takeoff configuration stalls at or above the clean27 configuration) and vs0 <= vs1 (the landing configuration stalls28 below the takeoff configuration); every speed must be positive.29- vno_vne_guard: margin_mps = vne - operating_speed; a positive30 margin means the operating speed stays below the never exceed31 speed.3233## Workflow34351. Collect the stalling speeds vs (clean), vs0 (landing36 configuration), and vs1 (takeoff configuration) in m/s.372. Derive the reference landing speed with38 reference_landing_speed(vs0).393. Derive the takeoff safety speed with takeoff_safety_speed(vs1).404. Derive the rotation speed with rotation_speed(vs1).415. Assemble and validate the set with v_speeds(vs, vs0, vs1);42 invalid orderings raise ValueError.436. Check the operating speed against the limit with44 vno_vne_guard(operating_speed, vne).457. Gate the flight test speed assessment on the validated dict and46 the guard verdict.4748## Pitfalls4950- Mixing configurations: vs0 is the landing configuration stall51 and vs1 the takeoff configuration stall; swapping them flips the52 ordering checks and the resulting vref and v2 values.53- Applying the factors to the wrong base speed: vref uses vs0,54 while v2 and vr both use vs1.55- Trusting an unvalidated set: vs1 below vs (takeoff stall below56 clean stall) or vs0 above vs1 is a physically impossible57 configuration and raises ValueError, not a soft warning.58- Using a non-positive vne: the guard raises ValueError instead of59 reporting a negative margin.60- Unit drift: every speed must be in m/s; a knots value fed61 straight in produces vref, v2, and vr off by the conversion62 factor.6364## Behavior contract (gate 3)6566The reference landing speed, takeoff safety speed, rotation speed,67validation, and vno/vne guard logic is exercised by the gate 368contract test: scripts/test_v_speeds.py against69scripts/v_speeds_logic.py (stdlib unittest, offline). Run:70python3 scripts/test_v_speeds.py7172## Compliance7374- Standards referenced, not reproduced: FAR-25 is US government75 work (public domain) and CS-25 is a free EASA download; the76 1.3/1.2/1.1 certification factors and the vno/vne limits sit in77 the FAR-25.107/25.125 context as common certification practice,78 summary-only per standards-map.yaml.79- compliance: STANDARDS-REF, gated: false.