孫靜海,馮航
(中國直升機設(shè)計研究所,江西景德鎮(zhèn),333001)
隨著通信、材料、微電子技術(shù)的發(fā)展,無人機在實用價值上大大提升,不僅可以在軍事任務(wù)中出色地完成偵查或者攻擊的任務(wù),在民用市場中也可以擔(dān)負起諸如航拍或者無人機物流方面的任務(wù)。而無人機的控制問題在實現(xiàn)直升機無人化的過程中起著至關(guān)重要的作用,因此眾多學(xué)者對直升機的控制問題做了大量研究并取得了不錯的成果[1-3]。比較成熟的控制算法有PID 控制,魯棒控制,Bang-Bang 控制等,也有許多新型的控制算法包括反步法,滑模結(jié)構(gòu)控制法[4],H∞控制法[5]神經(jīng)網(wǎng)絡(luò)自適應(yīng)控制法等一系列的控制方法,其都有各自的優(yōu)點和不足,但就應(yīng)用的廣泛性來說,因PID控制其簡單可靠,并且經(jīng)過了漫長的理論體系的完善,并在實際的應(yīng)用中積累了大量的運用實例與經(jīng)驗可以參考,所以傳統(tǒng)的PID 控制仍能滿足大多數(shù)的控制需求,但也存在一定的不足,比如不能平衡系統(tǒng)的穩(wěn)態(tài)性能和快速性,針對無人直升機這種多變量,欠驅(qū)動,非線性,強耦合參數(shù)變化或外部干擾時,可能需要重新人工整定參數(shù)才能保證系統(tǒng)的穩(wěn)定性,因此許多自整定方法被提出,有模糊自適應(yīng)PID,但這種方法存在參數(shù)優(yōu)化問題并需要許多先驗知識,有神經(jīng)網(wǎng)絡(luò)自適應(yīng)PID,但此種算法獲取監(jiān)督學(xué)習(xí)中的教師信號比較困難,有進化算法自適應(yīng)PID,但此種算法在實際工程中很難實時控制。
因此本文提出了一種基于強化學(xué)習(xí)思想的自適應(yīng)控制,解決PID 算法在無人直升機控制上不能自整定的問題,且該算法不需要先驗知識,能對控制器參數(shù)實現(xiàn)在線優(yōu)化。
無人直升機物理模型的建立是直升機控制實現(xiàn)中所必不可少的基礎(chǔ)一步,只有一個合理的簡單地但包含所有信息的模型,才可以更真實地模擬無人機的運動過程,從而知道影響無人機運動狀態(tài)的改變需要哪些狀態(tài)的輸入。飛機的姿態(tài)角以及速度,飛行的坐標等,都與坐標系的設(shè)計密不可分,在分析無人機的動力學(xué)系統(tǒng)時我們需要用到機體坐標系和地面坐標系以及兩個坐標系之間的轉(zhuǎn)換,并在建模時忽略地球公轉(zhuǎn)和自轉(zhuǎn)對直升機的影響,且把直升機看作剛體,忽略飛機的質(zhì)量變化把直升機看作左右對稱的,采用小擾動線性化方法可得出直升機線性化方程如式(1)所示:
強化學(xué)習(xí)[6]是機器學(xué)習(xí)另一重要分支,該算法是通過訓(xùn)練讓智能體,學(xué)習(xí)如何在環(huán)境中動作來得到最大的環(huán)境獎勵。用一句話來說就是解決智能體的決策問題。其原理如圖1 所示,即強化學(xué)習(xí)算法通過不斷訓(xùn)練可根據(jù)直升機所處的環(huán)境進行決策選擇不同的動作。
圖1 強化學(xué)習(xí)原理圖
本文用到的Actor-Critic 則是強化學(xué)習(xí)的一種,其中Actor 部分可通過策略梯度估計方法實現(xiàn),Critic 部分則采用TD 算法實現(xiàn),對于狀態(tài)s 執(zhí)行器根據(jù)策略選擇動作a,動作執(zhí)行后轉(zhuǎn)移到下一狀態(tài)s+1,并產(chǎn)生回報信號r,狀態(tài)和回報作為Critic 的輸入,輸出值函數(shù),并且產(chǎn)生一個TD誤差,TD 誤差信號用于神經(jīng)網(wǎng)絡(luò)更新學(xué)習(xí),不斷重復(fù)。
計算機是采樣控制,因此需要把PID 離散化以一系列的采樣時刻點kT代表連續(xù)時間t,以矩陣法數(shù)值積分近似代替積分,以一階后向差分近似代替微分,即:
從而可以得到離散PID 表達式為:
進而可得:
基于強化學(xué)習(xí)的自適應(yīng)PID 控制原理如圖2 所示根據(jù),將輸入信號與出入信號的差值e(t),經(jīng)過狀態(tài)轉(zhuǎn)換器轉(zhuǎn)換成神經(jīng)網(wǎng)絡(luò)需要的信號用于神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)神經(jīng)網(wǎng)絡(luò)隱含層輸出狀態(tài)轉(zhuǎn)換器將式寫成向量形式如式(6)所示:
圖2 AC-PID 控制原理圖
Actor-Critic 算法用到的RBF 網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示,對于PID 參數(shù)的取值好壞通常用偏差的相關(guān)函數(shù)來衡量,因此選用偏差作為第一層輸入,即向量x(t),激活函 Φj(t)數(shù)選用高斯核函數(shù)如式(7)所示。
圖3 RBF 神經(jīng)網(wǎng)絡(luò)模型
其中wjk為隱含層與輸出節(jié)點的權(quán)值。其中Actor 部分輸出的PID 控制參數(shù)kk需經(jīng)參數(shù)修正,即K=k+kη,式中kη是一個期望為零方差為的正態(tài)分布函數(shù)。Critic 部分用TD 算法學(xué)習(xí)Actor-Critic 的誤差δTD與值函數(shù)和回報函數(shù)有關(guān),回報函數(shù)r(t)如式(10)所示:
式中ai,i=1,2為ri(t)的學(xué)習(xí)率,ri(t)的定義為:
其中ε為誤差帶容許值,在本文中取ε=0.01。
本文中取γ=0.9,式中參數(shù)更新,首先定義系統(tǒng)學(xué)習(xí)性能為內(nèi)部回報TD 誤差δTD的函數(shù)如式(14)所示。
利用梯度下降進行權(quán)值更新即:
式中a3為學(xué)習(xí)率是一個常數(shù)可對其進行調(diào)節(jié):
把上式代入式(15)得:
隱含層節(jié)點中心和寬度更新公式如下:
本部分將以直升機模型為仿真對象,對直升機的俯仰角進行控制,其中各個參數(shù)分別設(shè)置如下。a1=0.8,a2=0.15,a3=18,a4=35,a5=0.02,a6=0.015,γ=0.9,ε=0.01設(shè) 定目標函數(shù)方波函數(shù)和正弦函數(shù),其跟蹤結(jié)果如圖4 和圖6所示,圖5 和圖7 分別為方波跟蹤誤差和正弦跟蹤誤差。
圖4 方波函數(shù)跟蹤曲線
圖5 角度跟蹤誤差
圖6 正弦跟蹤曲線
圖7 角度跟蹤誤差
從圖中可以看出本文所設(shè)計的算法可以很好地跟蹤目標曲線,為了進一步驗證本文所提出的AC-PID 算法的優(yōu)劣,將本文算法同初始設(shè)定參數(shù)的PID 算法,模糊自適應(yīng)算法[7],和神經(jīng)網(wǎng)絡(luò)自適應(yīng)算法[8]作對比,將目標角度設(shè)定為6 度,仿真結(jié)果如圖8 所示,從圖中可以看出未進行參數(shù)整定的PID 控制器存在明顯的超調(diào),雖上升時間相對較短但超調(diào)嚴重,其余三種自適應(yīng)算法控制效果相近,為比較其優(yōu)劣本文選用了幾個指標進行對比結(jié)果如表1 所示。
圖8 俯仰角跟蹤曲線對比圖
表1 控制效果分析表
從表1 可以看出本文所設(shè)計的算法相比于其他兩種算法具有上升時間快調(diào)整時間短的優(yōu)勢,但也存在穩(wěn)態(tài)誤差相對較大的缺點,同時由于直升機的強耦合作用,在滾轉(zhuǎn)角設(shè)定為0 時,直升機的橫滾角會有一定的變化量,如圖9 所示,從對滾轉(zhuǎn)角的控制效果可以看出本文所提出算法具有一定優(yōu)勢。
圖9 滾轉(zhuǎn)角跟蹤曲線對比圖
針對無人直升機多變量,欠驅(qū)動,強耦合和參數(shù)變化或外部干擾時傳統(tǒng)PID 不能在線調(diào)節(jié)參數(shù)的問題,本文提出了一種基于強化學(xué)習(xí)的自適應(yīng)PID 控制算法,該算法不需要先驗知識,能對控制器參數(shù)在線優(yōu),通過對比仿真可以看到本文的算法具有不錯的控制效果,具有上升時間快、調(diào)整時間短的優(yōu)勢,但也存在一定的不足,比如訓(xùn)練時間長,有時控制效果不理想的缺點,有待進一步優(yōu)化,此外根據(jù)強化學(xué)習(xí)的原理可知,該算法在有足夠數(shù)據(jù)支持和算力的情況下,可以擺脫模型直接應(yīng)用于直升機控制器設(shè)計,即以誤差為輸入通過訓(xùn)練,Actor 網(wǎng)絡(luò)直接輸出當(dāng)前姿態(tài)對應(yīng)的控制角度,具有不錯的應(yīng)用前景。