Source code for RCAIDE.Library.Components.Powertrain.Sources.Battery_Modules.Generic_Battery_Module

# RCAIDE/Library/Components/Powertrain/Energy/Sources/Battery_Modules/Generic_Battery_Module.py
# 
# 
# Created:  Mar 2024, M. Clarke
# Modified: Sep 2024, S. Shekar
 
# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
from RCAIDE.Framework.Core        import Data
from RCAIDE.Library.Components    import Component   
from RCAIDE.Library.Methods.Powertrain.Sources.Batteries.Common.append_battery_conditions import append_battery_conditions, append_battery_segment_conditions

# ----------------------------------------------------------------------------------------------------------------------
#  Battery
# ----------------------------------------------------------------------------------------------------------------------      
[docs] class Generic_Battery_Module(Component): """ Base class for battery module implementations Attributes ---------- energy_density : float Energy stored per unit volume [J/m^3] (default: 0.0) current_energy : float Current energy stored in battery [J] (default: 0.0) current_capacitor_charge : float Current charge level of capacitor [C] (default: 0.0) capacity : float Total energy capacity [J] (default: 0.0) length : float Physical length of battery module [m] (default: 0.0) width : float Physical width of battery module [m] (default: 0.0) height : float Physical height of battery module [m] (default: 0.0) volume_packaging_factor : float Factor accounting for packaging volume (default: 1.05) BMS_additional_weight_factor : float Factor for battery management system weight (default: 1.42) orientation_euler_angles : list Euler angles defining battery orientation [rad] (default: [0,0,0]) cell : Data Container for cell-specific attributes - chemistry : str Battery chemistry type (default: None) - discharge_performance_map : Data Discharge performance characteristics - ragone : Data Ragone plot parameters electrical_configuration : Data Battery electrical arrangement - series : int Number of cells in series (default: 1) - parallel : int Number of parallel strings (default: 1) geometrtic_configuration : Data Physical arrangement of cells - normal_count : int Cells in normal direction (default: 1) - parallel_count : int Cells in parallel direction (default: 1) - normal_spacing : float Spacing between normal cells [m] (default: 0.02) - stacking_rows : int Number of stacking rows (default: 3) - parallel_spacing : float Spacing between parallel cells [m] (default: 0.02) Notes ----- This base class provides the framework for implementing specific battery types. It includes physical, electrical, and geometric parameters needed to model battery performance and integration. **Definitions** 'Battery Management System (BMS)' System that monitors and controls battery operation, adding weight accounted for by BMS_additional_weight_factor 'Volume Packaging Factor' Ratio of total battery volume to cell volume, accounting for structural components and thermal management See Also -------- RCAIDE.Library.Components.Powertrain.Sources.Battery_Modules.Lithium_Ion_NMC Example implementation of a specific battery type """ def __defaults__(self): """ Sets default values for battery module attributes """ self.energy_density = 0.0 self.current_energy = 0.0 self.current_capacitor_charge = 0.0 self.capacity = 0.0 self.length = 0.0 self.width = 0.0 self.height = 0.0 self.volume_packaging_factor = 1.05 self.BMS_additional_weight_factor = 1.42 self.orientation_euler_angles = [0.,0.,0.] # vector of angles defining default orientation of rotor self.cell = Data() self.cell.chemistry = None self.cell.discharge_performance_map = None self.cell.ragone = Data() self.cell.ragone.const_1 = 0.0 # used for ragone functions; self.cell.ragone.const_2 = 0.0 # specific_power=ragone_const_1*10^(specific_energy*ragone_const_2) self.cell.ragone.lower_bound = 0.0 # lower bound specific energy for which ragone curves no longer make sense self.cell.ragone.i = 0.0 self.electrical_configuration = Data() self.electrical_configuration.series = 1 self.electrical_configuration.parallel = 1 self.geometrtic_configuration = Data() self.geometrtic_configuration.normal_count = 1 self.geometrtic_configuration.parallel_count = 1 self.geometrtic_configuration.normal_spacing = 0.02 self.geometrtic_configuration.stacking_rows = 3 self.geometrtic_configuration.parallel_spacing = 0.02
[docs] def append_operating_conditions(self,segment,bus): """ Append battery operating conditions for a flight segment Parameters ---------- segment : Segment Flight segment containing state conditions bus : Component Electrical bus connected to this battery """ append_battery_conditions(self,segment,bus) return
[docs] def append_battery_segment_conditions(self,bus, conditions, segment): """ Append segment-specific battery conditions Parameters ---------- bus : Component Electrical bus connected to this battery conditions : Data Container for segment conditions segment : Segment Flight segment data """ append_battery_segment_conditions(self,bus, conditions, segment) return