Backstepping反步法控制四旋翼无人机(一)
目录四旋翼基本参数基本假设转换矩阵基本方程线性化综合四旋翼基本参数四旋翼作为一种可以在空间中自由飞行的无人飞行器,具有6个自由度和4个螺旋桨。其中,4个螺旋桨提供动力,作为四旋翼的动力源;6个自由度分别为:3个位置坐标x,y,zx,y,zx,y,z,3个角度坐标θ\thetaθ(俯仰),φ\varphiφ(滚转),ψ\psiψ(偏航)。三种角表示如下:基本假设为了研究方便,作出以下假设:四旋翼为刚
四旋翼基本参数
四旋翼作为一种可以在空间中自由飞行的无人飞行器,具有6个自由度和4个螺旋桨。其中,4个螺旋桨提供动力,作为四旋翼的动力源;6个自由度分别为:3个位置坐标 x , y , z x,y,z x,y,z,3个角度坐标 θ \theta θ(俯仰), φ \varphi φ(滚转), ψ \psi ψ(偏航)。三种角表示如下:
基本假设
为了研究方便,作出以下假设:
- 四旋翼为刚体;
- 四旋翼几何中心处于其重心;
- 只有螺旋桨的拉力 T T T和重力 G G G作用于四旋翼,且拉力 T T T垂直于四旋翼的几何平面,重力 G G G指向地心;
- 四旋翼的转动惯量和质量不变;
- 呈对角线分布的两个螺旋桨转动方向相同;
- 忽略空气阻力。
转换矩阵
为研究四旋翼,需要建立坐标系。但随之而来的问题是,应该相对于什么建立坐标系。可以相对四旋翼本身建立坐标系,这种坐标系便于研究四旋翼的俯仰、滚转、偏航角,但显然无法得知四旋翼在具体空间中的位置坐标;亦可以相对地球建立坐标系,该坐标系便于得知四旋翼的位置信息,但其角度信息比较难以求解。
由此可见,在研究四旋翼过程中,势必需要经过两种坐标系的转化。由此得出转换矩阵
R b e = [ cos θ cos ψ cos ψ sin θ sin φ − sin ψ cos φ cos ψ sin θ cos φ + sin ψ sin φ cos θ sin ψ sin ψ sin θ sin φ + cos ψ cos φ sin ψ sin θ cos φ − cos ψ sin φ − sin θ sin φ cos θ cos φ cos θ ] R e b = [ cos θ cos ψ cos θ sin ψ − sin θ cos ψ sin θ sin φ − sin ψ cos φ sin ψ sin θ sin φ + cos ψ cos φ sin φ cos θ cos ψ sin θ cos φ + sin ψ sin φ sin ψ sin θ cos φ − cos ψ sin φ cos φ cos θ ] \begin{aligned} \mathbf{R}_b^e&= \begin{bmatrix} \cos{\theta} \cos{\psi} & \cos{\psi} \sin{\theta} \sin{\varphi}-\sin{\psi} \cos{\varphi} & \cos{\psi} \sin{\theta} \cos{\varphi}+\sin{\psi} \sin{\varphi}\\ \cos{\theta} \sin{\psi} & \sin{\psi} \sin{\theta} \sin{\varphi}+\cos {\psi} \cos{\varphi} & \sin{\psi} \sin{\theta} \cos{\varphi}-\cos{\psi} \sin{\varphi}\\ -\sin{\theta} & \sin{\varphi} \cos{\theta} & \cos{\varphi} \cos{\theta} \end{bmatrix} \\ \mathbf{R}_e^b&= \begin{bmatrix} \cos{\theta} \cos{\psi} & \cos{\theta} \sin{\psi} & -\sin{\theta}\\ \cos{\psi} \sin{\theta} \sin{\varphi} -\sin{\psi} \cos{\varphi} & \sin{\psi} \sin{\theta} \sin{\varphi}+\cos {\psi} \cos{\varphi} & \sin{\varphi} \cos{\theta}\\ \cos{\psi} \sin{\theta} \cos{\varphi} + \sin{\psi} \sin{\varphi} & \sin{\psi} \sin{\theta} \cos{\varphi} - \cos{\psi} \sin{\varphi} & \cos{\varphi} \cos{\theta} \end{bmatrix} \end{aligned} RbeReb=⎣⎡cosθcosψcosθsinψ−sinθcosψsinθsinφ−sinψcosφsinψsinθsinφ+cosψcosφsinφcosθcosψsinθcosφ+sinψsinφsinψsinθcosφ−cosψsinφcosφcosθ⎦⎤=⎣⎡cosθcosψcosψsinθsinφ−sinψcosφcosψsinθcosφ+sinψsinφcosθsinψsinψsinθsinφ+cosψcosφsinψsinθcosφ−cosψsinφ−sinθsinφcosθcosφcosθ⎦⎤
其中上下标的含义解释如下:以 R b e \mathbf{R}_b^e Rbe为例,指从机体坐标系 b b b转为地心坐标系 e e e。若某个相对于机体的参数为 A b A^b Ab,则它相对于地心的参数为 A e = A b ⋅ R b e A^e = A^b \cdot \mathbf{R}_b^e Ae=Ab⋅Rbe。
一般地,若设机体坐标系 b b b下角速度为 φ ˙ , θ ˙ , ψ ˙ \dot{\varphi}, \dot{\theta}, \dot{\psi} φ˙,θ˙,ψ˙,地心坐标系 e e e下角速度为 p , q , r p,q,r p,q,r,则存在如下关系:
[ φ ˙ θ ˙ ψ ˙ ] = [ 1 tan θ sin φ tan θ cos φ 0 cos φ − sin φ 0 sin φ cos θ cos φ cos θ ] [ p q r ] (1) \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix}= \begin{bmatrix} 1 & \tan{\theta} \sin{\varphi} & \tan{\theta} \cos{\varphi} \\ 0 & \cos{\varphi} & -\sin{\varphi} \\ 0 & \dfrac{\sin{\varphi} }{\cos{\theta}} & \dfrac{ \cos{\varphi} } {\cos{\theta}} \end{bmatrix} \begin{bmatrix} p\\ q\\ r \end{bmatrix} \tag{1} ⎣⎡φ˙θ˙ψ˙⎦⎤=⎣⎢⎡100tanθsinφcosφcosθsinφtanθcosφ−sinφcosθcosφ⎦⎥⎤⎣⎡pqr⎦⎤(1)
基本方程
设每个螺旋桨可产生的向上拉力为 F i b F_i^b Fib,则总拉力向量为
F T b = [ 0 0 ∑ i = 1 4 F i b ] \mathbf{F}_T^b= \begin{bmatrix} 0\\ 0\\ \sum\limits_{i=1}^4 F_i^b \end{bmatrix} FTb=⎣⎢⎢⎡00i=1∑4Fib⎦⎥⎥⎤
其中下标 T T T表示拉力, b b b表示相对于机体坐标系。
可以看出,拉力向量 F T b \mathbf{F}_T^b FTb只有在 z z z轴上才不为0。
同时,四旋翼还受到重力
G e = [ 0 0 − m g ] \mathbf{G}^e= \begin{bmatrix} 0\\ 0\\ -mg \end{bmatrix} Ge=⎣⎡00−mg⎦⎤
上标 e e e表示相对于地球坐标系。
将上述方程写在地球坐标系 e e e下,可以得到
∑ F e = F T e + G e = R b e ⋅ F T b + G e = [ ( cos ψ sin θ cos φ + sin ψ sin φ ) ∑ i = 1 4 F i b ( sin ψ sin θ cos φ − cos ψ sin φ ) ∑ i = 1 4 F i b cos φ cos θ ∑ i = 1 4 F i b − m g ] \begin{aligned} \sum \mathbf{F^e} &= \mathbf{F}_T^e+\mathbf{G}^e\\ &= \mathbf{R}_b^e \cdot \mathbf{F}_T^b+\mathbf{G}^e \\ &= \begin{bmatrix} \left( \cos{\psi} \sin{\theta} \cos{\varphi}+\sin{\psi} \sin{\varphi} \right) \sum\limits_{i=1}^4 F_i^b \\ \left(\sin{\psi} \sin{\theta} \cos{\varphi}-\cos{\psi} \sin{\varphi}\right) \sum\limits_{i=1}^4 F_i^b \\ \cos{\varphi} \cos{\theta} \sum\limits _{i=1}^4 F_i^b -mg \end{bmatrix} \end{aligned} ∑Fe=FTe+Ge=Rbe⋅FTb+Ge=⎣⎢⎢⎢⎢⎢⎢⎡(cosψsinθcosφ+sinψsinφ)i=1∑4Fib(sinψsinθcosφ−cosψsinφ)i=1∑4Fibcosφcosθi=1∑4Fib−mg⎦⎥⎥⎥⎥⎥⎥⎤
在地球坐标系 e e e下,由欧拉方程有
∑ F e = m V ˙ e \sum \mathbf{F}^e=m \dot{V}^e ∑Fe=mV˙e
即
[ ( cos ψ sin θ cos φ + sin ψ sin φ ) ∑ i = 1 4 F i b ( sin ψ sin θ cos φ − cos ψ sin φ ) ∑ i = 1 4 F i b cos φ cos θ ∑ i = 1 4 F i b − m g ] = m [ x ¨ y ¨ z ¨ ] (2) \begin{bmatrix} (\cos{\psi} \sin{\theta} \cos{\varphi}+\sin{\psi} \sin{\varphi}) \sum\limits_{i=1}^4 F_i^b \\ (\sin{\psi} \sin{\theta} \cos{\varphi}-\cos{\psi} \sin{\varphi}) \sum\limits_{i=1}^4 F_i^b \\ \cos{\varphi} \cos{\theta} \sum\limits _{i=1}^4 F_i^b -mg \end{bmatrix}= m \begin{bmatrix} \ddot{x}\\ \ddot{y}\\ \ddot{z} \end{bmatrix} \tag{2} ⎣⎢⎢⎢⎢⎢⎢⎡(cosψsinθcosφ+sinψsinφ)i=1∑4Fib(sinψsinθcosφ−cosψsinφ)i=1∑4Fibcosφcosθi=1∑4Fib−mg⎦⎥⎥⎥⎥⎥⎥⎤=m⎣⎡x¨y¨z¨⎦⎤(2)
同时,由旋转体的欧拉方程也可以得到
J ⋅ ω ˙ b + ω b × ( J ⋅ ω b ) = [ J x 0 0 0 J y 0 0 0 J z ] [ p ˙ q ˙ r ˙ ] + [ p q r ] × ( [ J x 0 0 0 J y 0 0 0 J z ] [ p q r ] ) = [ J x p ˙ + ( J z − J y ) q r J y q ˙ + ( J x − J z ) p r J z r ˙ + ( J y − J x ) p q ] \begin{aligned} \mathbf{J} \cdot \dot{\mathbf{\omega}}^b+\mathbf{\omega} ^b\times(\mathbf{J} \cdot \mathbf{\omega}^b) &= \begin{bmatrix} J_x & 0 & 0 \\ 0 & J_y & 0 \\ 0 & 0 & J_z \end{bmatrix} \begin{bmatrix} \dot{p} \\ \dot{q} \\ \dot{r} \end{bmatrix} + \begin{bmatrix} p \\ q \\ r \end{bmatrix} \times \left( \begin{bmatrix} J_x & 0 & 0 \\ 0 & J_y & 0 \\ 0 & 0 & J_z \end{bmatrix} \begin{bmatrix} p \\ q \\ r \end{bmatrix} \right) \\ &= \begin{bmatrix} J_x \dot{p} + \left( J_z-J_y \right) qr \\ J_y \dot{q} + \left( J_x-J_z \right) pr \\ J_z \dot{r} + \left( J_y-J_x \right) pq \end{bmatrix} \end{aligned} J⋅ω˙b+ωb×(J⋅ωb)=⎣⎡Jx000Jy000Jz⎦⎤⎣⎡p˙q˙r˙⎦⎤+⎣⎡pqr⎦⎤×⎝⎛⎣⎡Jx000Jy000Jz⎦⎤⎣⎡pqr⎦⎤⎠⎞=⎣⎡Jxp˙+(Jz−Jy)qrJyq˙+(Jx−Jz)prJzr˙+(Jy−Jx)pq⎦⎤
同时该欧拉方程又可以表示为
∑ M b = τ = [ M T x M T y M T z ] = [ l ( F 2 − F 4 ) l ( F 1 − F 3 ) M D 1 − M D 2 + M D 3 − M D 4 ] \begin{aligned} \sum \mathbf{M}^b=\tau&= \begin{bmatrix} M_{Tx} \\ M_{Ty} \\ M_{Tz} \end{bmatrix} \\ &= \begin{bmatrix} l \left( F_2-F4 \right) \\ l \left( F_1-F_3 \right) \\ M_{D1}-M_{D2}+M_{D3}-M_{D4} \end{bmatrix} \end{aligned} ∑Mb=τ=⎣⎡MTxMTyMTz⎦⎤=⎣⎡l(F2−F4)l(F1−F3)MD1−MD2+MD3−MD4⎦⎤
其中 τ \tau τ为拉力的力矩, M D i M_{Di} MDi为第 i i i个螺旋桨对 z z z轴的力矩。
于是可以有
[ l ( F 2 − F 4 ) l ( F 1 − F 3 ) M D 1 − M D 2 + M D 3 − M D 4 ] = [ J x p ˙ + ( J z − J y ) q r J y q ˙ + ( J x − J z ) p r J z r ˙ + ( J y − J x ) p q ] \begin{bmatrix} l \left( F_2-F_4 \right) \\ l \left( F_1-F_3 \right) \\ M_{D1}-M_{D2}+M_{D3}-M_{D4} \end{bmatrix} = \begin{bmatrix} J_x \dot{p} + \left( J_z-J_y \right) qr \\ J_y \dot{q} + \left( J_x-J_z \right) pr \\ J_z \dot{r} + \left( J_y-J_x \right) pq \end{bmatrix} ⎣⎡l(F2−F4)l(F1−F3)MD1−MD2+MD3−MD4⎦⎤=⎣⎡Jxp˙+(Jz−Jy)qrJyq˙+(Jx−Jz)prJzr˙+(Jy−Jx)pq⎦⎤
化简得
[ J x p ˙ J y q ˙ J z r ˙ ] = [ l ( F 2 − F 4 ) − ( J z − J y ) q r l ( F 1 − F 3 ) − ( J x − J z ) p r M D 1 − M D 2 + M D 3 − M D 4 − ( J y − J x ) p q ] (3) \begin{bmatrix} J_x \dot{p} \\ J_y \dot{q} \\ J_z \dot{r} \end{bmatrix}= \begin{bmatrix} l \left( F_2-F_4 \right) - \left( J_z-J_y \right) qr \\ l \left( F_1-F_3 \right) - \left( J_x-J_z \right) pr \\ M_{D1}-M_{D2}+M_{D3}-M_{D4} - \left( J_y-J_x \right) pq \end{bmatrix}\tag{3} ⎣⎡Jxp˙Jyq˙Jzr˙⎦⎤=⎣⎡l(F2−F4)−(Jz−Jy)qrl(F1−F3)−(Jx−Jz)prMD1−MD2+MD3−MD4−(Jy−Jx)pq⎦⎤(3)
( 1 ) ( 2 ) ( 3 ) (1)(2)(3) (1)(2)(3)分别为三个描述四旋翼运动学的方程。
线性化
假设四旋翼飞行状况十分平稳,因此三个角 φ , θ , ψ \varphi, \theta, \psi φ,θ,ψ的值都很小 ( ≈ 0 ) (\approx 0) (≈0)。这样公式 ( 1 ) (1) (1)可以简化为
[ φ ˙ θ ˙ ψ ˙ ] = [ 1 tan θ sin φ tan θ cos φ 0 cos φ − sin φ 0 sin φ cos θ cos φ cos θ ] [ p q r ] ≈ [ p q r ] (4) \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix}= \begin{bmatrix} 1 & \tan{\theta} \sin{\varphi} & \tan{\theta} \cos{\varphi} \\ 0 & \cos{\varphi} & -\sin{\varphi} \\ 0 & \dfrac{\sin{\varphi} }{\cos{\theta}} & \dfrac{ \cos{\varphi} } {\cos{\theta}} \end{bmatrix} \begin{bmatrix} p\\ q\\ r \end{bmatrix} \approx \begin{bmatrix} p \\ q \\ r \end{bmatrix} \tag{4} ⎣⎡φ˙θ˙ψ˙⎦⎤=⎣⎢⎡100tanθsinφcosφcosθsinφtanθcosφ−sinφcosθcosφ⎦⎥⎤⎣⎡pqr⎦⎤≈⎣⎡pqr⎦⎤(4)
则公式 ( 2 ) ( 3 ) ( 4 ) (2)(3)(4) (2)(3)(4)可以合并为
[ φ ¨ θ ¨ ψ ¨ x ¨ y ¨ z ¨ ] = [ θ ˙ ψ ˙ J y − J z J x + l J x ( F 2 − F 4 ) φ ˙ ψ ˙ J z − J x J y + l J y ( F 1 − F 3 ) φ ˙ θ ˙ J x − J y J z + 1 J z ( M D 1 − M D 2 + M D 3 − M D 4 ) 1 m ( cos ψ sin θ cos φ + sin ψ sin φ ) ∑ i = 1 4 F i b 1 m ( sin ψ sin θ cos φ − cos ψ sin φ ) ∑ i = 1 4 F i b 1 m cos φ cos θ ∑ i = 1 4 F i b − g ] (5) \begin{bmatrix} \ddot{\varphi} \\ \ddot{\theta} \\ \ddot{\psi} \\ \ddot{x} \\ \ddot{y} \\ \ddot{z} \end{bmatrix}= \begin{bmatrix} \dot{\theta} \dot{\psi} \dfrac{J_y-J_z}{J_x}+\dfrac{l}{J_x} \left( F_2-F_4 \right) \\ \dot{\varphi} \dot{\psi} \dfrac{J_z-J_x}{J_y}+\dfrac{l}{J_y} \left( F_1-F_3 \right) \\ \dot{\varphi} \dot{\theta} \dfrac{J_x-J_y}{J_z}+\dfrac{1}{J_z} \left( M_{D1}-M_{D2}+M_{D3}-M_{D4} \right) \\ \dfrac{1}{m} \left( \cos{\psi} \sin{\theta} \cos{\varphi} + \sin{\psi} \sin{\varphi} \right) \sum\limits _{i=1}^4 F_i^b \\ \dfrac{1}{m} \left( \sin{\psi} \sin{\theta} \cos{\varphi}-\cos{\psi} \sin{\varphi} \right) \sum\limits_{i=1}^4 F_i^b \\ \dfrac{1}{m} \cos{\varphi} \cos{\theta} \sum\limits_{i=1}^4 F_i^b -g \end{bmatrix} \tag{5} ⎣⎢⎢⎢⎢⎢⎢⎡φ¨θ¨ψ¨x¨y¨z¨⎦⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡θ˙ψ˙JxJy−Jz+Jxl(F2−F4)φ˙ψ˙JyJz−Jx+Jyl(F1−F3)φ˙θ˙JzJx−Jy+Jz1(MD1−MD2+MD3−MD4)m1(cosψsinθcosφ+sinψsinφ)i=1∑4Fibm1(sinψsinθcosφ−cosψsinφ)i=1∑4Fibm1cosφcosθi=1∑4Fib−g⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤(5)
综合
经过上述推导,四旋翼的运动学方程已经悉数得出,可以合并表示在 ( 5 ) (5) (5)式中。
在下一节分享中,将详细推导如何把反步法运用到四旋翼无人机的建模当中。
更多推荐
所有评论(0)