閆曉兵 陳春梅 白雪艷 劉鵬



摘? 要:四軸航拍飛行器能夠在空中長時間穩定飛行,且攜帶載荷類型多樣,在日常生活中具有廣泛的用途。利用STM32F4處理器并且綜合四元數法和PID控制算法進行四軸飛行器的設計是當前普遍的做法,如何做好軟硬件之間的接口關系協調是進行設計時需要重點關注的問題;基于STM32F4處理器并綜合使用MPU6050傳感器能夠實現設計出可以穩定飛行的四軸飛行器樣機,并且具有靈活機動的轉彎和升降能力,能夠滿足長航時、多廣角航拍的需要。
關鍵詞:四軸飛行器;STM32F4處理器;四元數法
中圖分類號:TP273;V221? ? ? ?文獻標識碼: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? 引? 言
四軸航拍飛行器采用旋翼飛行方式在空中進行飛行,可以同步完成空中航拍任務,這種飛行器具有飛行穩定性強、操作簡單、適用范圍廣的特點[1],因此是當前航拍技術的主要實現載體,同時也吸引了很多研究者。近年來,隨著人工智能技術的進步,四軸航拍飛行器采用更加智能的方法進行飛行控制,進一步提升了飛行穩定性,有利于實現長航時、多廣角、連續航拍的目標。作者在工作中,主要借助四軸飛行器完成航拍任務,對于飛行器的飛行穩定性有較高的要求;另外,在實際工作中發現很多型號的四軸飛行器進行遙控操作時信號延遲現象比較明顯,導致基于遙控手段進行飛行器控制時犧牲了飛行器的靈活性,不利于擴大其應用范圍。因此,在進行四軸航拍飛行器設計時,需要重點關注這些問題并想辦法解決。
進行四軸飛行器設計時,需要利用慣性組件保證其平穩飛行和垂直升降,同時盡量采用簡易的飛行結構以控制其設計成本,另外在進行設計時可以利用外觀對稱性和整體質心壓心相對位置關系等進一步降低設計難度[2,3]。因此,進行四軸飛行器設計時既可以借鑒固定翼飛行器的成熟設計方法,也需要注意四軸飛行器不同的飛行特點。四軸飛行器旋翼布局方式能夠克服機身自旋帶來的不穩定性,進行控制系統設計時需要重點關注姿態變化引起的失穩現象,同時需要注意硬件與軟件的接口關系。進行軟件算法開發時,對于MPU6050姿態傳感器傳入STM32F4處理器的姿態角信息需要進行轉換和控制,以確保處理器能夠獲得正確的姿態角信息。
1? 飛行器飛行原理及系統總體概況
1.1? 四軸飛行器飛行原理
四軸飛行器是相對來說飛行穩定性較強的一種飛行器,由電機驅動四個呈十字狀布局的旋翼提供升力,四個旋翼的旋轉方向遵循“相鄰旋翼不同、相對旋翼相同”的原則,這樣可以避免機身產生自旋。四軸飛行器除了可以進行傳統飛行器的俯仰、偏航和滾動運動之外,還可以進行垂直、前后和側向運動,豐富了運動狀態的形式,有利于執行更多的任務[4-6]。
四軸飛行器的結構布局如圖1所示。其中mg為飛行器的重力,坐標E(OXYZ)為慣性坐標系,θ、φ、ψ分別為飛行器相對慣性坐標系的俯仰、偏航和滾轉角,1、2、3、4為旋翼編號,箭頭方向表示旋轉方向。
旋翼是飛行器產生動力和升力的主要裝置,四軸飛行器具有四個旋翼,每個旋翼所產生的升力可以表示為:
Ti=ρπR4CT =b? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
式中,b=ρπR4CT表示升力系數,ρ表示空氣密度,R表示旋翼半徑,CT表示升力系數,Ωi表示螺旋槳的轉速。
由此產生的升力力矩可以表示為:
τi=ρACDR3=d? ? ? ? ? ? ? ? ? ? ? ? ? (2)
式中,d=ρACDR3表示升力矩系數,A表示旋翼面積,CD表示力矩因子。
當四個旋翼的升力和升力矩不一致時,就可以控制飛行器做出不同的飛行狀態。
2? 四軸飛行器系統總體概況
進行四軸航拍飛行器設計時,需要統籌考慮硬件兼容性和軟件先進性。本文進行四軸航拍飛行器設計時,采用STM32F4處理器作為核心處理器,同時利用MPU6050傳感器進行飛行位置探測和定位,利用藍牙串口通信模塊實現信息融合和共享;STM32F407處理器通過控制飛行器的電動調節裝置和云臺舵機的旋轉從而實現機動飛行狀態的調整,電源實時對硬件設備進行供電;操作人員可以使用遙控器發射遠程遙控信號,四軸飛行器接收到遙控信號后按照軟件系統解調出的動作指令進行運動控制。整個四軸飛行器的硬件接口拓撲關系如圖2所示。
軟件部分,控制算法采用四元數法進行飛行姿態變換,然后利用PID控制算法實現飛行穩定控制;同時,還需要對不同硬件之間的接口關系進行動態調動,這些也需要由軟件部分來完成。進行軟件開發時,首先需要做好輸入信號分析,對于MPU6050傳感器接收到的姿態角信號需要進行解耦分析,接觸俯仰、偏航、滾轉姿態角之間的耦合關系,使這三個角度信息相互獨立,然后對其進行單獨運算處理;在計算過程中,對于角度信息需要進行模數轉換,將感知到的模擬量轉換成數字量進行計算。
3? 飛行器系統控制系統設計方法
控制系統是飛行器的核心部件,其控制程序燒錄在STM32F4芯片中,利用MPU6050傳感器探測到姿態位置實施調整,確保按照預定航跡飛行和飛行過程中的穩定性。對其進行設計時,可以基于飛行模型進行MATLAB仿真,然后在仿真的基礎上燒錄硬件程序實現樣機飛行。
3.1? 硬件選型
進行飛行器控制設計時,需要進行硬件選型。四軸飛行器控制系統的硬件主要是由主控器STM32F407IG處理器、各種傳感器(加速度傳感器LSM303、陀螺儀傳感器MAX21000、氣壓傳感器MS5611等)、信號接收機、無線數據傳輸模塊、電子調速器無刷電機、遙控器、接收機、電源及穩定系統模塊等組成。具體組成如圖3所示。
由圖3可以看出,主控器STM32F4通過各種傳感器采集飛行器相對于慣性坐標系的姿態角,在相應控制律的作用下輸出穩定的控制命令驅動電機控制旋翼產生相應的升力和升力矩(即式(1)和式(2)),利用各個旋翼的升力和升力矩之差實現飛行器的俯仰、偏航、滾動以及垂直、前后和側向飛行。四軸飛行器采用鋰電源進行供電,穩定輸出電壓為11.4 V,采用電壓轉換轉置轉換成3.8 V的電源后供飛行器各個硬件設備使用。同時采用電源管理軟件進行電壓分配管理,確保輸出電力能夠穩定地供應到各個硬件單機。同時,電源管理部分還包括過電壓保護裝置,當硬件設備的輸入電源超過額定電壓時會自動進行熔斷,達到過熱保護的目的。
3.2? 飛行控制算法
四軸飛行器的飛行控制模塊主要采用姿態角作為被控制量,由傳感器對姿態角進行測量,然后輸入STM32F4處理器進行處理,利用處理結果控制舵機進行姿態調整,同時基于云臺進行穩定補償。整個飛行控制系統的工作原理如圖4所示。
圖4中,姿態角的解算采用四元數法完成。STM32F4處理器實時采集姿態角傳感器傳來的姿態角信息,經過FIR濾波后對四元數進行初始化和歸一化,并且建立四元數與俯仰、偏航、滾動通道姿態的對應關系,基于加速度計量測得的加速度數值結合計算向量積的方法求得估算方向向量與測量方向向量之間的誤差,以此作為誤差控制向量,將不同通道的向量誤差輸入校正陀螺儀進行校正和更新,進行數值迭代從而得到由四元數表示的俯仰、偏航和滾動通道的姿態信息。
四軸飛行器的飛行穩定主要靠PID控制算法實現。PID是經典的消除控制誤差的方法,具有較強的魯棒性和抗干擾性能,在工程實踐中得到了廣泛的應用。進行飛行穩定性控制時,將實時測量的姿態角與穩定飛行時的姿態角(定義為理想姿態角,下同)的差值作為被控量,將被控量輸入PID控制器,利用比例變換關系實現對靜誤差的消除,利用微分環節消除動態誤差對飛行穩定性的影響;本設計中加入了前饋控制系統,有效改善了系統的實時性并且提高了控制響應速度。控制系統框圖如圖5所示。
4? 四軸飛行器試飛
按照以上硬件選型和軟件控制算法設計出來的四軸飛行器實物如圖6所示。
試飛前檢查好飛行器的接口狀態,確保電源電量滿足飛行任務需要。一切就緒后,利用遙控器控制飛行器起飛,并且實時監測飛行狀態。四軸飛行器具有遙控操作和自定義飛行兩種模式可供選擇。遙控操作由遙控信號控制飛行器飛行,利用無線數據傳輸模塊來實現信號的實時傳輸,減少信號在傳輸過程中的延遲,在試飛過程中需要注意遙控器與飛行器的距離,一般來說遙控信號可以控制10 m的范圍內,也就是說需要始終確保遙控器在飛行器半徑10 m的范圍內發射信號,這樣飛行器才能夠穩定飛行;自定義飛行模塊可以提前將飛行控制參數燒錄在硬件設備中,在飛行器的遙控開關中選擇“自主飛行”模式,就可以使飛行器按照提前預設的程序進行飛行,這樣有利于飛行器執行特定任務,比如飛行至人跡罕至的野外執行航拍任務并自動返航,進一步擴大了飛行器的飛行適應性。
本文對飛行器試飛分別進行了遙控飛行和自主飛行兩種模式的實驗,各飛行了10分鐘;在這個飛行過程中,通過對飛行姿態的監測可以看出,本文設計的控制系統工作穩定,在累積長達20分鐘的續航過程中機體晃動較小,航拍出的圖像像素清晰,能夠滿足使用要求。
5? 結? 論
本文基于四元數法和PID控制算法,進行了四軸飛行器設計方法的研究,利用STM32F4處理器完成了硬件之間的有效連接和飛行控制算法的在線處理,并且對設計出的四軸飛行器進行了飛行試驗,取得了良好的飛行效果,證明了本文所提出設計方法的正確性。
參考文獻
[1] 文豪.四軸飛行器的設計與研究 [J].電子技術與軟件工程,2016(2):128.
[2] 周建陽,陳家樂,薛斌,等.基于STM32四軸飛行器的設計 [J].欽州學院學報,2015,30(2):30-33.
[3] 宋權霖,張偉,劉業釗,等.四軸飛行器系統設計與制作 [J].電子制作,2020(7):20-22.
[4] 許震,毛麗民,劉同連,等.四軸飛行器控制系統設計 [J].常熟理工學院學報,2013,27(2):109-113.
[5] 解琛.基于STM32四軸飛行器的設計 [J].科學家,2017,5(17):61-62.
[6] 彭玲,薛凌云.基于STM32的四軸飛行器的設計與實現 [J].教育現代化,2016(2):161-161.
作者簡介:閆曉兵(1975—),男,漢族,山東泰安人,高級工程師,碩士研究生,研究方向:電子信息工程。