建模之前我们先分析一下多旋翼无人机有哪些状态量:用于表示线运动的三轴位置、速度和加速度;用于表示角运动的三轴姿态角和姿态角速度;这一共是15个状态量。
首先来看线运动方程的建立过程:我们取地理坐标系为北东地(NED),机体系为前右下:
由牛顿第二定律有:
F = m a F=m a F=ma
即
F = m [ a x a y a z ] F=m \left[ \begin{array}{l}{a_{x}} \\ {a_{y}} \\ {a_{z}}\end{array}\right] F=m⎣⎡axayaz⎦⎤
注意此处的 F F F和加速度 a a a均是在地理系下的表示( F F F表示四个旋翼产生的总升力),进一步将上式展开可得
[ 0 0 m g ] − R b e [ 0 0 f 1 + f 2 + f 3 + f 4 ] = m [ a x a y a z ] \left[ \begin{array}{c}{0} \\ {0} \\ {m g}\end{array}\right] - \boldsymbol{R}_{b}^{e} \left[ \begin{array}{c}{0} \\ {0} \\ {f_{1}+f_{2}+f_{3}+f_{4}}\end{array}\right]=m \left[ \begin{array}{l}{a_{x}} \\ {a_{y}} \\ {a_{z}}\end{array}\right] ⎣⎡00mg⎦⎤−Rbe⎣⎡00f1+f2+f3+f4⎦⎤=m⎣⎡axayaz⎦⎤
其中 R b e \boldsymbol{R}_{b}^{e} Rbe表示由机体坐标系到地理坐标系的转换矩阵,由于 f i , i = 1 … 4 f_i,i=1…4 fi,i=1…4分别表示四个旋翼沿机体 Z Z Z轴负方向产生的升力,故需要将其转换到地理系中;
R b e = [ c θ c ψ s ϕ s θ c ψ − c ϕ s ψ c ϕ s θ c ψ + s ϕ s ψ c θ s ψ s ϕ s θ s ψ + c ϕ c ψ c ϕ s θ s ψ − s ϕ c ψ − s θ s ϕ c θ c ϕ c θ ] \boldsymbol{R}_{b}^{e}=\left[ \begin{array}{ccc}{c \theta c \psi} & {s \phi s \theta c \psi-c \phi s \psi} & {c \phi s \theta c \psi+s \phi s \psi} \\ {c \theta s \psi} & {s \phi s \theta s \psi+c \phi c \psi} & {c \phi s \theta s \psi-s \phi c \psi} \\ {-s \theta} & {s \phi c \theta} & {c \phi c \theta}\end{array}\right] Rbe=⎣⎡cθcψcθsψ−sθsϕsθcψ−cϕsψsϕsθsψ+cϕcψsϕcθcϕsθcψ+sϕsψcϕsθsψ−sϕcψcϕcθ⎦⎤
联立上式进一步化简即可得到线运动的模型表示:
{ x ¨ = ( c ϕ s θ c ψ + s ϕ s ψ ) − F m y ¨ = ( c ϕ s θ s ψ − s ϕ c ψ ) − F m z ¨ = g − ( c ϕ c θ ) F m \left\{\begin{array}{c}{\ddot{x}=(\mathrm{c} \phi \mathrm{s} \theta \mathrm{c} \psi+\mathrm{s} \phi \mathrm{s} \psi) \frac{-F}{m}} \\ {\ddot{y}=(\mathrm{c} \phi \mathrm{s} \theta \mathrm{s} \psi-\mathrm{s} \phi \mathrm{c} \psi) \frac{-F}{m}} \\ {\ddot{z}=g-(\mathrm{c} \phi \mathrm{c} \theta) \frac{F}{m}}\end{array}\right. ⎩⎨⎧x¨=(cϕsθcψ+sϕsψ)m−Fy¨=(cϕsθsψ−sϕcψ)m−Fz¨=g−(cϕcθ)mF
线运动的建模过程很简单,但是多旋翼不光能移动还能旋转,这个旋转过程就需要刚体的旋转相关知识。
物体如何旋转跟旋翼产生的力矩有关,力矩与力F和距离l有如下公式: M = F ∗ l M=F * l M=F∗l
如果是十字型的布局:
F = ∑ i = 1 4 T i = c T ( w 1 2 + w 2 2 + w 3 2 + w 4 2 ) F=\sum_{i=1}^{4} T_{i}=c_{\mathrm{T}}\left(w_{1}^{2}+w_{2}^{2}+w_{3}^{2}+w_{4}^{2}\right) F=i=1∑4Ti=cT(w12+w22+w32+w42)
{ τ x = d c T ( − w 2 2 + w 4 2 ) τ y = d c T ( w 1 2 − w 3 2 ) τ z = c M ( w 1 2 − w 2 2 + w 3 2 − w 4 2 ) \left\{\begin{array}{l}{\tau_{x}=d c_{\mathrm{T}}\left(-w_{2}^{2}+w_{4}^{2}\right)} \\ {\tau_{y}=d c_{\mathrm{T}}\left(w_{1}^{2}-w_{3}^{2}\right)} \\ {\tau_{z}=c_{\mathrm{M}}\left(w_{1}^{2}-w_{2}^{2}+w_{3}^{2}-w_{4}^{2}\right)}\end{array}\right. ⎩⎨⎧τx=dcT(−w22+w42)τy=dcT(w12−w32)τz=cM(w12−w22+w32−w42)
写成矩阵形式如下:
[ F τ x τ y τ z ] = [ c T c T c T c T 0 − d c T 0 d c T d c T 0 − d c T 0 c M − c M c M − c M ] [ w 1 2 w 2 2 w 3 2 w 4 2 ] \left[ \begin{array}{l}{F} \\ {\tau_{x}} \\ {\tau_{y}} \\ {\tau_{z}}\end{array}\right]=\left[ \begin{array}{cccc}{c_{\mathrm{T}}} & {c_{\mathrm{T}}} & {c_{\mathrm{T}}} & {c_{\mathrm{T}}} \\ {0} & {-d c_{\mathrm{T}}} & {0} & {d c_{\mathrm{T}}} \\ {d c_{\mathrm{T}}} & {0} & {-d c_{\mathrm{T}}} & {0} \\ {c_{\mathrm{M}}} & {-c_{\mathrm{M}}} & {c_{\mathrm{M}}} & {-c_{\mathrm{M}}}\end{array}\right] \left[ \begin{array}{c}{w_{1}^{2}} \\ {w_{2}^{2}} \\ {w_{3}^{2}} \\ {w_{4}^{2}}\end{array}\right] ⎣⎢⎢⎡Fτxτyτz⎦⎥⎥⎤=⎣⎢⎢⎡cT0dcTcMcT−dcT0−cMcT0−dcTcMcTdcT0−cM⎦⎥⎥⎤⎣⎢⎢⎡w12w22w32w42⎦⎥⎥⎤
对X型动力布局:
F = ∑ i = 1 4 T i = c T ( w 1 2 + ϖ 2 2 + ϖ 3 2 + ϖ 4 2 ) F=\sum_{i=1}^{4} T_{i}=c_{\mathrm{T}}\left(w_{1}^{2}+\varpi_{2}^{2}+\varpi_{3}^{2}+\varpi_{4}^{2}\right) F=i=1∑4Ti=cT(w12+ϖ22+ϖ32+ϖ42)
{ τ x = d c T ( 2 ω 1 2 / 2 − 2 ω 2 2 / 2 − 2 ω 3 2 / 2 + 2 ω 4 2 / 2 ) τ y = d c T ( 2 ω 1 2 / 2 + 2 ω 2 2 / 2 − 2 ω 3 2 / 2 − 2 ω 4 2 / 2 ) τ z = c M ( ω 1 2 − ω 2 2 + ω 3 2 − ω 4 2 ) \left\{\begin{array}{c}{\tau_{x}=d c_{\mathrm{T}}\left(\sqrt{2} \omega_{1}^{2} / 2-\sqrt{2} \omega_{2}^{2} / 2-\sqrt{2} \omega_{3}^{2} / 2+\sqrt{2} \omega_{4}^{2} / 2\right)} \\ {\tau _{y}=d c_{\mathrm{T}}\left(\sqrt{2} \omega_{1}^{2} / 2+\sqrt{2} \omega_{2}^{2} / 2-\sqrt{2} \omega_{3}^{2} / 2-\sqrt{2} \omega_{4}^{2} / 2\right)} \\ {\tau _{z}=c_{\mathrm{M}}\left(\omega_{1}^{2}-\omega_{2}^{2}+\omega_{3}^{2}-\omega_{4}^{2}\right)}\end{array}\right. ⎩⎨⎧τx=dcT(2ω12/2−2ω22/2−2ω32/2+2ω42/2)τy=dcT(2ω12/2+2ω22/2−2ω32/2−2ω42/2)τz=cM(ω12−ω22+ω32−ω42)
上式中 F F F为四个旋翼产生的总升力, τ x , τ y , τ z \tau _x ,\tau _y ,\tau _z τx,τy,τz分别表示旋翼产生的作用在三个姿态通道的控制力矩。
根据欧拉方程 M = J ε + ω × J ω M=J \varepsilon+\omega \times J \omega M=Jε+ω×Jω
其中 ε \varepsilon ε表示角加速度, ω \omega ω表示角速度, M M M表示姿态通道控制力矩;
欧拉角速度
Θ ˙ = [ ϕ ˙ θ ˙ ψ ˙ ] \dot{\boldsymbol{\Theta}}=\left[ \begin{array}{c}{\dot{\phi}} \\ {\dot{\theta}} \\ {\dot{\psi}}\end{array}\right] Θ˙=⎣⎡ϕ˙θ˙ψ˙⎦⎤
与机体角速度
Ω = [ w x w y w z ] {\boldsymbol{\Omega}}=\left[ \begin{array}{c}{w_x} \\ {w_y} \\ {w_z}\end{array}\right] Ω=⎣⎡wxwywz⎦⎤
之间的关系为
Θ ˙ = W Ω \dot{\boldsymbol{\Theta}}=\boldsymbol{W} \boldsymbol{\Omega} Θ˙=WΩ
W = [ 1 tan θ sin ϕ tan θ cos ϕ 0 cos ϕ − sin ϕ 0 sin ϕ / cos θ cos ϕ / cos θ ] W=\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] W=⎣⎡100tanθsinϕcosϕsinϕ/cosθtanθcosϕ−sinϕcosϕ/cosθ⎦⎤假设多旋翼无人机姿态角在小角度内变化,则可认为 W = I W=I W=I,即 Θ ˙ = Ω \dot{\boldsymbol{\Theta}}= \boldsymbol{\Omega} Θ˙=Ω
角加速度为 [ ϕ ¨ θ ¨ ψ ¨ ] \left[ \begin{array}{c}{\ddot{\phi}} \\ {\ddot{\theta}} \\ {\ddot{\psi}}\end{array}\right] ⎣⎡ϕ¨θ¨ψ¨⎦⎤
转动惯量矩阵为
J = [ J x x − J x y − J x z − J y x J y y − J y z − J z x − J z y J z z ] \mathbf{J}=\left[ \begin{array}{ccc}{J_{x x}} & {-J_{x y}} & {-J_{x z}} \\ {-J_{y x}} & {J_{y y}} & {-J_{y z}} \\ {-J_{z x}} & {-J_{z y}} & {J_{z z}}\end{array}\right] J=⎣⎡Jxx−Jyx−Jzx−JxyJyy−Jzy−Jxz−JyzJzz⎦⎤
其中 J x y = J y x , J x z = J z x , J y z = J z y J_{xy}=J_{yx},J_{xz}=J_{zx},J_{y z}=J_{z y} Jxy=Jyx,Jxz=Jzx,Jyz=Jzy,对于标准多旋翼这样的中心对成物体,有 J x y = J x z = J y z = 0 J_{xy}=J_{xz}=J_{y z}=0 Jxy=Jxz=Jyz=0,则有
[ J x x 0 0 0 J y y 0 0 0 J z z ] \left[ \begin{array}{lll}{J_{x x}} & {0} & {0} \\ {0} & {J_{y y}} & {0} \\ {0} & {0} & {J_{z z}}\end{array}\right] ⎣⎡Jxx000Jyy000Jzz⎦⎤
整理可得
{ ϕ ¨ = θ ˙ ψ ˙ J y − J z J x + τ x J x θ ¨ = ϕ ˙ ψ ˙ J z − J x J y + τ y J y ψ ¨ = ϕ ˙ θ ˙ J x − J y J z + τ z J z \left\{\begin{array}{l}{\ddot{\phi}=\dot{\theta} \dot{\psi} \frac{J_{y}-J_{z}}{J_{x}}+\frac{\tau_{x}}{J_{x}}} \\ {\ddot{\theta}=\dot{\phi} \dot{\psi} \frac{J_{z}-J_{x}}{J_{y}}+\frac{\tau_{y}}{J_{y}}} \\ {\ddot{\psi}=\dot{\phi} \dot{\theta} \frac{J_{x}-J_{y}}{J_{z}}+\frac{\tau_{z}}{J_{z}}}\end{array}\right. ⎩⎪⎨⎪⎧ϕ¨=θ˙ψ˙JxJy−Jz+Jxτxθ¨=ϕ˙ψ˙JyJz−Jx+Jyτyψ¨=ϕ˙θ˙JzJx−Jy+Jzτz
至此,多旋翼的模型建立完毕。可以看到建模的其实就是为了得到输入的力与加速度的关系,通过牛顿方程可以得到线运动的加速度,通过欧拉方程可以得到角加速度,所以这种建模方法也叫牛顿-欧拉方程。