This section focuses on the theory behind the ExtPtfm module. The theory was published in the following article ep-Branlard:2020superelement
(access article here) which may be used to reference this documention.
ExtPtfm relies on a dynamics system reduction via the Craig-Bampton (C-B) method ep-CraigBampton:1968
.
The dynamics of a structure are defined by
: label : ReductionGeneralEq
$$\begin{aligned}
\begin{aligned}
\begin{bmatrix}
\boldsymbol{M}_{{\ell\!\ell}} & \boldsymbol{M}_{{\ell\!f}} \\
\boldsymbol{M}_{{\ell\!f}}^t & \boldsymbol{M}_{{\!f\!f}} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\ddot{x}}_{\ell}\\
\boldsymbol{\ddot{x}}_{\!f}\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{C}_{{\ell\!\ell}} & \boldsymbol{C}_{{\ell\!f}} \\
\boldsymbol{C}_{{\ell\!f}}^t & \boldsymbol{C}_{{\!f\!f}} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\dot{x}}_{\ell}\\
\boldsymbol{\dot{x}}_{\!f}\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{K}_{{\ell\!\ell}} & \boldsymbol{K}_{{\ell\!f}} \\
\boldsymbol{K}_{{\ell\!f}}^t & \boldsymbol{K}_{{\!f\!f}} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_{\ell}\\
\boldsymbol{x}_{\!f}\\
\end{bmatrix}
=
\begin{bmatrix}
\boldsymbol{f}_{\ell}\\
\boldsymbol{f}_{\!f}\\
\end{bmatrix}
\end{aligned}
\end{aligned}$$
The CB reduction assumes that the followers’ motion consists of two parts: (1) the elastic motion that would occur in response to the motion of the leader DOF if the inertia of the followers and the external forces were neglected; and (2) the internal motion that would result from the external forces directly exciting the internal DOF. The first part is effectively obtained from Eq. ReductionGeneralEq
by assuming statics and solving for xf, leading to:
: label : FollowMotion
$$\begin{aligned}
\boldsymbol{x}_{{\!f},\text{Guyan}}
= -\boldsymbol{K}_{{\!f\!f}}^{-1} \boldsymbol{K}_{{\ell\!f}}^t\, \boldsymbol{x}_{{\ell},\text{Guyan}}
= \boldsymbol{\Phi}_1 \boldsymbol{x}_{{\ell},\text{Guyan}}
,\quad
\text{where}
\quad
\boldsymbol{\Phi}_1 =-\boldsymbol{K}_{{\!f\!f}}^{-1} \boldsymbol{K}_{{\ell\!f}}^t
\end{aligned}$$
Eq. FollowMotion
provides the motion of the followers as a function of the leaders’ motion under the assumptions of the Guyan reduction ep-Guyan:1965
.
The CB method further considers the isolated and undamped eigenvalue problem of the follower DOF: (Kff−νi2Mff)ϕi = 0 where νi and ϕi are the ith angular frequency and mode shape, respectively; this problem is “constrained” because it inherently assumes that the leader DOF are fixed (i.e., zero). The method next selects nCB mode shapes, gathering them as column vectors into a matrix noted Φ2. These mode shapes can be selected as the ones with the lowest frequency or a mix of low- and high-frequency mode shapes. Typically, nCB is several orders of magnitude smaller than the original number of DOF, going from ∼ 103 DOF to ∼ 20 modes for a wind turbine substructure. The scaling of the modes is chosen such that Φ2tMffΦ2 = I, where I is the identity matrix. Effectively, the CB method performs a change of coordinates from the full set, x = [xl xf]t, to the reduced set, xr = [xr1 xr2]t, where xr1 corresponds directly to the leader DOF, whereas xr2 are the modal coordinates defining the amplitudes of each of the mode shapes selected. The change of variable is formally written as:
: label : CraigBampton
$$\begin{aligned}
\begin{aligned}
\begin{bmatrix}
\boldsymbol{x}_l \\
\boldsymbol{x}_{\!f}\\
\end{bmatrix}
\approx
\begin{bmatrix}
\boldsymbol{I} & \boldsymbol{0} \\
\boldsymbol{\Phi}_1 & \boldsymbol{\Phi}_2\\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_{r1}\\
\boldsymbol{x}_{r2}\\
\end{bmatrix}
\quad\Leftrightarrow \quad
\boldsymbol{x}\approx \boldsymbol{T} \boldsymbol{x}_r
,
\quad
\text{with}
\quad
\boldsymbol{T}=
\begin{bmatrix}
\boldsymbol{I} & \boldsymbol{0} \\
\boldsymbol{\Phi}_1 & \boldsymbol{\Phi}_2\\
\end{bmatrix}
\end{aligned}
\end{aligned}$$
The equations of motion are rewritten in these coordinates by the transformation: Mr = TtMT, Kr = TtKT, fr = Ttf, leading to
: label : CBLoadsReduction
$$\begin{aligned}
\begin{aligned}
&
\qquad
\qquad
\begin{bmatrix}
\boldsymbol{M}_{r11} & \boldsymbol{M}_{r12} \\
\boldsymbol{M}_{r12}^t & \boldsymbol{M}_{r22} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\ddot{x}}_{r1}\\
\boldsymbol{\ddot{x}}_{r2}\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{K}_{r11} & \boldsymbol{0} \\
\boldsymbol{0} & \boldsymbol{K}_{r22} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_{r1}\\
\boldsymbol{x}_{r2}\\
\end{bmatrix}
=
\begin{bmatrix}
\boldsymbol{f}_{r1}\\
\boldsymbol{f}_{r2}\\
\end{bmatrix}
\label{eq:CraigBampton}
\end{aligned}
\end{aligned}$$
with
The expressions for the reduced damping matrix, Cr = TtCT, are similar to the ones from the mass matrix, except that Cr22 is not equal to the identity matrix. Some tools or practitioners may not compute the reduced damping matrix and instead set it based on the Rayleigh damping assumption, using the reduced mass and stiffness matrix. Setting Φ2 ≡ 0 in Eq. CraigBampton
, or equivalently nCB ≡ 0, leads to the Guyan reduction equations.
This section illustrates how the equations of motions are set when a superelement is coupled to another structure. The modular approach presented below is the one implemented in OpenFAST. The superelement is here assumed to represent the substructure (and foundation), but it may be applied to other parts of the wind turbine, in particular the entire support structure. For simplicity, it is assumed here that all the substructure leader DOF have an interface with the remaining part of the structure. The interface DOF are labelled as index 1, the substructure internal DOF as index 2, and the remaining DOF are labelled 0. The subscript r used in the previous paragraph is dropped for the DOF but kept for the matrices. With this labelling, system 0–1 consists of the tower and rotor nacelle assembly, the system 1–2 is the substructure, and the vector, x1, is the six degrees of freedom at the top of the transition piece. The damping terms are omitted to simplify the equations, but their inclusion is straightforward. Two ways to set up the equations of motions are presented next, the monolithic or modular approaches (see e.g. ep-Branlard:2020superelement
).
Monolithic approach:
In this approach, the full system of equations is solved with all the DOF gathered into one state vector. The system of equations is obtained by assembling the individual mass and stiffness matrices of the different subsystems. Using Eq. CraigBampton
, the equations of motion of the system written in a monolithic form are:
: label : Monolith
$$\begin{aligned}
\begin{aligned}
\begin{bmatrix}
\boldsymbol{M}_{00} & \boldsymbol{M}_{01} & \boldsymbol{0} \\
& \boldsymbol{M}_{11}+\boldsymbol{M}_{r11} & \boldsymbol{M}_{r12} \\
\text{sym} & & \boldsymbol{M}_{r22} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\ddot{x}}_0\\
\boldsymbol{\ddot{x}}_1\\
\boldsymbol{\ddot{x}}_2\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{K}_{00} & \boldsymbol{K}_{01} & \boldsymbol{0} \\
& \boldsymbol{K}_{11} + \boldsymbol{K}_{r11} & \boldsymbol{0} \\
\text{sym} & & \boldsymbol{K}_{r22}\\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_0\\
\boldsymbol{x}_1\\
\boldsymbol{x}_2\\
\end{bmatrix}
=
\begin{bmatrix}
\boldsymbol{f}_0\\
\boldsymbol{f}_1 + \boldsymbol{f}_{r1}\\
\boldsymbol{f}_{r2}\\
\end{bmatrix}
\end{aligned}
\end{aligned}$$
Modular approach: In this approach, the equations of motion are written for each subsystem. Couplings with other subsystems are introduced using external loads and constraints (which are unnecessary here). The coupling load vector at 1 between the two systems, usually consisting of three forces and three moments, is written as fC . The equations of motion for system 0–1 are:
: label : moduleA
$$\begin{aligned}
\begin{aligned}
\begin{bmatrix}
\boldsymbol{M}_{00} & \boldsymbol{M}_{01} \\
\text{sym} & \boldsymbol{M}_{11} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\ddot{x}}_0\\
\boldsymbol{\ddot{x}}_1\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{K}_{00} & \boldsymbol{K}_{01} \\
\text{sym} & \boldsymbol{K}_{11} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_0\\
\boldsymbol{x}_1\\
\end{bmatrix}
=
\begin{bmatrix}
\boldsymbol{f}_0\\
\boldsymbol{f}_1\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{0}\\
\boldsymbol{f}_{C}\\
\end{bmatrix}
\end{aligned}
\end{aligned}$$
System 1 − 2 receives the opposite , fC, from system 0 − 1, leading to the following set of equations for system 1–2:
: label : moduleB
$$\begin{aligned}
\begin{aligned}
\begin{bmatrix}
\boldsymbol{M}_{r11} & \boldsymbol{M}_{r12} \\
\text{sym} & \boldsymbol{M}_{r22} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{\ddot{x}}_1\\
\boldsymbol{\ddot{x}}_2\\
\end{bmatrix}
+
\begin{bmatrix}
\boldsymbol{K}_{r11} & \boldsymbol{0} \\
\text{sym} & \boldsymbol{K}_{r22} \\
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{x}_1\\
\boldsymbol{x}_2\\
\end{bmatrix}
=
\begin{bmatrix}
\boldsymbol{f}_{r1}\\
\boldsymbol{f}_{r2}\\
\end{bmatrix}
-
\begin{bmatrix}
\boldsymbol{f}_{C}\\
\boldsymbol{0}\\
\end{bmatrix}
\end{aligned}
\end{aligned}$$
The following sections detail the implementation of the CB approach into ExtPtfm to model fixed-bottom substructures.
ExtPtfm provides the coupling load at the interface, fC, given the motions of the interface node: x1, ẋ1, epdof
.
ExtPtfm is written in a form that consists of state and output equations. For a linear system, these equations take the following form:
: label : StateSpaceForm
$$\begin{aligned}
\begin{aligned}
\boldsymbol{\dot{x}}&=\boldsymbol{X}(\boldsymbol{x},\boldsymbol{u}, t) = \boldsymbol{A} \boldsymbol{x}+\boldsymbol{B}\boldsymbol{u} + \boldsymbol{f}_x \\
\boldsymbol{y} &= \boldsymbol{Y}(\boldsymbol{x},\boldsymbol{u}, t) = \boldsymbol{C} \boldsymbol{x}+\boldsymbol{D}\boldsymbol{u} + \boldsymbol{f}_y
\end{aligned}
\end{aligned}$$
where x is the state vector, u the input vector, and y the output vector of the module. The input vector of the module is the motion of the interface node,
Eq. moduleB
is rewritten in the state-space form of Eq. StateSpaceForm
as follows. The second block row of moduleB
is developed to isolate
: label : xddot2
$$\begin{aligned}
\boldsymbol{\ddot{x}}_2=\boldsymbol{f}_{r2}-\boldsymbol{M}_{r12}^t\boldsymbol{\ddot{x}}_1-\boldsymbol{K}_{r22} \boldsymbol{x}_2 -\boldsymbol{C}_{r12}^t\boldsymbol{\dot{x}}_1 -\boldsymbol{C}_{r22}\boldsymbol{\dot{x}}_2
\end{aligned}$$
The matrices of the state-space relation from Eq. StateSpaceForm
are then directly identified as (ep-Branlard:2020superelement
):
Isolating fC from the first block row of Eq. moduleB
and using the expression of xddot2
leads to:
The matrices of for the output y are then identified as (ep-Branlard:2020superelement
):
All the block matrices and vectors labeled with “r” are provided to the module via an input file. At a given time step, the loads, fr(t), are computed by linear interpolation of the loads given in the input file, and the state equation, , is solved for x with the outputs returned to the glue code of OpenFAST.
The glue code can also perform the linearization of the full system at a given time or operating point, using the Jacobians of the state equations of each module. Since the formulation of ExtPtfm is linear, the Jacobian of the state and output equations, with respect to the states and inputs of the module, are:
The linearization of ExtPtfm was implemented in the module, but some work remains to be done at the glue-code (OpenFAST) level to allow for full system linearization.