易 星 吳 昊
(南京交通職業技術學院電子信息工程學院 江蘇 南京 211188)
自抗擾控制器(ADRC)[1]是一種具有強抗擾動能力且不基于精確數學模型的強魯棒控制器。在控制過程中,自抗擾控制器可將模型內擾和外負載擾動作為總擾動,通過擴張狀態觀測器對擾動進行觀測并通過非線性誤差反饋控制率對所觀測擾動給予補償。但非線性自抗擾控制器具有結構復雜且耦合參數過多的特點,傳統的經驗整定法難以整定出合理有效的參數[2],導致在實際控制過程中常因參數整定不合理導致控制精度的丟失,很大程度上影響控制器的抗擾動能力。因此非線性自抗擾參數整定問題成為當下研究的重點[3]。
針對上述問題,大多學者結合了不同的智能優化算法對非線性自抗擾參數進行在線整定,如改進的遺傳算法[4]、改進的粒子群算法[5]、蟻群算法[6]、改進的混沌粒子群算法[7]等。但絕大多數的智能算法尋優機制過于簡單,在自抗擾控制器參數尋優的過程中,很有可能找到的都是局部最優解,難以得到有效的控制參數,很大程度上降低了控制器的控制精度。因此本文提出一種基于雙種群混沌鯨魚優化算法對控制參數進行在線尋優。鯨魚優化算法WOA[8](Whale Optimization Algorithm)是一種新的群體智能優化算法,其優點在于參數少,局部搜索能力強,但很難找到全局最優解。針對此問題,本文提出雙種群協同機制和混沌策略對算法進行改進,提高算法全局搜索能力,加快了算法后期的搜索速度。最后通過改進后的鯨魚算法在線優化自抗擾控制器,并以機械臂作為被控對象進行仿真驗證。
自抗擾控制器由微分跟蹤器TD、非線性反饋NLSEF和擴張狀態觀測器ESO組成。其中:TD主要作用是提取系統輸入信號安排過渡過程;ESO將影響系統的“總擾動”擴張成新的狀態變量,實時監測并給予補償;NLSEF將誤差、誤差的微分和誤差積分三種信號以一種形式組合起來而形成的控制律。以二階非線性對象為例,其結構如圖1所示。

圖1 非線性自抗擾結構框圖
其中:v1和v2分別為TD給出的過度過程及其微分;NLSEF對誤差e1和e2進行非線性組合,并輸出控制信號u0;ESO估計對象的各階狀態變量z1、z2和對象總擾動實時作用量z3;b0為控制輸入放大系數。TD、ESO以及NLSEF的數學表達式如下所示:
(1)
(2)

(3)
式中:r是快慢因子;h是步長;β01、β02、β03、β1、β2是修正系數,也是控制器中待整定參數;函數fal(·)是一種非線性函數,是輸出誤差校正率,其表達式為:
(4)
其余參數由于一部分變化極其敏感,一部分對控制系統影響不大,因此可事先根據經驗先行設定。本文選取TD中r=100,h=0.01;ESO中的a1=0.5,a2=0.25,δ=0.01。
針對非線性自抗擾參數難整定以至于影響控制精度和抗擾動問題,選取ITAE作為優化的目標函數,采用雙種群混沌鯨魚算法進行在線優化,其系統框圖如圖2所示。

圖2 基于DCWOA算法的ADRC系統框圖
鯨魚優化算法是一種高效的新型啟發式優化算法,其尋優方式是基于模擬鯨魚狩獵所得出的。該算法主要包括三個階段:包圍獵物、螺旋狩獵和搜索食物。對于鯨魚優化算法而言,鯨魚種群中任意一只鯨魚所在的位置都可以表示為一個決策變量。
(1) 包圍獵物:
座頭鯨在狩獵的時候要包圍獵物,其數學模型如下:
D=|CX*(t)-X(t)|
(5)
X(t+1)=X*(t)-A·D
(6)
式中:t表示為迭代次數;A和C為系數矩陣;X*(t)為當前最優的鯨魚位置向量;X(t)表示當前鯨魚的位置向量,A和C由下面的公式得出:
A=2a×r1-a
(7)
C=2×r2
(8)
式中:r1和r2為(0,1)之間的隨機數;a的值在(0,2)之間并線性遞減;t為當前的迭代次數;Tmax為最大迭代次數。
(2) 螺旋狩獵:
首先由于鯨魚在捕食過程中是以螺旋運動方式包圍獵物的,因此其捕食行為的數學模型如下:
X(t+1)=X*(t)+Dp·ebl·cos(2πl)
(9)
式中:Dp=|X*(t)-X(t)|代表鯨魚和獵物之間的距離;X*(t)表示迭代過程中最好的位置向量;b為常數,螺線的形狀隨b的取值而改變;l是(-1,1)中的隨機數。
其次鯨魚在通過螺旋狩獵游向獵物的同時還要收縮包圍圈。因此在該模型中,假設有Pi的概率選擇收縮包圍機制和(1-Pi)的概率選擇螺旋模型來更新鯨魚的位置,其數學模型如下:
(10)
由數學模型可得,鯨魚在靠近獵物時會減小a的值,這樣A的波動范圍也隨a下降。在迭代過程中當a的值從2到0下降時,A是在[-a,a]內的隨機值,當A的值在[-1,1]內時,鯨魚的下一個位置可以是它現在的位置和獵物的位置之間的任意位置。
(3) 搜索獵物:
搜索獵物采用隨機個體位置尋找獵物,其數學模型如下:
D=|CXrand-X(t)|
(11)
X(t+1)=Xrand-A·D
(12)
式中:Xrand是隨機所得的位置向量,算法設定當A≥1時,隨機選擇一個搜索領導個體,并通過領導個體的位置來更新其他鯨魚的位置,以此引導鯨魚離開當前獵物,借此找到更合適的獵物,目的是加強算法的全局搜索能力。
WOA能有效地算法跳出局部最優,本文提出一種基于混沌序列和雙種群尋優策略的雙種群混沌鯨魚優化算法DCWOA,改進后的算法使得收斂速度和收斂精度大幅提升。
首先,針對算法隨機初始化導致算法收斂速度慢的問題,本文采用混沌序列代替算法傳統的隨機初始化方式?;煦绗F象是在非線性動力系統中表現的確定性、類隨機的過程?;煦邕\動的優點在于對初值極度敏感,可在一定范圍內,按照一定的自身規律,不斷對所有的狀態進行遍歷。因此,本文采用Logistic映射產生混沌序列來對WOA中粒子的位置進行初始化,其表達式表示為:
xn+1=μxn(1-x)xn∈[0,1],μ∈[0,4],n=0,1,…
(13)
式中:當μ=4時,式(13)呈現完全混沌狀態,得到的x序列為[0,1]的滿映射。由于傳統鯨魚優化算法的初始化方式是隨機初始化,導致每次搜索結果差別較大,粒子初始化后分散性較大,采用混沌序列的方式對WOA算法進行初始化,在保留粒子多樣性的基礎上,使算法具有較大范圍的搜索能力。
其次,加入混沌序列雖然有效提高了算法的收斂速度,但并沒有解決算法在尋優中會陷入局部最優的情況,因此本文考慮一種雙種群尋優策略。將通過混沌初始化后的種群隨機平均分為兩個子種群s1和s2,其中:種群s1中的個體按基本鯨魚優化算法進行尋優;種群s2中的個體在尋優過程中,加入變異策略,使算法在尋優過程中具有一定的指引性。當算法陷入局部最優時,產生一個跳變,使得個體跳出局部最優。由于傳統鯨魚優化算法和加入變異后的鯨魚優化算法在產生新個體上的方式有所不同,因此,本文將兩者的優勢進行了結合,并引入混沌序列對種群進行初始化,提出了一種雙種群混沌鯨魚優化算法。其變異公式為:
(14)

Step1通過混沌序列對WOA種群進行初始化并隨機產生兩組規模為N/2的初始種群作為種群和種群。
Step2分別對種群s1和s2中每個個體求解相應的適應度函數值。
Step3若當前迭代次數達到最大迭代次數,跳轉Step8,否則繼續執行Step4。
Step4種群s1依照DCWOA算法尋優機制對粒子進行更新。對種群s2采用WOA對粒子進行更新,并計算更新后粒子的適應度值,對最優個體進行保留。
Step5選擇:用m個部分隨機的新個體替換種群s1中適應度函數值較差的m個個體。
Step6變異:利用基因突變方法從而改變種群s1中的部分個體的特性,并對變異后的個體進行邊界處理。
Step7比較種群s1和種群s2中的最優個體,判斷是否滿足交換條件,如滿足交換條件則將較好的個體交換到種群s1中,將較差的個體交換到種群s2中,之后轉入Step4。
Step8輸出最終計算結果。
為了驗證本文所提DCWOA算法的有效性,選取7個測試函數進行測試,并將測試結果分別與基本鯨魚優化算法(WOA)、混沌粒子群算法[7](CPSO)、改進鯨魚優化算法[9](AWOA)進行對比驗證。其中4種算法的種群規模為30,迭代次數均為200。具體的測試結果如表1所示,其中加粗字體表示最好的結果。

表1 7個不同測試函數的仿真計算結果
通過表1可得,DCWOA算法的整體性能比其他3種算法更為高效。對測試函數Ackley’s,相比其余3種算法而言,DCWOA尋找理論最優值更加穩定,搜索精度更高。對測試函數Beale’s、Booth’s、Threehump和Ackley’s來說,DCWOA算法在AWOA算法的基礎上大大提高了精度。對于Lévi來說,DCWOA在控制精度上是略低于CPSO算法,但依然優于WOA和AWOA。對Easom而言,相比WOA算法,DCWOA在精度上略有不足,但卻優于其他2種算法,同時也更加穩定。結果表明,在絕大部分的測試函數上,相比其他3種算法,DCWOA算法可以找到精度更高,收斂速度更快的最優解。因此DCWOA是一個具有高效性的優化算法,并且可用于優化自抗擾參數。
本文選取DCWOA算法對ADRC參數進行在線優化,并選取ITAE指標做為算法的目標函數,其中ITAE指標[10]的數學表達式如下:

(15)
為了驗證本文所提算法的有效性,選取CPSO與DCWOA進行對比驗證,具體結果如圖3和圖4所示。

圖3 第一組參數尋優

圖4 第二組參數尋優
圖3和圖4為CPSO和DCWOA算法對兩組ADRC參數整定過程中的評價函數優化曲線。DCWOA算法相較CPSO而言,具有更高的搜索精度,更快的搜索速度,很大程度上提高了ADRC的控制精度。在尋優范圍上,DCWOA遠大于CPSO。在算法尋優初期,DCWOA算法得到的評價函數值的下降速度明顯優于CPSO,說明DCWOA的尋優初值要好于CPSO,因此可得到比CPSO更快的尋優速度,使算法整體的優化效率得到提升,且評價函數值更小,故DCWOA可以更好地得到控制器參數。最后為了驗證本文方法的高效性,在MATLAB上獨立運行DCWOA、AWOA、WOA和CPSO算法各50次,并記錄平均時間分別為5.34 s、6.88 s、7.33 s和6.02 s。因此驗證本文算法復雜度更低,優化時間更短。
本文以兩自由度串聯機器人[11]為被控對象,通過DCWOA算法對ADRC參數進行在線整定,并與其他3種控制算法進行對比,驗證了本文算法可以有效地整定ADRC參數。其中機械臂的動力學數學方程為:

(16)
式中:D為慣性矩陣;C為離心力矩陣;G為重力矩陣;τ為控制率,其數學表達式如下:
(17)
首先,通過DCWOA在線整定ADRC參數,其中:β01=98.375,β02=298.462,β03=95.42,β1=29.42,β2=30.25。
其次,通過優化后的自抗擾控制器對兩自由度機械臂進行軌跡控制,通過對比不同控制方式所得到的控制結果,驗證了本文方法具有更好的控制效果。其控制結果如圖5和圖6所示。

圖5 基于不同算法的q1誤差跟蹤對比圖

圖6 基于不同算法的q2誤差跟蹤對比圖
圖5、圖6分別為DCWOA整定后的ADRC與AWOA整定后的ADRC、CPSO整定后的ADRC、WOA整定后的ADRC以及經驗整定法整定后的ADRC對于角度q1和角度q2的控制誤差對比圖。從圖中可得DCWOA整定后的ADRC的控制精度遠遠高于其他4種控制方法,且可以更快地達到穩態,響應時間更短。由此可得,本文算法可以有效地整定ADRC參數。
本文針對傳統經驗整定法難以整定非線性ADRC參數問題,提出了一種雙種群混沌鯨魚優化算法。算法針對傳統鯨魚優化算法尋優緩慢的問題,通過引入混沌序列加以改進。針對算法在尋優過程中陷入局部最優問題,提出了雙種群尋優的方式加以改進,克服了算法的原有缺陷,并先后通過測試函數和評價指標驗證了算法的有效性。最后以兩自由度串聯機器人為被控對象進行實例驗證,通過跟蹤誤差的對比結果進一步驗證了算法的高效性,證明本文所提方法可以有效整定ADRC參數。