Skip to Content
ReferenceCLIstationkeep

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:

StrategyFightsTypical regime
leoAtmospheric drag lowering the semi-major axisLow Earth orbit
geoEast-west longitude drift and luni-solar inclination driftGeostationary

This is a budgeting tool for design trades, not a maneuver planner. For actual burns see maneuver and target.

Options

Common options.
ParameterTypeUnitDefaultRequiredDescription
--constellationpathn/a—YesPath to a constellation JSON file.
--yearsfloatyears5NoBudget horizon.
--strategyenumn/aleoNo`leo` for drag makeup on the mean semi-major axis, `geo` for east-west and north-south box keeping.
--isp-sfloats220NoThruster specific impulse. Sets how much delta-v a kilogram of propellant buys.
--fuel-kgfloatkg20NoUsable propellant per satellite.
--dry-mass-kgfloatkg240NoDry mass per satellite.
--jsonpathn/a—NoWrite per-satellite reports and the fleet aggregate.
LEO strategy only.
ParameterTypeUnitDefaultRequiredDescription
--deadband-kmfloatkm1NoMean semi-major-axis deadband half-width. The orbit is allowed to decay this far before a correction fires.
--cdamfloatm^2/kg0.01NoBallistic coefficient, Cd times A over m. The dominant input; see the warning below.
GEO strategy only.
ParameterTypeUnitDefaultRequiredDescription
--slot-longitude-deg-eastfloatdeg east0NoAssigned orbital slot longitude.
--ew-deadband-degfloatdeg0.05NoEast-west longitude deadband half-width.
--ns-deadband-degfloatdeg0.05NoNorth-south inclination deadband half-width.
--ns-drift-deg-per-yearfloatdeg/year0.85NoLuni-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.02
Station-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

FigureValueMeaning
Per satellite10.43 m/s/yrAnnual delta-v to hold the deadband
Propellant1.242 kg/yrThat delta-v converted through the rocket equation at the given specific impulse and dry mass
Capacity172.7 m/sTotal delta-v the loaded propellant provides
Cycle1.096 m/s every 38.4 daysOne correction burn’s size and how often it fires
Fleet580.4 m/s/yr, 69.17 kg/yrFleet totals, useful for logistics rather than for spacecraft sizing
VerdictCovers the full horizon172.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

Question? Give us feedbackDocuments Varaha Constellation Designer main (pre-release)
Last updated on