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