阮旭日 王史春
(臺(tái)州職業(yè)技術(shù)學(xué)院電氣信息學(xué)院,浙江 臺(tái)州318000)
四旋翼飛行器能夠自由懸停和垂直起降,結(jié)構(gòu)簡(jiǎn)單,易于控制,這些優(yōu)勢(shì)決定了其具有廣泛的應(yīng)用領(lǐng)域,在民用,醫(yī)療,軍事等領(lǐng)域都有著無(wú)限的潛力[1]。然而,作為一個(gè)MIMO非線性系統(tǒng),四旋翼飛行器輸入變量與輸出變量之間的耦合作用、時(shí)變非線性的動(dòng)力學(xué)特征、系統(tǒng)本身的不確定性及外部的干擾等的引入,使得系統(tǒng)的控制問(wèn)題變得十分復(fù)雜。如何能夠設(shè)計(jì)出有足夠的飛行動(dòng)力并且具有良好穩(wěn)定性的控制系統(tǒng),是四旋翼飛行器如今面臨的主要問(wèn)題,這也使得強(qiáng)大而又易于控制的發(fā)動(dòng)機(jī)和控制飛行器協(xié)調(diào)工作的控制系統(tǒng)成為四旋翼飛行器設(shè)計(jì)的關(guān)鍵。
(1)系統(tǒng)硬件設(shè)計(jì)。通過(guò)分析四旋翼飛行器的飛行原理,確定結(jié)構(gòu)模塊化的硬件設(shè)計(jì)思路,分別進(jìn)行系統(tǒng)控制模塊、PWM驅(qū)動(dòng)模塊、IMU(慣性測(cè)量)模塊和遙控器信號(hào)捕捉模塊硬件原理的分析和實(shí)物電路的設(shè)計(jì)[2]。
(2)結(jié)合四旋翼飛行器的硬件結(jié)構(gòu),進(jìn)行軟件編程部分的工作。按照四旋翼飛行器的飛行原理和控制特性進(jìn)行系統(tǒng)飛行控制主程序以及各模塊軟件編程。
(3)對(duì)四旋翼飛行器系統(tǒng)的控制方法進(jìn)行研究,根據(jù)飛行原理進(jìn)行動(dòng)力學(xué)建模,并完成系統(tǒng)控制器的設(shè)計(jì)。
(4)系統(tǒng)調(diào)試和實(shí)驗(yàn)結(jié)果分析。首先對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行相關(guān)調(diào)試和檢測(cè),然后組裝模型,進(jìn)行四旋翼飛行器實(shí)物系統(tǒng)的飛行實(shí)驗(yàn),驗(yàn)證理論設(shè)計(jì)方案的合理性。
整個(gè)系統(tǒng)硬件部分根據(jù)模塊化思想進(jìn)行設(shè)計(jì),結(jié)構(gòu)框圖如圖1所示。
從上圖可以看出整個(gè)系統(tǒng)主要包含的模塊有遙控器信號(hào)捕捉模塊、IMU(姿態(tài)測(cè)量模塊)、PID控制器模塊[3]、PWM輸出模塊、IIC模塊和USART(無(wú)線串口)模塊。
本系統(tǒng)軟件開發(fā)環(huán)境是IAR Embedded Workbench IDE for ARM[4],這個(gè)環(huán)境具有高度優(yōu)化的IAR AVR C/C++編譯器;一個(gè)強(qiáng)大的編輯器;一個(gè)工程管理器;一個(gè)具有世界先進(jìn)水平的高級(jí)語(yǔ)言調(diào)試器。使用戶在開發(fā)新的項(xiàng)目時(shí)也能在所熟悉的開發(fā)環(huán)境中進(jìn)行。一般基于ARM開發(fā)系統(tǒng)用的開發(fā)環(huán)境有兩個(gè),一個(gè)就是IAR,另外一個(gè)是MDK,明顯后者在編譯的時(shí)候速度很慢,而且調(diào)試環(huán)境前者比后者簡(jiǎn)單且容易直觀,所以選擇前者作為開發(fā)環(huán)境。圖2是整個(gè)系統(tǒng)的軟件流程。
首先必須對(duì)系統(tǒng)的各個(gè)硬件模塊進(jìn)行初始化,初始化完畢以后需要讀出保存在Flash的控制參數(shù),這些控制參數(shù)都是在上一次試飛過(guò)程中調(diào)試完畢并保存在Flash中的,讀取完參數(shù)后把這些參數(shù)賦值給相應(yīng)的運(yùn)算變量以備之后的PID運(yùn)算,緊接著依據(jù)捕捉的遙控器2通道的信號(hào)上升沿是否大于1700判斷是否需要對(duì)電子調(diào)速器進(jìn)行行程的校準(zhǔn),接著就是進(jìn)入姿態(tài)解算模塊對(duì)姿態(tài)數(shù)據(jù)進(jìn)行更新,再對(duì)發(fā)送給上位機(jī)的緩沖區(qū)數(shù)據(jù)進(jìn)行更新。之后就是判斷系統(tǒng)是否處于解鎖和關(guān)閉狀態(tài),這些都是出于安全防護(hù)的考慮,因?yàn)槿绻麑?duì)整個(gè)系統(tǒng)沒(méi)有鎖定這一功能,而操作者在對(duì)系統(tǒng)上電的時(shí)候系統(tǒng)就處于運(yùn)行狀態(tài),假如這個(gè)時(shí)候遙控器信號(hào)不是正常值,很容易出現(xiàn)危險(xiǎn)的情況。同理為什么要判斷遙控器是否關(guān)閉,原因是遙控器關(guān)閉的時(shí)候信號(hào)處于異常狀態(tài),如果不加這個(gè)判斷,即遙控器關(guān)閉狀態(tài)下對(duì)系統(tǒng)上電,且解鎖完畢,飛行器會(huì)出現(xiàn)異常的工作狀況。接著就是等待控制周期標(biāo)志置位,對(duì)控制量進(jìn)行更新,本系統(tǒng)的控制周期是2.5ms,之所以采用這個(gè)控制周期是因?yàn)榭刂齐娬{(diào)的PWM波周期是2.5ms。這里還需要說(shuō)明一點(diǎn)是程序流程圖里面沒(méi)有提到好幾個(gè)子模塊的程序,它們分別是遙控器信號(hào)捕捉模塊,主要應(yīng)用的是中斷子程序,算法在下面小節(jié)會(huì)具體說(shuō)明;還有控制周期定時(shí)子模塊,主要是控制周期一到對(duì)標(biāo)志置位;還有數(shù)據(jù)發(fā)送子程序,應(yīng)用DMA發(fā)送;姿態(tài)傳感器數(shù)據(jù)接收子模塊,通信協(xié)議是IIC;還有上位機(jī)數(shù)據(jù)接收子程序,應(yīng)用的是中斷子程序;還有PWM控制量輸出子程序;還有“X”模式四個(gè)電機(jī)控制量耦合關(guān)系子程序和Flash讀取存儲(chǔ)子程序[5]。
本實(shí)驗(yàn)室的飛行器姿態(tài)角度的檢測(cè)由加速度計(jì)、陀螺儀、微控制器STM32、電機(jī)等組成,通過(guò)無(wú)線模塊的發(fā)射和接收,跟上位機(jī)通信,測(cè)試數(shù)據(jù)。為了檢驗(yàn)設(shè)計(jì)的效果,把表1數(shù)據(jù)應(yīng)用于實(shí)驗(yàn)室的飛行器,通過(guò)多次飛行試驗(yàn),測(cè)試數(shù)據(jù)得到結(jié)果見(jiàn)表1所示,穩(wěn)定效果較好。
表1 飛行測(cè)試數(shù)據(jù)
本文對(duì)實(shí)驗(yàn)室四旋翼飛行器進(jìn)行建模,通過(guò)改進(jìn)后的遺傳算法優(yōu)化PID參數(shù),仿真實(shí)驗(yàn)證明達(dá)到穩(wěn)定狀態(tài)快,精度高的特點(diǎn),相比同類文獻(xiàn)有非常明顯的優(yōu)勢(shì),通過(guò)查閱其它文獻(xiàn),一般達(dá)到穩(wěn)定時(shí)間在1S多,而本算法優(yōu)化的PID參數(shù),達(dá)到穩(wěn)定時(shí)間在0.1S左右,提高了10倍。為了驗(yàn)證仿真的效果,實(shí)驗(yàn)室飛行器通過(guò)多次試飛,測(cè)試數(shù)據(jù)表明,具有較好的魯棒性和良好的控制效果。證明了本文基于遺傳算法的PID參數(shù)的優(yōu)化是有效的。
[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]黃溪流.一種四旋翼無(wú)人直升機(jī)飛行控制器的設(shè)計(jì)[D].南京理工大學(xué),2010:12-15.
[3]劉金琨.先進(jìn)PID控制MATLAB仿真[M].北京:電子工業(yè)出版社,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.