diff --git a/src/index.md b/src/index.md old mode 100755 new mode 100644 diff --git a/src/wind_turbine.md b/src/wind_turbine.md new file mode 100644 index 0000000..4d2f4b0 --- /dev/null +++ b/src/wind_turbine.md @@ -0,0 +1,105 @@ +# Wind Turbine + +OT-sim includes rudimentary support for modeling the control aspects of a wind +turbine generator. It does so via the use of generic OT-sim modules like the +logic, Modbus, and DNP3 modules, as well as a few additional modules that are +specific to a wind turbine — the anemometer and power output modules. + +The reference model OT-sim uses for modeling the control aspects of a wind +turbine include the following OT-sim devices, each including the specified +OT-sim modules. + +* Main Controller + * CPU Module + * Logic Module + * Modbus Module + * DNP3 Module + * Wind - Power Output Module +* Yaw Controller + * CPU Module + * Logic Module + * Modbus Module +* Anemometer + * CPU Module + * Modbus Module + * Wind - Anemometer Module +* Blade Controller (x3) + * CPU Module + * Modbus Module + +As you can see from the above list of devices, the OT-sim model for a wind +turbine is made up of six (6) separate controllers, each controlling a specific +process (or processes) and some communicating with other controllers. + +!!! note + We are aware that it's uncommon for the Modbus protocol to be used within an + actual wind turbine to communicate between controllers. The development of a + protocol module that supports IEC 61400-25 (on top of IEC 61850) is on the + roadmap. Once implemented, this reference implementation will be updated to + support the use of either Modbus (legacy, backwards compatibility) or IEC + 61400-25. + +## Wind Turbine Modules + +### Anemometer + +The OT-sim `anemometer` module supports the replay of weather data provided in a +CSV file. Once a second, this module publishes weather data from configured +columns to the message bus using the configured tag. Other OT-sim modules can +then subscribe to these tags like normal. For example, the Modbus module can use +the published tag data to update its internal register database to accurately +respond to incoming Modbus read requests. + +### Power Output + +The OT-sim `power-output` module supports the calculation of wind turbine power +output, based on current weather conditions, using the Python +[windpowerlib](https://windpowerlib.readthedocs.io/en/stable/index.html) +library. This library includes power curves for a large number of turbine makes +and models. Each time this module gets updated weather data from the message +bus, it recalculates the power output of the turbine, using the updated weather +data, and publishes the power output value to the message bus. Other OT-sim +modules can then subscribe to these tags like normal. For example, the I/O +module can use the published power output values to send updates to a power +system federate(s) running as part of a [HELICS](https://helics.org) +co-simulation. + +## Configuration Example + +``` + + + + speed.high + speed.med + speed.low + dir.high + dir.med + dir.low + temp.high + temp.low + pressure + + /etc/ot-sim/data/weather.csv + + + E-126/4200 + 135 + 0.15 + + speed.high + speed.med + speed.low + temp.high + temp.low + pressure + + + turbine.cut-in + turbine.cut-out + turbine.mw-output + turbine.emergency-stop + + + +```