No items found.

Physics-based battery models are essential tools in understanding and predicting the performance of batteries under various operating conditions. The Single Particle Model (SPM) is one of the simplest forms, representing each electrode as a single spherical particle. This model captures the basic electrochemical processes and is particularly useful for its computational efficiency. However, it oversimplifies the complex internal structures of the electrodes. The Doyle-Fuller-Newman (DFN) model, on the other hand, offers a more comprehensive approach. It includes the detailed physics of charge and mass transport within the electrodes and the electrolyte, making it a more accurate but computationally intensive model. Lastly, Equivalent Circuit Models (ECMs) represent the battery using electrical circuit elements like resistors, capacitors, and voltage sources. ECMs are widely used for battery management systems due to their simplicity and ability to fit experimental data, but they lack the detailed physics captured by models like the DFN. Each of these models serves different purposes, ranging from detailed analysis to real-time battery management applications.

In this example, we show how to model ECMs in Collimator. For SPM and DFN models, we recommend the [.code]pybamm[.code] Python library.

The ECM considered is a Thevenin model with one RC branch. Its schematic is shown in the Figure below:

The variables and parameters of the model have the following interpretation:

**Q:**Total capacity of the battery (typically specified in ampere-hours)**s:**Battery state-of-charge (SoC)**v_0**: Open circuit voltage of the battery**v_t**: Terminal voltage of the battery**v**: Voltage across the capacitor_{C1}**i**: Discharge current (current to the load)**R**: Internal resistance of the battery_{s}**R**: R1-C1 branch models slow diffusion processes in the battery (Ω)_{1}**C**: R1-C1 branch models slow diffusion processes in the battery [F]_{1}

State-of-charge (SoC) is a variable used to represent the current level of energy stored in a battery relative to its total capacity. Expressed as a percentage, SoC is an indicator of how much charge is remaining in the battery; an SoC of 100% (*s=1*) means the battery is fully charged, and an SoC of 0% (*s=0*) indicates it is completely discharged. The total capacity *Q* of a battery, measured typically in ampere-hours (Ah), is the maximum amount of charge it can hold when fully charged. The SoC can be calculated by dividing the current charge *q *(the amount of charge present at any given time) by the total capacity *Q*.

Note that *v _{0}*,

Based on the above Figure, the system of ordinary differential equations governing battery dynamics are:

\begin{align}

\dot{s} &= -\frac{i}{3600 Q} \\[5pt]

\dot{v}_{C_1} \ &= \frac{1}{C_1} \left( i - \frac{v_{C_1}}{R_1} \right)

\end{align}

where the factor $3600$ in the denominator converts $Q$ from Ampere-hours to Ampere-seconds. The terminal voltage $v_t$ is given by an algebraic relation:

$$ v_t = v_0 - i R_s - v_{C_1}. $$

We can implement this battery model using foundational blocks available in the Collimator block library. A screenshot of this model is shown here:

We can also build this model in code using the PyCollimator libraries:

...and then we can simulate our model. Let's apply a pulse discharge current to approximate non-continuous usage. Note that our dependence of $v_0$, $R_s$, $R_1$, and $C_1$ on $s$ is flat (default battery parameters) and battery capacity is 100 Ah:

Running this simulation results in the expected behavior where $SoC$ decreases linearly with current:

Check out the next installment where we will estimate optimal parameters based on synthetic data.