硬核推导-欧拉角微分方程

之前我们分析两种运动学的微分方程:

欧拉角微分方程旋转矩阵微分方程

旋转矩阵的微分方程非常清晰直观,通过数学公式一步一步,非常严谨。

但是欧拉角的微分方程是建立在想象力上推导的,依赖想象力的推导都不够直观,今天我们就彻底不要想象力直接推导欧拉角的微分方程。

简写 pitch 为 p ,roll为r,yaw为y ,旋转矩阵写为:

$$\mathbf C_b^n =\left[ \begin{array} { c c c } { \cos p \cos y } & { - \cos r \sin y + \sin r \sin p \cos y } & { \sin r \sin y + \cos r \sin p \cos y } \\ { \cos p \sin y } & { \cos r \cos y + \sin r \sin p \sin y } & { - \sin r \cos y + \cos r \sin p \sin y } \\ { - \sin p } & { \sin r \cos p } & { \cos r \cos p } \end{array} \right]$$

旋转矩阵 对 t 求导 d(Cbn)/dt=

$$\cfrac{d( \mathbf C_b^n)}{dt}= \dot{\mathbf C_b^n} = \\ \left[ \begin{array} { c c c } {- \dot pc(y)s(p) - \dot yc(p)s(y)} & {\dot rs(r)s(y) - \dot yc(r)c(y) + \dot pc(p)c(y)s(r) + \dot rc(r)c(y)s(p) - \dot ys(p)s(r)s(y)} & {\dot rc(r)s(y) + \dot yc(y)s(r) + \dot pc(p)c(r)c(y) - \dot rc(y)s(p)s(r) - \dot yc(r)s(p)s(y)} \\ {\dot yc(p)c(y) - \dot ps(p)s(y)} & { \dot pc(p)s(r)s(y) - \dot yc(r)s(y) - \dot rc(y)s(r) + \dot rc(r)s(p)s(y) + \dot yc(y)s(p)s(r)} & { \dot ys(r)s(y) - \dot rc(r)c(y) + \dot pc(p)c(r)s(y) + \dot yc(r)c(y)s(p) - \dot rs(p)s(r)s(y)} \\ {-\dot pc(p)} & {\dot rc(p)c(r) - \dot ps(p)s(r)} & {- \dot pc(r)s(p) - \dot rc(p)s(r)} \end{array} \right]$$

根据我们之前推导出的旋转矩阵的微分方程

$$\mathbf {\dot C } _ { b } ^ { n } = \mathbf { C } _ { b } ^ { n } \left[ ^ { b } \boldsymbol { \omega } \right] _ { \times }$$

尝试把这个矩阵也写成这个形式:

$$\dot{\mathbf C_b^n} = \mathbf C_b^n[\mathbf A_{\times}]$$

矩阵的导数乘旋转矩阵的逆:

$$\mathbf {C_b^n}^{-1} \dot{\mathbf C_b^n} = [\mathbf A_{\times}]$$

把矩阵的导数带入上式,可得:

$$[\mathbf A]_{\times} = \left[ \begin{array} { c c c } { 0 }& {\dot ps(r) - \dot yc(p)c(r)} & {\dot pc(r) + \dot yc(p)s(r)}\\ {\dot yc(p)c(r) - \dot ps(r)} &{0} &{\dot ys(p) - dr}\\ {- \dot pc(r) - \dot yc(p)s(r)} & {dr - \dot ys(p)} & {0}\end{array} \right]$$

所以:

$$\left[ ^ { b } \boldsymbol { \omega } \right] _ { \times } = [\mathbf A]_{\times}$$

A矩阵 是一个斜对称矩阵 ,那么就可以写成向量 A

$$\mathbf A = \left[ \begin{array} { c }\dot r - \dot ys(p) \\\dot pc(r) + \dot yc(p)s(r) \\- \dot ps(r)+\dot yc(p)c(r) \\ \end{array} \right]$$

所以:

$$\left[ \begin{array} { c }\omega_x \\\omega_y \\\omega_z \\ \end{array} \right] = \left[ \begin{array} { c }\dot r - \dot ys(p) \\\dot pc(r) + \dot yc(p)s(r) \\- \dot ps(r)+\dot yc(p)c(r) \\ \end{array} \right]$$

上式可以分解成:

$$\left[ \begin{array} { c } \omega_x \\\omega_y \\\omega_z \\ \end{array} \right] =\left[ \begin{array} { c c c } { 1 }& {0} & {-s(r)}\\ {0} &{c(r)} &{s(r)c(p)}\\ {0} & {-s(r)} & {c(r)c(p)}\end{array} \right]\left[ \begin{array} { c } \dot r \\ \dot p \\ \dot y \\ \end{array} \right]$$

到了这一步是不是非常熟悉?

最后一步把矩阵求逆,你看,你要的欧拉角微分方程。

$$\left[ \begin{array} { c } \dot r \\ \dot p \\ \dot y \\ \end{array} \right]=\left[ \begin{array} { c c c } { 1 } & { \tan \theta \sin \phi } & { \tan \theta \cos \phi } \\ { 0 } & { \cos \phi } & { - \sin \phi } \\ { 0 } & { \sin \phi / \cos \theta } & { \cos \phi / \cos \theta } \end{array} \right]\left[ \begin{array} { c } \omega_x \\\omega_y \\\omega_z \\ \end{array} \right]$$

数学推导最是直观清晰,比依赖想象更有说服力。

这也是我不推荐大家看一些貌似通俗易懂的物理解释原因,因为这些解释都建立在你的想象力之上,让你觉的你明白了。

尤其是新手,如果依赖所谓通俗易懂的方法去学习,只会适得其反,看见复杂的推导就没退缩。

之后我还会对微分方程的不同形式再做强调,以后大家查资料,看论文看见微分方程就没这么恐惧了。