動態系統建模仿真
實驗報告(2)
四旋翼飛行器仿真
2012
1實驗內容
基于Simulink建立四旋翼飛行器的懸停控制回路,實現飛行器的懸停控制;
建立UI界面,能夠輸入參數并繪制運動軌跡;
基于VR
Toolbox建立3D動畫場景,能夠模擬飛行器的運動軌跡。
2實驗目的通過在Matlab
環境中對四旋翼飛行器進行系統建模,使掌握以下內容:
四旋翼飛行器的建模和控制方法
在Matlab下快速建立虛擬可視化環境的方法。
3實驗器材
硬件:PC機。
工具軟件:操作系統:Windows系列;軟件工具:MATLAB及simulink。
4實驗原理
4.1四旋翼飛行器
四旋翼飛行器通過四個螺旋槳產生的升力實現飛行,原理與直升機類似。
四個旋翼位于一個幾何對稱的十字支架前,后,左,右四端,如圖
所示。旋翼由電機控制;整個飛行器依靠改變每個電機的轉速來實現飛行姿態控制。
圖1四旋翼飛行器旋轉方向示意圖
在圖
中,前端旋翼
和后端旋翼
逆時針旋轉,而左端旋翼
和右端的旋翼
順時針旋轉,以平衡旋翼旋轉所產生的反扭轉矩。
由此可知,懸停時,四只旋翼的轉速應該相等,以相互抵消反扭力矩;同時等量地增大或減小四只旋翼的轉速,會引起上升或下降運動;增大某一只旋翼的轉速,同時等量地減小同組另一只旋翼的轉速,則產生俯仰、橫滾運動;增大某一組旋翼的轉速,同時等量減小另一組旋翼的轉速,將產生偏航運動。
4.2建模分析
四旋翼飛行器受力分析,如圖
所示
圖2四旋翼飛行器受力分析示意圖
旋翼機體所受外力和力矩為:
重力mg,機體受到重力沿方向;
四個旋翼旋轉所產生的升力
(i=
1,2,3,4),旋翼升力沿方向;
旋翼旋轉會產生扭轉力矩
(i=
1,2,3,4)。垂直于葉片的旋翼平面,與旋轉矢量相反。
力模型為:,旋翼通過螺旋槳產生升力。是電機轉動力系數,可取,為電機轉速。旋翼旋轉產生旋轉力矩Mi(i=1,2,3,4),力矩Mi的旋向依據右手定則確定。力矩模型為,其中是電機轉動力系數,可取為電機轉速。當給定期望轉速后,電機的實際轉速需要經過一段時間才能達到。實際轉速與期望轉速之間的關系為一階延遲:響應延遲時間可取0.05s(即)。期望轉速則需要限制在電機的最小轉速和最大轉速之間,范圍可分取[1200rpm,7800rpm]。
飛行器受到外界力和力矩的作用,形成線運動和角運動。線運動由合外力引起,符合牛頓第二定律:
r為飛機的位置矢量。
角運動由合力矩引起。四旋翼飛行器所受力矩來源于兩個方面:1)旋翼升力作用于質心產生的力矩;2)旋翼旋轉產生的扭轉力矩。角運動方程如下式所示。其中,L
為旋翼中心建立飛行器質心的距離,I
為慣量矩陣。
4.3控制回路設計
控制回路包括內外兩層。外回路由Position
Control
模塊實現。輸入為位置誤差,輸出為期望的滾轉、俯仰和偏航角。內回路由Attitude
Control
模塊實現,輸入為期望姿態角,輸出為期望轉速。Motor
Dynamics
模塊模擬電機特性,輸入為期望轉速,輸出為力和力矩。Rigid
Body
Dynamics
是被控對象,模擬四旋翼飛行器的運動特性。
圖3包含內外兩個控制回路的控制結構
(1)內回路:姿態控制回路
對四旋翼飛行器,我們唯一可用的控制手段就是四個旋翼的轉速。因此,這里首先對轉速產生的作用進行分析。假設我們希望旋翼1的轉速達到,那么它的效果可分解成以下幾個分量:
:使飛行器保持懸停的轉速分量;
:除懸停所需之外,產生沿ZB軸的凈力;
:使飛行器負向偏轉的轉速分量;
:使飛行器正向偏航的轉速分量;
因此,可以將期望轉速寫成幾個分量的線性組合:
其它幾個旋翼也可進行類似分析,最終得到:
在懸浮狀態下,四個旋翼共同的升力應抵消重力,因此:
此時,可以把旋翼角速度分成幾個部分分別控制,通過“比例-微分”控制律建立如下公式:
綜合以上三式可得到期望姿態角-期望轉速之間的關系,即內回路。
外回路:位置控制回路
外回路采用以下控制方式:通過位置偏差計算控制信號(加速度);建立控制信號與姿態角之間的幾何關系;得到期望姿態角,作為內回路的輸入。期望位置記為。可通過PID
控制器計算控制信號:
是目標懸停位置是我們的目標懸停位置(i=1,2,3),是期望加速度,即控制信號。注意:懸停狀態下線速度和加速度均為0,即。
通過俯仰角和滾轉角控制飛行器在XW和YW平面上的運動,通過控制偏航角,通過控制飛行器在ZB軸上的運動。可得:
根據上式可按照以下原則進行線性化:
(1)將俯仰角、滾轉角的變化作為小擾動分量,有,,(2)偏航角不變,有,其中初始偏航角,為期望偏航角(3)在懸停的穩態附近,有
根據以上原則線性化后,可得到控制信號(期望加速度)與期望姿態角之間的關系:
則內回路的輸入為:
5實驗步驟與結果
(1)
根據控制回路的結構建立simulink模型;
(2)
為了便于對控制回路進行參數調整,利用Matlab軟件為四旋翼飛行器創建GUI參數界面;
(3)
利用Matlab的VR
Toolbox建立四旋翼飛行器的動畫場景
(4)
根據系統的結構框圖,搭建Simulink模塊以實現模擬飛行器在指定位置的懸停。使用默認數據,此時xdes=3,ydes=4,zdes=5,開始仿真,可以得到運動軌跡x、y、z的響應函數,同時可以得到在xyz坐標中的空間運動軌跡。然后點擊GUI中的VR按鈕使simulink的工作空間中載入系統仿真所需的參數,把x、y、z的運動軌跡和Roll,Pitch,Yaw輸入至VR中的模擬飛行器中,觀察飛行器的運動軌跡和運動姿態,然后再使用一組新的參數xdes=-8,ydes=3,zdes=6進行四旋翼飛行器運動進行仿真模擬,可以看出仿真結果和動畫場景相吻合。
6實驗總結與心得
此次MATLAB實驗綜合了SIMULINK、GUI和VR場景等多個部分,對四旋翼飛行器運動進行了仿真模擬。由仿真結果可以看出,四旋翼飛行器最終位置達到了期望給定的位置,三個方向的響應曲線最終平穩,對應飛行器懸停在期望位置,達到了控制要求。
本次試驗收獲很多,學習到了很多知識,首先是熟悉了SIMULINK由簡至繁搭建系統的過程,學習了利用VR建立虛擬模型,并在SIMULINK中連接。其次是熟悉了MATLAB
GUI界面的編寫和搭建過程。Matlab提供了強大的用戶圖形界面,以幫助用戶不必編寫底層程序而直接在軟件包基礎上進行自行開發,這點在諸多軟件中都有所體現。另外通過實驗,對四旋翼飛行器的受力分析、模型建立、控制回路設計等有了較為細致的了解。