Source code for RCAIDE.Library.Components.Powertrain.Distributors.Electrical_Bus
# RCAIDE/Library/Components/Powertrain/Distributors/Electrical_Bus.py
#
# Created: Jul 2023, M. Clarke
# Modofied: Jan 2025, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
from RCAIDE.Library.Components import Component
from RCAIDE.Library.Components.Component import Container
from RCAIDE.Library.Methods.Powertrain.Distributors.Electrical_Bus import *
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia.compute_distributor_moment_of_inertia import *
from RCAIDE.Library.Methods.Mass_Properties.Center_of_Gravity.compute_distributor_center_of_gravity import *
# ----------------------------------------------------------------------------------------------------------------------
# Electrical_Bus
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Electrical_Bus(Component):
"""
Class for managing power distribution between aircraft electrical components
Attributes
----------
tag : str
Identifier for the electrical bus (default: 'bus')
battery_modules : Container
Collection of battery modules connected to this bus
assigned_propulsors : list
List of propulsion systems powered by this bus
avionics : Component
Aircraft avionics system
identical_battery_modules : bool
Flag indicating if all battery modules are identical (default: True)
active : bool
Flag indicating if the bus is operational (default: True)
efficiency : float
Power distribution efficiency (default: 1.0)
voltage : float
Bus voltage in volts (default: 0.0)
power_split_ratio : float
Ratio of power distribution between multiple buses (default: 1.0)
nominal_capacity : float
Total capacity of connected batteries (default: 0.0)
charging_c_rate : float
Battery charging rate in C (default: 1.0)
battery_module_electric_configuration : str
Configuration of battery modules ('Series' or 'Parallel') (default: 'Series')
Notes
-----
The electrical bus manages power distribution between sources and consumers,
handling voltage regulation, power splitting, and battery management. It supports
both series and parallel battery configurations.
**Definitions**
'C-rate'
Rate at which a battery is charged/discharged relative to its capacity
'Power Split Ratio'
Fraction of total power handled by this bus in multi-bus configurations
See Also
--------
RCAIDE.Library.Components.Powertrain.Sources.Battery_Modules
Battery module components
"""
def __defaults__(self):
"""This sets the default values.
Assumptions:
None
Source:
None
"""
self.tag = 'bus'
self.battery_modules = Container()
self.fuel_cell_stacks = Container()
self.fuel_tanks = Container()
self.assigned_propulsors = []
self.assigned_converters = []
self.identical_battery_modules = True
self.identical_fuel_cell_stacks = True
self.active = True
self.efficiency = 1.0
self.voltage = 0.0
self.power_split_ratio = 1.0
self.nominal_capacity = 0.0
self.maximum_energy = 0.0
self.charging_c_rate = 1.0
self.battery_module_electric_configuration = "Series"
self.fuel_cell_stack_electric_configuration = "Series"
[docs]
def append_operating_conditions(self, segment):
"""
Append operating conditions for a flight segment
Parameters
----------
segment : Segment
Flight segment containing operating conditions
"""
append_bus_conditions(self, segment)
return
[docs]
def append_segment_conditions(self, segment):
"""
Append segment-specific conditions to the bus
Parameters
----------
conditions : Data
Container for segment conditions
segment : Segment
Flight segment data
"""
append_bus_segment_conditions(self,segment)
return
[docs]
def initialize_bus_properties(self):
"""
Initialize electrical bus properties
Sets up initial values for bus voltage, capacity, and other electrical
properties based on connected components.
"""
initialize_bus_properties(self)
return
[docs]
def compute_distributor_conditions(self,state,t_idx, delta_t):
"""
Compute electrical conditions during operation
Parameters
----------
state : Data
Current system state
t_idx : int
Time index
delta_t : float
Time step
"""
compute_bus_conditions(self,state,t_idx, delta_t)
return
[docs]
def compute_moments_of_inertia(self,vehicle,center_of_gravity=[[0, 0, 0]]):
"""
Computes the moment of inertia tensor for the fuel line.
Parameters
----------
center_of_gravity : list, optional
Reference point coordinates for moment calculation, defaults to [[0, 0, 0]]
See Also
--------
RCAIDE.Library.Methods.weights.vehicle.moments_of_inertia.compute_fuselage_moment_of_inertia
Implementation of the moment of inertia calculation
"""
return
[docs]
def compute_center_of_gravity(self,vehicle):
"""
Computes the center of gravity for the distributor.
See Also
--------
RCAIDE.Library.Methods.weights.vehicle.center_of_gravity.compute_fuselage_center_of_gravity
Implementation of the moment of inertia calculation
"""
return