閆曉兵 陳春梅 白雪艷 劉鵬
摘? 要:四軸航拍飛行器能夠在空中長時間穩(wěn)定飛行,且攜帶載荷類型多樣,在日常生活中具有廣泛的用途。利用STM32F4處理器并且綜合四元數(shù)法和PID控制算法進(jìn)行四軸飛行器的設(shè)計是當(dāng)前普遍的做法,如何做好軟硬件之間的接口關(guān)系協(xié)調(diào)是進(jìn)行設(shè)計時需要重點關(guān)注的問題;基于STM32F4處理器并綜合使用MPU6050傳感器能夠?qū)崿F(xiàn)設(shè)計出可以穩(wěn)定飛行的四軸飛行器樣機(jī),并且具有靈活機(jī)動的轉(zhuǎn)彎和升降能力,能夠滿足長航時、多廣角航拍的需要。
關(guān)鍵詞:四軸飛行器;STM32F4處理器;四元數(shù)法
中圖分類號:TP273;V221? ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2021)05-0052-04
Design of Quadcopter Control System Based on STM32F4 Processor
YAN Xiaobing1,CHEN Chunmei1,BAI Xueyan2,LIU Peng2
(1.School of Communication Engineering,Taishan College of Science and Technology,Taian? 271000,China;
2.School of Intelligent Engineering,Taishan College of Science and Technology,Taian? 271000,China)
Abstract:Aerial quadcopter can fly stably in the air for a long time,and carry a variety of loads,which has a wide range of purpose in daily life. Using STM32F4 processor and combining quaternion method and PID control algorithm to design quadcopter is a common practice at present. How to coordinate the interface relationship between software and hardware is a key issue when designing. Based on STM32F4 processor and comprehensive use of MPU6050 sensor,a quadcopter prototype that can flight stably can be designed,and it has flexible turning and lifting ability,which can meet the needs of long sailing time and multi wide angle aerial photography.
Keywords:quadcopter;STM32F4 processor;quaternion method
0? 引? 言
四軸航拍飛行器采用旋翼飛行方式在空中進(jìn)行飛行,可以同步完成空中航拍任務(wù),這種飛行器具有飛行穩(wěn)定性強(qiáng)、操作簡單、適用范圍廣的特點[1],因此是當(dāng)前航拍技術(shù)的主要實現(xiàn)載體,同時也吸引了很多研究者。近年來,隨著人工智能技術(shù)的進(jìn)步,四軸航拍飛行器采用更加智能的方法進(jìn)行飛行控制,進(jìn)一步提升了飛行穩(wěn)定性,有利于實現(xiàn)長航時、多廣角、連續(xù)航拍的目標(biāo)。作者在工作中,主要借助四軸飛行器完成航拍任務(wù),對于飛行器的飛行穩(wěn)定性有較高的要求;另外,在實際工作中發(fā)現(xiàn)很多型號的四軸飛行器進(jìn)行遙控操作時信號延遲現(xiàn)象比較明顯,導(dǎo)致基于遙控手段進(jìn)行飛行器控制時犧牲了飛行器的靈活性,不利于擴(kuò)大其應(yīng)用范圍。因此,在進(jìn)行四軸航拍飛行器設(shè)計時,需要重點關(guān)注這些問題并想辦法解決。
進(jìn)行四軸飛行器設(shè)計時,需要利用慣性組件保證其平穩(wěn)飛行和垂直升降,同時盡量采用簡易的飛行結(jié)構(gòu)以控制其設(shè)計成本,另外在進(jìn)行設(shè)計時可以利用外觀對稱性和整體質(zhì)心壓心相對位置關(guān)系等進(jìn)一步降低設(shè)計難度[2,3]。因此,進(jìn)行四軸飛行器設(shè)計時既可以借鑒固定翼飛行器的成熟設(shè)計方法,也需要注意四軸飛行器不同的飛行特點。四軸飛行器旋翼布局方式能夠克服機(jī)身自旋帶來的不穩(wěn)定性,進(jìn)行控制系統(tǒng)設(shè)計時需要重點關(guān)注姿態(tài)變化引起的失穩(wěn)現(xiàn)象,同時需要注意硬件與軟件的接口關(guān)系。進(jìn)行軟件算法開發(fā)時,對于MPU6050姿態(tài)傳感器傳入STM32F4處理器的姿態(tài)角信息需要進(jìn)行轉(zhuǎn)換和控制,以確保處理器能夠獲得正確的姿態(tài)角信息。
1? 飛行器飛行原理及系統(tǒng)總體概況
1.1? 四軸飛行器飛行原理
四軸飛行器是相對來說飛行穩(wěn)定性較強(qiáng)的一種飛行器,由電機(jī)驅(qū)動四個呈十字狀布局的旋翼提供升力,四個旋翼的旋轉(zhuǎn)方向遵循“相鄰旋翼不同、相對旋翼相同”的原則,這樣可以避免機(jī)身產(chǎn)生自旋。四軸飛行器除了可以進(jìn)行傳統(tǒng)飛行器的俯仰、偏航和滾動運動之外,還可以進(jìn)行垂直、前后和側(cè)向運動,豐富了運動狀態(tài)的形式,有利于執(zhí)行更多的任務(wù)[4-6]。
四軸飛行器的結(jié)構(gòu)布局如圖1所示。其中mg為飛行器的重力,坐標(biāo)E(OXYZ)為慣性坐標(biāo)系,θ、φ、ψ分別為飛行器相對慣性坐標(biāo)系的俯仰、偏航和滾轉(zhuǎn)角,1、2、3、4為旋翼編號,箭頭方向表示旋轉(zhuǎn)方向。
旋翼是飛行器產(chǎn)生動力和升力的主要裝置,四軸飛行器具有四個旋翼,每個旋翼所產(chǎn)生的升力可以表示為:
Ti=ρπR4CT =b? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
式中,b=ρπR4CT表示升力系數(shù),ρ表示空氣密度,R表示旋翼半徑,CT表示升力系數(shù),Ωi表示螺旋槳的轉(zhuǎn)速。
由此產(chǎn)生的升力力矩可以表示為:
τi=ρACDR3=d? ? ? ? ? ? ? ? ? ? ? ? ? (2)
式中,d=ρACDR3表示升力矩系數(shù),A表示旋翼面積,CD表示力矩因子。
當(dāng)四個旋翼的升力和升力矩不一致時,就可以控制飛行器做出不同的飛行狀態(tài)。
2? 四軸飛行器系統(tǒng)總體概況
進(jìn)行四軸航拍飛行器設(shè)計時,需要統(tǒng)籌考慮硬件兼容性和軟件先進(jìn)性。本文進(jìn)行四軸航拍飛行器設(shè)計時,采用STM32F4處理器作為核心處理器,同時利用MPU6050傳感器進(jìn)行飛行位置探測和定位,利用藍(lán)牙串口通信模塊實現(xiàn)信息融合和共享;STM32F407處理器通過控制飛行器的電動調(diào)節(jié)裝置和云臺舵機(jī)的旋轉(zhuǎn)從而實現(xiàn)機(jī)動飛行狀態(tài)的調(diào)整,電源實時對硬件設(shè)備進(jìn)行供電;操作人員可以使用遙控器發(fā)射遠(yuǎn)程遙控信號,四軸飛行器接收到遙控信號后按照軟件系統(tǒng)解調(diào)出的動作指令進(jìn)行運動控制。整個四軸飛行器的硬件接口拓?fù)潢P(guān)系如圖2所示。
軟件部分,控制算法采用四元數(shù)法進(jìn)行飛行姿態(tài)變換,然后利用PID控制算法實現(xiàn)飛行穩(wěn)定控制;同時,還需要對不同硬件之間的接口關(guān)系進(jìn)行動態(tài)調(diào)動,這些也需要由軟件部分來完成。進(jìn)行軟件開發(fā)時,首先需要做好輸入信號分析,對于MPU6050傳感器接收到的姿態(tài)角信號需要進(jìn)行解耦分析,接觸俯仰、偏航、滾轉(zhuǎn)姿態(tài)角之間的耦合關(guān)系,使這三個角度信息相互獨立,然后對其進(jìn)行單獨運算處理;在計算過程中,對于角度信息需要進(jìn)行模數(shù)轉(zhuǎn)換,將感知到的模擬量轉(zhuǎn)換成數(shù)字量進(jìn)行計算。
3? 飛行器系統(tǒng)控制系統(tǒng)設(shè)計方法
控制系統(tǒng)是飛行器的核心部件,其控制程序燒錄在STM32F4芯片中,利用MPU6050傳感器探測到姿態(tài)位置實施調(diào)整,確保按照預(yù)定航跡飛行和飛行過程中的穩(wěn)定性。對其進(jìn)行設(shè)計時,可以基于飛行模型進(jìn)行MATLAB仿真,然后在仿真的基礎(chǔ)上燒錄硬件程序?qū)崿F(xiàn)樣機(jī)飛行。
3.1? 硬件選型
進(jìn)行飛行器控制設(shè)計時,需要進(jìn)行硬件選型。四軸飛行器控制系統(tǒng)的硬件主要是由主控器STM32F407IG處理器、各種傳感器(加速度傳感器LSM303、陀螺儀傳感器MAX21000、氣壓傳感器MS5611等)、信號接收機(jī)、無線數(shù)據(jù)傳輸模塊、電子調(diào)速器無刷電機(jī)、遙控器、接收機(jī)、電源及穩(wěn)定系統(tǒng)模塊等組成。具體組成如圖3所示。
由圖3可以看出,主控器STM32F4通過各種傳感器采集飛行器相對于慣性坐標(biāo)系的姿態(tài)角,在相應(yīng)控制律的作用下輸出穩(wěn)定的控制命令驅(qū)動電機(jī)控制旋翼產(chǎn)生相應(yīng)的升力和升力矩(即式(1)和式(2)),利用各個旋翼的升力和升力矩之差實現(xiàn)飛行器的俯仰、偏航、滾動以及垂直、前后和側(cè)向飛行。四軸飛行器采用鋰電源進(jìn)行供電,穩(wěn)定輸出電壓為11.4 V,采用電壓轉(zhuǎn)換轉(zhuǎn)置轉(zhuǎn)換成3.8 V的電源后供飛行器各個硬件設(shè)備使用。同時采用電源管理軟件進(jìn)行電壓分配管理,確保輸出電力能夠穩(wěn)定地供應(yīng)到各個硬件單機(jī)。同時,電源管理部分還包括過電壓保護(hù)裝置,當(dāng)硬件設(shè)備的輸入電源超過額定電壓時會自動進(jìn)行熔斷,達(dá)到過熱保護(hù)的目的。
3.2? 飛行控制算法
四軸飛行器的飛行控制模塊主要采用姿態(tài)角作為被控制量,由傳感器對姿態(tài)角進(jìn)行測量,然后輸入STM32F4處理器進(jìn)行處理,利用處理結(jié)果控制舵機(jī)進(jìn)行姿態(tài)調(diào)整,同時基于云臺進(jìn)行穩(wěn)定補(bǔ)償。整個飛行控制系統(tǒng)的工作原理如圖4所示。
圖4中,姿態(tài)角的解算采用四元數(shù)法完成。STM32F4處理器實時采集姿態(tài)角傳感器傳來的姿態(tài)角信息,經(jīng)過FIR濾波后對四元數(shù)進(jìn)行初始化和歸一化,并且建立四元數(shù)與俯仰、偏航、滾動通道姿態(tài)的對應(yīng)關(guān)系,基于加速度計量測得的加速度數(shù)值結(jié)合計算向量積的方法求得估算方向向量與測量方向向量之間的誤差,以此作為誤差控制向量,將不同通道的向量誤差輸入校正陀螺儀進(jìn)行校正和更新,進(jìn)行數(shù)值迭代從而得到由四元數(shù)表示的俯仰、偏航和滾動通道的姿態(tài)信息。
四軸飛行器的飛行穩(wěn)定主要靠PID控制算法實現(xiàn)。PID是經(jīng)典的消除控制誤差的方法,具有較強(qiáng)的魯棒性和抗干擾性能,在工程實踐中得到了廣泛的應(yīng)用。進(jìn)行飛行穩(wěn)定性控制時,將實時測量的姿態(tài)角與穩(wěn)定飛行時的姿態(tài)角(定義為理想姿態(tài)角,下同)的差值作為被控量,將被控量輸入PID控制器,利用比例變換關(guān)系實現(xiàn)對靜誤差的消除,利用微分環(huán)節(jié)消除動態(tài)誤差對飛行穩(wěn)定性的影響;本設(shè)計中加入了前饋控制系統(tǒng),有效改善了系統(tǒng)的實時性并且提高了控制響應(yīng)速度??刂葡到y(tǒng)框圖如圖5所示。
4? 四軸飛行器試飛
按照以上硬件選型和軟件控制算法設(shè)計出來的四軸飛行器實物如圖6所示。
試飛前檢查好飛行器的接口狀態(tài),確保電源電量滿足飛行任務(wù)需要。一切就緒后,利用遙控器控制飛行器起飛,并且實時監(jiān)測飛行狀態(tài)。四軸飛行器具有遙控操作和自定義飛行兩種模式可供選擇。遙控操作由遙控信號控制飛行器飛行,利用無線數(shù)據(jù)傳輸模塊來實現(xiàn)信號的實時傳輸,減少信號在傳輸過程中的延遲,在試飛過程中需要注意遙控器與飛行器的距離,一般來說遙控信號可以控制10 m的范圍內(nèi),也就是說需要始終確保遙控器在飛行器半徑10 m的范圍內(nèi)發(fā)射信號,這樣飛行器才能夠穩(wěn)定飛行;自定義飛行模塊可以提前將飛行控制參數(shù)燒錄在硬件設(shè)備中,在飛行器的遙控開關(guān)中選擇“自主飛行”模式,就可以使飛行器按照提前預(yù)設(shè)的程序進(jìn)行飛行,這樣有利于飛行器執(zhí)行特定任務(wù),比如飛行至人跡罕至的野外執(zhí)行航拍任務(wù)并自動返航,進(jìn)一步擴(kuò)大了飛行器的飛行適應(yīng)性。
本文對飛行器試飛分別進(jìn)行了遙控飛行和自主飛行兩種模式的實驗,各飛行了10分鐘;在這個飛行過程中,通過對飛行姿態(tài)的監(jiān)測可以看出,本文設(shè)計的控制系統(tǒng)工作穩(wěn)定,在累積長達(dá)20分鐘的續(xù)航過程中機(jī)體晃動較小,航拍出的圖像像素清晰,能夠滿足使用要求。
5? 結(jié)? 論
本文基于四元數(shù)法和PID控制算法,進(jìn)行了四軸飛行器設(shè)計方法的研究,利用STM32F4處理器完成了硬件之間的有效連接和飛行控制算法的在線處理,并且對設(shè)計出的四軸飛行器進(jìn)行了飛行試驗,取得了良好的飛行效果,證明了本文所提出設(shè)計方法的正確性。
參考文獻(xiàn)
[1] 文豪.四軸飛行器的設(shè)計與研究 [J].電子技術(shù)與軟件工程,2016(2):128.
[2] 周建陽,陳家樂,薛斌,等.基于STM32四軸飛行器的設(shè)計 [J].欽州學(xué)院學(xué)報,2015,30(2):30-33.
[3] 宋權(quán)霖,張偉,劉業(yè)釗,等.四軸飛行器系統(tǒng)設(shè)計與制作 [J].電子制作,2020(7):20-22.
[4] 許震,毛麗民,劉同連,等.四軸飛行器控制系統(tǒng)設(shè)計 [J].常熟理工學(xué)院學(xué)報,2013,27(2):109-113.
[5] 解琛.基于STM32四軸飛行器的設(shè)計 [J].科學(xué)家,2017,5(17):61-62.
[6] 彭玲,薛凌云.基于STM32的四軸飛行器的設(shè)計與實現(xiàn) [J].教育現(xiàn)代化,2016(2):161-161.
作者簡介:閆曉兵(1975—),男,漢族,山東泰安人,高級工程師,碩士研究生,研究方向:電子信息工程。