【控制】四旋翼无人机姿态角分析
搞起来,从建模到控制,再到仿真
Link: 【控制】《多无人机协同控制技术》周伟老师-第3章-面向协同控制的无人机单机控制
文章目录
- 1. 坐标系
- 2. 角度介绍
- 航向角 yaw angel
- 俯仰角 pitch angle
- 横滚角 roll angle
- 3. 控制原理
- 坐标系
- 3.1 基础知识
- 力矩
- 转矩
- 角动量
- 欧拉运动学方程
- 移动
- 旋转
- 惯性矩
- 列写动力学方程
1. 坐标系
2. 角度介绍
绕三个轴的旋转值 pitch,yaw,roll 来自航空界的叫法,翻译为俯仰角,偏航角,翻滚角,非常形象。它们不一定如上所述,但一定分别代表绕 y,z,x 的旋转值。
一般定义载体的右、前、上三个方向构成右手系:
-
绕向前(x轴)的轴旋转就是横滚角;
-
绕向右(y轴)的轴旋转就是俯仰角;
-
绕向上(z轴)的轴旋转就是航向角。
航向角 yaw angel
俯仰角 pitch angle
横滚角 roll angle
3. 控制原理
可以看到建模的其实就是为了得到输入的力与加速度的关系,通过牛顿方程可以得到平动的加速度,通过欧拉方程可以得到角加速度,所以这种建模方法也叫牛顿-欧拉方程:
坐标系
3.1 基础知识
力矩
力矩,表示力对物体作用时所产生的转动效应的物理量。力矩能使物体获得角加速度。力 FFF 对矩心 OOO 点的矩简称力矩,用 M(F)M(F)M(F) 表示,其大小等于力 FFF 的大小与力臂 rrr 的乘积。即:
M(F)=F×r=dLdtM(F) = F \times r = \frac{dL}{dt}M(F)=F×r=dtdL
其中,FFF 为矩心 OOO 点的力,rrr 是矩心相对 OOO 点的位置矢量,LLL为 角动量,根据角动量定理得到。
转矩
转矩,使机械元件转动的力矩称为转动力矩,简称转矩,又称扭矩,与转动惯量 III 具有如下关系:
M(F)=IdwdtM(F) = I \frac{dw}{dt}M(F)=Idtdw
其中,III 为转动惯量,www 为角速度。
角动量
角动量
L=r×pL = r \times pL=r×p
其中,ppp 为质点 OOO 点的动量,rrr 是质点相对 OOO 点的位置矢量。
欧拉运动学方程
欧拉运动学方程
A∈R3A\in \mathbb{R}^3A∈R3 代表一个刚体。σ(r)\sigma(r)σ(r) 代表 r∈Ar\in\mathbb{A}r∈A 的一点的刚体密度,m(A)m(A)m(A) 的总质量为:
m=∫Aσ(r)drm = \int_A \sigma(r) drm=∫Aσ(r)dr
dr=dr1⋅dr2⋅dr3dr = dr_1\cdot dr_2\cdot dr_3dr=dr1⋅dr2⋅dr3 表示一个柱状的提及,p∈R3p\in\mathbb{R}^3p∈R3 表示 AAA 的质心,p=(p1,p2,p3)p=(p_1,p_2,p_3)p=(p1,p2,p3):
pi=1m∫Ariσ(r)drp_i = \frac{1}{m} \int_A r_i \sigma(r) drpi=m1∫Ariσ(r)dr
由于刚体的内部力相互抵消,外部边界的力的集合可以合成一个力 FFF 和力矩 NNN 作用在质点 ppp:
F=∑fF=\sum fF=∑f
N=∑r×fN = \sum r\times fN=∑r×f
移动
刚体不旋转只移动:动量 D=mp˙D = m\dot{p}D=mp˙
牛顿第二定理:F(u)=dDdt=mp¨F(u) = \frac{dD}{dt} = m \ddot{p}F(u)=dtdD=mp¨
可以得到六个状态转移方程:
p˙i=vi,for i=1,2,3\dot{p}_i = v_i, ~~\text{for}~ i = 1,2,3p˙i=vi, for i=1,2,3
v˙i=ui=Fi(u)/m,for i=1,2,3\dot{v}_i = u_i=F_i(u)/m, ~~\text{for}~ i = 1,2,3v˙i=ui=Fi(u)/m, for i=1,2,3
Expand:
{p˙x=vxp˙y=vyp˙z=vzv˙x=ux=Fx(u)/mv˙y=uy=Fy(u)/mv˙z=uz=Fz(u)/m(1)\left\{\begin{aligned} &\dot{p}_x = v_x \\ &\dot{p}_y = v_y \\ &\dot{p}_z = v_z \\ &\dot{v}_x = u_x = F_x(u)/m \\ &\dot{v}_y = u_y = F_y(u)/m \\ &\dot{v}_z = u_z = F_z(u)/m \\ \end{aligned}\right.\tag{1}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧p˙x=vxp˙y=vyp˙z=vzv˙x=ux=Fx(u)/mv˙y=uy=Fy(u)/mv˙z=uz=Fz(u)/m(1)
旋转
旋转可以同移动进行解耦,所以现在只在 translating frame 中考虑纯粹的旋转运动。
LLL 为角动量,则力矩为:
M(u)=dLdtM(u) = \frac{dL}{dt}M(u)=dtdL
参考上图,旋转角速度:vvv 是单位向量,表示旋转方向,θ\thetaθ 表示旋转角度
w=vdθdtw = v \frac{d\theta}{dt}w=vdtdθ
将此角速度,转化为 yaw-pitch-roll 形式表示的旋转角速度:
[γ˙β˙α˙]=1cosβ[cosαsinα0−sinαcosβcosαcosβ0cosαsinβsinαsinβ−cosβ][w1w2w3]\left[\begin{matrix} \dot{\gamma} \\ \dot{\beta} \\ \dot{\alpha} \\ \end{matrix}\right]= \frac{1}{\cos\beta} \left[\begin{matrix} \cos\alpha & \sin\alpha & 0 \\ -\sin\alpha \cos\beta & \cos\alpha \cos\beta & 0 \\ \cos\alpha \sin\beta & \sin\alpha \sin\beta & -\cos\beta \\ \end{matrix}\right] \left[\begin{matrix} w_1 \\ w_2 \\ w_3 \\ \end{matrix}\right] ⎣⎡γ˙β˙α˙⎦⎤=cosβ1⎣⎡cosα−sinαcosβcosαsinβsinαcosαcosβsinαsinβ00−cosβ⎦⎤⎣⎡w1w2w3⎦⎤
惯性矩
通常平面刚片且是均质的,则也称为转动惯量
EEE 是整个刚体的角动量。
经过以下一系列操作,主要是点乘和叉乘之间的转换:
E=∫A(q)((r⋅r)w−(r⋅w)r)σ(r)drE = \int_{A(q)} ((r\cdot r)w - (r\cdot w)r) \sigma(r) drE=∫A(q)((r⋅r)w−(r⋅w)r)σ(r)dr
E=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)wE = (\int_{A(q)} ((r\cdot r)I_3 - rr^T) \sigma(r) dr)wE=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)w
惯性矩阵 3×33\times33×3 对称矩阵:
I(q)=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)I(q) = (\int_{A(q)} ((r\cdot r)I_3 - rr^T) \sigma(r) dr)I(q)=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)
则刚体的角动量:
E=IwE = I wE=Iw
From:
M=Idwdt=dEdtM = I \frac{dw}{dt} = \frac{dE}{dt}M=Idtdw=dtdE
刚体所受到的力矩:
N(u)=dEdt=d(Iw)dt=Idwdt+dIdtwN(u) = \frac{dE}{dt} = \frac{d(Iw)}{dt} = I\frac{dw}{dt} + \frac{dI}{dt}wN(u)=dtdE=dtd(Iw)=Idtdw+dtdIw
注意上面求得的惯性矩阵 III 是在 translating frame 中考虑的,它会随着旋转 qqq 的变化而变化:
I(q)=[I11(q)I12(q)I13(q)I21(q)I22(q)I23(q)I31(q)I32(q)I33(q)]I(q) = \left[\begin{matrix} I_{11}(q) & I_{12}(q) & I_{13}(q) \\ I_{21}(q) & I_{22}(q) & I_{23}(q) \\ I_{31}(q) & I_{32}(q) & I_{33}(q) \\ \end{matrix}\right] I(q)=⎣⎡I11(q)I21(q)I31(q)I12(q)I22(q)I32(q)I13(q)I23(q)I33(q)⎦⎤
这里我们将惯性矩阵定义在 body frame 中,表示成 III,则 III 与 I(q)I(q)I(q) 的关系(其中 RRR 是 body frame 到 translating frame 的旋转矩阵):
I(q)=RII(q) = R II(q)=RI
则刚体所受到的力矩简化为:
N(u)=Idwdt+w⋅(Iw)N(u) = I \frac{dw}{dt} + w\cdot(Iw)N(u)=Idtdw+w⋅(Iw)
如果选择的 body frame 等于惯性主轴,那么惯性矩阵就简化为:
I=[I11(q)000I22(q)000I33(q)]I = \left[\begin{matrix} I_{11}(q) & 0 & 0 \\ 0 & I_{22}(q) & 0 \\ 0 & 0 & I_{33}(q) \\ \end{matrix}\right] I=⎣⎡I11(q)000I22(q)000I33(q)⎦⎤
列写动力学方程
这里假设选择的 body frame 等于惯性主轴,求得角加速度 w˙\dot{w}w˙ 方程:
[N1(u)N2(u)N3(u)]=[I11000I22000I33][w˙1w˙2w˙3]+[0−w3w2w30−w1−w2w10][I11000I22000I33][w1w2w3]\left[\begin{matrix} N_1(u) \\ N_2(u) \\ N_3(u) \\ \end{matrix}\right] = \left[\begin{matrix} I_{11} & 0 & 0 \\ 0 & I_{22} & 0 \\ 0 & 0 & I_{33} \\ \end{matrix}\right] \left[\begin{matrix} \dot{w}_1 \\ \dot{w}_2 \\ \dot{w}_3 \\ \end{matrix}\right] + \left[\begin{matrix} 0 & -w_3 & w_2 \\ w_3 & 0 & -w_1 \\ -w_2 & w_1 & 0 \\ \end{matrix}\right] \left[\begin{matrix} I_{11} & 0 & 0 \\ 0 & I_{22} & 0 \\ 0 & 0 & I_{33} \\ \end{matrix}\right] \left[\begin{matrix} w_1 \\ w_2 \\ w_3 \\ \end{matrix}\right] ⎣⎡N1(u)N2(u)N3(u)⎦⎤=⎣⎡I11000I22000I33⎦⎤⎣⎡w˙1w˙2w˙3⎦⎤+⎣⎡0w3−w2−w30w1w2−w10⎦⎤⎣⎡I11000I22000I33⎦⎤⎣⎡w1w2w3⎦⎤
Ref: 机器人动力学(Basic Newton-Euler Mechanics)
Ref: 机器人运动学(a simple car)
Ref: 机器人系统动力学——惯性参数
Ref: 四旋翼姿态解算原理
Ref: 如何对四旋翼飞行器进行精确的数学建模?
Ref: 四旋翼建模、控制与仿真(理论部分)
Ref: 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角
Ref: 横滚角,俯仰角,航向角
Ref: 四旋翼无人机飞行控制入门(一)
Ref: 四旋翼飞行控制入门(二)
Ref: (三)专家PID控制理论基础
总结
以上是生活随笔为你收集整理的【控制】四旋翼无人机姿态角分析的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Paper】2020_Distribu
- 下一篇: 天津科技大学 物理实验平台使用教程及相关