阮旭日 王史春
(臺州職業技術學院電氣信息學院,浙江 臺州318000)
四旋翼飛行器能夠自由懸停和垂直起降,結構簡單,易于控制,這些優勢決定了其具有廣泛的應用領域,在民用,醫療,軍事等領域都有著無限的潛力[1]。然而,作為一個MIMO非線性系統,四旋翼飛行器輸入變量與輸出變量之間的耦合作用、時變非線性的動力學特征、系統本身的不確定性及外部的干擾等的引入,使得系統的控制問題變得十分復雜。如何能夠設計出有足夠的飛行動力并且具有良好穩定性的控制系統,是四旋翼飛行器如今面臨的主要問題,這也使得強大而又易于控制的發動機和控制飛行器協調工作的控制系統成為四旋翼飛行器設計的關鍵。
(1)系統硬件設計。通過分析四旋翼飛行器的飛行原理,確定結構模塊化的硬件設計思路,分別進行系統控制模塊、PWM驅動模塊、IMU(慣性測量)模塊和遙控器信號捕捉模塊硬件原理的分析和實物電路的設計[2]。
(2)結合四旋翼飛行器的硬件結構,進行軟件編程部分的工作。按照四旋翼飛行器的飛行原理和控制特性進行系統飛行控制主程序以及各模塊軟件編程。
(3)對四旋翼飛行器系統的控制方法進行研究,根據飛行原理進行動力學建模,并完成系統控制器的設計。
(4)系統調試和實驗結果分析。首先對系統的各個模塊進行相關調試和檢測,然后組裝模型,進行四旋翼飛行器實物系統的飛行實驗,驗證理論設計方案的合理性。
整個系統硬件部分根據模塊化思想進行設計,結構框圖如圖1所示。
從上圖可以看出整個系統主要包含的模塊有遙控器信號捕捉模塊、IMU(姿態測量模塊)、PID控制器模塊[3]、PWM輸出模塊、IIC模塊和USART(無線串口)模塊。
本系統軟件開發環境是IAR Embedded Workbench IDE for ARM[4],這個環境具有高度優化的IAR AVR C/C++編譯器;一個強大的編輯器;一個工程管理器;一個具有世界先進水平的高級語言調試器。使用戶在開發新的項目時也能在所熟悉的開發環境中進行。一般基于ARM開發系統用的開發環境有兩個,一個就是IAR,另外一個是MDK,明顯后者在編譯的時候速度很慢,而且調試環境前者比后者簡單且容易直觀,所以選擇前者作為開發環境。圖2是整個系統的軟件流程。
首先必須對系統的各個硬件模塊進行初始化,初始化完畢以后需要讀出保存在Flash的控制參數,這些控制參數都是在上一次試飛過程中調試完畢并保存在Flash中的,讀取完參數后把這些參數賦值給相應的運算變量以備之后的PID運算,緊接著依據捕捉的遙控器2通道的信號上升沿是否大于1700判斷是否需要對電子調速器進行行程的校準,接著就是進入姿態解算模塊對姿態數據進行更新,再對發送給上位機的緩沖區數據進行更新。之后就是判斷系統是否處于解鎖和關閉狀態,這些都是出于安全防護的考慮,因為如果對整個系統沒有鎖定這一功能,而操作者在對系統上電的時候系統就處于運行狀態,假如這個時候遙控器信號不是正常值,很容易出現危險的情況。同理為什么要判斷遙控器是否關閉,原因是遙控器關閉的時候信號處于異常狀態,如果不加這個判斷,即遙控器關閉狀態下對系統上電,且解鎖完畢,飛行器會出現異常的工作狀況。接著就是等待控制周期標志置位,對控制量進行更新,本系統的控制周期是2.5ms,之所以采用這個控制周期是因為控制電調的PWM波周期是2.5ms。這里還需要說明一點是程序流程圖里面沒有提到好幾個子模塊的程序,它們分別是遙控器信號捕捉模塊,主要應用的是中斷子程序,算法在下面小節會具體說明;還有控制周期定時子模塊,主要是控制周期一到對標志置位;還有數據發送子程序,應用DMA發送;姿態傳感器數據接收子模塊,通信協議是IIC;還有上位機數據接收子程序,應用的是中斷子程序;還有PWM控制量輸出子程序;還有“X”模式四個電機控制量耦合關系子程序和Flash讀取存儲子程序[5]。
本實驗室的飛行器姿態角度的檢測由加速度計、陀螺儀、微控制器STM32、電機等組成,通過無線模塊的發射和接收,跟上位機通信,測試數據。為了檢驗設計的效果,把表1數據應用于實驗室的飛行器,通過多次飛行試驗,測試數據得到結果見表1所示,穩定效果較好。

表1 飛行測試數據
本文對實驗室四旋翼飛行器進行建模,通過改進后的遺傳算法優化PID參數,仿真實驗證明達到穩定狀態快,精度高的特點,相比同類文獻有非常明顯的優勢,通過查閱其它文獻,一般達到穩定時間在1S多,而本算法優化的PID參數,達到穩定時間在0.1S左右,提高了10倍。為了驗證仿真的效果,實驗室飛行器通過多次試飛,測試數據表明,具有較好的魯棒性和良好的控制效果。證明了本文基于遺傳算法的PID參數的優化是有效的。
[1]Ly Dat Minh.Modeling and control of quadrotor MAV using vision based measurement[J].IEEE Trans.Cricuits Syst,2010,33(4):10-80.
[2]黃溪流.一種四旋翼無人直升機飛行控制器的設計[D].南京理工大學,2010:12-15.
[3]劉金琨.先進PID控制MATLAB仿真[M].北京:電子工業出版社,2012.
[4]Abhijzt Das,Kamesh Subbarao,Frank Lewis.Dynamic inversion of quadrotor with zero-dynamics stabilization[C]//IEEE Multi-conference on Systems and Control.2008:1100-1191.
[5]BOUABDALLAH S,SIEGWRT R.Designandcontrolofquadrotorswith application to autonomous flying[D].EPFL,2006.