Controller FixActivePower spiralling out of control

Hello,

I have been encountering a strange issue when testing the implementation of a new ESS device in OpenEMS.

When I have been testing my modbus implementation using the controller FixActivePower, the system setpoints have spiralled upwards away from the ActivePower setpoint that I set.

See below for some excerpts from the debug log - the β€˜setpoint’ in the log is the value read from the register where the active power setpoint is written - we are using ManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER to read this.

In the below example I set the ACTIVE_POWER in the controller to -1500. You can see that at every step the ESS reaches the setpoint within the next cycle after the value is written to the register. Therefore it seems like the problem is not to do with how the value is being written with FC16WriteRegistersTask as it seems to move to the correct value for ActivePower.

The strange thing is that it seems like the problem is that applyPower is being controlled with incorrect values - i.e the issue is upstream of my ESS - although maybe the feedback from the ESS is contributing to this.

Has anyone experienced anything like this?

12:18:03.444 β€” L: 0 W, Setpoint: 0 W

12:18:03.452 β€” L: -200 W, Setpoint: 0 W

12:18:04.446 β€” L: -100 W, Setpoint: 0 W

12:18:05.441 β€” L: -100 W, Setpoint: 0 W

12:18:06.442 β€” L: -200 W, Setpoint: 0 W

12:18:07.459 β€” L: -100 W, Setpoint: 0 W

12:18:08.475 β€” L: -200 W, Setpoint: -1400 W

12:18:09.443 β€” L: -1400 W, Setpoint: -1600 W

12:18:10.445 β€” L: -1600 W, Setpoint: -2700 W

12:18:11.450 β€” L: -2800 W, Setpoint: -1700 W

12:18:12.444 β€” L: -1800 W, Setpoint: -2700 W

12:18:13.446 β€” L: -2800 W, Setpoint: -500 W

12:18:14.441 β€” L: -600 W, Setpoint: -2500 W

12:18:15.443 β€” L: -2600 W, Setpoint: 700 W

12:18:16.442 β€” L: 600 W, Setpoint: -3500 W

12:18:17.479 β€” L: -3600 W, Setpoint: 1700 W

12:18:18.447 β€” L: 1600 W, Setpoint: -5700 W

12:18:19.448 β€” L: -5800 W, Setpoint: 3700 W

12:18:20.446 β€” L: 3600 W, Setpoint: -8900 W

12:18:21.447 β€” L: -9000 W, Setpoint: 7900 W

12:18:22.454 β€” L: 7800 W, Setpoint: -14100 W

12:18:23.449 β€” L: -14200 W, Setpoint: 15300 W

12:18:24.446 β€” L: 15100 W, Setpoint: -23500 W

12:18:25.448 β€” L: -23500 W, Setpoint: 27800 W

12:18:26.451 β€” L: 27600 W, Setpoint: -40100 W

12:18:27.450 β€” L: -40000 W, Setpoint: 49600 W

12:18:28.464 β€” L: 49200 W, Setpoint: -69100 W

12:18:29.452 β€” L: -69000 W, Setpoint: 87700 W

12:18:30.447 β€” L: 0 W, Setpoint: -100000 W

12:18:31.454 β€” L: 0 W, Setpoint: 67500 W

12:18:32.451 β€” L: 0 W, Setpoint: -1500 W

12:18:33.449 β€” L: 0 W, Setpoint: -1500 W

12:18:35.526 β€” L: 0 W, Setpoint: 0 W

12:18:36.451 β€” L: 0 W, Setpoint: 0 W

12:18:37.450 β€” L: 0 W, Setpoint: 0 W
1 Like

NB: This issue has been solved. The cause is that my ESS is a hybrid ESS and I had not yet defined the DcDischargeEnergy channel. When the FixActivePower is configured with TARGET_DC, the system is unable to correctly calculate the correct DC power (because it assumes that DcDischargePower = 0 when the inverter is actually charging/discharging). This causes the AC setpoints to become deranged and go out of control.

I will delete this thread.

1 Like

Hi @thomas,

great you solved your problem by yourself!

ESS and hybrid ESS are often the cause of problems. You have written an excellent error description followed by a detailed solution of your problem.

I am especially grateful that you have answered your own post. Because this kind of posts typically help me a lot when I am looking for help by myself. I see no reason to delete the thread. It would be great if you could just leave it open.

1 Like

Hi Christian,

Sure no problem. I can keep the post up if it will be helpful to the community for troubleshooting later :slight_smile: