Description
A battery is an energy storage device that stores electrical energy in chemical form and releases it as needed. It is commonly used in power networks to supply power when generation is insufficient or to store excess energy when available. This simulation component models a battery within a power network, tracking its charge state, charge and discharge rates, time to recharge and state of health (SoH) over time.
Example Use Cases
- Energy Storage: Used to balance supply and demand by storing excess energy and discharging when needed.
- Satellite Power Management: Simulates battery usage in space applications where solar power is intermittent.
Module Implementation
The battery class is a Physical Object that can be added to any spacecraft, ground station or entity within the simulation framework. By default, it has a Nominal Capacity of 1 Amp-hour and a Nominal Voltage of 12.0 Volts.
The power data regarding the current and voltage coming in and out of the terminals are computed by the power bus based on the network available. Batteries can be added to a power network in both series and parallel. More information on the network configuration can be found in the Power Bus technical manuals.
Updating Charge
The charge of the battery is calculated using Coulomb counting based on the net current flow. The Charge Fraction represents the state of charge as a value between 0 and 1.
The net current is calculated as:
where positive values indicate charging and negative values indicate discharging. Current limits are applied:
- If and
Max Charge Currentis set, the net current is capped - If and
Max Discharge Currentis set, the net current magnitude is capped
An efficiency factor is applied based on the direction of current flow, with Charge Efficiency used when charging and Discharge Efficiency used when discharging. The charge fraction is updated using:
where is the time step in seconds and the capacity is in Amp-hours. The charge fraction is clamped to the range .
Time To Recharge
The time to recharge (TTR) of the battery is an auto-calculated value in seconds determined from the current in and out of the battery, its capacity and charge fraction using:
The real capacity of the battery is used so that State of Health modeling influences the time to recharge. If the current in and out of the battery are within 1 nA of each other, the TTR is set to positive infinity as the battery is deemed to not be charging. Additionally, if the charge fraction is 100%, the TTR is 0 seconds.
State of Health
The state of health () is determined by considering multiple degradation factors, including depth of discharge, charge rate, temperature, and calendar life. These parameters can be configured for the state of health calculation but are not required and are disabled by default. The will affect the overall Capacity of the battery.
The Depth of Discharge, , and charge rate, , parameters are calculated using the following formulae:
Then, assuming a temperature difference of from the Nominal Temperature, if it exists and a Thermal Model has been added, the State of Health can be computed using the following formula:
where is the weight for the depth-of-discharge, is the weight for the charge rate, is the weight for the temperature change and is the weight for the calendar life, defined by the age of the battery in years. This approach ensures degradation effects are modeled realistically to reflect battery aging.
Open Circuit Voltage Model
The battery voltage can be modeled using either a linear or polynomial Open Circuit Voltage (OCV) curve as a function of state of charge. By default, a linear model is used:
For more accurate modeling, polynomial coefficients can be provided to define a custom OCV curve:
where are the OCV Coefficients. If the Ignore Charge Fraction option is enabled, the voltage remains constant at the nominal value regardless of charge state.
Polarization Model
The battery includes an optional RC equivalent circuit model to capture transient voltage behavior. When enabled, a polarization voltage develops across the internal RC branch:
where is the time constant, is the Polarization Resistance, and is the Polarization Capacitance. The effective battery voltage becomes:
This model captures the voltage sag during discharge and recovery during rest periods.
Internal Components
The battery functionality, when connected to the power bus, contains an internal resistor and an internal voltage source. The internal resistance is configured through the Power Node Model. The battery voltage source provides the calculated battery voltage (OCV minus polarization voltage).
Assumptions/Limitations
- The thermal model is optional; if absent, temperature effects are ignored in the State of Health calculation.
- Calendar life degradation is modeled linearly.
- Any difference in current when using the maximum charge or discharge rates is assumed to be perfectly dissipated, without affecting the rest of the circuit.
- The polarization model uses a single RC time constant; multi-RC models are not supported.
- OCV coefficients must be determined experimentally or from manufacturer data.