吳 敏,肖志堅(jiān),尚 猛
(1.浙江東方職業(yè)技術(shù)學(xué)院 數(shù)字工程學(xué)院,浙江 溫州 325000;2.嶺南大學(xué) 經(jīng)營(yíng)學(xué)院,韓國(guó) 慶山 385141)
旋轉(zhuǎn)倒立擺是一類(lèi)具有強(qiáng)耦合性的非線(xiàn)性系統(tǒng),通常作為各類(lèi)控制算法的檢驗(yàn)裝置。由旋轉(zhuǎn)倒立擺的運(yùn)動(dòng)方式與機(jī)械臂旋轉(zhuǎn)軸運(yùn)動(dòng)和火箭飛行原理有很大的相同之處,因此對(duì)于倒立擺的控制策略研究有著很深遠(yuǎn)的工程意義[1]。旋轉(zhuǎn)倒立擺通常由兩個(gè)可以自由移動(dòng)的旋轉(zhuǎn)桿組成,具有兩個(gè)自由度且兩個(gè)自由度之間具有很強(qiáng)的耦合性和非線(xiàn)性,因此對(duì)于控制算法提出了更高的控制要求[2]。王浩等提出一種分?jǐn)?shù)階PID的控制策略[3],解決了傳統(tǒng)PID控制精度不高的問(wèn)題。彭繼慎等提出一種倒立擺的神經(jīng)網(wǎng)絡(luò)自適應(yīng)滑??刂芠4],有效的提高了控制精度,但對(duì)于控制過(guò)程中的外界擾動(dòng)影響,未做很好的處理。因此本文提出一種基于自抗擾的控制策略。
自抗擾控制[5](Active Disturbance Rejection Control,ADRC)是韓京清教授提出的一種具有強(qiáng)抗擾動(dòng)能力的控制器,其優(yōu)點(diǎn)在于控制過(guò)程中不依賴(lài)被控對(duì)象精確的數(shù)學(xué)模型,對(duì)于處理具有強(qiáng)耦合非線(xiàn)性的控制模型具有較強(qiáng)的控制精度。但缺點(diǎn)在于,非線(xiàn)性自抗擾控制器具有多個(gè)控制器參數(shù),且參數(shù)之間具有很強(qiáng)的耦合性,在實(shí)際控制過(guò)程中,控制參數(shù)整定的是否精確很大程度的決定了自抗擾控制器的控制精度。因此為了使自抗擾控制器可以更廣泛的應(yīng)用與實(shí)際控制中,國(guó)內(nèi)外越來(lái)越多的研究學(xué)者提出了多種自抗擾控制器參數(shù)的整定方法。劉福才等通過(guò)混沌粒子群算法對(duì)自抗擾控制器進(jìn)行參數(shù)整定,很大程度提高了控制器的控制精度[6]。周宜然等提出了一種改進(jìn)的遺傳算法,避免了遺傳算法陷入局部最優(yōu)的問(wèn)題,提高了控制器的抗擾動(dòng)能力[7]。劉曉麗等提出了一種基于蟻群優(yōu)化算法的自抗擾參數(shù)整定方法,但算法在迭代過(guò)程中會(huì)出現(xiàn)早熟收斂的情況,在一定程度上會(huì)對(duì)控制器的控制精度有所影響[8]。肖靜等提出一種基于免疫自整定的ADRC研究[9]。劉朝華等提出一種基于免疫雙態(tài)微粒群的混沌系統(tǒng)自抗擾控制[10]。以上方法均在一定程度上提高了自抗擾控制器的控制精度,有效的整定了控制器參數(shù),但也存在一些不足。因此本文提出一種基于改進(jìn)鯊魚(yú)優(yōu)化算法的自抗擾控制器參數(shù)整定策略。
針對(duì)傳統(tǒng)鯊魚(yú)優(yōu)化算法[11]易陷入局部最優(yōu)的問(wèn)題,本文通過(guò)對(duì)立學(xué)習(xí)初始化和均勻變異策略對(duì)鯊魚(yú)優(yōu)化算法進(jìn)行改進(jìn),提高了算法的收斂速度和收斂精度,并通過(guò)改進(jìn)后的鯊魚(yú)優(yōu)化算法在線(xiàn)整定自抗擾控制器控制參數(shù),提高了控制器的控制精度和抗擾動(dòng)能力。最后以旋轉(zhuǎn)倒立擺為被控對(duì)象,驗(yàn)證了本文所提方法的有效性。
自抗擾控制器的主要有三個(gè)組成部分,分別為微分跟蹤器(Tracking Differentiator,TD)、非線(xiàn)性反饋控制率(Nonlinear State Error Feedback Control Law,NLSEF)以及自抗擾控制器的核心組成部分,擴(kuò)張狀態(tài)觀(guān)測(cè)器(Extended State Observe,ESO)。以旋轉(zhuǎn)倒立擺為被控對(duì)象,其控制結(jié)構(gòu)如圖1所示。
圖1 旋轉(zhuǎn)倒立擺自抗擾控制框圖
圖中θ和ψ分別為旋轉(zhuǎn)倒立擺的擺角和轉(zhuǎn)角。其中控制倒立擺擺角和轉(zhuǎn)角的自抗擾控制器結(jié)構(gòu)相同,因此以控制擺角的自抗擾控制器為例,其數(shù)學(xué)模型為
(1)
式中,θ1(k)為擺角角度,θ2(k)為擺角速度。同理,對(duì)于轉(zhuǎn)角的TD而言,ψ1(k)為轉(zhuǎn)角角度,ψ2(k)為轉(zhuǎn)角速度。r為快慢因子,h為步長(zhǎng)。ESO估計(jì)被控對(duì)象的各階狀態(tài)變量z1,z1,z4,z5以及總擾動(dòng)的實(shí)時(shí)作用量z3和z6,同樣以擺角的ESO為例,其數(shù)學(xué)表達(dá)式如下所示:
(2)
式中,β01,β02和β03為修正系數(shù),很大程度影響ESO的觀(guān)測(cè)效果。NLSEF對(duì)誤差eθ1和eθ2進(jìn)行非線(xiàn)性組合,并輸出控制信號(hào)uθ0,對(duì)誤差eψ1和eψ2進(jìn)行非線(xiàn)性組合,并輸出控制信號(hào)uψ0。以擺角的NLSEF為例,其數(shù)學(xué)表達(dá)式為
(3)
式中,β1和β2為控制系數(shù),很大程度影響ADRC的控制精度。fal(·)函數(shù)為一類(lèi)非線(xiàn)性函數(shù),代表輸出誤差校正率,其表達(dá)式為
(4)
因此,對(duì)于擺角的ADRC而言,需要整定的參數(shù)有β01、β02、β03、β1和β2。對(duì)于轉(zhuǎn)角的ADRC而言,需要整定的參數(shù)有β04、β05、β06、β3和β4。通過(guò)大量實(shí)驗(yàn)表明,其余參數(shù)對(duì)控制器精度影響不大,因此可人工調(diào)節(jié)。
基本鯊魚(yú)優(yōu)化算法是模擬鯊魚(yú)覓食所提出的一類(lèi)群智能優(yōu)化算法。在基本鯊魚(yú)優(yōu)化算法中,每一條受傷流血的魚(yú)均可視為鯊魚(yú)的獵物,由于每條受傷的魚(yú)的位置均不固定,因此鯊魚(yú)優(yōu)化算法在可行域內(nèi)的種群初始化行為表現(xiàn)為隨機(jī)性,其公式為
(5)
(6)
鯊魚(yú)在游動(dòng)過(guò)程中會(huì)存在一定的慣性,因此鯊魚(yú)每個(gè)階段的速度均取決于上一個(gè)階段的速度,并且鯊魚(yú)在游動(dòng)過(guò)程中會(huì)保持在一定的速度范圍內(nèi),因此定義鯊魚(yú)優(yōu)化算法每個(gè)維度的速度更新公式為
(7)
其中,i=(1,2,…,NP);j=(1,2,…,ND);OF為目標(biāo)函數(shù)。上標(biāo)k表示鯊魚(yú)當(dāng)前的運(yùn)動(dòng)階段。由于鯊魚(yú)可能無(wú)法到達(dá)每個(gè)階段的最大速度,因此設(shè)定ηt∈[0,1]。R1和R2為均勻分布在[0,1]之間的隨機(jī)數(shù)。αt為慣性系數(shù),是[0,1]之間的隨機(jī)數(shù)并在階段t內(nèi)為恒定值。βt為t階段的速度限制率。
(8)
除此之外,鯊魚(yú)還會(huì)通過(guò)特有的旋轉(zhuǎn)移動(dòng)進(jìn)行獵食,其運(yùn)動(dòng)軌跡不一定為一個(gè)標(biāo)準(zhǔn)圓形。從優(yōu)化角度來(lái)看,鯊魚(yú)的旋轉(zhuǎn)前進(jìn)可以使鯊魚(yú)在每個(gè)階段實(shí)現(xiàn)本地搜索。以此來(lái)找到更好的候選解決方案。這種位置的搜索公式為
(9)
式中,m為位置搜索中每個(gè)階段的獵物的數(shù)量。鯊魚(yú)會(huì)向具有更強(qiáng)氣味的獵物進(jìn)行移動(dòng),并繼續(xù)搜索路徑,這一特點(diǎn)在SSO算法實(shí)現(xiàn)如下:
(10)
首先,對(duì)于群智能優(yōu)化算法而言,種群初始化范圍的大小在一定程度上決定了算法的尋優(yōu)精度。由于傳統(tǒng)鯊魚(yú)優(yōu)化算法在初始階段并沒(méi)有任何對(duì)全局最優(yōu)解的先驗(yàn)認(rèn)識(shí),導(dǎo)致初始化階段的鯊魚(yú)種群均勻分布在搜索空間內(nèi)。然傳統(tǒng)鯊魚(yú)優(yōu)化算法的尋優(yōu)策略是將上一代的最優(yōu)個(gè)體保存到下一代種群當(dāng)中,此時(shí)若算法隨機(jī)初始化中的優(yōu)良個(gè)體保存數(shù)量較少,會(huì)在很大程度上影響算法的收斂精度和收斂速度。因此本文采用對(duì)立學(xué)習(xí)策略對(duì)傳統(tǒng)鯊魚(yú)優(yōu)化算法進(jìn)行初始化
對(duì)立學(xué)習(xí)策略是由Tizhoosh首次提出,其優(yōu)點(diǎn)在于算法初始化時(shí),通過(guò)產(chǎn)生當(dāng)前個(gè)體以及與其對(duì)立的個(gè)體,并將當(dāng)前個(gè)體和對(duì)立個(gè)體進(jìn)行適應(yīng)度值對(duì)比,篩選適應(yīng)度值較好的個(gè)體作為初始種群個(gè)體,很大程度的提高了算法的種群多樣性,從而提高了算法的搜索效率。
設(shè)在定義域[a,b]內(nèi)存在實(shí)數(shù)x,則存在實(shí)數(shù)x的對(duì)立點(diǎn)為x*,x*=a+b-x。因此鯊魚(yú)優(yōu)化算法隨機(jī)初始化的對(duì)立初始化公式為
(11)
式中,i=1,2,…NP。由此基于對(duì)立學(xué)習(xí)的鯊魚(yú)優(yōu)化算法初始化步驟如下:
(3)將兩個(gè)種群合并,并將合并后的 個(gè)個(gè)體進(jìn)行適應(yīng)度值計(jì)算,并比較排序,篩選出適應(yīng)度值最大的NP個(gè)個(gè)體最為初始化種群。
其次為了避免傳統(tǒng)鯊魚(yú)優(yōu)化算法因早熟收斂陷入局部最優(yōu)影響尋優(yōu)精度的問(wèn)題,本文通過(guò)自適應(yīng)變異策略對(duì)算法的全局搜索方式進(jìn)行改進(jìn)。目的是當(dāng)算法陷入局部最優(yōu)時(shí)會(huì)對(duì)粒子產(chǎn)生擾動(dòng)力,幫助算法跳出局部最優(yōu),提高算法的全局搜索能力和收斂精度。其變異公式為
xi(t)=(1+β)xi(t)
(12)
式中,β為[0,1]之間服從均勻分布的隨機(jī)數(shù)。
具體的改進(jìn)算法的計(jì)算步驟如下所述:
Step1:初始化參數(shù):即鯊魚(yú)種群規(guī)模大小NP,最大迭代次數(shù)tmax。
Step2:在可行域空間內(nèi)初始化鯊魚(yú)種群的位置,再利用對(duì)立學(xué)習(xí)策略生成對(duì)立種群。
Step3:合并兩個(gè)種群并計(jì)算每一頭鯊魚(yú)相應(yīng)的適應(yīng)度值,從2NP個(gè)個(gè)體中選擇適應(yīng)度值較大的NP個(gè)個(gè)體作為初始種群;
Step4:計(jì)算出NP個(gè)個(gè)體適應(yīng)度值的大小,找出適應(yīng)度值最小的個(gè)體位置作為最優(yōu)位置。
Step5:依照式(7)和式(10)對(duì)鯊魚(yú)優(yōu)化算法的速度和位置進(jìn)行更新。
Step6:依照式(12)對(duì)粒子進(jìn)行均勻變異操作。
Step7:判斷是若達(dá)到終止條件,是則輸出最優(yōu)個(gè)體,即算法找到的最優(yōu)解;否則,返回Step4。
為了驗(yàn)證本文所提改進(jìn)鯊魚(yú)優(yōu)化算法的高效性,本文以12個(gè)基準(zhǔn)測(cè)試函數(shù)為評(píng)價(jià)指標(biāo),對(duì)比本文所提ISSO算法、CPSO算法[6]、改進(jìn)遺傳算法[7]和IBPSO[9]實(shí)驗(yàn)所得結(jié)果,其中為保證實(shí)驗(yàn)公平性,4種算法種群規(guī)模均為50,迭代次數(shù)均為100,4種算法每個(gè)測(cè)試函數(shù)獨(dú)立運(yùn)行50次取平均值和最小值,其中測(cè)試函數(shù)如表1所示,具體測(cè)試結(jié)果如表2所示,最優(yōu)解用加粗字體表示。其中測(cè)試函數(shù)f1~f4為單峰函數(shù),維數(shù)為30,f5~f8為多峰函數(shù),維數(shù)為30,f9~f12為固定維函數(shù),維數(shù)分別為4,2,2,2。
表1 12個(gè)基準(zhǔn)測(cè)試函數(shù)
表2 12個(gè)測(cè)試函數(shù)的測(cè)試結(jié)果對(duì)比
由表2可得,對(duì)于單峰測(cè)試函數(shù)f1~f4而言,本文所提ISSO算法所求解的平均值和最小值相較其他3種算法所求解的平均值和最小值更小,說(shuō)明ISSO算法具有更高的搜索精度,算法整體性能更加穩(wěn)定。對(duì)于多峰函數(shù)f5~f8而言,在其他3種優(yōu)化算法均陷入局部最優(yōu)時(shí),仍具有較高的搜索精度。說(shuō)明本文所提ISSO算法的整體性能要優(yōu)于其他3種算法。對(duì)于固定維函數(shù)f9~f12而言,優(yōu)于測(cè)試函數(shù)維數(shù)整體降低,導(dǎo)致所求問(wèn)題的復(fù)雜度整體降低,因此4種算法的收斂精度均有所提升,但對(duì)于測(cè)試函數(shù)f9和f10而言,本文所提ISSO算法可以取得更小的最小值,因此驗(yàn)證了本文所提ISSO算法的穩(wěn)定性要更高。整體而言,本文所提ISSO算法具有較高收斂精度和穩(wěn)定性,算法整體性能較傳統(tǒng)SSO優(yōu)化算法有較大提高,可以用于自抗擾控制器參數(shù)整定。
旋轉(zhuǎn)倒立擺作為一類(lèi)單輸入多輸出的強(qiáng)耦合非線(xiàn)性系統(tǒng),很多控制理論通過(guò)以其作為被控對(duì)象,驗(yàn)證控制器的控制效果,是驗(yàn)證自動(dòng)控制理論的重要途徑之一,因此本文以旋轉(zhuǎn)倒立擺作為被控對(duì)象,驗(yàn)證本文所提改進(jìn)鯊魚(yú)優(yōu)化算法的自抗擾控制器的控制效果。其中旋轉(zhuǎn)倒立擺的非線(xiàn)性模型如下所示:
(13)
式中,m1=0.2 kg為旋轉(zhuǎn)桿質(zhì)量;R1=0.2 m為旋轉(zhuǎn)桿長(zhǎng)度;L1=0.1 m為旋轉(zhuǎn)桿到軸心的距離;電機(jī)轉(zhuǎn)矩Km=0.0236 n·m/v;f1=0.01 n·m·s為旋轉(zhuǎn)桿繞軸心轉(zhuǎn)動(dòng)的摩擦力矩系數(shù);旋轉(zhuǎn)桿繞軸心旋轉(zhuǎn)的轉(zhuǎn)動(dòng)慣量J1=0.004 kg·m2;擺動(dòng)桿質(zhì)量為m2=0.52 kg;R2=0.25 m為擺動(dòng)桿長(zhǎng)度;擺動(dòng)桿到軸心的距離為L(zhǎng)2=0.12 m;電機(jī)速率為Ke=0.2865 v·s;f2=0.001 n·m·s為擺動(dòng)桿繞軸心轉(zhuǎn)動(dòng)的摩擦力矩系數(shù);J2=0.001 kg·m2為擺動(dòng)桿繞軸心旋轉(zhuǎn)的轉(zhuǎn)動(dòng)慣量。
本文將ITAE指標(biāo)作為評(píng)價(jià)函數(shù),其數(shù)學(xué)表達(dá)式如式(14)所示:
(14)
因此基于改進(jìn)鯊優(yōu)化算法自抗擾倒立擺的控制流程圖如圖2所示。
圖2 基于改進(jìn)鯊魚(yú)優(yōu)化算法的自抗擾旋轉(zhuǎn)倒立擺控制框圖
通過(guò)ISSO優(yōu)化后的自抗擾控制參數(shù)如表3所示。
表3 自抗擾控制器參數(shù)
最后本文以改進(jìn)鯊魚(yú)優(yōu)化算法的自抗擾控制器(ISSO-ADRC)對(duì)旋轉(zhuǎn)倒立擺進(jìn)行運(yùn)行控制,并通過(guò)對(duì)比改進(jìn)分?jǐn)?shù)階PID控制器[3](IMOPSO-FOPID),傳統(tǒng)自抗擾控制器(ADRC)[12]的控制效果,驗(yàn)證本文所提控制策略的有效性。其中擺角和轉(zhuǎn)角的期望輸入均為0,目的是當(dāng)旋轉(zhuǎn)倒立擺起擺后,可以使旋轉(zhuǎn)桿轉(zhuǎn)角和擺動(dòng)桿擺角的角度均為0。具體實(shí)驗(yàn)結(jié)果如圖3~圖6所示。
圖3~圖4為旋轉(zhuǎn)倒立擺擺角和轉(zhuǎn)角的動(dòng)態(tài)響應(yīng)曲線(xiàn),從圖中可得,對(duì)比IMOPSO-FOPID和傳統(tǒng)ADRC的控制效果,本文所提ISSO-ADRC控制誤差最小,超調(diào)最小且可以更快到達(dá)穩(wěn)態(tài)。因此本文所提ISSO-ADRC具有更高的控制精度。
圖3 擺動(dòng)桿擺角響應(yīng)曲線(xiàn)
圖4 旋轉(zhuǎn)桿轉(zhuǎn)角響應(yīng)曲線(xiàn)
圖5 加入擾動(dòng)后的擺桿擺角響應(yīng)曲線(xiàn)
為了驗(yàn)證所提控制算法的有效性,當(dāng)t=2 s時(shí)加入一個(gè)幅值為0.1,頻率為10 Hz的正弦轉(zhuǎn)矩?cái)_動(dòng),從圖5~圖6中可得,現(xiàn)較其他兩種控制方法,本文所提ISSO-ADRC控制策略受擾動(dòng)影響更小,可以更快對(duì)擾動(dòng)進(jìn)行觀(guān)測(cè)補(bǔ)償,使系統(tǒng)盡快穩(wěn)定。因此,本文所提ISSO-ADRC控制策略的魯棒性更強(qiáng),具有較好的抗擾動(dòng)能力。
本文首先針對(duì)傳統(tǒng)控制策略難以有效對(duì)旋轉(zhuǎn)倒立擺進(jìn)行位置平衡控制的問(wèn)題,提出一種自抗擾控制策略。其次針對(duì)傳統(tǒng)自抗擾控制器由于耦合參數(shù)過(guò)多難以整定以至于影響控制器精度的問(wèn)題,提出一種基于改進(jìn)鯊魚(yú)優(yōu)化算法的整定方法,并通過(guò)對(duì)立學(xué)習(xí)策略和均勻變異對(duì)鯊魚(yú)優(yōu)化算法進(jìn)行改進(jìn),提高了算法的種群多樣性和收斂精度,改善了算法的全局收斂能力,并將改進(jìn)后的鯊魚(yú)優(yōu)化算法在線(xiàn)整定自抗擾控制器參數(shù)。最后以經(jīng)典的旋轉(zhuǎn)倒立擺為被控對(duì)象,通過(guò)對(duì)比試驗(yàn),驗(yàn)證了本文所提基于改進(jìn)鯊魚(yú)優(yōu)化算法自抗擾控制器具有較高的控制精度和抗擾動(dòng)能力。