I need to get my head around a problem for optimising my newly installed EnergyStorageSystem, to optimise Battery charging from dynamic PV intake, while consumption/loads are also dynamic during winter time - where in general the PV intake is not enough to charge the battery fully for some time.
This is what a current system state looks like:
This shows a situation, that I created manually now, but I want to achieve this programmatically with dynamic values via Node-Red.
I think, is is some kind of dynamically adjusted PID algorithm, but I am a little confused as on how to start.
This is what the picture above shows:
- PV Inverter: the actual Power output from my solar array
- Grid: the actual power consumption from the Grid
- Battery (charging): the actual Power delivered from the inverter to the Battery,
The battery is actually charging with a Power value (just) below the PV Power output.
- AC Loads: the total actual Power consumed by the installation (house).
As you can see, the PV Output is lower that the actual AC-Loads. The Load from the Grid is also lower than the AC-Loads, as well as the Power charging the Battery.
In a "normal" ESS setup, PV power is first consumed directly and only when PV Power exceeds the AC-Loads, hence the Grid setpoint is configured to be zero Watts, the excess Power is either used to charge the batteries or even fed back into the grid (grid power being negative).
This is / would be the normal behaviour of the ESS System and the internal Controller will do that automatically. So normally, in that situation, the Batttery would not have started charging and PV power would be used directly, hence there is no excess power from PV left.
What I want, is to override/trick the ESS, as the PV Power available during winter allows not for much excess to charge the batteries fully (which is needed for re-balancing the cells and to keep them healthy), with a Node-Red by controlling the Grid setpoint.
This can be done via MQTT.
I manually created the situation above by setting the Grid setpoint to 1300W in this situation:
Now the question is, what controller "function" can be used or how a PID node could be used to control the value of the grid setpoint in a way, where available PV Power will be used to charge the Batteries instead.
The is one major constraint, though: Charging Power to the Batteries must always, at all times, be lower than the available PV-Power (or both zero) as my DSO does not allow charging the batteries from grid.
As a side note: The ESS does provide reading the values of Grid Power, PV Inverter Power, Battery Power (an charging/discharging state info) but NOT the value of the AC Loads via mqtt.
Many thanks in advance for your feedback and thoughts on how to tackle this.