許久峰,苗國立,聶金榮,程曉天
(1. 河南省煤炭科學(xué)研究院有限公司,河南 鄭州 450001;2.河南送變電建設(shè)公司,河南 鄭州 450051;3.鄭州交通職業(yè)學(xué)院 交通工程系,河南 鄭州450011;4.河南省產(chǎn)品質(zhì)量監(jiān)督檢驗院,河南 鄭州450004)
傳統(tǒng)的參數(shù)估計方法已經(jīng)比較成熟,如常用的最小二乘法、梯度校正法、極大似然估計法[1]等,這些方法都利用梯度下降尋優(yōu)法來求解,在某種特定的情況下(如對多峰目標函數(shù)的求解)可能會陷入局部極值.近年來,越來越多的智能算法應(yīng)用于參數(shù)估計中,如神經(jīng)網(wǎng)絡(luò)法[2]、遺傳算法[3-4]等.神經(jīng)網(wǎng)絡(luò)雖然具有以任意精度逼近線性函數(shù)的能力,已經(jīng)被廣泛應(yīng)用于線性系統(tǒng)的擬合,但是在實際應(yīng)用中,如何選擇合適的網(wǎng)絡(luò)結(jié)構(gòu)是當前遇到的最大困難之一.利用遺傳算法對過程模型參數(shù)進行優(yōu)化估計能夠獲得比較好的參數(shù)估計效果,但是遺傳算法易于早熟收斂,此外還涉及繁瑣的編碼和解碼過程且需要較大的計算量.
微粒群優(yōu)化(PSO)算法是群體智能計算的典型代表,由于微粒群算法具有較強的通用性和全局尋優(yōu)的特點,引起了眾多研究者的關(guān)注,并在諸多領(lǐng)域得到了廣泛應(yīng)用.本文從提高優(yōu)化求解速度的角度對微粒群算法進行了改進,將改進算法應(yīng)用到模型參數(shù)估計中.
對于SISO系統(tǒng),模型參數(shù)估計問題的一般描述形式為:
y=f(u,θ)+e
(1)
其中,y為系統(tǒng)輸出,u為系統(tǒng)輸入,θ為待估計的模型參數(shù),e是均值為0、方差為δ的白噪聲信號.
參數(shù)辨識時采用的準則函數(shù)一般定義為輸出誤差的函數(shù),即:
(2)
所以,模型參數(shù)估計問題也即是按照某種優(yōu)化算法,根據(jù)已知數(shù)據(jù),估計出使J(θ)為最小的模型參數(shù)θ值.因此,模型參數(shù)估計本質(zhì)是一個無約束的多維參數(shù)尋優(yōu)問題.
微粒群優(yōu)化算法是美國心理學(xué)家Kennedy和電氣工程師 Eberhart受鳥類覓食行為的啟發(fā)而提出的一種基于群體智能理論的新興演化計算技術(shù)[5].PSO算法將問題的搜索空間類比為鳥類的飛行空間,將每只鳥抽象為一個無質(zhì)量無體積的微粒,用以表征問題的一個候選解,優(yōu)化所需要尋找的最優(yōu)解則等同于要尋找的食物.PSO算法保留了基于種群的全局搜索策略,采用簡單的“速度—位移”模型,避免了復(fù)雜的遺傳操作,它特有的記憶也使其可以動態(tài)跟蹤當前的搜索情況來調(diào)整其搜索策略.
假設(shè)問題解空間為D維,由m個微粒組成的群體中的第i個微??梢员硎境蒁維向量,其中第i個微粒的位置表示為Xi=[xi1,xi2,…,xiD],第i個微粒的速度表示為Vi=[vi1,vv2,…,viD],第i個微粒經(jīng)歷的最佳位置(對應(yīng)于最好的適應(yīng)度)表示為Pi=[pi1,pi2,…,piD],也稱為Pbest.群體所有微粒經(jīng)歷的最好位值表示為Pg=[pg1,pg2,…,pgD],也稱為gbest.微粒的速度和位移更新公式,如(3)、(4)所示.
(3)
(4)
式中,w表示慣性權(quán)重,c1、c2稱為學(xué)習(xí)因子,r1、r2為在區(qū)間[0,1]變化的隨機數(shù).
由式(3)可以看出,算法當前時刻對上一時刻速度繼承的多少直接受慣性權(quán)重的影響,這直接關(guān)系到算法的搜索性能和收斂性,是影響算法搜索行為和性能的關(guān)鍵因素.因此,通過合理設(shè)置慣性權(quán)重的變化方式來兼顧算法的全局搜索和局部搜索能力,有利于快速準確地找到最優(yōu)解.實際中,最常見的權(quán)重改變方式為線性遞減權(quán)重法,按式(5)更改慣性權(quán)重:
(5)
其中,wmax、wmin分別表示w的最大值和最小值,t表示當前迭代步數(shù),tmax表示最大迭代步數(shù),通常取wmax=0.9,wmin=0.4.
但線性遞減權(quán)重法有一定的缺陷,需要通過反復(fù)試驗來確定慣性權(quán)重的最大值、最小值以及最大迭代次數(shù),且很難找到適應(yīng)于不同問題的最佳值.這是因為,在實際問題中每次迭代所需的比例關(guān)系并不相同,所以w的線性遞減只對某些問題很有效.由微粒的更新公式可以看出,PSO算法在解空間的尋優(yōu)過程實際上就是一個非線性運動過程,為了兼顧PSO算法的全局和局部搜索能力,采用一種非線性的動態(tài)慣性權(quán)重設(shè)置的方式,使慣性權(quán)重的變化隨著微粒的適應(yīng)度值自動變化,其表達式如下:
(6)
其中,f表示微粒當前的適應(yīng)度值,favg和fmin分別表示當前所有微粒的平均適應(yīng)度值和最小適應(yīng)度值.慣性權(quán)重隨著微粒的適應(yīng)度值而自動改變,所以稱為自適應(yīng)權(quán)重.
當各微粒的適應(yīng)度值趨于一致或者趨于局部最優(yōu)時,將慣性權(quán)重增加,而各微粒的適應(yīng)度值比較分散時,將慣性權(quán)重減小,同時對于適應(yīng)度值優(yōu)于平均適應(yīng)度值的微粒,其對應(yīng)的慣性權(quán)重較小,從而保護了該微粒,反之對于適應(yīng)度值差于平均適應(yīng)度值的微粒,其對應(yīng)的慣性權(quán)重因子較大,使得該微粒向較好的搜索區(qū)域靠攏.
假設(shè)待估計的參數(shù)為D個,令微粒群的搜索空間維數(shù)為D維,將待估計的未知模型參數(shù)看成解空間的一個最優(yōu)解,這樣第i個微粒的位置就可表示成一D維向量Xi=[xi1,xi2, …,xiD]. 其中,Xi中的每一個元素代表一個未知的模型參數(shù).微粒在由式(2)構(gòu)造的適應(yīng)度函數(shù)驅(qū)動下,執(zhí)行解空間內(nèi)全局搜索策略,對未知的模型參數(shù)進行全局尋優(yōu),使之與所測系統(tǒng)的模型參數(shù)擬合得最好.微粒搜索到的最優(yōu)解也即是待估計的模型參數(shù).由于PSO算法的性能受慣性權(quán)重的影響較大,在此采用基于自適應(yīng)權(quán)重的PSO算法來估計模型參數(shù).
算法的實現(xiàn)步驟如下.
步驟一:根據(jù)待優(yōu)化的問題,設(shè)置相關(guān)初始參數(shù),如微粒的維數(shù)D、種群規(guī)模m、慣性權(quán)重wmax和wmin、加速度常數(shù)c1和c2,算法結(jié)束的條件等;
步驟二:初始化群體中微粒的初始位置和初始速度;
步驟三:評價各微粒的適應(yīng)度值J(θ),將當前各微粒的位置和適應(yīng)度值存儲在各微粒的pbest中,將所有pbest中最優(yōu)個體的位置和適應(yīng)度值存儲于gbest中;
步驟四:根據(jù)算式(3)和(4)更新各微粒的位置和速度;
步驟五:根據(jù)式(6)更新慣性權(quán)重;
步驟六:對每個微粒,將其適應(yīng)度值與歷史最好位置pbest相比較,如果當前適應(yīng)度值更優(yōu),則用當前適應(yīng)度值更新pbest;
步驟七:將每個微粒的適應(yīng)度值與群體經(jīng)歷過的歷史最佳位置gbest相比較,如果當前群體中最好的適應(yīng)度值較好,則將其置為新的gbest,并記錄其索引號;
步驟八:根據(jù)優(yōu)化性能指標值,判斷是否已達到結(jié)束條件,如果達到算法終止條件,則返回當前最佳微粒的結(jié)果作為模型參數(shù),算法結(jié)束;否則返回步驟四,繼續(xù)下一循環(huán).
為了驗證利用自適應(yīng)權(quán)重PSO算法進行過程模型參數(shù)估計的有效性,下面分別對兩個過程對象(線性模型和非線性模型的未知參數(shù))進行仿真研究.
已知仿真對象的離散化模型如式(7)所示,模型參數(shù)a1、b1未知.通過實驗測得系統(tǒng)的階躍響應(yīng)數(shù)據(jù)如表1所示.采用所提算法,估計模型的未知參數(shù).
z(k)+a1z(k-1)=b1u(k-2)+e(k)
(7)
式中,e(k)是服從正態(tài)分布的白噪聲N(0,1).
表1 單位階躍響應(yīng)下過程的輸出數(shù)據(jù)Tab.1 The output data of process step response
(8)
迭代時需注意,當k=1,2時,z(k)=0.
辨識過程中未知參數(shù)a1、b1的變化趨勢,如圖1所示.將估計值與采用最小二乘法的參數(shù)估計結(jié)果對比,如表2所示.
圖1 參數(shù)辨識曲線Fig.1 Parameter identification curves
參 數(shù)a1b1真實值-0.836 50.117 8最小二乘估計-0.829 60.117 2自適應(yīng)權(quán)重PSO-0.836 60.122 5
由表2的參數(shù)估計結(jié)果可以看出,自適應(yīng)權(quán)重PSO具有很好的參數(shù)辨識效果,辨識值接近真實值.在Matlab仿真過程中,最小二乘估計迭代15步用時1.299 9 s,自適應(yīng)權(quán)重PSO迭代300步用時僅為0.945 8 s,自適應(yīng)權(quán)重PSO的搜索效率較高.再從圖1參數(shù)辨識曲線圖來看,a1、b1在迭代進行到50步左右已經(jīng)達到搜索最優(yōu)值,算法的收斂速度很快.可見,將自適應(yīng)權(quán)重PSO算法應(yīng)用到線性模型參數(shù)估計中,算法的精度和效率均很高,具有較好的辨識效果.
動力學(xué)系統(tǒng)辨識是系統(tǒng)辨識學(xué)科中的一個重要分支.一般情況下,系統(tǒng)的動力學(xué)基本數(shù)學(xué)模型是已知的,需要辨識的只是動力學(xué)方程中的某些待定參數(shù),這類問題屬于典型的“灰箱問題”.下面以間歇式反應(yīng)過程為例,辨識其動力學(xué)參數(shù).由理論分析可知,聚合反應(yīng)過程具有非線性和時變的特點.
對于在間歇反應(yīng)器進行的某反應(yīng),其反應(yīng)系統(tǒng)為A+2B→C,已知其動力學(xué)模型如式(9)所示.
(9)
從間歇反應(yīng)器中獲得的初始反應(yīng)速率數(shù)據(jù)表見文獻[6]所示,由該測試數(shù)據(jù)估計動力學(xué)模型的未知參數(shù)k、n和m.
(10)
基于自適應(yīng)權(quán)重PSO的參數(shù)估計結(jié)果,與非線性回歸法估計出的參數(shù)值對比,如表3所示.
表3 參數(shù)估計結(jié)果Tab.3 Results of parameter estimation
基于自適應(yīng)權(quán)重PSO的參數(shù)估計,在參數(shù)估計過程中,未知參數(shù)的變化趨勢曲線和適應(yīng)度值變化曲線,如圖2和圖3所示.
圖2 參數(shù)辨識曲線Fig.2 Parameter identification curves
圖3 適應(yīng)度值變化曲線Fig.3 Fitness value curve
根據(jù)自適應(yīng)權(quán)重PSO和非線性回歸法估計的模型參數(shù)(表3中參數(shù)估計結(jié)果),求出模型擬合值,并與實際值對比,如表4所示.
表4 實際值和擬合值Tab.4 Actual values and fitted values
由圖2參數(shù)辨識圖可知,k、n和m在迭代進行到100步左右已經(jīng)收斂到最優(yōu)值.采用非線性回歸迭代用時0.946 2 s,而自適應(yīng)權(quán)重PSO迭代300步用時僅為0.643 0 s,辨識速度較快.為比較兩者的辨識效果,根據(jù)表4的擬合值,采用剩余標準差式(11)來衡量辨識的精度.
(11)
非線性回歸的模型剩余標準差為0.011 2,而自適應(yīng)權(quán)重PSO的模型剩余標準差為0.002 4.可見,采用自適應(yīng)權(quán)重PSO估計的非線性模型參數(shù)具有更好的辨識精度,也進一步證明了該算法的可行性和有效性.
本文將自適應(yīng)權(quán)重PSO算法應(yīng)用于模型參數(shù)估計,并詳細介紹了算法實現(xiàn)的步驟和方法.通過對兩個實例的仿真研究,證明了該算法在線性模擬參數(shù)估計和非線性模型參數(shù)估計中均是可行的、有效的.與傳統(tǒng)的參數(shù)估計算法相比,該算法無論在效率還是精度上均有更好的性能.同時,該算法也為模型參數(shù)估計提供了一條新的途徑.
參考文獻:
[1] 潘立登,潘仰東.系統(tǒng)辨識與建模[M].北京:化學(xué)工業(yè)出版社,2004:80-91.
[2] 張鎮(zhèn),鄭敏.基于過程神經(jīng)網(wǎng)絡(luò)時變系統(tǒng)的參數(shù)辨識[J].江南大學(xué)學(xué)報:自然科學(xué)版,2008,7(6):637-640.
[3] 袁曉磊,白焰,董玲.基于遺傳編程的非線性系統(tǒng)辨識[J].控制工程,2009,16(1):52-55.
[4] 劉長良,姚萬業(yè),翟永杰,等.一種改進的遺傳算法及其在熱工過程控制中的應(yīng)用[J].自動化儀表,2002,23(9):13-16.
[5] KENNEDY J,EBERHART R C.Particle swarm optimization[C].In:Proc.IEEE international Conference on Neural Networks,1995:1942-1948.
[6] 黃華江.實用化工計算機模擬—MATLAB在化學(xué)工程中的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2004:231-233.