跳转至

刚体转动下的向量求导公式

1 运动点在惯性系中的速度公式

考虑一个惯性系 \(I\) 和一个运动坐标系 \(B\) ,原点分别记作 \(O_I\) 和 \(O_B\) 。以下所有讨论,都默认以惯性系 \(I\) 为参考。

固定点的位置导数

当 \(B\) 系绕 \(O_I\) 做角速度为 \(\boldsymbol{\omega}\) 的转动时,考虑 \(B\) 系中的任意一个固定点 P:

\[\frac{\mathrm{d}\vec{O_IP}}{\mathrm{d}t}=\boldsymbol{\omega}\times\vec{O_IP}.\]

证明

记 P 点初始位置为 \(P_1\) ,运动 \(\Delta t\) 时间后位置为 \(P_2\) 。记 \(\vec{OP}\) 与角速度向量 \(\boldsymbol{\omega}\) 的夹角为 \(\theta\) . 用 \(\mathbf{r}(t)=\mathbf{r}\) 表示 \(\vec{O_IP_1}\) ,用 \(\mathbf{r}(t+\Delta t)\) 表示 \(\vec{O_IP_2}\) ,则变化量为 \(\mathbf{r}(t+\Delta t)-\mathbf{r}=\vec{P_1P_2}\) .

由图可知,变化量的大小为 \(2r\sin\theta\sin\left(\frac{1}{2}\omega\Delta t\right)\) ,变化量的方向和 \(\boldsymbol{\omega}\times(\mathbf{r}(t+\Delta t)+\mathbf{r})\) 一致。因此

\[\begin{aligned} &\lim_{\Delta t\to 0}\frac{\mathbf{r}(t+\Delta t)-\mathbf{r}}{\Delta t}\\ =& \lim_{\Delta t\to 0}\frac{\frac{\boldsymbol{\omega}\times(\mathbf{r}(t+\Delta t)+\mathbf{r})}{\|\boldsymbol{\omega}\times(\mathbf{r}(t+\Delta t)+\mathbf{r})\|}\cdot2r\sin\theta\sin\left(\frac{1}{2}\omega\Delta t\right)}{\Delta t}\\ =& \lim_{\Delta t\to 0}\frac{\frac{2\boldsymbol{\omega}\times\mathbf{r}}{2\omega r\sin\theta}\cdot2r\sin\theta\cdot\left(\frac{1}{2}\omega\Delta t\right)}{\Delta t}\\ =& \boldsymbol{\omega}\times\mathbf{r}. \end{aligned}\]

2 固定于运动坐标系的向量求导

固定在 \(B\) 系中的向量导数公式

在此基础上,考虑固定在 \(B\) 系的一个向量 \(\vec{PQ}\):

\[\frac{\mathrm{d}\vec{PQ}}{\mathrm{d}t}=\boldsymbol{\omega}\times\vec{PQ}.\]

证明

\[\begin{aligned} \frac{\mathrm{d}\vec{PQ}}{\mathrm{d}t}&= \frac{\mathrm{d}\vec{O_IQ}}{\mathrm{d}t}-\frac{\mathrm{d}\vec{O_IP}}{\mathrm{d}t}\\ &= \boldsymbol{\omega}\times\vec{O_IQ}-\boldsymbol{\omega}\times\vec{O_IP}\\ &=\boldsymbol{\omega}\times\vec{PQ}. \end{aligned}\]

3. 向量的导数运输公式

3.1 一阶导数情况

在此基础上,考虑 \(B\) 系下的一个任意向量 \(\mathbf{r}\) 。

\[ \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{I} = \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}+\boldsymbol{\omega}\times\mathbf{r}. \]

Note

\(\left(\dfrac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}\) 表示向量 \(\mathbf{r}\) 相对于 \(B\) 系求导,在求导过程中,不考虑 \(B\) 系自身的运动。

详细而言,设 \(B\) 系的一组正交基向量为 \(\mathbf{i},\mathbf{j},\mathbf{k}\) ,则 \(\mathbf{r}\) 可以表示为

\[\mathbf{r} = r_x\mathbf{i} + r_y\mathbf{j} + r_z\mathbf{k} .\]

则导数为

\[\left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}=\dot{r}_x\mathbf{i}+\dot{r}_y\mathbf{j}+\dot{r}_z\mathbf{k}.\]

证明

沿用上述 \(\mathbf{r}\) 形式,\(\dot{\mathbf{r}}_I\) 可以表示为

\[\begin{aligned} \dot{\mathbf{r}}_I &= (\dot{r}_x\mathbf{i} + \dot{r}_y\mathbf{j} + \dot{r}_z\mathbf{k}) + r_x\dot{\mathbf{i}} + r_y\dot{\mathbf{j}} + r_z\dot{\mathbf{k}}\\ \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{I} &= \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}+r_x\boldsymbol{\omega}\times \mathbf{i}+r_y\boldsymbol{\omega}\times \mathbf{j}+r_z\boldsymbol{\omega}\times \mathbf{k}\\ &= \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}+\boldsymbol{\omega}\times(r_x\mathbf{i}+r_y\mathbf{j}+r_z\mathbf{k})\\ &= \left(\frac{\mathrm{d}\mathbf{r}}{\mathrm{d}t}\right)_{B}+\boldsymbol{\omega}\times\mathbf{r}. \end{aligned}\]

应用示例

考虑世界坐标系 \(\mathcal{W}\) ,实际机体坐标系 \(\mathcal{B}\) ,期望机体坐标系 \(\mathcal{B_d}\) 。无人机当前姿态为 \(R\) ,期望姿态为 \(R_d\) 。无人机当前角速度向量 \(\Omega\) ,在机体坐标系下表示为 \(\omega\) ;期望角速度向量 \(\Omega_d\) ,在期望机体系下表示为 \(\omega_d\) ,在实际机体系中表示为 \(R^\top R_d \omega_d\) 。无人机惯性张量为 \(J\) 。

在无人机控制器设计中,我们要考虑引入角加速度前馈项。这个前馈项不是简单的 \(J \dot{\omega}_d\) ,因为 \(\dot{\omega}_d\) 是在期望机体系下表达的,而控制器的前馈项输出是作用在实际机体系下的。因此,我们要计算 \(\left[\dfrac{\mathrm{d}}{\mathrm{d}t}\Omega_d\right]_{B}\) ,其含义是期望角速度向量在实际机体系中的坐标分量,随时间如何变化。

考虑惯性系为世界坐标系 \(\mathcal{W}\),运动坐标系为实际机体坐标系 \(\mathcal{B}\) ,直接套用上述运输公式,有

\[\left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{B}} = \left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{W}} - \Omega\times\Omega_d.\]

针对等式右侧第一项,我们考虑运动坐标系为期望机体坐标系 \(\mathcal{B_d}\) 的情况,再次套用运输公式,有

\[\begin{aligned}\left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{W}} &= \left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{B_d}}+\Omega_d\times\Omega_d\\ &= \left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{B_d}}. \end{aligned}\]

因此有

\[\left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{B}} = \left[\frac{\mathrm{d}\Omega_d}{\mathrm{d}t}\right]_{\mathcal{B_d}} - \Omega\times\Omega_d.\]

我们将上式统一用实际机体坐标表达

\[\frac{\mathrm{d}}{\mathrm{d}t}(R^\top R_d \omega_d)=R^\top R_d\dot{\omega}_d-\omega\times(R^\top R\omega_d).\]

从而,控制器所需的前馈项形式为

\[J\left[R^\top R_d\dot{\omega}_d-\omega\times(R^\top R\omega_d)\right],\]

这和常见的 SE(3) 控制器中使用的前馈项形式是一致的。

3.2 二阶导数情况

接下来,再对 \(I\) 系求导一次:

\[\begin{aligned} \ddot{\mathbf{r}}_I &=\ddot{\mathbf{r}}_B+2\boldsymbol{\omega}\times\dot{\mathbf{r}}_B+\dot{\boldsymbol{\omega}}\times\mathbf{r}+\boldsymbol{\omega}\times(\boldsymbol{\omega}\times\mathbf{r}) \end{aligned}\]

证明

\[\begin{aligned} \ddot{\mathbf{r}}_I &=\left(\frac{\mathrm{d}}{\mathrm{dt}}\right)_I\dot{\mathbf{r}}_B+\left(\frac{\mathrm{d}}{\mathrm{dt}}\right)_I(\boldsymbol{\omega}\times\mathbf{r})\\ &=\ddot{\mathbf{r}}_B+\boldsymbol{\omega}\times\dot{\mathbf{r}}_B+\dot{\boldsymbol{\omega}}\times\mathbf{r}+\boldsymbol{\omega}\times\dot{\mathbf{r}}_I\\ &= \ddot{\mathbf{r}}_B+\boldsymbol{\omega}\times\dot{\mathbf{r}}_B+\dot{\boldsymbol{\omega}}\times\mathbf{r}+\boldsymbol{\omega}\times(\dot{\mathbf{r}}_B+\boldsymbol\omega\times\mathbf{r})\\ &=\ddot{\mathbf{r}}_B+2\boldsymbol{\omega}\times\dot{\mathbf{r}}_B+\dot{\boldsymbol{\omega}}\times\mathbf{r}+\boldsymbol{\omega}\times(\boldsymbol{\omega}\times\mathbf{r}). \end{aligned}\]