四旋翼飛行器控制系統設計
摘要:本文基于四旋翼飛行器的工作原理和性能特點(diǎn),給出了飛行器控制系統設計方案,進(jìn)行了姿態(tài)和高度數據采集的軟件設計,并基于卡爾曼濾波算法完成了傳感器數據融合,設計了PID控制器并完成了軟件實(shí)現。實(shí)驗結果表明,該控制系統能夠穩定可靠運行,具有較強的魯棒性。
本文引用地址:http://dyxdggzs.com/article/201609/310490.htm引言
四旋翼飛行器是一種具有6個(gè)自由度和4個(gè)控制輸入的系統,能進(jìn)行垂直起降、懸停、前飛、側飛和倒飛等運動(dòng)。其與直升機不同之處在于它通過(guò)4個(gè)旋翼產(chǎn)生可以相互抵消的反扭力矩,因而不需要專(zhuān)門(mén)的反扭矩槳。被廣泛應用于無(wú)人偵察、森林防火、災情監測、城市巡邏等領(lǐng)域。并且隨著(zhù)目前發(fā)展狀況,四旋翼飛行器主要優(yōu)點(diǎn)有: (1)擁有簡(jiǎn)單的機械結構; (2)飛行姿態(tài)穩定。同時(shí)飛行控制系統通過(guò)傳感器采集飛行姿態(tài)數據,實(shí)時(shí)監測和控制飛行姿態(tài),可以使飛行器保持平穩飛行。相比傳統單旋翼直升飛機,四旋翼飛行器的飛行更為穩定。
1 系統硬件結構
1.1 飛行器的原理以及機械結構
四旋翼飛行器的基本結構如圖1所示,四旋翼飛行器的4只旋翼安裝于十字形機體的4個(gè)頂點(diǎn)位置,分為順時(shí)針旋轉(1、3) 和逆時(shí)針旋轉 (2、4)2組,當4只旋翼轉速相等時(shí),相互間抵消反扭力矩;同時(shí)增加或減小4只旋翼的轉速可實(shí)現上升或下降運動(dòng);當1號與3號旋翼轉速增加(減小),2號和4號轉速不變,飛行器實(shí)現偏航;當1號和3號旋翼轉速固定,2號旋翼轉速增加(減小),4號旋翼轉速減小(增加),飛行器實(shí)現向左(向右)飛行;當2號和4號旋翼轉速固定,1號旋翼轉速增加(減小),3號旋翼轉速減小(增加),飛行器實(shí)現后退(前進(jìn))飛行。
1.2 硬件平臺整體設計方案
硬件的選擇對控制系統的性能有很重要的影響,一個(gè)良好的硬件搭配會(huì )極大地提高控制系統的安全性、穩定性和準確性等各項性能指標。
如圖2所示為本次研究所用飛行器的實(shí)際構造框圖。由上位機或遙控手柄接受指令,控制芯片通過(guò)超聲波模塊獲取高度信息,再通過(guò)MPU6050獲取姿態(tài)信息以及加速度信息,經(jīng)過(guò)數字PID控制器計算得到控制量,再經(jīng)過(guò)控制芯片處理,向電調發(fā)出對應于控制量的PWM波,改變電機的轉速。
1.2.1 I2C總線(xiàn)
對MPU6050的控制與數據的讀寫(xiě)主要通過(guò)I2C總線(xiàn)形式。I2C構造簡(jiǎn)單,僅需要兩根線(xiàn)(SCL時(shí)鐘控制線(xiàn),SDA數據傳輸線(xiàn))即可實(shí)現對芯片的控制與數據讀取,并且每個(gè)芯片都有其獨立的識別地址。在本實(shí)驗中,因為只有一個(gè)MPU6050,且只有它使用的是I2C總線(xiàn),因此,只需要設置其工作在從發(fā)送模式即可。
對于STM32F103RBT6單片機而言,其硬件I2C接口極不穩定,容易發(fā)生數據錯誤和陷入死循環(huán)中,導致程序崩潰跑飛。因此,本實(shí)驗通過(guò)設置普通GPIO接口進(jìn)行模擬I2C與MPU6050進(jìn)行通訊。
1.2.2 對飛行器整體的控制
對飛行器的控制主要有三個(gè)部分。首先是對無(wú)刷直流電機的控制,在這里主要表現為PWM波的產(chǎn)生與調節。另一部分是對慣導系統信息的采集與讀取,以及高度信息的獲取。最后一部分就是如何處理上位機與遙控手柄發(fā)來(lái)的指令,即控制流程如何實(shí)現。
2 控制系統的軟件設計
2.1 對無(wú)刷直流電機的控制
對無(wú)刷直流電機的控制主要有兩個(gè)方面,一方面是通過(guò)PID算法得到控制量,另一方面是根據控制量輸出相應的PWM波。
另外,在對無(wú)刷電機的驅動(dòng)問(wèn)題上,經(jīng)過(guò)實(shí)際調試發(fā)現,首先需要對電調輸入最高電壓,電調對PWM信號的識別需要一段時(shí)間,之后再對電調輸入最低電平才能實(shí)現PWM波調節范圍的設定。
2.1.1 基于PID控制器的PWM波控制量的計算
實(shí)際上,信號的傳遞并不一定是連續的,比如在本實(shí)驗中,信號的讀取是根據控制定時(shí)器決定讀取數據時(shí)間間隔的。因此,本設計為數字式PID控制器。
在實(shí)際編程中,使用離散型PID控制算法實(shí)現,具體表達式經(jīng)簡(jiǎn)化表示為:
其中AUK為輸出的控制量,KP、KI和KD為PID的三個(gè)參量,但需實(shí)際飛行時(shí)進(jìn)行調整。EK為設定值與本次采樣值的差值;EK_1為設定值與上一次采樣值的差值;EK_2為再上一次的設定值與采樣值的差值。
圖3所示為具體程序流程框圖。其中針對不同的PID控制器,如俯仰PID控制器與橫滾PID控制器的不同點(diǎn)僅在于“控制量輸出”部分。從控制量到電機輸入電壓的轉化這一部分涉及到控制量的分配問(wèn)題。因為針對每一個(gè)控制信號,以“phi_ctrl_in(橫滾控制輸入)”為例,橫滾角的控制量與2號電機和4號電機的輸入電壓相關(guān),即該控制量的大小會(huì )改變兩個(gè)電機的輸入電壓的大小。因此,一個(gè)控制量的改變會(huì )影響整個(gè)飛行器的飛行姿態(tài),經(jīng)過(guò)反饋后,會(huì )帶動(dòng)其他控制回環(huán)進(jìn)行控制。即這四個(gè)控制量之間的耦合性很高。因此,在這里進(jìn)行控制量分配。
經(jīng)過(guò)反復調試后,得到一組最理想的PID參數。橫滾角phi控制器PID參數為:Kp=0.15,Ki=0,Kd=0.02;
俯仰角theta控制器參數: Kp=0.2,Ki=0,Kd=0.03;
偏航角psi控制器參數:Kp=1.1,Ki=0,Kd=0.4;
高度height控制器參數:Kp=6,Ki=0.2,Kd=2;
x軸方向加速度PID控制器參數:Kp=7,Ki=1.0,Kd=0;
y軸方向加速度PID控制器參數:Kp=6,Ki=1.0,Kd=0。
2.1.2 PWM波調速
本實(shí)驗所用四旋翼飛行器硬件平臺采用無(wú)刷直流電機,使用電子調速器作為驅動(dòng)模塊??刂频暮诵姆椒橄螂娬{發(fā)出PWM波,通過(guò)控制PWM輸出的占空比來(lái)改變電機的控制電壓,實(shí)現對電機轉速的控制。PWM波通過(guò)主控芯片產(chǎn)生。本文使用的主控芯片為STM32F103RBT6,它通過(guò)配置定時(shí)器工作在PWM模式下,對于通用的定時(shí)器,可以獨立地同時(shí)發(fā)出四路PWM波,完全可以滿(mǎn)足本實(shí)驗的要求。
硬件實(shí)現上,使用定時(shí)器4輸出四路PWM波信號。使定時(shí)器4工作在復用模式下,對應的外部端口為:PB6、PB7、PB8和PB9,他們分別連接1號、2號、3號和4號電機的信號控制線(xiàn)。
在對定時(shí)器4的配置上,首先打開(kāi)定時(shí)器4的時(shí)鐘RCC_APB1Periph_TIM4,以及對應PB端口的時(shí)鐘RCC_APB2Periph_GPIOB。因為定時(shí)器4為通用定時(shí)器,可進(jìn)行16位自動(dòng)重裝載計數。使用的是單片機的固定頻率72M的時(shí)鐘信號,但可以通過(guò)改變預分頻寄存器里的值,改變計數時(shí)鐘頻率。本實(shí)驗中設定為72-1;設置波形周期TIM_Period計數上限為2000,為向上計數模式。配置TIM_OCMode為PWM1模式(即TIM脈沖寬度調制模式1),使能四個(gè)比較通道。之后配置輸出端口,將端口設置為50MHz復用推挽輸出。最后打開(kāi)使能定時(shí)周期TIM_Cmd(TIM4, ENABLE)即可開(kāi)始工作。通過(guò)比較TIM_Period中的值與寄存器TIM4_CCRx中的值可以輸出不同占空比的波形。
經(jīng)過(guò)實(shí)際實(shí)驗發(fā)現,只有當設定值為1050以上時(shí),電調才能識別出電壓信號,即只有當占空比大于50%時(shí),電調才會(huì )認可輸出PWM波信號。因此,對電機的占空比調節范圍為:1050/2000~2000/2000;當設定值為1050時(shí),電機剛開(kāi)始旋轉,當設定值為2000時(shí),電機達到最高轉速。為了防止TIM4_CCRx中的值超過(guò)計數上限,也為了控制電機的最高轉速,在向TIM4_CCRx寫(xiě)入轉速控制變量前進(jìn)行限幅濾波,使其寫(xiě)入值始終在可靠范圍內。
本文來(lái)源于中國科技期刊《電子產(chǎn)品世界》2016年第9期第48頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論