-
-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement of CVL-controller #882
Conversation
Unfortunately I have no possibility to test this now in winter, but based on the graph it looks very good! If many can test this, I would remove the current method with the penalty voltages. |
I have been using it for about a week and have not noticed anything negative so far. Thanks for your work! |
Hello @codeworkx, thank you a lot for your positiv reply. I am also using it for some time now on 2 Systems. Of cause i got only to 100% by planned charging in December. But for this I always see a much smoother behaviour. |
This PR is now merged and will replace the penalty sum voltage after a few months of testing. In the meanwhile it will be available as option. |
Hello @mr-manuel , thanks a lot. Happy to read this! |
Thank you for your contribution! |
@cflenker now I tested it with loading the battery from the grid. The battery never reached the dbus-serialbattery/etc/dbus-serialbattery/battery.py Lines 269 to 278 in 6093426
Checking your changes you did not consider that. I made this changes to implement that: mr-manuel/venus-os_dbus-serialbattery@f52f21f Will merge it after a few days of testing. The curve looks very clean! Great work! |
Hello @mr-manuel, sorry. You are right. I did not consider that. I will make a proposal to fix it tonight or tomorrow night. Thank you. |
I already fixed it ;-) the change is linked above |
Thank you very much!!! |
Same to me.. 4h absorb with <10mv celldiff. I will switch back to |
Hello @mdkeil, hello @Becker884, |
I will try it out. |
Problem solved.. I had to setup a little voltagedrop, because with linear limitation enabled I never reached the maximum charge voltage. |
can you show me please what you did set up? |
my config:
|
@cflenker for the purpose of completion could you explan what happens, if the value |
Yeah, I'd like to know this too, as it would be good to understand what is a slower/ faster/ or higher / lower ratio of voltage limitation. Also, testing 1.3.20240417dev today (I have 2 runner cells) I see the ICONTROLLER lower the CVL from 28v to 27.2v on one battery, but this isn't picked up by batteryaggregator which still shows 28v, so the system still calls for 28v across the three batteries. - Maybe a batteryaggregator problem though? The CVL keeps decreasing on Battery 1 whilst cell voltage differential also decreases which seems counter intuitive, unless it's still trying to lower the stsem voltage but that's not being aggregated back to Venus: |
Hello,
So the CVL_ICONTROLLER_FACTOR controls how fast the CVL is lowered if one cell goes above |
This means:
|
Thanks, that makes it much clearer, so in your scenario above I'll just have to test another driver release to see why it didn't aggregate with multiple batteries, and maybe test different factors to catch my runner cells early. |
With CVL_ICONTROLLER_FACTOR = 0.4 and a cell voltage overshoot of 0.1V the CVL will reduced 0.4*0.1 = 0.04V per Second. |
I made the experience that the I-Controller works not so good when you are off grid with a PV inverter (on AC Out). In this case multiple cells can have a bigger voltage then max voltage and the I-Controller does not correct this and the mess starts. In this case the P-Controller (penalty sum) works better. I will add this node in the confile file. |
Ok thanks, I am off grid but only have DC MPPT's, I have changed over to P-Controller for now and will maybe test I-Controller when everything is running smoothly. I think it was B aggregator that doesn't currently accept the CVL changes and aggregate them, hopefully Pulquero can make it work :) *Edit: BatteryAggregator v.3.0.51 > now has the option to allow CVL to aggregate multiple batteries for proper functioning of the Voltage Limiting with CVL-CONTROLLER, just add this to BatteryAggregator config.JSON:
|
A big advantage of serialbattery-driver compared to a victron-system with a smartshun-system is, that the serialbus-driver sees every cell voltage and can react on bad balanced batteries.
Especially at the end of charging (close to 100%) the charging-current is usually controlled indirect by CVL (Charge Voltage Limitation).
Furthermore in Victron Systems with MPPTs and DC-Feed-In activated CVL is the only way to reduce charging current, because CCL (charge current limitation does only apply to Multis, but not to MPPTs.
So it is a very good feature of the driver, that CVL can be reduced if a single cell runs over MAX_CELL_VOLTAGE.
This is implemented today with a "penaltySum"-Method that is in fact a P-Controller.
I think an I-Controller fits better to the requirements of CVL-Controlling.
This is implemented with this PR.
With the switch
CVL_ICONTROLLER_MODE
the PenaltySum (CVL_ICONTROLLER_MODE
=false) or a I-Controller (CVL_ICONTROLLER_MODE
=True) can be choosen.I made a test with each controller. With a power-supply I charged a single cell (cell no3) for 1.5h with 2Amps. So I got the cell3 about 3Ah higher than the rest of the 16s-Pack.
Then I charged the battery-pack to 100%. And the balancer got it right again.
Here is the result:
An I-Controller provides a calmer CVL and so gives the victron system time to adjust the charging-current to meet the CVL.