易 星 吳 昊
(南京交通職業(yè)技術學院電子信息工程學院 江蘇 南京 211188)
自抗擾控制器(ADRC)[1]是一種具有強抗擾動能力且不基于精確數(shù)學模型的強魯棒控制器。在控制過程中,自抗擾控制器可將模型內(nèi)擾和外負載擾動作為總擾動,通過擴張狀態(tài)觀測器對擾動進行觀測并通過非線性誤差反饋控制率對所觀測擾動給予補償。但非線性自抗擾控制器具有結(jié)構(gòu)復雜且耦合參數(shù)過多的特點,傳統(tǒng)的經(jīng)驗整定法難以整定出合理有效的參數(shù)[2],導致在實際控制過程中常因參數(shù)整定不合理導致控制精度的丟失,很大程度上影響控制器的抗擾動能力。因此非線性自抗擾參數(shù)整定問題成為當下研究的重點[3]。
針對上述問題,大多學者結(jié)合了不同的智能優(yōu)化算法對非線性自抗擾參數(shù)進行在線整定,如改進的遺傳算法[4]、改進的粒子群算法[5]、蟻群算法[6]、改進的混沌粒子群算法[7]等。但絕大多數(shù)的智能算法尋優(yōu)機制過于簡單,在自抗擾控制器參數(shù)尋優(yōu)的過程中,很有可能找到的都是局部最優(yōu)解,難以得到有效的控制參數(shù),很大程度上降低了控制器的控制精度。因此本文提出一種基于雙種群混沌鯨魚優(yōu)化算法對控制參數(shù)進行在線尋優(yōu)。鯨魚優(yōu)化算法WOA[8](Whale Optimization Algorithm)是一種新的群體智能優(yōu)化算法,其優(yōu)點在于參數(shù)少,局部搜索能力強,但很難找到全局最優(yōu)解。針對此問題,本文提出雙種群協(xié)同機制和混沌策略對算法進行改進,提高算法全局搜索能力,加快了算法后期的搜索速度。最后通過改進后的鯨魚算法在線優(yōu)化自抗擾控制器,并以機械臂作為被控對象進行仿真驗證。
自抗擾控制器由微分跟蹤器TD、非線性反饋NLSEF和擴張狀態(tài)觀測器ESO組成。其中:TD主要作用是提取系統(tǒng)輸入信號安排過渡過程;ESO將影響系統(tǒng)的“總擾動”擴張成新的狀態(tài)變量,實時監(jiān)測并給予補償;NLSEF將誤差、誤差的微分和誤差積分三種信號以一種形式組合起來而形成的控制律。以二階非線性對象為例,其結(jié)構(gòu)如圖1所示。
圖1 非線性自抗擾結(jié)構(gòu)框圖
其中:v1和v2分別為TD給出的過度過程及其微分;NLSEF對誤差e1和e2進行非線性組合,并輸出控制信號u0;ESO估計對象的各階狀態(tài)變量z1、z2和對象總擾動實時作用量z3;b0為控制輸入放大系數(shù)。TD、ESO以及NLSEF的數(shù)學表達式如下所示:
(1)
(2)
(3)
式中:r是快慢因子;h是步長;β01、β02、β03、β1、β2是修正系數(shù),也是控制器中待整定參數(shù);函數(shù)fal(·)是一種非線性函數(shù),是輸出誤差校正率,其表達式為:
(4)
其余參數(shù)由于一部分變化極其敏感,一部分對控制系統(tǒng)影響不大,因此可事先根據(jù)經(jīng)驗先行設定。本文選取TD中r=100,h=0.01;ESO中的a1=0.5,a2=0.25,δ=0.01。
針對非線性自抗擾參數(shù)難整定以至于影響控制精度和抗擾動問題,選取ITAE作為優(yōu)化的目標函數(shù),采用雙種群混沌鯨魚算法進行在線優(yōu)化,其系統(tǒng)框圖如圖2所示。
圖2 基于DCWOA算法的ADRC系統(tǒng)框圖
鯨魚優(yōu)化算法是一種高效的新型啟發(fā)式優(yōu)化算法,其尋優(yōu)方式是基于模擬鯨魚狩獵所得出的。該算法主要包括三個階段:包圍獵物、螺旋狩獵和搜索食物。對于鯨魚優(yōu)化算法而言,鯨魚種群中任意一只鯨魚所在的位置都可以表示為一個決策變量。
(1) 包圍獵物:
座頭鯨在狩獵的時候要包圍獵物,其數(shù)學模型如下:
D=|CX*(t)-X(t)|
(5)
X(t+1)=X*(t)-A·D
(6)
式中:t表示為迭代次數(shù);A和C為系數(shù)矩陣;X*(t)為當前最優(yōu)的鯨魚位置向量;X(t)表示當前鯨魚的位置向量,A和C由下面的公式得出:
A=2a×r1-a
(7)
C=2×r2
(8)
式中:r1和r2為(0,1)之間的隨機數(shù);a的值在(0,2)之間并線性遞減;t為當前的迭代次數(shù);Tmax為最大迭代次數(shù)。
(2) 螺旋狩獵:
首先由于鯨魚在捕食過程中是以螺旋運動方式包圍獵物的,因此其捕食行為的數(shù)學模型如下:
X(t+1)=X*(t)+Dp·ebl·cos(2πl(wèi))
(9)
式中:Dp=|X*(t)-X(t)|代表鯨魚和獵物之間的距離;X*(t)表示迭代過程中最好的位置向量;b為常數(shù),螺線的形狀隨b的取值而改變;l是(-1,1)中的隨機數(shù)。
其次鯨魚在通過螺旋狩獵游向獵物的同時還要收縮包圍圈。因此在該模型中,假設有Pi的概率選擇收縮包圍機制和(1-Pi)的概率選擇螺旋模型來更新鯨魚的位置,其數(shù)學模型如下:
(10)
由數(shù)學模型可得,鯨魚在靠近獵物時會減小a的值,這樣A的波動范圍也隨a下降。在迭代過程中當a的值從2到0下降時,A是在[-a,a]內(nèi)的隨機值,當A的值在[-1,1]內(nèi)時,鯨魚的下一個位置可以是它現(xiàn)在的位置和獵物的位置之間的任意位置。
(3) 搜索獵物:
搜索獵物采用隨機個體位置尋找獵物,其數(shù)學模型如下:
D=|CXrand-X(t)|
(11)
X(t+1)=Xrand-A·D
(12)
式中:Xrand是隨機所得的位置向量,算法設定當A≥1時,隨機選擇一個搜索領導個體,并通過領導個體的位置來更新其他鯨魚的位置,以此引導鯨魚離開當前獵物,借此找到更合適的獵物,目的是加強算法的全局搜索能力。
WOA能有效地算法跳出局部最優(yōu),本文提出一種基于混沌序列和雙種群尋優(yōu)策略的雙種群混沌鯨魚優(yōu)化算法DCWOA,改進后的算法使得收斂速度和收斂精度大幅提升。
首先,針對算法隨機初始化導致算法收斂速度慢的問題,本文采用混沌序列代替算法傳統(tǒng)的隨機初始化方式?;煦绗F(xiàn)象是在非線性動力系統(tǒng)中表現(xiàn)的確定性、類隨機的過程?;煦邕\動的優(yōu)點在于對初值極度敏感,可在一定范圍內(nèi),按照一定的自身規(guī)律,不斷對所有的狀態(tài)進行遍歷。因此,本文采用Logistic映射產(chǎn)生混沌序列來對WOA中粒子的位置進行初始化,其表達式表示為:
xn+1=μxn(1-x)xn∈[0,1],μ∈[0,4],n=0,1,…
(13)
式中:當μ=4時,式(13)呈現(xiàn)完全混沌狀態(tài),得到的x序列為[0,1]的滿映射。由于傳統(tǒng)鯨魚優(yōu)化算法的初始化方式是隨機初始化,導致每次搜索結(jié)果差別較大,粒子初始化后分散性較大,采用混沌序列的方式對WOA算法進行初始化,在保留粒子多樣性的基礎上,使算法具有較大范圍的搜索能力。
其次,加入混沌序列雖然有效提高了算法的收斂速度,但并沒有解決算法在尋優(yōu)中會陷入局部最優(yōu)的情況,因此本文考慮一種雙種群尋優(yōu)策略。將通過混沌初始化后的種群隨機平均分為兩個子種群s1和s2,其中:種群s1中的個體按基本鯨魚優(yōu)化算法進行尋優(yōu);種群s2中的個體在尋優(yōu)過程中,加入變異策略,使算法在尋優(yōu)過程中具有一定的指引性。當算法陷入局部最優(yōu)時,產(chǎn)生一個跳變,使得個體跳出局部最優(yōu)。由于傳統(tǒng)鯨魚優(yōu)化算法和加入變異后的鯨魚優(yōu)化算法在產(chǎn)生新個體上的方式有所不同,因此,本文將兩者的優(yōu)勢進行了結(jié)合,并引入混沌序列對種群進行初始化,提出了一種雙種群混沌鯨魚優(yōu)化算法。其變異公式為:
(14)
Step1通過混沌序列對WOA種群進行初始化并隨機產(chǎn)生兩組規(guī)模為N/2的初始種群作為種群和種群。
Step2分別對種群s1和s2中每個個體求解相應的適應度函數(shù)值。
Step3若當前迭代次數(shù)達到最大迭代次數(shù),跳轉(zhuǎn)Step8,否則繼續(xù)執(zhí)行Step4。
Step4種群s1依照DCWOA算法尋優(yōu)機制對粒子進行更新。對種群s2采用WOA對粒子進行更新,并計算更新后粒子的適應度值,對最優(yōu)個體進行保留。
Step5選擇:用m個部分隨機的新個體替換種群s1中適應度函數(shù)值較差的m個個體。
Step6變異:利用基因突變方法從而改變種群s1中的部分個體的特性,并對變異后的個體進行邊界處理。
Step7比較種群s1和種群s2中的最優(yōu)個體,判斷是否滿足交換條件,如滿足交換條件則將較好的個體交換到種群s1中,將較差的個體交換到種群s2中,之后轉(zhuǎn)入Step4。
Step8輸出最終計算結(jié)果。
為了驗證本文所提DCWOA算法的有效性,選取7個測試函數(shù)進行測試,并將測試結(jié)果分別與基本鯨魚優(yōu)化算法(WOA)、混沌粒子群算法[7](CPSO)、改進鯨魚優(yōu)化算法[9](AWOA)進行對比驗證。其中4種算法的種群規(guī)模為30,迭代次數(shù)均為200。具體的測試結(jié)果如表1所示,其中加粗字體表示最好的結(jié)果。
表1 7個不同測試函數(shù)的仿真計算結(jié)果
通過表1可得,DCWOA算法的整體性能比其他3種算法更為高效。對測試函數(shù)Ackley’s,相比其余3種算法而言,DCWOA尋找理論最優(yōu)值更加穩(wěn)定,搜索精度更高。對測試函數(shù)Beale’s、Booth’s、Threehump和Ackley’s來說,DCWOA算法在AWOA算法的基礎上大大提高了精度。對于Lévi來說,DCWOA在控制精度上是略低于CPSO算法,但依然優(yōu)于WOA和AWOA。對Easom而言,相比WOA算法,DCWOA在精度上略有不足,但卻優(yōu)于其他2種算法,同時也更加穩(wěn)定。結(jié)果表明,在絕大部分的測試函數(shù)上,相比其他3種算法,DCWOA算法可以找到精度更高,收斂速度更快的最優(yōu)解。因此DCWOA是一個具有高效性的優(yōu)化算法,并且可用于優(yōu)化自抗擾參數(shù)。
本文選取DCWOA算法對ADRC參數(shù)進行在線優(yōu)化,并選取ITAE指標做為算法的目標函數(shù),其中ITAE指標[10]的數(shù)學表達式如下:
(15)
為了驗證本文所提算法的有效性,選取CPSO與DCWOA進行對比驗證,具體結(jié)果如圖3和圖4所示。
圖3 第一組參數(shù)尋優(yōu)
圖4 第二組參數(shù)尋優(yōu)
圖3和圖4為CPSO和DCWOA算法對兩組ADRC參數(shù)整定過程中的評價函數(shù)優(yōu)化曲線。DCWOA算法相較CPSO而言,具有更高的搜索精度,更快的搜索速度,很大程度上提高了ADRC的控制精度。在尋優(yōu)范圍上,DCWOA遠大于CPSO。在算法尋優(yōu)初期,DCWOA算法得到的評價函數(shù)值的下降速度明顯優(yōu)于CPSO,說明DCWOA的尋優(yōu)初值要好于CPSO,因此可得到比CPSO更快的尋優(yōu)速度,使算法整體的優(yōu)化效率得到提升,且評價函數(shù)值更小,故DCWOA可以更好地得到控制器參數(shù)。最后為了驗證本文方法的高效性,在MATLAB上獨立運行DCWOA、AWOA、WOA和CPSO算法各50次,并記錄平均時間分別為5.34 s、6.88 s、7.33 s和6.02 s。因此驗證本文算法復雜度更低,優(yōu)化時間更短。
本文以兩自由度串聯(lián)機器人[11]為被控對象,通過DCWOA算法對ADRC參數(shù)進行在線整定,并與其他3種控制算法進行對比,驗證了本文算法可以有效地整定ADRC參數(shù)。其中機械臂的動力學數(shù)學方程為:
(16)
式中:D為慣性矩陣;C為離心力矩陣;G為重力矩陣;τ為控制率,其數(shù)學表達式如下:
(17)
首先,通過DCWOA在線整定ADRC參數(shù),其中:β01=98.375,β02=298.462,β03=95.42,β1=29.42,β2=30.25。
其次,通過優(yōu)化后的自抗擾控制器對兩自由度機械臂進行軌跡控制,通過對比不同控制方式所得到的控制結(jié)果,驗證了本文方法具有更好的控制效果。其控制結(jié)果如圖5和圖6所示。
圖5 基于不同算法的q1誤差跟蹤對比圖
圖6 基于不同算法的q2誤差跟蹤對比圖
圖5、圖6分別為DCWOA整定后的ADRC與AWOA整定后的ADRC、CPSO整定后的ADRC、WOA整定后的ADRC以及經(jīng)驗整定法整定后的ADRC對于角度q1和角度q2的控制誤差對比圖。從圖中可得DCWOA整定后的ADRC的控制精度遠遠高于其他4種控制方法,且可以更快地達到穩(wěn)態(tài),響應時間更短。由此可得,本文算法可以有效地整定ADRC參數(shù)。
本文針對傳統(tǒng)經(jīng)驗整定法難以整定非線性ADRC參數(shù)問題,提出了一種雙種群混沌鯨魚優(yōu)化算法。算法針對傳統(tǒng)鯨魚優(yōu)化算法尋優(yōu)緩慢的問題,通過引入混沌序列加以改進。針對算法在尋優(yōu)過程中陷入局部最優(yōu)問題,提出了雙種群尋優(yōu)的方式加以改進,克服了算法的原有缺陷,并先后通過測試函數(shù)和評價指標驗證了算法的有效性。最后以兩自由度串聯(lián)機器人為被控對象進行實例驗證,通過跟蹤誤差的對比結(jié)果進一步驗證了算法的高效性,證明本文所提方法可以有效整定ADRC參數(shù)。