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