Multiplus starts charging Battery when reducing minimum SoC

I pretty much think this was the case. It was triggering sustain.
But there is also a weird situation regarding which voltage is used that causes the cycling to never stop. There seems to be a significant voltage hysteresis causing infinite cycling and configuration should be adjusted.

Expected behavior would be that the low voltage cut off is triggered, the battery is charged to sustain voltage and stays there. But what actually happens:

  1. Cut-off is triggered and BAT stops discharging
  2. sustain is triggered and BAT is charged
  3. discharging is continued until BAT again reaches cut-off

The only way i can think of how infinite cycling can happen would be if the sustain voltage is compared to the BAT’s BMS. And the cut-off voltage is compared to the MPII DC voltage.

Let me explain.

The “challenge” in my setup was a relatively high resistance between battery and multiplus II due to a cheap megafuse. Which lead to a relatively high voltage drop between DC voltage measurement of the BAT BMS and the internal DC voltage measurement of the MPII. I had two BAT monitors, the MPII monitor was enables and also the BAT has a BMS connected via CAN. I had DVCC configured to use the BAT BMS as controlling BMS.

Settings were taken from this pytes & victron guide for 51.2V batteries:

  • Dynamic Cut-off to 49 V for all C rates
  • sustain voltage to 51 V.
  • restart offset 1.2 V

I suspect that the Cut-Off Voltage is compared to the MPII’s internal DC voltage measurement. Under high current MPII internal DC voltage will be up to 1V lower than the BMS DC voltage. Therefore, it triggers the sustain mode, even if the BMS is well above 49 V. Under small load, the MPII internal and the BMS voltage will be almost same when cut off is triggered.

After cut off the sustain mode charges the BAT until it recharges 51 V. Assuming this is measured using BMS voltage. Due to the voltage drop along the cables the DC voltage at the MPII is around 52V (see screenshots above) and therefore well above the restart limit. This means discharging of the BAT is started again.

The reason for the infinite cycling is a restart offset that is chosen to low. I increased the restart offset and the infinite cycling was gone. Only one charge up to the sustain voltage and then stayed there.

Question: Does sustain mode use the controlling BMS’s voltage measurement? Does the cut-off mechanism use the MPII voltage measurement?

I ended up setting the dynamic Cut Off voltage to 47.5 V for all C values. This is the absolute minimum voltage stated in the pytes 48100R datasheet. The sustain voltage is set to 48 V and the restart offset to 2 V. This prevents infinite cycling and also does not trigger sustain prematurely at already 10-13% SOC.

BUT still it does not go below exactly 10%, because thats when the BMS raises the charge request.

This means infinite cycling can be solved by adjusting VE configure settings. Going below 10% SOC is not fixed.

Therefore, i set min SOC limit to 10% a the moment and will update when i have tried without BMS like mentioned above. With this there is no cycling.

1 Like

I finally found the time to perform the test without the Pytes BMS as controlling BMS in DVCC.

I can confirm the DVCC forces the premature charging behavior.

Usually when the BMS sends Charge Request, the Multi would stop discharging and start charging the battery. See above posts.

Without the BMS control the Battery is discharged even when the Flag “Charge Request” is sent from the BMS. The flag is set when the BMS SOC falls below 10 %.
See this picture:

Also when looking at the discharge current, you can see that it keeps discharging. And also that the BMS does not want the discharge current to be zero. This means the BMS is still fine with discharging. I therefore see the “Flag Discharge Request” only as a friendly notice not as a hard reason for DVCC to act upon.

Furthermore, i can not see that a low voltage of one individual cell might cause the behavior. Here is the plots for the highest and lowest cell:

At the point where the Flag “Discharge Request” is true, the lowest cell is well above 3V which is fine. The voltage difference of approx. 0.1V near the end could be better but is no significant imbalance in my opinion.

Lastly we can look at the overall battery voltage:

We see that a recharge is triggered at t=10:36 when the voltage at the Multiplus is 47.5V. This is what i have configured for Cut off voltage in the ESS Assistant.
After charging above 48V, sustain is triggered (see the current measurement).

There is no cycling anymore because the restart is high enough that voltage relaxation does not cause the restart. Hysteresis must be choose big enough!

2 Likes

Excellent.

Nice troubleshooting. And thank you for sharing.

So the question would be how to instruct the DVCC to ignore the Charge Request from the BMS.

You can’t. (Unless you want to dig into code guts) Its purpose is to listen to the battery. And it is doing so.
You can remove the bms control in DVCC and still keep monitoring the battery. This would be at your own discretion