-
-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Welcome to the plant-simulator wiki!
This is a simple simulator application that simulates the running of a power producing plant. The application works by exposing several API's that can be used to get the status of a PowerPlant.
For simplicity, this simulator assumes that there are essentially two types of power producing plants:
- A PowerPlant that is steerable by turning it on or off (ex., battery)
- A PowerPlant that is steerable by ramping it up (ex., generators, gas turbines, CHP units)
We also assume that all the units that we deal here are in kw for power and in seconds for time.
-ALERT: We do not steer Nuclear Power Plants - We stay away from them!
Normally in a PowerPlant, there are several power producing units. Each one of these power producing units could be turned on which means or in other words, it can be ramped up. The other way around should also be possible which means I can be a power consuming unit in a PowerPlant and this power consuming unit could be seen as a load to which I can send a singal so that I consume power from the grid.
This simulation does exactly that. I can register either a power producing unit or a power consuming unit with this simulation application. When registering these units, I specify how much power each one has and how much power I can ramp up or ramp down. I then expose an API with which I can communicate with the simulator.
In the world of de-centralized energy systems, one can think of several ways or orchestrating the operations of a de-centralized power plant. In this regard, the plant simulator does exactly that. It can orchestrate the operation of a de-centralized power plant. Based on demand, we can send signals to the power plant so that the plant could be steered. But we also need to know the status of our steering in near real time so that we can take corrective actions. For example., by closely following the steering of a power plant, we could know if the plant is doing what it is supposed to do.
The API's are built using:
- Play Framework
- Slick
- Monix
- Akka
- MySQL
Additionally, a Kafka broker is employed with which we can send signal status which can then be visualised! [Currently this is under development]