Technical budgets¶
The resource budgets of the Apollo 11 mission system, in the order they drive each other: the Δv each maneuver needs, the propellant that Δv takes by the rocket equation, the mass of the vehicles that carry it, then power and reliability. The model's analyses and their status close the page. Cost is a programmatic resource, not a technical one: it has its own page, Cost.
Every value is labelled by where it comes from:
- model value: stated in the model (an attribute's value);
- model computes: the evaluator runs the model's own expressions, calculations and analyses;
- page computes: a calculation this page adds, from the model's inputs and in the evaluator, where the model has no analysis for it (the propellant budget, the dry-mass rollup);
- corrected estimate: where one of the model's analyses cannot produce a result, the page says exactly why and runs the model's own calculation with the defect worked around.
Where the values come from is stated in the repository's README (section 5, Assumptions and Estimates), not in the model: masses, thrust, specific impulse and durations are sourced from NASA documentation, while power, failure rates and costs are postulated by the model's authors to exercise the analyses, so those budgets illustrate the method rather than history.
- Every mass, thrust and power is a single number: the model has no current best estimate (CBE) and maximum growth allowance (MGA) pair and no bounds such as the minimum propellant a mission needs or the capacity of its tanks.
Δv budget¶
The velocity change each major maneuver of the mission needs, as
Apollo11MissionDeltaVBudgetAnalysis states or computes it (model value or model computes), and which hardware performs it.Use it to start the budget from its driver: every propellant and mass figure below follows from these Δv.
| Maneuver | Performed by | Model feature | Δv [m/s] | Source | Value in the model |
|---|---|---|---|---|---|
| Ascent to Earth orbit | S-IC + S-II (+ S-IVB first burn) | dv_required_leo | 9,400 | model value | 9400 ['m⋅s⁻¹'] |
| Trans-lunar injection | S-IVB | dv_required_tli | 3,135 | model computes: calculateTliDeltaV | calculateTliDeltaV(3.986E14 ['m³⋅s⁻²'], 6563 ['km'], 384400 ['km']) |
| Lunar orbit insertion | Service module | dv_required_loi | 883 | model computes: calculateLoiDeltaV | calculateLoiDeltaV(1000 ['m⋅s⁻¹'], 4.9E12 ['m³⋅s⁻²'], 1839 ['km']) |
| Powered descent and landing | LM descent stage | dv_required_landing | 2,100 | model value | 2100 ['m⋅s⁻¹'] |
| Lunar ascent | LM ascent stage | dv_required_ascent | 1,870 | model value | 1870 ['m⋅s⁻¹'] |
| Trans-Earth injection | Service module | dv_required_tei | 1,000 | model value | 1000 ['m⋅s⁻¹'] |
The mission needs 18.4 km/s in all, 51% of it to reach Earth orbit. 2 of the 6 values are derived in the model (trans-lunar injection by calculateTliDeltaV, lunar orbit insertion by calculateLoiDeltaV); the others (ascent to Earth orbit, powered descent and landing, lunar ascent, trans-Earth injection) are stated. The analysis's 6 required-Δv features include none for midcourse corrections, attitude control (RCS) or reserves, so the budget below has no line for them.
Thrust and specific impulse of each propulsive stage, and the masses each one starts and ends its burn with, all evaluated from the model.
Use it to compare stages and check the inputs of the Δv budget.
| Stage | Design | Engines | Thrust, vacuum [kN] | Isp [s] | m0 [kg] | mf [kg] |
|---|---|---|---|---|---|---|
| S-IC first stage | S-IC | 5 × F-1 | 38,850 | 304 | 2,865,370 | 788,370 |
| S-II second stage | S-II | 5 × J-2 | 5,165 | 421 | 651,370 | 208,370 |
| S-IVB third stage | S-IVB | 1 × J-2 | 1,033 | 421 | 168,380 | 58,880 |
| Service module | ApolloServiceModule | integral | 91 | 314 | 24,600 | 6,160 |
| LM descent stage | LunarModuleDescentStage | integral | 45 | 305 | 10,350 | 2,100 |
| LM ascent stage | LunarModuleAscentStage | integral | 16 | 311 | 4,590 | 2,220 |
At liftoff the 5 F-1 engines give 33850 kN at sea level for a vehicle weight of 29125750 N: a thrust-to-weight ratio of 1.16 (sum(launchVehicle.stage1.engines.thrustSeaLevel) / (launchVehicle.launchMass * 9.80665 [m/s²])). Launch stages carry the payload stack the model's Δv analysis assigns them; spacecraft stages are counted with their own masses only, as the model's calculateSpacecraftBurnDeltaV does.
For each mission maneuver, the margin the model's
Apollo11MissionDeltaVBudgetAnalysis computes, then a corrected estimate: the model's own calculateDeltaV, called with all four of its inputs.Use it to see which maneuvers have margin, and what the model's own analysis needs fixing to say so itself.
| Stage | Model Δv capability | Why it cannot be computed |
|---|---|---|
| S-IC first stage | — | dv_stage1 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) |
| S-II second stage | — | dv_stage2 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) |
| S-IVB third stage | — | lm is the unit [lm], which has no feature totalMass (needed by dv_stage3_tli) |
| Service module | — | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_csm) |
| LM descent stage | — | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_lm_descent) |
| LM ascent stage | — | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_lm_ascent) |
| Stage | Corrected call (evaluated in Apollo11MissionSystem) | Corrected Δv |
|---|---|---|
| S-IC first stage | calculateDeltaV(launchVehicle.stage1.engines#(1).specificImpulseVacuum, 9.80665 [m/s²], launchVehicle.stage1.mass + payload, launchVehicle.stage1.dryMass + payload) | 3847.22 m/s |
| S-II second stage | calculateDeltaV(launchVehicle.stage2.engines#(1).specificImpulseVacuum, 9.80665 [m/s²], launchVehicle.stage2.mass + payload, launchVehicle.stage2.dryMass + payload) | 4705.62 m/s |
| S-IVB third stage | calculateDeltaV(launchVehicle.stage3.engines#(1).specificImpulseVacuum, 9.80665 [m/s²], launchVehicle.stage3.mass + payload, launchVehicle.stage3.dryMass + payload) | 4338.01 m/s |
| Service module | calculateDeltaV(spacecraft.commandServiceModule.serviceModule.specificImpulse, 9.80665 [m/s²], spacecraft.commandServiceModule.serviceModule.dryMass + spacecraft.commandServiceModule.serviceModule.propellantMass, spacecraft.commandServiceModule.serviceModule.dryMass) | 4263.8 m/s |
| LM descent stage | calculateDeltaV(spacecraft.lunarModule.lunarModuleDescentStage.specificImpulse, 9.80665 [m/s²], spacecraft.lunarModule.lunarModuleDescentStage.dryMass + spacecraft.lunarModule.lunarModuleDescentStage.propellantMass, spacecraft.lunarModule.lunarModuleDescentStage.dryMass) | 4770.84 m/s |
| LM ascent stage | calculateDeltaV(spacecraft.lunarModule.lunarModuleAscentStage.specificImpulse, 9.80665 [m/s²], spacecraft.lunarModule.lunarModuleAscentStage.dryMass + spacecraft.lunarModule.lunarModuleAscentStage.propellantMass, spacecraft.lunarModule.lunarModuleAscentStage.dryMass) | 2215.34 m/s |
Where payload is the stack the model's analysis puts on each launch stage, with each assembly's gross mass (mass, or dryMass for the instrument unit) and the lunar module's two stages where the model writes lm:
- S-IC first stage:
stage2.mass + stage3.mass + instrumentUnit.dryMass + spacecraftLMAdapter.mass + serviceModule.mass + commandModule.mass + lunarModuleAscentStage.mass + lunarModuleDescentStage.mass - S-II second stage:
stage3.mass + instrumentUnit.dryMass + spacecraftLMAdapter.mass + serviceModule.mass + commandModule.mass + lunarModuleAscentStage.mass + lunarModuleDescentStage.mass - S-IVB third stage:
serviceModule.mass + commandModule.mass + lunarModuleAscentStage.mass + lunarModuleDescentStage.mass
| Maneuver | Provided by | Model margin | Required [m/s] | Corrected capability [m/s] | Corrected margin [m/s] |
|---|---|---|---|---|---|
| Ascent to Earth orbit | S-IC + S-II | — (ascentMargin needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit)) | 9,400 | 8,553 | -847 |
| Trans-lunar injection | S-IVB | — (lm is the unit [lm], which has no feature totalMass (needed by tliMargin)) | 3,135 | 4,338 | +1,203 |
| Lunar orbit insertion + trans-Earth injection | Service module | — (mf has no value (in calculateDeltaV: no argument for mf) (needed by loiMargin)) | 1,883 | 4,264 | +2,380 |
| Powered descent and landing | LM descent stage | — (mf has no value (in calculateDeltaV: no argument for mf) (needed by landingMargin)) | 2,100 | 4,771 | +2,671 |
| Lunar ascent | LM ascent stage | — (mf has no value (in calculateDeltaV: no argument for mf) (needed by ascentMargin_lunar)) | 1,870 | 2,215 | +345 |
- Required Δv comes from the model. Trans-lunar injection (3,135 m/s) is computed by
calculateTliDeltaV, lunar orbit insertion (883 m/s) is computed bycalculateLoiDeltaV; the others are stated values. - None of the model's stage capabilities compute, for the evaluator's reasons: S-IC first stage:
dv_stage1needsinstrumentUnit.mass, which has no value (none inSaturnVInstrumentUnit); S-II second stage:dv_stage2needsinstrumentUnit.mass, which has no value (none inSaturnVInstrumentUnit); S-IVB third stage:lmis the unit [lm], which has no featuretotalMass(needed bydv_stage3_tli); Service module:mfhas no value (incalculateDeltaV: no argument for mf) (needed bydv_csm); LM descent stage:mfhas no value (incalculateDeltaV: no argument for mf) (needed bydv_lm_descent); LM ascent stage:mfhas no value (incalculateDeltaV: no argument for mf) (needed bydv_lm_ascent). The corrected calls pass g₀ = 9.80665 m/s², use the instrument unit'sdryMass, and put the lunar module wherelmstands ([lm] → lunar module). - The ascent margin is negative (-847 m/s) even corrected, because the budget credits the S-IVB only with trans-lunar injection, while its first burn completed orbit insertion. The S-IVB's surplus (+1,203 m/s) covers it: +356 m/s for the launch vehicle as a whole.
- The spacecraft margins are all positive (+345 to +2,671 m/s) with each stage credited with its own masses only; in flight the service module braked the docked CSM and LM, and the descent stage carried the ascent stage down. The propellant budget charges each stage with the stack it pushed.
Propellant budget¶
For each stage that burns for the spacecraft's trajectory, the least propellant its required Δv takes by the rocket equation, m₀·(1 − e^(−Δv/(Isp·g₀))), against the propellant loaded (page computes, in the evaluator, from the model's Isp, masses and required Δv).
Use it to see how much of each stage's propellant the mission needs and how much is margin.
| Stage | Burns | Stack | Required Δv [m/s] | Start mass [kg] | Minimum [kg] (page computes) | Loaded [kg] (model value) | Margin [kg] | Margin |
|---|---|---|---|---|---|---|---|---|
| S-IVB third stage | orbit insertion (what the S-IC and S-II leave of the ascent) + trans-lunar injection | the Δv budget's stack (S-IVB, CSM, LM) | 3,982 | 168,380 | 104,202 | 109,500 | +5,298 | +4.8% |
| Service module | lunar orbit insertion (CSM + LM), then trans-Earth injection (CSM) | CSM + LM, then CSM | 1,883 | 45,380 | 16,620 | 18,440 | +1,820 | +9.9% |
| LM descent stage | powered descent and landing | descent + ascent stages | 2,100 | 14,940 | 7,537 | 8,250 | +713 | +8.6% |
| LM ascent stage | lunar ascent to orbit | ascent stage | 1,870 | 4,590 | 2,104 | 2,370 | +266 | +11.2% |
- The launch vehicle. This page takes the S-IC and S-II to burn to depletion: together they give 8,553 m/s of the 9,400 m/s ascent (corrected estimate). The model states one ascent requirement (
dv_required_leo) for both, so they have no margin of their own. The S-IVB's first burn makes up the rest of the ascent (847 m/s) before trans-lunar injection (3,135 m/s): 3,982 m/s in all, which leaves 5,298 kg (4.8%) of its propellant unused. Its stack is the one the model's Δv analysis gives it (serviceModule,commandModule,lunarModuleAscentStage,lunarModuleDescentStage); adding the instrument unit and the adapter, which it also carried, the minimum grows to 106,548 kg and the margin shrinks to 2,952 kg (2.7%). - The spacecraft. Each stage is charged with the stack it pushed in flight (the Stack column), not with its own masses only as the model's
calculateSpacecraftBurnDeltaVdoes: the service module first brakes the docked CSM and LM into lunar orbit, then the CSM alone, lighter by the propellant already burned, onto the trans-Earth trajectory. Counting own masses only, as the Δv budget does, the minimum would be 11,255 kg for the service module, 5,221 kg for the LM descent stage, and the margins correspondingly larger.
- One nominal value per stage. The model states one
propellantMassper stage: no minimum the mission needs, no tank capacity, and so no design margin between them. The minimum above is this page's calculation, not the model's. - No reserves. The model's Δv analysis has no requirement for midcourse corrections, attitude control or dispersions, so the minimum is a floor; a reserve requirement would consume part of each margin.
- No consumable masses. No hardware in the model carries a mass of fuel-cell reactants (the LOX and LH₂ that made the CSM's power and water), breathing oxygen or water, so their share of the payload in the rocket equation, and their own margins, cannot be shown. Oxygen and water appear only as requirement thresholds and recorded levels (
actualOxygenPressureMax,actualOxygenPressureMin,actualWaterProvidedPerCrewPerDay,maxOxygenPressureReqd,minOxygenPressureReqd,minWaterRequiredPerCrewPerDay,oxygenLevel,oxygenRemaining).
Mass budget¶
The dry mass of each assembly, without the propellant it carries, from the model's
dryMass (or mass where an assembly has no propellant): model value, summed by vehicle (page computes).Use it to see where the hardware mass is, apart from what the mission burns.
| Vehicle | Assembly | Design | Dry [kg] | From |
|---|---|---|---|---|
| Saturn V (SA-506) | stage1 | S-IC | 137,000 | dryMass |
| Saturn V (SA-506) | stage2 | S-II | 36,200 | dryMass |
| Saturn V (SA-506) | stage3 | S-IVB | 13,500 | dryMass |
| Saturn V (SA-506) | instrumentUnit | SaturnVInstrumentUnit | 1,950 | dryMass |
| Saturn V (SA-506) | subtotal | 188,650 | page computes | |
| Apollo spacecraft | serviceModule | ApolloServiceModule | 6,160 | dryMass |
| Apollo spacecraft | commandModule | ApolloCommandModule | 5,840 | mass (no propellant modeled) |
| Apollo spacecraft | launchEscapeSystem | ApolloLaunchEscapeSystem | 4,170 | mass (no propellant modeled) |
| Apollo spacecraft | lunarModuleAscentStage | LunarModuleAscentStage | 2,220 | dryMass |
| Apollo spacecraft | lunarModuleDescentStage | LunarModuleDescentStage | 2,100 | dryMass |
| Apollo spacecraft | spacecraftLMAdapter | ApolloSpacecraftLMAdapter | 1,840 | mass (no propellant modeled) |
| Apollo spacecraft | subtotal | 22,330 | page computes | |
| Launch stack | total | 210,980 | page computes |
The launch stack's hardware weighs 210,980 kg, 7.4% of its gross mass at liftoff. commandModule, launchEscapeSystem, spacecraftLMAdapter have a mass but no propellantMass in the model, so their mass counts as dry; any propellant they carried is either inside that figure or not modeled.
- The model gives every mass as a single value. A design-phase mass budget carries two per item: the current best estimate (CBE) and the maximum growth allowance (MGA, the CBE grown by a factor set by the design's maturity), and rolls up the MGA values so the vehicle is not sized short. Without them the rollups here cannot be padded for growth; for an as-flown model, the values stand for measured masses (MGA = CBE).
The gross mass of the launch stack at liftoff by assembly: dry mass plus the nominal propellant loaded, as the model computes each assembly's
mass (model computes; for the stages, mass = dryMass + propellantMass), against the stated launch mass (model value).Use it to check that the vehicle closes on its stated launch mass and see where the mass is.
| Vehicle | Assembly | Design | Model mass [kg] | Dry [kg] | Propellant, nominal loaded [kg] | Gross [kg] | Gross from | Why not |
|---|---|---|---|---|---|---|---|---|
| Saturn V (SA-506) | stage1 | S-IC | 2,214,000 | 137,000 | 2,077,000 | 2,214,000 | mass | |
| Saturn V (SA-506) | stage2 | S-II | 479,200 | 36,200 | 443,000 | 479,200 | mass | |
| Saturn V (SA-506) | stage3 | S-IVB | 123,000 | 13,500 | 109,500 | 123,000 | mass | |
| Saturn V (SA-506) | instrumentUnit | SaturnVInstrumentUnit | 1,950 | 0 | 1,950 | dryMass (no mass) | instrumentUnit.mass has no value | |
| Apollo spacecraft | serviceModule | ApolloServiceModule | 24,600 | 6,160 | 18,440 | 24,600 | mass | |
| Apollo spacecraft | lunarModuleDescentStage | LunarModuleDescentStage | 10,350 | 2,100 | 8,250 | 10,350 | mass | |
| Apollo spacecraft | commandModule | ApolloCommandModule | 5,840 | 5,840 | 0 | 5,840 | mass | |
| Apollo spacecraft | lunarModuleAscentStage | LunarModuleAscentStage | 4,590 | 2,220 | 2,370 | 4,590 | mass | |
| Apollo spacecraft | launchEscapeSystem | ApolloLaunchEscapeSystem | 4,170 | 4,170 | 0 | 4,170 | mass | |
| Apollo spacecraft | spacecraftLMAdapter | ApolloSpacecraftLMAdapter | 1,840 | 1,840 | 0 | 1,840 | mass |
- Model: the assemblies'
massvalues add up to 2,867,590 kg;instrumentUnithas nomass, only adryMassof 1,950 kg. - Corrected estimate: counting that
dryMassinstead (the Gross from column) gives 2,869,540 kg, 100,460 kg (3.4%) less than the Saturn V's statedlaunchMassof 2,970,000 kg. No element of the model has a mass for the interstages, propellant residuals or ullage propellant, which would likely account for the difference. - Propellant is 93% of the stack.
Power budget¶
Power generated and consumed: what the model's
Apollo11MissionSystemPowerAnalysis computes, then the model's own roll-ups and margin calculation applied to the concrete vehicles (postulated values).Use it to check that each assembly can supply its own loads.
totalPowerGenerated= 0 W,totalPowerLoad= 0 W,powerMargin= 0 W: its subjectapollo11MissionSystemis typed by the genericSystem, which has no parts, sorollupPowerGenerationfinds nothing to sum.- Its assertion
powerMargin > 0[W]is therefore violated:powerMargin > 0[W]withpowerMargin= 0 W.
| Assembly | Generated [W] | Load [W] | Margin [W] |
|---|---|---|---|
| Command and service module | 3,000 | 2,500 | +500 |
| Lunar module | 3,000 | 2,200 | +800 |
| Launch escape system | 0 | 50 | -50 |
| Saturn V instrument unit | 0 | 450 | -450 |
| Mission system (corrected estimate) | 6,000 | 5,200 | +800 |
Corrected estimate: the model's own roll-ups, applied to the concrete vehicles instead of the abstract subject, and its own margin calculation:
calculatePowerMargin(rollupPowerGeneration(spacecraft) + rollupPowerGeneration(launchVehicle), rollupPowerConsumption(spacecraft) + rollupPowerConsumption(launchVehicle)) = 800 W (6000 W generated for 5200 W of load). Command and service module and Lunar module generate power; the launch escape system and the Saturn V instrument unit only consume. Each assembly's margin above is calculatePowerMargin(powerGenerated, powerLoad) (0 W generated where an assembly has none).
- One steady value per assembly. The model gives power only as part attributes (
powerGenerated,powerLoad), none on a phase or an operation, so power cannot be budgeted by mission phase or activity (an engine burn, the lunar stay, re-entry on batteries). - No peak power versus mission energy. The peak demand sizes the power system; the total energy over the mission is the driver here, because the CSM's fuel cells made it by consuming reactants. The model has no peak, energy or reactant attribute.
- No link to the propellant budget. No hardware carries a reactant mass, so the energy budget cannot feed the payload term of the rocket equation in the propellant budget above.
Reliability budget¶
The probability that each spacecraft module survives its exposure time: what the model's
Apollo11LifecycleReliabilityAnalysis computes, then its own formula with e in place of eulerNumber (postulated failure rates).Use it to see which module drives mission risk.
| Module | Model result | λ | Exposure | Corrected formula | Corrected R |
|---|---|---|---|---|---|
| Command module | — (cmReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value) | 1.5e-6 1/h | 195.3 h | exp(-(commandModule.failureRate * plannedDuration)) | 0.999707 |
| Service module | — (smReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value) | 2e-6 1/h | 195.3 h | exp(-(serviceModule.failureRate * plannedDuration)) | 0.999609 |
| Lunar module (descent + ascent stages) | — (lmReliability needs lm.failureRate, which has no value (none in LM-5)) | 5.5e-6 1/h | 97.65 h | exp(-((lunarModuleDescentStage.failureRate + lunarModuleAscentStage.failureRate) * plannedDuration / 2)) | 0.999463 |
- Model: none of the 3 results computes: command module:
cmReliabilityneedsISQCharacteristicNumbers::eulerNumber, which has no value; service module:smReliabilityneedsISQCharacteristicNumbers::eulerNumber, which has no value; lunar module (descent + ascent stages):lmReliabilityneedslm.failureRate, which has no value (none inLM-5).ISQCharacteristicNumbers::eulerNumberis the fluid-dynamics Euler number; the constant e was meant. - Corrected estimate: the same formula with
exp, and the LM's two stage rates combined, evaluated in series (the product of the three) gives R = 0.998780 over the planned 195.3 h (the lunar module over half of it): about one failure in 820 missions from these modules alone.
Analysis status¶
Every result of the model's own analyses (
AnalysisPackage) as the model computes it, and every asserted constraint with its verdict. Where a result cannot be computed, the reason names the defect.Use it to see at a glance which analyses the model can execute today and what blocks the others.
| Analysis | Result feature | Result | Why it cannot be computed |
|---|---|---|---|
| Apollo11LifecycleReliabilityAnalysis | cmReliability | cmReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value | |
| Apollo11LifecycleReliabilityAnalysis | smReliability | smReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value | |
| Apollo11LifecycleReliabilityAnalysis | lmReliability | lmReliability needs lm.failureRate, which has no value (none in LM-5) | |
| Apollo11MissionCostAnalysis | totalMissionCost | 11000000000 $ | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_stage1 | dv_stage1 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_stage2 | dv_stage2 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_stage3_tli | lm is the unit [lm], which has no feature totalMass (needed by dv_stage3_tli) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_csm | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_csm) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_lm_descent | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_lm_descent) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_lm_ascent | mf has no value (in calculateDeltaV: no argument for mf) (needed by dv_lm_ascent) | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_tli | 3135.16 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_loi | 883.42 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_leo | 9400 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_landing | 2100 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_ascent | 1870 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | dv_required_tei | 1000 m/s | |
| Apollo11MissionDeltaVBudgetAnalysis | ascentCapability | ascentCapability needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) | |
| Apollo11MissionDeltaVBudgetAnalysis | ascentMargin | ascentMargin needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) | |
| Apollo11MissionDeltaVBudgetAnalysis | tliMargin | lm is the unit [lm], which has no feature totalMass (needed by tliMargin) | |
| Apollo11MissionDeltaVBudgetAnalysis | loiMargin | mf has no value (in calculateDeltaV: no argument for mf) (needed by loiMargin) | |
| Apollo11MissionDeltaVBudgetAnalysis | landingMargin | mf has no value (in calculateDeltaV: no argument for mf) (needed by landingMargin) | |
| Apollo11MissionDeltaVBudgetAnalysis | ascentMargin_lunar | mf has no value (in calculateDeltaV: no argument for mf) (needed by ascentMargin_lunar) | |
| Apollo11MissionSuccessAnalysis | overallMissionSuccess | overallMissionSuccess needs apollo11Mission.crewReturnedSafely, which has no value (none in Apollo11MissionIndividual) | |
| Apollo11MissionSystemPowerAnalysis | totalPowerGenerated | 0 W | |
| Apollo11MissionSystemPowerAnalysis | totalPowerLoad | 0 W | |
| Apollo11MissionSystemPowerAnalysis | powerMargin | 0 W |
10 of 26 analysis results compute. The blocked ones trace to a few defects: mf has no value (6×); cmReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value (1×); smReliability needs ISQCharacteristicNumbers::eulerNumber, which has no value (1×); lmReliability needs lm.failureRate, which has no value (none in LM-5) (1×); dv_stage1 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) (1×); dv_stage2 needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) (1×); lm is the unit [lm], which has no feature totalMass (needed by dv_stage3_tli) (1×); ascentCapability needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) (1×); ascentMargin needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) (1×); lm is the unit [lm], which has no feature totalMass (needed by tliMargin) (1×); overallMissionSuccess needs apollo11Mission.crewReturnedSafely, which has no value (none in Apollo11MissionIndividual) (1×).
| Assertion | Verdict | Why |
|---|---|---|
| SystemPowerAnalysis | violated | powerMargin > 0[W] with powerMargin = 0 W |
| Apollo11MissionDeltaVBudgetAnalysis | undetermined | ascentMargin needs instrumentUnit.mass, which has no value (none in SaturnVInstrumentUnit) |
| Apollo11MissionSuccessAnalysis | undetermined | its body has no result expression, so it constrains nothing (a body of declarations only) |
Analysis definitions¶
The calculations defined in the model that the budgets above run, with their formula and where they are used.
Use it to see what the model executes, and reuse the definitions for other missions.
| Calculation | Result | Purpose | Used by |
|---|---|---|---|
| calculateDeltaV(isp, g0, m0, mf) | isp * g0 * ln(m0 / mf) | Calculates the maximum change in velocity a stage can provide using the Tsiolkovsky Rocket Equation. | calculateLaunchStageDeltaV, calculateSpacecraftBurnDeltaV |
| calculateLaunchStageDeltaV(stage, payloadStack) | calculateDeltaV(isp, initialMass, finalMass) | Calculates the delta-v provided by a launch stage (like S-IC or S-II) carrying an upper stack. | Apollo11MissionDeltaVBudgetAnalysis |
| calculateLoiDeltaV(v_inf, mu_Moon, r_periapsis) | (v_inf^2 + 2*mu_Moon/r_periapsis)^(1/2) - (mu_Moon/r_periapsis)^(1/2) | Calculates the required braking Delta-V for Lunar Orbit Insertion from a hyperbolic approach. | Apollo11MissionDeltaVBudgetAnalysis |
| calculateMassBudgetStep(initialMass, propellantUsed, jettisonedMass) | initialMass - propellantUsed - jettisonedMass | Calculates the remaining mass of a vehicle after a mission event. | SystemMassAnalysis |
| calculatePowerMargin(sourcePower, totalLoadPower) | sourcePower - totalLoadPower | Calculates the difference between available power and the sum of all electrical loads. | SystemPowerAnalysis |
| calculateReliability(failureRate, missionTime) | eulerNumber^(-(failureRate * missionTime)) | Calculates the reliability of a component over time using the exponential failure distribution. | Apollo11LifecycleReliabilityAnalysis |
| calculateSpacecraftBurnDeltaV(spacecraft) | calculateDeltaV(isp, initialMass, finalMass) | Calculates the delta-v provided by a self-propelled spacecraft (CSM or LM stages). | Apollo11MissionDeltaVBudgetAnalysis |
| calculateTliDeltaV(mu_Earth, r_leo, r_apoapsis) | (mu_Earth * (2/r_leo - 2/(r_leo + r_apoapsis)))^(1/2) - (mu_Earth / r_leo)^(1/2) | Calculates the required Delta-V for a Hohmann-like Translunar Injection. | Apollo11MissionDeltaVBudgetAnalysis |
| evaluateMissionSuccess(crewSafe, landed, samplesReturned, instrumentsDeployed) | crewSafe and landed and samplesReturned and instrumentsDeployed | Evaluates the overall mission success based on the achievement of primary objectives. | Apollo11MissionSuccessAnalysis |
| rollupPowerConsumption(system) | system.subparts->select { in sys : Part; sys istype PowerConsumer } ->collect { in sys : PowerConsumer; sys.powerLoad } ->sum() | SystemPowerAnalysis | |
| rollupPowerGeneration(system) | system.subparts->select { in sys : Part; sys istype PowerProvider } ->collect { in sys : PowerProvider; sys.powerGenerated } ->sum() | SystemPowerAnalysis | |
| sumCosts(r_d, mfg, ops, personnel) | r_d + mfg + ops + personnel | Sums the major cost categories to find the total program cost. | MissionCostAnalysis |
| sumDryMass(components) | sum(components.dryMass) | A utility to sum the dry mass of a set of components. | |
| sumGrossMass(components) | sum(components.totalMass) | A utility to sum the gross (fully fueled) mass of a set of components. | calculateLaunchStageDeltaV |
eulerNumberis not e.calculateReliabilityuseseulerNumber, which resolves toISQCharacteristicNumbers::eulerNumber(a quantity with no value), so no reliability computes.lmis the lumen. The Δv stacks listlm, which the analysis never defines; throughimport SI::*it resolves to the SI unitlm. The lunar module (lmds,lmas) was meant.g0is never passed.calculateDeltaV(isp, initialMass, finalMass)binds 3 of its 4 inputs(isp, g0, m0, mf): by positioninitialMassgoes tog0andmfstays unbound.- The instrument unit declares its own
dryMassinstead of redefiningmass, sototalMassand the Δv stacks have no mass for it. - The power analysis's subject is a plain
System, so the roll-up has no parts to sum and the margin is 0; its subject should be the mission system. LM-5has no failure rate; only its two stages do.- The Apollo11MissionSuccessAnalysis assertion is vacuous. Its body only declares a feature (because of a trailing semicolon), so it constrains nothing.
lnis declared with 2 inputs (x,y) and no body; it is evaluated as the natural logarithm of its first argument.- The gravitational parameter is typed
ISQ::force(mu_Earth,mu_Moon), although its unit (m³⋅s⁻²) is that of a gravitational parameter; the evaluator still computes the TLI and LOI requirements (3,135 and 883 m/s).