顧明琨, 鐘小勇
(江西理工大學理學院, 贛州 341000)
四旋翼飛行器是一種具有6個自由度可垂直起降的旋翼無人機,因其機動靈活、操作簡單、能自由懸停等優(yōu)點被廣泛應用于工業(yè)、農業(yè)、軍事等各個領域[1-2]。四旋翼飛行器具有高度非線性、欠驅動以及強耦合的特性,容易受到各種因素干擾,至今四旋翼控制器的研究設計依然面臨許多問題。
中外眾多研究機構和大學對無人機進行了深入研究,設計出了很多控制方法。其中,最為經典的方法是基于牛頓-歐拉定律建立四旋翼六自由度剛體運動模型,使用比例積分微分(proportion integral differential,PID)控制器來進行控制。由于PID控制器結構簡單,在無擾動情況下可以實現無靜差的特性,在控制精度要求不高的場合得到了廣泛應用。如文獻[3]設計了級聯雙閉環(huán)PID控制器,在小速度、小角度的變化下 實現了較為精準的定點懸停和軌跡跟蹤,但在有外部干擾或需要更高控制精度的場合時,PID控制器的適應性較差,此時采用自抗擾(active disturbance rejection control,ADRC)控制器能取得更好的效果。如文獻[4]利用自抗擾控制器的解耦特性和抗干擾能力,通過延遲補償擴張觀測器和改進非線性狀態(tài)誤差反饋,提高了系統的抗干擾性能,但同時也導致了控制參數過多,不便于實際工程應用。文獻[5]雖然在ADRC控制原理及設計方法的基礎上,通過線性簡化的方式減少了控制器參數,并通過人工整定,獲得了較好的控制性能,但由于在內外回路控制中,參數之間并不是相互獨立的關系,調節(jié)其中一個參數也會影響其他參數的控制作用,也就造成了人工整定參數精確度低、效率差的缺點。因此許多學者選擇運用智能算法,如粒子群算法(particle swarm optimization,PSO)[6]、人工蜂群算法(artificial bee colony,ABC)[7]等進行控制器的參數整定。文獻[8]采用人工蜂群算法優(yōu)化控制器參數,提高了參數整定的效率和精度。文獻[9]將人工整定與算法整定相結合,根據控制精度確定部分參數,對于與受控對象有關的參數使用人工蜂群整定,減小了參數整定難度,但其采用的標準的人工蜂群算法也存在著易陷入局部最優(yōu),后期收斂速度慢的缺陷。
為進一步提高控制器性能,克服算法收斂速度慢以及局部收斂的問題,現利用改進人工蜂群算法(adaptive artificial bee colony,AABC)對ADRC控制器進行參數整定,將一種固定的搜索策略拓展為多種,并比較每種策略產生更優(yōu)解的能力。當某種策略產生的更優(yōu)解越多,該策略被選中的概率就會增加。這種方法使得原算法中的隨機開發(fā)具有了一定的方向性,更容易快速地找到更優(yōu)解,避免因算法隨機性而導致的精度下降問題,并在四旋翼無人機懸停仿真實驗中加入風干擾測試算法的整定性能,驗證設計的可行性和工程應用價值。
四旋翼飛行器的動力模型是飛行控制系統設計的基礎。假設四旋翼飛行器所在的地理坐標為ζ=[x,y,z],歐拉角為Θ=[φ,θ,ψ],角速度為ω=[p,q,r],四旋翼飛行器動力學模型[10]為
(1)
式(1)中:x、y、z為地面坐標系中無人機的坐標位置;φ、θ、ψ分別為橫滾角、俯仰角和偏航角;p、q、r為三軸的角速度;JTP為旋翼的轉動慣量;Ii(i=x,y,z)分別為三個軸上的轉動慣量;m為飛行器的質量;g為重力加速度;Ω為機體轉速;U1為垂直運動力矩;U2、U3、U4分別代表橫滾、俯仰和偏航力矩,它與4個電機的轉速關系如下:
(2)
式(2)中:Fi(i=1,2,3,4)為對應旋翼的升力;Ωi(i=1,2,3,4)為4個電機的轉速;b為升力系數;d為阻力矩系數;l為旋翼中心到機體坐標系原點的距離。
為了更加貼近無人機在各種干擾下的實際飛行情況,在四旋翼仿真模型中加入干擾風場。假設風從側下方吹來,無人機的受力情況如圖1所示。
圖1 風干擾時無人機的受力分析Fig.1 Force analysis of unmanned aerial vehicle under wind disturbance
無人機由于受到風的推力,旋翼2產生的升力F2變成了F′2,造成了四旋翼無人機控制的振蕩。為了準確描述風的隨機性和間歇性,建立以下4種風構成的風速模型[11]:基本風vb、陣風vg、隨機風vr和漸進風vn。對上面4種風進行組合就可以得到風速模型V:
V=vb+vg+vr+vn
(3)
基本風可看作是不隨時間變化的常量:
vb=k
(4)
式(4)中:k為常數。
陣風模型體現了風的間歇性,可表示為
(5)
式(5)中:Vgmax為陣風風速的最大值;t為當前時間;T1為陣風開始時間;T2為陣風結束時間;Tg為陣風周期。
隨機風模型反映了風的隨機性,可表示為
vr=VrmaxRam(-1,1)cos(ω+φr)
(6)
式(6)中:Vrmax為隨機風的最大值;Ram(-1,1)為-1~1的隨機數;ω取值為[0.5π,2π];φr為[0,2π]的隨機量。
漸變風反映風的漸變性,可表示為
(7)
式(7)中:Vnmax為漸進風風速最大值;T′1為漸變風開始時間;T′2漸變風結束時間;T為漸變風持續(xù)時間。
根據貝茨理論[12],當空氣作用在旋翼上時,可以將旋翼看作是一個圓盤,圓盤受到的力為
Ff=2ρAdV2a(1-a)
(8)
式(8)中:ρ為空氣密度;Ad為圓盤的截面積;V為干擾風的風速;α為軸流誘導因數,取值為[0,0.5]。
線性自抗擾控制器的結構是由ADRC自抗擾控制器演變而來的。線性自抗擾控制器將原有的擴張狀態(tài)觀測器和非線性狀態(tài)誤差反饋兩部分線性化,利用帶寬來確定線性擴張觀測器(linear extended state observer, LESO)和線性狀態(tài)誤差反饋(linear state error feedback, LSEF),并去掉微分跟蹤器(tracking differentiator, TD),使ADRC的結構變得更加簡單,減少了需要整定的參數[13]。因此二階線性ADRC的控制器結構原理圖如圖2所示。
圖2 二階線性自抗擾控制器結構Fig.2 The structure of second-order linear ADRC
其中,LESO實現形式為
(9)
式(9)中:β1、β2和β3為線性擴張觀測器LESO的增益。
假設ω0為觀測器帶寬,β與ω0的數學關系為
sn+1+β1sn+…+βn+1=(s+ω0)n+1
(10)
LSEF實現形式為
u0=kp(ν0-z1)-kdz2
(11)
式(11)中:kp與kd為待定系數。
同樣設ωc為控制器帶寬,它們與控制器寬度ωc的數學關系為
sn+1+k1sn+…+kn+1=(s+ωc)n+1
(12)
(13)
與非線性環(huán)節(jié)相比,線性環(huán)節(jié)需要整定的參數明顯減少,只有ω0、ωc和b0這3個分量,且ω0≈ 3ωc~5ωc,降低了整定難度。
人工蜂群算法[14]是一種模擬蜜蜂采蜜行為的算法,利用不同角色蜜蜂之間相互協作,使蜜蜂不斷趨向于蜂蜜豐富的蜜源。人工蜂群算法主要包含以下5個階段:種群初始化、雇傭蜂階段、跟隨蜂階段、偵查蜂階段和判斷終止條件[15]。
(1)種群初始化。設初始種群規(guī)模為2SN,變量總維數為D,其中雇傭蜂數量和觀察蜂數量都為種群規(guī)模的1/2,即SN。然后隨機初始化SN個蜜源(初始解):
xi,j=xmin,j+rand(0,1)(xmax,j-xmin,j)
(14)
式(14)中:i∈{1,2,…,SN};j∈{1,2,…,D};rand(0,1)為[0,1]范圍內的隨機數;xi,j為第xi個蜜源的第j個分量位置;xmax,j、xmin,j為搜索范圍的上、下限。
(2)雇傭蜂階段。在此階段,雇傭蜂會根據式(15)對蜜源xi,j進行搜索更新,產生一個不同于原蜜源xi,j的新蜜源vi,j作為候選解,計算新蜜源vi,j的適應度,并在兩者進行貪婪選擇。
vi,j=xi,j+φi,j(xi,j-xr1,j)
(15)
式(15)中:φi,j為[0,1]之間的隨機數;r1為隨機選擇的一個蜜源,且r1≠i。如果新蜜源vi,j的適應度值好于舊蜜源xi,j,則用新蜜源vi,j的位置取代舊蜜源xi,j的位置,否則xi,j不變,仍為當前蜜源位置。
(3)跟隨蜂階段。當所有雇傭蜂完成對蜜源的更新操作后,雇傭蜂會把掌握的信息傳遞給觀察蜂,觀察蜂會根據雇傭蜂獲取的蜜源信息按照式(16)采用輪盤選擇法再次更新蜜源,蜜源被選中的概率由適應度值來決定。
(16)
式(16)中:fiti為蜜源xi的適應度值的大??;其計算公式為
(17)
式(17)中:abs為取絕對值;fi為目標函數值,越小的目標函數值越易被選中。當蜜源被觀察蜂選中后,就會根據式(15)進行搜索,同時產生新的鄰域解。根據貪婪選擇,適應度值更優(yōu)一方將會被保留。
(4)偵查蜂階段。當蜜源xi的采集次數達到了最大次數Limit后,適應度值依然沒有得到改善,就認為該蜜源已經陷入了局部最優(yōu)解。則相關的雇傭蜂就會變?yōu)閭刹榉?,根據?14),產生一個新的食物源代替xi。
(5)判斷終止條件。判斷是否達到停止條件,是則輸出最優(yōu)蜜源位置,適應度值和其他參數,否則轉至雇傭蜂階段繼續(xù)運行。
從對標準ABC算法的分析中可知,雇傭蜂負責探索未訪問點,跟隨蜂負責開發(fā)訪問過的位置鄰域,尋找最優(yōu)點。對于進化算法來說,探索和開發(fā)能力的平衡十分重要,而ABC算法擅長探索,開發(fā)能力較差。在ABC算法中,候選方案是通過式(15)產生的,這種生成方式不能保證生成的結果朝向更好方向,但如果能采用不同搜索策略,對表現好的搜索策略增加被選中概率,那么ABC算法的性能就可以得到顯著提高[16]。
故設計思路是在式(15)的基礎上,將一種搜索策略擴展為5種,采用輪盤選擇方法,根據每種搜索策略的先驗性能來更新被選中的概率。用s表示搜索策略的個數,SRs記錄每種搜索策略的成功率為
(18)
式(18)中:SAs為每種策略得出更優(yōu)解的次數;TA為所有策略得出更優(yōu)解的總次數。由此可以通過SRs算出每種策略被選中的概率Ps為
(19)
同時引入一個存儲長度ML,當某個策略的選中次數達到存儲長度最大值之后,重置選擇概率。選用的5種搜索策略如表1所示。對于所有的搜索規(guī)則SRules,i為蜜源,j為變量維度的索引,i∈{1,2,…,SN},j∈{1,2,…,D}。r1和r2是隨機選擇的蜜源,r1,r2∈{1,2,…,SN}且r1≠r2≠i。gbest為全局最優(yōu)解,lbest為當前種群中的最優(yōu)解,φ和ψ分別為[-1,1]和[0,1]的隨機數。
表1 搜索策略
ADRC的參數尋優(yōu),實質上就是尋找一條超調量最小,達到穩(wěn)態(tài)時間最短,誤差積分最小的反饋曲線[17]。選取時間絕對偏差積分(integral time absolute error,ITAE)作為適應度函數,定義為
(20)
式(20)中:e(t)為控制系統穩(wěn)態(tài)誤差。
利用改進人工蜂群算法整定ADRC控制器參數的流程圖如圖3所示。算法與四旋翼模型之間通過種群(ADRC控制器參數)和種群對應的適應度值(控制系統的性能指標)相連接,將種群依次賦值給控制器參數b0、ω0和ωc,運行四旋翼模型獲得仿真數據,利用該組參數得到的數據計算出對應的性能指標,并將該指標作為算法中的適應度值依次迭代,獲取適應度最優(yōu)的控制器參數。
圖3 AABC優(yōu)化LADRC流程圖Fig.3 The flow chart for optimizing LADRC with AABC
改進人工蜂群算法整定ADRC參數的步驟如下。
(1)初始化,設定算法的種群規(guī)模NP、維度參數D,最大迭代次數MAX_FES,最大采集次數Limit和概率重置次數ML。設置需要優(yōu)化的ADRC參數的上限Xmax和下限Xmin,隨機選擇搜索規(guī)則產生初始蜜源Xi。
(2)將蜜源Xi代入四旋翼模型輸出仿真數據,計算出反饋曲線的適應度值。
(3)隨機選擇表1中的搜索策略,產生新的蜜源Vi,將蜜源Vi代入四旋翼模型輸出仿真數據,計算反饋曲線適應度值。
(4)在Xi和Vi中進行貪婪選擇,組成整體適應度值更優(yōu)的蜜源Xi。并記錄被選中的Vi是來自哪個搜索策略和該策略被選中的次數和概率。
(5)根據式(16)和式(17)隨機選擇蜜源。并將選出的蜜源按照搜索策略的選擇概率進行隨機更新。
(6)將更新后蜜源Ui,j與對應位置Xi,j按照步驟(4)中的方式重新組合成下一代種群Xi,更新每種策略被選中的次數和概率,若次數大于ML,則將每種策略設置為相同概率,重新記錄。
(7)若有蜜源在Limit時間內沒有更新,則根據式(14)重新生成。
(8)判斷是否達到最大迭代次數。若達到最大迭代次數,則停止尋參,輸出最優(yōu)解。否則跳轉到步驟(2)。
為驗證對本文所提算法的控制精度及實時性,以橫滾角為例,期望角度設定為30°,運用MATLAB和Simulink進行仿真。四旋翼仿真模型的具體參數如表2所示。
風干擾參數模型如表3所示,并將此風干擾模型應用到四旋翼的旋翼2 (參見圖1中的升力F2)。
設置PSO粒子群規(guī)模為PS=40、維度參數D=3、位置區(qū)間為Xmin=[0 0 0]到Xmax=[4 100 30],速度區(qū)間V為位置區(qū)間的0.2倍,學習因子c1=c2=2,慣性權重ω從0.9線性遞減至0.4。
設置ABC算法和AABC算法的種群規(guī)模NP=40,維度參數D=3,位置區(qū)間為Xmin=[0 0 0]到Xmax=[4 100 30],最大采集次數Limit=10。同時設置AABC算法中的概率重置次數ML=10。
3種算法各自評價1 000次,即MAX_FES=1 000,循環(huán)迭代次數maxG=25,得到的優(yōu)化的ADRC 參數值如表4所示。
3種算法下適應度隨迭代次數變化曲線如圖4所示。計算得出風擾下的ADRC控制曲線,如圖5所示。由圖5可以看出,AABC算法計算出的參數調節(jié)時間最短,ABC算法其次,PSO算法的參數調節(jié)時間最長。在達到穩(wěn)態(tài)后,3種算法整定的參數抗干擾性能如圖6所示。
表2 四旋翼模型參數
表3 干擾風模型參數
表4 橫滾通道LADRC參數
圖4 3種算法下適應度隨迭代次數變化曲線Fig.4 Fitness curve with the iterations based on three algorithms
從圖6中可知,當受到風干擾導致當前值小于或大于期望值30°時,都是AABC算法得到的反饋曲線響應速度最快,能更迅速的恢復到穩(wěn)態(tài)。
分析以上仿真結果,從圖4的適應度迭代曲線來看,AABC算法的開發(fā)與探索能力強,在迭代20次后依然可以跳出局部最優(yōu)解,防止了過早收斂,得到了最優(yōu)的適應度值。結合圖5和圖6可以看出,系統在階躍響應和風干擾的輸入下,AABC算法的最優(yōu)解可以使控制器以最快的速度達到穩(wěn)定狀態(tài),并且對干擾有較強的抑制能力和反饋速度。
圖5 風干擾下的ADRC控制曲線Fig.5 ADRC control curve under wind disturbance
將線性自抗擾控制器應用在四旋翼控制系統中,并用Simulink對四旋翼飛行器進行建模仿真。為了得到最優(yōu)的控制效果和解決人工整定參數困難的問題,提出改進人工蜂群算法,并加入自適應搜索策略,提高種群的多樣性和尋優(yōu)能力,有效克服了人工蜂群算法會陷入局部最優(yōu)解的缺點。通過對四旋翼飛行器姿態(tài)的控制仿真,證明了改進人工蜂群算法的尋優(yōu)能力更強,得到的控制參數具有更好的動態(tài)特性和穩(wěn)態(tài)特性,對應用于復雜的飛行環(huán)境有一定的參考價值。
圖6 風干擾下的ADRC控制曲線放大圖Fig.6 Enlarged view of ADRC control curve under wind disturbance