【控制】四旋翼无人机姿态角分析
搞起來,從建模到控制,再到仿真
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?∫A?ri?σ(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¨?
可以得到六個狀態(tài)轉移方程:
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?=vx?p˙?y?=vy?p˙?z?=vz?v˙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β???????w1?w2?w3?????
慣性矩
通常平面剛片且是均質的,則也稱為轉動慣量
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?+dtdI?w
注意上面求得的慣性矩陣 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)00?0I22?(q)0?00I33?(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)????=???I11?00?0I22?0?00I33????????w˙1?w˙2?w˙3?????+???0w3??w2???w3?0w1??w2??w1?0???????I11?00?0I22?0?00I33????????w1?w2?w3?????
Ref: 機器人動力學(Basic Newton-Euler Mechanics)
Ref: 機器人運動學(a simple car)
Ref: 機器人系統(tǒng)動力學——慣性參數
Ref: 四旋翼姿態(tài)解算原理
Ref: 如何對四旋翼飛行器進行精確的數學建模?
Ref: 四旋翼建模、控制與仿真(理論部分)
Ref: 四旋翼飛行器13——歐拉中的俯仰、橫滾、偏航角
Ref: 橫滾角,俯仰角,航向角
Ref: 四旋翼無人機飛行控制入門(一)
Ref: 四旋翼飛行控制入門(二)
Ref: (三)專家PID控制理論基礎
總結
以上是生活随笔為你收集整理的【控制】四旋翼无人机姿态角分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Paper】2020_Distribu
- 下一篇: 天津科技大学 物理实验平台使用教程及相关