摘 要:文章介紹了基于STM32單片機(jī)的X形四旋翼飛行器飛行控制系統(tǒng)。通過對角速度進(jìn)行方位余弦計(jì)算及與加速度進(jìn)行互補(bǔ)濾波,得到飛行器的飛行姿態(tài),最終通過PID控制算法控制飛行器的四個電機(jī)的推力,使飛行器保證穩(wěn)定并按照遙控器指令進(jìn)行飛行。
關(guān)鍵詞:四旋翼飛行器;STM32;方位余弦;互補(bǔ)濾波
1 飛行器研究背景
四旋翼飛行器較普通的直升機(jī)有機(jī)械結(jié)構(gòu)簡單,易于制作、易于小型化、同等規(guī)模下載重量大等優(yōu)點(diǎn),在最近2-3年中逐漸得到關(guān)注。但是,由于四旋翼飛行器自身特性為一個多變量耦合非線性不穩(wěn)定系統(tǒng),基本上無法由人直接操控,必須加入自動控制系統(tǒng)來輔助穩(wěn)定飛行姿態(tài)。所以,四旋翼飛行器自動飛行控制系統(tǒng)性能的好壞直接關(guān)系著飛行器飛行性能及操控性。所以本設(shè)計(jì)就飛行控制系統(tǒng)的算法以及如何提高控制性能進(jìn)行研究。
2 飛行器研究方法
飛行器的結(jié)構(gòu)形式和工作原理:
(1) 結(jié)構(gòu)形式
多旋翼飛行器的最主要特點(diǎn)就是機(jī)械結(jié)構(gòu)簡單,不像普通直升機(jī)包含大量拉桿、鉸鏈和傳動結(jié)構(gòu),多旋翼飛行器一般采用電機(jī)直接驅(qū)動旋翼的結(jié)構(gòu)形式,根據(jù)旋翼多少的不同,一般可分為四旋翼、六旋翼、八旋翼以及雙層四旋翼等,常見多旋翼結(jié)構(gòu)如圖1所示。旋翼的多少主要的區(qū)別在于載重能力和抗風(fēng)能力上的差別,本設(shè)計(jì)主要研究的是飛行器的智能控制,所以擬采用結(jié)構(gòu)最簡單的四旋翼飛行器作為研究對象。
(2) 工作原理
典型的傳統(tǒng)直升機(jī)配備有一個主轉(zhuǎn)子和一個尾槳。他們是通過控制舵機(jī)來改變螺旋槳的槳距角,從而控制直升機(jī)的姿態(tài)和位置。多旋翼飛行器與此不同,以四旋翼飛行器來說,是通過調(diào)節(jié)四個電機(jī)轉(zhuǎn)速來改變旋翼轉(zhuǎn)速,實(shí)現(xiàn)升力的變化,從而控制飛行器的姿態(tài)和位置。
下面以本設(shè)計(jì)選取X字四旋翼飛行器為例,介紹本設(shè)計(jì)的飛行器的飛行原理。由圖2所知,四旋翼飛行器的4個電機(jī)轉(zhuǎn)動的方向是不同的,對角的兩個電機(jī)轉(zhuǎn)動方向必須一致,而相鄰的兩個電機(jī)轉(zhuǎn)動方向必須相反。基于這個原則,本次研究以圖2所示方案安排了電機(jī)的轉(zhuǎn)動方向。
當(dāng)飛行器需要向上運(yùn)動時, 4個電機(jī)轉(zhuǎn)速增加,同時保持4個電機(jī)的推力一致,當(dāng)4個電機(jī)推力總和大于飛行器自重時,飛行器就開始向上運(yùn)動。同理,當(dāng)需要向下運(yùn)動時,4個電機(jī)轉(zhuǎn)速減小,同時保持4個電機(jī)的推力一致,當(dāng)4個電機(jī)推力總和小于飛行器自重時,飛行器就開始向下運(yùn)動。
當(dāng)飛行器需要進(jìn)行俯仰(繞Y軸轉(zhuǎn)動)運(yùn)動時,以1和2號電機(jī)為一組,同時降低轉(zhuǎn)速,以3和4號電機(jī)為另一組同時增加轉(zhuǎn)速。這樣飛行器前后受力不平衡,飛行器1和2號電機(jī)方向就會下沉,3和4號電機(jī)方向就會上升,即可以實(shí)現(xiàn)俯仰運(yùn)動,如1和2號電機(jī)加速,3和4號電機(jī)減速,轉(zhuǎn)動方向就會相反。同理,以1和4號電機(jī)為一組,2和3號電機(jī)為另一組同時加速或減速時,飛行器即可實(shí)現(xiàn)橫滾(繞X軸轉(zhuǎn)動)運(yùn)動。
當(dāng)飛行器需要進(jìn)行偏航運(yùn)動時,根據(jù)角動量守恒原理,當(dāng)以1和3號電機(jī)為一組,2和4號電機(jī)為另一組,同時增加或減小轉(zhuǎn)速,飛行器就會繞自身中心進(jìn)行偏航旋轉(zhuǎn),旋轉(zhuǎn)方向與減速一組的電機(jī)旋轉(zhuǎn)方向一致。
當(dāng)飛行器需要進(jìn)行前后、左右運(yùn)動時,只需要往要運(yùn)動的方向旋轉(zhuǎn)一定的角度,這樣4個電機(jī)的推力就會在那個方向上出現(xiàn)一個分力,從而使飛行器朝那個方向運(yùn)動。
通過上訴描述可以知道,四旋翼飛行器可以進(jìn)行六個狀態(tài)的運(yùn)動(上下、左右、前后、俯仰、橫滾、偏航運(yùn)動),而四旋翼飛行器只能控制四個電機(jī)的推力作為控制量,所以它屬于欠驅(qū)動、多變量耦合的不穩(wěn)定系統(tǒng)系統(tǒng),單靠人手動操縱難道極大,必須引用一套基于姿態(tài)的自動控制系統(tǒng)才能很好控制飛行器的穩(wěn)定。
3 飛行器控制系統(tǒng)介紹
本設(shè)計(jì)是飛行控制系統(tǒng)是基于ST公司的ARM32位單片機(jī)STM32,飛行控制系統(tǒng)由主控制板、遙控器接收模塊、WIFI通信模塊、電機(jī)模塊、電源模塊等五部分組成。
3.1 電源模塊
電源模塊在系統(tǒng)中的地位是極其重要的,四旋翼無人直升機(jī)要穩(wěn)定工作必須有穩(wěn)定的電源供給作為保障,為系統(tǒng)的各個模塊提供動力。穩(wěn)定的電源可以使系統(tǒng)在各種環(huán)境下長時間穩(wěn)定的工作,而如果電源模塊設(shè)計(jì)得不夠合理,那么就像在系統(tǒng)中埋下了一顆不定時炸彈,系統(tǒng)隨時都可能因此而崩潰。所以電源模塊的設(shè)計(jì)必須非常慎重,以保證系統(tǒng)工作的穩(wěn)定性。多旋翼飛行器采用12V鋰電池供電。12V電壓直接供給電機(jī),通過降壓模塊將12V降壓到5V供飛行控制系統(tǒng)、遙控系統(tǒng)等使用。
3.2 主控制板
中心控制模塊即飛行控制系統(tǒng)的核心處理器作為整個系統(tǒng)的核心控制部分,主要負(fù)責(zé)采集傳感器檢測到的姿態(tài)角速率(俯仰角速率、橫滾角速率和偏航角速率)、三軸的線加速度和航向信息并實(shí)時解算;根據(jù)檢測到的飛行信息,結(jié)合既定的控制方案,計(jì)算輸出控制量;同時,能實(shí)時采集遙控接收器發(fā)出的控制信號,對遙控器給出的控制命令做出響應(yīng)。本次設(shè)計(jì)的四旋翼飛行控制板計(jì)劃采用STM32作為主控制器,STM32是一款基于ARM的32位MCU,CPU工作在72MHz??梢詫?shí)時計(jì)算各種復(fù)雜姿態(tài)算法和控制算法,STM32豐富的片上資源可以滿足各類型傳感器通訊需求及遙控器輸入信號處理及電子調(diào)速器PWM控制需求,大大塊降低了開發(fā)成本,節(jié)約了資源。是一款非常適合本設(shè)計(jì)開發(fā)使用的單片機(jī)。飛行控制模塊上采用集成了3軸加速度計(jì)和3陀螺儀的MPU6050芯片為姿態(tài)傳感器。由于該芯片集成度高,封裝小巧,可以極大地提高飛行控制模塊的可靠性和減小模塊尺寸。
3.3 遙控器接收模塊
該模塊用于接收遙控器發(fā)射的信號并轉(zhuǎn)換成PWM的形式輸出。介于該部分關(guān)系到飛行器的飛行安全。出于提高安全性及降低開發(fā)難度的目的,這部分模塊直接采用了目前航模普遍使用的成品2.4G PPM 無線遙控器和接收器。
3.4 WIFI通信模塊
該模塊用于建立飛行器控制模塊和地面站之間的無線通信。通過該模塊,地面站可以以無線的方式連接到飛行器控制模塊,實(shí)時采集飛行器的各項(xiàng)飛行參數(shù),用于分析飛行器運(yùn)行狀態(tài)。同時,也可以修改飛行器控制模塊內(nèi)的配置參數(shù)。
這樣極大地方便了飛行器的參數(shù)調(diào)試及飛行效果分析。另外,一般的飛行器地面站都是基于PC機(jī)的,而這樣對于室外試飛帶來了極大的不便。所以本次研究也創(chuàng)新性的開發(fā)了基于手機(jī)APP的地面站軟件,通過手機(jī)APP就可以實(shí)時記錄飛行器的各項(xiàng)參數(shù)及設(shè)定飛行器的各項(xiàng)配置。飛行器參數(shù)記錄界面及飛行器參數(shù)配置界面如圖3、圖4所示。
3.5電機(jī)模塊
四旋翼無人飛行器是通過控制四個不同無刷直流電機(jī)的轉(zhuǎn)速,達(dá)到控制四旋翼無人飛行器的飛行姿態(tài)和位置。與傳統(tǒng)直流有刷電機(jī)相比,無刷電機(jī)能量密度高、力矩大、重量輕,采用非接觸式的電子換向方法,消除了電刷磨損,較好地解決了直流有刷電機(jī)的缺點(diǎn),適用于對功率重量比敏感的用途,同時增強(qiáng)了電機(jī)的可靠性。但是無刷電機(jī)的驅(qū)動比有刷電機(jī)要復(fù)雜得多,需要通過專門的電子驅(qū)動器才能正常工作,同樣出于降低開發(fā)難度的目的,該部分采用了普通航模用的無刷電機(jī)調(diào)速器,該調(diào)速器可根據(jù)輸入的PWM信號占空比的大小來控制無刷電機(jī)的轉(zhuǎn)速。
4 本設(shè)計(jì)創(chuàng)新點(diǎn)
該設(shè)計(jì)采用基于ARM的32位單片機(jī)STM32。該系列單片機(jī)運(yùn)行速度快,從而可以運(yùn)行復(fù)雜姿態(tài)和控制算法,提高控制器性能。同時該系列單片機(jī)集成有豐富的外設(shè)資源,無需外接其他電路、設(shè)備即可完成控制任務(wù),使控制系統(tǒng)更加緊湊。采用方向余弦算法及陀螺儀、加速度計(jì)互補(bǔ)濾波算法,使飛行控制器在采用低成本MEMS陀螺儀及機(jī)體抖動的環(huán)境下,仍能輸出較準(zhǔn)確的姿態(tài)數(shù)據(jù)。設(shè)計(jì)研發(fā)采用了Altium Designer開發(fā)設(shè)計(jì)飛控控制板,其3D建模功能能直觀的了解控制板的元件布局。使用手機(jī)APP作為地面站,通過WIFI與飛行控制器相連接,使參數(shù)記錄和配置設(shè)定更加方便。
5 設(shè)計(jì)研究結(jié)果
本次設(shè)計(jì)開發(fā)了基于STM32F103RCT6芯片的四旋翼飛行器原型機(jī)。該機(jī)型實(shí)現(xiàn)了四軸飛行器飛行姿態(tài)的準(zhǔn)確控制,并預(yù)留了一定的擴(kuò)展空間,可以根據(jù)所使用的具體用途搭載不同的設(shè)備以實(shí)現(xiàn)特定功能??赏饨痈咔鍞z像頭通過無線傳輸實(shí)現(xiàn)畫面實(shí)時傳輸,實(shí)現(xiàn)了航拍偵查功能。圖5所示為自行研發(fā)設(shè)計(jì)的飛控板。圖6為設(shè)計(jì)出來的飛行器實(shí)物。
參考文獻(xiàn)
[1]譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012.
[2]李曉林.單片機(jī)原理與接口技術(shù)[M].電子工業(yè)出版社,2010.
[3]黃智偉.全國電子設(shè)計(jì)大賽設(shè)計(jì)競賽訓(xùn)練教材[M].電子工業(yè)出版社,2010.
[4]房玉明,杭柏林.基于單片機(jī)的步進(jìn)電機(jī)開環(huán)控制系統(tǒng)[J].電機(jī)與控制應(yīng)用,2006.
[5]袁任光,張偉武.電動機(jī)控制電路選用與258實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005.