王曉銀, 張旭, 李稼祥, 李龍, 任建偉
(西安航空學(xué)院,計(jì)算機(jī)學(xué)院,陜西,西安 710000)
四旋翼無(wú)人機(jī)具有體積小、集成度高、易于操作等優(yōu)點(diǎn),廣泛應(yīng)用于軍事、警力、農(nóng)業(yè)、地質(zhì)、氣象、物流、搶險(xiǎn)等領(lǐng)域[1]。本文對(duì)目前各種四旋翼無(wú)人機(jī)控制算法進(jìn)行了研究與分析,并結(jié)合當(dāng)前的發(fā)展需求,設(shè)計(jì)了一款基于STM32微控制器的四旋翼無(wú)人機(jī)控制系統(tǒng)。該控制系統(tǒng)具有低功耗、低成本,高響應(yīng)速度等優(yōu)點(diǎn),能快速、靈活地完成機(jī)動(dòng)作業(yè)。
四旋翼無(wú)人機(jī)共有4個(gè)旋翼,它們對(duì)稱(chēng)地分布在機(jī)體的前、后、左、右4個(gè)方向。4個(gè)旋翼處在同一高度平面內(nèi),并且4個(gè)旋翼的翼長(zhǎng)和結(jié)構(gòu)都是相同的,4個(gè)電機(jī)對(duì)稱(chēng)地安裝在四旋翼無(wú)人機(jī)的支架上,而支架的中心部分則用來(lái)安裝四旋翼無(wú)人機(jī)的主控制器和外部設(shè)備。四旋翼無(wú)人機(jī)是一種擁有6個(gè)方向自由度的垂直升降設(shè)備,可以實(shí)現(xiàn)前、后、左、右、上、下6個(gè)方向的移動(dòng)。由于它只有4個(gè)外部動(dòng)力輸入,卻有6種輸出狀態(tài),因此四旋翼是一種欠驅(qū)動(dòng)系統(tǒng)。四旋翼飛行器的結(jié)構(gòu)如圖1所示。
圖1 四旋翼飛行器的結(jié)構(gòu)圖
多旋翼姿態(tài)的調(diào)整是通過(guò)各旋翼所產(chǎn)生升力的合力來(lái)實(shí)現(xiàn)的。多個(gè)旋翼均布在飛行器的周?chē)?,其各槳葉按照順時(shí)針或者逆時(shí)針?lè)较蛐D(zhuǎn)。若各旋翼產(chǎn)生的合力向上,其大小大于、等于或小于其自身的重力,則可由此來(lái)實(shí)現(xiàn)上升、懸空或下降;若其一側(cè)的旋翼產(chǎn)生的升力大于另一側(cè),那么飛行器就會(huì)產(chǎn)生俯仰或者滾轉(zhuǎn)運(yùn)動(dòng);若其合力矩不為零,則會(huì)表現(xiàn)出自轉(zhuǎn)的現(xiàn)象[2]。四旋翼無(wú)人機(jī)的運(yùn)動(dòng)方式如圖2所示。
(a)垂直運(yùn)動(dòng)
本系統(tǒng)的總體設(shè)計(jì)方案由STM32微控制器最小系統(tǒng)、MPU9250九軸傳感器信息采集模塊、WiFi信息處理模塊、電機(jī)驅(qū)動(dòng)控制模塊、電源模塊組成。系統(tǒng)的硬件框圖如圖3所示。
圖3 四旋翼無(wú)人機(jī)硬件系統(tǒng)總體框圖
傳感器MPU9250采集來(lái)自飛行器的傳感器數(shù)據(jù),該數(shù)據(jù)通過(guò)相應(yīng)的算法解算出四旋翼無(wú)人機(jī)的姿態(tài)信息[3]。四旋翼無(wú)人機(jī)的飛行動(dòng)力主要由4個(gè)電機(jī)的轉(zhuǎn)動(dòng)來(lái)提供??刂葡到y(tǒng)通過(guò)PID(比例-積分-微分控制)算法得到相應(yīng)的控制量[4],改變相應(yīng)電機(jī)轉(zhuǎn)速控制四旋翼無(wú)人機(jī)實(shí)現(xiàn)不同飛行姿態(tài)調(diào)整。在飛行過(guò)程中能夠捕獲遙控信號(hào),并轉(zhuǎn)換成相應(yīng)的數(shù)字信號(hào),實(shí)現(xiàn)控制,同時(shí)能將采集到的數(shù)據(jù)通過(guò)無(wú)線通訊模塊發(fā)送給接收設(shè)備。
系統(tǒng)中的數(shù)據(jù)采集、信號(hào)調(diào)理、數(shù)據(jù)處理及相關(guān)的控制全部由基于ST公司的微控制器STM32F407完成。該控制器使用了標(biāo)準(zhǔn)的ARM架構(gòu),內(nèi)部具有強(qiáng)大的時(shí)鐘系統(tǒng),包含了UART、IIC、SPI及PWM等外設(shè),完全滿(mǎn)足設(shè)計(jì)需要,通用IO口還可以根據(jù)需要添加各種外設(shè)。
MPU9250是一款九軸傳感器,內(nèi)部集成有三軸陀螺儀,三軸加速度計(jì)和三軸磁力計(jì)。其將采集的信息轉(zhuǎn)換為16位數(shù)字量輸出,控制端可通過(guò) IIC總線接口和MPU9250進(jìn)行數(shù)據(jù)交互,其數(shù)據(jù)的傳輸速率可達(dá) 400 kHz/s。MPU9250還自帶數(shù)字運(yùn)動(dòng)處理器硬件加速引擎,使用DMP(數(shù)字運(yùn)動(dòng)處理器)的MPL庫(kù)(InvenSense 公司提供的運(yùn)動(dòng)處理庫(kù))可以非常方便的實(shí)現(xiàn)姿態(tài)解算[5]。MPU9250與STM32的接口設(shè)計(jì)電路如圖4所示。
圖4 MPU9250與STM32接口電路
設(shè)計(jì)中四旋翼的驅(qū)動(dòng)采用了空心杯電機(jī),該電機(jī)能量轉(zhuǎn)換率高,啟動(dòng)制動(dòng)響應(yīng)快,具有可靠的運(yùn)動(dòng)穩(wěn)定性,同時(shí)還具有重量輕,體積小,能耗低等特點(diǎn),可最大限度地減輕飛行器的重量。電機(jī)驅(qū)動(dòng)電路如圖5所示。
圖5 電機(jī)驅(qū)動(dòng)電路
四旋翼無(wú)人機(jī)通過(guò)地面控制部分控制其飛行,其中四旋翼無(wú)人機(jī)姿態(tài)信息、控制解算、姿態(tài)控制形成一個(gè)閉合的控制回路,保證了四旋翼無(wú)人機(jī)在受到外界干擾時(shí),能夠快速反應(yīng),進(jìn)行自我調(diào)節(jié),從而保證了飛行時(shí)的穩(wěn)定。其控制方式如圖6所示,其中通過(guò)傳感器MPU9250采集四旋翼無(wú)人機(jī)的姿態(tài)信息。采用開(kāi)源的Mahony互補(bǔ)濾波算法解算獲取飛行器機(jī)體坐標(biāo)系在地球坐標(biāo)系中的姿態(tài)角,利用該姿態(tài)角與所需控制位置偏差給出調(diào)節(jié)參數(shù),控制飛行器的姿態(tài)。
圖6 四旋翼無(wú)人機(jī)控制方式示意圖
系統(tǒng)中四旋翼無(wú)人機(jī)的位置姿態(tài)信息由MPU9250九軸傳感器采集,該信息為16位的AD值,通過(guò)IIC總線傳送給控制器STM32,控制器將采集到的數(shù)據(jù)轉(zhuǎn)換為實(shí)際的物理量并進(jìn)行姿態(tài)解算,最終得到飛行器機(jī)體坐標(biāo)系在地球坐標(biāo)系中的姿態(tài)角。姿態(tài)傳感器信息采集流程如圖7所示。
圖7 MPU9250數(shù)據(jù)采集流程圖
為了對(duì)傳感器所采集的數(shù)據(jù)中的雜波進(jìn)行處理,本設(shè)計(jì)方案中采用了卡爾曼濾波。設(shè)計(jì)中采用陀螺儀、溫漂作為狀態(tài)變量,以角速度、溫漂作為輸入量,建立過(guò)程方程,如式(1)。
(1)
其中,Qangle為陀螺儀測(cè)得的角度值,Qbias為溫漂,ω為陀螺儀輸出的角速度。同時(shí)以加速度計(jì)測(cè)得的角度與測(cè)量誤差作為參數(shù)建立相應(yīng)的觀測(cè)方程如下:
(2)
先驗(yàn)估計(jì):將式(1)代入x(k|k-1)=Ax(k-1|k-1)+Bu(k)得式(3),
Qangle=Qangle+(ω-Qbias)×dt
(3)
后驗(yàn)估計(jì)的計(jì)算式為式(4),
x(k|k)=x(k|k-1)+Kg(k)(z(k)-Hx(k|k-1))
(4)
在本設(shè)計(jì)方案中,卡爾曼濾波的最終目的是得到系統(tǒng)的最優(yōu)狀態(tài)量,同時(shí)實(shí)時(shí)對(duì)系統(tǒng)參數(shù)進(jìn)行更新。
PID控制算法的實(shí)質(zhì)就是根據(jù)輸入的偏差值,通過(guò)比例函數(shù)、積分函數(shù)和微分函數(shù)進(jìn)行綜合運(yùn)算,最后將運(yùn)算的結(jié)果作為控制輸出的一種控制方式。
圖8 模糊 PID 控制器的結(jié)構(gòu)圖
控制系統(tǒng)通過(guò)PID算法[7]調(diào)整輸出PWM波形,從而改變電機(jī)的轉(zhuǎn)速,控制四旋翼無(wú)人機(jī)實(shí)現(xiàn)不同飛行姿態(tài)調(diào)整,控制方式如圖9所示。
圖9 四旋翼無(wú)人機(jī)PID控制
PID控制器相關(guān)參數(shù)設(shè)定值如表1所示。
表1 PID控制器相關(guān)參數(shù)設(shè)定表
本文研究了四軸飛行器的控制系統(tǒng),包括硬件結(jié)構(gòu)及軟件設(shè)計(jì),給出了MPU9250傳感器的信息采集及數(shù)據(jù)處理,通過(guò)卡爾曼濾波算法對(duì)傳感器所采集的數(shù)據(jù)進(jìn)行融合濾波,從而實(shí)現(xiàn)精準(zhǔn)的姿態(tài)測(cè)量,根據(jù)飛行姿態(tài)[8]結(jié)合PID控制算法,完成對(duì)四旋翼無(wú)人機(jī)飛行姿態(tài)的控制。通過(guò)實(shí)驗(yàn)測(cè)試,驗(yàn)證了此項(xiàng)目的可行性,同時(shí)為以后的飛行器的姿態(tài)調(diào)整提供了理論依據(jù)。