15 KiB
epoch | modelKey | tags | |
---|---|---|---|
1754389966391 | gemini-2.5-pro|google |
|
user: CASEstab_theory_manual解释公式1.12到1.18d [Timestamp: 2025/08/05 18:32:46]
ai: 好的,我们来逐一解释CASEstab_theory_manual中从公式1.12到1.18d的含义。这些公式是建立风力机结构动力学模型的基础,描述了如何通过铰接的子结构(如塔架、机舱、叶片等)来表示整个系统的几何关系和运动。
核心概念:子结构运动的分解
为了理解这些公式,首先要明白其核心思想:将一个复杂结构(如风力机)拆分成多个子结构。任何一个子结构上任意一点的运动,都可以分解为基座的运动(平动+转动)和该点相对于基座的内部变形。
公式 1.12: 质点位置的紧凑形式
\mathbf{r}_{b}\left(t,\mathbf{q};x,y,z\right)=\mathbf{r}_{0,b}\left(t,\mathbf{q}\right)+\mathbf{R}_{0,b}\left(t,\mathbf{q}\right)\mathbf{r}_{1,b}\left(\mathbf{q}_{b};x,y,z\right) \tag{1.12}
这个公式是描述子结构运动的核心。它表示了子结构 b
上任意一个质点的位置矢量 $\mathbf{r}_{b}$。
\mathbf{r}_{b}
: 子结构b
上某个质点在全局惯性坐标系中的位置矢量。\mathbf{r}_{0,b}
: 子结构b
的基座在全局坐标系中的平动位移矢量。它描述了支撑子结构b
的所有其他子结构(例如,对于叶片来说,就是塔架和轮毂)的运动所导致的平移。\mathbf{R}_{0,b}
: 子结构b
的基座在全局坐标系中的旋转矩阵。它描述了支撑子结构b
的所有其他子结构的运动所导致的旋转。\mathbf{r}_{1,b}
: 该质点在子结构b
自身局部坐标系中的位置矢量。这个矢量描述了子结构b
的内部变形(例如,叶片的弯曲、扭转)。它只与子结构b
自身的自由度\mathbf{q}_{b}
有关。
简而言之,公式1.12的物理意义是:
质点的全局位置 = 基座的全局位置 + 经过基座旋转变换后的局部变形位置。
公式 1.13: 基座运动的递归定义
\mathbf{r}_{0,b}=\sum_{k=0}^{b-1}\mathbf{R}_{0,k}\mathbf{r}_{k}=\mathbf{r}_{0,b-1}+\mathbf{R}_{0,b-1}\mathbf{r}_{b-1} \quad \mathrm{and} \quad \mathbf{R}_{0,b}=\left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right)\mathbf{S}_{b}\mathbf{B}_{b}=\mathbf{R}_{0,b-1}\mathbf{R}_{b-1}\mathbf{S}_{b-1}^{T}\mathbf{S}_{b}\mathbf{B}_{b} \tag{1.13}
这个公式详细定义了公式1.12中的基座运动项 \mathbf{r}_{0,b}
和 $\mathbf{R}_{0,b}$。它们是通过一个从地面(子结构0)开始的运动链递归计算的。
\mathbf{r}_{0,b}
(基座平动): 子结构b
的基座位置,等于它前一个子结构b-1
的基座位置,再加上从b-1
基座到b
基座的矢量(经过b-1
基座的旋转变换)。这形成了一个从地面开始的矢量链。\mathbf{R}_{0,b}
(基座转动): 子结构b
的基座的累积旋转矩阵。它是从地面(子结构0)到子结构b-1
所有旋转矩阵的连乘积。其中\mathbf{O}_{l}
代表了第l
个子结构的总旋转,包括了其自身的变形、轴承转动等。
公式 1.14a 到 1.14d: 基座运动的时间导数(通用形式)
这些公式是基座位置和旋转矩阵对时间的一阶和二阶导数,即速度和加速度。它们在推导拉格朗日方程中的惯性力(如科里奥利力、离心力)时至关重要。
文档中提到,这些导数是基于一个关键假设:唯一的显式时间依赖项是轴承矩阵 $\mathbf{B}_{k}$,这通常代表风轮的预设转速。
\dot{\mathbf{r}}_{0,b}
(公式 1.14a 的实际含义) 和\ddot{\mathbf{r}}_{0,b}
(1.14c): 分别是基座的平动速度和加速度。它们是通过对公式1.13中的求和项进行微分得到的。\dot{\mathbf{R}}_{0,b}
(1.14b) 和\ddot{\mathbf{R}}_{0,b}
(1.14d): 分别是基座的角速度和角加速度相关的矩阵。它们是通过对公式1.13中的旋转矩阵连乘积进行微分得到的,形式非常复杂,因为应用了多次乘法和链式法则。
公式 1.15a 到 1.15d: 基座运动的时间导数(简化形式)
这些是公式1.14的简化版,适用于一个更常见且具体的情况:整个系统中只有一个带预设恒定转速 \Omega
的轴承(例如风轮机的主轴)。
- $\Omega$: 预设的恒定角速度。
- $\mathbf{N}_{k}$: 一个斜对称矩阵,代表了该旋转轴承的旋转轴方向。
- 公式 1.15b 和 1.15d: 将复杂的
\dot{\mathbf{B}}_k
和\ddot{\mathbf{B}}_k
替换为更简洁的\Omega \mathbf{N}_k
和\Omega^2 \mathbf{N}_k^2
形式,大大简化了角速度和角加速度矩阵的计算。 - 公式 1.15a 和 1.15c: 由于只有从子结构
k
开始的部件才有显式时间依赖性,求和的起始点也从0变成了k
。
公式 1.16a 到 1.16f: 后续推导中所需的乘积项
这些公式定义了在计算惯性力时会遇到的一些常用矢量和矩阵乘积。文档指出,在恒定转速的简化下,这些乘积项的结果是不依赖于时间的标量、矢量或矩阵,只依赖于广义坐标 $\mathbf{q}$。
- 注意: 文档中公式 1.16a 和 1.16d 是空白的。它们可能代表
\dot{\mathbf{r}}_{0,b}^T \ddot{\mathbf{r}}_{0,b}
等项,但在最终的文本中被省略了。 - 公式 1.16b, 1.16c, 1.16e, 1.16f: 这些是基座平动/转动矢量与其时间导数之间的各种内积和矩阵乘积。例如,
\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b}
(1.16c) 表示在子结构b
局部坐标系下描述的基座角速度。
公式 1.17: 证明时间无关性
\mathbf{R}_{0,k}^{T}\mathbf{R}_{0,b} = \dots = \mathbf{R}_{k}\mathbf{S}_{k}^{T}\left(\prod_{l=k+1}^{b-1}\mathbf{O}_{l}\right)\mathbf{S}_{b}\mathbf{B}_{b} \tag{1.17}
这个公式通过展开矩阵乘积 $\mathbf{R}{0,k}^{T}\mathbf{R}{0,b}$,证明了为什么公式1.16中的项是时间无关的。关键在于,\mathbf{R}_{0,k}
中与时间相关的轴承矩阵 \mathbf{B}_k(t)
与其转置 \mathbf{B}_k^T(t)
在乘积中被消除了(因为 $\mathbf{B}_k^T \mathbf{B}_k = \mathbf{I}$),使得最终结果不再显式地依赖于时间 t
。
公式 1.18a 到 1.18d: 自由度(DOF)导数
\mathbf{r}_{0,b,q_i} = \dots \tag{1.18a}
\mathbf{R}_{0,b,q_i} = \dots \tag{1.18b}
\mathbf{r}_{0,b,q_i,q_j} = \dots \tag{1.18c}
\mathbf{R}_{0,b,q_i,q_j} = \dots \tag{1.18d}
这些公式代表基座位置矢量 \mathbf{r}_{0,b}
和旋转矩阵 \mathbf{R}_{0,b}
对广义坐标(自由度)q_i
和 q_j
的一阶和二阶偏导数。
- 物理意义: 它们描述了当系统中某一个自由度发生微小变化时,下游的子结构基座位置和姿态会如何变化。
- 用途: 这些导数是计算拉格朗日方程中各个矩阵的核心要素,例如:
- 质量矩阵
m_{ij}
(需要一阶导数) - 非线性科里奥利/陀螺项
h_{ijk}
(需要一阶和二阶导数) - 离心刚度矩阵
k_{c,ij}
(需要一阶和二阶导数)
- 质量矩阵
文档中将这些公式留白了,因为它们的具体形式依赖于前面复杂的递归定义,但概念上它们是通过对公式1.13应用链式法则求导得到的。 [Timestamp: 2025/08/05 18:34:00]
user: CASEstab_theory_manual详细展示1.14的推导过程 [Timestamp: 2025/08/06 08:07:48]
ai: 好的,我们来详细推导CASEstab_theory_manual中的公式组1.14。
这些公式是子结构基座运动(平动和转动)对时间的一阶和二阶导数,即速度和加速度。推导的核心是对公式1.13进行求导,并始终记住一个关键前提:只有轴承矩阵 \mathbf{B}_k
是时间的显式函数。所有其他矩阵(如 \mathbf{S}_k
, \mathbf{r}_k
, $\mathbf{R}_k$)仅依赖于广义坐标 $\mathbf{q}$,它们对时间的导数是通过链式法则 \frac{d}{dt}(\cdot) = \sum_i \frac{\partial(\cdot)}{\partial q_i} \dot{q}_i
得到的,不包含显式时间导数。
准备工作:回顾基础公式
-
基座平动位置 (1.13a):
\mathbf{r}_{0,b} = \sum_{k=0}^{b-1} \mathbf{R}_{0,k} \mathbf{r}_k
-
基座旋转矩阵 (1.13b):
\mathbf{R}_{0,b} = \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right)\mathbf{S}_{b}\mathbf{B}_{b}
其中,单个子结构的旋转算子
\mathbf{O}_{l}
定义为:\mathbf{O}_{l}=\mathbf{S}_{l}\mathbf{B}_{l}\mathbf{R}_{l}\mathbf{S}_{l}^{T}
1. 基座平动速度 \dot{\mathbf{r}}_{0,b}
的推导
我们对 \mathbf{r}_{0,b}
的表达式求时间导数。
\dot{\mathbf{r}}_{0,b} = \frac{d}{dt} \left( \sum_{k=0}^{b-1} \mathbf{R}_{0,k} \mathbf{r}_k \right)
将求导算子放入求和号内,并对乘积 \mathbf{R}_{0,k} \mathbf{r}_k
应用乘法法则:
\dot{\mathbf{r}}_{0,b} = \sum_{k=0}^{b-1} \left( \frac{d}{dt}(\mathbf{R}_{0,k}) \mathbf{r}_k + \mathbf{R}_{0,k} \frac{d}{dt}(\mathbf{r}_k) \right) = \sum_{k=0}^{b-1} (\dot{\mathbf{R}}_{0,k} \mathbf{r}_k + \mathbf{R}_{0,k} \dot{\mathbf{r}}_k)
根据手册描述,\mathbf{r}_k
是子结构 k
坐标系中的局部位置矢量,它不显式依赖于时间,因此 $\dot{\mathbf{r}}_k = \mathbf{0}$。所以上式简化为:
\dot{\mathbf{r}}_{0,b} = \sum_{k=0}^{b-1} \dot{\mathbf{R}}_{0,k} \mathbf{r}_k
注意: 手册中的公式 1.14a 实际上是 \mathbf{r}_{0,b}
的重复定义,这是一个笔误。上面推导出的表达式才是基座的平动速度,它将在推导1.14c时用到。
2. 基座旋转速度矩阵 \dot{\mathbf{R}}_{0,b}
的推导 (公式 1.14b)
我们对 \mathbf{R}_{0,b}
的表达式求时间导数。这是一个复杂的矩阵连乘积求导。
\mathbf{R}_{0,b} = \mathbf{O}_0 \mathbf{O}_1 \cdots \mathbf{O}_{b-1} \mathbf{S}_b \mathbf{B}_b
应用乘法法则,导数会作用在每一个含时项上。含时项是所有的 \mathbf{O}_l
(因为它内部含有 \mathbf{B}_l
) 和最后的 $\mathbf{B}_b$。
首先,求 $\dot{\mathbf{O}}_l$:
\dot{\mathbf{O}}_l = \frac{d}{dt}(\mathbf{S}_{l}\mathbf{B}_{l}\mathbf{R}_{l}\mathbf{S}_{l}^{T}) = \mathbf{S}_{l}\dot{\mathbf{B}}_{l}\mathbf{R}_{l}\mathbf{S}_{l}^{T} \quad (\text{因为只有 } \mathbf{B}_l \text{ 显式依赖时间})
现在对整个 \mathbf{R}_{0,b}
求导:
\dot{\mathbf{R}}_{0,b} = \frac{d}{dt} \left[ \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\mathbf{B}_{b} \right]
应用乘法法则,我们得到两部分:
\dot{\mathbf{R}}_{0,b} = \left[ \frac{d}{dt} \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \right] \mathbf{S}_{b}\mathbf{B}_{b} + \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\dot{\mathbf{B}}_{b}
对连乘项求导,得到一个求和:
\frac{d}{dt} \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) = \sum_{k=0}^{b-1} \left( \left(\prod_{l=0}^{k-1}\mathbf{O}_{l}\right) \dot{\mathbf{O}}_k \left(\prod_{l=k+1}^{b-1}\mathbf{O}_{l}\right) \right)
将 \dot{\mathbf{O}}_k
的表达式代入,并将整个结果代回 \dot{\mathbf{R}}_{0,b}
的表达式中:
\dot{\mathbf{R}}_{0,b} = \sum_{k=0}^{b-1} \left[ \left(\prod_{l=0}^{k-1}\mathbf{O}_{l}\right) (\mathbf{S}_{k}\dot{\mathbf{B}}_{k}\mathbf{R}_{k}\mathbf{S}_{k}^{T}) \left(\prod_{l=k+1}^{b-1}\mathbf{O}_{l}\right) \right] \mathbf{S}_{b}\mathbf{B}_{b} + \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\dot{\mathbf{B}}_{b}
这与手册中的公式 1.14b 完全一致。
3. 基座平动加速度 \ddot{\mathbf{r}}_{0,b}
的推导 (公式 1.14c)
我们对基座平动速度 \dot{\mathbf{r}}_{0,b}
的表达式再次求时间导数:
\ddot{\mathbf{r}}_{0,b} = \frac{d}{dt} \left( \sum_{k=0}^{b-1} \dot{\mathbf{R}}_{0,k} \mathbf{r}_k \right)
同样,应用求和与乘法法则:
\ddot{\mathbf{r}}_{0,b} = \sum_{k=0}^{b-1} \left( \frac{d}{dt}(\dot{\mathbf{R}}_{0,k}) \mathbf{r}_k + \dot{\mathbf{R}}_{0,k} \frac{d}{dt}(\mathbf{r}_k) \right) = \sum_{k=0}^{b-1} (\ddot{\mathbf{R}}_{0,k} \mathbf{r}_k + \dot{\mathbf{R}}_{0,k} \dot{\mathbf{r}}_k)
因为 $\dot{\mathbf{r}}_k = \mathbf{0}$,我们得到:
\ddot{\mathbf{r}}_{0,b} = \sum_{k=0}^{b-1} \ddot{\mathbf{R}}_{0,k} \mathbf{r}_k
这与手册中的公式 1.14c 完全一致。
4. 基座旋转加速度矩阵 \ddot{\mathbf{R}}_{0,b}
的推导 (公式 1.14d)
这是最复杂的一步,需要对公式1.14b 的两大部分分别求导。为方便起见,我们设:
\dot{\mathbf{R}}_{0,b} = \text{Part A} + \text{Part B}
其中:
\text{Part A} = \sum_{k=0}^{b-1} \left( \prod_{l=0}^{k-1} \mathbf{O}_l \right) (\mathbf{S}_{k}\dot{\mathbf{B}}_{k}\mathbf{R}_{k}\mathbf{S}_{k}^{T}) \left( \prod_{l=k+1}^{b-1} \mathbf{O}_l \right) \mathbf{S}_{b}\mathbf{B}_{b}
\text{Part B} = \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\dot{\mathbf{B}}_{b}
那么 $\ddot{\mathbf{R}}_{0,b} = \frac{d}{dt}(\text{Part A}) + \frac{d}{dt}(\text{Part B})$。
对 Part A 求导: 对求和号内的每一项应用乘法法则。每一项可以看作四个部分的乘积,其中三个部分(两个连乘积和 $\mathbf{S}_b\mathbf{B}_b$)含有时间变量。求导后会产生三项,分别对应导数作用在这三个部分上:
- 导数作用于第一个连乘积 $\left(\prod_{l=0}^{k-1} \mathbf{O}_l\right)$,得到手册中1.14d的第一项。
- 导数作用于第二个连乘积 $\left(\prod_{l=k+1}^{b-1} \mathbf{O}_l\right)$,得到手册中1.14d的第二项。
- 导数作用于中间的 $(\mathbf{S}{k}\dot{\mathbf{B}}{k}\mathbf{R}{k}\mathbf{S}{k}^{T})$,得到 $\mathbf{S}{k}\ddot{\mathbf{B}}{k}\mathbf{R}{k}\mathbf{S}{k}^{T}$,这构成了手册中1.14d的第三项。
- 导数作用于最后的 $\mathbf{S}{b}\mathbf{B}{b}$,得到 $\mathbf{S}{b}\dot{\mathbf{B}}{b}$。这一项是:
\sum_{k=0}^{b-1} \left( \prod_{l=0}^{k-1} \mathbf{O}_l \right) (\mathbf{S}_{k}\dot{\mathbf{B}}_{k}\mathbf{R}_{k}\mathbf{S}_{k}^{T}) \left( \prod_{l=k+1}^{b-1} \mathbf{O}_l \right) \mathbf{S}_{b}\dot{\mathbf{B}}_{b}
对 Part B 求导:
\frac{d}{dt}(\text{Part B}) = \frac{d}{dt} \left[ \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\dot{\mathbf{B}}_{b} \right]
应用乘法法则:
\frac{d}{dt}(\text{Part B}) = \left[ \frac{d}{dt}\left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \right] \mathbf{S}_{b}\dot{\mathbf{B}}_{b} + \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\ddot{\mathbf{B}}_{b}
将连乘积的导数代入:
\frac{d}{dt}(\text{Part B}) = \left[ \sum_{k=0}^{b-1} \left( \prod_{l=0}^{k-1} \mathbf{O}_l \right) (\mathbf{S}_{k}\dot{\mathbf{B}}_{k}\mathbf{R}_{k}\mathbf{S}_{k}^{T}) \left( \prod_{l=k+1}^{b-1} \mathbf{O}_l \right) \right] \mathbf{S}_{b}\dot{\mathbf{B}}_{b} + \left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right) \mathbf{S}_{b}\ddot{\mathbf{B}}_{b}
观察可以发现:
\frac{d}{dt}(\text{Part B})
的第一部分与上面\frac{d}{dt}(\text{Part A})
的第4部分完全相同。这两项相加,就得到了手册中1.14d的第四项(带有系数2)。\frac{d}{dt}(\text{Part B})
的第二部分是手册中1.14d的第五项(最后一项)。
将所有部分组合起来,就完整地得到了公式1.14d的表达式。这个推导过程虽然繁琐,但完全是基于微积分的乘法法则和链式法则的系统应用。 [Timestamp: 2025/08/06 08:09:06]