Skip to content

State of charge (SOC)

The state of charge is the fraction of the available energy at a given instant. It varies between 0 (empty battery) and 1 (full charge). Alternatively, the Depth of discharge (DOD) can be used, with 1 indicating a battery fully discharged.

SOC is not directly measurable. Battery voltage is an indicator but not always reliable, as it depends heavily on current, temperature, and battery age. In simple controllers, SOC cannot be used for control decisions; only voltage is relevant. In complex systems (such as those with BMS), SOC may be estimated from current history, but this is never absolute.

The SOC estimation has two purposes in the simulation:

  • Keeping track of the battery internal energy balance.
  • Triggering events, such as the end of charge or end of discharge.

Definition until PVsyst 8.1.0

Until PVsyst 8.1.0, the SOC and the internal energy variation relied on the battery current capacity [Ah]

\[\Delta \textsf{SOC} = \frac{\textsf{Current}_\textsf{internal}\,\mathrm{[A]} \cdot \textsf{Duration}\,\mathrm{[h]}}{\textsf{Capacity}\,\mathrm{[Ah]}}\]
\[E_\textsf{SOCbalance}\,\mathrm{[Wh]} = \Delta\textsf{SOC} \cdot \textsf{Capacity}\,\mathrm{[Ah]} \cdot V_\textsf{battery}\,\mathrm{[V]}\]

As the capacity depends on several parameters - mainly the discharge rate - a given \(\Delta \textsf{SOC}\) may not represent the same internal energy variation.

A discharge rate of C2 draws 5 times more current than C10. But since the C2 capacity is lower than C10 capacity, going from 100% to 0% SOC at C2 will take less than 5 times the time.

During the following charging phase, the model needs to ensure the total charging energy between 0 and 100% SOC to be higher than the discharging energy from 100% to 0.

This only works if the capacity value used during the charging phase matches the capacity during the discharging phase. To do so, the model was recording the average battery capacity during the discharging phase, and using it during the following charging. This works well when the two consecutive phases are regular (going from x to y %SOC, then from y to x).

In some cases, especially when the charging and discharging phases where not regular, the error on the battery capacity used during the charge could compound and be noticeable.

This is a pure modelling issue. On a real battery, even with an unreliable SOC estimate, the internal energy balance cannot deviate and deliver more energy than has been charged.

In simulation, we do need a more robust way of tracking the internal energy variation. To do so, we need to dissociate the battery SOC and the battery instantaneous capacity.

New definition

Now the battery SOC represents the fraction of the battery remaining total energy, based on Cref. By definition, Cref is highest capacity value possible for a given battery in PVsyst, namely the Capacity at C200 (200 hours discharge) at the reference temperature.

\[\Delta \textsf{SOC} = \frac{I_\textsf{Battery}\,\mathrm{[A]} \cdot \textsf{Duration}\,\mathrm{[h]}}{C_\textsf{ref}\,\mathrm{[Ah]}}\]

Since CRef is constant, the battery \(\Delta \textsf{SOC}\) is always the same for a given current and duration. ESOCbalance can also be defined using an absolute capacity reference:

\[E_\textsf{SOCbalance}\,\mathrm{[Wh]} = \Delta\textsf{SOC} \cdot C_\textsf{ref}\,\mathrm{[Ah]} \cdot V_\textsf{battery}\,\mathrm{[V]}\]

This approach solves the Energy balance issue. But the battery capacity variation must be used somewhere, as it has a physical meaning that cannot be implemented in the battery losses.

We based this model under the assumption that the instantaneous capacity is not a loss, but a temporary state that depends on the current.

Since the capacity variation does not include a loss, it also means that the remaining capacity [Ah] only depends on the discharge rate [A] and the remaining energy in the battery.

We can thus give an indicated SOC definition:

\(\textsf{SOC}_\textsf{ind} = \textsf{SOC} - (1 - \textsf{Capa}/\textsf{CapaRef})\)

Because this SOC is impacted by the discharge rate (through the capacity), it can be used to trigger BMS events (end of discharge for example).

The main limitation of this model is that the indicated SOC can change instantaneously with the discharge current. A real battery may take a few minutes to a few hours to return to its nominal state after a higher power discharge. This temporal effect is not considered here.

The difference between the indicated SOC and the SOC may be important, especially with Lead-Acid batteries. It is not unusual for a Lead-Acid battery retaining 60% of its maximal energy (60% SOC) to have an indicated SOC lower than 30% under high load. In this example, if the controller end of discharge target is 30%, the battery will stop discharging even if the SOC is still at 60%. If a lower discharge rate is requested, the battery may continue discharging until it reaches 30% indicated SOC again in these conditions.

In PVsyst, for Grid connected systems, once the battery end-of-discharge event is triggered, the battery inverter is disabled until the next charging event.