魏振方 齊名軍
摘要: 針對非線性系統(tǒng)模型的多樣性,提出了適用于多種非線性模型的基于粒子群優(yōu)化算法的參數(shù)估計(jì)方法。 計(jì)算結(jié)果表明,粒子群優(yōu)化算法是非線性系統(tǒng)模型參數(shù)估計(jì)的有效工具。
關(guān)鍵詞: 粒子群優(yōu)化算法; 非線性系統(tǒng); 參數(shù)估計(jì); 優(yōu)化
中國分類號:TP301.6文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2012)04-34-02
An algorithm of parameter estimation of nonlinear system model
Wei Zhengfang, Qi Mingjun
(Hebi Occupation Technology College, Hebi, Henan 458030, China)
Abstract: Aiming at the diversity of nonlinear system model, it is proposed in this article a parameter estimation method based on particle group optimization algorithm that is applicable to a variety of nonlinear models. The result shows that the particle group optimization algorithm for parameter estimation of nonlinear system model is an effective tool.
Key words: particle group optimization algorithm; nonlinear system; parameter estimation; optimization
0 引言
非線性系統(tǒng)廣泛地存在于人們的生產(chǎn)生活中,但是,目前我們對非線性系統(tǒng)的認(rèn)識還不夠深入,不能像線性系統(tǒng)那樣,把所涉及的模型全部規(guī)范化,從而使辯識方法也規(guī)范化。非線性模型的表達(dá)方式相對比較復(fù)雜,目前還很少有人研究各種表達(dá)方式是否存在等效關(guān)系,因此,暫時(shí)還沒有找到對所有非線性模型都適用的參數(shù)模型估計(jì)方法[1]。如果能找到一種不依賴于非線性模型的表達(dá)方式的參數(shù)估計(jì)方法,那么,也就找到了對一般非線性模型系統(tǒng)進(jìn)行參數(shù)估計(jì)的方法[2]。
粒子群優(yōu)化算法[3](Particle Swarm Optimaziton,簡稱PSO)是由Kennedy博士和Eberhart博士于1995年提出的一種基于群體智能的優(yōu)化算法,它源于對鳥群群體運(yùn)動行為的研究,即粒子群優(yōu)化算法模擬鳥群的捕食行為。設(shè)想這樣一個(gè)場景:一群鳥在隨機(jī)搜索食物,在這個(gè)區(qū)域里只有一塊食物,所有的鳥都不知道食物在那里,但是他們知道當(dāng)前的位置離食物還有多遠(yuǎn),那么找到食物的最優(yōu)策略是什么呢?最簡單有效的方法就是搜尋目前離食物最近的鳥的周圍區(qū)域。粒子群優(yōu)化算法從這種模型中得到啟示并用于解決一些優(yōu)化問題。粒子群優(yōu)化算法中,每個(gè)優(yōu)化問題的解都是搜索空間中的一只鳥,我們稱之為“粒子”。所有的粒子都有一個(gè)由被優(yōu)化的函數(shù)決定的適應(yīng)值(fitness value),每個(gè)粒子還有一個(gè)速度決定他們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。粒子群優(yōu)化算法將粒子解初始化為一群隨機(jī)粒子(隨機(jī)解),然后通過迭代找到最優(yōu)解。在每一次迭代中,粒子通過跟蹤兩個(gè)"極值"來更新自己,第一個(gè)就是粒子本身所找到的最優(yōu)解,這個(gè)解叫做個(gè)體極值pBest,另一個(gè)極值是整個(gè)種群目前找到的最優(yōu)解,這個(gè)極值是全局極值gBest。另外也可以不用整個(gè)種群而只是用其中一部分作為粒子的鄰居,那么在所有鄰居中的極值就是局部極值。其基本思想[4]是模擬自然界生物的群體行為來構(gòu)造解的隨機(jī)優(yōu)化算法,即從一組初始解群開始迭代,逐步淘汰較差的解,產(chǎn)生更好的解,直到滿足某種收斂指標(biāo),即得到了問題的最優(yōu)解。假設(shè)在一個(gè)n維的目標(biāo)搜索空間中,有m個(gè)粒子組成一個(gè)群落,其中第i個(gè)粒子在n維搜索空間中的位置表示為一個(gè)n維向量,每個(gè)粒子的位置代表一個(gè)潛在的解。設(shè)為粒子i的當(dāng)前位置;為粒子i當(dāng)前飛行的速度;為粒子i所經(jīng)歷的最好位置,也就是粒子i所經(jīng)歷過的具有最好適應(yīng)值的位置,稱為個(gè)體最優(yōu)位置;為整個(gè)粒子群直至當(dāng)前時(shí)刻搜索到的最優(yōu)位置,稱為全局最優(yōu)位置。將帶入目標(biāo)函數(shù)計(jì)算出其適應(yīng)值,根據(jù)適應(yīng)值的大小可以衡量的優(yōu)劣。每個(gè)粒子的位置和速度按下文中式⑶和⑷兩個(gè)公式迭代求得。用j?表示粒子的第j維(j=1,2,…,n),i表示第i個(gè)粒子(i=1,2,…,m),t表示第t代,c1、c2為加速度常數(shù),通常在0~2間取值,c1調(diào)節(jié)粒子向自身最優(yōu)位置飛行的步長,c2調(diào)節(jié)粒子向全局最優(yōu)位置飛行的步長。,為兩個(gè)相互獨(dú)立的隨機(jī)函數(shù)。為了減小在進(jìn)化過程中粒子離開搜索空間的可能性,vij通常限定于一定范圍內(nèi),即。如果問題的搜索空間限定在內(nèi),則可設(shè)定。迭代中若粒子的位置和速度超出了限定范圍,則取邊界值。代表第i個(gè)粒子在t時(shí)刻位置到直至t時(shí)刻搜索到的最優(yōu)位置的距離,代表第i個(gè)粒子在t時(shí)刻位置到整個(gè)粒子群直至t時(shí)刻搜索到的最優(yōu)位置的距離。公式⑵用于計(jì)算粒子的速度,如當(dāng)前是t時(shí)刻,則粒子在t+1時(shí)刻速度是由當(dāng)前時(shí)刻的速度、當(dāng)前位置與該粒子的局部最優(yōu)位置的距離、當(dāng)前位置與全局最優(yōu)位置的距離共同決定的;公式⑶用于計(jì)算粒子速度更新后的位置,它由粒子當(dāng)前位置和粒子更新后的速度決定。所有粒子的初始位置和速度隨機(jī)產(chǎn)生,然后根據(jù)上述兩個(gè)公式進(jìn)行迭代,不斷變化它們的速度和位置,直到找到滿意解或達(dá)到最大的迭代次數(shù)為止(粒子的位置即是要尋找的解)。因此,粒子群優(yōu)化算法具有多點(diǎn)尋優(yōu)、并行處理等特點(diǎn)。而且粒子群優(yōu)化算法的搜索過程是從初始解群開始,以模型對應(yīng)的適應(yīng)函數(shù)作為尋優(yōu)判據(jù),從而直接對解群進(jìn)行操作,而與模型的具體表達(dá)方式無關(guān)。這就決定了粒子群優(yōu)化算法可適用于一般非線性系統(tǒng)模型的參數(shù)估計(jì)。
1 基于粒子群優(yōu)化算法的非線性系統(tǒng)模型參數(shù)估計(jì)方法
1.1 問題的提出
一般非線性系統(tǒng)模型可用式⑴表示。
⑴
式中,y(t)為系統(tǒng)輸出向量;u(t')為系統(tǒng)輸入向量,0≤t'≤t;,θ為待定參數(shù)向量。f的形式已知,且u(t')已知?,F(xiàn)已知y(t)的一組實(shí)際測量的離散數(shù)據(jù)y0(t),t=1,2,…,n。要求根據(jù)已知的y0(t)的值估計(jì)出θ的值。
為了能夠進(jìn)行辯識,式⑴所代表的非線性系統(tǒng)模型還必須滿足以下假設(shè):①y必須可測;② 每個(gè)參數(shù)必須與輸出y有關(guān),即參數(shù)可估計(jì);③系統(tǒng)的信噪比足夠大,以至噪聲可忽略不計(jì);④ 只要參數(shù)確定,通過系統(tǒng)仿真可得到確定的輸出值;⑤系統(tǒng)在有限時(shí)間t內(nèi)不發(fā)散,即y值不趨于無窮大。
1.2 基于粒子群優(yōu)化算法的參數(shù)估計(jì)方法
本文用一種改進(jìn)粒子群優(yōu)化算法自動尋找θ。具體步驟如下。
⑴確定適應(yīng)函數(shù):在已知各參數(shù)值的基礎(chǔ)上,基于式⑴,可通過仿真實(shí)驗(yàn)求得各個(gè)時(shí)間的系統(tǒng)輸出數(shù)值y(t)。辨識的目的是要使求得的系統(tǒng)輸出數(shù)值y(t)盡量接近已知的系統(tǒng)輸出數(shù)值,越接近說明仿真的效果越好,也就證明仿真所用的一組參數(shù)更接近實(shí)際參數(shù)值,因此應(yīng)使這組參數(shù)對應(yīng)的粒子群個(gè)體具有更小的適應(yīng)值。所以,我們?nèi)(t)曲線與y0(t)曲線之間距離的為適應(yīng)值,
即:⑵
⑵隨機(jī)產(chǎn)生n個(gè)θ。
⑶計(jì)算適應(yīng)值fi,再根據(jù)式⑵中確定的適應(yīng)函數(shù)計(jì)算出各個(gè)θ對應(yīng)的適應(yīng)值fi。
⑷計(jì)算每個(gè)粒子的適應(yīng)值。
⑸對于每個(gè)粒子,將其適應(yīng)值與所經(jīng)歷過的最優(yōu)位置的適應(yīng)值進(jìn)行比較,若較好,則將其作為當(dāng)前的最優(yōu)位置。
⑹對于每個(gè)粒子,將其適應(yīng)值與全局所經(jīng)歷的最優(yōu)位置的適應(yīng)值進(jìn)行比較,若較好,則將其作為當(dāng)前的全局最優(yōu)位置。
⑺根據(jù)下面2個(gè)公式對粒子的速度和位置進(jìn)行更新;
⑶
⑷⑻如未達(dá)到結(jié)束條件(通常為足夠好的適應(yīng)值)或達(dá)到一個(gè)預(yù)設(shè)最大代數(shù)Gmax,則返回步驟2 直至算法收斂,即所有個(gè)體基本相同,適應(yīng)值很難進(jìn)一步提高為止。
2 仿真研究
為了體現(xiàn)粒子群算法能適用于多種非線性系統(tǒng)模型的優(yōu)點(diǎn),我們分別以非線性系統(tǒng)的傳遞函數(shù)模型[5],非線性系統(tǒng)的狀態(tài)空間模型及在非線性系統(tǒng)研究中應(yīng)用較為廣泛的Hammerstein 模型[6]為例進(jìn)行仿真研究。
傳遞函數(shù)模型的形式如下:
可以看出,這是一個(gè)慣性環(huán)節(jié)加純時(shí)滯模型,待估計(jì)的參數(shù)是比例系數(shù)K,慣性系數(shù)T 和時(shí)滯系數(shù)τ。在仿真實(shí)驗(yàn)中, 參數(shù)設(shè)置如下:學(xué)習(xí)因子c1=1.5,c2=2.5,慣性權(quán)重,T為最大代數(shù),t為當(dāng)前進(jìn)化代數(shù),在這里w將隨著迭代次數(shù)的增加而逐漸減小,當(dāng)w小于0.4時(shí),將令w=0.4,即不再減小,以保證迭代后期粒子能夠在一定空間探索更好的解。它們的群體規(guī)模是100,其他參數(shù)不變。在搜索過程中,以100代為上限(實(shí)際上,迭代50~80次即可得到滿意結(jié)果)。仿真結(jié)果如表1所示。
表1例1 參數(shù)估計(jì)結(jié)果
[[&K&T&τ&真實(shí)值&10&5&9&估計(jì)值&10&511&9&]]
在例1的仿真實(shí)驗(yàn)中,因?yàn)槟P徒Y(jié)構(gòu)簡單,待定參數(shù)較少,應(yīng)用粒子群算法搜索較為容易,所以為了提高運(yùn)算速度,參數(shù)精度定得較底,僅為小數(shù)點(diǎn)后一位,但從搜索結(jié)果來看,參數(shù)估計(jì)是令人滿意的。實(shí)驗(yàn)說明了以下幾點(diǎn):①用粒子群優(yōu)化算法進(jìn)行參數(shù)估計(jì)是有效的;②在模型較簡單,需要估計(jì)的參數(shù)較少時(shí),用粒子群優(yōu)化算法進(jìn)行參數(shù)估計(jì)可達(dá)到比較滿意的精度。
3 結(jié)束語
本文在利用粒子群優(yōu)化算法對非線性系統(tǒng)模型參數(shù)估計(jì)方面作了一些嘗試,得到了比較滿意的結(jié)果。仿真實(shí)驗(yàn)結(jié)果表明,粒子群優(yōu)化算法切實(shí)可行,對非線性系統(tǒng)模型參數(shù)估計(jì)具有一定的實(shí)際價(jià)值和理論意義。
參考文獻(xiàn):
[1] 徐南榮,宋文忠, 夏安邦. 系統(tǒng)辨識[M].1991.
[2] Goldberg D E Genetic Algorithms In Search ,Optimization [M] and Machine Learning[M] . Reading ,MA :Addison2Wesley,1989.
[3] Kennedy J, Eberhart R C.Particle swarm optimization[C].In: IEEE
International Conference on Neural Networks.Perth, Piscataway, NJ, Australia:IEEE Service Center, 1995; IV: 1942~1948
[4] 張鴻賓,郭建軍, 遺傳算法在曲線多邊形近似中的應(yīng)用[J].計(jì)算機(jī)學(xué)報(bào),1999.10:1100~1104
[5] 方菲等.基于測試執(zhí)行的失效數(shù)據(jù)建模研究[J].軟件學(xué)報(bào),1999.12:1233~1237
[6] 鄭人杰.計(jì)算機(jī)軟件測試技術(shù)[M].清華大學(xué)出版社,1992.