pulquero / BatteryAggregator

MIT License
36 stars 7 forks source link

Cell Voltage limitation - CVL #77

Open wetty opened 1 month ago

wetty commented 1 month ago

Please include system details:

Hardware:

Setup: DVCC Everything is off except BatteryAggregator as BMS

BatteryAggregator with the described behaviour was Version 3.2 (I have now updated to Version 3.13, but hat not tested again)

I checked the BatteryAggregator Settings after writing this issue and found that cvlMode is on max_always. But I thing non of the cvlMode does handle the scenario correct. I have to test a little bit further.

I have two scenarios for reducing the charge voltage.

Maybe it is a little bit tricky do decide which behaviour is correct. In my case when both batteries are in Bulk or Absorption mode then the minimum of the charging voltages is correct. When both batteries are in float mode, then the lowest voltage is correct. And when one batterie is in Bulk or Absorption and the other one is in float, then the voltage of the batterie in Bulk or Absorption should be correct.

wetty commented 1 month ago

Setting for CVL was "min_when_balancing". With this BatteryAggregator switches to the lowest value, which is in my example/Screenshoot the Foat/FloatTransition Value of Akku 1. Akku 2 is still balancing as the delta is 0.024V. So the overall Battery Charge Voltage should be the value of Akku 2. In my case 62.24V (18x 3.45 = 62.1V + 0.14V Drop Off). Bildschirmfoto 2024-10-03 um 15 45 14

So I thing the CVL Setting/Calculation needs something that ignores the Float and Float Transition mode as long as another Battery is still in Bulk or Absorption Mode. Then it should take the lowest value of all the Buld/Absorption Voltages.

Only when all Batteries are in Float Or Float Transition Mode the highest of the Float Voltages should be used.

pulquero commented 1 month ago

Can you check if the mode is available in dbus? This is the main issue with trying to implement CVL well, trying to extract the required information over dbus from the bms. Atm I am mainly dependent on /Io/AllowToCharge and /Balancing.

wetty commented 1 month ago

The Mode as string value is available under the battery Info/ChargeMode

Maybe have a look at the same problem from dbus-aggregate-batteries

Bildschirmfoto 2024-10-04 um 11 46 41 Bildschirmfoto 2024-10-04 um 11 47 12

pulquero commented 1 month ago

Does soc happen to be 100% or close to, when charge mode is float or float transition? If I can use soc then this will also work for people who don't use serialbattery.

wetty commented 1 month ago

I have to check whether the soc is really 100%, but normally it should be 100% or at least 99%, as the float transition only starts when the cell difference is under a defined value for a period of time. For example less than 0.010V for 15 minutes when the overall voltage is reached. Hope my batteries will reach 100% tomorow so i can check it.

pulquero commented 1 month ago

I've also put a new version, 3.15, in 'main' for you to try. It should exclude any disconnected or floating batteries from the cvl calculation, see where that gets us.

wetty commented 1 month ago

With this version the min_when_balancing seems not to work. Bildschirmfoto 2024-10-17 um 15 31 14

I switched back to 3.14 and min_when_balancing did work again. So it was no config fault.

pulquero commented 1 month ago

Try v3.16.

wetty commented 1 month ago

Just installed 3.16 as the batteries were at 99% and one battery was already in float mode. In this case the float one should be ignored and the voltage of the one in bulk mode should be the correct one and not the float one. Setting was min_when_balancing. (currently trying max_when_balancing)

Bildschirmfoto 2024-10-20 um 13 08 34

I think that it is not possible to detect the float mode by the soc, as float mode only starts after a defined period of time, when the delta ist below a value and the final voltage is reached (even all parameters can be configured infividually). SOC is mostly => 99 when maybe voltage is reached but Diff is still to hight.

pulquero commented 1 month ago

what soc does the floating battery report as?

wetty commented 1 month ago

what soc does the floating battery report as?

As mentioned they were both on 99%

Bildschirmfoto 2024-10-20 um 14 11 25

THATS WRONG: Current setting is now max_when_balancing. But it also takes the lowest value Setting was an min. Sorry!

wetty commented 1 month ago

Batteries again both in bulk mode and min_when_balancing. First both were at 99% Shortly after that they were both 100% The higher value of the two batteries was taken. The lower would be correct. Both are not in float or floating mode

Bildschirmfoto 2024-10-20 um 15 03 29

Bildschirmfoto 2024-10-20 um 15 05 47

pulquero commented 1 month ago

Ah, ok. v3.17 excludes batteries where /Info/ChargeMode (if available) contains "float".

wetty commented 1 month ago

One Battery in Float is working. Hope I can get both batteries into float mode. Then they should be not exclude.

Bildschirmfoto 2024-10-21 um 08 17 34

wetty commented 1 month ago

I currently did not get the second Akku fully loaded and balanced because of not enough sun. Final Test Result may take a few month until spring :-)

wetty commented 1 month ago

Its not working. Seems that when the second Akku changes to float mode BatteryAggregator excludes both Akkus. The system then reported the Bms Lost Error. Version was 3.17 (updated to 3.18 afterwards)

But in this case both floating Akkus should be included again!

Bulk + Bulk = Bulk Bulk + Float = Bulk Float + Float = Float

Both Akkus where in float mode (18x 3,375V)

Bildschirmfoto 2024-10-26 um 16 45 48 Bildschirmfoto 2024-10-26 um 16 46 53

pulquero commented 2 weeks ago

I've added debug logging to track what's not working. You can turn on debug in config via https://github.com/pulquero/BatteryAggregator?tab=readme-ov-file#logging or live via dbus with /LogLevel.

Of particular interest will be lines starting "Charge mode for " or "Battery CVL: "