李普森, 張 浩,2,3, 高 永, 王思孝
(1.中國海洋大學 信息科學與工程學院,山東 青島 266100;2. 海洋短波通信開放工作室,山東 青島 266200;3.青島海洋科學與技術試點國家實驗室,山東 青島 266200)
隨著計算機技術以及飛行器設計行業的發展,近年來國際范圍內掀起了無人飛行器的研制熱潮,目前小型無人飛行器廣泛應用于各個領域。國內外研制的旋翼式飛行器主要分為單旋翼飛行器,共軸雙旋翼飛行器、多旋翼飛行器,此類飛行器體積較小,靈活性較好,且能夠在比較狹小的空間內長時間實現空中穩定懸停、垂直起降和多方向自由飛行[1]。其中共軸雙旋翼無人飛行器和傳統多旋翼無人飛行器相比,機械結構更加簡單緊湊,在對旋翼進行折疊設計之后尺寸更小,更加便攜[2];和單旋翼飛行器相比,懸停效率更高。綜合以上的特性,共軸雙旋翼無人飛行器是一種優良的飛行器配置方案。
然而,與目前研究十分成熟的多旋翼飛行器相比,國內外學者很少對共軸雙旋翼飛行器進行研究。目前國內外研究工作主要有:美國 Drexel大學 Husnic Z對一種微型共軸雙旋翼直升機設計了控制器,并進行了聯合仿真[3];Maryland大學Lee T E對雙旋翼涵道飛行器的懸停和前進飛行性能進行了研究[4];沈陽理工大學暴慶攀對共軸雙旋翼飛行器在懸停狀態下的姿態控制進行了研究[5];北京理工大學肖大華設計了一種微小型球形飛行器[6];陳保國等人針對共軸雙旋翼飛行器設計了模糊比例—積分—微分(proportional integral differential,PID)姿態控制器[7]。
本文針對共軸雙旋翼無人機的研制設計了基于STM32微處理器和姿態傳感器的姿態控制系統,并針對經典PID控制算法對飛行器控制效果不理想的問題,提出了一種帶積分自適應因子的串級PID控制算法,提高了PID 控制的魯棒性和自適應性,將其應用于共軸雙旋翼飛行器具有很好的控制效果。
姿態控制系統硬件由JY901傳感器模塊、主控板卡、遙控通信模塊、電源模塊、電機舵機執行機構五部分組成。控制系統選用STM32F405為主控芯片,通過Futaba遙控器和MFDLink 433 MHz增程模塊發出遙控指令,通過nRF521822無線模塊實現與地面站的數據回傳,獲得飛行信息,所搭載的JY901傳感器模塊集成了高精度的陀螺儀、加速度計和磁力計,采用高性能的微處理器和先進的動力學解算與卡爾曼動態濾波算法,能夠快速求解出載體當前的運動姿態,穩定性很高[8]。
軟件采用C語言在MDK環境下使用FreeRTOS實時操作系統編寫主程序和子程序。主要程序包括系統初始化、任務創建、任務調度、遙控信號捕獲和處理、傳感器數據處理、飛行控制等。系統上電初始化之后創建任務,然后實時操作系統根據所設定各個子任務的優先級不同進行任務調度,實現多任務的實時切換,保證程序的正常運行。
在對遙控信號的解析過程中發現遙控信號會受到外界電磁環境干擾或因為通信不暢造成失真,其特點是幅度大但并不頻發,主要體現在兩次相鄰的采樣之間偶爾會有大幅的數據變化。為了去除這種突變影響,采用限幅濾波算法進行處理,其原理是先設定一個閾值,然后對每次的輸入值進行一次保留,當新數據輸入時,先計算與保存值的誤差,若誤差值(取絕對值)大于閾值,則不保存此次輸入的數據,相反,則將此次輸入的數據保存。
限幅濾波的優點是運算量小,需要注意的是,當實際操控輸入值的采樣值差大于設定閾值時,輸入量會保持不變,所以限幅閾值也不易過低,以免影響正常操作。圖1為設置閾值為 200 時的效果對比,通過限幅濾波處理能在不影響原輸入信號情況下濾除突變干擾。

圖1 限幅濾波效果對比
JY901姿態傳感器的數據采用16 進制的方式進行傳輸,其通訊協議規定每個數據包以0x55開頭,SUM結尾,共11個字節,格式如表1所示。

表1 數據包格式
數據包為基本傳輸單位,將信息以數據包的形式進行發送,以此保證數據傳輸的高效性和正確性。頭報文和校驗和作為數據包的起止位用于判斷一個數據包是否接收完畢。數據包號用來判斷所傳輸數據的類型,極大程度地提高了信息的辨識度,方便用于對不同類型的數據進行讀取,更有針對性地進行處理。
數據內容中每個數據分低字節和高字節依次傳送,二者組合成一個有符號的 short 類型的數據。假設 Data 為實際的數據,DataH 為其高字節部分,DataL 為其低字節部分,那么Data=(short)(DataH?8|DataL),2個字節的16進制數的表示范圍在-32 767~32 768之間,根據不同類型數據的計算方法將數據映射到對應的量程范圍就可以得到使用的數據。角度和角速度的計算方法如下:
1)角速度
Wx=((wxH?8)|wxH)/32 768×2 000((°)/s)
Wy=((wyH?8)|wyL)/32 768×2 000((°)/s)
Wz=((wzH?8)|wzL)/32 768×2 000((°)/s)
(1)
2)角度
Roll=((RollH?8)|RollL)/32 768×180(°)
Pitch=((PitchH?8)|PitchL)/32 768×180(°)
Yaw=((YawH?8)|YawL)/32 768×180(°)
(2)
PID控制算法原理簡單,易于嵌入式系統實現,所以,目前大部分飛行器的姿態控制算法都是基于PID控制器設計的。由于共軸雙旋翼飛行器在懸停狀態下是不穩定的,而且在飛行過程中,傳感器遇到磁場干擾會影響傳感器的數據采集,解算出的姿態角有誤差,只用經典的單級PID 控制器很難使飛行器穩定運行,所以,本文提出了帶積分自適應因子的串級PID控制器。
與經典PID控制相比,帶積分自適應因子的串級PID控制器(IAP-PID)的外環為角度環,內環為角速度,雙環控制器加大了整個系統的阻尼,穩定性更高,同時加入積分自適應因子解決了PID中積分項容易引起的超調和過飽和現象,提高系統的自適應能力。
控制器外環為角度環,以遙控信號rθ(k)作為期望值,機體搭載的JY901傳感器解算出的姿態角cθ(k)為反饋值,計算兩者偏差為
eθ(k)=rθ(k)-cθ(k)
(3)
其控制規律為
uθ(k)=kpθeθ(k)+kiθeiθ(k)+kdθedθ(k)
(4)
(5)
edθ(k)=eθ(k)-eθ(k-1)
(6)
式中kpθ為外環比例系數,kiθ為外環積分系數,kdθ為外環微分系數。
對于內環PID來說,期望角速度為外環PID經過處理后的輸出值uθ(k),反饋角速度為傳感器模塊測得的當前角速度cω(k),兩者的偏差為
eω(k)=rω(k)-cω(k)
(7)
其控制規律為
uω(k)=kpωeω(k)+kiωeiω(k)+kdωedω(k)
(8)
(9)
edω(k)=eω(k)-eω(k-1)
(10)
式中kpω為內環比例系數,kiω為內環積分系數,kdω為內環微分系數。
PID控制器中積分項的引入減小了系統的靜態誤差,但是在系統遇到較大波動時,控制器由于調整誤差過大容易使系統產生很大的超調或者陷入過飽和狀態,影響系統穩定性。針對這一問題提出以下解決方案:
1)防止積分過飽和。在計算系統輸出之前先對上一次輸出量進行判斷,當大于系統設定的最大值時,只對負誤差進行累加;當小于系統規定的最小值時,只對正誤差進行累加,避免控制器在飽和狀態中的所處時間過長。此方案在程序編寫中實現。
2)改變積分項的累加速度。其基本思想是在積分系數之前乘以一個自適應因子,當誤差較大時,因子減小甚至為零;當誤差較小時,因子適當增大。積分自適應因子的表達式如下所示
(11)
式中 Δωmax,Δωmin分別為期望值與反饋值的誤差的最大值和最小值,|e(k)|為誤差的絕對值。Δωmax,Δωmin的取值與系統有關,需要在調試的過程中確定。該式表示當期望值與反饋值的誤差小于Δωmin時,積分項發揮正常作用;當期望值與反饋值的誤差在Δωmin和Δωmax之間時,積分項根據誤差大小進行自適應變化;當期望值與反饋值的誤差大于Δωmax時,積分項不發揮作用,變為PD控制。
串級PID和積分自適應相結合組成帶積分自適應因子的P-PID控制器(IAP-PID)原理框圖如圖2所示。

圖2 IAP-PID控制器原理
為了驗證IAP-PID控制算法的有效性,將共軸雙旋翼飛行器的模型導入到SIMULINK中作為模塊與搭建的控制器模型連接進行聯合仿真。對目標姿態角施加階躍激勵,然后,將IAP-PID控制算法與PID控制算法的響應曲線進行對比,仿真結果如圖3所示。

圖3 各姿態角階躍響應對比
從圖3中的輸出響應曲線來看,相比于經典的PID控制算法,IAP-PID控制算法的系統穩定時間更短,同時具有更小的超調量,具體的仿真結果對比如表2所示。

表2 階躍響應仿真結果對比
由此可見, IAP-PID控制器對四旋翼飛行器姿態控制的穩定性有明顯的提升,更能適應共軸雙旋翼飛行器復雜飛行環境的要求。
將IAP-PID控制算法燒錄到硬件系統中,進行大量的現場飛行試驗和參數整定,最終得到的較為理想的PID控制參數如表3所示,此時飛行器具有穩定的飛行效果。

表3 共軸雙旋翼無人機飛行PID參數
通過調用飛行日志,將飛行中的姿態角數據導入到MATLAB中描繪出飛行器在飛行過程中的姿態角變化,各姿態角的變化情況如圖4所示。

圖4 各姿態角飛行數據
從圖4中各姿態角的變化情況可以看出:在飛行過程中,姿態角存在小幅度的振蕩,這是因為基于PID的控制算法在計算姿態角時的動態誤差較大;但是在IAP-PID 控制器的控制下,飛行器的姿態角變化幅度基本控制在1.5°以內,在發生較大波動時也能迅速調整回到0°左右,整體飛行過程比較平穩??梢宰C明IAP-PID控制器對共軸雙旋翼飛行器具有良好的控制效果。
本文針對共軸雙旋翼飛行器的研制,設計了基于STM32微處理器和姿態傳感器的姿態控制系統,同時提出了帶積分自適應因子的串級PID控制算法(IAP-PID)。結果表明:本姿態控制系統可應用于共軸雙旋翼飛行器,相比于傳統 PID 控制算法,IAP-PID控制算法具更快的響應時間和系統收斂速度,提高了系統的穩定性和自適應能力,能很好地控制飛行器的飛行姿態,保證飛行器穩定飛行。