orbitforge stationkeep
Synopsis
orbitforge stationkeep --constellation <PATH> [OPTIONS]Description
Estimates the propulsive cost of holding a constellation in place over a multi-year horizon, and reports whether the propellant you have covers it.
Two strategies are available, and they model different physics:
| Strategy | Fights | Typical regime |
|---|---|---|
leo | Atmospheric drag lowering the semi-major axis | Low Earth orbit |
geo | East-west longitude drift and luni-solar inclination drift | Geostationary |
This is a budgeting tool for design trades, not a maneuver planner. For actual
burns see maneuver and
target.
Options
| Parameter | Type | Unit | Default | Required | Description |
|---|---|---|---|---|---|
--constellation | path | n/a | — | Yes | Path to a constellation JSON file. |
--years | float | years | 5 | No | Budget horizon. |
--strategy | enum | n/a | leo | No | `leo` for drag makeup on the mean semi-major axis, `geo` for east-west and north-south box keeping. |
--isp-s | float | s | 220 | No | Thruster specific impulse. Sets how much delta-v a kilogram of propellant buys. |
--fuel-kg | float | kg | 20 | No | Usable propellant per satellite. |
--dry-mass-kg | float | kg | 240 | No | Dry mass per satellite. |
--json | path | n/a | — | No | Write per-satellite reports and the fleet aggregate. |
| Parameter | Type | Unit | Default | Required | Description |
|---|---|---|---|---|---|
--deadband-km | float | km | 1 | No | Mean semi-major-axis deadband half-width. The orbit is allowed to decay this far before a correction fires. |
--cdam | float | m^2/kg | 0.01 | No | Ballistic coefficient, Cd times A over m. The dominant input; see the warning below. |
| Parameter | Type | Unit | Default | Required | Description |
|---|---|---|---|---|---|
--slot-longitude-deg-east | float | deg east | 0 | No | Assigned orbital slot longitude. |
--ew-deadband-deg | float | deg | 0.05 | No | East-west longitude deadband half-width. |
--ns-deadband-deg | float | deg | 0.05 | No | North-south inclination deadband half-width. |
--ns-drift-deg-per-year | float | deg/year | 0.85 | No | Luni-solar inclination drift rate. |
Worked example
A 60-satellite Walker shell at 550 km, budgeted over five years:
orbitforge stationkeep \
--constellation demo.json \
--years 5 --strategy leo --cdam 0.02Station-keeping budget for `demo`: 60 satellites over 5.0 years.
Per satellite: 10.43 m/s/yr (1.242 kg/yr propellant), capacity 172.7 m/s.
drag-makeup: 10.43 m/s/yr, 1.096 m/s per cycle every 38.4 days
Fleet: 580.4 m/s/yr total delta-v, 69.17 kg/yr propellant.
Fuel margin covers the full horizon.Reading the output
| Figure | Value | Meaning |
|---|---|---|
| Per satellite | 10.43 m/s/yr | Annual delta-v to hold the deadband |
| Propellant | 1.242 kg/yr | That delta-v converted through the rocket equation at the given specific impulse and dry mass |
| Capacity | 172.7 m/s | Total delta-v the loaded propellant provides |
| Cycle | 1.096 m/s every 38.4 days | One correction burn’s size and how often it fires |
| Fleet | 580.4 m/s/yr, 69.17 kg/yr | Fleet totals, useful for logistics rather than for spacecraft sizing |
| Verdict | Covers the full horizon | 172.7 m/s capacity against 52.2 m/s needed over 5 years |
The cycle line is the operationally useful one. It says a satellite fires roughly every five and a half weeks, which sets how often the ground segment must plan and execute maintenance across 60 spacecraft.
Capacity divided by annual cost gives the real lifetime limit: 172.7 divided by 10.43 is about 16.6 years of station keeping, comfortably beyond the five-year horizon.
The parameter that dominates
In LEO, delta-v scales roughly linearly with the ballistic coefficient
--cdam. Doubling it doubles the propellant. The default of 0.01 m^2/kg is a
placeholder, not an estimate of your spacecraft.
A budget produced with a guessed ballistic coefficient is a guess with extra decimal places. Compute it from the actual drag area, drag coefficient, and mass, and state the value alongside the result.
Atmospheric density is itself uncertain by tens of percent and varies strongly with solar activity, so treat the output as a range rather than a value. A common practice is to run the budget at the expected and at an elevated density assumption, and size propellant for the latter.
See also
maneuverto propagate actual burns.targetto solve for burn parameters.- Accuracy and limitations.
main (pre-release)