Skip to content

DC Voltage ‐ Load correction factor

Bernhard Kirchen edited this page Nov 26, 2023 · 3 revisions

Introduction

The DC Voltage - Load correction factor is a powerful option in the Dynamic Power Limiter (DPL) menu in case your system's battery does not deliver SoC (State of Charge) data to OpenDTU-OnBattery.

The DPL in OpenDTU-onBattery prefers using the battery's SoC to control the inverter. This requires a battery that supports communicating its SoC. Currently supported: Pylontech using CAN, Jikong JK BMS, or Victron SmartShunt. Alternatively, OpenDTU-OnBattery uses the battery voltage (as measured by the inverter) to control the inverter.

The battery's profile enables deduction of the battery SoC from its voltage. Example for a 24V LiFePo4 battery:

PowerQueen Capacity-Voltage

Loading the Battery

The correlation between battery voltage and SoC is only valid while the battery is idle, i.e., while it does not deliver energy. When the battery delivers energy, its voltage drops.

The voltage drop increases with increasing load. Example for a single LiFePo4 cell:

LiFePo4 Cell discharge curve

Example: A battery has a voltage of 25.6V while idle. When the inverter starts producing 1000W of AC power, the battery's voltage drops to 24.8V. If the inverter shortly after stops drawing power, i.e., very little energy was actually drawn from the battery, the battery voltage will return to 25.6V.

Parasitic Resistance

The cables and connections between the battery and inverter introduce resistance. Even though the total resistance is small, the voltage drop between the battery terminals and the inverter can be significant. That is due to high currents that need to flow to produce AC power in the Kilo-Watt range from a DC battery. This effect is greater (relative to the battery voltage) with smaller battery voltage, since the currents are higher, while the resistance is static. Again, the voltage drop increases with increasing load.

Example: The battery voltage measured at its terminals is 25.6V while the inverter is stopped. The inverter also measures 25.6V since close to no current flows from the battery to the inverter, so there is no significant voltage drop. When the inverter starts producing 1000W of AC power, the battery voltage drops to 24.8V. The inverter, however, only measures 24.3V.

Consequences

The DPL will stop the inverter too early: While producing a high amount of AC power, the battery voltage as measured by the inverter is significantly lower than the battery idle voltage. This can lead to switching the inverter off and on repeatedly, since the battery voltage jumps over the start threshold as soon as the inverter is off, and drops below the stop threshold as soon as the inverter is enabled again, while little to no energy was actually used.

Countermeasure: Load Correction Factor

The load correction factor is used to calculate a "corrected voltage". That corrected voltage is supposed to match the expected battery's idle voltage at any given time. The DPL uses said corrected voltage to determine whether or not the stop threshold is reached, rather than the DC voltage measured at the inverter's input(s).

Since the amplitude of both effects discussed above (battery voltage drop and cable voltage drop) scales with the power being produced, the following formula is applied to calculate the corrected voltage.

Corrected Voltage = Inverter DC Voltage + (Current Power (W) x Load Correction Factor).

Calculating the Factor

An appropriate load correction factor is best determined by an experiment using the actual components:

  1. Consult the battery voltage profile of your battery, e.g., at 10% capacity the battery's idle voltage is 25.6V. Let's assume that 10% is the desired minimum battery SoC.
  2. Setup this voltage (25.6V) as the DPL stop threshold.
  3. Discharge the battery close to the target SoC, e.g. 11%.
  4. Switch on the inverter and set it to high power output, e.g., 1000W.
  5. Note the battery voltage as measured by the inverter under 1000W load and with cable losses, e.g., 24.3V (you can see the battery voltage as measured by the inverter next to Voltage of any of the String's Live Data of the inverter).

Values:

  • Battery idle voltage at desired lowest SoC: 25.6V
  • Load: 1000W
  • Battery voltage measured by the inverter under load: 24.3V

The calculation of the Load Correction Factor is as follows:

  • Corrected Voltage = Inverter DC Voltage + (Current Power (W) x Load Correction Factor)
  • => Load Correction Factor = (Corrected Voltage - Inverter DC Voltage) / Current Power (W)
  • Using our data from above, we have (25.6V - 24.3V) / 1000W = 0.0013

Conclusion

The Load Correction Factor ensures that OpenDTU-OnBattery is able to calculate a reasonable estimate for the battery idle voltage, i.e., the expected battery voltage if the inverter was stopped, compensating voltage drops (battery and cabling) under high loads.

Clone this wiki locally