Simulation OpenEMS with my own Data (CSV File)

Changing the core cycle to speed up simulation in OpenEMS is not considered best practice. This is because the algorithm’s execution and the collection and updating of channels are performed every cycle, with a default interval of 1 second. changing this interval can lead to unwanted results.

For instance, consider the Battery Energy Storage System (BESS), which can be simulated using the SimulatorEssSymmetricReacting component. The BESS updates its channels each cycle, including the State of Charge (SoC) channel. The SoC is calculated based on actual energy, where energy is determined as:

Energy=Active Power×Duration.----> Soc= Energy×capacity

If you are working with a data source that has a different resolution, such as 15-minute intervals for consumption and production or grid data, this mismatch can cause issues. For example, if the core cycle is changed to 1 millisecond, the energy calculation would occur every 1 ms instead of every 15 minutes as the controller that control the BESS charge and discharge perform it logic every cycle !!. This leads to incorrect behavior, especially when the duration is derived from the OpenEMS clock, which reflects the real system clock.

Instead of modifying the core cycle, you should use the simulator app components provided by OpenEMS. These components are designed to handle large volumes of data efficiently and allow for seamless simulation. They also enable you to define a core cycle that matches your dataset’s resolution without introducing inconsistencies. For more information, refer to the OpenEMS documentation under the “Devices and Services” section, which explains how to simulate large-scale datasets effectively.

3 Likes