Class in Zendir.Classes | Inherits from MotorElectricalControlled
Declaration
class FuelPump;Description
Represents a fuel pump component that drives fuel flow between two fuel sources in a spacecraft fuel system. The pump inherits from MotorElectricalControlled to enable realistic power consumption modeling when connected to the Electrical Power System (EPS). This allows simulation of pump behavior under varying electrical conditions. When connected to a PowerBus, the pump uses the actual motor speed computed from the EPS solve to determine flow rate. When not connected to a PowerBus, the pump operates in standalone mode using SpeedInput directly. When ≥ 0, flow scales as (effective speed / MaxSpeed) and is clamped to MaxSpeed; when MaxSpeed is negative, flow scales against SpeedInput and SpeedInput is not capped. The pump can be enabled/disabled and connected/disconnected from fuel sources during simulation.
Properties
| Declared | Description |
|---|---|
| AllowFlowWhenDisabled | When false (default), a disabled pump blocks all flow through it.When true, a disabled pump allows passive (gravity/pressure) flow as a pass-through. |
| CumulativeTransferredMass | Cumulative mass transferred through this pump since creation or the last . |
| EffectiveFlowRate | The effective flow rate currently being delivered by the pump in kilograms per second.This is a read-only output calculated each simulation tick based on motor speed,maximum flow rate, and efficiency factor. The value is zero when the pump is disabled,disconnected, or when motor conditions prevent operation. |
| Efficiency | The pump efficiency factor ranging from 0 to 1 (0% to 100%).This factor directly multiplies the calculated flow rate to account formechanical losses, fluid resistance, and other real-world inefficiencies.A value of 1.0 represents an ideal pump with no losses. |
| IsBidirectional | When true, the pump allows flow in both directions (upstream to downstream and vice versa).When false (default), the pump only allows flow from upstream to downstream when enabled.Bidirectional mode is useful for transfer systems where flow direction may reverse. |
| IsPumpEnabled | Indicates whether the pump is enabled for operation.When false, the pump will not transfer fuel regardless of motor state.Use the Enable() and Disable() methods to control this state programmatically. |
| MaxFlowRate | The maximum flow rate the pump can deliver when operating at full speed.This represents the pump’s rated capacity under ideal conditions.The actual flow rate depends on motor speed relative towhen ≥ 0, otherwise . |
| Out_FuelFlowMsg | Flow-state telemetry for this pump path (filled by the FuelSystem solver). |
| Out_PumpStatusMsg | Per-tick pump status (speed, enable state, and delivered flow). |
| Inherited | Description |
|---|---|
| ArmatureCurrent | Armature current flowing through the motor |
| ArmatureInductance | Armature inductance of the motor |
| ArmatureResistance | Armature resistance of the motor |
| BackEmf | Back-EMF voltage |
| Behaviours | A collection of behaviours attached to this object. |
| CenterOfMassB_B | The center of mass of the component in respect to the body frame (B) of the component. This is isolated from anychildren and exists in isolation. |
| CenterOfMassDot_LB_B | The center of mass time-derivative of the component within its own local coordinates. This does not include anyof the sub-components and exists in isolation. |
| CenterOfMassDotB_B | The center of mass time-derivative of the component relative to the body frame (B). This does not include any ofthe sub-components and exists in isolation. |
| CenterOfMassL_L | The center of mass of the component within its own local coordinates. This does not include any of thesub-components and exists in isolation. |
| CenterOfMassPrime_LB_B | The center of mass general-derivative of the component within its own local coordinates. This does not includeany of the sub-components and exists in isolation. |
| CenterOfMassPrimeB_B | [m/s] The center of mass general-derivative of the component relative to the body frame (B). This does notinclude any of the sub-components and exists in isolation. |
| Children | A collection of children attached to this object. |
| Current | Current through this component, in amperes, derived fromandusing the same convention as (series current whenthe two match; otherwise the split used for grounded nodes and current limiters).When is unavailable, this is zero. |
| DCM_BN | The rotational DCM matrix between the body frame (B) at the top of this component chain and the inertial frame (N). |
| DCM_LB | The rotational DCM matrix between the component frame of this object (L) relative to the body frame (B). |
| DCM_LN | The DCM rotational matrix of the component relative to the inertial origin (N) of the world. |
| DCM_LP | The DCM matrix of the component in the parent’s frame (P), taken from the Component Transform (PL). |
| In_ControlElectricalSignalMsg | Optional PWM control signal input. When connected, motor speed is duty cycle × full-scale speed( when ≥ 0, otherwise ). When null, uses directly. |
| IsEnabled | Is true if the object is currently enabled. |
| Ke | Back-EMF constant (voltage per rad/s) |
| Kt | Torque constant (Nm per Ampere) |
| LocalForward | The direction of the transform frame’s forward vector, which is along the Y axis. |
| LocalRight | The direction of the transform frame’s right vector, which is along the X axis. |
| LocalUp | The direction of the transform frame’s up vector, which is along the Z axis. |
| Mass | The component mass defined in the object. This is independent of any parent or children objects and exists inisolation. |
| MassDot | The component mass time-derivative defined in the object. This is independent of any parent or children objectsand exists in isolation. |
| MaxSpeed | Maximum motor speed in rad/s at 100% PWM duty. When ≥ 0, caps and defines full-scale speed; −1 disables the cap. |
| MaxSpeedRPM | Maximum motor speed in RPM. |
| Models | A collection of models attached to this object. |
| MomentOfInertia_LB | The moment of inertia of the component, measured at the local center of mass, represented with its own localcoordinates. This does not include any of the sub-components and exists in isolation. |
| MomentOfInertiaB_B | The moment of inertia of this component, measured in the body frame relative to the parented body. This isindependent of any children and exists in isolation. |
| MomentOfInertiaPrime_LB | The derivative of the moment of inertia of the component, measured at the local center of mass, represented withits own local coordinates. This does not include any of the sub-components and exists in isolation. |
| MomentOfInertiaPrimeB_B | The derivative of the moment of inertia of the component, represented in the body frame (B). This is independentand exists in isolation. |
| Name | The display name or tag of this object. |
| NetPower | Net power contribution of this component to the bus. Passive componentsdissipate power, so NetPower is non-positive. This is derived directly fromthe voltages and currents at the In/Out terminals of the underlying. |
| OpenCircuit | A flag if the power node is currently open and no power willbe transferred to the next component. |
| Out_ComponentMassMsg | The component mass message defines the set of mass properties and states of the system within this componentlocally. This is independent of any parent or children properties or objects. |
| Out_MotorMsg | The motor message containing output data (speed, torque, current, back-EMF) |
| Out_TransformMsg | This defines the base transform message that stores the state of the transform of this object. |
| Parent | The currently attached parent object (if any). |
| Position | [m] The position of the object relative to the parent or to world origin, if no parent exists. |
| Position_BN_N | The position of the body (the root parent B) in the inertial frame relative to the inertial point (N). |
| Position_LB_B | The position of the component relative to the root object of this hierarchy. This is in the inertial frame and ifthe component is the root object, then there will be no position. |
| Position_LN_N | The position of the inertial world space. This position is derived from the world’s transform (N). |
| Position_LP_P | The position of the object relative to the parented object (P). If there is no parent object, then this will bein the inertial frame. |
| PowerModel | The power model of this power component that is createdby this component. |
| PreviousCurrent | Previous armature current for inductor history |
| Resistance | The Resistance of the node. |
| Root | The root object in the parent chain. |
| Rotation | [-] The rotation of the object relative to the parent or to the world origin, if no parent exists. |
| Speed | Current motor speed in rad/s |
| SpeedInput | Motor speed input in rad/s (user-defined operating point).Used when no PWM control signal is connected. Clamped to ± when ≥ 0. |
| SpeedInputRPM | Motor speed input in RPM. |
| SpeedRPM | Current motor speed in RPM (convenience) |
| Thermal | [TEMPORARY] A reference to the thermal model that is attached to this object. This will allow the object to havethermal properties and be able to be used in thermal simulations. |
| TorqueElectromagnetic | Electromagnetic torque produced by the motor |
| TorqueShaft | Shaft torque available after friction losses |
| ViscousFriction | Viscous friction coefficient |
| Voltage | Voltage across this component (between its In and Out terminals), in volts.This is the same quantity as on— a single number suitable for EPS summaries withoutreferring to terminal naming.When is unavailable, this is zero. |
Methods
| Declared | Description |
|---|---|
| Connect | Connects the pump between two fuel sources to establish a fuel transfer path.The upstream source is where fuel is drawn from, and the downstream source is wherefuel is delivered to. |
| ConnectDownstreamConsumer | Connects a fuel consumer directly to the pump’s downstream (discharge) side.This enables pump-to-consumer topologies without an intermediate fuel source. |
| ConnectDownstreamInterconnect | Connects a fuel interconnect to the pump’s downstream (discharge) side.This enables pump-to-interconnect topologies for cross-spacecraft transfer. |
| ConnectDownstreamValve | Connects a valve to the pump’s downstream (discharge) side.The valve’s inlet port bonds to this pump’s downstream. |
| ConnectUpstreamInterconnect | Connects a fuel interconnect to the pump’s upstream (intake) side. |
| ConnectUpstreamValve | Connects a valve to the pump’s upstream (intake) side.The valve’s outlet port bonds to this pump’s upstream. |
| Disable | Disables the pump, stopping all flow. |
| Disconnect | Disconnects the pump from its fuel sources and valves. |
| DisconnectDownstreamConsumer | Disconnects a fuel consumer from the pump’s downstream side. |
| DisconnectDownstreamInterconnect | Disconnects a fuel interconnect from the pump’s downstream side. |
| DisconnectDownstreamValve | Disconnects the downstream valve from this pump. |
| DisconnectUpstreamInterconnect | Disconnects a fuel interconnect from the pump’s upstream side. |
| DisconnectUpstreamValve | Disconnects the upstream valve from this pump. |
| Enable | Enables the pump for operation. |
| GetPumpFlowRate | Calculates the current pump flow rate based on motor speed and efficiency settings.The flow rate calculation depends on whether the pump is connected to the Electrical Power System.When connected to a PowerBus, the pump uses the actual motor speed from EPS solve and requiressignificant armature current to operate (open switches result in zero flow). When not connectedto a PowerBus, the pump operates in standalone mode using the back-EMF speed directly.When ≥ 0, flow scales as (effective speed / MaxSpeed);otherwise flow scales as (effective speed / ). |
| GetPumpFlowRateAtSimulationTime | Same as but uses an explicit simulation time for optional CSV flow-rate profiles. |
| GetScheduledMaxFlowRate | Maximum pump flow rate at the given time after applying an optional CSV schedule; otherwise . |
| InitialiseFlowRateProfile | Loads a CSV time series for scheduled max flow rate. Column 0 is time (s); selects the rate column. |
| ResetTransferStatistics | Clears cumulative transfer accounting for training scenarios. |
| Inherited | Description |
|---|---|
| AddObject | Returns a new simulation object with the specified type. |
| Attach | Attempts to attach this object to a new parent. This will only work if the current object is no parented to anyother object. |
| ConfigurePower | Configures the power interface to its default state, which will include updatingthe variables of any SPICE power components to the correct state. |
| ContainsModelWithID | Returns true if an attached model satisfies the specified ID. |
| ContainsModelWithType | Returns true if an attached model satisfies the specified type. |
| Detach | This is an action to detach the current object from its parent, if it exists and move it to another object or tojust exist within the simulation. |
| FindBehavioursWithType | Returns all attached behaviours that satisfies the specified type. |
| FindBehaviourWithID | Returns an attached behaviour that satisfies the specified ID. |
| FindBehaviourWithType | Returns an attached behaviour that satisfies the specified type. |
| FindChildrenWithType | Returns all attached children that satisfies the specified type. |
| FindChildWithID | Returns an attached child that satisfies the specified ID. |
| FindChildWithType | Returns an attached child that satisfies the specified type. |
| FindModelsWithType | Returns all attached models that satisfies the specified type. |
| FindModelWithID | Returns an attached model that satisfies the specified ID. |
| FindModelWithType | Returns an attached model that satisfies the specified type. |
| FindParentWithID | Returns an attached parent that satisfies the specified ID. |
| FindParentWithType | Returns an attached parent that satisfies the specified type. |
| FindRootWithID | Returns a root object that satisfies the specified ID. |
| FindRootWithType | Returns a root object that satisfies the specified type. |
| GetModel | Returns a valid assigned model with the specified type. |
| GetWorldForward | [DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED. |
| GetWorldRight | [DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED. |
| GetWorldTransform | Returns the world transform of the object which is relative to the parent. If no parent exists, this will be thetransform of the object in world space. |
| GetWorldUp | [DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED. |
| ReadBodyTransform | This method will reset the dirty flag on the mass so that it has been read successfully and is valid. |
| ResetPower | Resets the power interface to its default state, which will include removingany SPICE power references associated to the current interface. |
| SetWorldTransform | [DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED. |
| UpdateMassProperties | Updates the mass properties of the current physical object at a particular time. |