董如意,唐玉玉,桑可可
(吉林化工學院 信息與控制工程學院,吉林 吉林 132022)
隨著人類科技的迅速發展,PID控制器廣泛應用于航天、工業、國防、農業、化工等領域,PID控制器的應用與我們當前的生活息息相關[1].在被控對象系統的結構和系數都無法完全設定時,PID控制器可以利用其比列、積分和微分3個環節調節控制系統,以降低系統誤差,操作簡單、設計方便簡潔.但是對于PID控制器3個參數的選擇,過程相當冗長煩瑣.所以,為了解決傳統PID控制器參數很難整定到最優的問題,本文提出了一種經過改進的粒子群優化的算法,來對PID參數進行自適應調整[2].改進粒子群優化算法采用不斷迭代自動尋求最佳解的方式,并具有求解速度快的優勢,在Matlab環境下完成模擬仿真實驗,并把模擬仿真結果同典型PSO算法的PID整定方法加以對比,進一步表明了該方法的可行性和優越性.
PID控制器,由比例P、積分I和微分D3個參數所構成.作為二階線性控制器,比例、積分和微分這3個參數可以直接影響PID控制器的控制效果.所以,通過對比例、積分和微分3個參數進行調整[3],使系統達到良好的控制特性.協調這3個參數來實現控制器目標的最優值,并引入改進粒子群算法的特性,在給定的范圍內對3個參數進行優化使其能達到最為合適的值,進而使整個控制系統性能達到最優.
在控制工業中最常見到的PID控制器的工作原理為:
(1)
其中,e(t)為控制誤差,即:
e(t)=r(t)-y(t),
(2)
用傳遞函數表示,則為:
(3)
其中,Kp為比例系數;Ki為積分系數;Kd為微分系數.
粒子群算法(PSO)是一種較為成熟的群智能算法,啟發于鳥群、蜂群等覓食的場景,把生物個體當作一個個粒子,并都處在一個D維空間進行搜索,通過迭代尋找最優解,并用適應度來評價解的好壞,最后根據當前搜索到的最優解來尋找全局最優解[4-6].在迭代過程中,粒子群由速度和位置兩部分組成,其粒子速度由慣性部分、自我認知、社會經驗3部分構成.粒子群的優化方程如公式(4)和公式(5)所示.
vij(t+1)=vij(t)+c1r1(t)[pij(t)-xij(t)]+c2r2(t)[pgt(t)-xij(t)],
(4)
Xij(t+1)=Xij(t)+vij(t+1),
(5)
式中小標j表示微粒的第j維;i表示微粒i;t表示迭代次數;r1、r2是相互獨立的隨機函數(取值范圍在0-1之間).c1、c1為學習因子加速常量(取值范圍在0-2之間),是調節全局最優粒子飛行方向和粒子飛行步長的關鍵參數,所以適當的選擇學習因子對整個系統是非常關鍵的[7].學習因子選擇過大或者過小都會導致粒子不會飛向目標區域,c1、c1的適當選擇需要考慮收斂速度的同時還要考慮算法陷入局部最優,所以通常把c1、c1學習因子的值設定為2.
通過對標準粒子群算法的分析,可以確定粒子群更新方程的效果是否理想是粒子群算法性能優化的關鍵.在原始的粒子群更新方程中,粒子的位置和速度是按照自身當前狀況、群體當前狀況以及社會經驗進行更新的,如果出現兩個粒子足夠接近時,即學習因子c1=c1=0,粒子也就會循著當前方向減速飛行,粒子陷入局部最優,從而使整個粒子群過早收斂.
遺傳算法(GA)是一個較為經典的啟發式算法,選擇、交叉、變異是該算法的主要過程.在遺傳算法的交叉過程中,把兩個父代個體的部分結構進行重構,生成一個新的個體,其種群規模與父代一致,當交叉概率值越大時,算法的收斂性也得到了加快,具有很強的局部優化能力[8].在前期迭代搜索過程中粒子群算法加入遺傳算法的交叉操作,生成了兩個新的個體[9-10],方程如公式(6)所示.同時為了維護種群的多樣性,增強全局搜索能力,引入動態的慣性權重參數,如公式(7)所示.
(6)
(p,q),
(7)
其中,ωmin和ωmax分別為初始權重和最大迭代次數時的權重;tmax最大迭代次數;σ為慣性因子;α為[0,1]之間的隨機數.
改進的粒子群優化算法流程如下:
Step1 設置參數并且初始化.確定粒子種群數量、最大迭代次數、粒子的隨機位置閾值和速度閾值等參數,每個粒子的pbest設置為當前位置,gbest為當前種群的最優值.
Step2 計算每個粒子的適應度值.結合傳遞函數和種群位置更新方程,確定PID控制參數的設定,對種群的歷史pbest的適應值和全局gbest的適應度值進行比較,對pbest和gbest進行更新.
Step3 種群迭代更新.通過公式進行迭代操作,更新每個粒子的位置和速度.
Step4 引入遺傳算法.保留適應度值比較好的,并對其進行交叉操作,產生同數量的子代,對子代粒子計算適應度值,并同父代的適應度值進行比較,保留較好的進行下一代.
Step5 獲取最優解.看迭代次數有沒有超過最大迭代次數,或者是否獲得最優的適應值.如果達到,轉入step6;否則轉入step2.
Step6 輸出gbest.
其算法流程圖如圖1所示.
為驗證基于動態慣性權重的交叉算子PSO算法在PID控制參數整定的優化效果,本文采用的是一階傳遞函數進行測試,方程如公式(8)所示.同時,適應度函數的選取常用的有積分平方差(ISE)、積分時間乘絕對值誤差(ITAE)和積分絕對值誤差(IAE)[11],本文選用ITAE作為評判指標,其方程如公式(9)所示.
(8)

(9)
采用Matlab來實現改進的PSO算法,Matlab軟件進行PID整定參數的仿真,利用選擇單位階躍信號作為PID的輸入信號.在本次實驗中,初始種群的規模為100,最大迭代次數為100,c1=c2=1.5,交叉概率為0.6,變異概率設置為0.02[12-14],采用改進的粒子群優化算法對PID參數的整定并與標準的粒子群算法進行比較,比較這兩種算法對PID控制器優化的階躍響應控制效果.
由圖2可知,ITAE性能指數會根據迭代次數的增加而不斷下降,這說明算法有較快的收斂速度,并且改進的PSO算法其收斂速度得到了加快,明顯比標準的PSO要收斂得迅速.同時也很好地表明改進的PSO算法可以對PID控制器的3個參數做出更合適的選擇,從而使得PID控制器的性能得到進一步的改善,實現了本文提出的性能改善.
由圖3中各曲線PID控制輸出結果比較我們可以看到,標準的粒子群算法得到的單位階躍響應曲線上升時間雖然比改進的粒子群算法要稍微快一些,但系統產生了振蕩和超大調.而用遺傳算法改進的粒子群算法在PID參數整定中系統運行超調現象不明顯,達到對系統準確、快速、穩定的要求.
表1為本文所提出的改進方案與標準PSO方案應用于PID參數整定的性能對比分析.

表1 數據優化結果平均值
從表1中可以發現,在相同的迭代次數下,與標準PSO相比改進粒子群算法其優化效果要好,在快速達到整定狀態和找到全局最優解方面也要比標準的PSO算法好.由此可知,在PID參數整定中,運用改進的PSO算法具有更好的系統優化性能,實現了更快的收斂速度,并防止了過早收斂.
結合遺傳算法中交叉算子和粒子群收斂快、運行簡單的優點上,提出了一種改進的粒子群算法.在前期搜索過程中,粒子群位置方程公式轉化為PID 3個參數對其進行迭代更新,并同時引入交叉算子,防止收斂過快陷入局部最優,又為了保證種群的多樣性加入動態的權重因子,使控制系統的全局優化性能得到改善.實驗結果表明,改進粒子群算法優化的PID參數使得系統性能指標改善得更好:系統沒有超調量、穩態誤差相對較小,基本達到預期的效果.