張繼榮,張 天
(西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710061)
PID控制(proportion integration differentiation)是工業(yè)控制領(lǐng)域中常用的控制方法之一[1]。偏差和相應(yīng)的系數(shù)Kp、Ki、Kd組成了它的3個(gè)重要的環(huán)節(jié)。這3個(gè)系數(shù)的不同組合會(huì)影響控制系統(tǒng)響應(yīng)的性能指標(biāo)的值,所以Kp、Ki、Kd這3個(gè)系數(shù)的優(yōu)化是PID控制的關(guān)鍵。
隨著越來越多的復(fù)雜被控對(duì)象的出現(xiàn)使得早期簡(jiǎn)單的ZN公式法不再適用于PID控制器的參數(shù)整定優(yōu)化。
由埃伯哈特博士和甘乃迪博士[2]提出的粒子群優(yōu)化算法具有代碼易實(shí)現(xiàn)、迭代過程簡(jiǎn)單、參數(shù)設(shè)置較少等優(yōu)點(diǎn)[3]。針對(duì)其迭代后期易陷入局部最優(yōu)解的不足,研究者們提出了動(dòng)態(tài)改變學(xué)習(xí)因子的策略[4]、慣性權(quán)重值設(shè)為固定值的策略[5]、慣性權(quán)值遞減策略(LDIW)[6]、慣性權(quán)值正弦動(dòng)態(tài)調(diào)整的SIPSO策略[7]等改進(jìn)方法,這些方法在性能和效率上雖然得到了一定的提高,但還是在慣性權(quán)重的速率變化上存在問題從而導(dǎo)致算法迭代后期仍然容易陷入局部最優(yōu)解。
本文在上述改進(jìn)策略的基礎(chǔ)上對(duì)慣性權(quán)重公式引入余弦調(diào)整,并將其應(yīng)用在PID控制器的參數(shù)優(yōu)化中,在matlab中與ZN公式法和SIPSO算法得到的PID控制系統(tǒng)響應(yīng)函數(shù)、適應(yīng)度函數(shù)值進(jìn)行對(duì)比,該算法得到了控制系統(tǒng)響應(yīng)函數(shù)性能指標(biāo)更好、適應(yīng)度函數(shù)值更精確的參數(shù)優(yōu)化結(jié)果。
PID控制器的原理圖如圖1所示。
PID控制器作為工業(yè)控制領(lǐng)域常用的控制方法之一,其目的是通過控制被控對(duì)象使得控制系統(tǒng)響應(yīng)逼近控制目標(biāo)從而達(dá)到控制的需求。且要求控制偏差接近控制目標(biāo)所用的時(shí)間短,差值在一定范圍之內(nèi)。圖1為PID控制原理圖,我們可以將其看作是由4個(gè)部分組成的,第一個(gè)部分由rin(t)表示,其代表控制系統(tǒng)的目標(biāo)信號(hào)。第二部分為控制被控對(duì)象的控制變量公式部分,其在整個(gè)控制系統(tǒng)中起到關(guān)鍵的作用,其公式如式(1)所示,其中e(t)=rin(t)-y(t) 代表控制偏差,Kp、Ki、Kd為與之組成的系數(shù),通過公式中3個(gè)系數(shù)與偏差的組成形式我們將Kp叫作比例系數(shù),Ki叫作積分系數(shù),Kd叫作微分系數(shù)。第三個(gè)部分為具體問題中的被控對(duì)象,第四個(gè)部分為最終控制系統(tǒng)得到的響應(yīng)結(jié)果,通過這個(gè)結(jié)果可以看出PID控制效果的好壞
(1)
通過上述第四部分的響應(yīng)結(jié)果我們可以看出系統(tǒng)響應(yīng)的穩(wěn)態(tài)誤差、上升時(shí)間、超調(diào)量等性能指標(biāo)的值,不同的Kp、Ki、Kd組合會(huì)得到不同的性能指標(biāo),穩(wěn)態(tài)誤差越小、上升時(shí)間越短、超調(diào)量越小的系統(tǒng)響應(yīng)越好。PID控制器的參數(shù)優(yōu)化就是找到那組使得這些性能指標(biāo)更好的Kp、Ki、Kd系數(shù)的值。從而讓系統(tǒng)的響應(yīng)結(jié)果滿足一些實(shí)際的需要。
(2)
(3)
式(2)中第一部分的系數(shù)ω叫作慣性權(quán)重值,第二部分的系數(shù)由兩個(gè)值組成第一個(gè)代表的是粒子個(gè)體所經(jīng)歷的最好位置對(duì)新一代種群位置影響的程度,我們把這個(gè)表示程度的系數(shù)叫作學(xué)習(xí)因子用c1表示,另一個(gè)是隨機(jī)均勻分布在[0 1]范圍內(nèi)的隨機(jī)變量用r1表示,第三部分的系數(shù)組成同樣由兩個(gè)部分組成,一個(gè)代表的是粒子群所經(jīng)歷的最好位置對(duì)新一代種群位置影響的程度,我們把它也叫作學(xué)習(xí)因子用c2表示,另一個(gè)是隨機(jī)均勻分布在[0 1]范圍內(nèi)的隨機(jī)變量用r2表示。
在PSO算法的迭代更新機(jī)制中,可以看出新一代種群的速度是由3個(gè)部分共同影響,新一代種群的位置由上一代種群位置和新一代種群速度線性相加組成,所以在其迭代更新機(jī)制中最重要的是新一代種群速度的確定,而速度中3個(gè)部分各自的影響大小又由各自的系數(shù)決定,其中學(xué)習(xí)因子這個(gè)系數(shù)在多維問題中起到的作用較大,在低維問題中按照前人的實(shí)驗(yàn)結(jié)果通常將其設(shè)置為固定值[8]。慣性權(quán)重體現(xiàn)的是上一代種群速度對(duì)新一代種群速度的影響程度,同時(shí)對(duì)粒子搜索范圍和搜索速度起到很大的作用,前人的研究結(jié)果顯示:慣性權(quán)重ω取值越大,對(duì)應(yīng)著粒子的搜索范圍越廣,即全局搜索能力越強(qiáng)同時(shí)局部搜索能力越弱[9],慣性權(quán)重ω取值越小,對(duì)應(yīng)著粒子的搜索范圍越窄,即局部搜索能力越強(qiáng)同時(shí)全局搜索能力越弱。針對(duì)PSO算法在迭代后期的缺陷,我們應(yīng)該從改進(jìn)慣性權(quán)重這一角度去對(duì)PSO進(jìn)行修改。
基于此Y.Shi等提出了線性慣性權(quán)重遞減策略 (linear decreasing inertia weight,LDIW),該策略如式(4)所示,自此慣性權(quán)重值得到了動(dòng)態(tài)的改變,不在是一個(gè)固定值
ω(k)=ωmax-(ωmax-ωmin)*k/kmax
(4)
其中,k表示當(dāng)前迭代的次數(shù),kmax為PSO算法在整個(gè)迭代過程中的最大迭代次數(shù),圖2我們可以看出該策略在整個(gè)迭代過程中由最大值ωmax線性變化到最小值ωmin,通常取ωmax=0.9,ωmin=0.4。 雖然該策略讓慣性權(quán)重不再是一個(gè)固定值,有了一個(gè)動(dòng)態(tài)變化的過程,可是在整個(gè)迭代更新過程中其慣性權(quán)重的變化速率是固定值,并沒有一個(gè)速率動(dòng)態(tài)變化的過程,雖然比起ω為一個(gè)固定值時(shí)取得了更好的精度,使得迭代該過程中搜索范圍由最初較強(qiáng)的全局搜索到最后較強(qiáng)的局部搜索,但是在較強(qiáng)的全局搜索和較強(qiáng)的局部搜索上停留的迭代次數(shù)基本上一致,這樣未必會(huì)在全局搜索時(shí)盡可能找到全局最優(yōu)值或者在迭代后期無法在全局最優(yōu)值更好的逼近。
基于此文獻(xiàn)[7]將慣性權(quán)重的變化速率調(diào)整為一個(gè)非固定值,其如式(5)所示
ω(k)=ωmax*(1-sinh)+rand*ωmin*sinh
(5)
在ω的迭代過程中引入了rand這個(gè)隨機(jī)函數(shù),并引入了正弦變化,該策略中h=πt/2kmax,ωmax=0.9,ωmin=0.4。 其滿足LDIW中慣性權(quán)重值由大到小的條件,由圖2可以看出該策略雖然讓慣性權(quán)重的變化速率不再是一個(gè)固定值,可是慣性權(quán)重在算法迭代開始的很長(zhǎng)一段時(shí)間中變化速率都非常的快,進(jìn)入到算法迭代的后三分之一時(shí)期慣性權(quán)重的變化速率才漸漸變慢,這會(huì)大大減少了算法在迭代初期進(jìn)行全局搜索的迭代次數(shù),慣性權(quán)重迅速的減小快速加強(qiáng)局部搜索的能力使得算法迭代前期極易找不到全局最優(yōu)解或者算法在迭代前期雖然找到了最優(yōu)解但是由于迭代后期慣性權(quán)值已經(jīng)太小了,局部搜索能力大大增強(qiáng)從而在局部最優(yōu)解處逼近,無法跳出局部最優(yōu)解的陷阱從而找不到全局最優(yōu)解導(dǎo)致整定結(jié)果有所偏差。
基于此,本文在該策略上提出改進(jìn),將慣性權(quán)重公式調(diào)整為式(6)
ω(k)=rand*ωmin*(1-cosh)+ωmax*cosh
(6)
其中,h=πt/2kmax,ωmax=0.9,ωmin=0.4, 如圖2所示改進(jìn)策略在搜索前期具有取值較大變化速率較慢的ω,有利于算法進(jìn)行較長(zhǎng)時(shí)間的全局搜索,搜索到全局最優(yōu)解的可能性大大提高,搜索后期具有取值較小變化速率較快的ω,加強(qiáng)了搜索后期不斷向全局最優(yōu)解逼近的能力,求得全局最優(yōu)解,提高算法的求解精度。
圖2 傳統(tǒng)PSO、SIPSO、IWCPSO的慣性權(quán)重變化曲線
控制系統(tǒng)常用的性能指標(biāo)如式(7)[10]所示,不同的性能指標(biāo)所反映出的側(cè)重點(diǎn)不同,在控制中偏差e(t)越小越好,最早提出的性能指標(biāo)公式為ISE平方偏差積分公式,偏差在初始時(shí)刻的值是最大的,利用ISE公式就會(huì)使得控制系統(tǒng)響應(yīng)為了在短時(shí)間內(nèi)接近目標(biāo)函數(shù)造成較大的超調(diào)量,同樣的時(shí)間乘誤差平方積分ITSE也具有這個(gè)缺陷,為了改善這一缺陷,提出了時(shí)間誤差絕對(duì)值積分IAE和時(shí)間誤差絕對(duì)值積分ITAE,而ITAE與IAE相比可以使得系統(tǒng)在更短的時(shí)間內(nèi)接近目標(biāo),所以本文選取ITAE作為性能指標(biāo)函數(shù)
(7)
具體步驟如下所示:
(1)初始化參數(shù):規(guī)定粒子種群個(gè)數(shù)值、慣性權(quán)重初始值和結(jié)束值、學(xué)習(xí)因子的值并設(shè)置算法結(jié)束條件中的最大迭代次數(shù)和精度最小值、粒子搜索速度和位置的取值范圍,并在這一范圍內(nèi)隨機(jī)初始化群體。
(2)將粒子群個(gè)體解碼為Kp、Ki、Kd。
(3)運(yùn)行simulink模型,選取ITAE準(zhǔn)則作為算法的適應(yīng)度函數(shù)。
(4)將步驟(3)得到的初始化種群的適應(yīng)度值通過min函數(shù)返回pBest和gBest得值并賦值給專門用于存儲(chǔ)pBest和gBest的變量用于后續(xù)的比較。
(5)根據(jù)IWCPSO算法中提出的慣性權(quán)重余弦調(diào)整的公式對(duì)慣性權(quán)重進(jìn)行動(dòng)態(tài)調(diào)整,并根據(jù)進(jìn)化迭代公式計(jì)算速度和位置從而得到新一代的粒子群。
(6)通過sim函數(shù)調(diào)用搭建的PID的simulink模型返回新一代種群的適應(yīng)度函數(shù)值,通過min函數(shù)計(jì)算新一代種群的pBest和gBest并復(fù)制給一變量,將次變量與步驟(4)中變量進(jìn)行比較取較小的值存入步驟(4)所設(shè)置的變量中。
(7)根據(jù)初始化算法結(jié)束條件進(jìn)行判斷,若達(dá)到算法結(jié)束條件則進(jìn)入步驟(8),若沒有達(dá)到算法結(jié)束條件則進(jìn)入步驟(5)。
(8)結(jié)束,得到全局最優(yōu)值。
本文基于matlab 2016/simulink環(huán)境進(jìn)行仿真,其優(yōu)化設(shè)計(jì)過程如圖3所示。
圖3的左邊表示在matlab 2016環(huán)境下用m函數(shù)編寫的算法程序,圖3右邊表示搭建的PID的simulink模型,整個(gè)過程示意圖的關(guān)鍵在于將得到的初始化群體解碼并通過調(diào)用m文件中的函數(shù)賦值給matlab的工作空間,之后PID的simulink模型中的Kp、Ki、Kd這3個(gè)參數(shù)獲取賦值在工作空間中的值,這就完成了粒子從m文件到PID仿真模型中的傳遞,然后通過sim函數(shù)運(yùn)行PID的simulink模型,得到所對(duì)應(yīng)的ITAE值,然后判斷是否滿足條件如果滿足就結(jié)束算法得到全局最優(yōu)解,如果沒有滿足條件則根據(jù)進(jìn)化迭代公式更新粒子種群。
選取的被控對(duì)象為如下的不穩(wěn)定系統(tǒng)如式(8)[11]所示
圖3 IWCPSO優(yōu)化PID的過程
(8)
其simulink模型如圖4所示。
圖4 simulink仿真模型
其中輸入為階躍信號(hào),Out1模塊為ITAE性能指標(biāo)的值。微分環(huán)節(jié)由一個(gè)一階環(huán)節(jié)近似。仿真程序采用matlab 2016中的m語言編程實(shí)現(xiàn)。
將ZN公式法法、SIPSO算法、IWCPSO算法分別應(yīng)用到PID參數(shù)的整定中,其中將粒子群個(gè)體值設(shè)置為100,最大迭代次數(shù)設(shè)置為100,根據(jù)所需整定的參數(shù)個(gè)數(shù)為3將解空間的維度設(shè)置為3。Kp、Ki、Kd的取值范圍設(shè)置為[0 300],學(xué)習(xí)因子取固定值為2,粒子速度的取值范圍限定在[-1 1]。ZN公式法法的慣性權(quán)重設(shè)置為固定值0.6,SIPSO算法中的慣性權(quán)值按照式(5)進(jìn)行迭代更新,IWPSO算法中的慣性權(quán)值按照式(6)進(jìn)行迭代更新。取ωmax為0.9,ωmin為0.4。
在ITAE性能指標(biāo)下得到的適應(yīng)度函數(shù)值如圖5所示,ZN公式法在迭代到28次時(shí)適應(yīng)度函數(shù)得到收斂,收斂精度為3.847。SIPSO和IWCPSO算法的收斂精度分別為2.967和1.851,其分別在算法的第22次和17次得到了收斂,通過上述的數(shù)據(jù)比較我們可以看出,IWCPSO算法具有收斂速度更快、收斂精度更高的優(yōu)勢(shì)。
圖5 ITAE值對(duì)比
3種算法的控制系統(tǒng)響應(yīng)輸出曲線如圖6所示,最終得到的整定結(jié)果見表1。通過這兩個(gè)結(jié)果我們可以看出,ZN公式法雖然響應(yīng)速度比較快,但是其超調(diào)量遠(yuǎn)遠(yuǎn)大于其它兩種算法。IWCPSO算法與SIPSO算法相比較可以看出,其在超調(diào)量、響應(yīng)速度和穩(wěn)態(tài)誤差這些體現(xiàn)控制器響應(yīng)好壞的指標(biāo)上都得到了一定的改進(jìn)。所以其得到的PID整定結(jié)果最好。
圖6 階躍響應(yīng)曲線對(duì)比
性能指標(biāo)ZN公式法SIPSOIWCPSOKp210.231260.705532.1902Ki34.82620.16360.1672Kd102.754383.599735.1576上升時(shí)間/s2.762.292.36調(diào)節(jié)時(shí)間/s8.154.714.05超調(diào)量/%70.296.332.37穩(wěn)態(tài)誤差/%0.230.140適應(yīng)度值3.8472.9671.851
本文對(duì)傳統(tǒng)粒子群優(yōu)化算法中的慣性權(quán)重引入余弦調(diào)整,使得慣性權(quán)重的值由大變小且慣性權(quán)重的變化速率由小變大。這樣的動(dòng)態(tài)調(diào)整改進(jìn)了傳統(tǒng)粒子群優(yōu)化算法后期容易陷入局部最優(yōu)解的不足。并將該算法應(yīng)用到PID的參數(shù)整定中,在matlab 2016/simulink仿真環(huán)境下,與ZN公式法和SIPSO算法應(yīng)用在PID參數(shù)優(yōu)化結(jié)果對(duì)比,該改進(jìn)算法得到的結(jié)果收斂速度更快,PID控制系統(tǒng)響應(yīng)函數(shù)的主要的性能指標(biāo)更好,PID的參數(shù)優(yōu)化整定結(jié)果在更少的迭代次數(shù)下得到了更高的精度。