• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 設計應用 > 四旋翼飛行器控制系統設計

    四旋翼飛行器控制系統設計

    作者:楊建華 趙紅娟 汶少陽 時間:2016-09-28 來源:電子產品世界 收藏
    編者按:本文基于四旋翼飛行器的工作原理和性能特點,給出了飛行器控制系統設計方案,進行了姿態和高度數據采集的軟件設計,并基于卡爾曼濾波算法完成了傳感器數據融合,設計了PID控制器并完成了軟件實現。實驗結果表明,該控制系統能夠穩定可靠運行,具有較強的魯棒性。

    摘要:本文基于的工作原理和性能特點,給出了飛行器控制系統設計方案,進行了姿態和高度數據采集的軟件設計,并基于算法完成了傳感器數據融合,設計了控制器并完成了軟件實現。實驗結果表明,該控制系統能夠穩定可靠運行,具有較強的

    本文引用地址:http://www.czjhyjcfj.com/article/201609/310490.htm

    引言

      是一種具有6個自由度和4個控制輸入的系統,能進行垂直起降、懸停、前飛、側飛和倒飛等運動。其與直升機不同之處在于它通過4個旋翼產生可以相互抵消的反扭力矩,因而不需要專門的反扭矩槳。被廣泛應用于無人偵察、森林防火、災情監測、城市巡邏等領域。并且隨著目前發展狀況,主要優點有: (1)擁有簡單的機械結構; (2)飛行姿態穩定。同時飛行控制系統通過傳感器采集飛行姿態數據,實時監測和控制飛行姿態,可以使飛行器保持平穩飛行。相比傳統單旋翼直升飛機,四旋翼飛行器的飛行更為穩定。

    1 系統硬件結構

    1.1 飛行器的原理以及機械結構

      四旋翼飛行器的基本結構如圖1所示,四旋翼飛行器的4只旋翼安裝于十字形機體的4個頂點位置,分為順時針旋轉(1、3) 和逆時針旋轉 (2、4)2組,當4只旋翼轉速相等時,相互間抵消反扭力矩;同時增加或減小4只旋翼的轉速可實現上升或下降運動;當1號與3號旋翼轉速增加(減小),2號和4號轉速不變,飛行器實現偏航;當1號和3號旋翼轉速固定,2號旋翼轉速增加(減小),4號旋翼轉速減小(增加),飛行器實現向左(向右)飛行;當2號和4號旋翼轉速固定,1號旋翼轉速增加(減小),3號旋翼轉速減小(增加),飛行器實現后退(前進)飛行。

    1.2 硬件平臺整體設計方案

      硬件的選擇對控制系統的性能有很重要的影響,一個良好的硬件搭配會極大地提高控制系統的安全性、穩定性和準確性等各項性能指標。

      如圖2所示為本次研究所用飛行器的實際構造框圖。由上位機或遙控手柄接受指令,控制芯片通過超聲波模塊獲取高度信息,再通過MPU6050獲取姿態信息以及加速度信息,經過數字控制器計算得到控制量,再經過控制芯片處理,向電調發出對應于控制量的PWM波,改變電機的轉速。

    1.2.1 I2C總線

      對MPU6050的控制與數據的讀寫主要通過I2C總線形式。I2C構造簡單,僅需要兩根線(SCL時鐘控制線,SDA數據傳輸線)即可實現對芯片的控制與數據讀取,并且每個芯片都有其獨立的識別地址。在本實驗中,因為只有一個MPU6050,且只有它使用的是I2C總線,因此,只需要設置其工作在從發送模式即可。

      對于STM32F103RBT6單片機而言,其硬件I2C接口極不穩定,容易發生數據錯誤和陷入死循環中,導致程序崩潰跑飛。因此,本實驗通過設置普通GPIO接口進行模擬I2C與MPU6050進行通訊。

    1.2.2 對飛行器整體的控制

      對飛行器的控制主要有三個部分。首先是對無刷直流電機的控制,在這里主要表現為PWM波的產生與調節。另一部分是對慣導系統信息的采集與讀取,以及高度信息的獲取。最后一部分就是如何處理上位機與遙控手柄發來的指令,即控制流程如何實現。

    2 控制系統的軟件設計

    2.1 對無刷直流電機的控制

      對無刷直流電機的控制主要有兩個方面,一方面是通過算法得到控制量,另一方面是根據控制量輸出相應的PWM波。

      另外,在對無刷電機的驅動問題上,經過實際調試發現,首先需要對電調輸入最高電壓,電調對PWM信號的識別需要一段時間,之后再對電調輸入最低電平才能實現PWM波調節范圍的設定。

    2.1.1 基于PID控制器的PWM波控制量的計算

      實際上,信號的傳遞并不一定是連續的,比如在本實驗中,信號的讀取是根據控制定時器決定讀取數據時間間隔的。因此,本設計為數字式PID控制器。

      在實際編程中,使用離散型PID控制算法實現,具體表達式經簡化表示為:

      其中AUK為輸出的控制量,KP、KI和KD為PID的三個參量,但需實際飛行時進行調整。EK為設定值與本次采樣值的差值;EK_1為設定值與上一次采樣值的差值;EK_2為再上一次的設定值與采樣值的差值。

      圖3所示為具體程序流程框圖。其中針對不同的PID控制器,如俯仰PID控制器與橫滾PID控制器的不同點僅在于“控制量輸出”部分。從控制量到電機輸入電壓的轉化這一部分涉及到控制量的分配問題。因為針對每一個控制信號,以“phi_ctrl_in(橫滾控制輸入)”為例,橫滾角的控制量與2號電機和4號電機的輸入電壓相關,即該控制量的大小會改變兩個電機的輸入電壓的大小。因此,一個控制量的改變會影響整個飛行器的飛行姿態,經過反饋后,會帶動其他控制回環進行控制。即這四個控制量之間的耦合性很高。因此,在這里進行控制量分配。

      經過反復調試后,得到一組最理想的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波調速

      本實驗所用四旋翼飛行器硬件平臺采用無刷直流電機,使用電子調速器作為驅動模塊。控制的核心方法為向電調發出PWM波,通過控制PWM輸出的占空比來改變電機的控制電壓,實現對電機轉速的控制。PWM波通過主控芯片產生。本文使用的主控芯片為STM32F103RBT6,它通過配置定時器工作在PWM模式下,對于通用的定時器,可以獨立地同時發出四路PWM波,完全可以滿足本實驗的要求。

      硬件實現上,使用定時器4輸出四路PWM波信號。使定時器4工作在復用模式下,對應的外部端口為:PB6、PB7、PB8和PB9,他們分別連接1號、2號、3號和4號電機的信號控制線。

      在對定時器4的配置上,首先打開定時器4的時鐘RCC_APB1Periph_TIM4,以及對應PB端口的時鐘RCC_APB2Periph_GPIOB。因為定時器4為通用定時器,可進行16位自動重裝載計數。使用的是單片機的固定頻率72M的時鐘信號,但可以通過改變預分頻寄存器里的值,改變計數時鐘頻率。本實驗中設定為72-1;設置波形周期TIM_Period計數上限為2000,為向上計數模式。配置TIM_OCMode為PWM1模式(即TIM脈沖寬度調制模式1),使能四個比較通道。之后配置輸出端口,將端口設置為50MHz復用推挽輸出。最后打開使能定時周期TIM_Cmd(TIM4, ENABLE)即可開始工作。通過比較TIM_Period中的值與寄存器TIM4_CCRx中的值可以輸出不同占空比的波形。

      經過實際實驗發現,只有當設定值為1050以上時,電調才能識別出電壓信號,即只有當占空比大于50%時,電調才會認可輸出PWM波信號。因此,對電機的占空比調節范圍為:1050/2000~2000/2000;當設定值為1050時,電機剛開始旋轉,當設定值為2000時,電機達到最高轉速。為了防止TIM4_CCRx中的值超過計數上限,也為了控制電機的最高轉速,在向TIM4_CCRx寫入轉速控制變量前進行限幅濾波,使其寫入值始終在可靠范圍內。

    本文來源于中國科技期刊《電子產品世界》2016年第9期第48頁,歡迎您寫論文時引用,并注明出處。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 来宾市| 苏尼特右旗| 石渠县| 大庆市| 明光市| 毕节市| 六枝特区| 山阳县| 万盛区| 玉环县| 徐水县| 克东县| 浮梁县| 富裕县| 达拉特旗| 垫江县| 三都| 靖边县| 长丰县| 嘉鱼县| 万载县| 德庆县| 沧州市| 渝中区| 文安县| 禹城市| 鞍山市| 遵义县| 永靖县| 玉树县| 巴青县| 宜川县| 金溪县| 枞阳县| 油尖旺区| 梧州市| 嫩江县| 南昌县| 潮安县| 凯里市| 公主岭市|