ESS Control Loop Instability with ABB B23 (RS485)

Hello Community,

I am an automation engineer with many years of experience in process control and I’ve encountered a significant architectural issue regarding the ESS control loop when using an ABB B23 grid meter via RS485.

My System:

  • Inverter: MultiPlus-II GX (Single Phase, Firmware v3.66 – Note: 3.70 does not seem to contain related fixes )

  • Battery: Sodium-Ion 8 x 4,5 kWh

  • Grid Meter: ABB B23 (Modbus RTU, 19200/38400 Baud, 150 Ohm terminated – did not have 120 Ohm when needed )

  • Previous Setup: Single-phase ESS using the analog CT-clamp. This worked perfectly and was stable/deterministic with almost perfect control response.

The Problem:
After switching to the ABB B23 for 3-phase metering, the ESS regulation became highly unstable. When adding a load (e.g., 1 or 2 kW on L1), the system starts to oscillate massively, swinging between +3.5 kW and -2.5 kW.
Turning it off was the only way to stop these oscillations. Only in the range of 100..300 W some slow control response in the correct direction could be observed. At least this confirmed that there were no trivial connection or setup errors made.

Root Cause Analysis (from a Control Theory perspective):
The issue appears to be a classic mismatch between the sensor sampling rate and the controller’s execution frequency, leading to a violation of the Nyquist-Shannon sampling theorem:

  1. The ABB B23 probably updates its Modbus registers with a certain period (approx. 500ms to 1s).Datasheet-Energy-Meters-Selection-Guide- DE.pdf

  2. The ESS algorithm in the GX device/MultiPlus seems to calculate control actions asynchronously and at a much higher frequency than the meter provides new samples.

  3. Because the controller acts on “stale data” without acknowledging the sensor’s dead time, the loop gain is far too high for this discrete-time system, causing the observed resonance/oscillation. Normally a process controller shall not compute a control response faster than the input sampling interval.

Temporary Workaround:
I have reverted to a hybrid setup:

  • Regulation is now handled by the analog CT-clamp on L1 (Inverter/Charger mode) for deterministic, real-tim e response.

  • The ABB B23 is only used as a monitor (Role: AC Meter / EV Charger) to visualize L2/L3 and the total balance. Pretty expensive toy.

  • When I switch on higher loads on L2 or L3 I have to adjust the grid setpoint manually to bring net consumption close to zero again. This is not very satisfying and not very helpful for the rest of non-technical family.

Question to the Developers:
Is there a plan to implement an adaptive dampening or a sample-synchronized regulation for high-latency Modbus meters? A stable control loop should not execute faster than half the sensor’s update rate to avoid these oscillations.

Note: I studied all articles with similar topics (oscillations). It seems to occur in different flavors of GX devices and with different meters. Nowhere was there a resolution hinted to other than buy a different meter and try this one.

Thank you

I have resolved it myself using my LOGO 8.3. I am writing -(L2+L3) as grid setpoint to the Multiplus II GX. A step change of 1000 W on L2 or L3 is being compensated to within 100 W within 10 secs now. It is not as fast as the analog sensor on L1 , but it is surely better than what Victron provides or no functionality at all. The worst devices are those that do heating with PWM like many devices in the kitchen do or the washing machine in eco program. But for a heat pump on L2 or L3 or other semi-permanent loads it works great. Also for 3phase equipment like a saw. The only drawback is that the not so mall spikes in negative direction when the load goes away are detectable by iMSys aka smartmeter with gateway ( I don’t have one yet ). I find it just embarrassing that one has to do workarounds like this.

Just for completeness : I am writing to Address 2716 (volatile ,not visible). For proof of concept I wrote to 2700 for a few hours ( visible response in UI , persistent in flash RAM). There are some additional integration issues. I will create an extra topic for that. The algorithm itself works now.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.