31 KiB
epoch | modelKey | tags | |
---|---|---|---|
1754442528062 | gemini-2.5-pro|google |
|
user: CASEstab_theory_manual详细展示1.15的推导过程 [Timestamp: 2025/08/06 09:08:48]
ai: 好的,我们来详细展示一下 CASEstab_theory_manual 中公式 1.15 的推导过程。
这个推导是基于一个特定的简化假设:在整个结构中,只有一个子结构(编号为 $k$)的轴承具有显式的时间依赖性,即以恒定角速度 \Omega
旋转。所有其他轴承要么是固定的,要么其转角是自由度(DOF),因此它们不具有显式的时间依赖性。
前提条件
- 单一旋转轴承: 只有子结构
k
的轴承矩阵\mathbf{B}_k
是时间的显式函数。对于任何其他子结构 $m \neq k$,其轴承矩阵\mathbf{B}_m
是常数,因此其时间导数为零:\dot{\mathbf{B}}_m = \mathbf{0}, \quad \ddot{\mathbf{B}}_m = \mathbf{0} \quad \text{for } m \neq k
- 恒定角速度: 子结构
k
的轴承以恒定角速度\Omega
绕由单位向量定义的轴旋转。根据附录 E.2 中的公式 (E.5) 和 (E.6),旋转矩阵\mathbf{B}_k
的一阶和二阶时间导数可以表示为:\dot{\mathbf{B}}_k = \Omega \mathbf{B}_k \mathbf{N}_k
\ddot{\mathbf{B}}_k = \Omega^2 \mathbf{B}_k \mathbf{N}_k^2
其中\mathbf{N}_k
是由轴承旋转轴的单位向量定义的斜对称矩阵。
推导过程
我们将从公式 (1.14) 中的通用时间导数表达式出发,应用上述前提条件来推导公式 (1.15)。
推导 (1.15b): $\dot{\mathbf{R}}_{0,b}$
我们从 \mathbf{R}_{0,b}
的通用时间导数表达式 (1.14b) 开始。为了清晰起见,我们将求和索引改为 $m$:
\dot{\mathbf{R}}_{0,b} = \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) S_m \dot{\mathbf{B}}_m \mathbf{R}_m \mathbf{S}_m^T \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) S_b \mathbf{B}_b + \left( \prod_{l=0}^{b-1} \mathbf{O}_l \right) S_b \dot{\mathbf{B}}_b
根据前提条件,只有当 m=k
或 b=k
时,\dot{\mathbf{B}}
项才不为零。
-
情况 1: $b < k$ 在这种情况下,求和中的所有
m
和索引b
都小于 $k$。因此,所有的\dot{\mathbf{B}}_m
和\dot{\mathbf{B}}_b
都为零。所以:\dot{\mathbf{R}}_{0,b} = \mathbf{0} \quad \text{for } b < k
-
情况 2: $b \ge k$ 在这种情况下,求和中只有当
m=k
时项才不为零。第二个加项中的\dot{\mathbf{B}}_b
仅在b=k
时不为零。- 如果 $b=k$,表达式简化为 $\dot{\mathbf{R}}{0,k} = (\prod{l=0}^{k-1} \mathbf{O}_l) S_k \dot{\mathbf{B}}_k$。
- 如果 $b>k$,表达式简化为 $\dot{\mathbf{R}}{0,b} = (\prod{l=0}^{k-1} \mathbf{O}_l) S_k \dot{\mathbf{B}}_k \mathbf{R}_k \mathbf{S}k^T (\prod{l=k+1}^{b-1} \mathbf{O}_l) S_b \mathbf{B}_b$。
这两个子情况可以合并。将
\dot{\mathbf{B}}_k = \Omega \mathbf{B}_k \mathbf{N}_k
代入,得到 (1.15b) 的第一部分:
\dot{\mathbf{R}}_{0,b} = \Omega \left( \prod_{l=0}^{k-1} \mathbf{O}_l \right) S_k \mathbf{B}_k \mathbf{N}_k \mathbf{R}_k \mathbf{S}_k^T \left( \prod_{l=k+1}^{b-1} \mathbf{O}_l \right) S_b \mathbf{B}_b
现在我们来证明其等价于第二部分 $\Omega \mathbf{R}{0,k} \mathbf{N}k \mathbf{R}{0,k}^T \mathbf{R}{0,b}$。 利用 (1.13) 中的定义:
\mathbf{R}_{0,k} = (\prod_{l=0}^{k-1}\mathbf{O}_{l})\mathbf{S}_{k}\mathbf{B}_{k}
\mathbf{R}_{0,b} = (\prod_{l=0}^{b-1}\mathbf{O}_{l})\mathbf{S}_{b}\mathbf{B}_{b} = \mathbf{R}_{0,k} \mathbf{R}_k \mathbf{S}_k^T \mathbf{S}_k \mathbf{B}_k (\prod_{l=k+1}^{b-1}\mathbf{O}_{l})\mathbf{S}_{b}\mathbf{B}_{b}
让我们从目标表达式的第二部分开始:\begin{aligned} \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} &= \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \left( \mathbf{R}_{0,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 \right) \\ &= \Omega \mathbf{R}_{0,k} \mathbf{N}_k (\mathbf{R}_{0,k}^T \mathbf{R}_{0,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 \\ &= \Omega \mathbf{R}_{0,k} \mathbf{N}_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 \\ &= \Omega \left( \left( \prod_{l=0}^{k-1} \mathbf{O}_l \right) \mathbf{S}_k \mathbf{B}_k \right) \mathbf{N}_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 \end{aligned}
这与我们从 (1.14b) 推导出的结果完全一致。
推导 (1.15a): $\dot{\mathbf{r}}_{0,b}$
我们从通用表达式 (1.14a) 开始:
\dot{\mathbf{r}}_{0,b} = \sum_{m=0}^{b-1} \dot{\mathbf{R}}_{0,m} \mathbf{r}_m
从上面的推导我们知道,当 m < k
时,$\dot{\mathbf{R}}_{0,m} = \mathbf{0}$。因此,求和的起始索引可以从 0 变为 $k$。
\dot{\mathbf{r}}_{0,b} = \sum_{m=k}^{b-1} \dot{\mathbf{R}}_{0,m} \mathbf{r}_m
将求和索引 m
替换为 $l$,即得到 (1.15a)。
推导 (1.15d): $\ddot{\mathbf{R}}_{0,b}$
我们对 (1.15b) 的第二种形式进行时间求导:
\dot{\mathbf{R}}_{0,b} = \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
由于 \Omega
和 \mathbf{N}_k
是常数,我们使用乘法法则求导:
\ddot{\mathbf{R}}_{0,b} = \Omega \left( \dot{\mathbf{R}}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k \dot{\mathbf{R}}_{0,k}^T \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \dot{\mathbf{R}}_{0,b} \right)
代入我们已知的导数:
\dot{\mathbf{R}}_{0,k} = \Omega \mathbf{R}_{0,k} \mathbf{N}_k
\dot{\mathbf{R}}_{0,k}^T = (\Omega \mathbf{R}_{0,k} \mathbf{N}_k)^T = \Omega \mathbf{N}_k^T \mathbf{R}_{0,k}^T = -\Omega \mathbf{N}_k \mathbf{R}_{0,k}^T
\dot{\mathbf{R}}_{0,b} = \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
代入后得到:
\begin{aligned}
\ddot{\mathbf{R}}_{0,b} &= \Omega \left( (\Omega \mathbf{R}_{0,k} \mathbf{N}_k) \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k (-\Omega \mathbf{N}_k \mathbf{R}_{0,k}^T) \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T (\Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}) \right) \\
&= \Omega^2 \left( \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} - \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k (\mathbf{R}_{0,k}^T \mathbf{R}_{0,k}) \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right) \\
&= \Omega^2 \left( \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} - \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} + \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right) \\
&= \Omega^2 \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
\end{aligned}
这与 (1.15d) 的第二部分相符。第一部分可以通过对 (1.15b) 的第一部分求导得到,注意到其中只有 \mathbf{B}_k
是时间相关的,并代入 \dot{\mathbf{B}}_k = \Omega \mathbf{B}_k \mathbf{N}_k
即可。
推导 (1.15c): $\ddot{\mathbf{r}}_{0,b}$
我们对 (1.15a) 进行时间求导:
\dot{\mathbf{r}}_{0,b} = \sum_{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l
由于 \mathbf{r}_l
是局部位置矢量,不随时间变化,所以:
\ddot{\mathbf{r}}_{0,b} = \frac{d}{dt} \left( \sum_{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l \right) = \sum_{l=k}^{b-1} \ddot{\mathbf{R}}_{0,l} \mathbf{r}_l
这与 (1.15c) 完全一致。
至此,公式组 (1.15) 的所有部分都已从其通用形式 (1.14) 在单一恒速旋转轴承的假设下推导出来。 [Timestamp: 2025/08/06 09:10:17]
user: CASEstab_theory_manual补充完整1.16 [Timestamp: 2025/08/06 09:18:36]
ai: 好的,我们来补充和推导 CASEstab_theory_manual 中公式组 1.16 的缺失部分。
该公式组是在“只有一个轴承(位于子结构 $k$)以恒定角速度 \Omega
旋转”的假设下推导的。我们将使用公式组 (1.15) 的结果来完成推导。
补充推导 (1.16a) 和 (1.16d)
1. 推导 (1.16a): $\mathbf{r}{0,b}^T \dot{\mathbf{r}}{0,b}$
我们从 \mathbf{r}_{0,b}
和 \dot{\mathbf{r}}_{0,b}
的定义出发:
- 根据 (1.13):
\mathbf{r}_{0,b} = \sum_{m=0}^{b-1}\mathbf{R}_{0,m}\mathbf{r}_{m}
- 根据 (1.15a):
\dot{\mathbf{r}}_{0,b} = \sum_{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l
将它们相乘:
\mathbf{r}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \left( \sum_{m=0}^{b-1}\mathbf{r}_{m}^T\mathbf{R}_{0,m}^T \right) \left( \sum_{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l \right)
现在,代入 (1.15b) 中 \dot{\mathbf{R}}_{0,l}
的表达式 $\dot{\mathbf{R}}{0,l} = \Omega \mathbf{R}{0,k} \mathbf{N}k \mathbf{R}{0,k}^T \mathbf{R}_{0,l}$:
\mathbf{r}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \left( \sum_{m=0}^{b-1}\mathbf{r}_{m}^T\mathbf{R}_{0,m}^T \right) \left( \sum_{l=k}^{b-1} (\Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,l}) \mathbf{r}_l \right)
我们可以将与求和索引 l
无关的项提取出来:
\mathbf{r}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \left( \sum_{m=0}^{b-1}\mathbf{r}_{m}^T\mathbf{R}_{0,m}^T \right) \left( \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \right) \left( \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l \right)
我们识别出其中的求和项:
- 第一个求和项就是 $\mathbf{r}_{0,b}^T$。
- 第二个求和项可以从
\mathbf{r}_{0,b}
的定义中得到:\mathbf{r}_{0,b} = \sum_{l=0}^{b-1}\mathbf{R}_{0,l}\mathbf{r}_{l} = \sum_{l=0}^{k-1}\mathbf{R}_{0,l}\mathbf{r}_{l} + \sum_{l=k}^{b-1}\mathbf{R}_{0,l}\mathbf{r}_{l} = \mathbf{r}_{0,k} + \sum_{l=k}^{b-1}\mathbf{R}_{0,l}\mathbf{r}_{l}
因此,$\sum_{l=k}^{b-1} \mathbf{R}{0,l} \mathbf{r}l = \mathbf{r}{0,b} - \mathbf{r}{0,k}$。
将这些代回表达式,得到最终结果:
\mathbf{r}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \, \mathbf{r}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
2. 推导 (1.16d): $\mathbf{r}{0,b}^T \ddot{\mathbf{r}}{0,b}$
这个推导过程与 (1.16a) 非常相似,只是用二阶导数代替一阶导数。
我们从 \mathbf{r}_{0,b}
和 \ddot{\mathbf{r}}_{0,b}
的定义出发:
- 根据 (1.13):
\mathbf{r}_{0,b} = \sum_{m=0}^{b-1}\mathbf{R}_{0,m}\mathbf{r}_{m}
- 根据 (1.15c):
\ddot{\mathbf{r}}_{0,b} = \sum_{l=k}^{b-1} \ddot{\mathbf{R}}_{0,l} \mathbf{r}_l
将它们相乘,并代入 (1.15d) 中 \ddot{\mathbf{R}}_{0,l}
的表达式 $\ddot{\mathbf{R}}{0,l} = \Omega^2 \mathbf{R}{0,k} \mathbf{N}k^2 \mathbf{R}{0,k}^T \mathbf{R}_{0,l}$:
\mathbf{r}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \left( \sum_{m=0}^{b-1}\mathbf{r}_{m}^T\mathbf{R}_{0,m}^T \right) \left( \sum_{l=k}^{b-1} (\Omega^2 \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,l}) \mathbf{r}_l \right)
同样,提取公共项并识别求和部分:
\mathbf{r}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \left( \sum_{m=0}^{b-1}\mathbf{r}_{m}^T\mathbf{R}_{0,m}^T \right) \left( \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \right) \left( \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l \right)
\mathbf{r}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \, \mathbf{r}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
完整的公式组 (1.16)
将推导出的结果填入,得到完整的公式组 (1.16) 如下:
\mathbf{r}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \, \mathbf{r}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k}) \tag{1.16a}
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k}) \tag{1.16b}
\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b} = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \tag{1.16c}
\mathbf{r}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \, \mathbf{r}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k}) \tag{1.16d}
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k}) \tag{1.16e}
\mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b} = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \tag{1.16f}
[Timestamp: 2025/08/06 09:19:31]
user: CASEstab_theory_manual详细展示1.16b, 1.16c, 1.16e, 1.16f的推导过程 [Timestamp: 2025/08/06 09:22:52]
ai: 好的,我们来详细展示 CASEstab_theory_manual 中公式组 1.16b, 1.16c, 1.16e, 和 1.16f 的推导过程。
这些推导都基于一个核心前提:结构中只有一个子结构(编号为 $k$)的轴承以恒定的角速度 \Omega
旋转。我们将频繁使用公式组 (1.15) 的结果。
推导 (1.16b): \mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b}
我们要推导的表达式是:
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
推导步骤:
-
代入 $\dot{\mathbf{r}}_{0,b}$: 我们从公式 (1.15a) 开始,即 $\dot{\mathbf{r}}{0,b} = \sum{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l$。将其代入目标表达式:
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \mathbf{R}_{0,b}^T \left( \sum_{l=k}^{b-1} \dot{\mathbf{R}}_{0,l} \mathbf{r}_l \right)
-
代入 $\dot{\mathbf{R}}_{0,l}$: 接下来,使用公式 (1.15b) 的第二种形式,并将其应用于索引 $l$:$\dot{\mathbf{R}}{0,l} = \Omega \mathbf{R}{0,k} \mathbf{N}k \mathbf{R}{0,k}^T \mathbf{R}_{0,l}$。代入上式:
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \mathbf{R}_{0,b}^T \sum_{l=k}^{b-1} \left( \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,l} \right) \mathbf{r}_l
-
提取公共项: 由于
\Omega
,\mathbf{R}_{0,k}
,\mathbf{N}_k
, 和\mathbf{R}_{0,k}^T
不依赖于求和索引 $l$,我们可以将它们从求和号中提取出来:\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \left( \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l \right)
这与公式 (1.16b) 的第一部分完全匹配。
-
简化求和项: 为了得到公式的第二部分,我们需要简化求和项 $\sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l$。我们利用公式 (1.13) 中
\mathbf{r}_{0,b}
的定义:\mathbf{r}_{0,b} = \sum_{l=0}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \sum_{l=0}^{k-1} \mathbf{R}_{0,l} \mathbf{r}_l + \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l
其中,第一项
\sum_{l=0}^{k-1} \mathbf{R}_{0,l} \mathbf{r}_l
正是\mathbf{r}_{0,k}
的定义。因此:\mathbf{r}_{0,b} = \mathbf{r}_{0,k} + \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l
移项可得:
\sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \mathbf{r}_{0,b} - \mathbf{r}_{0,k}
-
代回并整理: 将这个简化的求和项代回到第3步的结果中:
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
利用矩阵转置的性质 $(AB)^T = B^T A^T$,我们有 $(\mathbf{R}{0,k}^T \mathbf{R}{0,b})^T = \mathbf{R}{0,b}^T (\mathbf{R}{0,k}^T)^T = \mathbf{R}{0,b}^T \mathbf{R}{0,k}$。将此关系代入上式,即可得到公式 (1.16b) 的第二部分:
\mathbf{R}_{0,b}^T \dot{\mathbf{r}}_{0,b} = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
推导 (1.16c): \mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b}
我们要推导的表达式是:
\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b} = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
推导步骤:
-
直接代入 $\dot{\mathbf{R}}_{0,b}$: 我们使用公式 (1.15b) 的第二种形式:$\dot{\mathbf{R}}{0,b} = \Omega \mathbf{R}{0,k} \mathbf{N}k \mathbf{R}{0,k}^T \mathbf{R}_{0,b}$。将其直接代入目标表达式:
\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b} = \mathbf{R}_{0,b}^T \left( \Omega \mathbf{R}_{0,k} \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)
-
重新组合: 将常数
\Omega
提取出来,并重新组合括号:\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b} = \Omega \left( \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \right) \mathbf{N}_k \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)
-
使用转置关系: 再次利用转置关系 $\mathbf{R}{0,b}^T \mathbf{R}{0,k} = (\mathbf{R}{0,k}^T \mathbf{R}{0,b})^T$。代入上式即可得到最终结果:
\mathbf{R}_{0,b}^T \dot{\mathbf{R}}_{0,b} = \Omega \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
注意:这里的最后一个
\mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
也可以写成括号形式,但为了与手册保持一致,我们写成手册中的形式。
推导 (1.16e): \mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b}
此推导与 (1.16b) 的过程完全平行,只是将一阶时间导数换为二阶。 我们要推导的表达式是:
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
推导步骤:
-
代入 $\ddot{\mathbf{r}}_{0,b}$: 从公式 (1.15c) 开始:$\ddot{\mathbf{r}}{0,b} = \sum{l=k}^{b-1} \ddot{\mathbf{R}}_{0,l} \mathbf{r}_l$。
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \mathbf{R}_{0,b}^T \left( \sum_{l=k}^{b-1} \ddot{\mathbf{R}}_{0,l} \mathbf{r}_l \right)
-
代入 $\ddot{\mathbf{R}}_{0,l}$: 使用公式 (1.15d) 的第二种形式,并应用于索引 $l$:$\ddot{\mathbf{R}}{0,l} = \Omega^2 \mathbf{R}{0,k} \mathbf{N}k^2 \mathbf{R}{0,k}^T \mathbf{R}_{0,l}$。
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \mathbf{R}_{0,b}^T \sum_{l=k}^{b-1} \left( \Omega^2 \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,l} \right) \mathbf{r}_l
-
提取公共项:
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \left( \sum_{l=k}^{b-1} \mathbf{R}_{0,l} \mathbf{r}_l \right)
这与公式 (1.16e) 的第一部分匹配。
-
简化求和项并代回: 使用与 (1.16b) 推导中完全相同的简化:$\sum_{l=k}^{b-1} \mathbf{R}{0,l} \mathbf{r}l = \mathbf{r}{0,b} - \mathbf{r}{0,k}$。代入并使用转置关系 $\mathbf{R}{0,b}^T \mathbf{R}{0,k} = (\mathbf{R}{0,k}^T \mathbf{R}{0,b})^T$,得到第二部分:
\mathbf{R}_{0,b}^T \ddot{\mathbf{r}}_{0,b} = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T (\mathbf{r}_{0,b} - \mathbf{r}_{0,k})
推导 (1.16f): \mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b}
此推导与 (1.16c) 的过程完全平行。 我们要推导的表达式是:
\mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b} = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
推导步骤:
-
直接代入 $\ddot{\mathbf{R}}_{0,b}$: 使用公式 (1.15d) 的第二种形式:$\ddot{\mathbf{R}}{0,b} = \Omega^2 \mathbf{R}{0,k} \mathbf{N}k^2 \mathbf{R}{0,k}^T \mathbf{R}_{0,b}$。
\mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b} = \mathbf{R}_{0,b}^T \left( \Omega^2 \mathbf{R}_{0,k} \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)
-
重新组合并使用转置关系:
\mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b} = \Omega^2 \left( \mathbf{R}_{0,b}^T \mathbf{R}_{0,k} \right) \mathbf{N}_k^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)
\mathbf{R}_{0,b}^T \ddot{\mathbf{R}}_{0,b} = \Omega^2 \left( \mathbf{R}_{0,k}^T \mathbf{R}_{0,b} \right)^T \mathbf{N}_k^2 \mathbf{R}_{0,k}^T \mathbf{R}_{0,b}
推导完成。 [Timestamp: 2025/08/06 09:24:20]
user: CASEstab_theory_manual[C详细推导补充1.18 [Timestamp: 2025/08/08 09:45:29]
ai: 好的,我们来详细推导并补充完整 CASEstab_theory_manual 中关于自由度(DOF)导数的公式组 (1.18)。
这些导数是计算质量矩阵、陀螺矩阵和离心力所必需的,它们描述了子结构基座的位置向量 \mathbf{r}_{0,b}
和姿态矩阵 \mathbf{R}_{0,b}
如何随各个广义坐标(自由度)q_i
的变化而变化。
基础定义
我们从公式 (1.13) 给出的定义开始:
\mathbf{r}_{0,b}=\sum_{k=0}^{b-1}\mathbf{R}_{0,k}\mathbf{r}_{k}
\mathbf{R}_{0,b}=\left(\prod_{l=0}^{b-1}\mathbf{O}_{l}\right)\mathbf{S}_{b}\mathbf{B}_{b}
其中 $\mathbf{O}{l}=\mathbf{S}{l}\mathbf{B}{l}\mathbf{R}{l}\mathbf{S}_{l}^{T}$。
需要注意的是:
\mathbf{S}_l
是常数矩阵,其对任何自由度的导数都为零。\mathbf{r}_k
,\mathbf{B}_k
, 和\mathbf{R}_k
仅依赖于其所属子结构k
的自由度。因此,\frac{\partial \mathbf{r}_k}{\partial q_i}
仅当q_i
是子结构k
的自由度时才不为零。
推导 (1.18a): \mathbf{r}_{0,b,q_i}
(一阶位置导数)
这是对 \mathbf{r}_{0,b}
求关于自由度 q_i
的一阶偏导数。我们对求和式中的每一项应用乘法法则 $(\mathbf{U}\mathbf{v})' = \mathbf{U}'\mathbf{v} + \mathbf{U}\mathbf{v}'$。
\mathbf{r}_{0,b,q_i} = \frac{\partial}{\partial q_i} \left( \sum_{k=0}^{b-1} \mathbf{R}_{0,k} \mathbf{r}_k \right)
将求导算子移入求和号内:
\mathbf{r}_{0,b,q_i} = \sum_{k=0}^{b-1} \frac{\partial}{\partial q_i} (\mathbf{R}_{0,k} \mathbf{r}_k)
应用乘法法则:
\mathbf{r}_{0,b,q_i} = \sum_{k=0}^{b-1} \left( \frac{\partial \mathbf{R}_{0,k}}{\partial q_i} \mathbf{r}_k + \mathbf{R}_{0,k} \frac{\partial \mathbf{r}_k}{\partial q_i} \right)
使用手册中的简写符号 $()_{,q_i} \equiv \frac{\partial}{\partial q_i}$,我们得到:
\mathbf{r}_{0,b,q_i} = \sum_{k=0}^{b-1} (\mathbf{R}_{0,k,q_i} \mathbf{r}_k + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i}) \tag{1.18a}
这与手册中给出的公式一致。
推导 (1.18b): \mathbf{R}_{0,b,q_i}
(一阶姿态导数)
这是对 \mathbf{R}_{0,b}
求关于 q_i
的一阶偏导数。这是一个对矩阵乘积的求导。
\mathbf{R}_{0,b,q_i} = \frac{\partial}{\partial q_i} \left( \left(\prod_{l=0}^{b-1} \mathbf{O}_l\right) \mathbf{S}_b \mathbf{B}_b \right) = \frac{\partial}{\partial q_i} \left( \mathbf{O}_0 \mathbf{O}_1 \cdots \mathbf{O}_{b-1} \mathbf{S}_b \mathbf{B}_b \right)
应用乘法法则的推广形式,我们对乘积中的每一项($\mathbf{O}0, \dots, \mathbf{O}{b-1}, \mathbf{B}_b$)依次求导,其他项保持不变,然后将结果相加。
\begin{aligned}
\mathbf{R}_{0,b,q_i} = & \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \frac{\partial \mathbf{O}_m}{\partial q_i} \left( \prod_{l=m+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 \frac{\partial \mathbf{B}_b}{\partial q_i}
\end{aligned}
使用简写符号,得到补充后的公式:
\mathbf{R}_{0,b,q_i} = \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+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 \mathbf{B}_{b,q_i} \tag{1.18b}
推导 (1.18c): \mathbf{r}_{0,b,q_i,q_j}
(二阶位置导数)
这是对 (1.18a) 的结果再求关于 q_j
的偏导数。
\mathbf{r}_{0,b,q_i,q_j} = \frac{\partial}{\partial q_j} \left( \mathbf{r}_{0,b,q_i} \right) = \frac{\partial}{\partial q_j} \left( \sum_{k=0}^{b-1} (\mathbf{R}_{0,k,q_i} \mathbf{r}_k + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i}) \right)
将求导算子移入求和号,并对括号内的两项分别应用乘法法则:
\mathbf{r}_{0,b,q_i,q_j} = \sum_{k=0}^{b-1} \left[ \frac{\partial}{\partial q_j}(\mathbf{R}_{0,k,q_i} \mathbf{r}_k) + \frac{\partial}{\partial q_j}(\mathbf{R}_{0,k} \mathbf{r}_{k,q_i}) \right]
\frac{\partial}{\partial q_j}(\mathbf{R}_{0,k,q_i} \mathbf{r}_k) = \frac{\partial \mathbf{R}_{0,k,q_i}}{\partial q_j} \mathbf{r}_k + \mathbf{R}_{0,k,q_i} \frac{\partial \mathbf{r}_k}{\partial q_j} = \mathbf{R}_{0,k,q_i,q_j} \mathbf{r}_k + \mathbf{R}_{0,k,q_i} \mathbf{r}_{k,q_j}
\frac{\partial}{\partial q_j}(\mathbf{R}_{0,k} \mathbf{r}_{k,q_i}) = \frac{\partial \mathbf{R}_{0,k}}{\partial q_j} \mathbf{r}_{k,q_i} + \mathbf{R}_{0,k} \frac{\partial \mathbf{r}_{k,q_i}}{\partial q_j} = \mathbf{R}_{0,k,q_j} \mathbf{r}_{k,q_i} + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i,q_j}
将这两部分结果合并,得到补充后的公式:
\mathbf{r}_{0,b,q_i,q_j} = \sum_{k=0}^{b-1} \left( \mathbf{R}_{0,k,q_i,q_j} \mathbf{r}_k + \mathbf{R}_{0,k,q_i} \mathbf{r}_{k,q_j} + \mathbf{R}_{0,k,q_j} \mathbf{r}_{k,q_i} + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i,q_j} \right) \tag{1.18c}
推导 (1.18d): \mathbf{R}_{0,b,q_i,q_j}
(二阶姿态导数)
这是对 (1.18b) 的结果再求关于 q_j
的偏导数。这个推导过程比较繁琐,需要对 (1.18b) 的两个主要加项分别求导。
第一项的导数:
\frac{\partial}{\partial q_j} \left[ \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right) \mathbf{S}_b \mathbf{B}_b \right]
这本身是一个乘积的导数,其中第一部分是一个求和。应用乘法法则,并对求和部分再次应用乘法法则的推广形式,会得到一个非常复杂的表达式,包含二阶导数项 \mathbf{O}_{m,q_i,q_j}
和两个一阶导数的乘积项 $\mathbf{O}{p,q_j} \cdots \mathbf{O}{m,q_i}$。
第二项的导数:
\frac{\partial}{\partial q_j} \left[ \left( \prod_{l=0}^{b-1} \mathbf{O}_l \right) \mathbf{S}_b \mathbf{B}_{b,q_i} \right]
同样应用乘法法则,对连乘项和 \mathbf{B}_{b,q_i}
分别求导。
将所有部分组合起来,得到一个完整的、但非常冗长的表达式。为了清晰起见,我们分块表示:
\mathbf{R}_{0,b,q_i,q_j} = \text{Term1} + \text{Term2} + \text{Term3} + \text{Term4}
其中:
- Term1 (二阶导数项):
\left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i,q_j} \left( \prod_{l=m+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 \mathbf{B}_{b,q_i,q_j}
- Term2 (交叉导数项,对
\mathbf{O}
求导):\sum_{m=0}^{b-1} \left[ \left( \sum_{p=0}^{m-1} \left( \prod_{l=0}^{p-1} \mathbf{O}_l \right) \mathbf{O}_{p,q_j} \left( \prod_{l=p+1}^{m-1} \mathbf{O}_l \right) \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right] \mathbf{S}_b \mathbf{B}_b
+ \sum_{m=0}^{b-1} \left[ \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \sum_{p=m+1}^{b-1} \left( \prod_{l=m+1}^{p-1} \mathbf{O}_l \right) \mathbf{O}_{p,q_j} \left( \prod_{l=p+1}^{b-1} \mathbf{O}_l \right) \right) \right] \mathbf{S}_b \mathbf{B}_b
- Term3 (交叉导数项,对
\mathbf{O}
和\mathbf{B}_b
求导):\left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right) \mathbf{S}_b \mathbf{B}_{b,q_j}
+ \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_j} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right) \mathbf{S}_b \mathbf{B}_{b,q_i}
- Term4 (对
\mathbf{B}_b
的交叉导数项):
注意:这个Term4已经包含在Term1中了,为了避免重复,我们将最终公式合并。\left( \prod_{l=0}^{b-1} \mathbf{O}_l \right) \mathbf{S}_b \mathbf{B}_{b,q_i,q_j}
合并后的完整公式为:
\begin{aligned}
\mathbf{R}_{0,b,q_i,q_j} = & \sum_{m=0}^{b-1} \sum_{p=0, p \neq m}^{b-1} \left( \cdots \mathbf{O}_{p,q_j} \cdots \mathbf{O}_{m,q_i} \cdots \right) \mathbf{S}_b \mathbf{B}_b \\
& + \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i,q_j} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \mathbf{S}_b \mathbf{B}_b \\
& + \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right) \mathbf{S}_b \mathbf{B}_{b,q_j} \\
& + \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_j} \left( \prod_{l=m+1}^{b-1} \mathbf{O}_l \right) \right) \mathbf{S}_b \mathbf{B}_{b,q_i} \\
& + \left( \prod_{l=0}^{b-1} \mathbf{O}_l \right) \mathbf{S}_b \mathbf{B}_{b,q_i,q_j}
\end{aligned} \tag{1.18d}
其中第一行的 (...)
表示根据 p
和 m
的相对位置,将导数项插入到连乘积的正确位置。这是一个非常复杂的表达式,但在数值计算中,它是通过对一阶导数表达式进行有限差分或自动微分来获得的,而不是直接实现这个解析形式。
总结
补充完整的公式组 (1.18) 如下:
\mathbf{r}_{0,b,q_i} = \sum_{k=0}^{b-1} (\mathbf{R}_{0,k,q_i} \mathbf{r}_k + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i}) \tag{1.18a}
\mathbf{R}_{0,b,q_i} = \left( \sum_{m=0}^{b-1} \left( \prod_{l=0}^{m-1} \mathbf{O}_l \right) \mathbf{O}_{m,q_i} \left( \prod_{l=m+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 \mathbf{B}_{b,q_i} \tag{1.18b}
\mathbf{r}_{0,b,q_i,q_j} = \sum_{k=0}^{b-1} \left( \mathbf{R}_{0,k,q_i,q_j} \mathbf{r}_k + \mathbf{R}_{0,k,q_i} \mathbf{r}_{k,q_j} + \mathbf{R}_{0,k,q_j} \mathbf{r}_{k,q_i} + \mathbf{R}_{0,k} \mathbf{r}_{k,q_i,q_j} \right) \tag{1.18c}
\mathbf{R}_{0,b,q_i,q_j} = \frac{\partial}{\partial q_j} \left( \mathbf{R}_{0,b,q_i} \right) \quad \text{(其展开式如上文推导所示)} \tag{1.18d}
[Timestamp: 2025/08/08 09:46:57]