四旋翼无人机建模与实现(二)
本文是对GitHub上的一个开源的四旋翼无人机建模与编程实现的学习笔记,因为原作者的文档使用英文写的,花了很长的时间才看懂,因此,我觉得用自己的语言将这个开源项目分享出来是有意义的,爱因斯坦曾说过:“如果你不能简单地解释某一概念,说明你没有很好地掌握它”。因此便有了写这篇文档的想法。
原文链接: https://github.com/SKYnSPACE/AE450
本文的贡献在于将原作者文档中的公式做了更为详细的推导,并以更为通俗的语言来描述整个建模过程。
7、旋转运动方程
后六个状态量的变化率可以从旋转运动方程中获得,状态变化率表示如下:
[ ϕ ˙ , ψ ˙ , θ ˙ , p ˙ , q ˙ , r ˙ ] \boldsymbol{[\dot{\phi},\dot{\psi},\dot{\theta},\dot{p},\dot{q},\dot{r}]} [ϕ˙,ψ˙,θ˙,p˙,q˙,r˙]
速度方程:
R ˙ = R ⋅ s k ( ω ⃗ ) \boldsymbol{\dot{R}=R \cdot sk(\vec{\omega})} R˙=R⋅sk(ω)
我不是太理解原作者写的这些标识意义,我觉得这样写仿佛更容易理解:
R P Y ˙ = T r ⋅ ω ⃗ \boldsymbol{\dot{RPY}=Tr \cdot \vec{\omega}} RPY˙=Tr⋅ω
其中等号左边是欧拉角的变化率,等号右边时变换矩阵和角速度的乘积,这个公式表达了姿态变化率和角速度的关系。将上述方程展开如下:
[ ϕ ˙ θ ˙ ψ ˙ ] = [ 1 t a n θ s i n ϕ t a n θ c o s ϕ 0 c o s ϕ − s i n ϕ 0 s i n ϕ / c o s θ c o s ϕ / c o s θ ] [ p q r ] \boldsymbol{ \begin{bmatrix} \dot{\phi}\\ \dot{\theta} \\ \dot{\psi} \end{bmatrix}= \begin{bmatrix} 1& tan\theta sin\phi & tan\theta cos\phi\\ 0 & cos\phi & -sin\phi\\ 0 & sin\phi / cos\theta & cos\phi / cos\theta \end{bmatrix} \begin{bmatrix} p\\q\\r \end{bmatrix} } ⎣⎡ϕ˙θ˙ψ˙⎦⎤=⎣⎡100tanθsinϕcosϕsinϕ/cosθtanθcosϕ−sinϕcosϕ/cosθ⎦⎤⎣⎡pqr⎦⎤
姿态变化率和角速度之间满足线性变换关系,该线性变换关系是关于翻滚和俯仰角的线性变换关系,和偏航角无关。
加速度方程(牛顿第二定律):
I ω ⃗ ˙ = − ω ⃗ × I ω ⃗ + M \boldsymbol{I \dot{\vec{\omega}}=-\vec{\omega} \times I\vec{\omega}+M} Iω˙=−ω×Iω+M
将该公式展开后得到:
p ˙ = I y y − I z z I x x ⋅ q r + 1 I x x ⋅ M 1 \boldsymbol{\dot{p}=\frac{I_{yy}-I_{zz}}{I_{xx}} \cdot qr+\frac{1}{I_{xx}}\cdot M_1} p˙=IxxIyy−Izz⋅qr+Ixx1⋅M1
q ˙ = I z z − I x x I y y ⋅ r p + 1 I y y ⋅ M 2 \boldsymbol{\dot{q}=\frac{I_{zz}-I_{xx}}{I_{yy}} \cdot rp+\frac{1}{I_{yy}}\cdot M_2} q˙=IyyIzz−Ixx⋅rp+Iyy1⋅M2
r ˙ = I z z − I y y I z z ⋅ p q + 1 I z z ⋅ M 3 \boldsymbol{\dot{r}=\frac{I_{zz}-I_{yy}}{I_{zz}} \cdot pq+\frac{1}{I_{zz}}\cdot M_3} r˙=IzzIzz−Iyy⋅pq+Izz1