EPS - space-station-os/space_station_os GitHub Wiki


Electrical Power System (EPS)

Overview

The Electrical Power System (EPS) is the backbone of the space station, responsible for generating, storing, regulating, and distributing power to all onboard subsystems.

This wiki page covers two perspectives:

  1. Real ISS EPS Architecture – how the system works on the International Space Station.

  2. Simulation in Space Station OS – how these components are modelled in ROS 2 nodes for your EPS demo.


1. Real ISS EPS Architecture

The ISS EPS works as a primary–secondary power distribution network. It ensures that solar energy is efficiently harvested, stored in batteries, and routed to station modules at regulated voltage.

Power Flow

  1. Solar Array (PV Module)

    • Main source of power when the ISS is in sunlight.

    • Output depends on sun angle and beta angle (station’s tilt relative to the sun).

  2. SSU – Sequential Shunt Unit

    • Maintains array output voltage between 138–173 V.

    • Shunts excess current to keep the bus regulated.

  3. DCSU – DC Switching Unit

    • Acts as a switching hub for solar array power.

    • Works with the BCDU to charge or discharge batteries.

  4. BCDU – Battery Charge/Discharge Unit

    • Charges batteries during sunlight.

    • Supplies power from batteries during eclipse (when no sunlight).

    • Protects against overcurrent, overvoltage, and undervoltage.

  5. MBSU – Main Bus Switching Unit

    • Combines inputs from multiple solar channels.

    • Selects healthy buses and routes them downstream.

    • Outputs 126–173 V primary power bus.

  6. DDCU – DC-to-DC Converter Unit

    • Converts high-voltage primary bus to 124.5 V Β±1.5 V regulated secondary bus.

    • Ensures stable delivery to station loads.

  7. PDU / PDB – Power Distribution Units & Boxes

    • Deliver power from DDCUs to specific loads (computers, pumps, ECLSS systems, payload racks, etc.).


Sunlight vs. Eclipse Operations

  • In Sunlight:
    Solar arrays generate power β†’ bus regulated by SSU β†’ DCSU/BCDU direct power + charge batteries β†’ MBSU selects channels β†’ DDCU regulates to 124.5 V β†’ PDUs distribute power.

  • In Eclipse:
    Solar arrays inactive β†’ BCDU discharges batteries β†’ MBSU routes battery power β†’ DDCU regulates β†’ PDUs distribute.


ISS EPS Block Diagram

ISS EPS Diagram

Key voltages:

  • 138–173 V from solar array via SSU.

  • 126–173 V after MBSU routing.

  • 124.5 V Β±1.5 V regulated secondary power.


2. EPS in Space Station OS Simulation

In Space Station OS, the EPS is abstracted into ROS 2 nodes. Each node represents one subsystem in the real architecture.


SARJ – Solar Array Tracking

  • File: sarj_mock.cpp

  • Role: Simulates Solar Alpha Rotary Joint tracking of the sun.

  • Outputs:

    • Publishes /solar/voltage (solar array voltage estimate).

Equivalent to: PV Module + SSU/DCSU behavior.


Battery Manager

  • File: battery_health.cpp

  • Role: Models each Battery ORU (Orbital Replacement Unit).

  • Interfaces:

    • Publishes /battery/battery_bms_<ID>/health (sensor_msgs/BatteryState).

    • Responds to /charge and /discharge services.

  • Features:

    • Simulates voltage rise/drop with charge/discharge.

    • Enforces safety rules: prevents <70 V (undervoltage) or >120 V (overcharge).

Equivalent to: Battery ORUs with BMS protections.


BCDU – Battery Charge/Discharge Unit

  • File: bcdu_device.cpp

  • Role: Coordinates all battery operations.

  • Interfaces:

    • ROS 2 Action Server on /bcdu/operation.

    • Subscribes to /solar/voltage and all battery health topics.

    • Publishes /bcdu/status and /eps/diagnostics.

  • Features:

    • Parallelizes /charge and /discharge service calls to all healthy ORUs.

    • Fault isolation if current >127 A or voltage unsafe.

    • Automatic safe mode entry on fault detection.

Equivalent to: BCDU + DCSU logic.


MBSU – Main Bus Switching Unit

  • File: mbsu_distributor.cpp

  • Role: Selects and routes channel power.

  • Interfaces:

    • Subscribes to /mbsu/channel_<N>/voltage.

    • Publishes /ddcu/input_voltage.

  • Features:

    • selectHealthyChannels() chooses the top 2 channels with voltage >120 V.

    • Averages their voltage and publishes to /ddcu/input_voltage.

    • Warns via diagnostics if <2 healthy channels.

Equivalent to: MBSU bus combiner and selector.


DDCU – DC-to-DC Converter Unit (Planned)

  • Future Node

  • Converts /ddcu/input_voltage (126–173 V) β†’ regulated 124.5 V.

  • Would eventually supply loads like ECLSS, Thermal, Comms.

Equivalent to: DDCU voltage regulator.


3. Diagnostics & Fault Handling

  • All EPS nodes publish to /eps/diagnostics (diagnostic_msgs/DiagnosticStatus).

Fault Conditions

  • BCDU: Overcurrent or out-of-range voltage.

  • Battery Manager: Overcharge or undervoltage.

  • MBSU: Insufficient healthy channels.

Diagnostics can be viewed in GUI dashboards or logged for offline analysis.


4. Launch Sequence

To bring up the EPS simulation:

ros2 run demo_eps sarj_mock
ros2 run demo_eps battery_health
ros2 run demo_eps bcdu_device
ros2 run demo_eps mbsu_distributor

5. Summary

Real ISS Component Simulation Node File Function
PV Module + SSU/DCSU SARJ sarj_mock.cpp Publishes solar voltage
Battery ORUs Battery Manager battery_health.cpp Battery health + charge/discharge
BCDU + DCSU BCDU bcdu_device.cpp Charge/discharge control, diagnostics
MBSU MBSU mbsu_distributor.cpp Channel selection, bus output
DDCU (Future) DDCU planned Secondary voltage regulation

⚠️ **GitHub.com Fallback** ⚠️