徐曉丹,鄧 鵬,袁雙全,桂逸凡
(荊楚理工學(xué)院 電子信息工程學(xué)院,湖北 荊門 448000)
隨著國(guó)家的日益強(qiáng)盛,科技飛速發(fā)展,新興科技不斷涌現(xiàn),四旋翼無人機(jī)的出現(xiàn)便是眾多高科技中的杰出代表。四旋翼無人機(jī)主要由4 個(gè)槳葉交叉形成十字結(jié)構(gòu),通過槳葉旋轉(zhuǎn)提供升力進(jìn)行飛行,遙控器控制其飛行方向。四旋翼無人機(jī)控制系統(tǒng)國(guó)外早有研究,一些著名高校和創(chuàng)業(yè)公司都有四旋翼無人機(jī)控制系統(tǒng)的自主研發(fā),利用相關(guān)的控制算法,結(jié)合多個(gè)傳感器建立具有獨(dú)特控制性。四旋翼無人機(jī)結(jié)構(gòu)簡(jiǎn)單,具有橫滾、俯仰、偏航、懸停、垂直等多種飛行模式,很大程度上滿足了用戶的需求??刂葡到y(tǒng)的作用在四旋翼無人機(jī)的飛行過程中十分關(guān)鍵[1,2]。在本文中,以MSP432 微控制器為核心,利用MPU6050 傳感器采集四旋翼無人機(jī)的姿態(tài)數(shù)據(jù),改進(jìn)傳統(tǒng)PID 控制算法,完成四旋翼無人飛行器飛行控制系統(tǒng)設(shè)計(jì)。
本文的四旋翼無人機(jī)主要由MSP432 單片機(jī)、遙控器、控制器、傳感器、IMU 解算單元、電源以及其他組件組成。MSP432 作為飛行控制器,接收傳感器提供的信息進(jìn)行分析和判斷,輸出PWM,控制4 個(gè)電機(jī)的轉(zhuǎn)動(dòng),控制飛行器的飛行姿態(tài)。傳感器模塊包括IMU 解算單元、高度感應(yīng)器、水平感應(yīng)器、巡線感應(yīng)器等,傳感器給出無人機(jī)姿態(tài)信息、陀螺儀值、高度值等,通過解算后融入到整個(gè)IMU 飛控單元中,得到無人機(jī)在空間中的一個(gè)相對(duì)穩(wěn)定的位置,無人機(jī)下一步的飛行方向在接收到位置信息之后進(jìn)行控制。遙控器負(fù)責(zé)把遙控信息輸入到控制器中,實(shí)現(xiàn)一鍵起飛功能,必要時(shí)還可以切換至手動(dòng)控制狀態(tài)。系統(tǒng)整體框圖如圖1。
圖1 系統(tǒng)整體框圖Fig.1 Overall system block diagram
系統(tǒng)硬件主要由F260-T432 底板、傳感器模塊、控制器、遠(yuǎn)程控制器、馬達(dá)控制等幾大部分構(gòu)成。Open MV 作為巡線控制器的數(shù)據(jù)來源控制整個(gè)無人機(jī)飛行。IMU 解算單元解算出信息后,首先給姿態(tài)控制器去控制無人機(jī)穩(wěn)定飛行,還會(huì)給出水平信息,與光流數(shù)據(jù)融合后控制水平控制器。高度控制器根據(jù)激光模塊測(cè)出距離后將數(shù)據(jù)進(jìn)行融合,控制無人機(jī)飛行高度。
F260-T432 底板搭載TI 公司的MSP432 系列開發(fā)板[3,4]。飛行控制器使用MSP432P401R 核心板作為主控,MSP432主要應(yīng)用于對(duì)功耗和性能要求都比較嚴(yán)苛的應(yīng)用領(lǐng)域,其主要由F260-T432 底板、傳感器模塊、控制器、遠(yuǎn)程控制器、馬達(dá)控制等幾大部分構(gòu)成。MSP432 中的MCU 是32位,相較于16 位RISC(精簡(jiǎn)指令集)的MSP430 單片機(jī),MSP432 單片機(jī)采用32 位RISC,性能有很大提升,具有強(qiáng)大的處理能力,極低功耗,豐富的芯片外設(shè)和高效靈活的開發(fā)環(huán)境。作為一個(gè)極低功耗、高性能的MCU,MSP432單片機(jī)的應(yīng)用前景十分廣闊。
傳感器模塊由IMU 解算單元、高度傳感器、水平傳感器和巡線傳感器組成,給無人機(jī)提供所有傳感信息。在IMU 求解單元中,得到了3 種信息:加速度信息、陀螺儀信息和糾正無人機(jī)飛行姿態(tài)的溫度信息。陀螺儀信息用來被矯正,溫度信息用來做恒溫控制,IMU 解算利用MPU6050 采集四旋翼無人機(jī)的姿態(tài)數(shù)據(jù),以相對(duì)平穩(wěn)的姿勢(shì)使無人機(jī)在空中飛行;高度傳感器由氣壓計(jì)和紅外激光傳感器組成,實(shí)現(xiàn)定高功能,讓無人機(jī)穩(wěn)定飛行在某一確定高度;水平傳感器搭載匿名光流模塊,通過水平速度、垂直速度的識(shí)別,實(shí)現(xiàn)無人機(jī)定點(diǎn)懸停、定高等功能。水平傳感器由一個(gè)異步串口總線用來連接其他控制器,一個(gè)USB 口用來連接上位機(jī),方便調(diào)參;巡線傳感器采用OpenMV3 攝像頭模塊,OpenMV3 攝像頭能進(jìn)行機(jī)器視覺識(shí)別,實(shí)現(xiàn)無人機(jī)循跡功能。通過Micropython 語言,實(shí)現(xiàn)想要的邏輯的攝像頭內(nèi)置圖像處理算法,使用外置終端觸發(fā)拍攝或執(zhí)行算法都很容易,還能利用算法的結(jié)果控制I/O引腳。圖2為傳感器模塊圖。
圖2 傳感器模塊圖Fig.2 Sensor module diagram
姿態(tài)控制器包括高度控制器、水平控制器和巡線控制器[5-7]。姿態(tài)控制器是最基本的控制器,讓無人機(jī)以一個(gè)相對(duì)穩(wěn)定的姿態(tài)在空中飛行;高度控制器可以實(shí)現(xiàn)測(cè)高功能,使無人機(jī)穩(wěn)定地飛行在一定的預(yù)期高度上;水平控制器根據(jù)光流數(shù)據(jù)控制無人機(jī)水平方向,向左向右或是保持不變;巡線控制器根據(jù)Open MV 傳回來的信息實(shí)現(xiàn)巡線控制。
本設(shè)計(jì)采用T8F8 遙控器,內(nèi)置發(fā)射機(jī),傳輸頻率為2.4GHz,適配R8F8 接收機(jī),采用S-BUS 信號(hào)輸出,其他通道能輸出對(duì)應(yīng)PWM 信號(hào),方便配合其他傳感器使用。
遙控器的兩種模式:姿態(tài)模式與定點(diǎn)模式[8]。姿態(tài)模式中,由油門直接控制,Pitch 控制俯仰角度,Roll 控制橫滾角度,Yaw 控制航向角度;在定點(diǎn)模式中,高度信息由油門來控制,遙控器模塊圖如圖3。
圖3 遙控器模塊圖Fig.3 Remote control module diagram
本設(shè)計(jì)選取了一種以無人機(jī)穩(wěn)定飛行為目標(biāo)的無刷電動(dòng)機(jī)作為無人機(jī)動(dòng)態(tài)源,無刷直流馬達(dá)適合四旋翼飛機(jī),其體積小、效率高、穩(wěn)態(tài)轉(zhuǎn)速誤差小。無刷電機(jī)要進(jìn)行驅(qū)動(dòng),無刷電機(jī)的驅(qū)動(dòng)相對(duì)來說比較復(fù)雜,需要單獨(dú)的MCU控制三相橋驅(qū)動(dòng)。遙控器和巡線控制器分別控制姿態(tài)和水平控制器。根據(jù)速度采樣定理,電機(jī)控制模式采用400Hz的PWM 波控制電機(jī),能精準(zhǔn)控制電機(jī)。
軟件部分主要通過地面控制實(shí)現(xiàn)其飛行控制,四旋翼無人機(jī)的姿態(tài)信息、控制解算、姿態(tài)控制3 大模塊形成閉合的控制回路,保證了即使在外界環(huán)境的干擾下也能快速反應(yīng),進(jìn)行自我調(diào)節(jié),確保穩(wěn)定飛行。
MPU6050 姿態(tài)信息采集沒有組合式陀螺儀與加速器軸間差的問題,安裝空間相對(duì)于多組件方案有所減小。6 軸傳感器MPU6050 是整合6 軸運(yùn)動(dòng)處理的組件,內(nèi)帶3 軸陀螺儀和3 軸加速計(jì),利用II C 接口將全6 軸進(jìn)行整合,并利用自帶的數(shù)字運(yùn)動(dòng)處理器DMP 硬件加速引擎與外接磁力傳感器相結(jié)合。
無人機(jī)姿態(tài)解算有歐拉角、方向余弦、四元數(shù)等,它們各有優(yōu)缺點(diǎn)。歐拉角法在計(jì)算時(shí)存在90°奇點(diǎn),存在一個(gè)超越函數(shù),難以計(jì)算。方向余弦法狀態(tài)維數(shù)高,求解時(shí)會(huì)產(chǎn)生歪斜、飄移等誤差,計(jì)算量大,效率低。旋轉(zhuǎn)矢量法的雙值性,在解算時(shí)會(huì)產(chǎn)生誤差,產(chǎn)生奇異矩陣。這幾種姿態(tài)解算方法中,四元數(shù)法變復(fù)雜的三角函數(shù)運(yùn)算為簡(jiǎn)單的線性化系統(tǒng),具有計(jì)算量小、精度高,可避免奇異性等優(yōu)勢(shì)。
為了更好地描述無人機(jī)在空間中的位置,如圖4,建立慣性坐標(biāo)系E 和機(jī)體坐標(biāo)系B。
圖4 慣性坐標(biāo)系E和機(jī)體坐標(biāo)系BFig.4 Inertial coordinate system E and body coordinate system B
根據(jù)無人機(jī)飛行時(shí)4 個(gè)槳葉不同的旋轉(zhuǎn)順序,分別對(duì)應(yīng)不同的旋轉(zhuǎn)矩陣,依據(jù)偏航角Ψ、俯仰角θ、橫滾角φ的順序,分別繞OEZE-OEYE-OEXE旋轉(zhuǎn),依次旋轉(zhuǎn)的矩陣連乘就得到了旋轉(zhuǎn)矩陣REB。
矩陣REB的轉(zhuǎn)置矩陣REB就是將機(jī)體坐標(biāo)系B 轉(zhuǎn)換成慣性坐標(biāo)系E:
當(dāng)θ=±π/2 時(shí):
此時(shí)橫滾角的旋轉(zhuǎn)軸與偏航角的旋轉(zhuǎn)軸發(fā)生重合,失去了一個(gè)自由度。把四元數(shù)和歐拉角聯(lián)系起來就可以,表示其旋轉(zhuǎn)為:
旋轉(zhuǎn)矩陣表示為:
聯(lián)立式(1)和式(5)得:
PID 算法原理簡(jiǎn)單,通過調(diào)整3 個(gè)單元的增益Kp,Ki,Kd實(shí)現(xiàn)其特性,魯棒性強(qiáng),控制精度相對(duì)較高,傳統(tǒng)PID控制算法適用于線性且動(dòng)態(tài)特性不隨時(shí)間變化的系統(tǒng),PID控制律算法表示為:
其中,Kp為比例增益,Ki為積分增益,Kd為微分增益,u(t)為控制量(控制器輸出),e(t)為被控量與給定值的誤差[9]。
PID 控制適用于許多控制問題,在參數(shù)調(diào)整好后具有不錯(cuò)的效果,然而在一些應(yīng)用下效果不佳,通常無法提供最佳的控制。PID 控制的主要問題在于其是線性對(duì)稱的,在非線性的系統(tǒng)中,其效果可能會(huì)有變化。由于無人機(jī)屬于非線性不穩(wěn)定系統(tǒng),在實(shí)際飛行環(huán)境不確定情況下,傳統(tǒng)PID 控制器無法適應(yīng)四軸飛行器的非線性系統(tǒng)。本文改進(jìn)傳統(tǒng)PID 算法,引進(jìn)串級(jí)PID 控制器控制無人機(jī)的飛控系統(tǒng)。
將兩個(gè)PID 控制器組合在一起就是串級(jí)PID 控制器,外環(huán)控制器的輸出賦給內(nèi)環(huán)控制器的輸入,減小誤差,滿足非線性條件。內(nèi)部的PID 控制器直接對(duì)目標(biāo)值進(jìn)行控制,外部的PID 控制器用來快速逼近目標(biāo)值。與傳統(tǒng)PID 控制算法相比較,串級(jí)PID 控制使時(shí)間常數(shù)減小,振蕩周期縮短,提高系統(tǒng)的運(yùn)行效率,增強(qiáng)飛控系統(tǒng)的穩(wěn)定性。圖5是串級(jí)PID 控制的原理圖。
圖5 串級(jí)PID控制原理圖Fig.5 Schematic diagram of cascade PID control
串級(jí)PID 控制器在使用時(shí),外環(huán)控制無人機(jī)的姿態(tài)角,達(dá)到超前控制的快速響應(yīng);內(nèi)環(huán)作為角速度環(huán)控制無人機(jī),實(shí)現(xiàn)對(duì)角速度的控制,提高無人機(jī)的飛行穩(wěn)定性。
在串級(jí)PID 控制系統(tǒng)建立后,利用MATLAB 對(duì)四旋翼無人機(jī)進(jìn)行仿真控制,利用PID Tuner 工具箱整定參數(shù)并進(jìn)行對(duì)比驗(yàn)證。調(diào)試串級(jí)PID 時(shí)先把外環(huán)去除,將外環(huán)比例增益Kp設(shè)置成1。在調(diào)整內(nèi)環(huán)Kp時(shí)將Kp逐漸增大,再撥動(dòng)飛機(jī),此時(shí)飛機(jī)會(huì)逐漸開始震蕩,當(dāng)飛機(jī)能快速震蕩以后,再緩慢調(diào)小Kp,將震蕩減小。接著調(diào)整內(nèi)環(huán)Kd,緩慢增加Kd,直到飛機(jī)抖動(dòng)逐漸減小,如果增加到一定程度,再次出現(xiàn)震蕩,則表示Kd過大,此時(shí)只要減小Kd,使飛機(jī)保持輕微震蕩即可。再調(diào)整內(nèi)環(huán)Ki(方法同Kd),緩慢增加Ki,直到消除最后輕微震蕩,此時(shí)飛機(jī)可以快速抵抗角度偏移。
在整定外環(huán)Kp時(shí),緩慢增大外環(huán)Kp,直到飛機(jī)能快速響應(yīng)打舵,并且使飛機(jī)不再震蕩。內(nèi)環(huán)Kp,Ki,Kd大了都會(huì)震蕩,且震蕩頻率p 圖6 PID Tuner工具箱參數(shù)整定圖Fig.6 Parameter setting diagram of PID Tuner toolbox 通過在MATLAB 上仿真PID,基本了解串級(jí)PID 的實(shí)際作用。Kp要選取合適值,過大會(huì)產(chǎn)生震蕩,過小會(huì)產(chǎn)生超常量,從小到大調(diào)節(jié)緩慢。太大的Kd值會(huì)導(dǎo)致毛刺抖動(dòng),太小則會(huì)出現(xiàn)異常。Ki值大了后,雖然調(diào)節(jié)很快,但也會(huì)產(chǎn)生過沖,出現(xiàn)尖峰脈沖,小了導(dǎo)致調(diào)節(jié)很慢,可能無法調(diào)試達(dá)到穩(wěn)定狀態(tài)。 總結(jié)以上三點(diǎn),得出以下規(guī)律:在調(diào)試PID 時(shí),Kp從小到大調(diào)試,Kd從小到大調(diào)試,Ki從小到大調(diào)試。每次只調(diào)一個(gè)參數(shù),直到最滿意的時(shí)候,再調(diào)下個(gè)參數(shù)。表1給出了PID 的參數(shù)。 表1 PID參數(shù)Table 1 PID Parameters 首次飛行前,需要檢測(cè)傳感器數(shù)據(jù)是否正常,姿態(tài)解算是否正常以及電機(jī)轉(zhuǎn)向和槳葉是否正常。檢測(cè)傳感器數(shù)據(jù)是否正常主要檢查加速度計(jì)和陀螺儀數(shù)據(jù)是否出現(xiàn)全部數(shù)據(jù)為0 的情況,傳感器靜態(tài)校正后數(shù)據(jù)是否剛好滿量程。電機(jī)轉(zhuǎn)向檢查是否正常,根據(jù)發(fā)電機(jī)轉(zhuǎn)向俯視飛機(jī)右上角電機(jī)逆時(shí)針轉(zhuǎn)動(dòng)為標(biāo)準(zhǔn),由于相鄰電機(jī)具有相反轉(zhuǎn)向,對(duì)角電機(jī)具有相同轉(zhuǎn)向,所以電機(jī)序號(hào)要與定義的相同。 利用MATLAB 進(jìn)行模擬,驗(yàn)證PID 控制系統(tǒng)效果,選擇四旋翼無人機(jī)的內(nèi)部變量配置見表2。 表2 四旋翼無人機(jī)內(nèi)部變量配置Table 2 Internal variable configuration of quadrotor UAV 本文研究的四旋翼無人機(jī),以MSP432 微控制器為核心,結(jié)合硬件和軟件分析實(shí)驗(yàn),通過MPU6050 傳感器信息采集與數(shù)據(jù)處理,結(jié)合無人機(jī)飛行姿態(tài),改進(jìn)傳統(tǒng)的PID控制算法。四旋翼無人機(jī)完成飛控系統(tǒng)設(shè)計(jì)采用MATLAB仿真模擬進(jìn)行參數(shù)整定,實(shí)現(xiàn)姿態(tài)探測(cè)。通過多次對(duì)無人機(jī)的飛行控制系統(tǒng)測(cè)試和試驗(yàn),驗(yàn)證了基于MSP432 單片機(jī)的四旋翼無人機(jī)控制系統(tǒng)的可行性。4 姿態(tài)飛行測(cè)試
5 結(jié)語