蘇攀 張偉 李強(qiáng) 李世港
摘 要:PID控制是典型的工業(yè)控制,其核心內(nèi)容是PID參數(shù)優(yōu)化。為解決參數(shù)優(yōu)化時不能確保得到最佳性能且耗時問題,通過改進(jìn)粒子群算法學(xué)習(xí)因子,研究基于相等隨機(jī)因子粒子群算法的PID參數(shù)優(yōu)化,將其與標(biāo)準(zhǔn)的粒子群算法及迭代次數(shù)線性變化的學(xué)習(xí)因子進(jìn)行比較。仿真結(jié)果表明,該算法性能指標(biāo)tr、ts、δ%分別為1.782、3.285、14.07%,兩種對比算法的tr、ts、δ%分別為1.804、4.825、24.33%和1.802、4.135、16.56%,改進(jìn)算法提高了PID參數(shù)的穩(wěn)定性、收斂速度和搜索精度,性能指標(biāo)更優(yōu)。
關(guān)鍵詞:粒子群算法;參數(shù)優(yōu)化;PID;線性變化;學(xué)習(xí)因子
DOI:10. 11907/rjdk. 201014
中圖分類號:TP301文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2020)010-0094-04
Abstract: PID control is a typical industrial control, and its core content is PID parameter optimization. In order to solve the problem that PID parameter optimization cannot ensure the best performance and time consumption, a PID parameter optimization based on equal random factor particle swarm optimization algorithm is proposed by improving the learning factor of particle swarm optimization algorithm. Compared with the standard particle swarm optimization algorithm and the particle swarm optimization algorithm with linear learning factor of iteration times, the simulation results show that the performance indexes tr, ts, δ% are 1.782, 3.285 and 14.07%, respectively, which are better than the tr, ts, δ%: 1.804, 4.825, 24.33% and 1.802, 4.135 and 16.56% of the comparison algorithms. Therefore, the improved algorithm proposed can improve the stability of PID parameter optimization, save time, and obtain better performance indicators. At the same time, the convergence speed and search accuracy are improved, which proves the superiority of this algorithm.
Key Words: particle swarm optimization algorithm; parameter optimization; PID; linear change; learning factor
0 引言
PID控制器誕生至今已有70余年,因其結(jié)構(gòu)簡單、穩(wěn)定性好、魯棒性強(qiáng),在工業(yè)領(lǐng)域廣泛應(yīng)用,大部分工業(yè)控制的反饋回路都具有 PID 結(jié)構(gòu)[1-2]。傳統(tǒng) PID參數(shù)優(yōu)化一般采用 Z-N 法[3]、C-C整定公式法[4]、工業(yè)經(jīng)驗等,實踐表明這些方法獲得的參數(shù)并不是最佳參數(shù),改善空間還較大。
隨著智能算法的迅猛發(fā)展,涌現(xiàn)出許多參數(shù)優(yōu)化方法。孟桂艷[5]將一種改進(jìn)的果蠅優(yōu)化算法應(yīng)用在PID參數(shù)整定上以提高果蠅個體尋優(yōu)能力,改善算法的局部收斂狀況;張連強(qiáng)等[6]將融入模擬退火思想的人群搜索算法應(yīng)用在PID參數(shù)優(yōu)化上。改進(jìn)算法依據(jù)Metropolis準(zhǔn)則選擇最優(yōu)解,在一定程度上避免算法過早熟及陷入局部極值,提升算法全局搜索能力;PBOM OLIVEIRA等[7]將引力捜索算法應(yīng)用到PID參數(shù)整定上,解決跟蹤目標(biāo)設(shè)定點及干擾控制器問題;Jimenezi等[8]提出將遺傳算法用于PID參數(shù)優(yōu)化,在無源光網(wǎng)絡(luò)管理條件下實驗,表明此算法能節(jié)省調(diào)整時間,提高控制器效率及魯棒性。
以上方法各有特色,但存在缺陷,如易陷于局部最優(yōu)點,或使用起來過于復(fù)雜等。粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)是基于群體智能的全局優(yōu)化算法,由Kennedy等[9]提出。該算法受到飛鳥集群規(guī)律啟示, 在多維空間內(nèi)構(gòu)造“粒子群”進(jìn)行尋優(yōu)。算法操作簡單,依賴參數(shù)少,應(yīng)用廣泛。本文結(jié)合PID參數(shù)優(yōu)化,在PSO基礎(chǔ)上對學(xué)習(xí)因子進(jìn)行改進(jìn),并將改進(jìn)后的算法應(yīng)用到PID參數(shù)整定中。將其與標(biāo)準(zhǔn)PSO和Ratnawecra[10]提出的線形調(diào)整學(xué)習(xí)因子取值比較,以證明改進(jìn)算法的優(yōu)越性。
1 PID參數(shù)優(yōu)化
1.1 PID控制器
將比例(P)、積分(I)和微分(D)3種環(huán)節(jié)并聯(lián),可構(gòu)成比列積分微分控制器,簡稱PID控制器[11]。設(shè)定這3個環(huán)節(jié)參數(shù)可控制被控對象。
其中,[u(t)]為控制器輸出,[e(t)]為系統(tǒng)給定與輸出量的偏差,[Ti]為積分時間常數(shù),[TD]為微分時間常數(shù),[KP]為比例系數(shù),[KI]為積分系數(shù),[KD]為微分系數(shù)。
比例環(huán)節(jié)反映系統(tǒng)偏差,通過調(diào)節(jié)能夠提高系統(tǒng)靈敏度及系統(tǒng)穩(wěn)定性;積分環(huán)節(jié)作用是消除系統(tǒng)穩(wěn)態(tài)誤差,改善系統(tǒng)無差度;微分環(huán)節(jié)反映偏差信號變化規(guī)律,依據(jù)這些規(guī)律進(jìn)行超前控制調(diào)節(jié),改善系統(tǒng)能動性。PID參數(shù)優(yōu)化實際是對3個系數(shù)進(jìn)行優(yōu)化,如果參數(shù)優(yōu)化不合理,不僅不能達(dá)到最佳控制效果,反而適得其反。本文采用改進(jìn)的PSO對PID進(jìn)行參數(shù)優(yōu)化,效果較好。
1.2 標(biāo)準(zhǔn)粒子群算法
PSO是通過模擬鳥群覓食行為發(fā)展的一種基于群體協(xié)作的隨機(jī)搜索算法,采用速度—位置模型[12]。PSO首先在D維空間中隨機(jī)初始化一組粒子,這些粒子擁有各自的速度與位置,然后通過迭代方式尋找最優(yōu)解。每次迭代過程中粒子更新主要依據(jù)兩個因素:①個體極值點,即粒子自身尋得的最優(yōu)解[pbest];②全局極值點,即粒子群尋得的最優(yōu)解[gbest]。粒子群速度—位置更新公式如下:
式(3)中,r1、r2是在(0,1)區(qū)間的隨機(jī)數(shù);c1、c2為學(xué)習(xí)因子,通常c1=2,c2=2。算法根據(jù)式(3)、式(4)循環(huán)往復(fù)更新粒子的速度、位置,直到達(dá)到最大循環(huán)次數(shù),或者達(dá)到預(yù)定的最小適應(yīng)度閾值,此時的結(jié)果即為最優(yōu)解。
1.3 改進(jìn)粒子群算法
1.3.1 學(xué)習(xí)因子研究
根據(jù)式(3)可知,粒子速度更新主要由3部分決定[13]:①Vtid,表示粒子的當(dāng)前速度,換言之是粒子更新前的速度;②c1r1(Ptid-Xtid),表示粒子的自身思考,這部分由學(xué)習(xí)因子c1、隨機(jī)變量r1、當(dāng)前粒子的位置和粒子最優(yōu)位置構(gòu)成,由此可見,c1是調(diào)節(jié)粒子運動到個體極值點的步長;③c2r2? ?(Ptgd-Xtid),這部分表示粒子與整個粒子群之間的信息交流,也就是社會認(rèn)知,是由c2、r2、當(dāng)前粒子位置以及整個粒子群的最優(yōu)位置構(gòu)成。同理可知,c2是調(diào)節(jié)粒子向全局極值點運動的步長。
所以在PSO中, 學(xué)習(xí)因子c1 、c2反映了粒子群之間的信息交流;與此同時,c1、c2也決定了粒子自身經(jīng)驗信息及其它粒子經(jīng)驗信息對粒子運動軌跡的影響;c1取值較大,則粒子會在局部過多徘徊; c2值較大會使粒子早熟,陷入局部最優(yōu)[14]。
Ratnawecra等[10]提出的改進(jìn)方法將PSO學(xué)習(xí)因子進(jìn)行線形調(diào)整取值,改進(jìn)方法如下:
采用隨迭代次數(shù)線形變化方法,c1取值從2.5~0.5線形遞減;c2取值從0.5~2.5線形遞增。陳貴敏[15]提出將凹函數(shù)方法用于學(xué)習(xí)因子改進(jìn), 此方法目的是在早期時加快c1與c2的變化速度, 使算法能較快地進(jìn)入局部搜索, 實驗結(jié)果證明該方法可行。但這些方法缺少多樣性,易過早收斂于局部極值,效果不明顯。基于此,本文提出基于相等隨機(jī)學(xué)習(xí)因子的粒子群算法,試驗證明該算法效果較好。
1.3.2 學(xué)習(xí)因子改進(jìn)
本文提出基于相等隨機(jī)的學(xué)習(xí)因子改進(jìn)方法。令c1=c2=k,k取0.5、0.7、0.9、1.1、1.3、1.5、1.7、1.9、2.0九組數(shù)據(jù),按順序依次對3個不同的經(jīng)典函數(shù)進(jìn)行尋優(yōu)運算,然后對實驗結(jié)果進(jìn)行分析。選取相對較佳的尋優(yōu)結(jié)果作為學(xué)習(xí)因子隨機(jī)區(qū)間,豐富粒子多樣性,改善過早熟、陷入局部極值的情況,從而獲得較好的收斂性。
采取Rastrigin、Griewank以及Rosenbrock經(jīng)典測試函數(shù)對學(xué)習(xí)因子進(jìn)行依次尋優(yōu),測試函數(shù)描述如表1所示。
九組數(shù)據(jù)對經(jīng)典函數(shù)進(jìn)行尋優(yōu),迭代次數(shù)設(shè)為1 000,種群規(guī)模為30,尋優(yōu)次數(shù)50次,求平均最優(yōu)值。通過仿真實驗得到表2結(jié)果。
將以上數(shù)據(jù)繪制成散點圖進(jìn)行觀察:
對3個經(jīng)典函數(shù)尋優(yōu)結(jié)果及散點圖進(jìn)行分析:①對于Rastrigin函數(shù),當(dāng)c1=c2=[1.1,2.0]時,尋優(yōu)結(jié)果相對精度較高;②對于Griewank函數(shù),當(dāng)c1=c2=[0.9,2.0]時,尋優(yōu)結(jié)果相對精度較高;③對于Rosenbrock函數(shù),當(dāng)c1=c2=[1.3,2.0]時,尋優(yōu)結(jié)果相對精度較高。
基于3個測試函數(shù)的實驗結(jié)果對學(xué)習(xí)因子進(jìn)行改進(jìn),提出一種相等隨機(jī)學(xué)習(xí)因子策略。即c1=c2,且c1、c2隨機(jī)均勻分布在[1.3,2.0]區(qū)間,增加群體多樣性。其表達(dá)式如下:
將式(7)代入式(3),得到如下表達(dá)式:
式(8)與式(4)形成本文改進(jìn)的PSO速度—位置更新公式。
1.4 參數(shù)優(yōu)化基本思想
本文基于改進(jìn)的PSO進(jìn)行PID參數(shù)優(yōu)化,其本質(zhì)是尋找最優(yōu)的一組[KP KI KD][16],換言之就是取合適的系統(tǒng)評價指標(biāo)作為適應(yīng)度函數(shù),使粒子群在參數(shù)空間里尋找到最優(yōu)值,使系統(tǒng)達(dá)到最優(yōu)控制性能。基于相等隨機(jī)學(xué)習(xí)因子PSO的PID控制結(jié)構(gòu)如圖4所示。
對PID控制器性能進(jìn)行評價時,要求所有指標(biāo)都達(dá)到最佳效果是不可能的,每個參數(shù)之間相互影響,難以全部最優(yōu),故需要采用能體現(xiàn)綜合性能指標(biāo)最優(yōu)的系統(tǒng)偏差與時間相聯(lián)系的性能指標(biāo)。在眾多綜合性能指標(biāo)中,本文選取時間乘絕對偏差積分準(zhǔn)則(ITAE)作為改進(jìn)算法的適應(yīng)度函數(shù)[17-18]:
2 仿真實驗
2.1 仿真實驗流程
采用MATLAB進(jìn)行PID參數(shù)優(yōu)化仿真,基于相等隨機(jī)因子算法流程如下:①初始化粒子群各參數(shù),并確定粒子速度位置;②評價粒子適應(yīng)值;③將每個粒子適應(yīng)值與粒子所經(jīng)歷過的最優(yōu)位置及粒子群所經(jīng)歷的最優(yōu)位置適應(yīng)值進(jìn)行對比更新;④按照式(8)和式(4)進(jìn)行速度和位置更新;⑤判斷是否滿足終止條件,若不滿足則轉(zhuǎn)向步驟②。
2.2 測試函數(shù)仿真
為驗證改進(jìn)算法的優(yōu)越性,使用標(biāo)準(zhǔn)PSO、文獻(xiàn)[10]中改進(jìn)PSO以及本文改進(jìn)方法分別對Rastrigin函數(shù)進(jìn)行尋優(yōu)測試,將結(jié)果進(jìn)行對比。Rastrigin函數(shù)表達(dá)式如下[19]:
實驗將式(3)、式(4)作為標(biāo)準(zhǔn)PSO,式(5)與式(6)代入到式(3)中,然后與式(4)作為文獻(xiàn)[10] 改進(jìn)PSO的學(xué)習(xí)因子;將式(8)和式(4)作為改進(jìn)PSO文本。標(biāo)準(zhǔn)PSO學(xué)習(xí)因子c1=c2=2.0;改進(jìn)PSO的學(xué)習(xí)因子c1從2.5~0.5線性遞減,c2從0.5~2.5線性遞增;本文改進(jìn)PSO的學(xué)習(xí)因子c1=c2=[1.3,2.0],最大迭代次數(shù)為1000,精度為0.1,重復(fù)仿真50次,得到結(jié)果如圖5和表3所示。
從圖5和表3可知,標(biāo)準(zhǔn)PSO出現(xiàn)早熟,易陷入局部最優(yōu),通過改進(jìn)學(xué)習(xí)因子提高種群多樣性。本文改進(jìn)的PSO較之于另外兩種算法,不論是收斂速度還是跳出局部最優(yōu)能力都有所提高,尋優(yōu)結(jié)果和精度也有明顯改善。
2.3 PID仿真
為證明本文改進(jìn)算法對PID參數(shù)優(yōu)化的優(yōu)越性,選取系統(tǒng)控制對象傳遞函數(shù)表達(dá)式如下[20]:
對該系統(tǒng)進(jìn)行仿真,以ITAE為適應(yīng)度函數(shù)。標(biāo)準(zhǔn)PSO、文獻(xiàn)[10]改進(jìn)PSO以及本文改進(jìn)PSO在PID參數(shù)優(yōu)化的結(jié)果如圖6、表4所示。由圖表可知,本文改進(jìn)的算法較之于標(biāo)準(zhǔn)PSO算法和文獻(xiàn)[10]改進(jìn)算法,在PID參數(shù)優(yōu)化上收斂速度和搜索精度均取得較好結(jié)果,能夠用較少的迭代次數(shù)達(dá)到最優(yōu)值,而且本文改進(jìn)算法在PID參數(shù)優(yōu)化仿真結(jié)果的最差值、最優(yōu)值、方差以及平均值指標(biāo)上都優(yōu)于標(biāo)準(zhǔn)的PSO和文獻(xiàn)[10]改進(jìn)的PSO。
圖7為改進(jìn)算法的階躍響應(yīng)圖。10s時加入一個單位階躍擾動,可看出本文改進(jìn)算法有出色的抗干擾能力,表5顯示性能指標(biāo)對比也優(yōu)于其它兩種算法。
3 結(jié)語
本文提出一種基于相等隨機(jī)學(xué)習(xí)因子粒子群算法,豐富了種群多樣性,改善了過早收斂于局部極值狀況。PID控制器參數(shù)的優(yōu)化對于系統(tǒng)魯棒性以及穩(wěn)定性有十分重要的意義,本文將改進(jìn)算法應(yīng)用到PID參數(shù)優(yōu)化上,將其與標(biāo)準(zhǔn)PSO以及文獻(xiàn)[10]改進(jìn)的PSO作對比,仿真結(jié)果顯示,改進(jìn)的PSO收斂精度和收斂速度較優(yōu),用較少的迭代次數(shù)即達(dá)到最優(yōu)值,性能指標(biāo)更優(yōu)。
參考文獻(xiàn):
[1] 李獻(xiàn),駱志偉,丁晉臣.? MATLAB/Simulink系統(tǒng)仿真[M].? 北京: 清華大學(xué)出版社, 2017.
[2] 張霞.? 混沌粒子群優(yōu)化算法在PID參數(shù)整定中的應(yīng)用[J]. 石油化工自動化,2016, 52(4): 32-34.
[3] ZIEGLER J G, NICHOLS N B. Optimum settings for automatic controllers[J].? Trans ASME, 1942(64): 759-768.
[4] COHEN G H, COON G A. Theoretieal consideration of retarded control[J].? Trans ASME, 1953(75) : 827-833.
[5] 孟桂艷. 迭代步進(jìn)值遞減的果蠅優(yōu)化算法在PID整定中的應(yīng)用[J].? 青島大學(xué)學(xué)報(自然學(xué)科版), 2017, 30(3): 19-23.
[6] 張連強(qiáng), 王東風(fēng). 基于改進(jìn)人群搜索算法的PID參數(shù)優(yōu)化[J].? 計算機(jī)工程與設(shè)計, 2016, 13(37): 3389-3393.
[7] PBDM OLIVEIRA, EJS PIRES. Gravitational search algorithm design of posicast PID control systems[J].? Soft Computing Models in Industrial and Environmental Applications Advances in Intelligent Systems and Computing,2013(188): 191-199.
[8] JIMENEZ T. An auto-tuning PID control system based on genetic algorithms to provide delay guarantees in passive optical networks[J].? Expert? Systems with Applications An International Journal,2015,42(23): 9211-9220.
[9] KENNEDY J,EBERHART R C. Particle swarm optimization[C].? IEEE International Conference on Neural Networks, Piscataway,1995(2): 1942-1948.
[10] RATNAWECRA A, HALAGAMUGE S. Self-orgranizing hierarchical particle swarm optimizer with? time-varying acceleration coefficients[J].? Evolutionary Computation, 2004, 8(3): 240-255.
[11] 楊平.? PID控制器參數(shù)整定方法及應(yīng)用[M].? 北京: 中國電力出版社, 2016.
[12] 楊曉, 王國柱.? 基于PID控制理論的改進(jìn)粒子群優(yōu)化算法[J].? 控制工程,2019, 26(8): 1497-1502.
[13] 王博華.? 粒子群算法的改進(jìn)及其在 PID 參數(shù)整定中的應(yīng)用[D].? 長沙: 湖南大學(xué), 2017.
[14] 陳水利.? PSO算法加速因子的非線性策略研究[J].? 長江大學(xué)學(xué)報(自然科學(xué)版), 2007, 4(4): 1-4.
[15] 陳貴敏.? 粒子群優(yōu)化算法的慣性權(quán)值遞減策略研究[J].? 西安交通大學(xué)學(xué)報,2006, 40(1):53-61.
[16] 李曉含.? 基于細(xì)菌覓食算法的PID參數(shù)整定[D]. 蘭州: 甘肅農(nóng)業(yè)大學(xué), 2018.
[17] 趙志剛, 林玉嬌, 尹兆遠(yuǎn). 基于自適應(yīng)慣性權(quán)重的均值粒子群優(yōu)化算法[J].? 計算機(jī)工程與科學(xué), 2016, 38(3): 501-506.
[18] 李恒.? 改進(jìn)的螢火蟲算法及其在PID控制器參數(shù)整定中的應(yīng)用[D].? 合肥:安徽大學(xué),2017.
[19] 林玉嬌.? 基于改進(jìn)粒子群的PID參數(shù)整定應(yīng)用研究[D]. 南寧:廣西大學(xué),2015.
[20] 史峰. MATLAB智能算法30個案例分析[M].? 北京:北京航空航天大學(xué)出版社,2011.
(責(zé)任編輯:杜能鋼)