Battery ECM Simulator Back
Electrochemical Simulator

Battery Equivalent Circuit Model Simulator

Simulate Li-ion, LFP, and lead-acid discharge with a Thevenin ECM. Tune capacity, internal resistance, RC polarization, and C-rate to watch terminal voltage and SOC evolve in real time.

Battery Parameters
Capacity Q
Ah
Ohmic Resistance R₀
Polarization R₁
RC Capacitance C₁
F
Initial SOC
%
Discharge Rate
C
Presets
● Stopped
Results
Terminal V (V)
SOC (%)
Energy Out (Wh)
Power (W)
Current (A)
Remaining (min)
Batt
Terminal Voltage vs Time
SOC vs Time
Current vs Time
OCV – SOC Curve
Theory & Key Formulas

$$V_{term}= V_{OCV}(SOC) - I R_0 - V_{RC}$$

$$\frac{dV_{RC}}{dt}= -\frac{V_{RC}}{\tau}+ \frac{I}{C_1},\;\tau = R_1 C_1$$

$$\frac{dSOC}{dt}= -\frac{I}{3600 Q}$$

R₀: ohmic drop, R₁C₁: diffusion polarization (delayed response), VOCV: polynomial fit to OCV-SOC.

What is a Battery Equivalent Circuit Model?

🙋
What exactly is an Equivalent Circuit Model for a battery? It sounds like you're pretending a chemical battery is just a simple circuit.
🎓
Basically, that's right! An ECM is a simplified electrical model that mimics a battery's complex electrochemical behavior using common components like resistors and capacitors. In practice, it lets engineers predict the battery's terminal voltage during charge and discharge without solving complex chemistry equations. Try selecting different battery chemistries in the simulator above—you'll see the discharge curve change instantly because each chemistry has a unique internal voltage profile.
🙋
Wait, really? So what do the two resistors, R₀ and R₁, actually represent inside the battery?
🎓
Great question. R₀ is the ohmic resistance—it's the immediate voltage drop you see the moment current flows, due to electrical resistance in electrodes and electrolyte. R₁, in the RC branch, models polarization resistance, which causes a slower voltage drop from ion diffusion. A common case is when you floor the accelerator in an EV: you get an instant voltage sag (R₀) followed by a further gradual drop (R₁). Slide the "Ohmic Resistance R₀" control to see its direct, immediate effect on the voltage curve.
🙋
That makes sense. But what's the point of the capacitor C₁ paired with R₁? And what does the "time constant" τ tell us?
🎓
The RC pair creates a time delay, capturing how the battery's internal chemistry takes time to respond. The time constant $τ = R_1 C_1$ tells us how fast that polarization effect happens. For instance, a high τ means the voltage recovers slowly after a load is removed. In the simulator, adjust the "RC Capacitance C₁" and watch the voltage curve's slope change after the initial drop—that's the RC dynamics in action, crucial for predicting battery behavior in real-world pulsed loads, like a power tool.

Physical Model & Key Equations

The core equation calculates the battery's terminal voltage you would measure with a multimeter. It subtracts internal losses from the battery's inherent open-circuit voltage.

$$V_{term}= V_{OCV}(SOC) - I R_0 - V_{RC}$$

$V_{term}$: Measurable terminal voltage (V). $V_{OCV}(SOC)$: Open-circuit voltage, a unique function of State of Charge for each chemistry. $I$: Discharge current (A), positive for discharge. $R_0$: Ohmic resistance (Ω). $V_{RC}$: Voltage across the polarization RC branch.

This differential equation governs the dynamic voltage across the polarization branch, modeling the slow diffusion processes within the battery.

$$\frac{dV_{RC}}{dt}= -\frac{V_{RC}}{\tau}+ \frac{I}{C_1},\;\tau = R_1 C_1$$

$\frac{dV_{RC}}{dt}$: Rate of change of polarization voltage. $\tau$: Time constant (s), defining the speed of the polarization response. $C_1$: Polarization capacitance (F). A larger $\tau$ means the battery takes longer to reach a steady internal state after a current change.

The State of Charge (SOC) is simply the "fuel gauge" of the battery, calculated by tracking the charge removed over time.

$$\frac{dSOC}{dt}= -\frac{I}{3600 Q}$$

$\frac{dSOC}{dt}$: Rate of change of SOC (per second). $Q$: Battery capacity (Ah). The factor 3600 converts hours to seconds. This is Coulomb counting, the fundamental method for SOC estimation.

Frequently Asked Questions

Internal resistance R0 is a resistive component that causes an instantaneous voltage drop immediately after current is applied. On the other hand, RC polarization is modeled as a parallel circuit of a capacitor and a resistor, reproducing transient voltage fluctuations that respond with a delay to current changes. R0 handles immediate response, while RC polarization handles delayed response.
The C-rate represents the magnitude of the discharge current as a multiple of the battery capacity. The higher the C-rate, the larger the discharge current, which increases the voltage drop due to internal resistance R0 and the voltage decrease due to RC polarization. As a result, the terminal voltage drops earlier, and the SOC decreases faster. Practically, you can observe that the actual discharge capacity decreases as the C-rate increases.
Yes, it is possible. By adjusting the OCV-SOC curve, internal resistance R0, RC time constant τ, and capacitance C to match the measured data of an actual battery, you can reproduce a discharge curve close to the actual measurement. However, since temperature dependence and aging degradation are not included in the model, separate parameter corrections are required if these factors need to be considered.
Parameters can be changed in real time. When you change parameters such as capacity, internal resistance, RC polarization, or C-rate, the calculation immediately restarts using the current SOC and polarization voltage as initial values, and the terminal voltage and SOC graphs are updated. However, the history before the parameter change is not retained, so please record the data separately if you wish to make comparisons.

Real-World Applications

Electric Vehicle Battery Management Systems (BMS): The core algorithm in an EV's BMS uses an ECM like this one to estimate the remaining range (SOC) in real-time. It constantly adjusts the model parameters based on measured voltage and current to provide an accurate "gas gauge" for the driver.

Smartphone Power Management: Your phone's operating system uses a simplified ECM to predict battery life under different usage scenarios (gaming vs. reading). This helps manage performance and trigger low-power modes before the battery suddenly dies.

Grid-Scale Energy Storage: For large battery banks storing solar energy, ECMs are essential for scheduling charge/discharge cycles efficiently. Operators simulate different load profiles to maximize battery lifespan and ensure the system can deliver power when needed.

Drone & UAV Flight Time Prediction: Drones have strict weight limits, so batteries are small. An accurate ECM allows the flight controller to predict remaining flight time under varying motor loads, enabling safe return-to-home functions and preventing crashes from sudden power loss.

Common Misunderstandings and Points to Note

When you start using this model, there are a few common pitfalls to watch out for. First, think of the OCV-SOC curve as the battery's "fingerprint". Even for the same Li-ion chemistry, the shape can be completely different depending on the manufacturer and product series. For instance, if you directly use the representative curve provided in the tool, you might get a large error compared to your actual device. In practice, the first step is to fit the curve from measured data and create a dedicated parameter set.

Next is the order of parameter tuning. Many people jump straight into tweaking $R_1$ and $C_1$, but the correct procedure is to adjust in this order: "OCV-SOC curve" → "Internal resistance $R_0$" → "Polarization parameters $R_1, C_1$". For example, if the discharge cutoff voltage at a 1C rate is consistently 0.1V higher than your measured data, it's likely that $R_0$ is set too low. You should adjust the polarization parameters by observing the voltage recovery curve after stopping the discharge.

The biggest trap to be aware of is that "this model does not directly calculate thermal effects". The internal resistance $R_0$ changes significantly with temperature. The reduced range of an EV on a cold winter day is a classic example of this. If you need high accuracy in simulation, you'll need to prepare multiple models with parameters obtained under different temperature conditions and implement a method to switch between them based on temperature.