黃傳翔
摘要:多軸飛行器是一種無人航空載具,因可垂直起降、飛行姿態(tài)穩(wěn)定、操控靈活而著稱,在軍事、民用等領域都有廣闊的應用前景。文章以四軸飛行器的控制系統(tǒng)為研究對象,闡述了四軸飛行器的結構與飛行原理,通過對飛行器兩種姿態(tài)解算算法的對比,最終選用互補濾波算法。在飛行器的硬件設計方面,對系統(tǒng)主要模塊進行選型并設計外部電路。在軟件方面,設計了控制程序流程圖以及姿態(tài)結算算法和PID控制算法的流程圖。測試結果表明,該系統(tǒng)達到了預期的設計功能。
關鍵詞:多軸飛行器;PID控制;STM32
中圖分類號:TP368? 文獻標志碼:A
0 引言
多軸飛行器是伴隨現(xiàn)代微電子技術而發(fā)展起來的一種無人航空載具,是一種具有兩個旋翼軸以上的旋翼航空器,因可垂直起降、飛行姿態(tài)穩(wěn)定、操控靈活而著稱。該飛行器通過每個軸末端的電動機轉(zhuǎn)動來帶動旋翼,從而產(chǎn)生上升動力。其旋翼一般為偶數(shù)值,如四軸、六軸、八軸等。
1 四軸飛行器的結構與飛行原理
1.1 四軸飛行器的結構
四軸飛行器的螺旋槳應對稱安裝,分別在飛行器機體的前方、后方、左方、右方。這4個螺旋槳的水平面要處在同一高度,而且螺旋槳的直徑和螺距要相同。用于提供動力的4個電機要采用相同規(guī)格,安裝于軸翼的頂端。其他設備及控制器安裝在整個支架的中心。最常見的四軸飛行器結構有十字型和X型,由于X型結構不遮擋視線,本研究采用X型結構。
1.2 四軸飛行器飛行原理
為了抵消四軸飛行器自旋現(xiàn)象,將其中一組螺旋槳設計成同方向轉(zhuǎn)動,而另一組螺旋槳設置成反方向轉(zhuǎn)動。但若螺旋槳均為同型號,當一組正向轉(zhuǎn)動、一組反向轉(zhuǎn)動時,飛行器的上升推力和下降壓力也相互抵消,影響飛行器的飛行。為了解決這個問題,采用正反槳結構,即改變槳葉迎風面,使反向旋轉(zhuǎn)時能提供升力以供飛行器升空[1]。
2 四軸飛行器的姿態(tài)表示方式
2.1 坐標系的建立
研究飛行器的姿態(tài)通常使用坐標系分析。本設計將地球表面在小范圍內(nèi)視為完全水平平面,按照右手笛卡兒坐標系建立參考坐標系。X軸指向正東,Y軸指向正北,Z軸垂直于地面指向天空。將飛行器水平放置,機頭指向正東,對機體也建立坐標系,使機體坐標系x′軸、y′軸、z′軸同參考坐標系的X軸、Y軸、Z軸重合,方向一致。
2.2 歐拉角表示方式
歐拉角主要用來表示四軸飛行器的機體相對于參考坐標系所旋轉(zhuǎn)的角度,用俯仰角θ、翻滾角Φ、偏航角ψ表示。按照歐拉旋轉(zhuǎn)的相關定理,只要經(jīng)過三次旋轉(zhuǎn),就能夠讓機體坐標系旋轉(zhuǎn)至跟參考坐標系重合的部位,也可以旋轉(zhuǎn)至飛行器平衡姿態(tài)的位置。歐拉角的姿態(tài)矩陣為所有坐標變化所產(chǎn)生的旋轉(zhuǎn)矩陣乘積。
2.3 歐拉角的萬向節(jié)鎖死問題
用歐拉角表示物體的空間姿態(tài)最為直觀,但在某種特殊情況下,歐拉角將失效,形成萬向節(jié)鎖死。在正常狀態(tài)下,機體的3個軸相互獨立,旋轉(zhuǎn)互不影響,俯仰、翻滾、偏航為不同的動作。但若選擇π/2作為俯仰角,會造成改變翻滾角或偏航角時,都丟失一個表示維度,出現(xiàn)萬向節(jié)鎖死。為解決這個問題,引入四元數(shù)表示方式。
2.4 四元數(shù)轉(zhuǎn)變成歐拉角的表示方式
四元數(shù)在無人機姿態(tài)控制慣性導航系統(tǒng)中得到廣泛應用[2]。它屬于一種超級形態(tài)下的復數(shù)。其定義:q=q0+q1i+q2j+q3k。利用四元數(shù)可以對歐拉角進行計算:
俯仰角公式:θ=arcsin2(q0q1-q2q3)(1)
翻滾角公式:=atan22(q0q1+q2q3)q20-q21-q22+q23(2)
偏航角公式:ψ=atan22(q0q1+q2q3)q20+q21-q22-q23(3)
通過把四元數(shù)轉(zhuǎn)化成歐拉角,對飛行器飛行姿態(tài)進行表示,加快了運算速度,避免了萬向節(jié)鎖死問題。
2.5 四軸飛行器的姿態(tài)解算算法
姿態(tài)解算解決飛行器在地球坐標系中的姿態(tài)問題,也叫姿態(tài)分析。姿態(tài)解算是根據(jù)多個慣性測量模塊(陀螺儀、加速度計、羅盤等)獲取的數(shù)據(jù)相互校正,從而解算出飛行器的空中姿態(tài),所以也叫作IMU數(shù)據(jù)融合。本設計采用的IMU有加速度計和陀螺儀兩類。常用的姿態(tài)解算算法有卡爾曼濾波算法和互補濾波算法。
2.5.1 卡爾曼濾波算法
卡爾曼濾波算法數(shù)學公式復雜,遞歸是卡爾曼濾波的關鍵,解決了傳統(tǒng)濾波噪聲大的問題。該算法較為精準,在大型飛行器中廣泛使用。
2.5.2 互補濾波算法
針對加速度計和陀螺儀的誤差特點,本研究引入互補濾波算法。加速度計數(shù)值進行低通濾波后消除高頻抖動,排除因電機振動造成的數(shù)據(jù)干擾。陀螺儀數(shù)值進行積分后加入高頻濾波,抵消零點漂移[3]。其流程如圖1所示。
假設加速度計對角度的測量結果為a,陀螺儀經(jīng)積分后對角度的測量結果為b,分別用公式表達:
a=x+u(4)
b=x+v(5)
式中:u是高頻時的噪聲,v是低頻時的干擾音。通過互補濾波姿態(tài)算法,選擇函數(shù):F1(s)+F2(s)=1,F(xiàn)1(s)為低通濾波器,F(xiàn)2(s)為高通濾波器,從而得出x狀態(tài)下的傳遞函數(shù)為X^(s)=F1(s)a+F2(s)b=X(s)+F1(s)u(s)+F2(s)v(s)。X(s)代表全部通過的信號,u和v信號無法全部通過。由于X(s)可以全部通過,所以該狀態(tài)下的濾波器也叫作無損濾波器。
本設計中,互補濾波姿態(tài)算法用以下公式表示:
angle_X=A·(angle_(X-1)+gyro·dt)+(1-A)·acc(6)
angle_X為測量結果融合后值,A為互補系數(shù),angle_(X-1)為上個策略結果融合的值,gyro為陀螺儀所測數(shù)值,acc為加速度計所測數(shù)值,dt為積分時間。
A表示陀螺儀和加速度計的權重,通常大于0.9。本文設計了實驗:將飛行器水平固定于地面,逐漸增大電機轉(zhuǎn)速,分別記錄陀螺儀和加速度計獲得的角度值,同各種取值互補系數(shù)所計算的融合數(shù)值進行比較。實驗中,互補系數(shù)A為0.9時,融合后的數(shù)值沒有漂移,但有明顯高頻振動;互補系數(shù)A為0.99時,融合后的數(shù)值無明顯高頻振動,但在中期會有漂移。經(jīng)過多次實驗,將互補系數(shù)A設定為0.93最合適。
2.6 四軸飛行器的PID控制
在自動控制領域,PID控制器屬于信息反饋部件。它能夠按照一定的歷史數(shù)據(jù)以及出現(xiàn)差值的概率,對系統(tǒng)輸入值進行調(diào)整,提高系統(tǒng)的穩(wěn)定性。本文使用串級PID控制器。通過這種控制器,可以提高控制效率,縮短時間常數(shù)。在設計時使用角度跟角速度串聯(lián)控制,形成PID控制回路。
本文分析了3種PID控制形式。首先是理想的PID控制。該控制形式對輸入信號存在階躍變化,會在控制信號產(chǎn)生脈沖。其次是針對過程變數(shù)進行微分控制的PID,階躍變化仍會通過比例項轉(zhuǎn)換為控制信號,但微分項對此有一定的抑制效果。最后是針對過程變數(shù)進行微分及比例控制的PID,可以完全避免控制信號的不連續(xù)性,控制信號有更少的劇烈變化[4]。綜合分析,本文采用針對過程變數(shù)進行微分控制的PID控制器。
3 四軸飛行器主要模塊硬件設計
四軸飛行器的硬件設計主要由微控制器模塊、傳感器模塊、無線通信模塊、電源模塊、電機驅(qū)動模塊5部分構成。其微控制器使用STM32單片機。傳感器模塊使用MPU6050傳感器,該類型傳感器可以解決傳統(tǒng)加速度、角速度傳感器間的軸間差問題,且集成性好。無線接收模塊使用nRF24L01,這種芯片可以有效地進行無線信號傳輸。電源模塊使用SP6205穩(wěn)壓器,該穩(wěn)壓器靜態(tài)電流低、壓差低。電機驅(qū)動模塊使用SI2302型MOS管驅(qū)動電機。
3.1 微控制器
經(jīng)過對比市面上的幾款微控制器,如表1所示。本設計采用意法半導體公司的STM32F103C8T6微控制器。
3.2 無線通信模塊的設計
本設計選用nRF24L01 2.4G無線射頻芯片,作為四軸飛行器的遙控器無線傳輸。其工作于2.4~2.5 GHz頻段,傳輸速率可達2 Mbit/s。其載波監(jiān)測功能保證了在WLAN干擾下的可靠通信,高速的頻率
切換時間減少了與藍牙等跳頻系統(tǒng)出現(xiàn)互相干擾的可能。經(jīng)過測試,使用PCB天線,室內(nèi)環(huán)境下傳輸距離為20m,室外環(huán)境可達到30 m,能夠滿足設計要求。無線模塊電路如圖2所示。采用SPI接口與STM32進行通信,分別連接STM32硬件SPI接口PA1,PA11-15引腳。
3.3 電源模塊設計
本文采用低壓差穩(wěn)壓器SP6205,如圖3所示。只需要一個接在外部的電容進行旁通,就可以低噪音輸出,其內(nèi)部具有過流保護和過熱關斷設施。該穩(wěn)壓器可以滿足各模塊的電壓需求,確保飛行器穩(wěn)定飛行。
3.4 驅(qū)動模塊設計
本設計選取了有刷空心杯電機,其結構為無鐵芯轉(zhuǎn)子,具有效率高、旋轉(zhuǎn)慣量小、響應迅速等優(yōu)點,調(diào)速只需改變PWM占空比即可。經(jīng)測算,其工作電流為500 mA,STM32無法直接驅(qū)動,需要設計電機驅(qū)動模塊。圖4為電機驅(qū)動電路原理,采用PWM信號控制MOS管SI2302通斷來驅(qū)動電機運轉(zhuǎn),其中二極管IN5817起保護作用。
4 四軸飛行器軟件系統(tǒng)設計
4.1 軟件控制流程
飛行器的控制程序流程如圖5所示。通電后,MCU對系統(tǒng)時鐘和各模塊進行初始化,在每個控制周期內(nèi),讀取遙控控制信號,然后通過傳感器獲得機體姿態(tài)信號[5]。將兩者融合比較,計算出偏差,通過PID控制算法,計算出電機各自的轉(zhuǎn)速,最后通過調(diào)節(jié)PWM占空比的方法改變電機轉(zhuǎn)速,從而實現(xiàn)飛行姿態(tài)同遙控信號相一致的效果。
4.2 姿態(tài)解算程序
通過獲取加速度傳感器和角速度傳感器的數(shù)值,將歐拉角轉(zhuǎn)換為四元數(shù),融合數(shù)據(jù)解算出飛行器的飛行姿態(tài),再將四元數(shù)轉(zhuǎn)換回歐拉角,其流程如圖6所示。
5 四軸飛行器的測試
本設計完成后,經(jīng)過多次實驗,記錄下樣機的相關性能參數(shù)。樣機質(zhì)量:空機重30 g,帶電池重量43 g。樣機續(xù)航時間:約7 min。樣機電池充電時長:約30 min。樣機控制距離:最遠約15 m。其中,調(diào)節(jié)好的PID參數(shù)值,如表2所示。通過飛行試驗,四軸飛行器樣機能夠保持良好的飛行狀態(tài),也具備一定的控制精度。
6 結語
本文分析了四軸飛行器控制原理,提出了姿態(tài)解算的重要性,選擇更適合的四元數(shù)表示方式,以避免歐拉角表示方式的萬向節(jié)鎖死問題,選用了互補濾波算法和串級PID控制器。在完成四軸飛行器的硬件和軟件設計后進行整機測試,飛行平穩(wěn),達到預期效果,但受限于電池容量,滯空時間較短。同樣受限于? 無線功率,遙控距離有待于今后進一步改進。
參考文獻
[1]張仲俊,汪材印.基于STM32單片機的四軸飛行器飛行系統(tǒng)設計[J].集寧師范學院學報,2017(6):27-32.
[2]蔡安江,劉凱峰,郭師虹,等.基于四元數(shù)衍生無跡卡爾曼濾波的二段式多旋翼無人機姿態(tài)估計算法[J].控制理論與應用,2020(2):365-373.
[3]呂春生.一種改進的四旋翼互補濾波姿態(tài)解算方法[J].電子測量技術,2020(18):69-73.
[4]羅昌恩,張國林,戴毅.基于stm32小型四軸飛行器PID參數(shù)整定[J].電子世界,2018(19):37-38.
[5]茹巖,張欣.四軸飛行器控制系統(tǒng)設計與實現(xiàn)[J].電子測試,2022(3):42-45,49.
(編輯 姚 鑫)
Design of multi-axis aircraft system based on STM32
Huang? Chuanxiang
(Jiangsu Vocational College of Safety Technology, Xuzhou 221000, China)
Abstract:? Multirotor aircraft is a kind of unmanned aerial vehicle, which is famous for its vertical takeoff and landing, stable flight attitude and flexible control.It has broad application prospects in military and civil fields.This paper takes the control system of the quadcopter as the research object, expounds the structure and flight principle of the quadcopter, and finally selects the complementary filtering algorithm by comparing the two attitude calculation algorithms of the aircraft.In the hardware design of aircraft, the main modules of the system are selected and the external circuit is designed.In terms of software, the flow chart of control program and the flow chart of attitude settlement algorithm and PID control algorithm are designed.The test results show that the system achieves the expected design function.
Key words: multirotor aircraft; PID controller; STM32