Source code for RCAIDE.Library.Methods.Powertrain.Systems.compute_hydraulics_power_draw
# RCAIDE/Library/Methods/Powertrain/Systems/compute_hydraulics_power_draw.py
#
# Created: May 2026, M. Clarke, S. Sharma
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# package imports
import numpy as np
[docs]
def compute_hydraulics_power_draw(hydraulics,vehicle,state,bus):
"""
Computes the power draw of a hydraulic systems system.
Parameters
----------
hydraulics : Hydraulics
The hydraulic system component object, containing attributes for the left,
right, and central redundant circuits (flowspeeds, pressures, number of pumps)
- power_draw : float
Power consumption of the hydraulic systems component [W]
vehicle : Vehicle()
The vehicle object, used to extract the Maximum Takeoff Weight (MTOW) for mass scaling
bus : Electrical_Bus
The electrical bus that powers the hydraulic pumps
state : State
Object containing the dynamic mission state arrays
Returns
-------
None
This function modifies the hydraulics_conditions.power array in-place.
Notes
-----
This function calculates the electrical power required to maintain nominal
volumetric flow rates against system pressure for a triple-redundant hydraulic
architecture.
To account for varying aircraft sizes, the nominal volumetric flow rates are
scaled linearly based on the current aircraft's MTOW relative to a baseline
Airbus A320-200 reference model.
For more complex hydraulic systems models, this function could be extended to calculate
power draw based on operating mode, altitude, or other mission parameters such as angular
velocity and deflection angle for flight control surface actuation. Additionally, the model
could be expanded to include other hydraulic system architectures such as dual-redundant or
single hydraulic systems or pumps driven by engine shafts.
See Also
--------
RCAIDE.Library.Methods.Powertrain.Systems.append_hydraulics_conditions
"""
# 1. Define The Baseline (A320-200 parameters from MDPI Paper)
MTOW_baseline = 75166.0 # kg
P_res = 3.52 # bar (Reservoir pressure)
eta_pump = 0.855 # 85.5% pump efficiency
# 2. Extract current aircraft MTOW and compute scaling factor
MTOW = vehicle.mass_properties.max_takeoff
scaling_factor = MTOW / MTOW_baseline
# 5. Compute power
# Scale the volumetric flow rate based on aircraft size
V_flow_left = (hydraulics.left_system.flowspeed * scaling_factor) / 60000.0 # m^3/s
V_flow_right = (hydraulics.right_system.flowspeed * scaling_factor) / 60000.0 # m^3/s
V_flow_central = (hydraulics.central_system.flowspeed * scaling_factor) / 60000.0 # m^3/s
# Pressure difference (System P - Reservoir P)
delta_p_left = (hydraulics.left_system.system_power - P_res) * 100000.0 # Pa
delta_p_right = (hydraulics.right_system.system_power - P_res) * 100000.0 # Pa
delta_p_central = (hydraulics.central_system.system_power - P_res) * 100000.0 # Pa
# Calculate mechanical pump power: P = (V_flow * Delta_P) / eta
P_sys_left = hydraulics.left_system.number_of_pumps * ((V_flow_left * delta_p_left ) / eta_pump)
P_sys_right = hydraulics.right_system.number_of_pumps * ((V_flow_right * delta_p_right ) / eta_pump)
P_sys_central = hydraulics.central_system.number_of_pumps * ((V_flow_central * delta_p_central) / eta_pump)
P_act = P_sys_left + P_sys_right + P_sys_central
bus_conditions = state.conditions.energy.busses[bus.tag]
hydraulics_conditions = bus_conditions[hydraulics.tag]
hydraulics_conditions.power[:,0] = P_act
bus_conditions.power_draw += hydraulics_conditions.power*bus.power_split_ratio /bus.efficiency
return