Guide
The PRD format
MADETOOL reads a plain-text Product Requirements Document (format 1.7). The tables on this page are generated from the solver's schema (MADETOOL 1.0.0).
Line syntax
[section] groups keys key = value unit REF | attr = value ... fixed value / target key >= value unit REF | ... requirement: must be AT LEAST key <= value unit REF | ... requirement: must NOT EXCEED # comment to the end of the line value : 12.5 3e-4 [300 200 150] "quoted text" WORD
Nothing in a PRD is ever evaluated: MADETOOL parses it with regular expressions only. Free text with spaces, # or | must be in double quotes.
Keywords
- TBD - not known yet; never treated as zero. A required key that is TBD blocks the run.
- NONE - no limit / not applicable, where allowed.
- AUTO - the tool sizes or estimates the value, where allowed.
- DEFAULT - use the model default (fidelity options).
References
Airspeeds must state TAS, EAS, CAS or IAS. Altitudes must state AGL or MSL; AGL is measured from environment.site_elevation.
Requirement attributes
| Attribute | Values | Meaning |
|---|---|---|
| id | text | Requirement ID (default: section.key) |
| src | text | Source of the value; PLACEHOLDER/ASSUMED flags an unconfirmed value |
| note | text | Free note |
| type | HARD_LIMIT, MINIMUM, TARGET, PREFERENCE | Requirement type |
| prio | integer | Priority 1 (highest) .. 5 |
| tol | tol | TARGET tolerance: % or - (relative) or a unit of the key (absolute) |
| alt | number with unit, or CRUISE, SITE | Altitude of the operating condition (or CRUISE / SITE) |
| isa_dev | number | ISA deviation of the operating condition |
| oat | number | Outside air temperature of the operating condition (alternative to isa_dev) |
| config | CLEAN, TAKEOFF, LANDING | Aerodynamic configuration |
Requirement keys
| Key | Operator | Default type | Unit (SI) | Required | Meaning |
|---|---|---|---|---|---|
| payload.mass_max | >= | MINIMUM | kg | Yes | Maximum payload mass the aircraft must carry (sets MTOW case) |
| payload.volume | >= | MINIMUM | m^3 | No | Required internal payload volume |
| performance.endurance | >= | MINIMUM | s | No | Max endurance, NORMAL payload, take-off to landing, reserves excluded |
| performance.endurance_max_payload | >= | MINIMUM | s | No | Max endurance with MAX payload |
| performance.range | >= | MINIMUM | m | No | Max range (ground distance), NORMAL payload, take-off to landing, reserves excluded, with mission.headwind |
| performance.range_max_payload | >= | MINIMUM | m | No | Max range (ground distance) with MAX payload, with mission.headwind |
| performance.speed_max_level | >= | MINIMUM | m/s (TAS/EAS/CAS/IAS) | Yes | Max level-flight speed at MTOW, max continuous power |
| performance.speed_cruise | = >= | TARGET | m/s (TAS/EAS/CAS/IAS) | Yes | Normal cruise speed (used by FIXED cruise policy) |
| performance.speed_stall | <= | HARD_LIMIT | m/s (TAS/EAS/CAS/IAS) | No | Max allowed 1-g stall speed at MTOW in the stated configuration |
| performance.altitude_max | >= | MINIMUM | m (AGL/MSL) | Yes | Max operating altitude; service ceiling at MTOW must reach it |
| performance.altitude_cruise | = | TARGET | m (AGL/MSL) | Yes | Normal cruise (operating) altitude; also the DoD normal operating altitude |
| performance.climb_rate | >= | MINIMUM | m/s | No | Min steady rate of climb at MTOW, max continuous power |
| constraints.mtow | <= | HARD_LIMIT | kg | No | Max take-off mass limit |
| constraints.wingspan | <= | HARD_LIMIT | m | No | Max wing span |
| constraints.length | <= | HARD_LIMIT | m | No | Max overall length |
| constraints.height | <= | HARD_LIMIT | m | No | Max overall height |
| constraints.assembly_time | <= | PREFERENCE | s | No | Max field assembly time (not modelled in v0.1) |
| launch_recovery.takeoff_distance | <= | HARD_LIMIT | m | If launch_recovery.takeoff_method==RUNWAY | Take-off distance to clear environment.obstacle_height |
| launch_recovery.landing_distance | <= | HARD_LIMIT | m | If launch_recovery.recovery_method==RUNWAY | Landing distance from obstacle height |
| launch_recovery.parachute_descent_rate | <= | HARD_LIMIT | m/s | If launch_recovery.recovery_method==PARACHUTE | Max parachute descent rate |
| vtol.hover_tw_min | >= | HARD_LIMIT | - | If aircraft.vtol_code>=1 | Min (max lift thrust / weight) at site conditions - control margin |
| vtol.hover_tw_oei_min | >= | HARD_LIMIT | - | No | Min (max lift thrust / weight) with the critical lift rotor inoperative while hover moments are trimmed, at site conditions (rotor-out capability; NONE = not required) |
| vtol.disk_loading_max | <= | HARD_LIMIT | Pa | No | Max lift-rotor disk loading (downwash limit) |
| stability.static_margin_min | >= | HARD_LIMIT | - | Yes | Min static margin (fraction of MAC) over the CG range |
| stability.static_margin_max | <= | PREFERENCE | - | No | Max static margin (trim drag / control power) |
| manufacturing.max_part_length | <= | HARD_LIMIT | m | No | Largest part that can be produced (mould/oven) |
| classification.dod_group | <= | HARD_LIMIT | - | No | Highest acceptable DoD UAS group |
Units
| Dimension | SI unit | Reference | Accepted tokens |
|---|---|---|---|
| dimensionless | - | - | - % |
| length | m | - | m km cm mm ft in nmi mi |
| altitude | m | AGL / MSL | m km cm mm ft in nmi mi |
| area | m^2 | - | m^2 cm^2 mm^2 ft^2 in^2 |
| volume | m^3 | - | m^3 L mL cm^3 in^3 ft^3 USgal |
| mass | kg | - | kg g lb oz |
| time | s | - | s min h hr |
| speed | m/s | - | m/s km/h kt kn kts mph ft/s ft/min m/min |
| airspeed | m/s | TAS / EAS / CAS / IAS | m/s km/h kt kn kts mph ft/s ft/min m/min |
| acceleration | m/s^2 | - | m/s^2 ft/s^2 g0 |
| force | N | - | N kN kgf gf lbf |
| power | W | - | W kW hp PS |
| energy | J | - | J kJ MJ Wh kWh |
| specific_energy | J/kg | - | J/kg kJ/kg MJ/kg Wh/kg |
| energy_density | J/m^3 | - | J/m^3 Wh/L MJ/L |
| pressure | Pa | - | Pa kPa hPa mbar N/m^2 kgf/m^2 lbf/ft^2 psi |
| density | kg/m^3 | - | kg/m^3 kg/L g/cm^3 lb/ft^3 |
| areal_density | kg/m^2 | - | kg/m^2 g/m^2 lb/ft^2 oz/yd^2 |
| temperature | K | - | K degC degF |
| temperature_delta | K | - | K degC degF |
| angle | rad | - | rad deg |
| angular_speed | rad/s | - | rad/s rpm |
| motor_kv | rad/(s*V) | - | rpm/V |
| voltage | V | - | V |
| current | A | - | A |
| charge | C | - | C Ah mAh |
| c_rate | 1/s | - | C C-rate 1/h 1/s |
| bsfc | kg/J | - | kg/J g/kWh kg/kWh lb/(hp*h) |
| tsfc | kg/(N*s) | - | kg/(N*s) kg/(N*h) g/(kN*s) lb/(lbf*h) |
| power_per_weight | W/N | - | W/N W/kgf hp/lbf |
| specific_power | W/kg | - | W/kg kW/kg |