Wind Hybrid Open Controller (WHOC)

Wind Hybrid Open Controller (WHOC)#

The Wind Hybrid Open Controller (WHOC) is a python-based tool for real-time plant-level wind farm control and wind-based hybrid plant control. WHOC will primarily be run in simulation, although we intend that it could be used for physical plants in future.

The graphic below demonstrates the organization of the WHOC repository and the controller objects that it contains.

ControllerBase is the core underlying class, which newly implemented controllers should inherit from. Inheritance is shown using arrows in the diagram above. The key method of ControllerBase is the step() method, which progresses the controller by receiving plant measurements; computing controls (which must be implemented in the children of ControllerBase); and sending the controls back to the plant. Children of ControllerBase should inherit step() rather than overloading it. Additionally, on instantiation, ControllerBase expects to receive an instantiated interface object (discussed next). For information can be found in controllers.md.

The interface object handles communications with the plant simulator, allowing WHOC to be used with various simulation platforms (e.g. Hercules, FAST.Farm) while keeping the controllers agnostic to the simulation platform and the boilerplate code needed to handle different platforms. interface objects should inherit from InterfaceBase. More information can be found in interfaces.md.

We anticipate that, in future, multiple levels of inheritance may be useful when defining top-level controllers that operate hybrid power plants with various different assets. This situation is shown below, and we intend to support such usage of WHOC.