RCAIDE.Library.Methods.Powertrain.Sources.Batteries.Lithium_Ion_NMC.compute_nmc_cell_performance
compute_nmc_cell_performance#
- compute_nmc_cell_performance(battery_module, state, bus, coolant_lines, t_idx, delta_t)[source]#
Computes the performance of a lithium-nickel-manganese-cobalt-oxide (NMC) battery cell.
- Parameters:
battery_module (RCAIDE.Library.Components.Sources.Battery_Modules.Lithium_Ion_NMC) –
- Battery module component with the following attributes:
- tagstr
Identifier for the battery module
- cellData
- Cell properties
- electrode_areafloat
Area of the electrode [m²]
- surface_areafloat
Surface area of the cell [m²]
- massfloat
Mass of a single cell [kg]
- specific_heat_capacityfloat
Specific heat capacity of the cell [J/(kg·K)]
- discharge_performance_mapfunction
Function that maps state of charge, temperature, and current to voltage
- maximum_energyfloat
Maximum energy capacity of the module [J]
- electrical_configurationData
- Electrical configuration
- seriesint
Number of cells in series
- parallelint
Number of cells in parallel
state (RCAIDE.Framework.Mission.Common.State) –
- State object containing:
- conditionsData
- Flight conditions
- energydict
- Energy conditions indexed by component tag
- [bus.tag]Data
- Bus-specific conditions
- energynumpy.ndarray
Energy stored in the bus [J]
- power_drawnumpy.ndarray
Power draw on the bus [W]
- current_drawnumpy.ndarray
Current draw on the bus [A]
- battery_modulesdict
- Battery module conditions indexed by tag
- [battery_module.tag]Data
- Battery module conditions
- energynumpy.ndarray
Energy stored in the module [J]
- voltage_open_circuitnumpy.ndarray
Open-circuit voltage [V]
- powernumpy.ndarray
Power output [W]
- internal_resistancenumpy.ndarray
Internal resistance [Ω]
- heat_energy_generatednumpy.ndarray
Heat energy generated [W]
- voltage_under_loadnumpy.ndarray
Voltage under load [V]
- currentnumpy.ndarray
Current [A]
- temperaturenumpy.ndarray
Temperature [K]
- state_of_chargenumpy.ndarray
State of charge [0-1]
- cellData
Cell-specific conditions with same properties as module
- numericsData
- Numerical properties
- number_of_control_pointsint
Number of control points in the mission
bus (RCAIDE.Library.Components.Systems.Electrical_Bus) –
- Electrical bus component with the following attributes:
- tagstr
Identifier for the electrical bus
- battery_module_electric_configurationstr
Configuration of battery modules (“Series” or “Parallel”)
- battery_moduleslist
List of battery modules connected to the bus
coolant_lines (list) – List of coolant lines for thermal management
t_idx (int) – Current time index in the simulation
delta_t (numpy.ndarray) – Time step size [s]
- Returns:
stored_results_flag (bool) – Flag indicating if results were stored
stored_battery_module_tag (str) – Tag of the battery module for which results were stored
Notes
This function models the electrical and thermal behavior of an NMC battery cell based on experimental data. It updates various battery conditions in the state object, including: current energy, temperature, heat energy generated, load power, current, open-circuit voltage, charge throughput, internal resistance, state of charge, depth of discharge, and voltage under load.
- The model includes:
Internal resistance calculation
Thermal modeling (heat generation and temperature change)
Electrical performance (voltage and current calculations)
State of charge and depth of discharge updates
- Major Assumptions
All battery modules exhibit the same thermal behavior
The cell temperature is assumed to be the temperature of the entire module
Battery performance follows empirical models based on experimental data
Theory The internal resistance is modeled as a function of state of charge:
\[R_0 = 0.01483 \cdot SOC^2 - 0.02518 \cdot SOC + 0.1036\]Heat generation includes both Joule heating and entropy effects:
\[ \begin{align}\begin{aligned}\dot{q}_{entropy} = -T \cdot \Delta S \cdot i / (nF)\\\dot{q}_{joule} = i^2 / \sigma\\Q_{heat} = (\dot{q}_{joule} + \dot{q}_{entropy}) \cdot A_s\end{aligned}\end{align} \]References
[1] Zou, Y., Hu, X., Ma, H., and Li, S. E., “Combined State of Charge and State of Health estimation over lithium-ion battery cell cycle lifespan for electric vehicles,” Journal of Power Sources, Vol. 273, 2015, pp. 793-803. doi:10.1016/j.jpowsour.2014.09.146 [2] Jeon, D. H., and Baek, S. M., “Thermal modeling of cylindrical lithium ion battery during discharge cycle,” Energy Conversion and Management, Vol. 52, No. 8-9, 2011, pp. 2973-2981. doi:10.1016/j.enconman.2011.04.013
- reuse_stored_nmc_cell_data(battery_module, state, bus, stored_results_flag, stored_battery_module_tag)[source]#
Reuses results from one propulsor for identical batteries
Assumptions: N/A
Source: N/A
Inputs:
Outputs:
Properties Used: N.A.
- compute_nmc_cell_state(battery_module_data, SOC, T, I)[source]#
Computes the electrical state variables of a lithium-nickel-manganese-cobalt-oxide (NMC) battery cell using look-up tables.
- Parameters:
battery_module_data (function) – Look-up function that maps state of charge, temperature, and current to voltage
SOC (numpy.ndarray) – State of charge of the cell [unitless, 0-1]
T (numpy.ndarray) – Battery cell temperature [K]
I (numpy.ndarray) – Battery cell current [A]
- Returns:
V_ul – Under-load voltage [V]
- Return type:
numpy.ndarray
Notes
This function computes the voltage of an NMC battery cell under load conditions by using a look-up table approach. It converts the state of charge to depth of discharge, and then uses this value along with temperature and current to determine the cell voltage.
The function applies limits to ensure the inputs are within the valid range of the look-up data:
SOC is limited to [0, 1]
Temperature is limited to [272.65K, 322.65K] (approximately 0°C to 50°C)
Current is limited to [0A, 8A]
The input to the look-up table is a concatenated array of [current, temperature, depth_of_discharge].
- Major Assumptions
The battery performance can be accurately represented by a look-up table
The model is valid only within the specified temperature and current ranges