I’m a beginner at learning OpenEMS. I have a mission that is to speed up the simulation. For example, simulate a day in a couple of minutes. So I refer to the following document. openems/io.openems.edge.simulator at develop · OpenEMS/openems · GitHub
And I conduct the following step.
- activate a “Controller Api REST/JSON Read-Write”
- activate a “Simulator App”
- Send a [JSON-RPC Request] with Postman
I copy and use the json data which in the document, and send the data using post method to http://x:admin@localhost:8084/jsonrpc
And I get “400 Bad Request” and the following Result.
“message”: “Unable to get Response: A Singleton Component for PID [Ess.Power] is already existing!”,
“Unable to get Response: A Singleton Component for PID [Ess.Power] is already existing!”
And the log shows behind.
It seems like the document doesn’t work for me. Maybe I do something wrong. May someone can help me to figure this out? Or does someone can share other approaches to achieve this mission. I’m very grateful.
you can just reduce the “Cycletime” than it automatically speeds up the simulation ;).
Thanks for your reply. I tried it before. I set up a scene like the picture.
A Simulator PV-Inverter, which has a Simulator DataSource: Single Direct. The value is 10000.
A Simulator EssSymmetric Reacting. The Max Apparent Power [VA] is 10000. The Capacity [Wh] is 10000. The Initial State of Charge [%] is 50.
A Controller Ess Fix Active Power. Charge/Discharge power [W] is -10000.
The original Cycle-Time is 1000 on the Core Cycle page.
State of Charge from 50 to 51 needs 18 seconds, and the debug log has 18 logs.
When I set the Cycle-Time is 500, State of Charge from 50 to 51 also needs 18 seconds, and the debug log has 36 logs.
But what I want is to speed up the reaction time from 18 seconds to 9 seconds. Is any problem in my setting?
no that is what i meant. Right now i dont have a clue why it is not working like expected.
Perhaps does the Simulator not use the 400ms Cycle.
Perhaps i have time the next days to test it.
To change from 50 % SoC to 51 % SoC for a 10000 Wh battery, you need to charge 100 Wh. With a given power of 10000 W:
100 Wh = 10000 W * x →
x = 0.01 hours or
36 seconds. As the SoC is rounded up from 50.5 %, you need 18 seconds.
The Cycle-Time is irrelevant for this calculation. In your case it just says how often this calculation of the SoC happens.
If you want to watch the simulation, you instead have to adjust the power or the capacity to be ‘faster’. If you are actually interested in the simulation results, you can use the Simulator App. It has a configuration parameter for
timeleapPerCycle which does exactly what you need. See the readme for details: