(91388部隊(duì) 湛江 524000)
自抗擾控制(ADRC)算法是近年提出的一種非線性控制律,其核心思想是通過擴(kuò)張狀態(tài)觀測(cè)器(ESO)對(duì)系統(tǒng)總擾動(dòng)進(jìn)行實(shí)時(shí)估計(jì),并在對(duì)系統(tǒng)輸出產(chǎn)生影響之前對(duì)總擾動(dòng)實(shí)現(xiàn)主動(dòng)補(bǔ)償,由此將系統(tǒng)線性化為簡(jiǎn)單易控的純積分串聯(lián)型對(duì)象[1]。自抗擾控制器相比于傳統(tǒng)的PID控制器,具有不依賴于系統(tǒng)精確的數(shù)學(xué)模型,僅需系統(tǒng)少量信息,并具有響應(yīng)快、超調(diào)小、魯棒性強(qiáng)等特點(diǎn),已在各個(gè)領(lǐng)域得到廣泛應(yīng)用。經(jīng)典自抗擾控制器需要整定的參數(shù)比較多,許多參數(shù)整定方法主要依靠經(jīng)驗(yàn)摸索,所以其參數(shù)整定方法一直是人們研究的重點(diǎn)。近年來隨著智能算法的不斷涌現(xiàn),越來越多的學(xué)者將各種智能算法應(yīng)用于自抗擾控制器的參數(shù)整定,并取得了不錯(cuò)的效果。如文獻(xiàn)[2]則采用遺傳算法對(duì)控制器參數(shù)進(jìn)行優(yōu)化。文獻(xiàn)[3]嘗試將變尺度混沌優(yōu)化方法應(yīng)用于自抗擾控制參數(shù)的尋優(yōu)設(shè)計(jì)。文獻(xiàn)[4]將神經(jīng)網(wǎng)絡(luò)技術(shù)應(yīng)用于自抗擾控制參數(shù)的優(yōu)化中。文獻(xiàn)[5~6]針對(duì)線性化的自抗擾控制參數(shù),提出基于粒子群方法的自抗擾控制參數(shù)自調(diào)整算法。通過上述研究可以看出,自抗擾控制參數(shù)調(diào)整問題對(duì)其應(yīng)用領(lǐng)域的拓展十分重要,而且快速有效的自整定方法仍然是有待研究的熱點(diǎn)。
本文在基于以上研究的基礎(chǔ)上,采用智能算法中的螢火蟲算法對(duì)自抗擾控制器參數(shù)進(jìn)行整定,并采用Matlab仿真的方法驗(yàn)證其整定效果。
螢火蟲算法(GSO)是群集智能優(yōu)化算法領(lǐng)域的最新算法,它是由印度學(xué)者Krishnan和Ghose提出的一種群智能隨機(jī)優(yōu)化算法[7]。該算法從仿生學(xué)角度出發(fā),模擬自然界中的螢火蟲發(fā)光特性,通過熒光素值大小相互吸引對(duì)方,達(dá)到彼此交流信息的目的。實(shí)驗(yàn)表明,螢火蟲算法在尋找各種全局最優(yōu)解方面比遺傳算法等更有效,成功率更高。
螢火蟲算法的核心思想是被絕對(duì)亮度比他大的螢火蟲吸引,并根據(jù)位置更新公式更新自身位置。具體算法流程如圖1。
圖1 螢火蟲算法流程圖
以二階自抗擾控制器為例,其結(jié)構(gòu)簡(jiǎn)圖如圖2所示。自抗擾控制器由三部分組成:1)過渡過程(TD);2)擴(kuò)張狀態(tài)觀測(cè)器(ESO);3)非線性誤差反饋控制律(NLSEF)。
圖2 二階自抗擾控制器結(jié)構(gòu)圖
跟蹤微分器TD除了跟蹤參考輸入信號(hào)r,安排預(yù)期過渡過程外,其主要作用還在于柔化r的變化,以減少系統(tǒng)輸出的超調(diào),增強(qiáng)自抗擾控制器(ADRC)的魯棒性。TD 的輸入為 r,輸出 r1、r2。分別代表經(jīng)過柔化以后的各階導(dǎo)數(shù)。擴(kuò)張狀態(tài)觀測(cè)器ESO的作用是給出對(duì)象狀態(tài)變量估計(jì)值及系統(tǒng)模型和外擾實(shí)時(shí)和作用的估計(jì)值,這個(gè)實(shí)時(shí)估計(jì)值的補(bǔ)償作用能使被控對(duì)象化為“積分器串聯(lián)型”。非線性狀態(tài)誤差反饋NLSEF。ESO觀測(cè)之下產(chǎn)生的“擴(kuò)張狀態(tài)量”和經(jīng)過TD安排的過渡過程產(chǎn)生的過渡過程量的差值經(jīng)過NLSEF的運(yùn)算,就構(gòu)成了控制量y。
綜合以上論述,以二階自抗擾控制器為例,設(shè)有一二階受控系統(tǒng),其設(shè)定值為r(t),系統(tǒng)的控制量為u(t),系統(tǒng)輸出為y(t),外擾為w(t),則該系統(tǒng)的自抗擾控制算法為[8~9]
式中各函數(shù)及各符號(hào)的具體意義詳見參考文獻(xiàn)[10]。
本文主要以二階自抗擾控制器為研究對(duì)象,它的參數(shù)主要包括跟蹤微分器的r'h;擴(kuò)張狀態(tài)觀測(cè)器的 (α1'α2'β01'β02'β03'δ1);以及非線性狀態(tài)誤差反饋的 (k1'k2'α4'α5'δ2'b0);共有14個(gè)參數(shù)需要整定,需要整定的參數(shù)過多,無疑會(huì)使整個(gè)優(yōu)化過程及其復(fù)雜。經(jīng)查閱大量文獻(xiàn)及仿真確認(rèn),選擇(β01'β02'β03'δ1'δ2)共5個(gè)參數(shù)為整定參數(shù),其余參數(shù)依據(jù)經(jīng)驗(yàn)在優(yōu)化開始前確定,整個(gè)優(yōu)化過程中不再變化。
自抗擾控制器的三個(gè)部分是獨(dú)立工作的,因此本文采用獨(dú)立整定的原則,分別對(duì)三個(gè)組成部分的參數(shù)進(jìn)行整定。
本文采用螢火從算法來整定自抗擾控制器參數(shù),其本質(zhì)實(shí)在每個(gè)采樣周期對(duì)上文所述需整定的參數(shù)進(jìn)行設(shè)置和調(diào)整,目的是找到最優(yōu)的自抗擾控制器參數(shù)。其原理就是將每個(gè)螢火蟲個(gè)體對(duì)應(yīng)一組控制器參數(shù),然后在每次算法迭代中計(jì)算每個(gè)螢火蟲個(gè)體的控制量,并計(jì)算相應(yīng)的系統(tǒng)輸出和評(píng)價(jià)函數(shù)的適應(yīng)值。根據(jù)螢火蟲個(gè)體所處位置的優(yōu)劣選取此次迭代的最優(yōu)的螢火蟲個(gè)體,最后將得到的最優(yōu)螢火蟲個(gè)體所處的位置參數(shù)作為最后的控制器參數(shù)??刂葡到y(tǒng)如圖3所示。
圖3 螢火蟲算法優(yōu)化自抗擾控制器參數(shù)過程示意圖
鑒于自抗擾控制器參數(shù)整定可以看成是多維函數(shù)優(yōu)化問題,螢火從算法采用實(shí)數(shù)編碼的方式。令螢火蟲種群規(guī)模為N需要整定的控制器參數(shù)共有5個(gè),則問題域的維數(shù)為5。因此優(yōu)化自抗擾控制器參數(shù)的螢火蟲種群可用一個(gè)N*5的矩陣表示。
為了獲得滿意的過渡過程動(dòng)態(tài)特性,采用誤差絕對(duì)值時(shí)間積分作為待優(yōu)化的最小目標(biāo)函數(shù),為了防止控制能量過大,在目標(biāo)函數(shù)中加入控制輸入的平方項(xiàng)[11]:
式中,e(t)為系統(tǒng)誤差,u(t)為控制器輸入,w為權(quán)值。
選取的被控對(duì)象為式(3)[12]:
本文改進(jìn)了傳統(tǒng)的自抗擾控制器參數(shù)優(yōu)化方法,采用螢火蟲算法,分析了自抗擾參數(shù)的整定原理,確定了整定原則,建立了螢火蟲算法的整定方法。最后利用Matlab進(jìn)行了仿真計(jì)算。仿真結(jié)果表明,利用螢火蟲算法優(yōu)化自抗擾控制器參數(shù)的階躍響應(yīng)響應(yīng)時(shí)間短,基本沒有超調(diào),跟蹤過程較平穩(wěn),可以說采用螢火蟲算法優(yōu)化自抗擾控制控制器參數(shù)是確實(shí)可行的。
根據(jù)調(diào)試經(jīng)驗(yàn)設(shè)置抗擾控制器的參數(shù)如下:r=800,h=1,α1=1,α2=0.5,b0=10,α3=0.25,α4=0.75,α5=1.25。采樣時(shí)間設(shè)為0.01s,輸入指令設(shè)為系統(tǒng)階躍信號(hào)。利用Matlab進(jìn)行仿真。優(yōu)化后得到的性能指標(biāo)和控制器參數(shù)為
整定過程中性能指標(biāo)J變化如圖4所示,采用優(yōu)化后的參數(shù)的階躍響應(yīng)如圖5所示。
由仿真結(jié)果可以看出利用螢火蟲算法優(yōu)化自抗擾控制器參數(shù)的階躍響應(yīng)響應(yīng)時(shí)間短,基本沒有超調(diào),跟蹤過程較平穩(wěn),仿真結(jié)果說明采用螢火蟲算法優(yōu)化自抗擾控制器參數(shù)是確實(shí)可行的。
圖4 性能指標(biāo)J的優(yōu)化過程
圖5 螢火蟲算法優(yōu)化后的自抗擾控制器階躍響應(yīng)