obsidian_backup/copilot-conversations/20250806_090848__[[CASEstab_theory_manual]]详细展示1.15的推导过程.md

31 KiB
Raw Blame History

epoch modelKey tags
1754442528062 gemini-2.5-pro|google
copilot-conversation

user: CASEstab_theory_manual详细展示1.15的推导过程 [Timestamp: 2025/08/06 09:08:48]

ai: 好的,我们来详细展示一下 CASEstab_theory_manual 中公式 1.15 的推导过程。

这个推导是基于一个特定的简化假设:在整个结构中,只有一个子结构(编号为 $k$)的轴承具有显式的时间依赖性,即以恒定角速度 \Omega 旋转。所有其他轴承要么是固定的要么其转角是自由度DOF因此它们不具有显式的时间依赖性。

前提条件

  1. 单一旋转轴承: 只有子结构 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
  2. 恒定角速度: 子结构 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=kb=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})

推导步骤:

  1. 代入 $\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)
    
  2. 代入 $\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
    
  3. 提取公共项: 由于 \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) 的第一部分完全匹配。

  4. 简化求和项: 为了得到公式的第二部分,我们需要简化求和项 $\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}
    
  5. 代回并整理: 将这个简化的求和项代回到第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}

推导步骤:

  1. 直接代入 $\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)
    
  2. 重新组合: 将常数 \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)
    
  3. 使用转置关系: 再次利用转置关系 $\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})

推导步骤:

  1. 代入 $\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)
    
  2. 代入 $\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
    
  3. 提取公共项:

    
    \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) 的第一部分匹配。

  4. 简化求和项并代回: 使用与 (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}

推导步骤:

  1. 直接代入 $\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)
    
  2. 重新组合并使用转置关系:

    
    \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 的交叉导数项):
    
    \left( \prod_{l=0}^{b-1} \mathbf{O}_l \right) \mathbf{S}_b \mathbf{B}_{b,q_i,q_j}
    
    注意这个Term4已经包含在Term1中了为了避免重复我们将最终公式合并。

合并后的完整公式为:


\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}

其中第一行的 (...) 表示根据 pm 的相对位置,将导数项插入到连乘积的正确位置。这是一个非常复杂的表达式,但在数值计算中,它是通过对一阶导数表达式进行有限差分或自动微分来获得的,而不是直接实现这个解析形式。

总结

补充完整的公式组 (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]