周 濤
(洛陽(yáng)師范學(xué)院 物理與電子信息學(xué)院,河南 洛陽(yáng) 471934)
通常,自抗擾控制(ADRC)分為線性自抗擾控制(LADRC)和非線性自抗擾控制。自抗擾控制具有響應(yīng)速度快、魯棒性好,精度高等優(yōu)點(diǎn),有較高的工程應(yīng)用價(jià)值,已在運(yùn)動(dòng)控制、火力發(fā)電、化工、航空、飛行器控制等領(lǐng)域得到應(yīng)用[1],但經(jīng)典的非線性自抗擾控制器參數(shù)數(shù)量較多,整定困難。目前,自抗擾控制參數(shù)整定問(wèn)題已成為一個(gè)研究熱點(diǎn)。Gao將線性自抗擾控制參數(shù)對(duì)應(yīng)為控制器帶寬ωc、觀測(cè)器帶寬ω0以及參數(shù)b,減少了整定參數(shù)的數(shù)量[2]。
自抗擾控制在各類光電穩(wěn)定平臺(tái)、導(dǎo)彈導(dǎo)引頭、舵機(jī)等航空武器中得到廣泛應(yīng)用[3-6]。激光半主動(dòng)導(dǎo)引頭是各型激光制導(dǎo)導(dǎo)彈的核心部件,文獻(xiàn)[4]采用自抗擾控制算法,對(duì)導(dǎo)引頭內(nèi)外部擾動(dòng)進(jìn)行總體估計(jì)并給予相應(yīng)補(bǔ)償,使導(dǎo)引頭視軸的振動(dòng)得以隔離,從而實(shí)現(xiàn)視軸的相對(duì)穩(wěn)定及高精度控制。文獻(xiàn)[5]基于導(dǎo)彈舵機(jī)系統(tǒng)的特點(diǎn),結(jié)合誤差分段PID響應(yīng)速度快和自抗擾復(fù)合控制抗擾動(dòng)好的優(yōu)點(diǎn),進(jìn)行位置環(huán)控制。文獻(xiàn)[6]采用基于自抗擾控制技術(shù)的平臺(tái)慣導(dǎo)系統(tǒng)初始自對(duì)準(zhǔn)方案。
對(duì)于不同的控制對(duì)象,控制系統(tǒng)的模型和擾動(dòng)作用差別很大,目前,主要根據(jù)經(jīng)驗(yàn)進(jìn)行線性自抗擾控制參數(shù)整定,缺乏實(shí)用有效的自動(dòng)整定方法,增加了線性自抗擾控制應(yīng)用的難度,影響系統(tǒng)的抗擾性能和精度。因此,需要適用于不同類型控制對(duì)象的線性自抗擾控制參數(shù)自動(dòng)優(yōu)化方法。
文獻(xiàn)[7]利用極點(diǎn)配置,提出了一種具有時(shí)變參數(shù)的擴(kuò)張狀態(tài)觀測(cè)器。文獻(xiàn)[8]利用粒子群優(yōu)化算法對(duì)非線性自抗擾控制參數(shù)進(jìn)行整定,但是運(yùn)算較復(fù)雜。文獻(xiàn)[9]利用BP 神經(jīng)網(wǎng)絡(luò)在線調(diào)整擴(kuò)張狀態(tài)觀測(cè)器(ESO)的3個(gè)參數(shù),并將自適應(yīng)ESO 嵌入到非線性ADRC。文獻(xiàn)[10]提出LADRC參數(shù)的工程配置方法,并應(yīng)用于某高精度武器控制系統(tǒng)。文獻(xiàn)[11]利用內(nèi)模控制的方法對(duì)線性ADRC的帶寬參數(shù)進(jìn)行調(diào)整。文獻(xiàn)[12]提出了一種基于動(dòng)態(tài)響應(yīng)過(guò)程時(shí)序數(shù)據(jù)挖掘的參數(shù)自整定算法,用于整定線性自抗擾控制器中誤差反饋律的參數(shù)。文獻(xiàn)[13]提出了一種通用二階LADRC參數(shù)整定方法,適用于泛化線性過(guò)程,但其整定過(guò)程較繁瑣。文獻(xiàn)[14]采用遞推最小二乘法對(duì)LADRC中的參數(shù)b進(jìn)行辨識(shí)。
綜上,線性自抗擾控制工程應(yīng)用越來(lái)越廣泛,但是,對(duì)于系統(tǒng)存在大幅值的復(fù)雜擾動(dòng)量以及參數(shù)b不準(zhǔn)確情況下, 目前還沒(méi)有理想的自動(dòng)整定線性自抗擾控制參數(shù)的方法,仍主要根據(jù)經(jīng)驗(yàn)進(jìn)行反復(fù)試湊,調(diào)試?yán)щy、周期長(zhǎng),影響了自抗擾控制的推廣應(yīng)用。因此,研究通用、高效的線性自抗擾控制參數(shù)自動(dòng)優(yōu)化方法,具有重要的工程應(yīng)用價(jià)值。
目前,利用智能算法的參數(shù)整定普遍存在結(jié)構(gòu)和運(yùn)算復(fù)雜、效率和收斂精度低等缺點(diǎn)。本文提出采用差分進(jìn)化算法自動(dòng)優(yōu)化線性自抗擾控制器的兩個(gè)參數(shù)ω0和ωc。首先,論文研究二階線性自抗擾控制的設(shè)計(jì),分析差分進(jìn)化算法的原理。為了提高算法的收斂速度、效率和精度,對(duì)差分進(jìn)化算法參數(shù)設(shè)定進(jìn)行分析,并利用該算法優(yōu)化自抗擾控制兩個(gè)帶寬參數(shù)的整定。最后,針對(duì)存在大幅值總擾動(dòng)量的二階系統(tǒng),在參數(shù)b準(zhǔn)確和不準(zhǔn)確的兩種情況下,通過(guò)大量仿真實(shí)驗(yàn),以驗(yàn)證差分進(jìn)化算法參數(shù)整定的有效性。
對(duì)于二階系統(tǒng),有
(1)
式中:x1,x2為系統(tǒng)的狀態(tài)變量;參數(shù)b>0;u為系統(tǒng)實(shí)際控制輸入量;y為系統(tǒng)輸出;f為系統(tǒng)總擾動(dòng)量,且有界,其可以是未知的線性或者非線性函數(shù)。
設(shè)計(jì)式(1)系統(tǒng)對(duì)應(yīng)的三階線性擴(kuò)張狀態(tài)觀測(cè)器為
(2)
式中:l1>0,l2>0,l3>0,誤差e=y-z1。
經(jīng)過(guò)參數(shù)化,可以把ESO特征方程的極點(diǎn)配置在同一個(gè)位置-ω0處,即要求觀測(cè)器的增益滿足:
s3+l1s2+l2s+l3=(s+ω0)3
(3)
適當(dāng)調(diào)整參數(shù)ω0,可使z1→y,z2→x2,z3→f,即狀態(tài)z3可以準(zhǔn)確估計(jì)系統(tǒng)總擾動(dòng)量f。
若式(1)系統(tǒng)的設(shè)定輸入為信號(hào)r,取控制輸入量為
u0=kp(r1-z1)+kd(r2-z2)
(4)
經(jīng)參數(shù)化,可以把閉環(huán)誤差系統(tǒng)特征方程的極點(diǎn)配置在同一個(gè)位置-ωc處,要求反饋控制律的增益滿足:
s2+kds+kp=(s+ωc)2
(5)
(6)
取式(1)二階系統(tǒng)的實(shí)際控制輸入量u為
(7)
適當(dāng)?shù)卣{(diào)節(jié)ωc,可使二階閉環(huán)系統(tǒng)收斂,即x1→r1,x2→r2,且快速無(wú)超調(diào)。
因此,線性ADRC共需要整定三個(gè)參數(shù):ω0,ωc和b。參數(shù)b對(duì)ESO的性能影響較大,不合理的取值會(huì)導(dǎo)致ESO發(fā)散,進(jìn)而影響自抗擾控制系統(tǒng)的穩(wěn)定性。參數(shù)b具有明確的物理含義,對(duì)于實(shí)際的二階系統(tǒng)來(lái)說(shuō),可通過(guò)理論計(jì)算和實(shí)驗(yàn)驗(yàn)證的方法近似得到。通常,在許多實(shí)際工程應(yīng)用場(chǎng)合中,參數(shù)b不能準(zhǔn)確得到,只能取近似的估計(jì)值。因此,在進(jìn)行參數(shù)b不準(zhǔn)確的二階系統(tǒng)自抗擾控制的情況下,增加了參數(shù)整定的難度。
大量實(shí)驗(yàn)證明,ω0和ωc兩個(gè)參數(shù)的值互相耦合,它們的取值都影響線性自抗擾控制系統(tǒng)的穩(wěn)定性和精度。同時(shí),當(dāng)系統(tǒng)存在大幅值的擾動(dòng)量以及參數(shù)b不準(zhǔn)確的情況下,對(duì)ω0和ωc兩個(gè)參數(shù)的整定帶來(lái)較大影響,使得整定過(guò)程變得更加困難。目前,還沒(méi)有實(shí)用的自動(dòng)優(yōu)化這兩個(gè)參數(shù)的方法,需要根據(jù)經(jīng)驗(yàn)反復(fù)試錯(cuò)。以下提出利用差分進(jìn)化算法進(jìn)行ω0和ωc兩個(gè)參數(shù)的自動(dòng)優(yōu)化。
差分進(jìn)化算法是一種隨機(jī)啟發(fā)式搜索算法,通過(guò)群體內(nèi)個(gè)體間的合作與競(jìng)爭(zhēng)產(chǎn)生的群體智能引導(dǎo)優(yōu)化搜索過(guò)程。與神經(jīng)網(wǎng)絡(luò)、遺傳算法等智能優(yōu)化算法相比,該算法的主要優(yōu)點(diǎn)是[15]:待定參數(shù)少,不易陷入局部最優(yōu),收斂速度快。
與遺傳算法相比,它保留了基于種群的全局搜索策略,采用實(shí)數(shù)編碼、差分形式的簡(jiǎn)單變異操作和一對(duì)一的競(jìng)爭(zhēng)生存策略,降低了遺傳操作的復(fù)雜性;同時(shí),它利用特有的記憶能力動(dòng)態(tài)跟蹤當(dāng)前的搜索情況,以調(diào)整其搜索策略,具有較強(qiáng)的全局搜索能力和魯棒性[16]。仿真實(shí)驗(yàn)結(jié)果表明,對(duì)于同一個(gè)優(yōu)化對(duì)象和相同的優(yōu)化精度而言,與遺傳算法相比,差分進(jìn)化算法的種群大小和進(jìn)化代數(shù)都較小,且運(yùn)行時(shí)間較短[16]。
差分進(jìn)化算法由變異、交叉和選擇三個(gè)基本運(yùn)算構(gòu)成。
(1) 變異
從某一隨機(jī)產(chǎn)生的初始群體開始,通過(guò)把種群中任意兩個(gè)個(gè)體的向量差加權(quán)后按一定的規(guī)則與第三個(gè)個(gè)體求和,來(lái)產(chǎn)生變異新個(gè)體。
(2) 交叉
先設(shè)定交叉概率值,通過(guò)隨機(jī)產(chǎn)生的一個(gè)概率數(shù)與設(shè)定交叉概率值比較,當(dāng)隨機(jī)概率數(shù)小于該值時(shí),引入變異新個(gè)體;反之,保留初始目標(biāo)向量。
(3) 選擇
將一組變異新個(gè)體與當(dāng)代種群中的某個(gè)預(yù)先得到的一組個(gè)體相比較,如果新個(gè)體組的適應(yīng)度函數(shù)值優(yōu)于與之相比較的個(gè)體組的適應(yīng)度函數(shù)值,則在下一代中用變異新個(gè)體取代舊個(gè)體,否則,舊個(gè)體仍保留下來(lái)。
通過(guò)不斷地迭代運(yùn)算,保留優(yōu)良個(gè)體,淘汰劣質(zhì)個(gè)體,從而引導(dǎo)搜索過(guò)程向最優(yōu)解逼近。
差分進(jìn)化算法主要包括4個(gè)步驟[15]:
(1) 生成初始群體
在n維空間里,隨機(jī)產(chǎn)生滿足約束條件的M個(gè)個(gè)體,具體運(yùn)算如下:
(8)
(2) 變異運(yùn)算
從群體中隨機(jī)選擇3個(gè)個(gè)體xc1,xc2和xc3,i≠c1≠c2≠c3,且c1,c2和c3為隨機(jī)整數(shù),則變異運(yùn)算為
hij(t+1)=xc1j(t)+L·[xc2j(t)-xc3j(t)]
(9)
式中:hij(t+1)為變異新個(gè)體;t為進(jìn)化的代數(shù);L為縮放系數(shù);xc2j(t)-xc3j(t)定義為差異化向量個(gè)體,c1,c2和c3表示個(gè)體在種群中的序號(hào)。
(3) 交叉運(yùn)算
交叉運(yùn)算是為了增加種群的多樣性,具體運(yùn)算如下:
(10)
式中:vij(t+1)為實(shí)驗(yàn)向量個(gè)體;xij(t)為目標(biāo)向量個(gè)體;lij為區(qū)間[0,1]的隨機(jī)小數(shù);Pcr為交叉概率,Pcr∈[0,1]。
(4) 選擇運(yùn)算
為了確定xi(t)能否成為下一代的成員,分別計(jì)算取n個(gè)實(shí)驗(yàn)向量vi(t+1)和目標(biāo)向量xi(t)對(duì)應(yīng)的適應(yīng)度函數(shù)J的值,并進(jìn)行比較:
(11)
式中:Ji=J(xi1(t),…,xin(t));n為變量的維度,對(duì)應(yīng)于參數(shù)優(yōu)化的數(shù)量。
反復(fù)執(zhí)行步驟(2)~(4),達(dá)到最大的進(jìn)化代數(shù)G。
差分進(jìn)化算法流程圖如圖1所示。適應(yīng)度子函數(shù)流程圖如圖2所示。圖中,N為采樣點(diǎn)數(shù)量。
圖1 差分進(jìn)化算法流程圖Fig.1 Flow chart of differential evolution algorithm
圖2 適應(yīng)度子函數(shù)流程圖Fig.2 Flow chart of fitness subfunction
因此,可將上述二階LADRC的兩個(gè)參數(shù)ω0和ωc作為差分進(jìn)化算法自動(dòng)整定優(yōu)化的對(duì)象。
采用差分進(jìn)化算法對(duì)LADRC的兩個(gè)參數(shù)進(jìn)行優(yōu)化仿真實(shí)驗(yàn)。設(shè)二階系統(tǒng)為
(12)
在式(12)二階系統(tǒng)的模型中,參數(shù)b=120。假設(shè)系統(tǒng)總擾動(dòng)量為
f=120[1.0sin(t(k))+x1x2+
sgn(sin(2t(k)))]-25x2
(13)
式中:t(k)為采樣時(shí)間;sgn(sin(2t(k)))為符號(hào)函數(shù)。系統(tǒng)的總擾動(dòng)量包括外擾f1和內(nèi)擾f2,即f=f1+f2。其中f1=120[1.0sin(t(k))+sgn(sin(2t(k)))]為外部擾動(dòng),f2=120x1x2-25x2為內(nèi)部擾動(dòng)。系統(tǒng)總擾動(dòng)量f為復(fù)雜非線性函數(shù),因此,式(12)二階系統(tǒng)為非線性系統(tǒng)。
如果式(12)二階系統(tǒng)的設(shè)定輸入為單位階躍信號(hào),則其穩(wěn)態(tài)的輸出值為x1=1,與二階系統(tǒng)穩(wěn)態(tài)的輸出值x1相比,內(nèi)擾和外擾的幅值都很大。
為了提高收斂速度和搜索精度,選取變異因子為
L=(Lmax-Lmin)·(G-t)/G+Lmin
(14)
式中:t為當(dāng)前的進(jìn)化代數(shù);G為最大進(jìn)化代數(shù);Lmax為選擇的變異因子最大值;Lmin為變異因子最小值。這樣,在算法運(yùn)行的初始階段,L的取值較大,可以擴(kuò)大搜索空間,保持種群的多樣性。在收斂運(yùn)行的后期,L的取值較小,實(shí)現(xiàn)在收斂的最優(yōu)空間附近進(jìn)行優(yōu)化。
選取交叉因子為
Pcr=(Pcrmax-Pcrmin)·t/G+Pcrmin
(15)
式中:Pcrmax為交叉因子最大值;Pcrmin為交叉因子最小值。隨著進(jìn)化代數(shù)的增加,Pcr取值的增加,可提高收斂速度。
取適應(yīng)度函數(shù)為
(16)
式中:w為系數(shù);t(k)為采樣時(shí)間;e2(k)=r(k)-z1(k),為系統(tǒng)設(shè)定輸入與輸出的誤差。根據(jù)需要適應(yīng)度函數(shù)也可以采用其他形式。仿真實(shí)驗(yàn)結(jié)果表明,對(duì)于包含誤差e2(k)的不同形式的適應(yīng)度函數(shù),差分進(jìn)化算法優(yōu)化結(jié)果的一致性較高。
群體個(gè)數(shù)M的值會(huì)影響算法獲取最優(yōu)解的概率。M的值越大,耗時(shí)越長(zhǎng),群體的多樣性越好,取得最優(yōu)解的概率越大。最大進(jìn)化代數(shù)G越大,計(jì)算的最優(yōu)解精度越高。一般選取L∈[0,3]。
設(shè)定LADRC兩個(gè)參數(shù)的取值范圍分別為:ω0∈[1,500],ωc∈[1,800]。取差分進(jìn)化算法的參數(shù)為:優(yōu)化變量的維度n=2,最大進(jìn)化代數(shù)G=50,群體個(gè)數(shù)M=50,Lmax=2,Lmin=0.1,Pcrmax=0.9,Pcrmin=0.6,w=0.6,采樣點(diǎn)數(shù)量N=10 001。
假設(shè)式(12)二階系統(tǒng)的參數(shù)b精確已知,即取b=120。經(jīng)過(guò)差分進(jìn)化算法的優(yōu)化,得到自抗擾控制系統(tǒng)參數(shù)的最優(yōu)解為:ω0=468.657 8,ωc= 727.904 9,此時(shí)的適應(yīng)度函數(shù)值為J= 0.370 8。當(dāng)b=120時(shí),系統(tǒng)階躍跟蹤響應(yīng)曲線如圖3所示,系統(tǒng)控制輸入信號(hào)如圖4所示,系統(tǒng)的擾動(dòng)和估計(jì)如圖5所示,適應(yīng)度函數(shù)值的變化如圖6所示。 圖3表明,經(jīng)參數(shù)優(yōu)化后, 系統(tǒng)的跟蹤精度高,響應(yīng)速度快。圖4表明,系統(tǒng)的控制輸入量較小。圖5表明,當(dāng)參數(shù)b準(zhǔn)確時(shí),ESO的擾動(dòng)估計(jì)精度高,并且擾動(dòng)量的最大幅值接近300,遠(yuǎn)大于系統(tǒng)的穩(wěn)態(tài)輸出值。圖6表明,適應(yīng)度函數(shù)值快速達(dá)到最小值。
圖3 系統(tǒng)階躍跟蹤響應(yīng)曲線(b=120)Fig.3 System step tracking response curve(b=120)
圖4 系統(tǒng)的控制輸入信號(hào)(b=120)Fig.4 System control input signal(b=120)
圖5 系統(tǒng)的擾動(dòng)和估計(jì)(b=120)Fig.5 System disturbance and estimation(b=120)
圖6 適應(yīng)度函數(shù)值的變化(b=120)Fig.6 Fitness function change(b=120)
因此,當(dāng)b準(zhǔn)確時(shí),通過(guò)差分進(jìn)化算法,可取得ω0和ωc兩個(gè)參數(shù)全局的最優(yōu)值,并且收斂速度快。
假設(shè)系統(tǒng)的參數(shù)b無(wú)法精確得到,當(dāng)其估計(jì)值比b的真實(shí)值大50%時(shí),即b=180,通過(guò)經(jīng)驗(yàn)法調(diào)整兩個(gè)參數(shù)ω0和ωc,很容易使系統(tǒng)發(fā)散,調(diào)整出理想數(shù)值的難度較大。
經(jīng)過(guò)差分進(jìn)化算法的優(yōu)化,得到系統(tǒng)的最優(yōu)解為:ω0=411.041 0,ωc=635.140 5,此時(shí)的適應(yīng)度函數(shù)值為J=0.962 6。當(dāng)b=180時(shí),系統(tǒng)階躍跟蹤響應(yīng)曲線如圖7所示,系統(tǒng)控制輸入信號(hào)如圖8所示,系統(tǒng)的擾動(dòng)和估計(jì)如圖9所示,適應(yīng)度函數(shù)值的變化如圖10所示。
圖7 系統(tǒng)階躍跟蹤響應(yīng)曲線(b=180)Fig.7 System step tracking response curve(b=180)
圖8 系統(tǒng)的控制輸入信號(hào)(b=180)Fig.8 System control input signal(b=180)
圖9 系統(tǒng)的擾動(dòng)和估計(jì)(b=180)Fig.9 System disturbance and estimation(b=180)
圖10 適應(yīng)度函數(shù)值的變化(b=180)Fig.10 Fitness function change(b=180)
圖7表明,經(jīng)參數(shù)優(yōu)化后,系統(tǒng)的跟蹤精度仍較高,響應(yīng)速度快。圖8表明,系統(tǒng)的控制輸入量也較小。圖9表明,由于參數(shù)b對(duì)ESO性能的影響,當(dāng)參數(shù)b不準(zhǔn)確時(shí),ESO的擾動(dòng)估計(jì)精度出現(xiàn)一定的偏差,并且擾動(dòng)量的最大幅值接近300,遠(yuǎn)大于系統(tǒng)的穩(wěn)態(tài)輸出值。圖10表明,適應(yīng)度函數(shù)值也快速達(dá)到最小值。
此外,仿真實(shí)驗(yàn)表明,當(dāng)參數(shù)b的估計(jì)值比其真實(shí)值小時(shí),差分進(jìn)化算法也能取得兩個(gè)參數(shù)全局的最優(yōu)解,同時(shí)適應(yīng)度函數(shù)值快速達(dá)到最小值。
因此,當(dāng)b不準(zhǔn)確時(shí),通過(guò)差分進(jìn)化算法,也可取得兩個(gè)參數(shù)全局的最優(yōu)解,收斂的速度很快。
本文提出了采用差分進(jìn)化算法自動(dòng)優(yōu)化線性自抗擾控制兩個(gè)參數(shù)ω0和ωc,對(duì)于存在大擾動(dòng)量的二階非線性系統(tǒng),在參數(shù)b準(zhǔn)確和不準(zhǔn)確的兩種情況下,該差分進(jìn)化算法均能取得兩個(gè)參數(shù)全局的最優(yōu)解,同時(shí)適應(yīng)度函數(shù)值快速達(dá)到對(duì)應(yīng)的最小值,從而實(shí)現(xiàn)了較高的系統(tǒng)階躍響應(yīng)速度和跟蹤精度。對(duì)于三階以上的高階線性自抗擾控制系統(tǒng)參數(shù)優(yōu)化問(wèn)題,在修改算法的相關(guān)參數(shù)后,該差分進(jìn)化算法同樣適用。該算法收斂速度快,效率和精度高,具有重要的工程應(yīng)用價(jià)值。