vault backup: 2025-06-25 16:42:19

This commit is contained in:
yize 2025-06-25 16:42:20 +08:00
parent 44f72254a9
commit a777445144
9 changed files with 615 additions and 9 deletions

View File

@ -940,7 +940,7 @@ Compatibility of old project files with multi-member tower and non-rigid foundat
# 4.5.10 Moorings
# Note: For users of Bladed 4.6 and later, if you are creating mooring definitions from scratch, it is recommended that you use the PreProcessed catenary mooring rather than the manually defined type. The manual type is still useful if you need to model mooring line damping and/or inertia, but the PreProcessed is more accurate and allows a greater variety of mooring configurations to be modelled.
Note: For users of Bladed 4.6 and later, if you are creating mooring definitions from scratch, it is recommended that you use the PreProcessed catenary mooring rather than the manually defined type. The manual type is still useful if you need to model mooring line damping and/or inertia, but the PreProcessed is more accurate and allows a greater variety of mooring configurations to be modelled.
Users with an Offshore Support Structure licence in Bladed 4.1 or later versions have the option of modelling a turbine which is floating rather than fixed to the seabed. If the Sea option is selected in the Environment panel, the Floating checkbox will appear in that panel. Tick this box to enter data for a floating turbine. When the Floating box is ticked, the Foundations column in the node grid changes to a Moorings column and the Foundations... button changes to Moorings... The Modal reference node textbox is also present for a floating turbine. This allows you to specify which of the support structures nodes will be used as a reference for modal analysis. This node will have zero deflection; it must not be the same as the nacelle node. Note also that it is not possible to select the RIGID option in the Moorings column of the node grid, as all real moorings will experience some deflections. If you specify the turbine as floating, you must nominate at least one node to be attached to a mooring line (once you have defined moorings as described below). Attaching a node to a mooring line is done by selecting the mooring line from the dropdown in the Moorings column of the grid.

View File

@ -443,7 +443,7 @@ The resulting joining process is then:
5. 将仅结构模态与在第一个工作点的耦合模态连接起来。需要注意的是,耦合模态的数量通常大于模态序列的数量,这意味着并非所有耦合模态都包含在模态序列中。
6. 将在当前点(第一个工作点)包含在模态序列中的耦合模态与下一个点(第二个工作点)的耦合模态连接起来。重复此过程直至到达最后一个工作点。
### Naming and Exclusion of Coupled Mode Series
### Naming and Exclusion of Coupled Mode Series命名与耦合模态串排除
A coupled mode series is named according to the contributions of the structure-only coupled modes at the first operating point only (more details on coupled mode naming can be found here). The contributions and therefore the shape of a coupled mode can change significantly between the range of operating points, and therefore the characteristic of a mode cannot be determined from the name alone.
@ -459,7 +459,7 @@ A coupled mode series is also excluded if the coupled mode frequencies at all op
Last updated 26-11-2024
# Align Wind Field with Hub Axis
# Align Wind Field with Hub Axis与风轮中心轴对准风向
Figure 1 illustrates that azimuthal dependency is still invoked in certain cases even though the considerations given in the linear analysis background are followed. This occurs when a tilt angle is considered in the calculations and when the tower flexibility is strongly affecting the rotor orientation. Figure 1 (left) provides an ilustration of the azimuthally independent system, indicating that the solution will be the same regardless of the azimuth angle of the rotor. However, when the tilt angle is considered, Figure 1 (middle), the loads perceived by the upper side of the rotor and the lower side of the rotor vary. This creates an imbalance of the loads similar as adding "a virtual wind shear" on the rotor plane. The situation is worse when the flexibility of the tower affects the rotor orientation strongly as illustrated in Figure 1 (right). Here, one can see that the hub orientation might be tilted even greater which creates a stronger loads imbalance across the rotor.

View File

@ -258,7 +258,7 @@ equivalency relationships when defining the new inputs
PtfmModel $=0$
PtfmFile $=$ <may be left blank>
PtfmFile $=$ may be left blank
NcIMUxn $=0.0$ (a dont care)
@ -268,7 +268,7 @@ NcIMUzn $=0.0$ (a dont care)
NTwGages = 0
# TwrGagNd $=$ <may be left blank>
TwrGagNd $=$ may be left blank
Finally, if you use the FAST-to-ADAMS preprocessor to create ADAMS wind turbine datasets, upgrading from FAST $\mathrm{v}5.1$ to $\times6.0$ also requires you to upgrade from v12.17 to v12.18 of the ADAMS to AeroDyn (A2AD) source files and to recompile the ADAMS user-created dynamic-link-library (DLL). This is because ADAMS datasets generated using FAST v6.0 must be simulated with an ADAMS usercreated DLL compiled using the source files from A2AD v12.18. All of the new features for FAST v6.0 listed above are also available in the FAST-to-ADAMS preprocessor.
@ -300,7 +300,7 @@ TYawManE $=$ 9999.9 (a dont care $\geq$ TYawManS)
NacYawF $=0.0$ (a dont care)
TrimCase $=2$ if TrimCase was 1 in v5.0 = 3 if TrimCase was 2 in v5.0
NInputs $=0$ if CntrlInpt was 0 in v5.0 $=\,\dag$ if CntrlInpt was 1 or 2 in v5.0 $=$ NumBl if CntrlInpt was 3 in v5.0 $=2$ if CntrlInpt was 4 in v5.0 $=1+$ NumBl if CntrlInpt was 5 in v5.0
CntrlInpt $=$ <may be left blank> if CntrlInpt was 0 in v5.0 $=3$ if CntrlInpt was 1 in v5.0 $=4$ if CntrlInpt was 2 in $v5.0$ $=5{,}6$ if CntrlInpt was 3 and $\mathsf{N u m B l}=2$ in $v5.0$ $=5{,}6{,}7$ if CntrlInpt was 3 and $\mathsf{N u m B l}=3$ in $v5.0$ $=3{,}4$ if CntrlInpt was 4 in $v5.0$ $=3{,}5{,}6$ if CntrlInpt was 5 and $\mathsf{N u m B l}=2$ in $v5.0$ $=3{,}5{,}6{,}7$ if CntrlInpt was 5 and NumBl $=\mathfrak{z}$ in v5.0
CntrlInpt $=$ may be left blank if CntrlInpt was 0 in v5.0 $=3$ if CntrlInpt was 1 in v5.0 $=4$ if CntrlInpt was 2 in $v5.0$ $=5{,}6$ if CntrlInpt was 3 and $\mathsf{N u m B l}=2$ in $v5.0$ $=5{,}6{,}7$ if CntrlInpt was 3 and $\mathsf{N u m B l}=3$ in $v5.0$ $=3{,}4$ if CntrlInpt was 4 in $v5.0$ $=3{,}5{,}6$ if CntrlInpt was 5 and $\mathsf{N u m B l}=2$ in $v5.0$ $=3{,}5{,}6{,}7$ if CntrlInpt was 5 and NumBl $=\mathfrak{z}$ in v5.0
If you compile FAST yourself, please note that new source files FAST_Prog.f90, UserVSCont_ $K P.f90$ , and BladedDLLInterface.f90 have been added to, and source file PitchCntrl.f90 has been removed from, the Source folder in the FAST archive. Please see the new Compiling FAST chapter for more information.
@ -349,7 +349,7 @@ YawBrMass $=0.0$
Furling $=$ False
FurlFile $=$ <may be left blank>
FurlFile $=$ may be left blank
LSSLength $=$ ABS( OverHang )
@ -1108,7 +1108,7 @@ For variable speed turbines in Region 2, set CalcStdy to True, GenDOF to
For variable speed turbines in Region 3, set CalcStdy to True, GenDOF to True, RotSpeed to the desired azimuth-averaged rotor speed (nonzero), and TrimCase to 3. Setting TrimCase to 3 causes FAST to trim rotor collective blade pitch to reach the desired azimuth-averaged rotor speed condition. In this case, the initial “guess” blade pitch angles are given by BlPitchi, and the electrical generator torque is determined by the torque-speed relationship indicated by inputs VSContrl or GenModel. For typical Region 3 trim, collective pitch can be trimmed while maintaining a constant generator torque by setting TrimCase to 3, VSContrl to 1, VS_RtTq to the desired constant generator torque, and VS_RtGnSp,
对于区域3的可变速机组设置 CalcStdy 为 TrueGenDOF 为 TrueRotSpeed 为期望的方位平均风轮转速(非零),以及 TrimCase 为 3。将 TrimCase 设置为 3 会导致 FAST 调整风轮整体叶片变桨角度,以达到期望的方位平均风轮转速条件。 在这种情况下,初始叶片变桨角度由 BlPitchi 给出,而发电机转矩由 VSContrl 或 GenModel 中指示的转矩-转速关系确定。对于典型的区域3调整可以通过设置 TrimCase 为 3VSContrl 为 1VS_RtTq 为期望的恒定发电机转矩,以及 VS_RtGnSp同时保持恒定发电机转矩来调整整体变桨角度。
The third trim option is for the nacelle yaw control input. To trim nacelle yaw, set CalcStdy to True, GenDOF to True, RotSpeed to the desired azimuthaveraged rotor speed (nonzero), and TrimCase to 1. Nacelle yaw can be trimmed with or without the yaw DOF enabled. With yaw DOF enabled $\begin{array}{r l r}{\lefteqn{(\mathsf{Y a w D O F}=}}\end{array}$ True), setting TrimCase to 1 causes FAST to trim the neutral yaw angle, YawNeut, which passes through FASTs built-in, second-order actuator model, while maintaining constant rotor collective blade pitch (indicated by inputs BlPitchi from the primary input file), to reach the desired azimuth-averaged rotor speed condition. In this case, the yaw actuator, which is described in the Nacelle Yaw Control section of the Controls chapter, will be inherent in the output linearized model. With yaw DOF disabled (YawDOF $=$ False), setting TrimCase to 1 causes FAST to trim the actual nacelle yaw angle, while maintaining constant rotor collective blade pitch (indicated by inputs BlPitchi from the primary input file), to reach the desired azimuth-averaged rotor speed condition. In this case, the yaw actuator will be absent from the output linearized model.
The third trim option is for the nacelle yaw control input. To trim nacelle yaw, set CalcStdy to True, GenDOF to True, RotSpeed to the desired azimuthaveraged rotor speed (nonzero), and TrimCase to 1. Nacelle yaw can be trimmed with or without the yaw DOF enabled. With yaw DOF enabled $\begin{array}{r l r}{{(\mathsf{Y a w D O F}=}}\end{array}$ True), setting TrimCase to 1 causes FAST to trim the neutral yaw angle, YawNeut, which passes through FASTs built-in, second-order actuator model, while maintaining constant rotor collective blade pitch (indicated by inputs BlPitchi from the primary input file), to reach the desired azimuth-averaged rotor speed condition. In this case, the yaw actuator, which is described in the Nacelle Yaw Control section of the Controls chapter, will be inherent in the output linearized model. With yaw DOF disabled (YawDOF $=$ False), setting TrimCase to 1 causes FAST to trim the actual nacelle yaw angle, while maintaining constant rotor collective blade pitch (indicated by inputs BlPitchi from the primary input file), to reach the desired azimuth-averaged rotor speed condition. In this case, the yaw actuator will be absent from the output linearized model.
For constant speed machines, set GenDOF to False. FAST will then ignore input TrimCase, and the trim analysis will be bypassed during the computation of the periodic steady state operating condition.

View File

@ -5,7 +5,7 @@
{"id":"d2c5e076ba6cf7d7","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-600,"y":-306,"width":456,"height":347},
{"id":"82708a439812fdc7","type":"text","text":"# 7月已完成\n\n","x":-220,"y":134,"width":440,"height":560},
{"id":"505acb3e6b119076","type":"text","text":"# 6月已完成\n\n\nP1 结果对比\n- Herowind 带3.5气动与fast3.5对比 相同\n- Herowind 带4.0气动与fast4.0对比 相同\n- Herowind 带hrl气动与fast对比 需气动支持15MW\n\nP1 Bladed交流问题汇总\n\nP1 模型线性化原理 done\n- Bladed 线性化理论手册 仔细阅读\n- multibody blade transform\n- fast线性化理论\n- 梳理Bladed线性化方法框架","x":-700,"y":134,"width":440,"height":560},
{"id":"c18d25521d773705","type":"text","text":"# 计划\n这周要做的3~5件重要的事情这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\n\nP1 柔性部件 叶片、塔架主动力惯性力算法 主线\n- 变形体动力学 简略看看ing\n- 柔性梁弯曲变形振动学习,主线 \n\t- 广义质量 刚度矩阵及含义\n- 如何静力学求解 \n\t- 基于本构方程 读孟的论文\n\t- normal mode shape 能否使用?\n\t- F = kx 外载与弹性势能相等\n\t\n- 梳理bladed动力学框架 this week\n\t- 子结构文献阅读\n\t- 叶片模型建模 done\n\n\n-\nP1 结果对比\n- Bladed与FAST之间的对比 去掉角度 不能直接比较\n- 坐标系转换 this week\n\nP2 如何优雅的存储、输出结果。\nP2 yaw 自由度再bug确认 已知原理了\n","x":-594,"y":-693,"width":450,"height":347},
{"id":"c18d25521d773705","type":"text","text":"# 计划\n这周要做的3~5件重要的事情这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\n\nP1 柔性部件 叶片、塔架主动力惯性力算法 主线\n- 变形体动力学 简略看看ing\n- 柔性梁弯曲变形振动学习,主线 \n\t- 广义质量 刚度矩阵及含义\n- 如何静力学求解 \n\t- 基于本构方程 读孟的论文\n\t- normal mode shape 能否使用?\n\t- F = kx 外载与弹性势能相等\n\t\n- 梳理bladed动力学框架 this week\n\t- 子结构文献阅读\n\t- 叶片模型建模 done\n\n\nP1 结果对比\n- Bladed与FAST之间的对比 去掉角度 不能直接比较\n- 叶根坐标系转换 this week\n\nP1 编写线性化理论手册\nP1 上手Bladed \\ fast 线性化功能\n\nP2 如何优雅的存储、输出结果。\nP2 yaw 自由度再bug确认 已知原理了\n","x":-594,"y":-693,"width":450,"height":347},
{"id":"30cb7486dc4e224c","type":"text","text":"# 8月已完成\n\n","x":260,"y":134,"width":440,"height":560}
],
"edges":[]

View File

@ -0,0 +1,14 @@
{
"nodes":[
{"id":"e258bf510a2699cf","type":"text","text":"Fast线性化框架","x":-177,"y":-35,"width":250,"height":60},
{"id":"ef30c5a9200d9352","type":"text","text":"get OP","x":140,"y":-35,"width":250,"height":60},
{"id":"785bc201d566502a","type":"text","text":"disturb ","x":800,"y":-35,"width":250,"height":60},
{"id":"0702a01cda0ba8d8","type":"text","text":"Jacobian","x":480,"y":-35,"width":250,"height":60},
{"id":"e7dc0fdca29a08ec","x":1160,"y":-35,"width":250,"height":60,"type":"text","text":"ED_GetOP、AD_GetOP、Glue_GetOP、Glue_Jacobians"}
],
"edges":[
{"id":"4ee93a343032abf3","fromNode":"e258bf510a2699cf","fromSide":"right","toNode":"ef30c5a9200d9352","toSide":"left"},
{"id":"191eb4d5b898f732","fromNode":"ef30c5a9200d9352","fromSide":"right","toNode":"0702a01cda0ba8d8","toSide":"left"},
{"id":"226db035706a90e3","fromNode":"0702a01cda0ba8d8","fromSide":"right","toNode":"785bc201d566502a","toSide":"left"}
]
}

View File

@ -0,0 +1,32 @@
A
$$
{equation}{ A =
\begin{bmatrix} A^{ED} & 0 & 0 \\ 0 & A^{BD} & 0 \\ 0 & 0 & A^{HD}\end{bmatrix} -
\begin{bmatrix} 0 & 0 & B^{ED} & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & B^{BD} & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & B^{HD}\end{bmatrix} \,
\begin{bmatrix} G \end{bmatrix}^{-1} \, \frac{\partial U}{\partial y} \, \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ C^{ED} & 0 & 0 \\ 0 & C^{BD} & 0 \\ 0 & 0 & 0 \\ 0 & 0 & C^{HD} \\ 0 & 0 & 0\end{bmatrix}
}
$$
C
$$
{equation}{ C = \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ C^{ED} & 0 \\ 0 & C^{BD} \\ 0 & 0 \end{bmatrix} -
\begin{bmatrix} D^{IfW} & 0 & 0 & 0 & 0 \\ 0 & D^{SrvD} & 0 & 0 & 0 \\ 0 & 0 & D^{ED} & 0 & 0 \\ 0 & 0 & 0 & D^{BD} & 0\\ 0 & 0 & 0 & 0 & D^{AD}\end{bmatrix} \,
\begin{bmatrix} G \end{bmatrix}^{-1} \, \frac{\partial U}{\partial y} \, \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ C^{ED} & 0 \\ 0 & C^{BD} \\ 0 & 0 \end{bmatrix}}
$$
B
$$
{equation}{ B = \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ B^{ED} & 0 \\ 0 & B^{BD} \\ 0 & 0 \end{bmatrix} \,
\begin{bmatrix} G \end{bmatrix}^{-1} \, \frac{\partial U}{\partial u}
}
$$
D
$$
{equation}{ D = \begin{bmatrix} D^{IfW} & 0 & 0 & 0 & 0 \\ 0 & D^{SrvD} & 0 & 0 & 0 \\ 0 & 0 & D^{ED} & 0 & 0 \\ 0 & 0 & 0 & D^{BD} & 0\\ 0 & 0 & 0 & 0 & D^{AD}\end{bmatrix} \,
\begin{bmatrix} G \end{bmatrix}^{-1} \, \frac{\partial U}{\partial u}
}
$$

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -0,0 +1,543 @@
# 1. 线性化分析背景
线性分析计算将气弹模型简化为用户请求计算的**每个工作点处的线性系统**。**以状态空间形式表示的线性系统方程组为**
$$
\begin{array}{r}{\underline{{\dot{\mathbf{x}}}}=\mathbf{A}\underline{{\mathbf{x}}}+\mathbf{B}\underline{{\mathbf{u}}}}\\ {\underline{{\mathbf{y}}}=\mathbf{C}\underline{{\mathbf{x}}}+\mathbf{D}\underline{{\mathbf{u}}}}\end{array}
$$
$$
\underline{{\mathbf{x}}}=\mathbf{x}-\mathbf{x_{0}},\quad\underline{{\mathbf{y}}}=\mathbf{y}-\mathbf{y_{0}},\quad\mathrm{~and~}\quad\underline{{\mathbf{u}}}=\mathbf{u}-\mathbf{u_{0}}
$$
其中 $\mathbf{x}$ 是状态向量,代表系统状态;$\mathbf{u}$ 是系统输入向量;$\mathbf{y}$ 是系统输出向量。归一化向量 $\underline{{\mathbf{x}}}、\underline{{\mathbf{y}}}$ 和 $\underline{{\mathbf{u}}}$ 代表偏离平衡态的量。
矩阵 $\mathbf{A}$、$\mathbf{B}$、$\mathbf{C}$ 和 $\mathbf{D}$ 代表这些向量之间的线性化关系。这代表对完整模型的一个简化,该模型使用一组完全非线性方程来计算状态导数和输出。
$$
\begin{array}{r}{\dot{\mathbf{x}}=f(t,\mathbf{x},\mathbf{u})}\\ {\mathbf{y}=h(t,\mathbf{x},\mathbf{u}).}\end{array}
$$
需要注意的是,为了能够建立适当的线性化风轮动力学系统,需要考虑以下模型准备原则:
- 需移除方位角依赖性,包括风切变、偏航、风轮不平衡等。
- 需移除无法线性化的物理效应,例如风湍流、黏滞滑动等。
为了进行线性分析Bladed依次取每个工作点并找到风电机组的稳态条件如同时域运行中的初始条件。这意味着风轮没有加速模态变形使得弹性载荷平衡外部载荷。这定义了$\mathbf{x_{0}},\,\mathbf{y_{0}}$和$\mathbf{u_{0}}$的值,即所有扰动围绕的主要平衡点。
对于每个输入或状态Bladed然后在平衡点两侧进行一系列幅度逐渐增加的扰动。人为地增加或减少状态或输入的数值用这些修改后的数值求解系统并记录**状态导数和输出**。扰动的数量和最大扰动幅度可以由用户定义。
然后可以通过对状态导数与所有扰动值及其平衡值之间的关系进行线性回归来推导矩阵A、B、C和D的元素。线性回归的梯度给出元素的值。如果相关系数小于最小相关系数则认为该关系无效并给该元素赋予零值。
![](images/559b5972f3b586cff78a91c0dfa85bc88bb9a7f9e4c9735de97fbd009af301f1.jpg)
图 1示例线性回归计算单元 ${\bf A}_{7,4}$,其值为 -1.315,相关系数为 0.9982。平衡点以绿色显示。
# 2. 多叶片坐标系转换
为了线性化计算或坎贝尔图的绘制,建议选择多叶片坐标变换,该变换会生成与非旋转坐标系耦合的模态,包括风轮的后向和前向挥舞模态。这基于 (Bir, 2008) 和 (Hansen, 2003) 中提出的理论。线性化后的模型对方位角高度依赖但当变换到非旋转坐标系后结构动力学模型应仅表现出微弱的方位角依赖性。然而对于2叶片风轮仍然存在较强的方位角依赖性。
## 2.1. 单个模态转换
一个三叶片系统,其方位角为 $\psi_{1}$ 到 $\psi_{3}$,从非旋转坐标系到旋转坐标系的位移变换矩阵如下:
$$
\begin{align}
\begin{bmatrix}
q_{1} \\
q_{2} \\
q_{3} \\
\end{bmatrix} &= \widetilde{{t}}_{NR \rightarrow R}
\begin{bmatrix}
q_{0} \\
q_{c} \\
q_{s} \\
\end{bmatrix},
\end{align}
$$
$$
\tilde{\mathbf{t}}_{N R\to R}=\left[\begin{array}{l l l}{1}&{\cos\psi_{1}}&{\sin\psi_{1}}\\ {1}&{\cos\psi_{2}}&{\sin\psi_{2}}\\ {1}&{\cos\psi_{3}}&{\sin\psi_{3}}\end{array}\right].
$$
多叶片坐标变换通常以上述形式引用但主要目的是反向变换从旋转坐标系变换到非旋转坐标系。一个3叶片系统的位移从旋转坐标系变换到非旋转坐标系的变换矩阵是上述矩阵的逆矩阵由以下给出
$$
\begin{align}
{t}_{R \rightarrow NR} = \frac{1}{3}\begin{bmatrix}
1 & 1 & 1 \\
2\cos\psi_{1} & 2\cos\psi_{2} & 2\cos\psi_{3} \\
2\sin\psi_{1} & 2\sin\psi_{2} & 2\sin\psi_{3} \\
\end{bmatrix}.
\end{align}
$$
对于具有任意数量叶片 $(n)$ 的风轮的通用变换矩阵
$$
\mathbf{t}_{R\rightarrow N R}=\frac{1}{n}\left[\begin{array}{c c c c c}{1}&{1}&{1}&{\cdots}&{1}\\ {2\cos\psi_{1}}&{2\cos\psi_{2}}&{2\cos\psi_{3}}&{\cdots}&{2\cos\psi_{n}}\\ {2\sin\psi_{1}}&{2\sin\psi_{2}}&{2\sin\psi_{3}}&{\cdots}&{2\sin\psi_{n}}\\ {2\cos j\psi_{1}}&{2\cos j\psi_{2}}&{2\cos j\psi_{3}}&{\cdots}&{2\cos j\psi_{n}}\\ {2\sin j\psi_{1}}&{2\sin j\psi_{2}}&{2\sin j\psi_{3}}&{\cdots}&{2\sin j\psi_{n}}\\ {\vdots}&{\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {1}&{-1}&{1}&{\cdots}&{(-1)^{n}}\end{array}\right],
$$
其中最后一行是变换到微分模态,且仅在叶片数量为偶数时存在。对于叶片数量为奇数的风轮,最后一行将是一个正弦循环行。计数器 $j$ 从 1 到 $(n-1)/2$ (当 $n$ 为奇数时),从 2 到 $(n-2)/2$ (当 ${n}$ 为偶数时)。
省略矩阵表示,非旋转坐标可以计算如下:
$$
\begin{array}{l}{\displaystyle q_{0}=\frac{1}{n}\sum_{i=1}^{n}q_{i}}\\ {\displaystyle q_{c j}=\frac{2}{n}\sum_{i=1}^{n}q_{i}\cos{\left(j\psi_{i}\right)}}\\ {\displaystyle q_{s j}=\frac{2}{n}\sum_{i=1}^{n}q_{i}\sin{\left(j\psi_{i}\right)}}\\ {\displaystyle q_{d}=\frac{1}{n}\sum_{i=1}^{n}q_{i}(-1)^{n}}\end{array}
$$
以三叶风轮为例,现在计算导数变换矩阵。每个方位角 $\psi_{i}$ 可以表示为(假设恒定的)风轮转速 $\Omega$ 和初始方位角 $\Psi_{i}$ 的线性关系。
$$
\psi_{i}=\Omega t+\Psi_{i}.
$$
对变换矩阵求时间导数,得到:  
$$
\begin{align*}
\dot{{t}}_{R \rightarrow NR} =
\frac{\Omega}{3}
\begin{bmatrix}
0 & 0 & 0 \\
-2\sin\psi_{1} & - 2\sin\psi_{2} & - 2\sin\psi_{3} \\
2\cos\psi_{1} & 2\cos\psi_{2} & 2\cos\psi_{3} \\
\end{bmatrix}
\end{align*}
$$
$$
\begin{align*}
\ddot{{t}}_{R \rightarrow NR} =
-\frac{\Omega^{2}}{3}
\begin{bmatrix}
0 & 0 & 0 \\
2\cos\psi_{1} & 2\cos\psi_{2} & 2\cos\psi_{3} \\
2\sin\psi_{1} & 2\sin\psi_{2} & 2\sin\psi_{3} \\
\end{bmatrix}
\end{align*}
$$
## 2.2. 系统变换矩阵
需要一个包含位移和速度状态的整个状态列表的变换矩阵。正如我们在公式(1)中已经确立的,对于位移状态,
$$
{\bf q}_{N R}={\bf t}_{R\rightarrow N R}{\bf q}_{R}
$$
对公式(1)求时间导数,得到:
$$
\dot{\bf q}_{N R}={\bf t}_{R\rightarrow N R}\dot{\bf q}_{R}+\dot{\bf t}_{R\rightarrow N R}{\bf q}_{R}
$$
将 ${\bf q}_{N R}$ 和 $\dot{\bf q}_{N R}$ 组合成一个包含所有状态(位移和速度)的向量,允许我们定义一个与 $A$ 具有相同维度的公共变换矩阵 $\mathbf{T}$。 我们定义
$$
\begin{align}
{T} &:= \begin{bmatrix}
{t}_{R \rightarrow NR} & 0 \\
\dot{{t}}_{R \rightarrow NR} & {t}_{R \rightarrow NR} \\
\end{bmatrix}
\end{align}
$$
需要注意的是,一般来说,位移和速度状态并非以这种方式排列,系统变换矩阵 $\mathbf{T}$ 会发生置换。系统变换矩阵非奇异,可以计算其逆矩阵。
系统变换矩阵的导数可以很容易地推导出来。
$$
\begin{align}
\dot{{T}}=
\begin{bmatrix}
\dot{{t}}_{R \rightarrow NR} & 0 \\
\ddot{{t}}_{R \rightarrow NR} & \dot{{t}}_{R \rightarrow NR} \\
\end{bmatrix}.
\end{align}
$$
## 2.3. 变换A, B, C, D矩阵
我们考虑在旋转参考系下的线性模型方程,并定义:
$$
\begin{align}
{x}_{R} := \begin{bmatrix}
{q}_{R} \\ \dot{{q}}_{R}
\end{bmatrix}
\end{align}
$$
为了表达主要系统为
$$
\begin{array}{r}{\dot{\mathbf{x}}_{R}=\mathbf{A}_{R}\mathbf{x}_{R}+\mathbf{B}_{R}\mathbf{u}}\\ {\mathbf{y}=\mathbf{C}_{R}\mathbf{x}_{R}+\mathbf{D}_{R}\mathbf{u}}\end{array}
$$
相对于旋转叶片坐标系。
状态向量从旋转坐标系变换到非旋转坐标系的表达式如下:
$$
\mathbf{x}_{N R}=\mathbf{T}\mathbf{x}_{R}
$$
导数为:
$$
\dot{{\bf x}}_{N R}={\bf T}\dot{\bf x}_{R}+\dot{\bf T}{\bf x}_{R}.
$$
结合方程17和15得到
$$
\begin{array}{r l}&{\dot{\mathbf{x}}_{N R}=\mathbf{T}\left(\mathbf{A}_{R}\mathbf{x}_{R}+\mathbf{B}_{R}\mathbf{u}\right)+\dot{\mathbf{T}}\mathbf{x}_{R}}\\ &{\qquad=\Big(\mathbf{T}\mathbf{A}_{R}+\dot{\mathbf{T}}\Big)\mathbf{x}_{R}+\mathbf{T}\mathbf{B}_{R}\mathbf{u}}\\ &{\qquad=\Big(\mathbf{T}\mathbf{A}_{R}+\dot{\mathbf{T}}\Big)\mathbf{T}^{-1}\mathbf{x}_{N R}+\mathbf{T}\mathbf{B}_{R}\mathbf{u}}\end{array}
$$
进而得到
$$
\begin{array}{r l}&{\mathbf{A}_{N R}=\Big(\mathbf{TA}_{R}+\dot{\mathbf{T}}\Big)\mathbf{T}^{-1}}\\ &{\mathbf{B}_{N R}=\mathbf{TB}_{R}}\end{array}
$$
类似的方程16的转换得到
$$
\begin{array}{r}{\mathbf{y}=\mathbf{C}_{R}\mathbf{x}_{R}+\mathbf{D}_{R}\mathbf{u}}\\ \\{=\mathbf{C}_{R}\mathbf{T}^{-1}\mathbf{x}_{N R}+\mathbf{D}_{R}\mathbf{u}}\end{array}
$$
对于线性化系统的输出,我们定义
$$
\mathbf{C}_{N R}:=\mathbf{C}_{R}\mathbf{T}^{-1},\quad\mathrm{~and~}\mathbf{D}_{N R}:=\mathbf{D}_{R}
$$
对于与线性模型输出相关的矩阵,本部分内容完成了对非旋转参考系下的线性模型推导。
旋转变换仅应用于状态,这些状态代表了定义在所有叶片上的数学模型中的自由度。这些状态包括叶片模态和动态失速状态,而其他任何单个叶片状态,例如桨距角位置、速率、执行器内部状态等,均不进行变换。矩阵 T 在未进行变换的状态和状态导数对应的行和列上具有单位对角线元素。对于其他行和列T 的元素代表上述为每组模态定义的基变换。需要注意的是,连接状态和状态导数的元素也需要通过对基变换方程进行微分来定义,同时考虑到方位角的变化率等于风轮转速(出于本目的,假设其为常数)。模型输入和输出不进行变换。
# 3. 耦合模态
## 3.1. 计算耦合模态
坎贝尔图和叶片稳定性分析是对在每个指定工作点处的**矩阵 A** 的分析。**每个耦合模态对应一个特征值及其特征向量**。**给定矩阵 A 的一个(复数)特征值 λ**Bladed 会根据图 1 报告无阻尼频率undamped frequency (ωn)、阻尼频率damped frequency  (ωd) 和阻尼比 (ζ)。
![](images/1bc3025789424b3ce73139d78bc919927c8a5412bd7fc241d6212fc0f2efd0ba.jpg)
Figure 1: Argand Diagram阿根图
每个耦合模态的未耦合模态贡献由其特征向量决定。如果耦合模态具有二阶状态(结构状态)的贡献,这些状态由状态向量中的两个状态表示,则使用位移状态来确定贡献。
以原始形式,这些特征向量贡献代表每个模态的相对位移,可用于构建耦合模态形状。然而,在坎贝尔图中,这些贡献已被归一化。这是通过修改特征向量矩阵来实现的,使得每一行和每一列都具有单位和。这会增加具有高质量和刚度的模态的百分比贡献,这些模态在位移中贡献很小,但在能量方面贡献很大。
每个贡献的相位,$\phi_{i\,,}$ 由相应复特征向量元素的参数决定,即 $v_{i},$ 即。
$$
\phi_{i}=\arctan\left(\frac{\operatorname{Im}\left(v_{i}\right)}{\operatorname{Re}\left(v_{i}\right)}\right).
$$
## 3.2. 命名耦合模态
在计算耦合模态,例如在坎贝尔图分析中,以下章节将详细介绍命名规范。重点关注多叶片坐标变换使用时的行为。
### 3.2.1. 支撑结构模态
对于支撑结构模态,耦合模态以对贡献最大的整个塔架模态命名。整个塔架模态通过后续带有固定-自由边界条件的特征分析来计算用于线性化计算。该分析考虑了RNA叶片以及位于远端节点上的其他质量的影响。如果多个耦合支撑结构模态共享相同的整塔模态作为其主要贡献者则通过附加字母A、B、C等来使耦合模态名称唯一化。
### 3.2.2. 旋转坐标系风轮模态
如果未使用多叶片坐标变换(MBC)来描述风轮模态,则以下逻辑适用于命名耦合风轮模态:
- 如果单个叶片模态贡献超过75%,则将耦合风轮模态命名为该叶片模态。换句话说,该模态被称为“叶片”模态,而不是“风轮”模态。
-  否则耦合风轮模态以其主要贡献者命名并通过附加字母A、B、C等来使其独一无二以防多个耦合风轮模态共享相同的未耦合叶片模态作为主要贡献者。
### 3.2.3. 非旋转坐标系风轮模态
**如果应用了 MBC 变换,则各个叶片模态将被转换成一组风轮模态**。对于三叶风轮通常存在集变模态collective、余弦循环模态cosine-cyclic和正弦循环sine-cyclic模态。所有叶片的 1 阶挥舞模态将被重命名为风轮 1 阶挥舞集变模态、风轮 1 阶挥舞正弦循环模态和风轮 1 阶挥舞余弦循环模态。如果叶片数量为偶数,则还会存在摆振模态。
在转换和重命名各个叶片模态之后,命名耦合风轮模态。旋转模态的识别遵循下表中的逻辑。
| Coupled mode name | 1st uncoupled mode | 2nd uncoupled mode | Phase angle ($\phi_{2}-\phi_{1})$) |
| ----------------- | ------------------ | ------------------ | ---------------------------------- |
| Forward whirl     | Sine cyclic        | Cosine cyclic      | > 0.0                              |
|                   | Cosine cyclic      | Sine cyclic        | < 0.0                              |
| Backward whirl    | Sine cyclic        | Cosine cyclic      | < 0.0                              |
|                   | Cosine cyclic      | Sine cyclic        | > 0.0                              |
如果一个耦合模态不符合颤动模态的标准,则该模态会被命名为其主要贡献者的名称。这与风轮在旋转参考系中的模态以及支撑结构模态的命名逻辑类似。
# 4. 连接不同工况下的耦合模态
**坎贝尔图显示了不同耦合位移模态相对于风轮转速的频率**以及以风轮频率P的倍数给出的最重要激励频率。 除了耦合模态的频率,坎贝尔图还显示了相应的阻尼比,其中包括结构阻尼和气动阻尼的影响。 这两个特征的计算方法如文章“Calculating Coupled Modes”中所述可用于识别需要进一步分析的关键运行点。
## 4.1. 连接过程  
给定一组在每个工作点耦合的模态,**创建最终的坎贝尔图的关键步骤是识别相邻工作点中相似的模态****这使得能够用线段连接这些相似的模态****从而给用户留下频率随风轮转速(或风速)连续变化的印象**。这种连接过程通常具有挑战性,**因为耦合模态在工作点之间会演变和改变其贡献**。
**通过比较在扩展模态保证准则MACXVacher, Jacquier, 和 Buchales, 2010下的复特征向量和频率并采用频率加权可以识别出两个相邻工作点中的相似耦合模态**。更具体地说,会为两个工作点中所有耦合模态组合计算频率加权 MACX 数值,形成一个评分矩阵,然后使用该矩阵通过 GaleShapley 算法Gale & Shapley, 1962连接这些模态。所有工作点中一系列相似的模态构成一个耦合模态序列它代表了最终坎贝尔图中的一条线。
为了确保最终坎贝尔图中的耦合模态序列主要涉及结构动力学,在第一个工作点执行一次仅包含结构状态的耦合模态计算。然后,将这些仅结构模态与如上所述的第一个工作点的耦合模态连接起来,这有效地排除了主要来自气动状态贡献的耦合模态。
![[images/Pasted image 20250625151451.png]]
图 1连接过程示意图展示了耦合模态在工作点处的连接方式。点代表耦合模态。彩色线条代表耦合模态级数。
接下来的连接过程如下:
1. 计算在第一个工作点的一组仅结构模态。这些模态也将构成模态序列的基础,代表最终的坎贝尔图中的线。
2. 将仅结构模态与在第一个工作点的耦合模态连接起来。需要注意的是,耦合模态的数量通常大于模态序列的数量,这意味着并非所有耦合模态都包含在模态序列中。
3. 将在当前点(第一个工作点)包含在模态序列中的耦合模态与下一个点(第二个工作点)的耦合模态连接起来。重复此过程直至到达最后一个工作点。
### 4.1.1. 耦合模态序列的命名与排除
一种耦合模态级数,仅根据第一个工作点处的结构-模态耦合贡献来命名(关于耦合模态命名的更多细节请参见此处)。耦合模态的贡献,因此其形状,在工作点范围的不同情况下可能会发生显著变化,因此仅凭名称无法确定模态的特性。
一种耦合模态级数,其中包含所有工作点处具有**实特征值**(因此没有振荡行为)的耦合模态,将被排除在最终的坎贝尔图之外。这是因为此类模态无法引起共振行为,**而坎贝尔图的主要目的是检测共振行为。**
如果所有工作点处的耦合模态频率超过用户定义的上限值,则该耦合模态级数也会被排除。
# 5. 与风轮中心轴对准风向  
图1所示即使遵循线性分析背景中的考虑因素在某些情况下仍然需要调用方位角依赖性。当计算中考虑倾角且塔架柔度强烈影响风轮姿态时这种情况会发生。图1提供了一个方位角独立的系统示意图表明无论风轮的方位角角度如何解都是相同的。然而当考虑倾角时如图1中间所示风轮上部和下部受到的载荷会发生变化。这会产生类似于在风轮平面上添加“虚拟风切变”的载荷不平衡。当塔架柔度强烈影响风轮姿态时情况会更加糟糕如图1所示。在这里可以看到轮毂姿态可能会倾斜得更大从而在风轮上产生更强的载荷不平衡。
![](images/e0baae06c8f1868c90cbef4730f5751d227a99bc3f1a1ded738eb0502ce1c059.jpg)
图1线性化计算中风轮轴向相对于迎风方向的示意图。左无倾角刚性风轮考虑倾角的刚性风轮考虑倾角的柔性风轮。
为了避免倾斜轴向导致的载荷不平衡Bladed 引入了一种校正措施以使风场与倾斜轴向对齐。该机制在图2中清晰地说明。可以观察到当风场与倾斜轴向对齐时风轮受到的载荷将与偏航角无关。这有效地消除了由于倾斜轴向引起的系统偏航角依赖性。 这种校正也可以应用于浮式风力发电机如图3所示。
![](images/401c313ff319bf4fd49c69e2882903bdb219b4d519026f6a5e05eed954997a36.jpg)
图2针对陆上风力发电机或固定基础海上风力发电机将风场对准倾斜的轴向。左方位角相关的系统方位角无关的系统。
![](images/cf4934de4feb7e041c7083a932a6b6869c37c1aac65f4e6b35b5209a76ea6651.jpg)
图3针对浮动式风力发电机将风场对准倾斜的轴向。左方位角相关的系统方位角无关的系统。
初始条件程序中确定风轮中心轴此时风轮未加速模态变形使得弹性载荷与外部载荷平衡。在初始条件程序中进行迭代计算并在每次迭代中调整风场使其与倾斜的风轮中心轴平行。一旦找到合适的条件风场方向就被固定在初始条件程序中最后确定的倾斜角度。随后系统使用固定的风场方向进行扰动用于计算Bladed中可用的任何线性化类型计算。此过程针对每个模拟的工作点进行。

View File

@ -0,0 +1,17 @@
{
"nodes":[
{"id":"c03f206d2e22c014","type":"text","text":"设置工况点","x":-200,"y":-280,"width":250,"height":60},
{"id":"9effe93fe812b3d5","type":"text","text":"风速范围 间隔点","x":160,"y":-280,"width":250,"height":60},
{"id":"82e0fa4b70baffed","type":"text","text":"每个工况点求稳态解","x":-200,"y":-140,"width":250,"height":60},
{"id":"d3aa69200118cea0","type":"text","text":"小扰动求A, B, C, D","x":-200,"y":0,"width":250,"height":60},
{"id":"f8e0af85235be889","type":"text","text":"A上做特征值、模态","x":-200,"y":140,"width":250,"height":60},
{"id":"5818e7212360b063","type":"text","text":"可选是否MBC转换","x":160,"y":-140,"width":250,"height":60}
],
"edges":[
{"id":"83d84c5b21257d2f","fromNode":"c03f206d2e22c014","fromSide":"right","toNode":"9effe93fe812b3d5","toSide":"left"},
{"id":"37a2d445314c2e41","fromNode":"c03f206d2e22c014","fromSide":"bottom","toNode":"82e0fa4b70baffed","toSide":"top"},
{"id":"b3b8ce2f8d88a52b","fromNode":"82e0fa4b70baffed","fromSide":"bottom","toNode":"d3aa69200118cea0","toSide":"top"},
{"id":"69ff8f3a58b056e7","fromNode":"d3aa69200118cea0","fromSide":"bottom","toNode":"f8e0af85235be889","toSide":"top"},
{"id":"3cd64f8e16aa900b","fromNode":"82e0fa4b70baffed","fromSide":"right","toNode":"5818e7212360b063","toSide":"left"}
]
}