Skip to content

Documentation / @interstellar-tools/equations / planeChangeDeltaV

Function: planeChangeDeltaV() ​

ts
function planeChangeDeltaV(v: number, deltaI: Radians): number;

Defined in: manoeuvres/plane-change-delta-v.ts:57

Inclination (plane) change Δv at speed (v).

Definition

Δv=2vsin(Δi2)

Units

  • Inputs: (v) in m/s, (Δi) in radians.
  • Output: (Δv) in m/s.

Notes

  • Valid for an instantaneous plane change (impulsive) performed at speed (v) (e.g., at a node). For best efficiency, perform at apogee (lowest speed) when possible.
  • Domain for (Δi) is ( $[0,\pi] $) (0–180°). Larger angles can be reduced modulo (2π).

Parameters ​

ParameterTypeDescription
vnumberCurrent speed magnitude (m/s). Must be finite and ≥ 0.
deltaIRadiansInclination change angle Δi (radians). Must be finite and 0 ≤ Δi ≤ π.

Returns ​

number

Required impulsive Δv (m/s).

Throws ​

If v is not a number or deltaI not a number (radians).

Throws ​

If v is non-finite or < 0; if deltaI is non-finite or outside [0, π].

Example ​

ts
import {
  planeChangeDeltaV,
  circularSpeed
} from '@interstellar-tools/equations';
import type { Radians } from '@interstellar-tools/types';

// Helper: degrees → radians (branded)
const toRadians = (deg: number): Radians => ((deg * Math.PI) / 180) as Radians;

// Earth’s GM (μ) in m³/s²
const muEarth = 3.986004418e14;

// Example: instantaneous plane change at LEO (~400 km altitude)
const rLEO = 6378e3 + 400e3; // meters
const vLEO = circularSpeed(rLEO, muEarth); // m/s

// Change from 28.5° (Kennedy inclination) to equatorial (0°) → Δi = 28.5°
const deltaI = toRadians(28.5);
const dv_LEO = planeChangeDeltaV(vLEO, deltaI);

console.log(`LEO speed: ${vLEO.toFixed(1)} m/s`);
console.log(`Δi: 28.5°  →  Δv ≈ ${dv_LEO.toFixed(1)} m/s`);

// Another quick check: a modest 10° plane change at the same altitude
const dv_10deg = planeChangeDeltaV(vLEO, toRadians(10));
console.log(`Δi: 10°    →  Δv ≈ ${dv_10deg.toFixed(1)} m/s`);