首先打个小广告,一直很喜欢无人机,最近有空研究了一下Pixhawk(PX4)飞控,并把总结和心得写到公众号 “SantyNotebook” 里和大家分享,感兴趣的朋友可以一起来交流一下,如何从零手写无人机飞控~
本篇同步发在公众号推送中《四旋翼数学模型》
作为控制器设计的基础,这篇介绍一下外力作用下多旋翼飞机的状态变化规律~
1 四旋翼飞行器建模
1.1 坐标系与旋转矩阵
我们建立地面坐标系
O
e
x
e
y
e
z
e
O_{e} x_{e} y_{e} z_{e}
Oexeyeze以及机体坐标系
O
b
x
b
y
b
z
b
O_{b} x_{b} y_{b} z_{b}
Obxbybzb,用来描述飞机受力,力矩与其位姿状态。
如果我们规定:地系沿
O
z
e
Oz_{e}
Oze轴
ψ
\psi
ψ角旋转,再沿
O
y
e
Oy_{e}
Oye轴
θ
\theta
θ角旋转,最后沿
O
x
e
Ox_{e}
Oxe轴旋转
ϕ
\phi
ϕ得到机体系,可以得到旋转矩阵:
R
e
b
=
[
cos
θ
cos
ψ
cos
θ
sin
ψ
−
sin
θ
−
cos
ϕ
sin
ψ
+
sin
ϕ
sin
θ
cos
ψ
cos
ϕ
cos
ψ
+
sin
ϕ
sin
θ
sin
ψ
sin
ϕ
cos
θ
sin
ϕ
sin
ψ
+
cos
ϕ
sin
θ
cos
ψ
−
sin
ϕ
cos
ψ
+
cos
ϕ
sin
θ
sin
ψ
cos
ϕ
cos
θ
]
R_{e}^{b}=\left[\begin{array}{ccc} \cos \theta \cos \psi & \cos \theta \sin \psi & -\sin \theta \\ -\cos \phi \sin \psi+\sin \phi \sin \theta \cos \psi & \cos \phi \cos \psi+\sin \phi \sin \theta \sin \psi & \sin \phi \cos \theta \\ \sin \phi \sin \psi+\cos \phi \sin \theta \cos \psi & -\sin \phi \cos \psi+\cos \phi \sin \theta \sin \psi & \cos \phi \cos \theta \end{array}\right]
Reb=
cosθcosψ−cosϕsinψ+sinϕsinθcosψsinϕsinψ+cosϕsinθcosψcosθsinψcosϕcosψ+sinϕsinθsinψ−sinϕcosψ+cosϕsinθsinψ−sinθsinϕcosθcosϕcosθ
它的含义是对于地系中的任意坐标
a
⃗
e
\vec{a}_{e}
ae,其在机体系中的表达为
a
⃗
b
=
R
e
b
a
⃗
e
\vec{a}_{b}=R_{e}^{b} \vec{a}_{e}
ab=Rebae
这样做是很有意义的,因为我们获取了机体内状态,就知道了在惯性系内的表达,反之亦然。
其中的三个角度,常用来表达飞行器当前姿态,即偏航角
ψ
\psi
ψ,俯仰角
ϕ
\phi
ϕ,与滚转角
θ
\theta
θ。
1.2 牛顿欧拉方程
刚体运动=质心的平动+绕质心的转动,质心的平动用牛顿第二定律描述,即:
F
=
m
∗
d
v
d
i
F=m * \frac{\mathrm{d} v}{\mathrm{~d} i}
F=m∗ didv
绕质心的转动由欧拉方程描述,即:
M
=
J
ω
˙
+
ω
×
J
ω
M=J \dot{\omega}+\omega \times J \omega
M=Jω˙+ω×Jω
物理含义为:作用在刚体上的合力矩使
M
M
M得刚体以角速度、角加速度旋转。
1.3 四旋翼飞行器的动力学模型
动力学模型的输入为合外力、合外力矩,输出为速度、角速度。我们假设飞行器只受重力和螺旋桨拉力。
1.3.1 位置动力学模型
根据牛顿第二定律
m
v
˙
e
=
G
e
+
T
b
m \dot{v}^{e}=G^{e}+T^{b}
mv˙e=Ge+Tb
式中,
v
˙
e
\dot{v}^{e}
v˙e与
G
e
G^{e}
Ge右上角的
e
e
e代表这是地面坐标系下的向量,
T
b
T^b
Tb右上角的
b
b
b代表这是机体坐标系下的向量,代入有
[
v
˙
x
v
˙
y
v
˙
z
]
=
[
0
0
g
]
+
1
m
(
R
e
b
)
−
1
[
0
0
−
T
]
\left[\begin{array}{l} \dot{v}_{x} \\ \dot{v}_{y} \\ \dot{v}_{z} \end{array}\right]=\left[\begin{array}{c} 0 \\ 0 \\ g \end{array}\right]+\frac{1}{m}\left(R_{e}^{b}\right)^{-1}\left[\begin{array}{c} 0 \\ 0 \\ -T \end{array}\right]
v˙xv˙yv˙z
=
00g
+m1(Reb)−1
00−T
即
[
v
˙
x
v
˙
y
v
˙
z
]
=
[
−
T
m
(
cos
ψ
sin
θ
sin
ϕ
+
sin
ψ
sin
ϕ
)
−
T
m
(
sin
ψ
sin
θ
cos
ϕ
−
cos
ψ
sin
ϕ
)
g
−
T
m
cos
ϕ
cos
θ
]
\left[\begin{array}{c} \dot{v}_{x} \\ \dot{v}_{y} \\ \dot{v}_{z} \end{array}\right]=\left[\begin{array}{c} -\frac{T}{m}(\cos \psi \sin \theta \sin \phi+\sin \psi \sin \phi) \\ -\frac{T}{m}(\sin \psi \sin \theta \cos \phi-\cos \psi \sin \phi) \\ g-\frac{T}{m} \cos \phi \cos \theta \end{array}\right]
v˙xv˙yv˙z
=
−mT(cosψsinθsinϕ+sinψsinϕ)−mT(sinψsinθcosϕ−cosψsinϕ)g−mTcosϕcosθ
姿态动力学模型
由欧拉方程可得
J
ω
˙
b
+
ω
b
×
J
ω
b
=
G
a
b
+
T
b
J \dot{\omega}^{b}+\omega^{b} \times J \omega^{b}=G_{a}^{b}+T^{b}
Jω˙b+ωb×Jωb=Gab+Tb
式中:
J
J
J为惯性矩阵,是几何形状与质量分布的考量,对于沿
X
Y
XY
XY轴对称的四旋翼无人机:
J
=
[
I
x
x
−
I
x
y
−
I
x
z
−
I
x
y
I
y
y
−
I
y
z
−
I
x
z
−
I
y
z
I
z
z
]
=
[
I
x
x
I
y
y
I
z
z
]
J=\left[\begin{array}{ccc} I_{x x} & -I_{x y} & -I_{x z} \\ -I_{x y} & I_{y y} & -I_{y z} \\ -I_{x z} & -I_{y z} & I_{z z} \end{array}\right]=\left[\begin{array}{lll} I_{x x} & & \\ & I_{y y} & \\ & & I_{z z} \end{array}\right]
J=
Ixx−Ixy−Ixz−IxyIyy−Iyz−Ixz−IyzIzz
=
IxxIyyIzz
ω
b
\omega^b
ωb表示在机体坐标系下的角速度,通常用
p
,
q
,
r
p,q,r
p,q,r来表示在机体轴上的三个分量;
G
a
G_a
Ga表示陀螺力矩,高速旋转脱落非常稳定,有保持自身轴向不变的能力,如果用
J
1
J_1
J1表示整个电机转子和螺旋桨绕机体转轴的总转动惯量,
ω
~
1
,
ω
~
2
,
ω
~
3
,
ω
~
4
\tilde{\omega}_{1}, \tilde{\omega}_{2}, \tilde{\omega}_{3}, \tilde{\omega}_{4}
ω~1,ω~2,ω~3,ω~4表示4个螺旋桨转速,有:
G
a
=
[
G
a
,
ϕ
G
a
,
ϕ
G
a
,
ψ
]
=
[
J
1
q
(
ω
~
1
−
ω
~
2
+
ω
~
3
−
ω
~
4
)
J
1
p
(
−
ω
~
1
+
ω
~
2
−
ω
~
3
+
ω
~
4
)
0
]
G_{a}=\left[\begin{array}{c} G_{a, \phi} \\ G_{a, \phi} \\ G_{a, \psi} \end{array}\right]=\left[\begin{array}{c} J_{1} q\left(\tilde{\omega}_{1}-\tilde{\omega}_{2}+\tilde{\omega}_{3}-\tilde{\omega}_{4}\right) \\ J_{1} p\left(-\tilde{\omega}_{1}+\tilde{\omega}_{2}-\tilde{\omega}_{3}+\tilde{\omega}_{4}\right) \\ 0 \end{array}\right]
Ga=
Ga,ϕGa,ϕGa,ψ
=
J1q(ω~1−ω~2+ω~3−ω~4)J1p(−ω~1+ω~2−ω~3+ω~4)0
τ
\tau
τ表示螺旋桨拉力在机体轴上产生的力矩,有三个分量。
整理得:
[
p
˙
q
˙
r
˙
]
=
[
1
I
x
x
[
τ
x
+
q
r
(
I
y
y
−
I
z
z
)
−
J
1
q
Ω
]
1
I
y
y
[
τ
y
+
q
r
(
I
z
z
−
I
x
x
)
−
J
1
p
Ω
]
1
I
z
z
[
τ
z
+
p
q
(
I
x
x
−
I
y
y
)
]
]
\left[\begin{array}{c} \dot{p} \\ \dot{q} \\ \dot{r} \end{array}\right]=\left[\begin{array}{l} \frac{1}{I_{x x}}\left[\tau_{x}+q r\left(I_{y y}-I_{z z}\right)-J_{1} q \Omega\right] \\ \frac{1}{I_{y y}}\left[\tau_{y}+q r\left(I_{z z}-I_{x x}\right)-J_{1} p \Omega\right] \\ \frac{1}{I_{z z}}\left[\tau_{z}+p q\left(I_{x x}-I_{y y}\right)\right] \end{array}\right]
p˙q˙r˙
=
Ixx1[τx+qr(Iyy−Izz)−J1qΩ]Iyy1[τy+qr(Izz−Ixx)−J1pΩ]Izz1[τz+pq(Ixx−Iyy)]
Ω
=
−
ω
~
1
+
ω
~
2
−
ω
~
3
+
ω
~
4
\Omega=-\tilde{\omega}_1+\tilde{\omega}_2-\tilde{\omega}_3+\tilde{\omega}_4
Ω=−ω~1+ω~2−ω~3+ω~4
1.4 四旋翼飞行器的运动学模型
运动学模型的输入为速度和角速度,输出为位置和姿态。
速度位置方程
[
x
˙
y
˙
z
˙
]
T
=
[
v
x
v
y
v
z
]
T
\left[\begin{array}{lll} \dot{x} & \dot{y} & \dot{z} \end{array}\right]^{T}=\left[\begin{array}{lll} v_{x} & v_{y} & v_{z} \end{array}\right]^{T}
[x˙y˙z˙]T=[vxvyvz]T
姿态角的变化率与机体的旋转角速度有如下关系:
[
ϕ
˙
θ
˙
ψ
˙
]
=
[
1
tan
θ
sin
ϕ
tan
θ
cos
ϕ
0
cos
ϕ
−
sin
ϕ
0
sin
ϕ
/
cos
θ
cos
ϕ
/
cos
θ
]
[
p
q
r
]
\left[\begin{array}{c} \dot{\phi} \\ \dot{\theta} \\ \dot{\psi} \end{array}\right]=\left[\begin{array}{ccc} 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}{l} p \\ q \\ r \end{array}\right]
ϕ˙θ˙ψ˙
=
100tanθsinϕcosϕsinϕ/cosθtanθcosϕ−sinϕcosϕ/cosθ
pqr
在小扰动情况下姿态角的变化率与机体的旋转角速度近似相等,上式可以近似为:
[
ϕ
˙
θ
˙
ψ
˙
]
=
[
p
q
r
]
\left[\begin{array}{c} \dot{\phi} \\ \dot{\theta} \\ \dot{\psi} \end{array}\right]=\left[\begin{array}{l} p \\ q \\ r \end{array}\right]
ϕ˙θ˙ψ˙
=
pqr
1.5 四旋翼飞行器的飞行控制刚体模型
四旋翼飞行器的飞行控制刚体模型由动力学模型和运动学模型结合而成,将上面结论全部代入有
位置的模型:
[
x
¨
y
¨
z
¨
]
=
[
−
T
m
(
cos
ψ
sin
θ
sin
ϕ
+
sin
ψ
sin
ϕ
)
−
T
m
(
sin
ψ
sin
θ
cos
ϕ
−
cos
ψ
sin
ϕ
)
g
−
T
m
cos
ϕ
cos
θ
]
\left[\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \ddot{z} \end{array}\right]=\left[\begin{array}{c} -\frac{T}{m}(\cos \psi \sin \theta \sin \phi+\sin \psi \sin \phi) \\ -\frac{T}{m}(\sin \psi \sin \theta \cos \phi-\cos \psi \sin \phi) \\ g-\frac{T}{m} \cos \phi \cos \theta \end{array}\right]
x¨y¨z¨
=
−mT(cosψsinθsinϕ+sinψsinϕ)−mT(sinψsinθcosϕ−cosψsinϕ)g−mTcosϕcosθ
姿态小扰动模型
[
ϕ
¨
θ
¨
ψ
¨
]
=
[
1
I
x
x
[
τ
x
+
qr
(
I
y
y
−
I
z
z
)
−
J
1
q
Ω
]
1
I
y
y
[
τ
y
+
qr
(
I
z
z
−
I
x
x
)
−
J
1
p
Ω
]
1
I
z
z
[
τ
z
+
p
q
(
I
x
x
−
I
y
y
)
]
]
{\left[\begin{array}{c} \ddot{\phi} \\ \ddot{\theta} \\ \ddot{\psi} \end{array}\right]=\left[\begin{array}{l} \frac{1}{I_{x x}}\left[\tau_{x}+\operatorname{qr}\left(I_{y y}-I_{z z}\right)-J_{1} q \Omega\right] \\ \frac{1}{I_{y y}}\left[\tau_{y}+\operatorname{qr}\left(I_{z z}-I_{x x}\right)-J_{1} p \Omega\right] \\ \frac{1}{I_{z z}}\left[\tau_{z}+p q\left(I_{x x}-I_{y y}\right)\right] \end{array}\right]}
ϕ¨θ¨ψ¨
=
Ixx1[τx+qr(Iyy−Izz)−J1qΩ]Iyy1[τy+qr(Izz−Ixx)−J1pΩ]Izz1[τz+pq(Ixx−Iyy)]
Ω
=
−
ϖ
1
+
ϖ
2
−
ϖ
3
+
ϖ
4
\Omega=-\varpi_{1}+\varpi_{2}-\varpi_{3}+\varpi_{4}
Ω=−ϖ1+ϖ2−ϖ3+ϖ4
定性的认识是,飞机速度变化率受到拉力质量比、重力加速度影响并且和当前姿态有关;而旋转角速度变化与拉力产生的力矩,四个电机转速、飞机惯量以及当前姿态角变化率有关