Vehicle Weight Estimation (vehicle-design/sizing/weight-estimation)
Use when the task is aircraft weight estimation and weight and balance: moments and center of gravity from component weights and arms, CG envelope checks, and empty-weight fraction band checks for class-I / class-II sizing.
Domain quick reference
- Moment: M = weight * arm (arm is the station distance).
- Center of gravity: CG = sum(weight*arm) / sum(weight).
- CG envelope: the CG must lie between the forward and aft limits.
- Typical empty-weight fractions (class-I bands; validate against program data): transport 0.42-0.55, general-aviation 0.55-0.68, turboprop 0.50-0.62.
- FAR-25 (14 CFR Part 25) and CS-25 set the certification context for weight and balance for transport-category aeroplanes.
Workflow
- Collect component weights and arms into matching lists.
- Compute the CG with cg_from_moments.
- Check the CG against the forward and aft envelope limits with cg_within_envelope.
- Compute the empty-weight fraction and compare it against the category band with check_empty_weight_fraction.
- Confirm the deterministic checks with the contract test scripts/test_weight_estimation.py.
Pitfalls
- Mismatched weights and arms lists (length mismatch) producing a wrong CG.
- Zero total weight (empty or all-zero lists) dividing by zero.
- Reversed forward/aft limits making every CG fail.
- Using a band from one category for another category.
Behavior contract (gate 3)
The moment, CG, envelope, and band logic is exercised by the gate 3 contract test: scripts/test_weight_estimation.py against scripts/weight_estimation_logic.py (stdlib unittest, offline). Run: python3 scripts/test_weight_estimation.py
Compliance
- Standards referenced, not reproduced: FAR-25 is US government work (public domain) and CS-25 is a free EASA download; both summary-only per standards-map.yaml and brief 06.
- compliance: STANDARDS-REF, gated: false.