王曉銀, 張旭, 李稼祥, 李龍, 任建偉
(西安航空學院,計算機學院,陜西,西安 710000)
四旋翼無人機具有體積小、集成度高、易于操作等優點,廣泛應用于軍事、警力、農業、地質、氣象、物流、搶險等領域[1]。本文對目前各種四旋翼無人機控制算法進行了研究與分析,并結合當前的發展需求,設計了一款基于STM32微控制器的四旋翼無人機控制系統。該控制系統具有低功耗、低成本,高響應速度等優點,能快速、靈活地完成機動作業。
四旋翼無人機共有4個旋翼,它們對稱地分布在機體的前、后、左、右4個方向。4個旋翼處在同一高度平面內,并且4個旋翼的翼長和結構都是相同的,4個電機對稱地安裝在四旋翼無人機的支架上,而支架的中心部分則用來安裝四旋翼無人機的主控制器和外部設備。四旋翼無人機是一種擁有6個方向自由度的垂直升降設備,可以實現前、后、左、右、上、下6個方向的移動。由于它只有4個外部動力輸入,卻有6種輸出狀態,因此四旋翼是一種欠驅動系統。四旋翼飛行器的結構如圖1所示。

圖1 四旋翼飛行器的結構圖
多旋翼姿態的調整是通過各旋翼所產生升力的合力來實現的。多個旋翼均布在飛行器的周圍,其各槳葉按照順時針或者逆時針方向旋轉。若各旋翼產生的合力向上,其大小大于、等于或小于其自身的重力,則可由此來實現上升、懸空或下降;若其一側的旋翼產生的升力大于另一側,那么飛行器就會產生俯仰或者滾轉運動;若其合力矩不為零,則會表現出自轉的現象[2]。四旋翼無人機的運動方式如圖2所示。

(a)垂直運動
本系統的總體設計方案由STM32微控制器最小系統、MPU9250九軸傳感器信息采集模塊、WiFi信息處理模塊、電機驅動控制模塊、電源模塊組成。系統的硬件框圖如圖3所示。

圖3 四旋翼無人機硬件系統總體框圖
傳感器MPU9250采集來自飛行器的傳感器數據,該數據通過相應的算法解算出四旋翼無人機的姿態信息[3]。四旋翼無人機的飛行動力主要由4個電機的轉動來提供。控制系統通過PID(比例-積分-微分控制)算法得到相應的控制量[4],改變相應電機轉速控制四旋翼無人機實現不同飛行姿態調整。在飛行過程中能夠捕獲遙控信號,并轉換成相應的數字信號,實現控制,同時能將采集到的數據通過無線通訊模塊發送給接收設備。
系統中的數據采集、信號調理、數據處理及相關的控制全部由基于ST公司的微控制器STM32F407完成。該控制器使用了標準的ARM架構,內部具有強大的時鐘系統,包含了UART、IIC、SPI及PWM等外設,完全滿足設計需要,通用IO口還可以根據需要添加各種外設。
MPU9250是一款九軸傳感器,內部集成有三軸陀螺儀,三軸加速度計和三軸磁力計。其將采集的信息轉換為16位數字量輸出,控制端可通過 IIC總線接口和MPU9250進行數據交互,其數據的傳輸速率可達 400 kHz/s。MPU9250還自帶數字運動處理器硬件加速引擎,使用DMP(數字運動處理器)的MPL庫(InvenSense 公司提供的運動處理庫)可以非常方便的實現姿態解算[5]。MPU9250與STM32的接口設計電路如圖4所示。

圖4 MPU9250與STM32接口電路
設計中四旋翼的驅動采用了空心杯電機,該電機能量轉換率高,啟動制動響應快,具有可靠的運動穩定性,同時還具有重量輕,體積小,能耗低等特點,可最大限度地減輕飛行器的重量。電機驅動電路如圖5所示。

圖5 電機驅動電路
四旋翼無人機通過地面控制部分控制其飛行,其中四旋翼無人機姿態信息、控制解算、姿態控制形成一個閉合的控制回路,保證了四旋翼無人機在受到外界干擾時,能夠快速反應,進行自我調節,從而保證了飛行時的穩定。其控制方式如圖6所示,其中通過傳感器MPU9250采集四旋翼無人機的姿態信息。采用開源的Mahony互補濾波算法解算獲取飛行器機體坐標系在地球坐標系中的姿態角,利用該姿態角與所需控制位置偏差給出調節參數,控制飛行器的姿態。

圖6 四旋翼無人機控制方式示意圖
系統中四旋翼無人機的位置姿態信息由MPU9250九軸傳感器采集,該信息為16位的AD值,通過IIC總線傳送給控制器STM32,控制器將采集到的數據轉換為實際的物理量并進行姿態解算,最終得到飛行器機體坐標系在地球坐標系中的姿態角。姿態傳感器信息采集流程如圖7所示。

圖7 MPU9250數據采集流程圖
為了對傳感器所采集的數據中的雜波進行處理,本設計方案中采用了卡爾曼濾波。設計中采用陀螺儀、溫漂作為狀態變量,以角速度、溫漂作為輸入量,建立過程方程,如式(1)。
(1)
其中,Qangle為陀螺儀測得的角度值,Qbias為溫漂,ω為陀螺儀輸出的角速度。同時以加速度計測得的角度與測量誤差作為參數建立相應的觀測方程如下:
(2)
先驗估計:將式(1)代入x(k|k-1)=Ax(k-1|k-1)+Bu(k)得式(3),
Qangle=Qangle+(ω-Qbias)×dt
(3)
后驗估計的計算式為式(4),
x(k|k)=x(k|k-1)+Kg(k)(z(k)-Hx(k|k-1))
(4)
在本設計方案中,卡爾曼濾波的最終目的是得到系統的最優狀態量,同時實時對系統參數進行更新。
PID控制算法的實質就是根據輸入的偏差值,通過比例函數、積分函數和微分函數進行綜合運算,最后將運算的結果作為控制輸出的一種控制方式。


圖8 模糊 PID 控制器的結構圖
控制系統通過PID算法[7]調整輸出PWM波形,從而改變電機的轉速,控制四旋翼無人機實現不同飛行姿態調整,控制方式如圖9所示。

圖9 四旋翼無人機PID控制
PID控制器相關參數設定值如表1所示。

表1 PID控制器相關參數設定表
本文研究了四軸飛行器的控制系統,包括硬件結構及軟件設計,給出了MPU9250傳感器的信息采集及數據處理,通過卡爾曼濾波算法對傳感器所采集的數據進行融合濾波,從而實現精準的姿態測量,根據飛行姿態[8]結合PID控制算法,完成對四旋翼無人機飛行姿態的控制。通過實驗測試,驗證了此項目的可行性,同時為以后的飛行器的姿態調整提供了理論依據。