Description

The Fuel Bus manages the fuel network topology on a spacecraft, maintaining all connections between fuel components such as tanks, valves, pumps, and thrusters. It represents the fuel system as a graph where components are nodes and plumbing connections are edges. The Fuel System iterates over all Fuel Bus instances to solve fuel flow across the simulation.


Example Use Cases

  • Propulsion Feed System: Model the plumbing network from propellant tanks through valves and pumps to thrusters.
  • Redundant Feed Lines: Configure primary and backup fuel paths with isolation valves.
  • Cross-Spacecraft Transfer: Connect fuel systems between docked spacecraft for propellant transfer operations.
  • Fuel System Reconfiguration: Dynamically connect or disconnect fuel lines during flight to isolate faults or change feed configurations.

Module Implementation

Network Topology

The fuel bus maintains a network of edges, where each edge represents a physical connection between two ports on fuel components. The network is stored as a list of edges rather than an adjacency matrix, allowing efficient iteration during flow solving.

Each edge connects a source port to a destination port:

where represents a component and represents a port on that component.

Port Types

Fuel components expose specific port types for establishing connections:

PortComponentDescription
TankFuel SourceOutlet from propellant tanks
IntakeFuel ConsumerInlet for thrusters and other consumers
InletFuel ValveUpstream side of a valve
OutletFuel ValveDownstream side of a valve
UpstreamFuel PumpSuction side where fuel is drawn
DownstreamFuel PumpDischarge side where fuel is delivered
LocalFuel InterconnectConnection point for cross-spacecraft links

Edge Flow

Each edge carries a signed flow rate representing mass flow through the connection:

Positive flow indicates mass moving from the source port toward the destination port. The Fuel System computes these flow values based on component demands, valve states, and pump characteristics.

Cross-Spacecraft Connections

When components on different spacecraft are connected (e.g., during docked operations), the edge is added to both spacecraft fuel buses. This ensures that either bus can query and solve the connection. Disconnecting a cross-spacecraft edge removes it from both buses.

Canonical Edge Ordering

To prevent duplicate edges when connecting A to B and B to A, edges are converted to a canonical form for comparison. The canonical form orders edges by component ID, ensuring that bidirectional connections are recognized as equivalent.


Assumptions/Limitations

  • The fuel bus manages topology only; flow solving is performed by the Fuel System.
  • Edges are bidirectional for flow purposes but store flow with a sign convention relative to the defined direction.
  • Components must be added to a spacecraft hierarchy before connecting to the fuel bus.
  • Cross-spacecraft connections require both spacecraft to have a fuel bus; the bus is created automatically if absent.
  • The network does not model pipe geometry, pressure drops, or fluid dynamics beyond mass flow rates.
  • Orphaned cache entries (components with no remaining edges) are automatically removed during disconnect operations.