日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习四旋翼(一):动力学模型和空间姿态表示

發布時間:2024/3/26 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习四旋翼(一):动力学模型和空间姿态表示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

暑假期間,對于四旋翼有一點興趣,沒有親手做,但是看了一些資料。這個系列文章只是對自己看的東西的記錄,對于想要學習了解相關知識的同學沒有任何參考價值!

本篇是系列第一篇,分為兩部分。第一部分定性描述了四旋翼飛行的動力學原理,第二部分從旋轉矩陣,歐拉角,四元數三個方面介紹了三維空間剛體運動的表示方法。

一.動力學模型

可以把四旋翼的運動模型分為動力學模型和運動學模型兩個部分。由于四旋翼的動力學模型比較簡單,這里只對四旋翼的運動控制定性說明。

1.升降運動
四旋翼的四個漿葉分X形或十字形,相鄰的兩個旋翼轉動方向相反,它們產生的反向扭矩剛好相互抵消,使得四軸在偏航方向能夠保持平衡。當轉速增加,飛行器克服升力,高度升高。反之轉速減小,高度也就隨之下降。

2.俯仰運動
如圖所示,當電機1轉速增大,電機3轉速減小,飛行器產生一個向上的力矩,隨之電機1上升,電機3下降。同時飛行器會向電機3的方向前進。

3.橫滾運動
如圖所示,當電機1,2中的一個提高轉速另一個減小,就會產生橫滾運動。同時飛行器也會左右移動。

4.偏航運動
偏航運動是機體圍繞Z軸旋轉的過程。單個旋翼,旋轉時會產生反扭距,使得機身朝反方向旋轉,這也是直升機需要尾槳的原因。圖中逆時針旋轉的兩個槳加速,順時針旋轉的兩個槳減速,這樣機體就能順時針旋轉。

2.三維空間剛體運動姿態表示

1.歐拉角
首先介紹歐拉發明的歐拉角說起。歐拉角應該是最容易理解的旋轉表示方法。

如圖所示,一般使用ZYX的順序旋轉物體,下圖是一架飛機按照ZYX組合進行旋轉產生歐拉角的過程,其中,ψ為偏航角,θ為俯仰角,φ為滾轉角。這樣使用三個參數就能唯一表示一種旋轉方式。


歐拉角最大的問題是存在萬向鎖,數學上叫做奇異性。可以使用手中的手機感受一下。先將手機屏幕面于地面平行,繞Z軸旋轉任意角度,然后將手機向上仰90度,使得屏幕面和地面垂直,這樣不論如何,第三次旋轉和第一次旋轉將使用同一個Z軸,使得物體相當于損失了一個自由度。

2.旋轉矩陣
在線性代數中學過,

[a1a2a3]=R?[a1,a2,a3,]\begin{bmatrix} a_1\\a_2\\a_3 \end{bmatrix} \quad=R*\begin{bmatrix} a_1^,\\a_2^,\\a_3^, \end{bmatrix} \quad ???a1?a2?a3?????=R????a1,?a2,?a3,?????
將單位正交基a’轉換為另一個正交基,這個轉換矩陣R就是旋轉矩陣。

在二維坐標系之下,旋轉X軸一個角度θ,得到旋轉矩陣
[cosθsinθ?sinθcosθ]\begin{bmatrix} cosθ&sinθ\\-sinθ&cosθ\\ \end{bmatrix} [cosθ?sinθ?sinθcosθ?]
同理,按照ψ為偏航角,θ為俯仰角,φ為滾轉角的順序旋轉之后,可以得到以下三個旋轉矩陣。

旋轉矩陣R=RψRθRφ旋轉矩陣R=R_ψR_θR_φ R=Rψ?Rθ?Rφ?

當俯仰角θ達到90度時,
R=[00?1sin(φ?ψ)cos(φ?ψ)0cos(φ?ψ)?sin(φ?ψ)0]R=\begin{bmatrix} 0&0&-1\\sin(φ-ψ)&cos(φ-ψ)&0\\cos(φ-ψ)&-sin(φ-ψ)&0 \end{bmatrix} R=???0sin(φ?ψ)cos(φ?ψ)?0cos(φ?ψ)?sin(φ?ψ)??100????
可見這個這個旋轉矩陣的第一行和第三列固定不變,相當于損失了一個自由度,這也是萬向鎖的數學解釋。

注意:不同的資料可能旋轉矩陣表示不一樣。本文中都是被動旋轉求出的旋轉矩陣。

3.四元數
先說明四元數的結構
q=q0+q1i+q2j+q3kq=q_0+q_1i+q_2j+q_3k q=q0?+q1?i+q2?j+q3?k
它擁有一個實部和三個虛部,它的設計不是隨意的,而是專門為了表示旋轉而發明。設一個點的坐標是【x,y,z】記為p,將它繞n軸旋轉角度θ,得到點p’。
p=[0,x,y,z]=[0,v]q=[cosθ2,nsinθ2]p,=qpq?1(q?1是四元數q的逆)p=[0,x,y,z]=[0,v]\\q=[cos\frac{θ}{2},nsin\frac{θ}{2}]\\p^,=qpq^{-1} (q^{-1}是四元數q的逆) p=[0,x,y,z]=[0,v]q=[cos2θ?nsin2θ?]p,=qpq?1(q?1q)
那么,四元數不存在萬向鎖的問題,但是不直觀,所以在實際應用需要把它歸一化后使用如下的代碼轉換成歐拉角。

angle->pit=asin(-2*q1*q3+2*q0*q2)*57.3 angle->rol=-atan2(2*q2*q3+2*q0*q1,1-2*q1*q1-2*q2*q2)*57.3 angle->yaw=atan2(2*(q0*q3+q1*q2),1-q2*q2-q3*q3)*57.3

總結

以上是生活随笔為你收集整理的学习四旋翼(一):动力学模型和空间姿态表示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。