陳 龍 張春雷 陳 璨 趙成龍 張 冀 瞿佳偉
(四川大學(xué) 制造科學(xué)與工程學(xué)院 成都610065)
PID算法簡(jiǎn)單,魯棒性好,可靠性高,結(jié)構(gòu)簡(jiǎn)單,廣泛應(yīng)用于工業(yè)控制和運(yùn)動(dòng)控制中,因?yàn)槠鋵v史偏差、當(dāng)前偏差、最近偏差結(jié)合起來(lái)考慮,方便建立一個(gè)精確的數(shù)學(xué)控制系統(tǒng)模型,因此在工業(yè)控制當(dāng)中占據(jù)著重要的地位。然而實(shí)際的工業(yè)現(xiàn)場(chǎng)中,相對(duì)于高級(jí)控制算法,PID控制具有很多的不確定性、精度低、時(shí)滯性、非線性的運(yùn)行工況差等問(wèn)題,常規(guī)的PID算法難以達(dá)到控制的要求,需要引入高級(jí)控制算法的思想對(duì)PID進(jìn)行改進(jìn)。
隨著人工智能技術(shù)的發(fā)展進(jìn)步,有基于神經(jīng)網(wǎng)絡(luò)的 PID控制和結(jié)合蟻群和模擬退火算法的 PID控制,以及基于群體智能的PSO算法對(duì)PID參數(shù)的整定。
粒子群算法(Particle Swarm Optimization,PSO),是由Eberhart博士和Kennedy博士在1995年提出的一種基于群體智能的優(yōu)化算法[1],通過(guò)個(gè)體與群體粒子的搜索迭代尋優(yōu)逐漸找到最優(yōu)解。針對(duì)非線性、復(fù)雜多峰的函數(shù)、PSO算法簡(jiǎn)單、通用性強(qiáng)、需要調(diào)整的參數(shù)少、收斂速度快的特點(diǎn)往往對(duì)其具有良好的優(yōu)化能力。將改進(jìn)的粒子群算法與PID算法結(jié)合,這些年得到了深入的研究和應(yīng)用,任子武[2]等提出了一種帶變異算子的改進(jìn)粒子群優(yōu)化算法。金翠云[3]等通過(guò)引入粒子最差位置關(guān)系和最優(yōu)位置關(guān)系從而有效獲得優(yōu)化能力。
目前針對(duì)PSO算法,可以從參數(shù)選擇,粒子群多樣性研究,與其他優(yōu)化算法相結(jié)合進(jìn)行改進(jìn),但是難以克服粒子群易陷入局部尋優(yōu)、全局尋優(yōu)后期收斂速度慢的缺點(diǎn)。故采用一種收斂速度快,搜索精度高的自適應(yīng)慣性系數(shù)ω的均值粒子群優(yōu)化算法,對(duì)算法中的ω采取動(dòng)態(tài)自適應(yīng)變化方式,將粒子群的適應(yīng)度值分為三種,每一種采取不同的慣性系數(shù)ω,同時(shí)把個(gè)體極值和全局極值線性組合來(lái)獲得全局最優(yōu)和個(gè)體最優(yōu)。
用幾個(gè)基準(zhǔn)測(cè)試函數(shù),驗(yàn)證本文提出的優(yōu)化算法的高效可行性;得出改進(jìn)該算法的高效和可行性,然后將該算法應(yīng)用于PID參數(shù)整定中,將優(yōu)化的參數(shù)與標(biāo)準(zhǔn)粒子群算法優(yōu)化的PID參數(shù)做仿真對(duì)比。
每個(gè)優(yōu)化的問(wèn)題都是一個(gè)粒子,每個(gè)粒子都有一個(gè)潛在的解。每一個(gè)粒子都有一個(gè)歷史最優(yōu)解和一個(gè)群體最優(yōu)解,每個(gè)粒子都在指定的空間不斷更新自己的位置和速度來(lái)搜索最優(yōu)值。粒子群優(yōu)化算法流程如圖1所示。
在n個(gè)粒子組成的D維空間內(nèi)粒子群不斷地迭代更新尋找最優(yōu)解。Xi=(Xi1,Xi2,Xi3,…,XiD)為某個(gè)粒子某個(gè)時(shí)刻的位置,其中Xi∈ LDHD,LD為搜索位置的最小值,HD為搜索位置最大值。Vi= (Vi1,Vi2,Vi3,… ,ViD),Vi∈ VminVmax其中Vmin為搜索速度的最小值,Vmax為搜索速度最大值。每個(gè)粒子在空間進(jìn)行尋優(yōu)的時(shí)候,需要結(jié)合自身歷史最優(yōu)值和群體歷史最優(yōu)值。
粒子自身歷史最優(yōu)值為:
粒子群自身最優(yōu)位置為:
粒子在空間更新位置:
D維空間粒子速度更新公式:
圖1 粒子群優(yōu)化算法流程圖
在標(biāo)準(zhǔn)粒子群算法中,一開(kāi)始粒子群每個(gè)粒子的位置都是隨機(jī)的,在粒子群開(kāi)始迭代過(guò)程中,每個(gè)粒子根據(jù)個(gè)體的經(jīng)驗(yàn)和群體的經(jīng)驗(yàn)尋找最優(yōu)解,每個(gè)粒子的位置都是一個(gè)潛在的解,慣性系數(shù)ω越大,局部最優(yōu)解被忽略的概率越大,ω越小則容易忽略全局最優(yōu)解,所有的粒子都有一個(gè)適應(yīng)度函數(shù),用來(lái)評(píng)價(jià)粒子所在位置的好壞,而適應(yīng)度函數(shù)的值又和被優(yōu)化函數(shù)具有關(guān)聯(lián)性。適應(yīng)度值越小,則離全局最優(yōu)位置越近。如果能快速找到粒子的適應(yīng)度值,對(duì)提高整個(gè)粒子群的算法收斂速度非常重要。設(shè)第d次迭代粒子適應(yīng)度值為f(xd),再把求出的適應(yīng)度值降序排列,然后一分為二分別算出適應(yīng)度值f(x1),f(x2),再把f(xd)和f(x1),f(x2)進(jìn)行比較,當(dāng)f(xd)小于 f(x1),那么該粒子在全局最優(yōu)位置附近,當(dāng)f(xd)大于 f(x2),該粒子離最優(yōu)位置越來(lái)越遠(yuǎn)。當(dāng)f(x1)< f(xd)< f(x2),那么該粒子的位置不算太優(yōu)也不算太差。根據(jù)不同位置而分出不同優(yōu)劣等級(jí)的粒子群,相應(yīng)采取不同的ω,達(dá)到快速尋優(yōu)的能力。當(dāng)f(xd)小于 f(x1),該粒子已經(jīng)在全局最優(yōu)位置附近,那么相應(yīng)的f(x1)系數(shù)ω就要取小一些,有利于粒子群集中收縮到最優(yōu)位置。當(dāng)f(xd)大于f(x2)時(shí),容易陷入局部尋優(yōu),所以將ω取得大一些,令ω=0.8。當(dāng)f(x1)< f(xd)< f(x2)時(shí)使ω在[0.3 0.7]內(nèi)隨機(jī)取值,提高全局優(yōu)化能力。粒子群算法的速度迭代公式是繼承之前的速度然后根據(jù)自身經(jīng)驗(yàn)和群體的經(jīng)驗(yàn)來(lái)選擇飛行方向和大小。由Deep K和Bansal JC提出均值粒子群優(yōu)化算法[4],對(duì)速度迭代公式中的個(gè)體認(rèn)知和群體認(rèn)知部分做了修正,利于更快搜索到全局最優(yōu)點(diǎn),更新公式變化為:
文獻(xiàn)[5]采取線性下降慣性因數(shù)的方法:
其中ωmax,ωmin為最大和最小慣性因數(shù)。n和nmax為當(dāng)前迭代次數(shù)和最大迭代次數(shù)。c1和c2是個(gè)體學(xué)習(xí)因子和群體學(xué)習(xí)因子。c1指導(dǎo)粒子自身調(diào)整飛行經(jīng)驗(yàn)和路徑規(guī)劃,c2指導(dǎo)粒子群根據(jù)以往飛行經(jīng)驗(yàn)選擇優(yōu)化路徑。學(xué)習(xí)因子選擇得當(dāng)能夠很好的調(diào)整算法性能。文獻(xiàn)[6]將收縮因子引入 PSO算法中,其表達(dá)式為:φ=c1+c2,收縮因子x提高了粒子群算法精度。
(1)種群初始化,初始化最大迭代次數(shù),粒子位置 LDHD,個(gè)體學(xué)習(xí)因子c1,社會(huì)學(xué)習(xí)因子c2,粒子飛翔速度范圍 VmaxVmin,搜索空間D。
(2)根據(jù)個(gè)體最優(yōu)位置和全局最優(yōu)位置,計(jì)算適應(yīng)度值f(xd)。
(3)降序排列所計(jì)算出的適應(yīng)度值,一分為二,分別求出平均值f(x1),f(x2)。
(4)比較每個(gè)粒子的適應(yīng)度值f(xd)和f(x1),f(x2)的關(guān)系,根據(jù)每個(gè)粒子所處位置的優(yōu)劣程度,結(jié)合相應(yīng)的慣性系數(shù)ω。
(6)判斷整個(gè)算法是否達(dá)到優(yōu)化的條件,如果是,則終止,如果不是返回步驟2。
(7)得到最優(yōu)解,結(jié)束算法流程,跳出程序。
對(duì)改進(jìn)的粒子群算法(M-PSO)用基準(zhǔn)測(cè)試函數(shù)進(jìn)行對(duì)比試驗(yàn),以驗(yàn)證其優(yōu)化能力,其中c1=1.5,c2=1.5,粒子總數(shù)為100,每個(gè)標(biāo)準(zhǔn)函數(shù)的適應(yīng)度值測(cè)試30次后取平均值,將改進(jìn)的粒子群算法與標(biāo)準(zhǔn)的PSO算法進(jìn)行對(duì)比。根據(jù)表1和圖2可以得出改進(jìn)的粒子群算法在精度和收斂性上都比標(biāo)準(zhǔn)粒子群算方法要好。
表1 標(biāo)準(zhǔn)函數(shù)測(cè)試結(jié)果
圖2 標(biāo)準(zhǔn)粒子群算法與改進(jìn)的粒子群算法(M-PSO)對(duì)測(cè)試函數(shù)的優(yōu)化曲線
對(duì)PID控制系統(tǒng)進(jìn)行參數(shù)選取,使得由控制器和控制對(duì)象所組成的閉環(huán)回路控制系統(tǒng)的動(dòng)態(tài)性能達(dá)到期望指標(biāo)。自Ziegler和Nichols提出對(duì)PID控制器的參數(shù)整定起,已經(jīng)有很多種方法被用于參數(shù)整定,包括經(jīng)典PID調(diào)節(jié)的單參數(shù)整定法以及具有研究難點(diǎn)和復(fù)雜度的非線性智能PID參數(shù)整定方法等。
工業(yè)中常用經(jīng)驗(yàn)試湊法、臨界比例度法、衰減曲線法和響應(yīng)曲線法用于PID整定。臨界比例度法使用最廣,但是當(dāng)工藝要求嚴(yán)格,求取比例度小時(shí),不適宜用這種方法,簡(jiǎn)單易行的衰減曲線法分為4:1衰減曲線法和10:1的衰減曲線法,在響應(yīng)迅速,控制系統(tǒng)干擾太大的環(huán)境下不適合采用這種方法,經(jīng)驗(yàn)試湊法是在時(shí)間過(guò)程中不斷調(diào)試總結(jié)而來(lái)的,往往根據(jù)經(jīng)驗(yàn)調(diào)整。對(duì)于非線性復(fù)雜度高的多參數(shù)控制系統(tǒng)是研究的熱點(diǎn)和難點(diǎn)。PSO群體智能算法能夠很好的處理非線性約束問(wèn)題,相比于其他算法具有一定的優(yōu)越性,將自適應(yīng)的PSO算法應(yīng)用于PID控制進(jìn)行參數(shù)整定優(yōu)化,將使得控制系統(tǒng)具有魯棒性好,適應(yīng)性強(qiáng)等特點(diǎn),這種智能算法,方便控制系統(tǒng)處理復(fù)雜多變的控制系統(tǒng)。
把粒子群的適應(yīng)度值作為評(píng)價(jià)PID控制器性能好壞的參數(shù),為了能夠準(zhǔn)確評(píng)估控制效果,采用誤差絕對(duì)值乘以時(shí)間積分(ITAE)作為判別控制性能的指標(biāo)[7-10]:
ITAE在工程運(yùn)算中能夠有效體現(xiàn)控制系統(tǒng)的綜合性能,用它得出的控制性能參數(shù)使得系統(tǒng)穩(wěn)定性,超調(diào)量小,響應(yīng)時(shí)間快等優(yōu)點(diǎn),因此選用ITAE作為算法性能的評(píng)價(jià)函數(shù)。
利用改進(jìn)的PSO算法對(duì)PID控制系統(tǒng)參數(shù)優(yōu)化,將產(chǎn)生的粒子群依次賦值給Kp,Ki,Kd,然后運(yùn)行已經(jīng)建立好的仿真模型輸出性能指標(biāo),判斷該性能指標(biāo)是否滿足條件,如果滿足得出最優(yōu)解,如果不滿足,更新粒子群進(jìn)行運(yùn)行Simulink模塊,直到滿足終止條件。通過(guò)Matlab辨識(shí)出溫度控制系統(tǒng)的傳遞函數(shù),然后對(duì)其進(jìn)行仿真分析,其傳遞函數(shù)表達(dá)式為:
運(yùn)行代碼和仿真模塊可以看出 ITAE不斷變小最終等于1.0543,當(dāng)ITAE達(dá)到穩(wěn)點(diǎn)的最小值過(guò)后所得到的Kp、Ki、Kd值就是滿足最優(yōu)控制性能的參數(shù)組合,Kp=32.6365,Ki=0.1656,Kd=37.8990。將這些參數(shù)傳回Simulink仿真。模塊得到單位階躍響應(yīng)圖,如圖3所示。
圖3 PSO優(yōu)化PID得到的階躍響應(yīng)圖
由圖3可知,相比于標(biāo)準(zhǔn)PSO算法,改進(jìn)的算法(MPSO),ITAE隨著迭代次數(shù)的增加,減小的幅度更大,從而所獲得的PID參數(shù)也較好,改進(jìn)的粒子群算法使得控制系統(tǒng)超調(diào)量小,穩(wěn)定性好,由此得到的PID參數(shù)也是最好的。
本文提出的一種基于慣性系數(shù)ω和粒子適應(yīng)度值相結(jié)合的方法,使得每個(gè)粒子依據(jù)自身的適應(yīng)度值選擇合適的慣性系數(shù)ω,從而加強(qiáng)了粒子群算法對(duì)于復(fù)雜問(wèn)題的控制和優(yōu)化,在不明顯增加改進(jìn)算法難度和復(fù)雜度的情況下,大幅的提高了算法的尋優(yōu)能力,提升了整定PID參數(shù)的能力,最后通過(guò)仿真對(duì)比表明本文提出方法能夠取得更好的整定效果。