victronenergy / venus

Victron Energy Unix/Linux OS
https://github.com/victronenergy/venus/wiki
545 stars 70 forks source link

hub4control: Make pv inverter offset configurable #1175

Open izak opened 7 months ago

izak commented 7 months ago

Todo

Background

In a system with both a Multi/Quattro and PV inverters, and where grid feed-in is limited, there is a possibility that the PV-inverter and the Multi competes to reach the ESS grid setpoint.

Once the setpoint is reached, a state of equilibrium results where the PV-inverter can not ramp up any further. If this state happens in a place where the Multi carries more of the load, or doesn't charge at full speed, you end up in a deadlock where PV is not fully utilised.

For this reason, hub4control has for years had an offset, where it will raise the PV-inverter setpoint by some amount whenever there is a PV-inverter that is in running state, so that the PV-inverter will always aim slightly lower than the Multi. This creates a tug-of-war (touwtrekkerij) around the setpoint, and favours the PV-inverter.

This mechanism was later enhanced, and instead of using a hardcoded offset, it was made to be 2% of the PV-inverter capacity. That way it scales with the PV-inverter size.

The offset cannot be made too large. If it is made too large, the Multi will have a tendency to import too much from the grid during the day.

Problem

We STILL have sites where the offset just isn't large enough, and a non-optimal equilibrium arises at times. As stated before, a larger offset will cause more grid import, and a smaller offset creates more chance of non-optimal equilibrium.

Suggested solution

Make the offset configurable. I'm generally not in favour of having too many configurable options, but this bug doesn't lend itself to many more options.

TODO

mpvader commented 5 months ago

What is the status of this Izak? On the todo it says this:


Was anything actually changed for users? or was just a new setting introduced, but not to the gui, so nothing fixed or changed for users yet?

In case that last is what the situation is: lets leave it at that then and finalise this in v3.30

mpvader commented 5 months ago

(assigning it to v3.20 since I need to get the change log correct)