Aircraft Constraint Analysis (vehicle-design/conceptual/constraint-analysis)
Use when the task is aircraft constraint analysis for conceptual
design: the matching chart method that computes required thrust to
weight and wing loading from the stall, takeoff distance, climb
gradient, cruise, and maneuvering constraints, and the feasible design
region that bounds the propulsion and wing sizing trade.
Domain quick reference
- Wing loading W/S is in N/m^2, thrust to weight T/W is unitless,
air density rho in kg/m^3 (default 1.225 kg/m^3, sea-level ISA),
speeds in m/s, takeoff distance in m, flight path angle gamma in
rad, load factor n unitless, and g = 9.80665 m/s^2.
- Stall constraint (maximum wing loading): W/S = 0.5 * rho * CLmax *
VS^2, from lift equal to weight at the stall speed VS.
- Takeoff distance constraint (required T/W): T/W = 1.21 * (W/S) /
(rho * g * CLmax * s_TO), with s_TO the takeoff distance in m.
- Climb gradient constraint (required T/W): T/W = 1/LD + gamma, the
level-flight drag term plus the small-angle climb term, gamma in
rad; equivalently the excess thrust fraction (T - D)/W equals the
climb gradient.
- Cruise constraint (required T/W at speed V): T/W = 0.5 * rho * V^2
- CD0 / (W/S) + k * (W/S) / (0.5 * rho * V^2), the zero-lift drag
term plus the lift-induced drag term, k = 1/(pi * e * AR).
- Maneuvering constraint (required T/W in a level turn at load factor
n): T/W = 0.5 * rho * V^2 * CD0 / (W/S) + k * n^2 * (W/S) /
(0.5 * rho * V^2); the induced drag term grows with n^2, and at n = 1
the maneuvering curve reduces to the cruise curve.
- The matching chart plots required T/W against W/S, one curve per
constraint. At a given wing loading the feasible region lower bound
is the maximum of the required T/W values over the active
constraints; the boundary of the feasible design region is the set
of those lower bounds across the wing loading sweep, and every point
above the boundary is feasible for the constraint set.
- FAR-25 (14 CFR Part 25) and CS-25 set the certification context
(stall speed, takeoff field length, and climb gradients for
transport-category aeroplanes); the constraint equations are common
conceptual sizing practice.
Workflow
- Set the design point: stall speed, maximum lift coefficient, air
density, takeoff distance, lift-to-drag ratio, climb gradient,
cruise speed, zero-lift drag coefficient, induced drag factor k,
and the maneuvering load factor.
- Compute the maximum wing loading allowed by the stall speed with
stall_constraint.
- Compute the required T/W from the takeoff distance with
takeoff_constraint.
- Compute the required T/W from the climb gradient with
climb_constraint.
- Compute the required T/W at the cruise speed with
cruise_constraint.
- Compute the required T/W in the level turn with
maneuvering_constraint.
- Sweep candidate wing loadings, evaluate the constraint curves, and
assemble the feasible region lower bounds with
feasible_region_lower_bounds; the returned (W/S, T/W) pairs bound
the feasible design region and gate the conceptual design trade.
Pitfalls
- Mixing units: wing loading in kg/m^2 instead of N/m^2, or gamma in
degrees with the small-angle formula; keep everything SI with gamma
in rad.
- Forgetting the density default: rho defaults to 1.225 kg/m^3
(sea level); at altitude the lower density tightens the takeoff and
climb constraints.
- Treating the climb term as 1/LD only: the gamma term is the climb
gradient itself; dropping it understates the required T/W.
- Using the maneuvering curve at n = 1 for a turn case: the induced
drag term scales with the load factor squared; the required T/W in
a sustained turn is larger than at level flight.
- Averaging the constraint T/W values instead of taking the maximum:
the feasible region lower bound is the maximum, not the mean, and it
defines the boundary of the feasible design region.
- Using the stall constraint as a required T/W curve: it gives a
maximum wing loading boundary, not a thrust requirement.
- Passing an empty constraints dict to feasible_region_lower_bounds;
the module raises ValueError instead of guessing.
Behavior contract (gate 3)
The stall, takeoff distance, climb gradient, cruise, and maneuvering
constraints plus the feasible region lower bound logic are exercised
by the gate 3 contract test: scripts/test_constraint_analysis.py
against scripts/constraint_analysis_logic.py (stdlib unittest,
offline). Run:
python3 scripts/test_constraint_analysis.py
Compliance
- Standards referenced, not reproduced: FAR-25 is US government work
(public domain) and CS-25 is a free EASA download; the constraint
equations are common conceptual design methodology, summary-only
per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: constraint-analysis3description: Use when you must run the aircraft constraint analysis matching chart in conceptual design: compute the stall constraint wing loading from the maximum lift coefficient and the stall speed, the takeoff distance constraint thrust to weight curve, the climb gradient constraint from the excess thrust and the lift to drag ratio, the cruise constraint, and the maneuvering constraint from the load factor, then assemble the feasible design region lower bounds that gate the conceptual design trade. Produces the constraint dict, the feasible region boundary, and the required thrust to weight at the design point. Trigger: constraint analysis, matching chart method, feasible region, stall constraint, takeoff distance, climb gradient, cruise constraint, maneuvering constraint, load factor.4license: Apache-2.05---67# Aircraft Constraint Analysis (vehicle-design/conceptual/constraint-analysis)89Use when the task is aircraft constraint analysis for conceptual10design: the matching chart method that computes required thrust to11weight and wing loading from the stall, takeoff distance, climb12gradient, cruise, and maneuvering constraints, and the feasible design13region that bounds the propulsion and wing sizing trade.1415## Domain quick reference1617- Wing loading W/S is in N/m^2, thrust to weight T/W is unitless,18 air density rho in kg/m^3 (default 1.225 kg/m^3, sea-level ISA),19 speeds in m/s, takeoff distance in m, flight path angle gamma in20 rad, load factor n unitless, and g = 9.80665 m/s^2.21- Stall constraint (maximum wing loading): W/S = 0.5 * rho * CLmax *22 VS^2, from lift equal to weight at the stall speed VS.23- Takeoff distance constraint (required T/W): T/W = 1.21 * (W/S) /24 (rho * g * CLmax * s_TO), with s_TO the takeoff distance in m.25- Climb gradient constraint (required T/W): T/W = 1/LD + gamma, the26 level-flight drag term plus the small-angle climb term, gamma in27 rad; equivalently the excess thrust fraction (T - D)/W equals the28 climb gradient.29- Cruise constraint (required T/W at speed V): T/W = 0.5 * rho * V^230 * CD0 / (W/S) + k * (W/S) / (0.5 * rho * V^2), the zero-lift drag31 term plus the lift-induced drag term, k = 1/(pi * e * AR).32- Maneuvering constraint (required T/W in a level turn at load factor33 n): T/W = 0.5 * rho * V^2 * CD0 / (W/S) + k * n^2 * (W/S) /34 (0.5 * rho * V^2); the induced drag term grows with n^2, and at n = 135 the maneuvering curve reduces to the cruise curve.36- The matching chart plots required T/W against W/S, one curve per37 constraint. At a given wing loading the feasible region lower bound38 is the maximum of the required T/W values over the active39 constraints; the boundary of the feasible design region is the set40 of those lower bounds across the wing loading sweep, and every point41 above the boundary is feasible for the constraint set.42- FAR-25 (14 CFR Part 25) and CS-25 set the certification context43 (stall speed, takeoff field length, and climb gradients for44 transport-category aeroplanes); the constraint equations are common45 conceptual sizing practice.4647## Workflow48491. Set the design point: stall speed, maximum lift coefficient, air50 density, takeoff distance, lift-to-drag ratio, climb gradient,51 cruise speed, zero-lift drag coefficient, induced drag factor k,52 and the maneuvering load factor.532. Compute the maximum wing loading allowed by the stall speed with54 stall_constraint.553. Compute the required T/W from the takeoff distance with56 takeoff_constraint.574. Compute the required T/W from the climb gradient with58 climb_constraint.595. Compute the required T/W at the cruise speed with60 cruise_constraint.616. Compute the required T/W in the level turn with62 maneuvering_constraint.637. Sweep candidate wing loadings, evaluate the constraint curves, and64 assemble the feasible region lower bounds with65 feasible_region_lower_bounds; the returned (W/S, T/W) pairs bound66 the feasible design region and gate the conceptual design trade.6768## Pitfalls6970- Mixing units: wing loading in kg/m^2 instead of N/m^2, or gamma in71 degrees with the small-angle formula; keep everything SI with gamma72 in rad.73- Forgetting the density default: rho defaults to 1.225 kg/m^374 (sea level); at altitude the lower density tightens the takeoff and75 climb constraints.76- Treating the climb term as 1/LD only: the gamma term is the climb77 gradient itself; dropping it understates the required T/W.78- Using the maneuvering curve at n = 1 for a turn case: the induced79 drag term scales with the load factor squared; the required T/W in80 a sustained turn is larger than at level flight.81- Averaging the constraint T/W values instead of taking the maximum:82 the feasible region lower bound is the maximum, not the mean, and it83 defines the boundary of the feasible design region.84- Using the stall constraint as a required T/W curve: it gives a85 maximum wing loading boundary, not a thrust requirement.86- Passing an empty constraints dict to feasible_region_lower_bounds;87 the module raises ValueError instead of guessing.8889## Behavior contract (gate 3)9091The stall, takeoff distance, climb gradient, cruise, and maneuvering92constraints plus the feasible region lower bound logic are exercised93by the gate 3 contract test: scripts/test_constraint_analysis.py94against scripts/constraint_analysis_logic.py (stdlib unittest,95offline). Run:96python3 scripts/test_constraint_analysis.py9798## Compliance99100- Standards referenced, not reproduced: FAR-25 is US government work101 (public domain) and CS-25 is a free EASA download; the constraint102 equations are common conceptual design methodology, summary-only103 per standards-map.yaml.104- compliance: STANDARDS-REF, gated: false.