四旋翼无人机建模与实现(一)
本文是对GitHub上的一个开源的四旋翼无人机建模与编程实现的学习笔记,因为原作者的文档使用英文写的,花了很长的时间才看懂,因此,我觉得用自己的语言将这个开源项目分享出来是有意义的,爱因斯坦曾说过:“如果你不能简单地解释某一概念,说明你没有很好地掌握它”。因此便有了写这篇文档的想法。
原文链接: https://github.com/SKYnSPACE/AE450
本文的贡献在于将原作者文档中的公式做了更为详细的推导,并以更为通俗的语言来描述整个建模过程。
本文用到的是十字形四旋翼无人机结构,坐标系均采用右手坐标系,全局坐标系为“北东地”,局部坐标系为“前右下”,采用PID控制器控制四旋翼无人机在空中悬停。
四旋翼无人机的动力学模型
1、定义四旋翼系统的状态量
x ⃗ = [ X Y Z X ˙ Y ˙ Z ˙ ϕ θ ψ p q r ] T \boldsymbol{\vec{x}=\begin{bmatrix} X&Y& Z& \dot{X}& \dot{Y}& \dot{Z}& \phi & \theta & \psi & p& q& r \end{bmatrix}^T} x=[XYZX˙Y˙Z˙ϕθψpqr]T
符号 | 含义 |
---|---|
[ X Y Z ] T \boldsymbol{\begin{bmatrix} X&Y& Z\end{bmatrix}^T} [XYZ]T | 无人机在全局坐标系下的位置分量 |
[ X ˙ Y ˙ Z ˙ ] T \boldsymbol{\begin{bmatrix} \dot{X}& \dot{Y}& \dot{Z}\end{bmatrix}^T} [X˙Y˙Z˙]T | 全局坐标系下位置分量所对应的速度分量 |
[ ϕ θ ψ ] T \boldsymbol{\begin{bmatrix} \phi & \theta & \psi\end{bmatrix}^T} [ϕθψ]T | 欧拉角:翻滚、俯仰、偏航 |
[ p q r ] T \boldsymbol{\begin{bmatrix} p& q& r\end{bmatrix}^T} [pqr]T | 机身坐标系下的角速度 |
2、定义控制变量
u ⃗ = [ u 1 , u 2 , u 3 , u 4 ] T = [ T ∑ , M 1 , M 2 , M 3 ] T \boldsymbol{\vec{u}=[u_1 ,u_2 ,u_3 ,u_4]^T=[T_{\sum},M_1,M_2,M_3]^T} u=[u1,u2,u3,u4]T=[T∑,M1,M2,M3]T
符号 | 含义 |
---|---|
T ∑ \boldsymbol{T_{\sum}} T∑ | 机体沿着机身坐标系z轴受到的推力总和(注意:这其实是一个标量) |
M 1 \boldsymbol{M_1} M1 | 机体沿机身坐标系x方向受到的力矩 |
M 2 \boldsymbol{M_2} M2 | 机体沿机身坐标系y方向受到的力矩 |
M 3 \boldsymbol{M_3} M3 | 机体沿机身坐标系z方向受到的力矩 |
3、空气动力学因素
当无人机机身处于稳态悬停时,转子处于稳态,第i个转子的稳定状态的推力估算模型为:
T i = C T ρ A V t i p 2 = C T ρ A R 2 Ω i 2 ( > 0 ) \boldsymbol{T_i=C_T \rho AV_{tip}^2=C_T \rho A R^2 \Omega _i^2(> 0)} Ti=CTρAVtip