文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.006
中文引用格式: 余單奕,嵇佳輝,郝立果. 四旋翼飛行平臺(tái)控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(10):29-32.
英文引用格式: Yu Danyi,Ji Jiahui,Hao Liguo. Design of control system for four rotor flight platform[J].Application of Electronic Technique,2016,42(10):29-32.
0 引言
四旋翼飛行平臺(tái)作為一種利用旋翼產(chǎn)生的空氣動(dòng)力來(lái)克服自身重力飛行的動(dòng)力裝置模型,飛控人員只需通過(guò)操控地面站就能對(duì)飛行器進(jìn)行控制,具有成本低、無(wú)人化、靈活高效和隱蔽性好等優(yōu)點(diǎn),被廣泛運(yùn)用于軍事、民用和科學(xué)研究領(lǐng)域。本文介紹了一種基于Atmega128單片機(jī)的四旋翼飛行控制系統(tǒng),通過(guò)采集三軸加速度和陀螺儀數(shù)據(jù),解算出飛行器的姿態(tài),并通過(guò)控制四個(gè)旋翼的轉(zhuǎn)速輸出實(shí)現(xiàn)對(duì)飛行平臺(tái)的穩(wěn)定控制。
1 總體方案與飛行原理
1.1 總體設(shè)計(jì)方案
該飛行控制系統(tǒng)主要由主控模塊、無(wú)線遙控模塊、MPU6050運(yùn)動(dòng)處理模塊、驅(qū)動(dòng)模塊、電源控制等組成。系統(tǒng)框圖如圖1所示。
主控模塊是系統(tǒng)的數(shù)據(jù)處理核心,運(yùn)動(dòng)處理模塊負(fù)責(zé)采集姿態(tài)數(shù)據(jù),無(wú)線遙控模塊進(jìn)行指令發(fā)送,電源控制和驅(qū)動(dòng)模塊控制電機(jī)轉(zhuǎn)速的輸出。
主控模塊由Atmega128單片機(jī)作為核心處理器,通過(guò)MPU6050運(yùn)動(dòng)處理模塊采集三軸加速度和陀螺儀數(shù)據(jù),原始數(shù)據(jù)經(jīng)過(guò)卡爾曼濾波算法優(yōu)化后就可得到相應(yīng)的歐拉角,即解算獲得了飛行器的姿態(tài)。通過(guò)無(wú)線遙控模塊將姿態(tài)調(diào)整指令發(fā)送到主控模塊的輸入捕獲端,主控模塊再將采集到的指令與飛行器自身的姿態(tài)數(shù)據(jù)進(jìn)行比對(duì),經(jīng)過(guò)PID自動(dòng)控制的反饋調(diào)節(jié),輸出給電源控制和驅(qū)動(dòng)模塊調(diào)控旋翼的轉(zhuǎn)速輸出,最終實(shí)現(xiàn)各種環(huán)境下的穩(wěn)定飛行。
1.2 動(dòng)力學(xué)飛行原理
四旋翼飛行平臺(tái)有六種基本運(yùn)動(dòng)狀態(tài),具有六個(gè)自由度,可以分別沿X軸、Y軸、Z軸平移或旋轉(zhuǎn),屬于欠驅(qū)動(dòng)系統(tǒng)。這六個(gè)自由度的控制均可以通過(guò)調(diào)節(jié)不同無(wú)刷電機(jī)的轉(zhuǎn)速輸出來(lái)實(shí)現(xiàn)。設(shè)作為剛體的飛行器質(zhì)量為m,質(zhì)心為O,作用在飛行器上的合外力矢量為F,M是相對(duì)于O點(diǎn)的合外力矩矢量,I為剛體繞坐標(biāo)軸的轉(zhuǎn)動(dòng)慣量。根據(jù)牛頓第二定律,其相對(duì)于質(zhì)心的動(dòng)力學(xué)方程在慣性坐標(biāo)系O′XYZ中的投影式為:
根據(jù)對(duì)質(zhì)心的動(dòng)量矩定理,飛行器繞質(zhì)心O運(yùn)動(dòng)的姿態(tài)動(dòng)力學(xué)方程在本體坐標(biāo)系OXYZ中的投影式為:
其中第一組的3個(gè)二階微分方程描述了飛行器的3個(gè)質(zhì)心平動(dòng)自由度;另外兩組方程確定了3個(gè)轉(zhuǎn)動(dòng)自由度,描述了飛行器繞質(zhì)心的運(yùn)動(dòng)規(guī)律,即姿態(tài)運(yùn)動(dòng)。聯(lián)立三組方程就得到了剛性六自由度飛行器一般運(yùn)動(dòng)的全部運(yùn)動(dòng)方程。
四旋翼飛行平臺(tái)的四個(gè)螺旋槳分為一組正槳和一組反槳,兩個(gè)相對(duì)的槳為一組,當(dāng)四個(gè)電機(jī)旋轉(zhuǎn)時(shí)槳所產(chǎn)生的氣流均向下,由于正槳和反槳的旋轉(zhuǎn)方向相反,飛行器平穩(wěn)飛行時(shí)的陀螺效應(yīng)和空氣動(dòng)力扭矩可以互相抵消。
2 硬件電路的設(shè)計(jì)
2.1 控制系統(tǒng)工作原理及設(shè)計(jì)
系統(tǒng)采用Atmega128單片機(jī)作為主控模塊芯片,通過(guò)IIC通信方式將MPU6050運(yùn)動(dòng)處理模塊的六個(gè)數(shù)據(jù)(三軸加速度AD值和三軸角速度AD值)讀出,經(jīng)過(guò)姿態(tài)融合后得到飛行器的三個(gè)歐拉角即解算出了當(dāng)前的飛行姿態(tài)。再將輸入捕獲管腳采集到的不同通道的PPM控制指令數(shù)據(jù)與當(dāng)前飛行姿態(tài)數(shù)據(jù)進(jìn)行PID自動(dòng)調(diào)節(jié),最后利用快速PWM輸出功能實(shí)現(xiàn)對(duì)多個(gè)無(wú)刷電機(jī)驅(qū)動(dòng)器的控制和電源控制。
其中,姿態(tài)融合所采用的就是卡爾曼濾波算法。卡爾曼濾波是一種線性最小方差估計(jì),其算法是遞推的,因此適用于多維隨機(jī)過(guò)程的估計(jì),并采用動(dòng)力學(xué)方程即狀態(tài)方程描述被估計(jì)量的動(dòng)態(tài)變化規(guī)律,同時(shí)也適用于非平穩(wěn)過(guò)程,其離散型算法可以直接在單片機(jī)上實(shí)現(xiàn)??柭鼮V波理論為一種重要的最優(yōu)估計(jì)理論被廣泛應(yīng)用于組合導(dǎo)航系統(tǒng)的設(shè)計(jì)。
設(shè)tk時(shí)刻的被估計(jì)狀態(tài)Xk受系統(tǒng)噪聲序列Wk-1驅(qū)動(dòng),驅(qū)動(dòng)機(jī)理由下述狀態(tài)方程描述。
對(duì)Xk的量測(cè)滿足線性關(guān)系,量測(cè)方程為:
2.2 PPM信號(hào)采集的工作原理及設(shè)計(jì)
無(wú)線遙控模塊采用的是八通道的2.4 GHz無(wú)線射頻遙控技術(shù),以無(wú)線的方式將油門(mén)、方向等指令信號(hào)發(fā)送到主控模塊的單片機(jī)。無(wú)線遙控模塊發(fā)出的信號(hào)是PPM信號(hào),而PPM信號(hào)可以理解為多個(gè)PWM信號(hào)的合成。
首先要將PPM信號(hào)分解成多通道PWM信號(hào),一幀PPM信號(hào)的長(zhǎng)度為20 ms,而分離出來(lái)的PWM信號(hào)脈寬為0~2 ms,變化范圍為1~2 ms之間。因此一幀PPM信號(hào)至多可以包含1個(gè)同步信號(hào)和9個(gè)通道的PWM信號(hào),示波器測(cè)試的PPM波形如圖2所示。
本系統(tǒng)采用主控芯片自帶的輸入捕獲功能來(lái)對(duì)PPM信號(hào)進(jìn)行采集,然后通過(guò)CD4051模擬電子開(kāi)關(guān)將PPM信號(hào)分離成4路PWM信號(hào),輸出控制驅(qū)動(dòng)模塊各個(gè)驅(qū)動(dòng)器改變無(wú)刷電機(jī)的轉(zhuǎn)速,從而間接實(shí)現(xiàn)無(wú)線遙控模塊對(duì)飛行器飛行姿態(tài)的控制。
3 軟件程序的設(shè)計(jì)與分析
3.1 程序框架的設(shè)計(jì)
在系統(tǒng)中,軟件應(yīng)用模塊化設(shè)計(jì)。首先主控模塊對(duì)單片機(jī)的功能及其與各模塊的接口進(jìn)行初始化,其次運(yùn)動(dòng)處理模塊對(duì)MPU6050的DMP功能進(jìn)行初始化,分為加載固件和刷新數(shù)據(jù)兩部分。MPU6050先調(diào)用內(nèi)部數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行計(jì)算獲得原始數(shù)據(jù),并將此原始數(shù)據(jù)加載到FIFO存儲(chǔ)器里,其中包括四元素數(shù)據(jù)、陀螺儀數(shù)據(jù)和加速度數(shù)據(jù)。單片機(jī)再通過(guò)IIC通信方式將MPU6050的數(shù)據(jù)讀出,通過(guò)編程輸入的動(dòng)力學(xué)公式計(jì)算出相應(yīng)的歐拉角,即得到飛行器的飛行姿態(tài),之后單片機(jī)通過(guò)輸入捕獲功能獲取遙控模塊發(fā)來(lái)的PPM信號(hào),將接收到的PPM信號(hào)分離出油門(mén)、俯仰、翻滾和偏航數(shù)據(jù),并將這些數(shù)據(jù)與采集到的姿態(tài)數(shù)據(jù)進(jìn)行對(duì)比,如存在偏差則通過(guò)PID自動(dòng)調(diào)節(jié)來(lái)進(jìn)行調(diào)整,調(diào)整過(guò)程直到消除這些偏差為止。程序的設(shè)計(jì)流程圖如圖3所示。
3.2 程序控制算法的實(shí)現(xiàn)
本系統(tǒng)采用的控制算法是PID控制。主控模塊需要將無(wú)線遙控模塊給定的期望姿態(tài)和運(yùn)動(dòng)處理模塊解算出的實(shí)時(shí)姿態(tài)進(jìn)行比對(duì),當(dāng)存在偏差量時(shí),驅(qū)動(dòng)模塊同時(shí)控制四個(gè)電機(jī)的轉(zhuǎn)速使其快速穩(wěn)定地達(dá)到預(yù)期給定的效果消除偏差,PID控制器結(jié)構(gòu)如圖4所示。
比例系數(shù)P是對(duì)系統(tǒng)最直接的調(diào)節(jié),在控制過(guò)程中需要提供合適的P值,過(guò)大或過(guò)小的P值,都將導(dǎo)致系統(tǒng)的不穩(wěn)定,合適的P值應(yīng)該使系統(tǒng)處在一個(gè)等幅震蕩的狀態(tài)。積分系數(shù)I是對(duì)過(guò)去的控制過(guò)程中存在的偏差進(jìn)行積分,只要系統(tǒng)存在控制與期望之間的偏差,積分運(yùn)算就會(huì)一直進(jìn)行下去直到消除偏差。微分系數(shù)D能預(yù)測(cè)系統(tǒng)的變化趨勢(shì),從而提前控制以遏制不穩(wěn)定情況的產(chǎn)生。
3.3 上位機(jī)軟件
在軟件調(diào)試的過(guò)程中,采用了具有基本收碼、高級(jí)收碼、波形顯示和飛控狀態(tài)顯示等功能的四軸上位機(jī)調(diào)試軟件。計(jì)算機(jī)與單片機(jī)采用串口的通信方式,通過(guò)制定好的協(xié)議和波特率便可將數(shù)據(jù)發(fā)送到計(jì)算機(jī),在計(jì)算機(jī)上以三維動(dòng)態(tài)圖的效果顯示出來(lái)。在飛控狀態(tài)界面,可以將遙控模塊發(fā)送過(guò)來(lái)的油門(mén)、俯仰角、翻滾角、偏航角的值以柱狀圖的形式進(jìn)行顯示;在波形顯示界面,可以根據(jù)需要將數(shù)據(jù)繪制成多條曲線進(jìn)行對(duì)比和分析,上位機(jī)調(diào)試軟件的界面如圖5所示。
將上位機(jī)的波特率設(shè)置為115 200 b/s。每秒鐘可傳輸約10 472幀數(shù)據(jù),可以滿足飛控系統(tǒng)對(duì)傳輸率的要求。
4 測(cè)試結(jié)果
4.1 加速度、陀螺儀數(shù)據(jù)測(cè)試結(jié)果
采用MPU6050的DMP功能求解有關(guān)數(shù)據(jù),通過(guò)發(fā)送數(shù)據(jù)到上位機(jī)觀察,得到加速度和陀螺儀數(shù)據(jù),數(shù)據(jù)測(cè)試結(jié)果如圖6所示。
4.2 PPM解碼測(cè)試與分析
通過(guò)程序?qū)⑦b控模塊發(fā)出的PPM信號(hào)進(jìn)行解碼,把各通道數(shù)據(jù)通過(guò)串口發(fā)送到上位機(jī)調(diào)試軟件,得到的數(shù)據(jù)如表1所示。在數(shù)據(jù)處理中,PPM解碼的最小值為250,最大值為500,而單片機(jī)的快速PWM輸出功能滿值為255,因此將PPM解碼的變化差值設(shè)計(jì)為250就可以與PWM產(chǎn)生模塊值對(duì)應(yīng)。
4.3 飛行姿態(tài)解算測(cè)試與分析
對(duì)飛行器姿態(tài)解算的準(zhǔn)確性進(jìn)行驗(yàn)證和分析時(shí),分別對(duì)繞X軸、Y軸、Z軸旋轉(zhuǎn)產(chǎn)生的翻滾角、俯仰角和偏航角進(jìn)行驗(yàn)證,并測(cè)試測(cè)量范圍,姿態(tài)解算測(cè)試結(jié)果如表2所示。通過(guò)表2中的數(shù)據(jù)可知,俯仰角、翻滾角、偏航角的測(cè)量范圍均接近正負(fù)180°,解算的數(shù)據(jù)與實(shí)際數(shù)據(jù)存在的偏差較小,滿足本系統(tǒng)的設(shè)計(jì)要求。
5 結(jié)論
從測(cè)試結(jié)果來(lái)看,各指標(biāo)均達(dá)到了本系統(tǒng)的設(shè)計(jì)要求,可以較為精確地控制四旋翼飛行平臺(tái)的飛行姿態(tài)。使用MPU6050的DMP庫(kù)進(jìn)行數(shù)據(jù)的整合納入和標(biāo)準(zhǔn)化細(xì)分,將單片機(jī)從繁重的計(jì)算工作中解放了出來(lái),同時(shí)減少了大量的封裝空間,使系統(tǒng)較好地實(shí)現(xiàn)了實(shí)時(shí)性和穩(wěn)定性,提高了抗干擾能力,達(dá)到了預(yù)期的效果。
參考文獻(xiàn)
[1] 秦永元.卡爾曼濾波與組合導(dǎo)航原理[M].西安:西北工業(yè)大學(xué)出版社,2012.
[2] 何獻(xiàn)忠.位置隨動(dòng)系統(tǒng)軟件控制的研究[J].儀表技術(shù)與傳感器,2010(4):45-47.
[3] 巫華芳.基于三軸陀螺儀傳感器的無(wú)線位置伺服算法應(yīng)用[J].儀表技術(shù)與傳感器,2016(1):1002-1841.
[4] 梅碩基.慣性儀器測(cè)試及數(shù)據(jù)分析[M].西安:西北工業(yè)大學(xué)出版社,1984.
[5] 以光衢.慣性導(dǎo)航原理[M].北京:航空工業(yè)出版社,1987.
[6] 趙晨,杜勇.四旋翼無(wú)人機(jī)在輸電線路巡視中的應(yīng)用[J].湖北電力,2012,36(6):35-36.
[7] 吳東國(guó).基于四旋翼飛行器平臺(tái)的低空遙感技術(shù)在公路環(huán)境調(diào)查中的應(yīng)用[J].公路交通技術(shù),2012(6):137-138.
[8] 蔣慶仙.關(guān)于MEMS慣性傳感器的發(fā)展及在組合導(dǎo)航中的應(yīng)用前景[J].測(cè)繪通報(bào),2006(9):5-8.