With VenusOS 3.50 a change in the charge algorithm for Pylontech 15S batteries was introduced, that lowers the DVCC voltage, when min and max cell voltages differ too much. Ideally this behavior would keep the cells below 3.60 V.
I am running a stack of multiple Pylontech US2000C. Prior to this change, one block was regularly throwing Cell Overvoltage Errors when charging over 89%. I contacted Pylontech and after reviewing the logs of the battery a cell fault was determined and I received a replacement battery.
After some time now I suspect that a cell defect has occurred in another battery. But instead of hitting the cell overvoltage limit the charging voltage is repeatedly lowered and raised over a period of two hours until the cells have finally equalized.
What I found with a properly bad cell is the algo only reduced the number of alarms, and didn’t stop them completely, and a similar pattern developed.
You might have a marginal cell, that the system can still correct, but you are right, it likely can mask some developing issues on older systems.
If I may ask Izak @iburger, maybe an ease up on the parameters of the single-pole recursive low-pass filter in order for the algorithm to behave more quickly and not let the cells to reach so high voltages during regulation…
Maybe 0.6 and 0.4 ?..
That’s also because the DVCC voltage is published by the driver on the bus on a 5 second time basis, which is also toooo long, in my opinion.
Many can happen on 5 seconds and if the charger is missing that packet, then after another 5 seconds…
The dvcc process things at 3 seconds interval and the driver publishes the values on 5 seconds interval, which is way too long.
In the BMS log high voltage alarms are generated at 3.55 V, but they are not passed on to VenusOS. This happens regularly in my system.
Only overvoltage alarms in the BMS log triggered at 3.65 V are passed on to VenusOS and displayed there as high voltage alarm.
During my last warranty claim Pylontech support didn’t seem to care about the high voltage alarms at all. Only after providing proof of regular overvoltage alarms due to cell imbalance my claim was accpeted.
The spikes are 3,65V and the exact moments with the corresponding alarm in the alarm log.
The entry in the alarm log is definitely generated at 3,65V not 3,60V or 3,55V.
That because the log interval is 1 minute… Try to lower the log interval to 5 seconds or less and see that the hit moment is at 3.6V.
Also, you don’t have to believe me, believe what the parameters read command from the Pylontechs console tells you.
You can see that the target is 52.5V, which is 3.5V per cell.
But the voltage is dragged down from when the cells are 3.485V, which is 52.27V.
Hence the continuous regulation/race of ups and downs after different voltages.
And another one from today.
See how the algorithm proposed here on Aug 27, last year, “pamper” the charging voltage in order for the battery to smoothly reach the desire voltage.
And how in the process, it caps the high cell voltage and wait for the low cell to get fully charged.
The log interval is not the problem.
It hits 3,61V at 12:01 (3,62V at 12:02; 3,64V at 12:03) and the alarm appears at 3,65V at 12:05.
It is over 3,60V for 4 minutes without the alarm.
Maybe you have a different configuration on the batteries.
Also remember that the alarms are a consequence of Venus OS logging.
I am talking the event logs read from the battery console port itself at the exact moment of alarm.
Something like this, where you can see when the cell 4 was having 3.602V and raised an high voltage alarm and a log entry was generated.
ID Day Time Volt Curr Tempr Tlow Thigh Vlowest Vhighest Base.St Volt.St Curr.St Temp.St ErrCode MosT.St SOC TotalCoul ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC
0 23-10-01 22:53:09 52514 2933 31100 26800 27200 3358 3602 Charge Normal Normal Normal 0x0 Normal 98% 50000 1 3543 27100 Normal Normal 100% 2 3518 27100 Normal Normal 100% 3 3466 27100 Normal Normal 98% 4 3602 27100 High Normal 100% 5 3522 27100 Normal Normal 100% 6 3454 27200 Normal Normal 98% 7 3526 27200 Normal Normal 100% 8 3458 27200 Normal Normal 98% 9 3456 27200 Normal Normal 98% 10 3358 27200 Normal Normal 98% 11 3460 26800 Normal Normal 98% 12 3599 26800 Normal Normal 100% 13 3495 26800 Normal Normal 100% 14 3533 26800 Normal Normal 100% 15 3524 26800 Normal Normal 100%
I never changed any settings inside the battery.
(why should one do that?)
The problem seem to be a “translation” mistake.
Pylontech says >3,60V = “high voltage” but this isn’t send to the Victron system.
Pylontech says >3,65V = “over voltage” this is transmitted to the Victron system but Victron calls that a “high voltage” alarm.
You are correct about translation and handling of errors…
I missed that.
Indeed, here’s a row with an overvoltage, at the same cell 4 (3.652V), which says now OV, not High
And at the same time, cell 12, High with 3.649V (so close)
ID Day Time Volt Curr Tempr Tlow Thigh Vlowest Vhighest Base.St Volt.St Curr.St Temp.St ErrCode MosT.St SOC TotalCoul ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC ID BVolt BTempr BVolt.St BTemp.St SOC
3 23-10-02 00:12:33 53040 2987 32800 26700 27200 3359 3652 Charge Normal Normal Normal 0x0 Normal 97% 50000 1 3592 27200 Normal Normal 100% 2 3564 27200 Normal Normal 100% 3 3495 27200 Normal Normal 99% 4 3652 27200 OV Normal 100% 5 3564 27200 Normal Normal 100% 6 3477 27100 Normal Normal 98% 7 3573 27100 Normal Normal 100% 8 3482 27100 Normal Normal 99% 9 3479 27100 Normal Normal 98% 10 3359 27100 Normal Normal 97% 11 3481 26700 Normal Normal 99% 12 3649 26700 High Normal 100% 13 3528 26700 Normal Normal 100% 14 3577 26700 Normal Normal 100% 15 3568 26700 Normal Normal 100%
If the algorithm is properly designed, you wont see any high/over voltage errors…
Only that the battery will not charge to 100% or will take forever to get there.
So if you start to see that on plenty of sun or grid availability (depending on how you charge them) you wont get 100% regularly, then you will start to take a look at the Remote Console and you will see that the same cell is either shooting up or dragging down on a regular basis.
This will raise eyebrows as a cell that is shooting up will make the algo intervene and drop the voltage and therefore the whole pack will not charge to 100%, or if the cell is dragging down, also the BMS will consider that the pack has not reached yet 100%.
As a side note… what happens with the ones that on purpose are not letting the battery to get to 100%… well, this is another discussion…