周 濤
(洛陽師范學院 物理與電子信息學院,河南 洛陽 471934)
通常,自抗擾控制(ADRC)分為線性自抗擾控制(LADRC)和非線性自抗擾控制。自抗擾控制具有響應速度快、魯棒性好,精度高等優點,有較高的工程應用價值,已在運動控制、火力發電、化工、航空、飛行器控制等領域得到應用[1],但經典的非線性自抗擾控制器參數數量較多,整定困難。目前,自抗擾控制參數整定問題已成為一個研究熱點。Gao將線性自抗擾控制參數對應為控制器帶寬ωc、觀測器帶寬ω0以及參數b,減少了整定參數的數量[2]。
自抗擾控制在各類光電穩定平臺、導彈導引頭、舵機等航空武器中得到廣泛應用[3-6]。激光半主動導引頭是各型激光制導導彈的核心部件,文獻[4]采用自抗擾控制算法,對導引頭內外部擾動進行總體估計并給予相應補償,使導引頭視軸的振動得以隔離,從而實現視軸的相對穩定及高精度控制。文獻[5]基于導彈舵機系統的特點,結合誤差分段PID響應速度快和自抗擾復合控制抗擾動好的優點,進行位置環控制。文獻[6]采用基于自抗擾控制技術的平臺慣導系統初始自對準方案。
對于不同的控制對象,控制系統的模型和擾動作用差別很大,目前,主要根據經驗進行線性自抗擾控制參數整定,缺乏實用有效的自動整定方法,增加了線性自抗擾控制應用的難度,影響系統的抗擾性能和精度。因此,需要適用于不同類型控制對象的線性自抗擾控制參數自動優化方法。
文獻[7]利用極點配置,提出了一種具有時變參數的擴張狀態觀測器。文獻[8]利用粒子群優化算法對非線性自抗擾控制參數進行整定,但是運算較復雜。文獻[9]利用BP 神經網絡在線調整擴張狀態觀測器(ESO)的3個參數,并將自適應ESO 嵌入到非線性ADRC。文獻[10]提出LADRC參數的工程配置方法,并應用于某高精度武器控制系統。文獻[11]利用內模控制的方法對線性ADRC的帶寬參數進行調整。文獻[12]提出了一種基于動態響應過程時序數據挖掘的參數自整定算法,用于整定線性自抗擾控制器中誤差反饋律的參數。文獻[13]提出了一種通用二階LADRC參數整定方法,適用于泛化線性過程,但其整定過程較繁瑣。文獻[14]采用遞推最小二乘法對LADRC中的參數b進行辨識。
綜上,線性自抗擾控制工程應用越來越廣泛,但是,對于系統存在大幅值的復雜擾動量以及參數b不準確情況下, 目前還沒有理想的自動整定線性自抗擾控制參數的方法,仍主要根據經驗進行反復試湊,調試困難、周期長,影響了自抗擾控制的推廣應用。因此,研究通用、高效的線性自抗擾控制參數自動優化方法,具有重要的工程應用價值。
目前,利用智能算法的參數整定普遍存在結構和運算復雜、效率和收斂精度低等缺點。本文提出采用差分進化算法自動優化線性自抗擾控制器的兩個參數ω0和ωc。首先,論文研究二階線性自抗擾控制的設計,分析差分進化算法的原理。為了提高算法的收斂速度、效率和精度,對差分進化算法參數設定進行分析,并利用該算法優化自抗擾控制兩個帶寬參數的整定。最后,針對存在大幅值總擾動量的二階系統,在參數b準確和不準確的兩種情況下,通過大量仿真實驗,以驗證差分進化算法參數整定的有效性。
對于二階系統,有

(1)
式中:x1,x2為系統的狀態變量;參數b>0;u為系統實際控制輸入量;y為系統輸出;f為系統總擾動量,且有界,其可以是未知的線性或者非線性函數。
設計式(1)系統對應的三階線性擴張狀態觀測器為

(2)
式中:l1>0,l2>0,l3>0,誤差e=y-z1。
經過參數化,可以把ESO特征方程的極點配置在同一個位置-ω0處,即要求觀測器的增益滿足:
s3+l1s2+l2s+l3=(s+ω0)3
(3)

適當調整參數ω0,可使z1→y,z2→x2,z3→f,即狀態z3可以準確估計系統總擾動量f。
若式(1)系統的設定輸入為信號r,取控制輸入量為
u0=kp(r1-z1)+kd(r2-z2)
(4)

經參數化,可以把閉環誤差系統特征方程的極點配置在同一個位置-ωc處,要求反饋控制律的增益滿足:
s2+kds+kp=(s+ωc)2
(5)

(6)
取式(1)二階系統的實際控制輸入量u為
(7)
適當地調節ωc,可使二階閉環系統收斂,即x1→r1,x2→r2,且快速無超調。
因此,線性ADRC共需要整定三個參數:ω0,ωc和b。參數b對ESO的性能影響較大,不合理的取值會導致ESO發散,進而影響自抗擾控制系統的穩定性。參數b具有明確的物理含義,對于實際的二階系統來說,可通過理論計算和實驗驗證的方法近似得到。通常,在許多實際工程應用場合中,參數b不能準確得到,只能取近似的估計值。因此,在進行參數b不準確的二階系統自抗擾控制的情況下,增加了參數整定的難度。
大量實驗證明,ω0和ωc兩個參數的值互相耦合,它們的取值都影響線性自抗擾控制系統的穩定性和精度。同時,當系統存在大幅值的擾動量以及參數b不準確的情況下,對ω0和ωc兩個參數的整定帶來較大影響,使得整定過程變得更加困難。目前,還沒有實用的自動優化這兩個參數的方法,需要根據經驗反復試錯。以下提出利用差分進化算法進行ω0和ωc兩個參數的自動優化。
差分進化算法是一種隨機啟發式搜索算法,通過群體內個體間的合作與競爭產生的群體智能引導優化搜索過程。與神經網絡、遺傳算法等智能優化算法相比,該算法的主要優點是[15]:待定參數少,不易陷入局部最優,收斂速度快。
與遺傳算法相比,它保留了基于種群的全局搜索策略,采用實數編碼、差分形式的簡單變異操作和一對一的競爭生存策略,降低了遺傳操作的復雜性;同時,它利用特有的記憶能力動態跟蹤當前的搜索情況,以調整其搜索策略,具有較強的全局搜索能力和魯棒性[16]。仿真實驗結果表明,對于同一個優化對象和相同的優化精度而言,與遺傳算法相比,差分進化算法的種群大小和進化代數都較小,且運行時間較短[16]。
差分進化算法由變異、交叉和選擇三個基本運算構成。
(1) 變異
從某一隨機產生的初始群體開始,通過把種群中任意兩個個體的向量差加權后按一定的規則與第三個個體求和,來產生變異新個體。
(2) 交叉
先設定交叉概率值,通過隨機產生的一個概率數與設定交叉概率值比較,當隨機概率數小于該值時,引入變異新個體;反之,保留初始目標向量。
(3) 選擇
將一組變異新個體與當代種群中的某個預先得到的一組個體相比較,如果新個體組的適應度函數值優于與之相比較的個體組的適應度函數值,則在下一代中用變異新個體取代舊個體,否則,舊個體仍保留下來。
通過不斷地迭代運算,保留優良個體,淘汰劣質個體,從而引導搜索過程向最優解逼近。
差分進化算法主要包括4個步驟[15]:
(1) 生成初始群體
在n維空間里,隨機產生滿足約束條件的M個個體,具體運算如下:
(8)

(2) 變異運算
從群體中隨機選擇3個個體xc1,xc2和xc3,i≠c1≠c2≠c3,且c1,c2和c3為隨機整數,則變異運算為
hij(t+1)=xc1j(t)+L·[xc2j(t)-xc3j(t)]
(9)
式中:hij(t+1)為變異新個體;t為進化的代數;L為縮放系數;xc2j(t)-xc3j(t)定義為差異化向量個體,c1,c2和c3表示個體在種群中的序號。
(3) 交叉運算
交叉運算是為了增加種群的多樣性,具體運算如下:
(10)
式中:vij(t+1)為實驗向量個體;xij(t)為目標向量個體;lij為區間[0,1]的隨機小數;Pcr為交叉概率,Pcr∈[0,1]。
(4) 選擇運算
為了確定xi(t)能否成為下一代的成員,分別計算取n個實驗向量vi(t+1)和目標向量xi(t)對應的適應度函數J的值,并進行比較:

(11)
式中:Ji=J(xi1(t),…,xin(t));n為變量的維度,對應于參數優化的數量。
反復執行步驟(2)~(4),達到最大的進化代數G。
差分進化算法流程圖如圖1所示。適應度子函數流程圖如圖2所示。圖中,N為采樣點數量。

圖1 差分進化算法流程圖Fig.1 Flow chart of differential evolution algorithm

圖2 適應度子函數流程圖Fig.2 Flow chart of fitness subfunction
因此,可將上述二階LADRC的兩個參數ω0和ωc作為差分進化算法自動整定優化的對象。
采用差分進化算法對LADRC的兩個參數進行優化仿真實驗。設二階系統為

(12)
在式(12)二階系統的模型中,參數b=120。假設系統總擾動量為
f=120[1.0sin(t(k))+x1x2+
sgn(sin(2t(k)))]-25x2
(13)
式中:t(k)為采樣時間;sgn(sin(2t(k)))為符號函數。系統的總擾動量包括外擾f1和內擾f2,即f=f1+f2。其中f1=120[1.0sin(t(k))+sgn(sin(2t(k)))]為外部擾動,f2=120x1x2-25x2為內部擾動。系統總擾動量f為復雜非線性函數,因此,式(12)二階系統為非線性系統。
如果式(12)二階系統的設定輸入為單位階躍信號,則其穩態的輸出值為x1=1,與二階系統穩態的輸出值x1相比,內擾和外擾的幅值都很大。
為了提高收斂速度和搜索精度,選取變異因子為
L=(Lmax-Lmin)·(G-t)/G+Lmin
(14)
式中:t為當前的進化代數;G為最大進化代數;Lmax為選擇的變異因子最大值;Lmin為變異因子最小值。這樣,在算法運行的初始階段,L的取值較大,可以擴大搜索空間,保持種群的多樣性。在收斂運行的后期,L的取值較小,實現在收斂的最優空間附近進行優化。
選取交叉因子為
Pcr=(Pcrmax-Pcrmin)·t/G+Pcrmin
(15)
式中:Pcrmax為交叉因子最大值;Pcrmin為交叉因子最小值。隨著進化代數的增加,Pcr取值的增加,可提高收斂速度。
取適應度函數為
(16)
式中:w為系數;t(k)為采樣時間;e2(k)=r(k)-z1(k),為系統設定輸入與輸出的誤差。根據需要適應度函數也可以采用其他形式。仿真實驗結果表明,對于包含誤差e2(k)的不同形式的適應度函數,差分進化算法優化結果的一致性較高。
群體個數M的值會影響算法獲取最優解的概率。M的值越大,耗時越長,群體的多樣性越好,取得最優解的概率越大。最大進化代數G越大,計算的最優解精度越高。一般選取L∈[0,3]。
設定LADRC兩個參數的取值范圍分別為:ω0∈[1,500],ωc∈[1,800]。取差分進化算法的參數為:優化變量的維度n=2,最大進化代數G=50,群體個數M=50,Lmax=2,Lmin=0.1,Pcrmax=0.9,Pcrmin=0.6,w=0.6,采樣點數量N=10 001。
假設式(12)二階系統的參數b精確已知,即取b=120。經過差分進化算法的優化,得到自抗擾控制系統參數的最優解為:ω0=468.657 8,ωc= 727.904 9,此時的適應度函數值為J= 0.370 8。當b=120時,系統階躍跟蹤響應曲線如圖3所示,系統控制輸入信號如圖4所示,系統的擾動和估計如圖5所示,適應度函數值的變化如圖6所示。 圖3表明,經參數優化后, 系統的跟蹤精度高,響應速度快。圖4表明,系統的控制輸入量較小。圖5表明,當參數b準確時,ESO的擾動估計精度高,并且擾動量的最大幅值接近300,遠大于系統的穩態輸出值。圖6表明,適應度函數值快速達到最小值。

圖3 系統階躍跟蹤響應曲線(b=120)Fig.3 System step tracking response curve(b=120)

圖4 系統的控制輸入信號(b=120)Fig.4 System control input signal(b=120)

圖5 系統的擾動和估計(b=120)Fig.5 System disturbance and estimation(b=120)

圖6 適應度函數值的變化(b=120)Fig.6 Fitness function change(b=120)
因此,當b準確時,通過差分進化算法,可取得ω0和ωc兩個參數全局的最優值,并且收斂速度快。
假設系統的參數b無法精確得到,當其估計值比b的真實值大50%時,即b=180,通過經驗法調整兩個參數ω0和ωc,很容易使系統發散,調整出理想數值的難度較大。
經過差分進化算法的優化,得到系統的最優解為:ω0=411.041 0,ωc=635.140 5,此時的適應度函數值為J=0.962 6。當b=180時,系統階躍跟蹤響應曲線如圖7所示,系統控制輸入信號如圖8所示,系統的擾動和估計如圖9所示,適應度函數值的變化如圖10所示。

圖7 系統階躍跟蹤響應曲線(b=180)Fig.7 System step tracking response curve(b=180)

圖8 系統的控制輸入信號(b=180)Fig.8 System control input signal(b=180)

圖9 系統的擾動和估計(b=180)Fig.9 System disturbance and estimation(b=180)

圖10 適應度函數值的變化(b=180)Fig.10 Fitness function change(b=180)
圖7表明,經參數優化后,系統的跟蹤精度仍較高,響應速度快。圖8表明,系統的控制輸入量也較小。圖9表明,由于參數b對ESO性能的影響,當參數b不準確時,ESO的擾動估計精度出現一定的偏差,并且擾動量的最大幅值接近300,遠大于系統的穩態輸出值。圖10表明,適應度函數值也快速達到最小值。
此外,仿真實驗表明,當參數b的估計值比其真實值小時,差分進化算法也能取得兩個參數全局的最優解,同時適應度函數值快速達到最小值。
因此,當b不準確時,通過差分進化算法,也可取得兩個參數全局的最優解,收斂的速度很快。
本文提出了采用差分進化算法自動優化線性自抗擾控制兩個參數ω0和ωc,對于存在大擾動量的二階非線性系統,在參數b準確和不準確的兩種情況下,該差分進化算法均能取得兩個參數全局的最優解,同時適應度函數值快速達到對應的最小值,從而實現了較高的系統階躍響應速度和跟蹤精度。對于三階以上的高階線性自抗擾控制系統參數優化問題,在修改算法的相關參數后,該差分進化算法同樣適用。該算法收斂速度快,效率和精度高,具有重要的工程應用價值。