顏 平,王麗丹,李夢柯,洪成昌,江東風
(西南大學 重慶 400715)
基于STM32的四旋翼飛行器設計與實現(xiàn)
顏 平,王麗丹,李夢柯,洪成昌,江東風
(西南大學 重慶400715)
本四旋翼飛行器以STM32F103RCT6為核心控制器,通過硬件連接快速接收MPU6050模塊實時檢測的飛行器姿態(tài)數(shù)據(jù),經(jīng)過UpdataIMU算法得到對應的姿態(tài)角四元數(shù),互補濾波后進行PID算法計算得出PWM波控制電機,得到穩(wěn)定的飛行姿態(tài)。文中主要介紹了四旋翼飛行器的硬件設計、軟件設計以及調(diào)試方法,反復的試驗證明本方法能設計出穩(wěn)定飛行的四旋翼飛行器。隨著研究的深入,四旋翼飛行器應用前景廣闊。
四旋翼飛行器;UpdataIMU算法;互補濾波;PID算法
近年來,四旋翼飛行器憑借優(yōu)良的飛行性能和巨大的應用潛力日益得到關注。四旋翼飛行器融合了直升機與固定翼飛行器的優(yōu)點,同時能在各種復雜地形飛行,現(xiàn)已發(fā)展為集軍用、商用、民用多位一體的實用工具,因此具有很高的科研價值。因此本項目結合現(xiàn)有的四旋翼飛行器的理論與技術基礎,選用常用的STM32控制芯片結合流行的姿態(tài)控制芯片,利用合適的算法自主設計四旋翼飛行器。通過對四旋翼飛行器主要介紹和對四旋翼工作模式與控制參數(shù)的研究,進行實際的控制算法和實物結合,從硬件搭建和軟件調(diào)試介紹了四旋翼飛行器飛行姿態(tài)控制的研發(fā)。
四旋翼飛行器的設計主要包括兩個部分:機架結構和飛行控制系統(tǒng)。機架構造是四旋翼的基礎,為了保證飛行器在飛行過程中能經(jīng)歷更高的強度完成更多的功能,本項目選擇碳纖維材料做機架,碳纖維質(zhì)輕,強度高不易破損;在拓展功能中輕巧的機身使得旋翼可以搭載更多其他設備完成攝像,探測等任務。飛行控制系統(tǒng)由主控制器、姿態(tài)傳感器、無線通信和電機驅(qū)動等部分組成。姿態(tài)傳感器用來測量四旋翼飛行器的飛行狀態(tài)信息 ,主控制器通過高速數(shù)模、模數(shù)轉(zhuǎn)換I/O口接收姿態(tài)傳感器反饋回來的狀態(tài)信息,并結合預定值經(jīng)過算法得出最直接的四路輸出量PWM值控制電機轉(zhuǎn)速,調(diào)整飛行器的姿態(tài),并不斷進行反饋調(diào)節(jié),得到適當力矩達到穩(wěn)定。整個四旋翼飛行器控制系統(tǒng)主要分為硬件連接和軟件控制兩個部分。
1.1主控模塊
本項目采用STM32開發(fā)板對系統(tǒng)進行控制,主控芯片STM32F103RCT6具有32位高精度高速度的浮點處理單元,72 MHz高速處理能力,112個高速I/O口,多達21個3×12-bit,1 μsA/D、D/A轉(zhuǎn)換通道,以及多路PWM輸出通道;它負責接收傳感器檢測到的姿態(tài)角速率等數(shù)據(jù)、三軸的線加速度,氣壓傳感器測得的高度和航向信息并結合控制算法和濾波處理[1]計算輸出控制量并不斷進行循環(huán)檢測和計算以達到系統(tǒng)的穩(wěn)定性,并通過無線通信模塊與上位機進行數(shù)據(jù)的交換,實現(xiàn)數(shù)據(jù)交互和飛行姿態(tài)控制[2]。
圖1 硬件設計整體框圖Fig.1 Overall block diagram of the hardware design
主控模塊供電模塊采用線性元器件PTN78000WAH構成電壓轉(zhuǎn)換電路結合tps62160穩(wěn)壓,為單片機其他模塊供電,發(fā)熱小,紋波小,綜合效能高
1.2傳感器模塊
由四旋翼飛行器的簡單物理模型可知,在一固定時刻,四旋翼的狀態(tài)由6個物理量來描述,包括在三維坐標中的3個位置量和沿3個軸的姿態(tài)量,這些姿態(tài)數(shù)據(jù)的采集則由MPU6050模塊來實現(xiàn)。慣性傳感器有兩種類型:陀螺儀和加速度計。陀螺儀起到測量四旋翼飛行器的角速率的作用。因此,精度和穩(wěn)定性可作為陀螺儀選型的重要原則,MPU6050所測得的數(shù)據(jù)誤差較結合的陀螺儀和加速度計誤差更小、運用和控制更方便。MPU6050是三軸陀螺儀和三軸加速器的結合,MPU6050的角速度全格感測范圍設定為±250、±500等,可準確追蹤快速與慢速動作,傳輸可透過最高至400 kHz的IC。慣性導航中,導航參數(shù)會隨著傳感器的測量誤差積累而發(fā)散[3],另外為了更加準確,本四旋翼增加了三軸加速度計、GY-63氣壓傳感模塊和陀螺儀6D0F模塊與MPU6050所得數(shù)據(jù)進行校準,以期更好地控制飛行。
1.3無線通信模塊
為了實現(xiàn)四旋翼飛行器和地面控制中心之間的通信必須使用無線通信模塊。本項目采用nRF24L01單片機無線收發(fā)芯片,工作在2.4~2.5 GHz的ISM頻段的單片無線收發(fā)器芯片。無線收發(fā)模塊包括:頻率發(fā)生器、增強型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器,能較好地完成通信。也可以利用WIFI進行通信,通過電腦內(nèi)置無線網(wǎng)絡協(xié)議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,同樣能夠?qū)崿F(xiàn)電腦與WIFI芯片的無線數(shù)據(jù)傳輸,同時WIFI信息傳送數(shù)據(jù)速率可以達到600Mb,并且配置和使用也簡單,但是在手動控制飛行器的時候不如手持式無線終端靈活,但最終仍然能實現(xiàn)上位機對其的數(shù)據(jù)采集和實時操控。
1.4電機、電調(diào)控制模塊
本項目采用直接利用成品AL-ITW電調(diào),控制無刷電機方案,實現(xiàn)了STM32輸出PWM脈沖控制電調(diào),從而對電機達到線性控制目的??刂品绞綖橹骺匦酒鶕?jù)采集的姿態(tài)數(shù)據(jù)調(diào)整輸出PWM周期,最大油門值為2 ms高電平。
軟件使用 keil,uvision4.1.0集成開發(fā)環(huán)境,工具鏈為RealViewMDK-ARM Version4.12,驅(qū)動采用官方的MPU6050驅(qū)動inv_mpu.c和inv_mpu_dmp_motion_driver.c。
本飛行控制器的軟件控制主要包括以下幾個方面。
1)STM32單片機獲取mpu6050傳感器的初始數(shù)據(jù),通信方式采用I2C通信方式;
2)得到飛行器的實時姿態(tài),濾波方式采用互補濾波;
3)與此同時,用HC06藍牙模塊接收到上位機發(fā)送的數(shù)據(jù),解算得到期望姿態(tài);
4)之后將實時姿態(tài)和期望姿態(tài)作差,差值送入PID閉環(huán)控制器。
控制過程如圖2所示。
圖2 飛行控制器主要控制過程圖Fig.2 Flight controller main control process chart
2.1讀取mpu6050初值
根據(jù)mpu6050數(shù)據(jù)手冊的各寄存器地址,采用GPIO模擬I2C通信方式,讀取重力加速計和陀螺儀的各個分量。本飛行控制器傳感器采樣率設置為200 Hz;陀螺儀量程為±2 000°/s,加速計量程為±2g。量程不宜太大,量程越大取值越不準確。
2.2濾波和姿態(tài)融合
采用互補濾波,融合時,飛行器的瞬時運動情況很大程度上由陀螺儀的積分運算決定,陀螺儀產(chǎn)生的誤差由重力加速度計長時間累積不斷矯正,最終得到準確的機身姿態(tài)。
為了得到姿態(tài)角所對應的四元數(shù),本控制器采用Madgwick提供的UpdateIMU算法[4],之后經(jīng)過簡單運算將四元數(shù)轉(zhuǎn)換為實時歐拉角,轉(zhuǎn)換方式[5]如下:
首先定義四元數(shù)
通過旋轉(zhuǎn)軸和繞該軸旋轉(zhuǎn)的角度可以構造一個四元數(shù):
其中是繞旋轉(zhuǎn)軸旋轉(zhuǎn)的角度,cos(βx)、cos(βy)、cos(βz)為旋轉(zhuǎn)軸在x、y、z方向的分量(由此確定了旋轉(zhuǎn)軸)。歐拉角到四元數(shù)的轉(zhuǎn)換公式如下:
2.3獲取期望姿態(tài)
讓用戶介入控制,通過HC-06藍牙模塊接連到STM32的串口1,再無線連接到控制端,獲得控制端不斷發(fā)送的數(shù)據(jù)包,并實時更新期望姿態(tài)角。需要注意輸出的姿態(tài)角和實時姿態(tài)角方向是否一致以及數(shù)據(jù)包的校驗。
2.4PID算法控制
本飛行控制系統(tǒng)引入PID控制器來更好的糾正系統(tǒng)。
PID基本要素包括 “比例proportional”、“積分integral”、“微分derivative”,每一項完成不同的任務,對系統(tǒng)功能產(chǎn)生不同的影響。P代表控制系統(tǒng)的響應速度,P越大響應越快;I用來累積過去時間內(nèi)的誤差,修正P無法達到的期望姿態(tài)值(靜差);D加強對機體變化的快速響應,對P有抑制作用。
2.5輸出PWM信號
完成PID計算后,通過STM32自帶的定時器調(diào)制輸出四路pwm信號,本控制器采用50 Hz的電調(diào)pwm,設置0.5~2.5 ms的高電平持續(xù)時間。
至此,一個基于stm32和mpu6050搭建的飛控系統(tǒng)已經(jīng)實現(xiàn)。
系統(tǒng)模型的建立通過數(shù)學模型模擬飛行器的飛行,但是系統(tǒng)模型并不能十分精確的展現(xiàn)飛行器的真實飛行狀況,理論分析所獲取的各類參數(shù)往往與實際參數(shù)會有些差錯,需要進一步通過對系統(tǒng)進行調(diào)試使飛行器達到最佳的飛行效果。本項目采用Matlab開發(fā)的的上位機程序控制四旋翼飛行,從而獲得適合于四旋翼飛行的最佳控制參數(shù)。
3.1開機檢測
1)電壓值檢測
四旋翼飛行器需要在一定的電壓范圍內(nèi)才能保證其正常的飛行,當電池電壓低于11.3 V時,電動馬達驅(qū)動電壓過低,會使得飛行器不能夠正常飛行,在電池上安裝電壓報警器設備對電池電壓進行監(jiān)控,調(diào)節(jié)報警電壓為11.3 V,當電池電壓低于設定值時,報警器被觸發(fā)響鈴,提醒及時充電。
2)超聲波檢測
利用主控計算機的GPIO端口讀取超聲波傳感器輸出的脈沖寬度,將其轉(zhuǎn)換為寬度。當寬度小于設定的初始值時,主控芯片會調(diào)節(jié)PWM的輸出,改變四旋翼飛行器原先的飛行狀態(tài),從而達到避障功能。
3.2PID控制參數(shù)的設置
圖3 PID控制基本框圖Fig.3 PID control of the basic block diagram
通過MPU-6050傳回主控芯片的姿態(tài)數(shù)據(jù)結合PID算法對四旋翼飛行姿態(tài)進行控制,圖3為PID控制基本框圖。
其中error表示飛機各個姿態(tài)角和預設姿態(tài)角之間的偏差,送入上述框圖計算得到控制調(diào)整信號輸出給控制芯片編程PWM送出調(diào)整電機轉(zhuǎn)速進行姿態(tài)調(diào)整。
根據(jù)PID系統(tǒng)的結構圖,通過matlab搭建Simulink仿真,經(jīng)過調(diào)試,得到以下參數(shù)取值表。
表1 PID仿真參數(shù)值Tab.1 PID simulation parameters
通過大量仿真實驗,當P=3,i=0.7,d=20時飛行器能夠保持穩(wěn)定狀態(tài)飛行。
圖4 Matlab仿真圖Fig.4 Matlab simulation map
本項目結合四旋翼飛行器的器件選擇,硬件電路設計和控制系統(tǒng)程序?qū)崿F(xiàn)等方面系統(tǒng)地給出了設計步驟和方法,經(jīng)實驗證明本套方案能設計出一套能穩(wěn)定起飛并且能在手持遙控器控制下平穩(wěn)飛行的四旋翼。鑒于各方面的突出優(yōu)勢,如今四旋翼飛行器在生活很多地方都可以看到應用,它是一種有巨大商業(yè)潛力和極寬應用范圍的技術,這項技術的研究能拓展更多的科研價值,在智能飛行、自主飛行方向的發(fā)展能更進一步。
[1]Hamel T,Mahony R,Lozano R,et al.Dynamic modeling and configuration stabilization for an X4-Flyer[C].15th Triennial World Congress,Barcelona,Spain,2002:665-670.
[2]Bouabdallah S.Design and control of quadrotors with applicationto autonomous fIying[D].Ecole Polytechnique Federale de Lausanne,2007.
[3]周權.四旋翼飛行平臺飛行控制和慣性導航研究 [D].南京:南京航空航天大學,2008.
[4]IMU[EB/OL].[Online]Available:http://developer.mbed.org/ cookbook/IMU(2015-10-3).
[5]Conversion between quaternions and Euler angles[EB/OL].Available:http://www.cnblogs.com/wqj1212/archive/2010/11/ 21/1883033.html(2015-10-3).
[6]代曉巍,李振興,趙麗莉.飛行器外測數(shù)據(jù)連續(xù)型野值的抽取剔除方法[J].電子設計工程,2015(12):68-70.
The design and achievement of quadrotor based on STM32
YAN Ping,WANG Li-dan,LI Meng-ke,HONG Cheng-chang,JIANG Dong-feng
(Southwest University,Chongqing 400715,China)
The main controller of this Quadrotor is STM32F103RCT6,and we can quickly acquire quadrotor’s attitude data through hardware connection between MPU6050 module and controller;Then we use UpdataIMU algorithm to convert original data to corresponding attitude angle quaternion,complementary filter will deal with those data.At last,through PID algorithm,there will be PWM output wave to adjust speed of the motors,so that we succeeded in a stable flight attitude.This paper describes the quadrotor’s hardware design,software design and debugging methods,from repeated tests,this method can design a stable quadrotor aircraft.With further research,quadrotor aircraft has a broad application prospects.
quadrotor;updataIMU algorithm;complementary filter;PID algorithm
TN99
A
1674-6236(2016)02-0187-03
2015-03-09稿件編號:201503121
國家級大學生創(chuàng)新訓練項目資助(201410635080)
顏 平(1993—),女,重慶人。研究方向:通信工程。