刚体转动的姿态动力学与姿态运动学
角动量定理&刚体转动的姿态动力学,四元数形式、矩阵形式、姿态角形式的3种姿态运动学方程。
刚体转动的姿态动力学与姿态运动学
以下是常用公式及其简单描述,这些内容在航天器控制、导航等方面是通用的。从教材上摘录整理下来的,仅供大家参考,如果要学习详细内容建议翻教材。如有错误,欢迎指出。
1. 姿态动力学
- 描述角速度变化率与所受到的力矩之间的关系,由这些式子无法求出姿态角,只能推出角速度变化
- 所有变量代表本体系bbb相对惯性系iii在惯性系bbb下的表达[3] page.23,如角速度w≡wibbw\equiv w_{ib}^bw≡wibb
角动量定义为h=Jω\mathbf h=J\mathbf \omegah=Jω,角动量定理为
dhdt=∂h∂t+ω×h=J˙ω+Jω˙+ω×(Jω)=M \frac{\mathrm d\mathbf h}{\mathrm dt}=\frac{\mathrm\partial\mathbf h}{\mathrm\partial t}+\mathbf\omega\times \mathbf h =\dot J\omega+J\dot\omega+\omega\times(J\omega)=\mathbf M dtdh=∂t∂h+ω×h=J˙ω+Jω˙+ω×(Jω)=M
如果不考虑对象转动惯量的变化,然后利用叉乘的法则也可以写作
Jω˙−h×ω=M J\dot\omega-\mathbf h\times\omega=\mathbf M Jω˙−h×ω=M
力矩表示的是刚体到的力矩在本体系下的表达,即MbbM_b^bMbb。将角速度代入ω=[ωx,ωy,ωz]T\omega=[\omega_x,\omega_y,\omega_z]^{\mathrm T}ω=[ωx,ωy,ωz]T
{h˙x+hzwy−hywz=Mxh˙y+hxwz−hzwx=Myh˙z+hywx−hxwy=Mz \left\{\begin{matrix} \dot h_x+h_zw_y-h_yw_z=M_x\\ \dot h_y+h_xw_z-h_zw_x=M_y\\ \dot h_z+h_yw_x-h_xw_y=M_z \end{matrix}\right. ⎩⎨⎧h˙x+hzwy−hywz=Mxh˙y+hxwz−hzwx=Myh˙z+hywx−hxwy=Mz
当三轴为惯量主轴时,转动惯量为对角阵J=diag[Jx,Jy,Jz]J=diag[J_x,J_y,J_z]J=diag[Jx,Jy,Jz],则
{Jxw˙x+(Jz−Jy)wzwy=MxJyw˙y+(Jx−Jz)wxwz=MyJzw˙z+(Jy−Jx)wxwy=Mz \left\{\begin{matrix} J_x\dot w_x+ (J_z-J_y)w_zw_y=M_x\\ J_y\dot w_y+ (J_x-J_z)w_xw_z=M_y\\ J_z\dot w_z+ (J_y-J_x)w_xw_y=M_z \end{matrix}\right. ⎩⎨⎧Jxw˙x+(Jz−Jy)wzwy=MxJyw˙y+(Jx−Jz)wxwz=MyJzw˙z+(Jy−Jx)wxwy=Mz
2. 姿态运动学
- 体现姿态与角速度之间的关系
- 按照四元数形式描述,四元数描述的是本体系bbb相对于惯性系iii的姿态,也就是从惯性系iii旋转到本体系bbb所需要的姿态qibq_{ib}qib
- 由于描述姿态的是四元数,所以微分方程左边是q˙ib\dot q_{ib}q˙ib
若四元数定义为[4]
q=q0+iq1+jq2+kq3=[q1,qr]q02+q12+q22+q32=1 \begin{array}{l} {\boldsymbol{q}}=q_{0}+\bold i q_{1}+\bold j q_{2}+\bold k q_{3}=[q_1,q_\mathbf r] \\ q_{0}^{2}+q_{1}^{2}+q_{2}^{2}+q_{3}^{2}=1 \end{array} q=q0+iq1+jq2+kq3=[q1,qr]q02+q12+q22+q32=1
姿态运动学方程为
q˙=12Ω(ωibb)⋅q \dot{{q}}=\frac{1}{2} \Omega\left(\omega_{ib}^{b}\right) \cdot {q} q˙=21Ω(ωibb)⋅q
其中4阶反对称矩阵
Ω(ω)=[0−ωx−ωy−ωzωx0ωz−ωyωy−ωz0ωxωzωy−ωx0] \Omega\left(\omega\right)= \left[\begin{array}{cccc} 0 & -\omega_{x} & -\omega_{y} & -\omega_{z} \\ \omega_{x} & 0 & \omega_{z} & -\omega_{y} \\ \omega_{y} & -\omega_{z} & 0 & \omega_{x} \\ \omega_{z} & \omega_{y} & -\omega_{x} & 0 \end{array}\right] Ω(ω)=⎣⎢⎢⎡0ωxωyωz−ωx0−ωzωy−ωyωz0−ωx−ωz−ωyωx0⎦⎥⎥⎤
它代表的是体系相对于惯性系的角速度在体系下的表达,也就是陀螺仪能敏感到的数据。姿态运动学也可以写作四元数的4阶反对称矩阵乘以角速度的形式,即:
q˙=12q⊗ωr \dot{\boldsymbol{q}}=\frac{1}{2} \boldsymbol{q} \otimes \boldsymbol{\omega}_{\mathrm{r}} q˙=21q⊗ωr
其中ωr=[0,wrT]\boldsymbol{\omega}_{\mathrm{r}}=[0,w_r^{\mathrm T}]ωr=[0,wrT]展开为
[q˙0q˙1q˙2q˙3]=12[q0−q1−q2−q3q1q0−q3q2q2q3q0−q1q3−q2q1q0][0ωxωyωz] \left[\begin{array}{l} \dot{q}_{0} \\ \dot{q}_{1} \\ \dot{q}_{2} \\ \dot{q}_{3} \end{array}\right]=\frac{1}{2}\left[\begin{array}{cccc} q_{0} & -q_{1} & -q_{2} & -q_{3} \\ q_{1} & q_{0} & -q_{3} & q_{2} \\ q_{2} & q_{3} & q_{0} & -q_{1} \\ q_{3} & -q_{2} & q_{1} & q_{0} \end{array}\right]\left[\begin{array}{c} 0 \\ \omega_{x} \\ \omega_{y} \\ \omega_{z} \end{array}\right] ⎣⎢⎢⎡q˙0q˙1q˙2q˙3⎦⎥⎥⎤=21⎣⎢⎢⎡q0q1q2q3−q1q0q3−q2−q2−q3q0q1−q3q2−q1q0⎦⎥⎥⎤⎣⎢⎢⎡0ωxωyωz⎦⎥⎥⎤
3. 姿态旋转矩阵
3.1姿态四元数转到姿态旋转矩阵
公式如下
Rib(qib)=(q02−qr⋅qr)I2+2qrqrT−2q0[qr×]=[q02+q12−q22−q32−2q0q3+2q1q22q0q2+2q1q32q0q3+2q1q2q02−q12+q22−q32−2q0q1+2q2q3−2q0q2+2q1q32q0q1+2q2q3q02−q12−q22+q32]=[2(q02+q12)−12(q1q2+q0q3)2(q1q3−q0q2)2(q1q2−q0q3)2(q02+q22)−12(q2q3+q0q1)2(q1q3+q0q2)2(q2q3−q0q1)2(q02+q32)−1] \begin{aligned} \mathbf {R}_{i}^{b}(q_{ib})&\\ =&(q_0^2-q_\mathbf r\cdot q_\mathbf r ) I_2+2q_r q_r^T-2q_0 [q_r^× ]\\ =&\left[\begin{array}{ccc} q_{0}^{2}+q_{1}^{2}-q_{2}^{2}-q_{3}^{2} & -2 q_{0} q_{3}+2 q_{1} q_{2} & 2 q_{0} q_{2}+2 q_{1} q_{3} \\ 2 q_{0} q_{3}+2 q_{1} q_{2} & q_{0}^{2}-q_{1}^{2}+q_{2}^{2}-q_{3}^{2} & -2 q_{0} q_{1}+2 q_{2} q_{3} \\ -2 q_{0} q_{2}+2 q_{1} q_{3} & 2 q_{0} q_{1}+2 q_{2} q_{3} & q_{0}^{2}-q_{1}^{2}-q_{2}^{2}+q_{3}^{2} \end{array}\right] \\=& \left[\begin{array}{lll} 2\left(q_{0}^{2}+q_{1}^{2}\right)-1 & 2\left(q_{1} q_{2}+q_{0} q_{3}\right) & 2\left(q_{1} q_{3}-q_{0} q_{2}\right) \\ 2\left(q_{1} q_{2}-q_{0} q_{3}\right) & 2\left(q_{0}^{2}+q_{2}^{2}\right)-1 & 2\left(q_{2} q_{3}+q_{0} q_{1}\right) \\ 2\left(q_{1} q_{3}+q_{0} q_{2}\right) & 2\left(q_{2} q_{3}-q_{0} q_{1}\right) & 2\left(q_{0}^{2}+q_{3}^{2}\right)-1 \end{array}\right] \end{aligned} Rib(qib)===(q02−qr⋅qr)I2+2qrqrT−2q0[qr×]⎣⎡q02+q12−q22−q322q0q3+2q1q2−2q0q2+2q1q3−2q0q3+2q1q2q02−q12+q22−q322q0q1+2q2q32q0q2+2q1q3−2q0q1+2q2q3q02−q12−q22+q32⎦⎤⎣⎡2(q02+q12)−12(q1q2−q0q3)2(q1q3+q0q2)2(q1q2+q0q3)2(q02+q22)−12(q2q3−q0q1)2(q1q3−q0q2)2(q2q3+q0q1)2(q02+q32)−1⎦⎤
其中3阶反对称矩阵
[r×]=[0−r3r2r30−r1−r2r10] [r\times]=\left[\begin{array}{ccc}0&-r_3&r_2\\ r_3&0&-r_1\\ -r_2&r_1&0\end{array}\right] [r×]=⎣⎡0r3−r2−r30r1r2−r10⎦⎤
3.2 姿态四元数转到三轴姿态角
姿态四元数转到三轴姿态角,可以先转换到姿态旋转矩阵,再转到姿态角。参考[1]第91页并作出订正,航天器3-1-2旋转的过程,从惯性系转到本体系的姿态旋转矩阵应该这样构建:
- Oxiyizi→绕Ozi("3")旋转ψ角→Ox1y1z1Ox_iy_iz_i\rightarrow绕Oz_i("3")旋转\psi角\rightarrow Ox_1y_1z_1Oxiyizi→绕Ozi("3")旋转ψ角→Ox1y1z1
- Ox1y1z1→绕Ox1("1")旋转θ角→Ox2y2z2Ox_1y_1z_1\rightarrow绕Ox_1("1")旋转\theta角\rightarrow Ox_2y_2z_2Ox1y1z1→绕Ox1("1")旋转θ角→Ox2y2z2
- Ox2y2z2→绕Oy2("2")旋转γ角→OxbybzbOx_2y_2z_2\rightarrow绕Oy_2("2")旋转\gamma角\rightarrow Ox_by_bz_bOx2y2z2→绕Oy2("2")旋转γ角→Oxbybzb
而姿态角xyz方向俯仰θ\thetaθ-滚转γ\gammaγ-偏航ψ\psiψ,即x方向为俯仰角,y方向为滚转角,z方向为偏航角,这个和文献[2]的本体系相对应。
按照的312(zxy)旋转的姿态旋转矩阵为
Rib=R2bR12Ri1=Ry(γ)Rx(θ)Rz(ψ)=[cosγ0−sinγ010sinγ0cosγ][1000cosθsinθ0−sinθcosθ][cosψ−sinψ0sinψsinψ0001]=[cosψcosγ+sinψsinθsinγ−sinψcosγ+cosψsinθsinγ−cosθsinγsinψcosθcosψcosθsinθcosψsinγ−sinψsinθcosγ−sinψsinγ−cosψsinθcosγcosθcosγ] \begin{array}{l} \mathbf R_{i}^{b}=R_2^bR_1^2R_i^1=R_y(\gamma)R_x(\theta)R_z(\psi)\\ =\left[\begin{array}{ccc} \cos \gamma & 0 & -\sin \gamma \\ 0 & 1 & 0 \\ \sin \gamma & 0 & \cos \gamma \end{array}\right]\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \theta & \sin \theta \\ 0 & -\sin \theta & \cos \theta \end{array}\right]\left[\begin{array}{ccc} \cos \psi & -\sin \psi & 0 \\ \sin \psi & \sin \psi & 0 \\ 0 & 0 & 1 \end{array}\right] \\= {\left[\begin{array}{ccc} \cos \psi \cos \gamma+\sin \psi \sin \theta \sin \gamma & -\sin \psi \cos \gamma+\cos \psi \sin \theta \sin \gamma & -\cos \theta \sin \gamma \\ \sin \psi \cos \theta & \cos \psi \cos \theta & \sin \theta \\ \cos \psi \sin \gamma-\sin \psi \sin \theta \cos \gamma & -\sin \psi \sin \gamma-\cos \psi \sin \theta \cos \gamma & \cos \theta \cos \gamma \end{array}\right]} \end{array} Rib=R2bR12Ri1=Ry(γ)Rx(θ)Rz(ψ)=⎣⎡cosγ0sinγ010−sinγ0cosγ⎦⎤⎣⎡1000cosθ−sinθ0sinθcosθ⎦⎤⎣⎡cosψsinψ0−sinψsinψ0001⎦⎤=⎣⎡cosψcosγ+sinψsinθsinγsinψcosθcosψsinγ−sinψsinθcosγ−sinψcosγ+cosψsinθsinγcosψcosθ−sinψsinγ−cosψsinθcosγ−cosθsinγsinθcosθcosγ⎦⎤
如果已知四元数,就可以得到姿态转移矩阵,相当于已知方程左边,由这个对应关系可以反解三轴姿态角
θ=sin−1(R23)γ=tan−1(−R13R33)ψ=tan−1(R21R22) \begin{array}{l} \theta=\sin ^{-1}\left(R_{23}\right) \\ \gamma=\tan^{-1}\left(-\frac{R_{13}}{R_{33}}\right) \\ \psi=\tan^{-1}\left(\frac{R_{21}}{R_{22}}\right) \end{array} θ=sin−1(R23)γ=tan−1(−R33R13)ψ=tan−1(R22R21)
3.3 3-1-2旋转的姿态运动学
推导过程需要考虑姿态旋转矩阵的先后转动顺序,不是简单相加,如w=θ˙i+γ˙j+ψ˙kw=\dot\theta\mathbf i+\dot\gamma\mathbf j+\dot\psi\mathbf kw=θ˙i+γ˙j+ψ˙k,这样是错的。正确过程是
wib≡[wxwywz]=γ˙j+Ry(γ)θ˙i+Ry(γ)Rx(θ)ψ˙kωx=θ˙cosγ−ψ˙cosθsinγωy=γ˙+ψ˙sinθωz=θ˙sinγ+ψ˙cosγcosθ w_{ib}\equiv\begin{bmatrix}w_x\\w_y\\w_z\end{bmatrix}= \dot\gamma\mathbf j+R_y(\gamma)\dot\theta\mathbf i+R_y(\gamma)R_x(\theta)\dot\psi\mathbf k\\ \begin{array}{l} \omega_{x}=\dot{\theta} \cos \gamma-\dot{\psi} \cos \theta \sin \gamma \\ \omega_{y}=\dot{\gamma}+\dot{\psi} \sin \theta \\ \omega_{z}=\dot{\theta} \sin \gamma + \dot{\psi} \cos \gamma \cos \theta \end{array} wib≡⎣⎡wxwywz⎦⎤=γ˙j+Ry(γ)θ˙i+Ry(γ)Rx(θ)ψ˙kωx=θ˙cosγ−ψ˙cosθsinγωy=γ˙+ψ˙sinθωz=θ˙sinγ+ψ˙cosγcosθ
4. 姿态旋转矩阵的姿态运动学方程
姿态旋转矩阵RibR_i^bRib代表由惯性系转换到本体系。如果用姿态旋转矩阵来描述姿态,在导航算法中也是常用的,这样虽然内存占用大,但是足够精确也方便使用。这样,矩阵形式的姿态运动学方程为
dRibdt=Rib[wibb×](1) \frac{\mathrm d R_i^b}{\mathrm d t}=R_i^b[w_{ib}^b\times] \tag 1 dtdRib=Rib[wibb×](1)
注意到角速度矢量仍然遵循坐标系变换法则,即
wibp=Rbpwibb w_{ib}^p=R_b^pw_{ib}^b wibp=Rbpwibb
其中p为任意坐标系。向量的叉乘矩阵遵循类似的法则[3] page.25
[wibp×]=Rbp[wibb×]Rpbe.g,[wibi×]=Rbi[wibb×]Rib [w_{ib}^p\times]=R_b^p[w_{ib}^b\times]R_p^b\quad \text{e.g},[w_{ib}^i\times]=R_b^i[w_{ib}^b\times]R_i^b [wibp×]=Rbp[wibb×]Rpbe.g,[wibi×]=Rbi[wibb×]Rib
文献[3]page 44(2-97)式指出,另一种矩阵形式的姿态运动学方程为
dRibdt=−[wibb×]Rib(2) \frac{\mathrm d R_i^b}{\mathrm d t}=-[w_{ib}^b\times]R_i^b\tag 2 dtdRib=−[wibb×]Rib(2)
考虑
[wibi×]=Rbi[wibb×]Rib⇒[wibb×]=Rib[wibi×]Rbi [w_{ib}^i\times]=R_b^i[w_{ib}^b\times]R_i^b⇒[w_{ib}^b\times]=R_i^b[w_{ib}^i\times]R_b^i [wibi×]=Rbi[wibb×]Rib⇒[wibb×]=Rib[wibi×]Rbi
代入上式并化简可得
dRibdt=−[wibb×]Rib=−Rib[wibi×]Rbi⋅Rib=Rib[wbii×](3) \frac{\mathrm d R_i^b}{\mathrm d t}=-[w_{ib}^b\times]R_i^b=-R_i^b[w_{ib}^i\times]R_b^i\cdot R_i^b=R_i^b[w_{bi}^i\times]\tag 3 dtdRib=−[wibb×]Rib=−Rib[wibi×]Rbi⋅Rib=Rib[wbii×](3)
于是一共有3中形式的表达,其中第一种是最常用的。
5. ref
[1]. 周军, 刘莹莹. 航天器姿态与轨道控制原理[M]. 西安: 西北工业大学出版社, 2016.
[2]. 李新国, 方群. 有翼导弹飞行动力学[M]. 西北工业大学出版社, 2005.
[3]. Noureldin A, Karamat T B, Georgy J. Fundamentals of inertial navigation, satellite-based positioning and their integration[M]. 2013: 1-313.
[4]. 方群,李新国,朱战霞等[M]. 西北工业大学出版社,2015. 章节:6.5.4
更多推荐


所有评论(0)