張繼榮,張 天
(西安郵電大學 通信與信息工程學院,陜西 西安 710061)
PID控制(proportion integration differentiation)是工業控制領域中常用的控制方法之一[1]。偏差和相應的系數Kp、Ki、Kd組成了它的3個重要的環節。這3個系數的不同組合會影響控制系統響應的性能指標的值,所以Kp、Ki、Kd這3個系數的優化是PID控制的關鍵。
隨著越來越多的復雜被控對象的出現使得早期簡單的ZN公式法不再適用于PID控制器的參數整定優化。
由埃伯哈特博士和甘乃迪博士[2]提出的粒子群優化算法具有代碼易實現、迭代過程簡單、參數設置較少等優點[3]。針對其迭代后期易陷入局部最優解的不足,研究者們提出了動態改變學習因子的策略[4]、慣性權重值設為固定值的策略[5]、慣性權值遞減策略(LDIW)[6]、慣性權值正弦動態調整的SIPSO策略[7]等改進方法,這些方法在性能和效率上雖然得到了一定的提高,但還是在慣性權重的速率變化上存在問題從而導致算法迭代后期仍然容易陷入局部最優解。
本文在上述改進策略的基礎上對慣性權重公式引入余弦調整,并將其應用在PID控制器的參數優化中,在matlab中與ZN公式法和SIPSO算法得到的PID控制系統響應函數、適應度函數值進行對比,該算法得到了控制系統響應函數性能指標更好、適應度函數值更精確的參數優化結果。
PID控制器的原理圖如圖1所示。
PID控制器作為工業控制領域常用的控制方法之一,其目的是通過控制被控對象使得控制系統響應逼近控制目標從而達到控制的需求。且要求控制偏差接近控制目標所用的時間短,差值在一定范圍之內。圖1為PID控制原理圖,我們可以將其看作是由4個部分組成的,第一個部分由rin(t)表示,其代表控制系統的目標信號。第二部分為控制被控對象的控制變量公式部分,其在整個控制系統中起到關鍵的作用,其公式如式(1)所示,其中e(t)=rin(t)-y(t) 代表控制偏差,Kp、Ki、Kd為與之組成的系數,通過公式中3個系數與偏差的組成形式我們將Kp叫作比例系數,Ki叫作積分系數,Kd叫作微分系數。第三個部分為具體問題中的被控對象,第四個部分為最終控制系統得到的響應結果,通過這個結果可以看出PID控制效果的好壞
(1)
通過上述第四部分的響應結果我們可以看出系統響應的穩態誤差、上升時間、超調量等性能指標的值,不同的Kp、Ki、Kd組合會得到不同的性能指標,穩態誤差越小、上升時間越短、超調量越小的系統響應越好。PID控制器的參數優化就是找到那組使得這些性能指標更好的Kp、Ki、Kd系數的值。從而讓系統的響應結果滿足一些實際的需要。

(2)
(3)
式(2)中第一部分的系數ω叫作慣性權重值,第二部分的系數由兩個值組成第一個代表的是粒子個體所經歷的最好位置對新一代種群位置影響的程度,我們把這個表示程度的系數叫作學習因子用c1表示,另一個是隨機均勻分布在[0 1]范圍內的隨機變量用r1表示,第三部分的系數組成同樣由兩個部分組成,一個代表的是粒子群所經歷的最好位置對新一代種群位置影響的程度,我們把它也叫作學習因子用c2表示,另一個是隨機均勻分布在[0 1]范圍內的隨機變量用r2表示。
在PSO算法的迭代更新機制中,可以看出新一代種群的速度是由3個部分共同影響,新一代種群的位置由上一代種群位置和新一代種群速度線性相加組成,所以在其迭代更新機制中最重要的是新一代種群速度的確定,而速度中3個部分各自的影響大小又由各自的系數決定,其中學習因子這個系數在多維問題中起到的作用較大,在低維問題中按照前人的實驗結果通常將其設置為固定值[8]。慣性權重體現的是上一代種群速度對新一代種群速度的影響程度,同時對粒子搜索范圍和搜索速度起到很大的作用,前人的研究結果顯示:慣性權重ω取值越大,對應著粒子的搜索范圍越廣,即全局搜索能力越強同時局部搜索能力越弱[9],慣性權重ω取值越小,對應著粒子的搜索范圍越窄,即局部搜索能力越強同時全局搜索能力越弱。針對PSO算法在迭代后期的缺陷,我們應該從改進慣性權重這一角度去對PSO進行修改。
基于此Y.Shi等提出了線性慣性權重遞減策略 (linear decreasing inertia weight,LDIW),該策略如式(4)所示,自此慣性權重值得到了動態的改變,不在是一個固定值
ω(k)=ωmax-(ωmax-ωmin)*k/kmax
(4)
其中,k表示當前迭代的次數,kmax為PSO算法在整個迭代過程中的最大迭代次數,圖2我們可以看出該策略在整個迭代過程中由最大值ωmax線性變化到最小值ωmin,通常取ωmax=0.9,ωmin=0.4。 雖然該策略讓慣性權重不再是一個固定值,有了一個動態變化的過程,可是在整個迭代更新過程中其慣性權重的變化速率是固定值,并沒有一個速率動態變化的過程,雖然比起ω為一個固定值時取得了更好的精度,使得迭代該過程中搜索范圍由最初較強的全局搜索到最后較強的局部搜索,但是在較強的全局搜索和較強的局部搜索上停留的迭代次數基本上一致,這樣未必會在全局搜索時盡可能找到全局最優值或者在迭代后期無法在全局最優值更好的逼近。
基于此文獻[7]將慣性權重的變化速率調整為一個非固定值,其如式(5)所示
ω(k)=ωmax*(1-sinh)+rand*ωmin*sinh
(5)
在ω的迭代過程中引入了rand這個隨機函數,并引入了正弦變化,該策略中h=πt/2kmax,ωmax=0.9,ωmin=0.4。 其滿足LDIW中慣性權重值由大到小的條件,由圖2可以看出該策略雖然讓慣性權重的變化速率不再是一個固定值,可是慣性權重在算法迭代開始的很長一段時間中變化速率都非常的快,進入到算法迭代的后三分之一時期慣性權重的變化速率才漸漸變慢,這會大大減少了算法在迭代初期進行全局搜索的迭代次數,慣性權重迅速的減小快速加強局部搜索的能力使得算法迭代前期極易找不到全局最優解或者算法在迭代前期雖然找到了最優解但是由于迭代后期慣性權值已經太小了,局部搜索能力大大增強從而在局部最優解處逼近,無法跳出局部最優解的陷阱從而找不到全局最優解導致整定結果有所偏差。
基于此,本文在該策略上提出改進,將慣性權重公式調整為式(6)
ω(k)=rand*ωmin*(1-cosh)+ωmax*cosh
(6)
其中,h=πt/2kmax,ωmax=0.9,ωmin=0.4, 如圖2所示改進策略在搜索前期具有取值較大變化速率較慢的ω,有利于算法進行較長時間的全局搜索,搜索到全局最優解的可能性大大提高,搜索后期具有取值較小變化速率較快的ω,加強了搜索后期不斷向全局最優解逼近的能力,求得全局最優解,提高算法的求解精度。

圖2 傳統PSO、SIPSO、IWCPSO的慣性權重變化曲線
控制系統常用的性能指標如式(7)[10]所示,不同的性能指標所反映出的側重點不同,在控制中偏差e(t)越小越好,最早提出的性能指標公式為ISE平方偏差積分公式,偏差在初始時刻的值是最大的,利用ISE公式就會使得控制系統響應為了在短時間內接近目標函數造成較大的超調量,同樣的時間乘誤差平方積分ITSE也具有這個缺陷,為了改善這一缺陷,提出了時間誤差絕對值積分IAE和時間誤差絕對值積分ITAE,而ITAE與IAE相比可以使得系統在更短的時間內接近目標,所以本文選取ITAE作為性能指標函數

(7)
具體步驟如下所示:
(1)初始化參數:規定粒子種群個數值、慣性權重初始值和結束值、學習因子的值并設置算法結束條件中的最大迭代次數和精度最小值、粒子搜索速度和位置的取值范圍,并在這一范圍內隨機初始化群體。
(2)將粒子群個體解碼為Kp、Ki、Kd。
(3)運行simulink模型,選取ITAE準則作為算法的適應度函數。
(4)將步驟(3)得到的初始化種群的適應度值通過min函數返回pBest和gBest得值并賦值給專門用于存儲pBest和gBest的變量用于后續的比較。
(5)根據IWCPSO算法中提出的慣性權重余弦調整的公式對慣性權重進行動態調整,并根據進化迭代公式計算速度和位置從而得到新一代的粒子群。
(6)通過sim函數調用搭建的PID的simulink模型返回新一代種群的適應度函數值,通過min函數計算新一代種群的pBest和gBest并復制給一變量,將次變量與步驟(4)中變量進行比較取較小的值存入步驟(4)所設置的變量中。
(7)根據初始化算法結束條件進行判斷,若達到算法結束條件則進入步驟(8),若沒有達到算法結束條件則進入步驟(5)。
(8)結束,得到全局最優值。
本文基于matlab 2016/simulink環境進行仿真,其優化設計過程如圖3所示。
圖3的左邊表示在matlab 2016環境下用m函數編寫的算法程序,圖3右邊表示搭建的PID的simulink模型,整個過程示意圖的關鍵在于將得到的初始化群體解碼并通過調用m文件中的函數賦值給matlab的工作空間,之后PID的simulink模型中的Kp、Ki、Kd這3個參數獲取賦值在工作空間中的值,這就完成了粒子從m文件到PID仿真模型中的傳遞,然后通過sim函數運行PID的simulink模型,得到所對應的ITAE值,然后判斷是否滿足條件如果滿足就結束算法得到全局最優解,如果沒有滿足條件則根據進化迭代公式更新粒子種群。
選取的被控對象為如下的不穩定系統如式(8)[11]所示

圖3 IWCPSO優化PID的過程
(8)
其simulink模型如圖4所示。

圖4 simulink仿真模型
其中輸入為階躍信號,Out1模塊為ITAE性能指標的值。微分環節由一個一階環節近似。仿真程序采用matlab 2016中的m語言編程實現。
將ZN公式法法、SIPSO算法、IWCPSO算法分別應用到PID參數的整定中,其中將粒子群個體值設置為100,最大迭代次數設置為100,根據所需整定的參數個數為3將解空間的維度設置為3。Kp、Ki、Kd的取值范圍設置為[0 300],學習因子取固定值為2,粒子速度的取值范圍限定在[-1 1]。ZN公式法法的慣性權重設置為固定值0.6,SIPSO算法中的慣性權值按照式(5)進行迭代更新,IWPSO算法中的慣性權值按照式(6)進行迭代更新。取ωmax為0.9,ωmin為0.4。
在ITAE性能指標下得到的適應度函數值如圖5所示,ZN公式法在迭代到28次時適應度函數得到收斂,收斂精度為3.847。SIPSO和IWCPSO算法的收斂精度分別為2.967和1.851,其分別在算法的第22次和17次得到了收斂,通過上述的數據比較我們可以看出,IWCPSO算法具有收斂速度更快、收斂精度更高的優勢。

圖5 ITAE值對比
3種算法的控制系統響應輸出曲線如圖6所示,最終得到的整定結果見表1。通過這兩個結果我們可以看出,ZN公式法雖然響應速度比較快,但是其超調量遠遠大于其它兩種算法。IWCPSO算法與SIPSO算法相比較可以看出,其在超調量、響應速度和穩態誤差這些體現控制器響應好壞的指標上都得到了一定的改進。所以其得到的PID整定結果最好。

圖6 階躍響應曲線對比

性能指標ZN公式法SIPSOIWCPSOKp210.231260.705532.1902Ki34.82620.16360.1672Kd102.754383.599735.1576上升時間/s2.762.292.36調節時間/s8.154.714.05超調量/%70.296.332.37穩態誤差/%0.230.140適應度值3.8472.9671.851
本文對傳統粒子群優化算法中的慣性權重引入余弦調整,使得慣性權重的值由大變小且慣性權重的變化速率由小變大。這樣的動態調整改進了傳統粒子群優化算法后期容易陷入局部最優解的不足。并將該算法應用到PID的參數整定中,在matlab 2016/simulink仿真環境下,與ZN公式法和SIPSO算法應用在PID參數優化結果對比,該改進算法得到的結果收斂速度更快,PID控制系統響應函數的主要的性能指標更好,PID的參數優化整定結果在更少的迭代次數下得到了更高的精度。