孫 悅,何同祥
(華北電力大學 控制與計算機工程學院,河北 保定 071003)
比例—積分—微分(PID)控制器以其原理簡單、性能良好等優點一直被工程人員青睞,如何選取最優的PID控制器參數成為改善控制器性能,提高控制品質的關鍵。
PID控制器參數整定的方法有傳統的穩定邊界法、衰減曲線法和階躍響應曲線法等方法,這些方法實踐過程繁瑣,難以實現控制品質最優。隨著人工智能理論的發展,遺傳算法、粒子群算法、蟻群算法等智能優化方法相繼被提出,這些智能優化方法與傳統的PID技術結合,以適應復雜的工況和高指標的控制要求。
本文以蟻群算法解決TSP(旅行推銷員)問題為基礎,結合萊維飛行隨機搜索模式對蟻群算法進行改進,利用改進的算法對PID參數整定優化,并應用于過熱汽溫系統,取得了良好的控制效果。
蟻群算法(Ant Colony Algorithm,簡稱ACO)是由M.Dorigo,V.Maniezzo和A.Colorni等人于20世紀90年代初期通過模擬自然界中螞蟻集體尋徑行為而提出的一種基于種群的啟發式隨機搜索算法[1]。
蟻群算法優化PID參數時,首先定義一個有向多重圖。有向多重圖有n個節點,節點集合為{A1, A2, …, An},分別代表不同的城市。其中A1為起始節點,終點未記錄在集合內。每個城市節點只與相鄰城市節點之間有路可尋,且每相鄰兩個城市節點之間存在10條可選路徑,分別以數值1,2,…10編號標記(代表可行解某一位的可能數值),螞蟻從起始節點A1出發,做單向運動,依次訪問n個城市,到達終點。
根據優化參數的個數N,設置城市的個數n為N的整數倍:

每只螞蟻從起點開始,依次訪問全部城市到達終點,即得到一個問題的解X={xi|i=1, 2,…,N}。其中,xi的編碼長度為L。按照螞蟻訪問城市的先后順序,每經過L個城市,即對應著一個變量xi。設第k只螞蟻的某次訪問形成的軌跡為{ck1, ck2, …, cks},則該螞蟻的訪問過程所對應的解為:

式中:ckj表示螞蟻k從第j個城市出發時所選路徑的編號,取值在0~10之間。ei為變量xi的歸一化數值,xiH和xiL分別為變量xi取值范圍的上、下限。
蟻群算法優化過程中,首先將各個路徑上的信息素初始化。令τij(t)表示時刻t城市i到下一個城市的第j條路徑上的信息素量,τij(t)是常數。然后,令每只螞蟻從同一起點開始訪問各個城市,每只螞蟻從上一個城市選擇任意路徑到下一個城市所需要的時間是相同的。在時刻t每只螞蟻都要以某種概率選擇一條路徑去下一個城市,并在t+1時刻到達該城市。那么,對于時刻t,螞蟻k從城市i選擇第j條路徑到下一個城市的概率為Pijk(t),其計算公式為:

每只螞蟻根據由式(4)計算的最大概率選擇路徑。當螞蟻訪問過所有城市到達終點后,評價每只螞蟻走過的路徑。首先利用式(2)和式(3)求得對應的解,并求取相應的目標函數Qk的值,然后記錄下此次循環的最佳路徑,更新最佳目標函數值。為了避免殘留信息素過多而讓啟發信息淹沒,在每只螞蟻完成對n個城市的訪問后,對各只螞蟻所經過的路徑上的信息素進行更新,即:

其中,ρ (0<ρ<1)表示路徑上信息素的蒸發系數,1-ρ表示信息素的持久性系數;Δτijk表示本次遍歷中邊ij上信息素的增量,Δτijk(t)的計算式為:

式中:Q為常數,表示信息素強度;Qk為第k只螞蟻在本次遍歷中的目標函數值。
信息素更新完成后,進入下一次循環,直到達到最大循環次數Nc或算法最后收斂到所有的螞蟻訪問軌跡相同為止。
在基本蟻群算法中,信息素量大的路徑對每次路徑選擇和信息素的更新起主要作用,強化最優信息反饋,可能導致“早熟”停滯現象。信息素蒸發系數ρ的大小將直接影響到整個蟻群算法的收斂速度和全局搜索性能。ρ過小時,則表示以前搜索過的路徑被再次選擇的可能性過大,會影響到算法的隨機性能和全局搜索能力;ρ過大時,說明路徑上的信息素揮發的相對較多,雖然可以提高算法的隨機性能和全局搜索能力,但過多無用搜索操作將降低算法收斂速度[2]。
萊維飛行是一種步長較小的短距離行走與偶爾大步長的行走相互交替的行走方式。因此,一部分解在當前最優值附近搜索,從而加速了局部搜索;另一部分解可以在離當前最優值足夠遠的空間進行搜索,從而保證系統不會陷于局部最優[3]。傳統蟻群算法中信息素蒸發系數ρ通常是一個定值,改進的蟻群算法借鑒萊維飛行機制,能夠擴大搜索范圍,有效解決算法易于陷于局部最優解的問題。
由于實現萊維飛行很復雜,所以使用Mantegna算法模擬萊維飛行產生隨機步長,那么萊維飛行位置更新式如下:

其中:xi(t)表示xi第t代位置;⊕為點乘運算符;α表示步長控制量;μ / |v|1/β為隨機搜索路徑。
μ為正態分布,定義:

其中:β通常取值為[1,2],Γ為標準伽馬函數。v服從標準正態分布。
對萊維飛行模式做出一定改進,以符合蟻群算法的搜索方式。信息素蒸發系數ρ的位置更新式即為[4]:

蟻群算法優化PID參數是為了使系統擁有更好的性能,提高控制品質。因此,選用性能指標做依據建立目標函數衡量PID控制器參數是否最佳。時間乘絕對誤差積分準則(ITAE)能反映控制系統的快速性和精確性,按照這種準則設計的控制系統具有較小的超調量和較快的響應時間。

圖1 PID單位階躍響應比較圖Fig.1 PID Unit step response comparison chart
因此,選用ITAE為目標函數。目標函數如下:

本文過熱汽溫控制系統引用自文獻[5],該系統導前區傳遞函數為:

惰性區傳遞函數為:

過熱控制系統的主回路采用PID控制器,副回路采用P控制器。利用經驗公式整定出的主控制器參數為:Kp1=0.35,Ti1=318.6,Td1=39.8~79.6,副控制器參數為:Kp2=1.33。選擇主控制器參數范圍:Kp1為[0.25,0.67],Ti1為[150,450],Td1為[40,80],副控制器參數范圍:Kp2為[0.83,2.86]。
在仿真中輸入信號采用單位階躍函數,令Q=1×1015,α=1,螞蟻的總數m為40,循環次Nc=30,各個節點上的信息素初始值為100。尋優結果:Kp1=0.5599,Ti1=280.8627,Td1=78.3790,Kp2=1.8556。

圖2 目標函數值優化曲線Fig.2 Objective function value optimization curve
為了分析本文提出的算法性能,將改進后的算法與傳統的蟻群算法做了比較,得到系統的響應曲線如圖1所示。可以看出改進的蟻群算法幾乎不產生超調量,過渡時間比較短,能夠更快地進入穩定狀態。與蟻群算法整定出的PID參數相比,改進的蟻群算法整定出的PID控制器參數,具有良好的控制效果。兩種算法同樣迭代30次,其目標函數值變化如圖2所示。改進蟻群算法雖然收斂速度相對較慢,但提高了收斂精度,具有更優的全局尋優能力。因此,基于萊維飛行的改進蟻群算法是合理可行的。
本文對蟻群算法進行了分析,將自然界中一些鳥類和果蠅的萊維飛行行為與螞蟻搜索食物的過程相結合,從而達到優化目的;對過熱汽溫控制系統的PID參數優化進行了仿真測試,并與改進前的蟻群算法比較,結果表明改進的蟻群算法能很好地兼顧快速性和穩定性,有效提高算法的精度,避免陷入局部最優。