![](images/e3cf5199761175d226cc33794ee9ebb7a89b2f9cf0f39528b2eaeef3d2ad016d.jpg) # Full-System Linearization for Floating Offshore Wind Turbines in OpenFAST Preprint Jason M. Jonkman, Alan D. Wright, Greg J. Hayman, and Amy N. Robertson National Renewable Energy Laboratory Presented at the ASME 2018 $7^{s t}$ International Offshore Wind Technical Conference San Francisco, California November 4-7, 2018 # Full-System Linearization for Floating Offshore Wind Turbines in OpenFAST Preprint Jason M. Jonkman, Alan D. Wright, Greg J. Hayman, and Amy N. Robertson National Renewable Energy Laboratory # Suggested Citation Jonkman, Jason, Alan Wright, Greg Hayman, and Amy Robertson. 2018. Full-System Linearization for Floating Offshore Wind Turbines in OpenFAST: Preprint. Golden, CO: National Renewable Energy Laboratory. NREL/CP-5000-71865. https://www.nrel.gov/docs/fy19osti/71865.pdf This work was authored by the National Renewable Energy Laboratory, operated by Alliance for Sustainable Energy, LLC, for the U.S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308. Funding provided by U.S. Department of Energy Office of Energy Efficiency and Renewable Energy Wind Energy Technologies Office. The views expressed herein do not necessarily represent the views of the DOE or the U.S. Government. The U.S. Government retains and the publisher, by accepting the article for publication, acknowledges that the U.S. Government retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or allow others to do so, for U.S. Government purposes. This report is available at no cost from the National Renewable Energy Laboratory (NREL) at www.nrel.gov/publications. U.S. Department of Energy (DOE) reports produced after 1991 and a growing number of pre-1991 documents are available free via www.OSTI.gov. Cover Photos by Dennis Schroeder: (clockwise, left to right) NREL 51934, NREL 45897, NREL 42160, NREL 45891, NREL 48097, NREL 46526. # FULL-SYSTEM LINEARIZATION FOR FLOATING OFFSHORE WIND TURBINES IN OPENFAST Jason M Jonkman, Alan D Wright, Greg J Hayman, Amy N Robertson National Renewable Energy Laboratory 15013 Denver West Parkway Golden, Colorado 80401 (USA) # ABSTRACT The wind engineering community relies on multiphysics engineering software to run nonlinear time-domain simulations (e.g., for design-standards-based loads analysis). Although most physics involved in wind energy are nonlinear, linearization of the underlying nonlinear system equations is often advantageous to understand the system properties and exploit well-established methods and tools for analyzing linear systems. This paper presents the development of the new linearization functionality of the open-source engineering tool OpenFAST for floating offshore wind turbines, as well as the concepts and mathematical background needed to understand and apply it. 风能工程领域依赖于多物理场工程软件来进行非线性时域仿真(例如,用于基于设计标准荷载分析)。 尽管风能涉及的大部分物理现象是非线性的,但对底层非线性系统方程进行线性化通常有利于理解系统特性,并利用成熟的方法和工具来分析线性系统。本文介绍了开源工程工具OpenFAST针对海上漂浮风电机组的新线性化功能开发,以及理解和应用该功能所需的概念和数学基础。 # INTRODUCTION To support design and analysis—so that wind turbines are innovative, optimized, reliable, and cost-effective—the wind industry and research communities rely on engineering software (i.e., design tools) capable of predicting the coupled dynamic loads and responses of the wind system. OpenFAST (formerly known as FAST), developed by the National Renewable Energy Laboratory (NREL) via support from the U.S. Department of Energy, is an open-source multiphysics tool that enables the design of wind turbines [1]. OpenFAST models the important physical phenomena and system couplings, including the environmental excitation (wind, waves, and current) and full-system dynamic response (rotor, drivetrain, nacelle, support structure, and controller) under both normal (for fatigue) and extreme (for ultimate) loading conditions. The OpenFAST model enables the analysis of a range of wind turbine configurations, including two- or three-bladed horizontal-axis rotors, pitch or stall regulation, rigid or teetering hub, upwind or downwind rotor, and lattice or tubular towers. The wind turbine can be modeled on land or offshore on bottom-fixed or floating substructures. The primary use of OpenFAST is to run nonlinear timedomain simulations (e.g., for design-standards-based loads analysis). Although most physics involved in wind energy are nonlinear, linearization of the underlying nonlinear system equations is often advantageous to understand the system response and exploit well-established methods and tools for analyzing linear systems. For example, linear state-space models can be transformed to transfer functions, impulseresponse functions, or frequency-response functions. The ability to generate linearized models is important for eigenanalysis (to derive structural natural frequencies, damping ratios, and mode shapes), controls design (based on linear statespace models), stability analysis, gradients for optimization problems, and support for the development of reduced-order models. Previous FAST linearization work focused on 1) structuring the FAST v8 source code to enable linearization (FAST v8 is the predecessor of OpenFAST); 2) developing the general approach to linearizing the mesh mapping within the module-to-module, input-output coupling relationships, including rotations; 3) linearizing core (but not all) features of the land-based modules of FAST (InflowWind, AeroDyn, ServoDyn, and ElastoDyn) and their coupling; and 4) verifying this implementation by applying the tool to sample cases [2]. More recently, the ability to linearize OpenFAST models with advanced structural dynamics for aeroelastically tailored blades using the BeamDyn module was introduced and verified [3]. This work extends these efforts to linearizing core (but not all) features of the floating offshore wind turbine (FOWT) modules in OpenFAST and their coupling, including the hydrodynamics in HydroDyn and moorings in MAP $^{++}.$ , and verifying the updated implementation. The HydroDyn hydrodynamics module of OpenFAST [1] allows for multiple approaches for calculating the hydrodynamic loads on floating platforms, including a potential-flow theory solution, a strip-theory solution, or a hybrid combination of the two. Waves may be regular (periodic) or irregular (stochastic), and long crested (unidirectional) or short crested (with wave energy spread across a range of directions). Second-order terms in the wave kinematics and/or potential-flow solution are available options. The $\mathrm{MAP++}$ module of OpenFAST [1] models mooring systems quasi-statically, considering geometric nonlinearities of catenary or taut lines, elastic stretching, line weight, and buoyancy as well as clump weights and buoyancy tanks, lineto-line interconnections, and seabed friction. The overall linearization approach that the FAST modularization framework was designed to support is explained in [4] and is consistent with the present implementation. Details on the linearization of the land-based modules and their coupling, including mesh mapping, is explained in [2,3]. Without replicating most of the information, this paper uses the same approach and nomenclature of [2,3,4], adding details about the linearization of the floating offshore modules HydroDyn and $\mathrm{MAP++}$ and their coupling, including mesh mapping. The mathematical background presented in this paper is currently being implemented in the OpenFAST source code. Unfortunately, the implementation at the time of this writing has not yet been completed enough to produce results. Results will be presented in future work to highlight the functionality and verify the implementation (e.g., for a sample case whereby the natural frequencies and damping of the NREL 5-MW baseline wind turbine atop a spar buoy will be calculated as a function of rotational speed and presented in Campbell-diagram form). The linearization of OpenFAST involves: 1) finding an operating point (OP), 2) linearizing the underlying nonlinear equations of each module about the OP, 3) linearizing the module-to-module input-output coupling relationships in the OpenFAST glue code about the OP, and 4) combining all linearized matrices into the full-system linear state-space model and exporting those matrices and the OP to a file. Each step is highlighted in the following sections. 为了支持设计和分析——从而使风电机组具有创新性、优化性、可靠性和成本效益——风能行业和研究界依赖于能够预测风系统耦合动态载荷和响应的工程软件(即设计工具)。开放式FAST(以前称为FAST),由美国能源部国家可再生能源实验室(NREL)通过支持开发,是一个开源的多物理场工具,可用于设计风电机组[1]。开放式FAST模拟了重要的物理现象和系统耦合,包括环境激励(风、波浪和洋流)和全系统动态响应(风轮、传动系统、鼻锥、支撑结构和控制器),在正常(用于疲劳)和极端(用于极限)载荷条件下均可进行模拟。开放式FAST模型能够分析各种风电机组配置,包括两叶或三叶水平轴风轮、俯仰或失速调节、刚性或倾覆集卡、迎风或背风风轮,以及格子或管状塔架。风电机组可以在陆地上或海上,在底部固定或浮动结构上进行建模。 开放式FAST的主要用途是运行非线性时域模拟(例如,用于基于设计标准的载荷分析)。尽管风能涉及的大多数物理现象是非线性的,但线性化底层非线性系统方程通常是有利的,以便理解系统响应并利用分析线性系统的成熟方法和工具。例如,线性状态空间模型可以转换为传递函数、脉冲响应函数或频域响应函数。生成线性化模型的能力对于特征分析(以推导结构的固有频率、阻尼比和模态)控制设计(基于线性状态空间模型)、稳定性分析、梯度用于优化问题以及支持低阶模型开发至关重要。 以前的FAST线性化工作侧重于1)对FAST v8源代码进行结构化以实现线性化(FAST v8是开放式FAST的前身);2)开发线性化模块间、输入输出耦合关系中网格映射的通用方法,包括旋转;3)线性化FAST陆基模块(InflowWind、AeroDyn、ServoDyn和ElastoDyn)及其核心(但非全部)特征及其耦合;以及4)通过将工具应用于样本案例来验证此实现[2]。最近,引入并验证了使用BeamDyn模块对具有气动弹性定制叶片的开放式FAST模型进行线性化的能力[3]。这项工作将这些努力扩展到线性化开放式FAST中浮式海上风电机组(FOWT)模块及其核心(但非全部)特征及其耦合,包括HydroDyn中的水动力学和MAP++中的系泊,并验证更新后的实现。 开放式FAST的HydroDyn水动力学模块[1]允许采用多种方法来计算浮动平台上的水动力载荷,包括势流理论解、剥离线理论解或两者之间的混合组合。波浪可以是规则(周期性)或不规则(随机),可以是长波(单向)或短波(波能分布在多个方向上)。波动运动学和/或势流解的二阶项是可用的选项。开放式FAST的MAP++模块[1]准静态地模拟系泊系统,考虑了链条或拉紧线的几何非线性、弹性拉伸、线重和浮力,以及块重和浮力箱、线与线互连和海底摩擦。 开放式FAST模块化框架旨在支持的整体线性化方法如[4]中所述,与本实施方案一致。有关陆基模块及其耦合的线性化细节,包括网格映射,如[2,3]中所述。在不复制大部分信息的前提下,本文采用[2,3,4]相同的策略和术语,增加了对HydroDyn和MAP++浮式海上模块及其耦合的线性化细节,包括网格映射。 本文中介绍的数学背景目前正在实施到开放式FAST源代码中。不幸的是,截至本文写作时,该实施方案尚未完成到足以产生结果。未来工作将展示结果,以突出功能并验证实施(例如,对于NREL 5兆瓦基线风电机组顶部位于单筒浮体上的自然频率和阻尼,作为旋转速度的函数计算并以坎贝尔图形式呈现)。 开放式FAST的线性化涉及:1)找到一个工作点(OP);2)线性化每个模块的底层非线性方程,关于OP;3)线性化开放式FAST“胶水”代码中模块间的输入输出耦合关系,关于OP;以及4)将所有线性化矩阵组合成全系统线性状态空间模型,并将这些矩阵和OP导出到文件中。每个步骤将在以下部分中突出显示。 # OPERATING-POINT DETERMINATION OP (or fixed-point) determination is an important first step in the linearization process because a linear representation of a nonlinear system is only valid for small deviations (perturbations) from an OP. In the current release of OpenFAST, an OP can be defined by given initial conditions (time zero) or a given time (or times) in the nonlinear timemarching process. It is usually important for the OP to be a static-equilibrium condition (for parked/idling turbines) or steady-state condition (for operating turbines); otherwise, it may have an undesirable effect on the linear system matrices. An OP is defined by given values for the continuous-time states, $x\big|_{o p}$ , discrete-time states, $\left.x^{d}\right|_{o p}$ , inputs, $u\Big|_{o p}$ , and time, $t\Big|_{o p}$ , for each module. Equations (1a), (1c), and (1d) from [4] can then be used to calculate the OP values of the first time derivative of the continuous-time states, $\dot{x}\big|_{o p}$ , constraint (algebraic) states, $z{\Big|}_{o p}$ , and outputs, ${y\Big|}_{o p}$ , for each module. Each of these variables can be perturbed (represented by $\Delta$ ) about their respective OP values as given by Eq. (11) from [4] (e.g., for module inputs $\boldsymbol{u}=\boldsymbol{u}\Big|_{o p}+\Delta\boldsymbol{u}\,\Big)$ . References [2,3] clarify how this operation is extended to rotations (orientations) in three dimensions (3D), which do not reside in a linear space. The number of states, inputs, and outputs (i.e., the size of the vectors $x\;,\;x^{d}\;,\;z\;,\;u$ , and $y$ ) depend on the features enabled in OpenFAST. OP (或固定点) 确定是线性化过程中的重要第一步,因为非线性系统的线性表示仅对 OP 周围的小偏差(扰动)有效。在 OpenFAST 当前版本中,OP 可以由给定的初始条件(零时刻)或非线性时间步进过程中的给定时间(或多个时间)来定义。通常,OP 应该是一个静态平衡条件(对于停机/空转风轮)或稳态条件(对于运行中的风轮);否则,它可能会对线性系统矩阵产生不良影响。 OP 由每个模块的连续时间状态值 $x\big|_{o p}$ 、离散时间状态值 $\left.x^{d}\right|_{o p}$ 、输入值 $u\Big|_{o p}$ 和时间值 $t\Big|_{o p}$ 定义。然后可以使用 [4] 中的方程 (1a)、(1c) 和 (1d) 来计算每个模块的连续时间状态的一阶时间导数值 $\dot{x}\big|_{o p}$ 、约束(代数)状态值 $z{\Big|}_{o p}$ 和输出值 ${y\Big|}_{o p}$ 。这些变量中的每一个都可以围绕其各自的 OP 值进行扰动(由 $\Delta$ 表示),如 [4] 中的方程 (11) 所示(例如,对于模块输入 $\boldsymbol{u}=\boldsymbol{u}\Big|_{o p}+\Delta\boldsymbol{u}\,\Big)$ 。[2,3] 阐明了如何将此操作扩展到三维 (3D) 中的旋转(姿态),这些旋转不位于线性空间中。 状态、输入和输出的数量(即向量 $x\;,\;x^{d}\;,\;z\;,\;u$ 和 $y$ 的大小)取决于在 OpenFAST 中启用的功能。 # MODULE LINEARIZATION As explained in [4], the FAST modularization framework supports a very general (need not be linear) state-space formulation, with any combination of continuous-time-state, discrete-time-state, constraint- (algebraic-) state, other- (e.g., logical) state, and output equations. However, for a module to support linearization, the formulation is limited to a hybrid semiexplicit differential-algebraic equation (DAE) of index 1,2 which has the following limitations: 1) the continuous-timestate derivatives and discrete-time-state updates must be written as an explicit function of the states, inputs, and parameters; 2) the constraints must be of index 1; and 3) other states are used only for time-integration or when acting as parameters in the linearization process. To support linearization, a module must also be able to export Jacobian matrices for the state and output equations with respect to the states and inputs. The OpenFAST module states, inputs, and outputs kept in the linearization process for the features linearized to date are summarized in Table 1. The OpenFAST module features linearized to date include only continuous-time and constraint states (no features with discretetime states have yet been linearized). The linearized form of a general module is given by Eqs. (12) and (13) from [4]; the simplified forms for the land-based modules InflowWind, AeroDyn, ServoDyn, ElastoDyn, and BeamDyn are given in [2,3]. The simplified forms for the newly linearized offshore modules HydroDyn and $\mathrm{MAP++}$ are given next, along with a description of how each module is linearized. 正如[4]中所述,FAST模块化框架支持非常通用的(不必是线性的)状态空间公式,它可以结合连续时间状态、离散时间状态、约束(代数)状态、其他(例如逻辑)状态以及输出方程。然而,为了支持模块线性化,公式必须限定为指数为1,2的混合半显式微分代数方程(DAE),这具有以下限制:1)连续时间状态的导数和离散时间状态的更新必须显式地写成状态、输入和参数的函数;2)约束必须具有指数1;3)其他状态仅用于时间积分或在线性化过程中充当参数。 为了支持线性化,模块还必须能够导出状态方程和输出方程关于状态和输入的雅可比矩阵。表1总结了OpenFAST模块在迄今为止线性化的特征的状态、输入和输出。迄今为止线性化的OpenFAST模块特征仅包括连续时间状态和约束状态(尚未线性化任何具有离散时间状态的特征)。 一般模块的线性化形式由[4]中的公式(12)和(13)给出;陆基模块InflowWind、AeroDyn、ServoDyn、ElastoDyn和BeamDyn的简化形式由[2,3]给出。接下来给出新线性化的海上模块HydroDyn和$\mathrm{MAP++}$的简化形式,并描述了如何线性化每个模块。 TABLE 1. MODULE STATES, INPUTS, AND OUTPUTS KEPT IN THE OPENFAST LINEARIZATION PROCESS TO DATE.
ModuleStatesInputsOutputs
InflowWind (IfW)NonePositions where the undisturbed (inflow) wind will be indino Disturbances of horizontal wind speed, power-law shear exponent,andwind-propagation directionUndisturbed (inflow) wind velocity at input positions User-selected wind-inflow outputs
ServoDyn (SrvD)NoneNacelle-yaw angle and rate Generator speedBlade-pitch-angle command (independent) Nacelle-yaw moment Generator torque and electrical power User-selected control and electrical-drive outputs Translational displacements, orientations,
ElastoDyn (ED)Position and orientation and translational and rotational velocities of the floating platform (continuous states) Relative bending-mode degrees of freedom of the bladesandtowerandtheir first-time derivatives (continuous states) Relative rotational displacement and velocity off the nacelle-yaw, generator azimuth, shaft torsion, and rotor-teeter (continuous states)Applied point forces and moments distributed along the blades and tower Applied point forces and moments lumped on the hub, nacelle, and platform Blade-pitch-angle command (both independent and rotor- collective) Nacelle-yaw moment Generator torquetranslational androtationalvelocities,and translational and rotation accelerations of analysis nodes along the blades and tower Translational displacements, orientations, translational androtationalvelocities,and translationalandrotationaccelerationsoftheblade- root, nacelle, and platform reference points Translational displacement,orientation,and rotational velocity of the hub reference point Nacelle-yaw angle and rate Generator speed User-selected structural outputs
BeamDyn (BD)Positions and orientations and translational and rotational velocitiesofnodes distributed along eachblade (continuous states)Translational displacements, orientations, translational androtationalvelocities,andtranslationalandrotational accelerations of eachbladeroot Applied point forces and moments distributed along each blade Applied line (per-unit length) forces and moments distributedalongeachbladeReaction point forces and moments lumped at each bladeroot Translational displacements,orientations, translational and rotational velocities, and translationalandrotationaccelerationsofnodes along each blade User-selected structural outputs
AeroDyn (AD)Inflow angle at each blade analysis node/airfoil (constraint states)Translational displacements, orientations, and translational velocities of analysis nodes along the blades and tower Orientation of the blade-root reference point Translational displacement, orientation, and rotational velocity of the hub reference point Undisturbed (inflow) wind velocities at analysis nodes along the blades and towerAerodynamic-applied line(per-unit length) forces and moments distributed along the blades and tower User-selectedaerodynamicoutputs
HydroDyn (HD)State-space-based wave- excitation states (continuous states) State-space-based wave- radiation states (continuous states)Translational displacements,orientations, translational and rotational velocities, and translational and rotational accelerations of analysis nodes distributed along the floating platform Translational displacement,orientation,translationand rotational velocities, and translational and rotational accelerations of the platform reference point Disturbanceofwaveelevationattheplatformreference pointHydrodynamic-applied point forces and moments distributed along the floating platform Hydrodynamic-applied line (per-unit length) forces and moments distributed along the floating platform Hydrodynamic-applied point force and moment at the platform reference point User-selected hydrodynamic outputs
MAP++ (MAP)Horizontal and vertical tensions at thefairleadof each mooring line (constraint states) Positions of each connect node (constraint states forTranslational displacements of each fairleadReaction point forces (tensions) lumped at each fairlead User-selected mooring outputs
The linearization of the HydroDyn (HD) module applies to both the strip-theory solution, potential-flow solution, or a hybrid combination of the two. Linear state-space-based waveexcitation and wave-radiation models have been added to HydroDyn to enable linearization of the potential-flow solution, including wave-excitation loads (with diffraction) from disturbances of wave elevation and wave-radiation loads with free-surface memory effects. The linear state-space-based wave-radiation model was previously available in HydroDyn within FAST v8. As shown in [5], the model approximates the convolution term in the Cummins equation as shown in Eq. (1), with a linear statespace model as shown in Eq. (2), where $F_{R d t n}$ is the waveradiation loads; $K_{R d t n}$ is the wave-radiation-retardation kernels; $\dot{q}_{P t f m}$ is the floating platform translation and rotational velocities; $x_{R d t n}$ are the wave-radiation states; and $A_{R d t n}$ , $B_{R d t n}$ , and $C_{R d t n}$ are the matrices of the linear state-space wave-radiation model. The more wave-radiation states there are, the better the state-space model can approximate the convolution. Within HydroDyn, the user can select either the convolution-based wave-radiation model, which is implemented via numerical convolution using discrete-time states (which, if linearized, would overly complicate application of the linear state-space model), or the linear statespace-based wave-radiation model, which is implemented using matrices derived from the SS_Fitting preprocessor [6] or equivalent. 机组的HydroDyn (HD)模块线性化适用于带叶片理论解、势流解或两者的混合组合。为了能够对势流解进行线性化,包括来自波高扰动引起的波激载以及具有自由表面记忆效应的波辐射载,线性状态空间波激和波辐射模型已被添加到HydroDyn中。 这种线性状态空间波辐射模型以前在FAST v8版本的HydroDyn中可用。如[5]所示,该模型将Cummins方程中的卷积项近似为状态空间模型,如公式(2)所示,其中$F_{R d t n}$是波辐射载;$K_{R d t n}$是波辐射延迟核;$\dot{q}_{P t f m}$是浮式平台的平动和转动速度;$x_{R d t n}$是波辐射状态;以及$A_{R d t n}$, $B_{R d t n}$,和$C_{R d t n}$是线性状态空间波辐射模型的矩阵。波辐射状态越多,状态空间模型就越能更好地近似卷积。在HydroDyn中,用户可以选择基于卷积的波辐射模型,该模型通过使用离散时间状态进行数值卷积实现(如果线性化,会过度复杂化线性状态空间模型的应用),或者选择线性状态空间波辐射模型,该模型使用从SS_Fitting预处理器[6]或其等效物派生的矩阵实现。 $$ \begin{array}{c}{{F_{R d t n}\left(t\right)=-\displaystyle\int_{0}^{t}{{K_{R d t n}}\left(t-\tau\right){{\dot{q}}_{P t f m}}\left(\tau\right)d\tau}}}\\ {{\dot{x}_{R d t n}={A_{R d t n}}x_{R d t n}+{B_{R d t n}}{{\dot{q}}_{P t f m}}}}\\ {{F_{R d t n}\cong{C_{R d t n}}x_{R d t n}}}\end{array} $$ The linear state-space-based wave-excitation model was newly introduced in HydroDyn within OpenFAST with the addition of the linearization functionality for FOWTs. Similar to the linear state-space-based wave-radiation model, the model approximates the infinite integral shown in Eq. (3) with a linear state-space model as shown in Eq. (4), where $F_{E x c t n}$ is the wave-excitation loads under unidirectional waves; $K_{E x c t n}$ is the incident wave-excitation kernels; $\zeta$ is the wave elevation; $\zeta_{c}$ is a time-shifted wave elevation; $x_{E x c t n}$ is the waveexcitation states; and $A_{E x c t n}$ , $B_{E x c t n}$ , and $C_{E x c t n}$ are the matrices of the linear state-space wave-excitation model. Further details on this new linear state-space-based waveexcitation model are provided in Annex A. Within HydroDyn, the user can now select either a Fourier-transform-based waveexcitation model, which is implemented with discrete Fourier transforms (which is not conducive to linearization), or the new linear state-space-based wave-excitation model. 在OpenFAST中,HydroDyn新增了基于线性状态空间波激振模型,并增加了对浮式风电场(FOWT)的线性化功能。类似于基于线性状态空间的波辐射模型,该模型使用线性状态空间模型近似Eq. (3)中所示的无限积分,如Eq. (4)所示,其中$F_{E x c t n}$为单向波下的波激振载荷;$K_{E x c t n}$为入射波激振核;$\zeta$为波高;$\zeta_{c}$为时移波高;$x_{E x c t n}$为波激振状态;而$A_{E x c t n}$ , $B_{E x c t n}$ , 和 $C_{E x c t n}$是线性状态空间波激振模型的矩阵。关于该新型基于线性状态空间的波激振模型的更多细节见附录A。在HydroDyn中,用户现在可以选择基于傅里叶变换的波激振模型(该模型使用离散傅里叶变换实现,不利于线性化),或该新型基于线性状态空间的波激振模型。 $$ \begin{array}{c}{{\displaystyle F_{E x c t n}\left(t\right)=\int_{\phantom{\bigg|}E_{E x c t n}}\left(t-\tau\right)\zeta\left(\tau\right)d\tau}}\\ {{\displaystyle\dot{x}_{E x c t n}=A_{E x c t n}x_{E x c t n}+B_{E x c t n}\zeta_{c}\vphantom{\bigg|}}}\\ {{\displaystyle F_{E x c t n}\cong C_{E x c t n}x_{E x c t n}}}\end{array} $$ When linear state-space-based wave excitation or wave radiation are enabled in the potential-flow solution, continuoustime states associated with the excitation and radiation damping are included in the linearized HydroDyn model. Linearization is permitted only in still water $\(\left.\zeta_{c}\right|_{o p}=x_{E x c t n}\right|_{o p}=F_{E x c t n}\right|_{o p}=0\:)^{3}$ and is not permitted when Fourier-transform-based wave-excitation, convolution-based wave-radiation, wave directional spreading, second-order wave kinematics, or second-order potential-flow loads are enabled. The linearized form of the HydroDyn state and output equations is given by Eq. (5), where ∆x(HD)= $\varDelta x^{(H D)}=\left\{{\varDelta x_{E x c t n}}\atop{\varDelta x_{R d t n}}\right\},$ $\varDelta u^{(H D)}$ includes contributions from $\varDelta\zeta$ and $\varDelta\dot{q}_{P t f m}$ , and ∆y(HD) includes contributions from ∆FExctn and ∆FRdtn. $$ \begin{array}{r c l}{{}}&{{\Delta\dot{x}^{(H D)}=A^{(H D)}A x^{(H D)}+B^{(H D)}A u^{(H D)}}}\\ {{}}&{{}}&{{A y^{(H D)}=C^{(H D)}A x^{(H D)}+D^{(H D)}A u^{(H D)}}}\end{array} $$ The continuous-state matrix, input matrix, continuous-state output matrix, and the input-transmission matrix are the Jacobians of the state and output equations relative to the states and inputs about the OP, computed analytically for the Jacobians of the state equations and numerically via a centraldifference perturbation technique for the Jacobians of the output equations as shown in Eq. (6), where $X^{(H D)}$ is the continuous-state functions and $Y^{(H D)}$ is the output functions of HydroDyn. For inputs that are rotations in 3D (i.e., $u=A$ and $\varDelta u=\varDelta\vec{\theta}$ ), it is implied that $u\big|_{o p}^{\left(H D\right)}+\varDelta u^{\left(H D\right)}$ uop , $u\big|_{o p}^{\left(H D\right)}-\varDelta u^{\left(H D\right)}$ , and $2{\varDelta}u^{\left(H D\right)}\;\;\;\;\;\;\mathrm{are}\;\;\;\;\;\mathrm{written}\;\;\;\;\;\mathrm{as}\;\;\;\;\;\;{\varLambda}_{\left\vert{\vphantom{\Biggl(}}^{H D\right)}\right.}^{\left(H D\right)}\;f_{A A}\left(A{\vec{\theta}}^{\left(H D\right)}\right),$ $A\big|_{o p}^{(H D)}\,f_{A A}\big(-\varDelta\vec{\theta}^{(H D)}\big)$ , and $2\varDelta\vec{\theta}^{(H D)}$ , respectively. In Eq. (6b), the column order is dictated by the order of HydroDyn inputs, and $\boldsymbol{\theta}$ are appropriately sized zero matrices. For the numerically computed Jacobians, the default perturbation sizes are hard-coded within HydroDyn (but can be customized by recompiling) and are ${\approx}0.035\mathrm{~m~}$ for translational states, $2^{\circ}$ for rotational states and inputs, and fractions of the water depth for translational inputs. The Jacobians contain the linearized contributions from 1) state-space-based wave excitation, 2) hydrodynamic added mass, 3) state-space-based wave-radiation damping, 4) hydrostatic restoring, and 5) linearized viscous drag. The latter is found by numerically linearizing the viscousdrag term from the relative form of Morison’s equation in the strip-theory solution (plus member-end effects) as in Eq. (6), not based on a stochastic linearization method (e.g., [7]). The $\mathrm{MAP++}$ (MAP) module has constraint (algebraic) states, there are no restrictions to linearization, and the linearized form is given by $\varDelta y^{\left(M A P\right)}=D^{\left(M A P\right)}\varDelta u^{\left(M A P\right)}$ . The input-transmission matrix is the Jacobian of the output equations relative to the inputs about the OP, computed numerically via a central-difference perturbation technique as shown in Eq. (7), where $Y^{(M A P)}$ is the output functions of $\mathrm{MAP++}$ . For inputs that are rotations in 3D (i.e., $u=A$ and $\begin{array}{r l r}&{\begin{array}{r l r}{\boldsymbol{\varDelta}u=\boldsymbol{\varDelta}\vec{\theta}\,\,\mathrm{)},\quad\mathrm{~it}\quad\mathrm{~is~}\quad\mathrm{~implied~}\quad\mathrm{~that~}\quad u\bigl|_{o p}^{\big(M A P\big)}+\varDelta u^{\big(M A P\big)}\,,}\end{array}}\\ &{\begin{array}{r l r}{u_{o p}^{\big(M A P\big)}-\varDelta u^{\big(M A P\big)}\,,\quad}&{\mathrm{and}\quad}&{\mathrm{2}\varDelta u^{\big(M A P\big)}\quad}&{\mathrm{are~}\quad\mathrm{~written~}\quad\mathrm{~as~}}\end{array}}\\ &{\begin{array}{r l r}{\boldsymbol{\varLambda}_{o p}^{\big(M A P\big)}\,f_{\_{\Delta\boldsymbol{A}}}\left(\boldsymbol{\varDelta}\vec{\theta}^{\big(M A P\big)}\right),\quad}&{\boldsymbol{\varLambda}_{\big|o p}^{\big(M A P\big)}\,f_{\_{\Delta\boldsymbol{A}}}\left(-\varDelta\vec{\theta}^{\big(M A P\big)}\right),\quad}&{\mathrm{and}}\end{array}}\end{array}$ shown in Eqs. (6) and (7) of [2]. This difference in implementation was needed in $\mathrm{MAP++}$ because the residual of constraint equations, $Z^{(M A P)}$ , is not readily available internally within MAP $^{++}$ . The default perturbation sizes are hard-coded within $\mathrm{MAP++}-$ but can be customized by recompiling—and are fractions of the water depth for the inputs. To obtain an accurate Jacobian, it is important that the perturbation sizes are not too large to make a taut mooring line go slack or a slack line go taut, but not too small to prevent the tolerance used to solve the implicit constraint equations from effecting the numerically computed derivative. $2\varDelta\vec{\theta}^{(M A P)}$ , respectively. The Jacobian contains the linearized contribution from mooring restoring. # MODULE-TO-MODULE, INPUT-OUTPUT COUPLING RELATIONSHIPS LINEARIZATION $$ \begin{array}{r l}&{\mathcal{A}^{(l t D)}=\frac{\hat{\mathcal{A}}\mathcal{X}}{\hat{\mathcal{Z}}\mathcal{X}}\Bigg|_{\varphi=\ D}^{(l t D)}=\Bigg[\frac{\mathcal{A}_{\hat{X}\kappa\sin\varphi}}{\mathcal{A}_{\hat{X}\kappa\sin\varphi}}\Bigg]}\\ &{\mathcal{B}^{(l t D)}=\frac{\hat{\mathcal{B}}\mathcal{X}}{\hat{\mathcal{C}}\mathcal{M}}\Bigg|_{\varphi=\ D}^{(l t D)}=\Bigg[\theta\quad\theta\quad\theta\quad\theta\quad\beta_{E\kappa\omega}\Bigg]}\\ &{\mathcal{C}^{(l t D)}=\frac{\hat{\mathcal{A}}\mathcal{Y}}{\hat{\mathcal{Z}}\mathcal{X}}\Bigg|_{\varphi=\ }^{(l t D)}=\frac{\displaystyle{\cal Y}\left(x\right)_{\varphi}+\varDelta x\,u_{[l]_{\varphi}}\,,I[\mathrm{i}_{\varphi}]}{24\Delta\pi}-\gamma\left(x\right)_{\varphi}-\varDelta x\,u_{[l_{\varphi}}\,,I_{\log}^{\prime}\right)\Bigg|^{(l t D)}}\\ &{\mathcal{D}^{(l t D)}=\frac{\hat{\mathcal{B}}\mathcal{Y}}{\hat{\mathcal{C}}\mathcal{M}}\Bigg|_{\varphi=\varphi}^{(l t D)}=\frac{\displaystyle{\cal Y}\left(x\right)_{\varphi}\,,\,u_{[l_{\varphi}}\,,\beta_{\textup{d}^{\prime}}\,+\,\mathrm{d}u_{t},I_{\varphi}]}{24\Delta\mu}\gamma\left(x\right)_{\varphi}\cdot u_{[l_{\varphi}}^{\prime}\,,-\,\mathrm{d}u_{t},I_{\varphi]}\Bigg|^{(l t D)}}\end{array} $$ Most module inputs and outputs in OpenFAST reside on spatial boundaries, which in the FAST modularization framework are defined in terms of a mesh. The module-tomodule, input-output coupling relationships in the OpenFAST glue code are algebraic, and include spatial mesh-to-mesh mapping. The general approach to linearizing the mesh mapping within the module-to-module, input-output coupling relationships within OpenFAST, including rotations, is detailed in [2]. The linearized input-output transformation functions, $U$ , are given by Eq. (8) from [2] or Eq. (15) from [4], repeated in Eq. (8) for convenience. $$ D^{(M P)}=\frac{d Y}{d u}\Bigg|_{o p}^{\left(M A P\right)}=\frac{Y\left(z\big|_{o p}+{\varDelta z},u\big|_{o p}+{\varDelta u},t\big|_{o p}\right)-Y\left(z\big|_{o p}-{\varDelta z},u\big|_{o p}-{\varDelta u},t\big|_{o p}\right)}{2{\varDelta u}}\Bigg|^{\left(M P\right)} $$ While $\mathrm{MAP++}$ and AeroDyn are both modules with constraint states, their numerical linearization approach differs. Equation (7) involves the total derivative of the $\mathrm{MAP++}$ output equations relative to the inputs about the OP, where it is implied that the constraint perturbations, ∆z(MAP) and $-\varDelta z^{(M A P)}$ , are tied to the input perturbations, $\varDelta u^{(M A P)}$ and $-\varDelta u^{\left(M A P\right)}$ , by solving the implicit constraint equations, $0=Z\Bigl(z\big|_{o p}+{\cal A}z,u\big|_{o p}+{\cal A}u,t\big|_{o p}\Bigr)\Bigr|^{(M A P)}$ and $0=Z\Bigl(z\big|_{o p}-varDelta z,u\big|_{o p}-\varDelta u,t\big|_{o p}\Bigr)\Bigr|^{(M A P)}$ , respectively, essentially internally eliminating the constraint states within $\mathrm{MAP++}$ during the linearization process. This is in contrast to the approach taken to linearize AeroDyn, whereby the Jacobians $\left.\frac{\partial Z}{\partial z}\right|_{o p}^{\left(A D\right)},\;\;\left.\frac{\partial Z}{\partial u}\right|_{o p}^{\left(A D\right)},\;\;\left.\frac{\partial Y}{\partial z}\right|_{o p}^{\left(A D\right)},\;\;\mathrm{and}\;\;\left.\frac{\partial Y}{\partial u}\right|_{o p}^{\left(A D\right)}$ are computed separately and algebraically manipulated to compute D as $$ {\cal{O}}=\frac{\partial U}{\partial\tilde{u}}\Bigg\vert_{o p}\,\varDelta u+\frac{\partial U}{\partial y}\Bigg\vert_{o p}\,\varDelta y\,\,\mathrm{with}\,\left\vert\frac{\partial U}{\partial\tilde{u}}\right\vert_{o p}\Bigg\vert\neq0 $$ As is evident from Table 1, the InflowWind, ServoDyn, ElastoDyn, AeroDyn, BeamDyn, HydroDyn, and $\mathrm{MAP++}$ modules were developed so that for the most part—other than mapping between independent spatial discretizations—the input of one module equals the output of another. It follows that $$ U=\left\{U^{\left(J W\right)}\right\},\qquad\quad A u=\left[\begin{array}{c}{{\left(U^{\left(J W\right)}\right)}}\\ {{U^{\left(S\times J D\right)}}}\\ {{U^{\left(E D\right)}}}\\ {{U^{\left(B D\right)}}}\\ {{\left(U^{\left(J D\right)}\right)}}\\ {{U^{\left(4D\right)}}}\\ {{U^{\left(H D\right)}}}\\ {{U^{\left(M D\right)}}}\\ {{U^{\left(M A P\right)}}}\end{array}\right],\qquad\begin{array}{c}{{\left[A u^{\left(J W\right)}\right]}}\\ {{\left(A u^{\left(S r D\right)}\right)}}\\ {{A u^{\left(B D\right)}}}\\ {{A u^{\left(B D\right)}}}\\ {{\left(A u^{\left(A D\right)}\right)}}\\ {{\left(A u^{\left(A D\right)}\right)}}\\ {{\left(A u^{\left(A D\right)}\right)}}\end{array}\right], $$ ![](images/f47cb8194eff840ddeca7a7167915ca9ff6fca5b6c65e89e27039e48f46917cc.jpg) from Eq. (8) for these seven modules are given by Eq. (9), where $I$ and $\boldsymbol{\theta}$ are appropriately sized identity and zero matrices and the sub-Jacobian matrices are composed of $I\mathrm{~s~}$ , $\theta\;\mathbf{s}.$ , and the linearized matrices from the mapping transfers given in [2]. ![](images/63a387a5c4d629058ef1038d42302921b057bc3c4140965b126080002098ca7c.jpg) Because of their large size, the sub-Jacobian matrices are not shown here, but are described qualitatively instead: The first, second, fourth, and fifth equations of Eq. (8) for InflowWind inputs, ${\boldsymbol{\theta}}={\boldsymbol{U}}^{(I J W)}$ , ServoDyn inputs, $\boldsymbol{\theta}=\boldsymbol{U}^{(S r v D)}$ , BeamDyn inputs, $\boldsymbol{{\cal O}}=\boldsymbol{{U}}^{(B D)}$ , and AeroDyn inputs, $0=U^{(A D)}$ , are described in [2,3]. The third equation of Eq. (8) for ElastoDyn inputs, $0=U^{(E D)}$ , are also described in [2,3], except that the new floating offshore linearization functionality now also includes terms expressing the contributions of HydroDyn and $\mathrm{MAP++}$ . That is, this equation expresses that the applied point force and moment perturbations distributed along the blades and tower as input to ElastoDyn are derived from the aerodynamicapplied line (per-unit length) force and moment perturbations distributed along the blades and tower as output from AeroDyn. This linearized load-mapping transfer also depends on the translational-displacement perturbations of analysis nodes along the blades and tower output from ElastoDyn. And when BeamDyn is enabled, point force and moment perturbations on the hub as input to ElastoDyn are derived from the bladeroot reaction point force and moment output from BeamDyn, which also depends on the translationaldisplacement perturbation of the hub reference point output from ElastoDyn. Additionally, the blade-pitchangle-commands, nacelle-yaw-moment, and generator-torque perturbations as input to ElastoDyn are derived from the equivalent outputs from ServoDyn. For the floating offshore functionality, point force and moment perturbations on the platform as input to ElastoDyn are derived from the hydrodynamic-applied line (per-unit length) and point force and moment perturbations distributed along the floating platform as output from HydroDyn and the reaction point forces (tensions) lumped at each fairlead as output from $\mathrm{MAP++}$ , which also depends on the translational-displacement perturbation of the platform reference point output from ElastoDyn. The sixth equation of Eq. (8) for HydroDyn inputs, $O=U^{(H D)}$ expresses that the translational displacement, orientation, translational and rotational velocity, and translational and rotational acceleration perturbations of analysis nodes distributed along the floating platform as input to HydroDyn are derived from motion outputs from ElastoDyn at the platform reference point. The seventh equation of Eq. (8) for $\mathrm{MAP++}$ inputs, $\boldsymbol{\theta}=\boldsymbol{U}^{(M A P)}$ expresses that the translational displacement perturbations of each fairlead as input to $\mathrm{MAP++}$ are derived from the motion outputs from ElastoDyn at the platform reference point. The Jacobian, $\left.\frac{\partial{\cal U}}{\partial\tilde{u}}\right|_{o p}$ , has ones along its entire diagonal and it is easily shown that its determinant from Eq. (8) is nonzero. # FINAL MATRIX ASSEMBLY Once all individual modules and input-output relationships are linearized about the OP, the linearized model of the complete coupled system can be assembled. Linearization of the full-system model produces a linear state-space model representation of the complete nonlinear system about the OP, including the influence of system state and input perturbations on the system response and outputs. The general linearized form of the complete coupled system is given by Eqs. (18) and form for the OpenFAST features linearized to date (without discrete-time states and with ElastoDyn, BeamDyn, and HydroDyn as the only modules with continuous-time states) is given by Eq. (10), where $\boldsymbol{\varDelta u}^{+}$ is the additional input perturbations (explained further in [4]). $$ \begin{array}{r}{\varDelta\dot{x}=A A x+B\varDelta u^{+}}\\ {\varDelta y=C\varDelta x+D\varDelta u^{+}}\end{array} $$ The full-system state-space matrices are given in Eq. (11), where $G\bigr|_{o p}$ —explained more in [4] for the general case—for the OpenFAST linearization to date is given by Eq. (12). The matrix $G\Big\vert_{o p}$ has ones along its entire diagonal and it is easily shown that its determinant from Eq. (12) is nonzero, which means that the matrix inverse, $\left[G\big|_{o p}\right]^{-I}$ from Eq. (11), exists and is bounded in the neighborhood around the OP. The input-transmission matrices impact all matrices of the linearized coupled system, highlighting the important role played by direct feedthrough of input to output in the coupled system response. For example, while the continuous-state matrix of ElastoDyn, $\boldsymbol{A}^{(E D)}$ , contains mass, stiffness, and damping only directly associated with the structural model, the full-system continuous state matrix, $A$ , contains mass, stiffness, and damping associated with coupled aero-hydroservo-elastics, including hydrodynamic added mass, waveradiation and viscous damping, and hydrostatic and mooring restoring for FOWTs. When the linearized full-system matrices $A\,,\,\,B\,,\,\,C$ , and $D$ are exported to a file by OpenFAST, the additional input perturbations, ${\varDelta}{u}^{+}$ , can be chosen by the user to be: 1) the inputs of all modules, 2) none of the module inputs (removing $B$ and $D$ from the file), or 3) a standard subset of these inputs, which include the standard wind turbine control inputs of nacelle-yaw moment, generator torque, and blade-pitchangle commands (both independent and rotor-collective); the standard wind-inflow disturbances of horizontal wind speed, power-law shear exponent, and wind-propagation direction; and the standard incident-wave disturbance of wave elevation. Likewise, the output perturbations, $_{\varDelta y}$ , can be chosen by the user to be: 1) the outputs of all modules, 2) none of the module outputs (removing $C$ and $D$ from the file), or 3) only the subset of output variables selected by the user through the OpenFAST module input file(s). Regardless of what the user selects to be exported to a file, all of the module inputs and outputs are used to form the linearized full-system matrices in Eq. (11), but only a subset of these matrices are exported based on the user selection. $$ {\left[\begin{array}{l l l l l l l l}{\left|{\begin{array}{l l l l l l l l l}{\alpha}&&{\beta^{\operatorname{aff}}}&&&{0}&&{0}&{\ddots}&{0}\\ {\alpha}&{\beta^{\operatorname{aff}}}&{0}&&{0}&&{\beta^{\operatorname{aff}}\left|{\vphantom{\begin{array}{l l l l l l l l}{0}}&&{0}&&{0}&&{0}\\ {0}&&{\gamma^{\operatorname{aff}}}&{0}&&{0}&&{0}&{0}\\ {0}&{0}&&{\gamma^{\operatorname{aff}}}&{\left|{\begin{array}{l l l l l l l l}{\alpha}&{0}&&{\beta^{\operatorname{aff}}}&&{0}&&{0}\\ {0}&&{0}&&{0}&&{\theta^{\operatorname{aff}}}&{\left|{\vphantom{\begin{array}{l l l l l l l l}{{\ddots}}&{0}&&{0}&{0}\\ {0}&&{0}&&{0}&{0}&{\ddots}&&{0}\\ {0}&&{0}&&{0}&&{\gamma^{\operatorname{aff}}}&{\left|{\vphantom{\begin{array}{l l l l l l l l l}{0}}&&{0}&&{0}&{0}\\ {0}&&{0}&&{\gamma^{\operatorname{aff}}}&&{\left|{\begin{array}{l l l l l l l l l}{0}&&{0}&&{0}&{0}\\ {0}&&{0}&&{0}&{\ddots}&&{0}\\ {0}&&{0}&&{0}&{0}&&{0}&{\gamma^{\operatorname{aff}}}&{\left|{\vphantom{\begin{array}{l l l l l l l l l}{0}&{0}&{0}&{0}&{0}\\ {0}&&{0}&{0}&{\ddots}&&{0}\\ {0}&&{0}&{0}&&{0}&{0}&{\gamma^{\operatorname{aff}}}&{\left|{\vphantom{\begin{array}{l l l l l l l l l}{0}&{0}&{0}&{0}&{0}\\ {0}&&{0}&{0}&{0}&{\gamma^{\operatorname{aff}}}&&{\left|{\begin{array}{l l l l l l l l l}{0}&&{0}&{0}&{0}\\ {0}&&{0}&{0}&{0}&{0}\\ {0}&&{0}&{\gamma^{\operatorname{aff}}}&{0}&&{0}&{0}\\ {0}&{0}&&{0}&{0}&{ $$ ![](images/a831b7ac45c7ef3e2ffe228fb1164fc895012b24d942fac4f79d60ba618f2485.jpg) # CONCLUSIONS Linearization of the underlying nonlinear wind-system equations is often important for understanding the system response and exploiting well-established methods and tools for analyzing linear systems. This paper has presented the development of the new linearization functionality of the opensource engineering tool OpenFAST for FOWTs, as well as the concepts and mathematical background needed to understand and apply it. Details have been presented on finding an OP, linearizing the underlying nonlinear equations of each module about the OP, linearizing the module-to-module input-output coupling relationships about the OP, and combining all linearized matrices into the full-system linear state-space model. The new linearization functionality enables the contributions from state-space-based wave excitation, hydrodynamic added mass, state-space-based wave-radiation damping, hydrostatic restoring, linearized viscous drag, and linearized mooring restoring for FOWTs to be included in the full linearized system. Unfortunately, the implementation at the time of this writing has not yet been completed enough to produce results. Results will be presented in future work to highlight the functionality and verify the implementation (e.g., for a sample case whereby the natural frequencies and damping of the NREL 5-MW baseline wind turbine atop the OC3-Hywind spar buoy will be calculated as a function of rotational speed and presented in Campbell-diagram form). Beyond the developments implemented here, potential future OpenFAST linearization enhancements include: 1) introducing routines to find a static equilibrium, steady-state, or periodic steady-state condition for improved OP determination; 2) enabling the linearization of the tuned-mass-damper (TMD) models and external user-specified controllers within ServoDyn for improved controls development and analysis; 3) implementing a form of unsteady airfoil aerodynamics, including dynamic stall, within AeroDyn amendable to linearization (e.g., from [8]) and including that model within the linearization of AeroDyn for advanced aerodynamic and stability analysis; 4) linearizing the offshore functionality of OpenFAST for bottom-fixed offshore wind systems; and 5) linearizing new features as the OpenFAST models are further developed in the future going forward. # ACKNOWLEDGMENTS The authors would like to thank Bonnie Jonkman of Envision Energy USA, Ltd. for her contributions to the development of the FAST modularization framework and to implementation of the land-based linearization functionality. This work was authored by the National Renewable Energy Laboratory, operated by the Alliance for Sustainable Energy, LLC, for the U. S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308. Funding was provided by the U.S. Department of Energy Office of Energy Efficiency and Renewable Energy. The views expressed in the article do not necessarily represent the views of the U.S. Department of Energy or the U.S. government. The U.S. government retains and the publisher, by accepting the article for publication, acknowledges that the U.S. government retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or allow others to do so, for U.S. government purposes. # REFERENCES [1] Web page https://nwtc.nrel.gov/OpenFAST (accessed May 7, 2018). [2] Jonkman, J. M. and Jonkman, B. J. “FAST modularization framework for wind turbine simulation: full-system linearization.” Journal of Physics: Conference Series, The Science of Making Torque from Wind (TORQUE 2016), 5–7 October 2016, Munich, Germany [online journal]. 082010. Vol. 753, 2016. URL: http://iopscience.iop.org/article/10.1088/1742- 6596/753/8/082010/pdf; NREL/CP-5000-67015. Golden, CO: National Renewable Energy Laboratory. [3] Jonkman, J. M.; Jonkman, B. J.; and Platt, A. “FullSystem Linearization for Wind Turbines with Aeroelastically Tailored Rotor Blades in OpenFAST.” (in preparation). [4] Jonkman, J. M. “The New Modularization Framework for the FAST Wind Turbine CAE Tool.” $5l^{s t}$ AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition, 7–10 January 2013, Grapevine (Dallas/Ft. Worth Region), TX [online proceedings]. URL: http://arc.aiaa.org/doi/pdf/10.2514/6.2013-202. AIAA-2013-0202. Reston, VA: American Institute of Aeronautics and Astronautics, January 2013; NREL/CP5000-57228. Golden, CO: National Renewable Energy Laboratory. [5] Duarte, T.; Alves, M.; Jonkman, J.; and Sarmento, A. “State-Space Realization of the Wave-Radiation Force within FAST.” $32^{n d}$ International Conference on Ocean, Offshore, and Arctic Engineering (OMAE2013), 9–14 June 2013, Nantes, France [DVD-ROM]. OMAE2013- 10375. Houston, TX: The American Society of Mechanical Engineers (ASME International) Ocean, Offshore and Arctic Engineering (OOAE) Division, June 2013; ISBN 978-0-7918-5542-3; NREL/CP-5000-58099. Golden, CO: National Renewable Energy Laboratory. [6] Web page https://nwtc.nrel.gov/SS_Fitting (accessed May 7, 2018). [7] Borgman, L. E. “Spectral Analysis of Ocean Wave Forces on Piling.” Journal of the Waterways and Harbors Division, Vol. 93, Issue 2, pp. 129-156, 1967. [8] Hansen, M. H.; Guanaa, M.; and Madsen, H. A. A Beddoes-Leishman type dynamic stall model in statespace and indicial formulations. Risø-R-1354 (EN). Roskilde, Denmark: Risø National Laboratory. 2004. # ANNEX A # LINEAR STATE-SPACE-BASED WAVE-EXCITATION MODEL In the frequency domain, the potential-flow-based waveexcitation loads (three forces and three moments) can be expressed for unidirectional waves by Eq. (A.1), where $X\big(\omega,\beta\big)$ is the frequency- $\left(\,\omega\,\right)$ and direction- $\left(\,\beta\,\right)$ dependent wave-excitation loads on the floating platform normalized per unit wave amplitude (derived, e.g., from a potential-flow-based wave-body interaction solver WAMIT) and $\zeta(\omega)$ is the waveelevation spectrum for waves propagating in direction $\beta$ (both are complex-valued to include phases). For time-domain simulations, the spectral wave data and wave direction are model inputs and the phases of the various wave components are selected randomly. The time-domain wave-excitation loads, $F_{E x c t n}\left(t\right)$ , are usually precomputed at model initialization by calculating the inverse Fourier transform shown in Eq. (A.2), where $j=\sqrt{-I}$ is the imaginary number (HydroDyn uses a discrete Fourier transform in place of the continuous-time transform shown). $$ F_{E x c t n}\left(\omega\right)=X\big(\omega,\beta\big)\zeta\big(\omega\big) $$ $$ F_{E x c t n}\left(t\right)=\frac{I}{2\pi}\int_{-\infty}^{\infty}X\big(\omega,\beta\big)\zeta\left(\omega\right)\!e^{j\omega t}d\omega $$ Equivalently, as shown in [A.1], the wave-excitation load components can be calculated through the infinite convolution integral given by Eq. (3), where the incident wave-excitation kernels derived from Eq. (A.3), represent the incident waveexcitation impulse-response functions (IRF) that depend only on platform parameters. The goal is to use a linear state-space equation to approximate Eq. (3), with the time-domain wave elevation, $\zeta\!\left(t\right)$ , acting as the input, and the time-domain wave-excitation loads, $F_{E x c t n}\left(t\right)$ , as the output. $$ K_{E x c t n}\left(t\right)=\frac{I}{2\pi}\int_{-\infty}^{\infty}X\big(\omega,\beta\big)e^{j\omega t}d\omega $$ Fitting a linear state-space model to the infinite convolution integral is complicated by the noncausality of this system. This issue has been studied extensively in [A.2] and [A.3], where a time-shifting method is used to arrive at a causal transfer function between wave elevation and wave-excitation loads. We follow the same method used in [A.2] and [A.3] here. Figure A.1 shows an example platform-pitch response (blue curve) resulting from a wave-elevation impulse at time $t=\partial$ s. Clearly, the system is noncausal because its response is nonzero for negative time even though the impulse acts at $t=\partial$ s. The system response for negative time is as large as the response for positive time, so it cannot be ignored. ![](images/228dd88a114ae163dad8ffb4be4a2a74d82c5bee4a868bbce9f447707580824f.jpg) FIGURE A.1. NONCAUSAL AND CAUSAL IMPULSERESPONSE FUNCTIONS. An approximately causal IRF is obtained through a timeshifting method. Figure A.1 shows that for all times less than $-t_{c}$ ( $t_{c}\approx I2$ s for this example), the IRF is approximately zero. A time delay, $t_{c}$ , is introduced to shift the original IRF to obtain a “causalised” IRF, $K_{E x c t n_{c}}\left(t\right)=K_{E x c t n_{c}}\left(t-t_{c}\right).$ . Figure A.1 shows that this time-shifted IRF (red) is approximately zero for negative time. Equation (A.4), in terms of $K_{E x c t n_{c}}\left(t\right)$ and $\zeta_{c}\left(t\right)$ , follows directly from Eq. (3) and the time-shift properties of Fourier transforms, where $\zeta_{c}\left(t\right)=\zeta\left(t+t_{c}\right)$ is the wave elevation predicted at time $t_{c}$ into the future. To implement this approach, a wave-prediction model must be used to predict the wave elevation for future times. Within OpenFAST simulations, this is not an issue because the wave elevation is precalculated at model initialization, so the future wave elevations are already available. In practice, the future wave evaluation could be estimated (e.g., by measuring the wave elevation with a buoy and approximating the wave evolution). $$ F_{E x c t n}\left(t\right)=\int_{-\infty}^{\infty}K_{E x c t n_{c}}\left(t-\tau\right)\zeta_{c}\left(\tau\right)d\tau $$ Now the goal is to fit a linear state-space model to the causalised IRF, $K_{E x c t n_{c}}\left(t\right)$ , based on input $\zeta_{c}\left(t\right).$ . For a statespace system of the form shown in Eq. (4), it can be shown that the IRF is $C_{E x c t n}\ e^{A_{E x c t n}t}\ B_{E x c t n}$ , where $e^{\b{A}_{E x c t n}t}$ is the matrixexponential function [A.4]. The goal is to determine $A_{E x c t n}$ , $B_{E x c t n}$ , and $C_{E x c t n}$ so that $C_{E x c t n}\ e^{A_{E x c t n}t}\ B_{E x c t n}$ approximates $K_{E x c t n_{c}}\left(t\right)$ in terms of some error norm. This is usually done by minimizing a cost function, such as given by Eq. (A.5), where $G\big(t_{k}\big)$ is a weighting function to be chosen, evaluated at specific sampling times, $t_{k}$ , for $k=I,2,\dotsc,m$ . At least $m$ discrete values of KExctn a re assumed to be known either from theory or experiment. $$ Q=\sum_{k=I}^{m}G\!\left(t_{k}\right)\!\left[K_{E x c t n_{c}}\left(t_{k}\right)\!-C_{E x c t n}~e^{A_{E x c t n}t}~B_{E x c t n}\right]^{2} $$ Several methods exist for performing this systemidentification step. For this work, we rely on the use of a linear state-space realization of the impulse response using Hankel singular value decomposition and MATLAB’s SystemIdentification-Toolbox command imp2ss [A.5]. The state-space model structure is selected so that the infinite-frequency limit of the identified model in the frequency domain is zero, forcing the output transmission $(\,D\,)$ matrix in the general state-space description to be equal to the zero matrix [A.5]. A balanced model-truncation method is used to arrive at a low-order statespace approximation for the wave-excitation loads. This general method for generating a linear state-space model of the wave excitation for inclusion into OpenFAST is being developed and programmed into a MATLAB script. Further details, with example cases and a user’s guide for this script will be described in a future publication. [A.1] Jonkman, J. M. Dynamics Modeling and Loads Analysis of an Offshore Floating Wind Turbine. Ph.D. Thesis. Department of Aerospace Engineering Sciences, University of Colorado, Boulder, CO, 2007; NREL/TP500-41958. Golden, CO: National Renewable Energy Laboratory. [A.2] Yu, Z. and Falnes, J. “State-space Modeling of a Vertical Cylinder in Heave.” Applied Ocean Research, Vol. 17, Issue 5, pp. 265-275, 1995. [A.3] Lemmer, F., Raach, S., Schlipf, D., and Cheng, P. “Parametric Wave Excitation Model for Floating Wind Turbines.” Energy Procedia, Vol. 94, 2016, pp. 290-305; $I3^{t h}$ Deep Sea Offshore Wind R&D Conference, EERA DeepWind’2016, 20-22 January 2016, Trondheim, Norway; DOI: 10.1016/j.egypro.2016.09.186. [A.4] Ogata, K. Modern Control Engineering, Englewood Cliffs, NJ: Prentice-Hall Inc., 1990. [A.5] Ljung, L. and Singh, R. “Version 8 of the MATLAB System Identification Toolbox.” $I6^{t h}$ IFAC Symposium on System Identification, Brussels, Belgium. ISBN 9783902823069; pp. 1826-1832, 2012; doi:10.3182/20120711-3-BE-2027.00061.