孫 悅,何同祥
(華北電力大學(xué) 控制與計(jì)算機(jī)工程學(xué)院,河北 保定 071003)
比例—積分—微分(PID)控制器以其原理簡(jiǎn)單、性能良好等優(yōu)點(diǎn)一直被工程人員青睞,如何選取最優(yōu)的PID控制器參數(shù)成為改善控制器性能,提高控制品質(zhì)的關(guān)鍵。
PID控制器參數(shù)整定的方法有傳統(tǒng)的穩(wěn)定邊界法、衰減曲線法和階躍響應(yīng)曲線法等方法,這些方法實(shí)踐過(guò)程繁瑣,難以實(shí)現(xiàn)控制品質(zhì)最優(yōu)。隨著人工智能理論的發(fā)展,遺傳算法、粒子群算法、蟻群算法等智能優(yōu)化方法相繼被提出,這些智能優(yōu)化方法與傳統(tǒng)的PID技術(shù)結(jié)合,以適應(yīng)復(fù)雜的工況和高指標(biāo)的控制要求。
本文以蟻群算法解決TSP(旅行推銷員)問(wèn)題為基礎(chǔ),結(jié)合萊維飛行隨機(jī)搜索模式對(duì)蟻群算法進(jìn)行改進(jìn),利用改進(jìn)的算法對(duì)PID參數(shù)整定優(yōu)化,并應(yīng)用于過(guò)熱汽溫系統(tǒng),取得了良好的控制效果。
蟻群算法(Ant Colony Algorithm,簡(jiǎn)稱ACO)是由M.Dorigo,V.Maniezzo和A.Colorni等人于20世紀(jì)90年代初期通過(guò)模擬自然界中螞蟻集體尋徑行為而提出的一種基于種群的啟發(fā)式隨機(jī)搜索算法[1]。
蟻群算法優(yōu)化PID參數(shù)時(shí),首先定義一個(gè)有向多重圖。有向多重圖有n個(gè)節(jié)點(diǎn),節(jié)點(diǎn)集合為{A1, A2, …, An},分別代表不同的城市。其中A1為起始節(jié)點(diǎn),終點(diǎn)未記錄在集合內(nèi)。每個(gè)城市節(jié)點(diǎn)只與相鄰城市節(jié)點(diǎn)之間有路可尋,且每相鄰兩個(gè)城市節(jié)點(diǎn)之間存在10條可選路徑,分別以數(shù)值1,2,…10編號(hào)標(biāo)記(代表可行解某一位的可能數(shù)值),螞蟻從起始節(jié)點(diǎn)A1出發(fā),做單向運(yùn)動(dòng),依次訪問(wèn)n個(gè)城市,到達(dá)終點(diǎn)。
根據(jù)優(yōu)化參數(shù)的個(gè)數(shù)N,設(shè)置城市的個(gè)數(shù)n為N的整數(shù)倍:
每只螞蟻從起點(diǎn)開(kāi)始,依次訪問(wèn)全部城市到達(dá)終點(diǎn),即得到一個(gè)問(wèn)題的解X={xi|i=1, 2,…,N}。其中,xi的編碼長(zhǎng)度為L(zhǎng)。按照螞蟻訪問(wèn)城市的先后順序,每經(jīng)過(guò)L個(gè)城市,即對(duì)應(yīng)著一個(gè)變量xi。設(shè)第k只螞蟻的某次訪問(wèn)形成的軌跡為{ck1, ck2, …, cks},則該螞蟻的訪問(wèn)過(guò)程所對(duì)應(yīng)的解為:
式中:ckj表示螞蟻k從第j個(gè)城市出發(fā)時(shí)所選路徑的編號(hào),取值在0~10之間。ei為變量xi的歸一化數(shù)值,xiH和xiL分別為變量xi取值范圍的上、下限。
蟻群算法優(yōu)化過(guò)程中,首先將各個(gè)路徑上的信息素初始化。令τij(t)表示時(shí)刻t城市i到下一個(gè)城市的第j條路徑上的信息素量,τij(t)是常數(shù)。然后,令每只螞蟻從同一起點(diǎn)開(kāi)始訪問(wèn)各個(gè)城市,每只螞蟻從上一個(gè)城市選擇任意路徑到下一個(gè)城市所需要的時(shí)間是相同的。在時(shí)刻t每只螞蟻都要以某種概率選擇一條路徑去下一個(gè)城市,并在t+1時(shí)刻到達(dá)該城市。那么,對(duì)于時(shí)刻t,螞蟻k從城市i選擇第j條路徑到下一個(gè)城市的概率為Pijk(t),其計(jì)算公式為:
每只螞蟻根據(jù)由式(4)計(jì)算的最大概率選擇路徑。當(dāng)螞蟻訪問(wèn)過(guò)所有城市到達(dá)終點(diǎn)后,評(píng)價(jià)每只螞蟻?zhàn)哌^(guò)的路徑。首先利用式(2)和式(3)求得對(duì)應(yīng)的解,并求取相應(yīng)的目標(biāo)函數(shù)Qk的值,然后記錄下此次循環(huán)的最佳路徑,更新最佳目標(biāo)函數(shù)值。為了避免殘留信息素過(guò)多而讓啟發(fā)信息淹沒(méi),在每只螞蟻完成對(duì)n個(gè)城市的訪問(wèn)后,對(duì)各只螞蟻所經(jīng)過(guò)的路徑上的信息素進(jìn)行更新,即:
其中,ρ (0<ρ<1)表示路徑上信息素的蒸發(fā)系數(shù),1-ρ表示信息素的持久性系數(shù);Δτijk表示本次遍歷中邊ij上信息素的增量,Δτijk(t)的計(jì)算式為:
式中:Q為常數(shù),表示信息素強(qiáng)度;Qk為第k只螞蟻在本次遍歷中的目標(biāo)函數(shù)值。
信息素更新完成后,進(jìn)入下一次循環(huán),直到達(dá)到最大循環(huán)次數(shù)Nc或算法最后收斂到所有的螞蟻訪問(wèn)軌跡相同為止。
在基本蟻群算法中,信息素量大的路徑對(duì)每次路徑選擇和信息素的更新起主要作用,強(qiáng)化最優(yōu)信息反饋,可能導(dǎo)致“早熟”停滯現(xiàn)象。信息素蒸發(fā)系數(shù)ρ的大小將直接影響到整個(gè)蟻群算法的收斂速度和全局搜索性能。ρ過(guò)小時(shí),則表示以前搜索過(guò)的路徑被再次選擇的可能性過(guò)大,會(huì)影響到算法的隨機(jī)性能和全局搜索能力;ρ過(guò)大時(shí),說(shuō)明路徑上的信息素?fù)]發(fā)的相對(duì)較多,雖然可以提高算法的隨機(jī)性能和全局搜索能力,但過(guò)多無(wú)用搜索操作將降低算法收斂速度[2]。
萊維飛行是一種步長(zhǎng)較小的短距離行走與偶爾大步長(zhǎng)的行走相互交替的行走方式。因此,一部分解在當(dāng)前最優(yōu)值附近搜索,從而加速了局部搜索;另一部分解可以在離當(dāng)前最優(yōu)值足夠遠(yuǎn)的空間進(jìn)行搜索,從而保證系統(tǒng)不會(huì)陷于局部最優(yōu)[3]。傳統(tǒng)蟻群算法中信息素蒸發(fā)系數(shù)ρ通常是一個(gè)定值,改進(jìn)的蟻群算法借鑒萊維飛行機(jī)制,能夠擴(kuò)大搜索范圍,有效解決算法易于陷于局部最優(yōu)解的問(wèn)題。
由于實(shí)現(xiàn)萊維飛行很復(fù)雜,所以使用Mantegna算法模擬萊維飛行產(chǎn)生隨機(jī)步長(zhǎng),那么萊維飛行位置更新式如下:
其中:xi(t)表示xi第t代位置;⊕為點(diǎn)乘運(yùn)算符;α表示步長(zhǎng)控制量;μ / |v|1/β為隨機(jī)搜索路徑。
μ為正態(tài)分布,定義:
其中:β通常取值為[1,2],Γ為標(biāo)準(zhǔn)伽馬函數(shù)。v服從標(biāo)準(zhǔn)正態(tài)分布。
對(duì)萊維飛行模式做出一定改進(jìn),以符合蟻群算法的搜索方式。信息素蒸發(fā)系數(shù)ρ的位置更新式即為[4]:
蟻群算法優(yōu)化PID參數(shù)是為了使系統(tǒng)擁有更好的性能,提高控制品質(zhì)。因此,選用性能指標(biāo)做依據(jù)建立目標(biāo)函數(shù)衡量PID控制器參數(shù)是否最佳。時(shí)間乘絕對(duì)誤差積分準(zhǔn)則(ITAE)能反映控制系統(tǒng)的快速性和精確性,按照這種準(zhǔn)則設(shè)計(jì)的控制系統(tǒng)具有較小的超調(diào)量和較快的響應(yīng)時(shí)間。
圖1 PID單位階躍響應(yīng)比較圖Fig.1 PID Unit step response comparison chart
因此,選用ITAE為目標(biāo)函數(shù)。目標(biāo)函數(shù)如下:
本文過(guò)熱汽溫控制系統(tǒng)引用自文獻(xiàn)[5],該系統(tǒng)導(dǎo)前區(qū)傳遞函數(shù)為:
惰性區(qū)傳遞函數(shù)為:
過(guò)熱控制系統(tǒng)的主回路采用PID控制器,副回路采用P控制器。利用經(jīng)驗(yàn)公式整定出的主控制器參數(shù)為:Kp1=0.35,Ti1=318.6,Td1=39.8~79.6,副控制器參數(shù)為:Kp2=1.33。選擇主控制器參數(shù)范圍:Kp1為[0.25,0.67],Ti1為[150,450],Td1為[40,80],副控制器參數(shù)范圍:Kp2為[0.83,2.86]。
在仿真中輸入信號(hào)采用單位階躍函數(shù),令Q=1×1015,α=1,螞蟻的總數(shù)m為40,循環(huán)次Nc=30,各個(gè)節(jié)點(diǎn)上的信息素初始值為100。尋優(yōu)結(jié)果:Kp1=0.5599,Ti1=280.8627,Td1=78.3790,Kp2=1.8556。
圖2 目標(biāo)函數(shù)值優(yōu)化曲線Fig.2 Objective function value optimization curve
為了分析本文提出的算法性能,將改進(jìn)后的算法與傳統(tǒng)的蟻群算法做了比較,得到系統(tǒng)的響應(yīng)曲線如圖1所示??梢钥闯龈倪M(jìn)的蟻群算法幾乎不產(chǎn)生超調(diào)量,過(guò)渡時(shí)間比較短,能夠更快地進(jìn)入穩(wěn)定狀態(tài)。與蟻群算法整定出的PID參數(shù)相比,改進(jìn)的蟻群算法整定出的PID控制器參數(shù),具有良好的控制效果。兩種算法同樣迭代30次,其目標(biāo)函數(shù)值變化如圖2所示。改進(jìn)蟻群算法雖然收斂速度相對(duì)較慢,但提高了收斂精度,具有更優(yōu)的全局尋優(yōu)能力。因此,基于萊維飛行的改進(jìn)蟻群算法是合理可行的。
本文對(duì)蟻群算法進(jìn)行了分析,將自然界中一些鳥(niǎo)類和果蠅的萊維飛行行為與螞蟻搜索食物的過(guò)程相結(jié)合,從而達(dá)到優(yōu)化目的;對(duì)過(guò)熱汽溫控制系統(tǒng)的PID參數(shù)優(yōu)化進(jìn)行了仿真測(cè)試,并與改進(jìn)前的蟻群算法比較,結(jié)果表明改進(jìn)的蟻群算法能很好地兼顧快速性和穩(wěn)定性,有效提高算法的精度,避免陷入局部最優(yōu)。