Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ set(OPENFAST_MODULES
lindyn
map
turbsim
supercontroller
externalinflow
openfast-library
simple-elastodyn
Expand Down
Binary file modified docs/OtherSupporting/OutListParameters.xlsx
Binary file not shown.
14 changes: 14 additions & 0 deletions docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,20 @@ The changes are tabulated according to the module input file, line number, and f
The line number corresponds to the resulting line number after all changes are implemented.
Thus, be sure to implement each in order so that subsequent line numbers are correct.

OpenFAST v4.0.3 to OpenFAST v4.1.0
----------------------------------
Supercontroller module has been removed from FAST.Farm.

============================================= ==== =============== ========================================================================================================================================================================================================
Removed in OpenFAST `v4.1.0`
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Module Line Flag Name Example Value
============================================= ==== =============== ========================================================================================================================================================================================================
FAST.Farm 7 UseSC False UseSC - Use a super controller? (flag)
FAST.Farm 11 na --- SUPER CONTROLLER --- [used only for UseSC=True]
FAST.Farm 12 SC_FileName "SC_DLL.dll" SC_FileName Name/location of the dynamic library {.dll [Windows] or .so [Linux]} containing the Super Controller algorithms (quoted string)
============================================= ==== =============== ========================================================================================================================================================================================================


OpenFAST v4.0.2 to OpenFAST v4.0.3
----------------------------------
Expand Down
22 changes: 0 additions & 22 deletions docs/source/user/fast.farm/AppendixC.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@ is a one-digit number in the range [1,9], corresponding to row
only values for the first 9 turbines can be output. Setting
:math:`\alpha` > **NumTurbines** yields invalid output.

In\ :math:`\zeta` and Ot\ :math:`\zeta` refer to super-controller input
and output :math:`\zeta`, respectively, where :math:`\zeta` is a
one-digit number in the range [1,9], corresponding to element
:math:`\zeta` in the input and output arguments of the super-controller
source code. If there are more than 9 elements, only values for the
first 9 inputs and outputs can be output. Setting :math:`\zeta` greater
than the number of elements yields invalid output.

N\ :math:`\beta` refers to radial output node :math:`\beta`, where
:math:`\beta` is a two-digit number in the range [01,20], corresponding
to entry :math:`\beta` in the **OutRadii** list, where node
Expand Down Expand Up @@ -56,20 +48,6 @@ overlapped itself.
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| Channel Name | Units | Description |
+==============================================================+===================+=================================================+
| *Super Controller* |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| SCGblIn\ :math:`\zeta` | (user) | Global (turbine independent) super |
| | | controller input :math:`\zeta` |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| SCT\ :math:`\alpha`\ In\ :math:`\zeta` | (user) | Turbine-dependent super controller input |
| | | :math:`\zeta` for turbine :math:`\alpha` |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| SCGblOt\ :math:`\zeta` | (user) | Global (turbine independent) super |
| | | controller output :math:`\zeta` |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| SCT\ :math:`\alpha`\ Ot\ :math:`\zeta` | (user) | Turbine-dependent super controller input |
| | | :math:`\zeta` for turbine :math:`\alpha` |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| *Wind Turbine and Inflow* |
+--------------------------------------------------------------+-------------------+-------------------------------------------------+
| RtAxs\ :math:`\delta`\ T\ :math:`\alpha` | (-) | Orientation of the rotor centerline for turbine |
Expand Down
68 changes: 3 additions & 65 deletions docs/source/user/fast.farm/FFarmTheory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ turbines within a wind farm. FAST.Farm uses
`OpenFAST <https://github.com/OpenFAST/openfast>`__ to solve the
aero-hydro-servo-elastic dynamics of each individual turbine, but
considers additional physics for wind-farm-wide ambient wind in the
atmospheric boundary layer; a wind-farm super controller; and wake
atmospheric boundary layer; and wake
deficits, advection, deflection, meandering, and merging. FAST.Farm is
based on the principles of the DWM model -- including passive tracer
modeling of wake meandering -- but addresses many of the limitations of
Expand Down Expand Up @@ -101,9 +101,6 @@ appropriate in the next section.
| farm or based on mesoscale | |
| conditions or local terrain. | |
+----------------------------------+----------------------------------+
| - No treatment of a wind farm | - Optional inclusion of a wind |
| super controller. | farm super controller. |
+----------------------------------+----------------------------------+
| - Wake advects at mean ambient | - Wake advects based on the |
| wind speed, not accelerating | local spatially averaged |
| from near wake to far wake or | ambient wind speed and wake |
Expand Down Expand Up @@ -178,8 +175,8 @@ code. The submodel hierarchy of FAST.Farm is illustrated in
near-wake correction; and wake-deficit increment are submodels of the
wake-dynamics (*WD*) model, implemented in a single module. Ambient wind
and wake merging are submodels of the ambient wind and array effects
(*AWAE*) model, implemented in a single module. Combined with the super
controller (*SC*) and OpenFAST (*OF*) modules, FAST.Farm has four
(*AWAE*) model, implemented in a single module. Combined with the
OpenFAST (*OF*) modules, FAST.Farm has three
modules and one driver. There are multiple instances of the *OF* and
*WD* modules -- one instance for each wind turbine/rotor. Each
submodel/module is described in the subsections below.
Expand Down Expand Up @@ -272,9 +269,6 @@ sections below.
+-----------------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------+----------------------------------------------------------------------+
| **Module** | **States (Discrete Time)** | **Inputs** | **Outputs** |
+=========================================+=================================================================================+=====================================================================+======================================================================+
| *Super Controller (SC)* | - User-defined | - Global measurements | - Global controller commands |
| | | - Commands/measurements from individual turbine controllers | - Commands to individual turbine controllers |
+-----------------------------------------+---------------------------------------------------------------------------------+---------------------------------------------------------------------+----------------------------------------------------------------------+
| *OpenFAST (OF)* | - None in the OpenFAST wrapper, but there are many states internal to OpenFAST | - Global controller commands | - Commands/measurements from the individual turbine controller |
| | | - Commands to the individual turbine controller | - :math:`\hat{x}^\text{Disk}` |
| | | - :math:`\vec{V}_\text{Dist}^\text{High}` | - :math:`\vec{p}^\text{Hub}` |
Expand Down Expand Up @@ -334,55 +328,6 @@ results in simulations that are computationally inexpensive enough to
run the many simulations necessary for wind turbine/farm design and
analysis.

.. _FF:Theory:SC:

Super Controller (SC Module)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Wind-farm-wide super controllers have the potential to achieve the
global benefit of improving overall power performance and reducing
turbine loads, based on modifying wake deficits through variations in
blade pitch or generator torque and/or redirecting (steering) wakes
through variations in nacelle yaw or tilt, as illustrated in
:numref:`FF:NacYaw`.

.. figure:: Pictures/NacYawControl.png
:alt: Nacelle-yaw control used to redirect wakes away from downwind wind turbines. :cite:`ff-Gebraad16_1`
:name: FF:NacYaw
:width: 100%
:align: center

Nacelle-yaw control used to redirect wakes away from downwind wind
turbines. :cite:`ff-Gebraad16_1`

The *SC* module of FAST.Farm provides an interface to the super
controller dynamic library -- essentially identical to the super controller
available in `SOWFA <https://github.com/NREL/SOWFA>`__ -- which allows the
user of FAST.Farm to implement their own wind-farm-wide control logic in
discrete time and without direct feedthrough of input to output -- perhaps
developed through the application of
`FLORIS <https://github.com/WISDEM/FLORISSE>`__. The inputs to the *SC*
module are commands or measurements from individual turbine controllers
(output from the *OF* module). [3]_ The outputs of the *SC* module are
the global controller commands and individual turbine controller
commands (inputs to the *OF* module).

Note that at time zero, the *SC* module is called before the call to the
*OF* module and the associated individual turbine controllers. So, the
initial outputs from the super controller are sent as inputs to the
individual turbine controllers, but the initial inputs to the super
controller from the individual turbine controller outputs at time zero
are always zero. At subsequent time steps, the *OF* module and the
associated individual turbine controllers are called before the output
calculation of the *SC* module. As a result, at each time step other
than time zero, the outputs from the super controller are extrapolated
in time based on past values within *OF* before being sent as input to
the individual turbine controllers. Thus, care should be taken to ensure
that the outputs from the super controller vary smoothly over time
(without steps). See :numref:`FF:Parallel` for more information.

.. _FF:OF:

OpenFAST (OF Module)
~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -442,13 +387,6 @@ directed vertically upward (opposite gravity), *X* directed horizontally
nominally downwind (along the zero-degree wind direction), and *Y*
directed horizontally transversely.

The global and turbine-dependent commands from the super controller
(outputs from the *SC* module) are used as inputs to the *OF* module to
enable the individual turbine controller to be guided by wind farm-level
effects; likewise, the turbine-dependent commands or measurements are
output from the *OF* module for access by the super controller (inputs
to the *SC* module).

The *OF* module also uses the disturbed wind (ambient plus wakes of
neighboring turbines) across a high-resolution wind domain (in both time
and space) around the turbine (output from the *AWAE* module -- see
Expand Down
5 changes: 2 additions & 3 deletions docs/source/user/fast.farm/FutureWork.rst
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@ releases:

- Support full-system linearization.

- Support an interface to Simulink for super and individual wind
turbine controllers.
- Support an interface to Simulink for individual wind turbine controllers.

- Implement checkpoint-restart capability.

Expand All @@ -89,7 +88,7 @@ releases:
naming convention used for the FAST.Farm-generated visualization
output files in VTK format (with leading zeros and without the *t*).

- Support super controller-, inflow-, and wake-related output channels
- Support inflow-, and wake-related output channels
for more than the first 9 wind turbines in the wind farm.

- Interface FAST.Farm to the Wind-Plant Integrated System Design &
Expand Down
20 changes: 0 additions & 20 deletions docs/source/user/fast.farm/InputFiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ sections:

- Simulation Control

- Super Controller

- Shared Moorings

Expand Down Expand Up @@ -81,12 +80,6 @@ at :math:`t` = **TMax**. The **TMax** set in FAST.Farm will override the
simulation length set in the OpenFAST primary input file of each wind
turbine in the wind farm.

**UseSC** [flag] indicates if the wind-farm-wide super controller is to
be used. If **UseSC** = TRUE, the super controller will be called. If
**UseSC** = FALSE, the super controller will not be called, but each
wind turbine may still have an individual controller specified in the
OpenFAST module *ServoDyn*.

**Mod_AmbWind** [switch] indicates the ambient wind source. There are
three options: 1) use ambient wind data generated by a high-fidelity
precursor simulation in VTK format **[Mod_AmbWind=1]**, 2) use ambient
Expand All @@ -106,19 +99,6 @@ origin.
interconnects turbines. There are presently two options: 0) No shared moorings,
3) MoorDyn.

Super Controller
~~~~~~~~~~~~~~~~

**SC_FileName** [quoted string] sets the name and location of the
dynamic library containing the super controller code. It is only used
when **UseSC** = TRUE. The dynamic library should be compiled as a
*.dll* file in Windows or a *.so* file in Linux or Mac OS. **The file
name must be in quotations** and can contain an absolute or a relative
path. The super controller is used in conjunction with individual wind
turbine controllers defined in the style of the DISCON dynamic library
of the DNV GL’s Bladed wind turbine software package, with minor
modification. See :numref:`FF:sec:SupCon` for more information.

Shared Moorings
~~~~~~~~~~~~~~~

Expand Down
18 changes: 3 additions & 15 deletions docs/source/user/fast.farm/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ structural loads of wind turbines within a wind farm. FAST.Farm uses
`OpenFAST <https://github.com/OpenFAST/openfast>`__ to solve the
aero-hydro-servo-elastic dynamics of each individual turbine, but
considers additional physics for wind farm-wide ambient wind in the
atmospheric boundary layer; a wind-farm super controller; and wake
atmospheric boundary layer; and wake
deficits, advection, deflection, meandering, and merging. FAST.Farm is
based on some of the principles of the dynamic wake meandering (DWM)
model -- including passive tracer modeling of wake meandering -- but addresses
Expand Down Expand Up @@ -72,8 +72,8 @@ Wake advection, deflection, and meandering; near-wake correction; and
wake-deficit increment are submodels of the wake-dynamics (*WD*) model,
implemented in a single module. Ambient wind and wake merging are
submodels of the ambient wind and array effects (*AWAE*) model,
implemented in a single module. Combined with the super controller
(*SC*) and OpenFAST (*OF*) modules, FAST.Farm has four modules and one
implemented in a single module. Combined with the OpenFAST (*OF*) modules,
FAST.Farm has three modules and one
driver. There are multiple instances of the *OF* and *WD* modules -- one
instance for each wind turbine/rotor.

Expand All @@ -87,18 +87,6 @@ of simulation parameters, checks the validity of these parameters,
initializes the modules, writes results to a file, and releases memory
at the end of the simulation.

Super Controller Module
-----------------------

The *SC* module of FAST.Farm -- essentially identical to the super
controller available in `SOWFA <https://github.com/NREL/SOWFA>`__ allows
wind-farm-wide control logic to be implemented by the user, including
sending and receiving commands from the individual turbine controllers
in OpenFAST. The logic of such a super controller could be developed
through the application of the National Renewable Energy Laboratory
(NREL) code FLOw Redirection and Induction in Steady state
(`FLORIS <https://github.com/WISDEM/FLORISSE>`__).

OpenFAST Module
---------------

Expand Down
Loading
Loading