何興華 周永華
(廣西大學電氣工程學院 廣西 南寧 530004)
?
基于化學反應算法的系統辨識
何興華周永華
(廣西大學電氣工程學院廣西 南寧 530004)
摘要化學反應優(yōu)化算法起源于化學反應過程中的能量變化的模擬。提出一種利用化學反應優(yōu)化算法對系統進行辨識的方法。即通過建立連續(xù)系統和離散系統的傳遞函數結構模型,首先將系統辨識問題轉化為數學上求取相關參數的全局最優(yōu)估計問題,然后利用化學反應優(yōu)化算法對該問題進行求解。最后給出仿真實例,并且與遺傳算法進行了比較,結果表明該方法具有較好的效果,且兼具速度快、精度高等特點。
關鍵詞系統辨識化學反應優(yōu)化算法全局最優(yōu)估計
SYSTEM IDENTIFICATION USING CHEMICAL REACTION OPTIMISATION ALGORITHMS
He XinghuaZhou Yonghua
(College of Electrical Engineering,Guangxi University,Nanning 530004,Guangxi,China)
AbstractChemical reaction optimisation algorithms are derived from simulating the energy changes in chemical reaction process. This paper shows how the chemical reaction optimisation algorithms be applied for system identification. That is, by building the transfer function structural model of continuous and discrete systems, first we convert the problem of system identification to a global optimal estimation problem of seeking the correlated parameters in mathematics, then we use chemical reaction optimisation algorithms to solve the problem. In end of the paper, we give some simulation examples and compare them with genetic algorithms. Results prove that our method has better effect, and has the features of both high speed and accuracy.
KeywordsSystem identificationChemical reaction optimisation algorithmsGlobal optimal estimation
0引言
L.A.Zadeh在1962年首次提出“系統辨識”這個名詞:系統辨識就是在輸入和輸出數據的基礎上,從一組給定的模型類中,確定一個與所測系統等價的模型。自此之后系統辨識開始廣泛地應用于電力、化工等工程技術領域[1]。
模型參數的辨識有很多的方法,其中最小二乘法是一種經典的和最基本的方法,也是應用最廣泛的方法。但是,最小二乘估計不是無偏估計且無法應用于很多非線性模型的辨識,這就亟需新的方法以解決這個問題。隨著優(yōu)化理論的發(fā)展,一些新的智能算法得到了迅速發(fā)展和廣泛應用,成為解決傳統系統辨識問題的新方法,如遺傳算法[2]、蟻群算法[3]、粒子群算法[4]、差分演化算法[5]等。這些算法極大地豐富了系統辨識技術。
化學反應優(yōu)化算法CRO(Chemical Reaction Optimization Algorithms)[6,7]是由Albert Y.S. Lam等于2010年才提出來。它是一種新型的模擬化學反應過程中因分子碰撞而導致能量變化的群體多目標優(yōu)化算法?;瘜W反應中分子的能量的變化使作者得到了啟發(fā)。眾所周知,在放熱反應的發(fā)生過程中,反應物含有的總能量總是大于生成物含有的總能量的。如果把能量類比為目標函數值,這正好類似于一個尋找最小值的過程?;瘜W反應優(yōu)化算法具有群體規(guī)模動態(tài)變化、個體之間信息交換手段豐富等獨有的特征。因而該算法已經開始被廣泛應用到各個領域,如電力系統潮流計算[8]、配電網的重構[9]、電動汽車與可再生能源多目標協同調度[10]等。
1系統的辨識問題
1.1連續(xù)系統的辨識問題
在控制系統里,一個線性連續(xù)動態(tài)系統可以分別用時域的微分方程或頻域的傳遞函數來表示。鑒于具體連續(xù)系統辨識問題的需要,本文采取的是用傳遞函數表示法[11]。對于所要辨識的系統模型:
(1)
式中an-1,…,a0和bm,bm,…,b0就是所需辨識的系統參數,辨識的目的就是在系統的輸入輸出和結構都給定的情況下,估計系統的參數。估計偏差則必須設定一個適應度函數,從而使系統辨識問題轉換成多元函數優(yōu)化問題。本文采取如下適應度函數衡量偏差:
(2)
其中,y(k)表示辨識得出的系統的對數幅頻特性的采樣點,yk表示實際系統的對數幅頻特性采樣點,z(k)表示辨識得出的系統的相頻特性的采樣點,zk表示實際系統的相頻特性采樣點,N代表采樣點的個數。
1.2離散系統的辨識問題
本文將要辨識的離散系統模型:
(3)
式中an-1,…,a0和bm,bm,…,b0就是所需辨識的系統參數。離散系統的辨識過程,和連續(xù)系統的辨識過程是類似的。本文取下式作為適應度函數衡量偏差。
(4)
考慮到對于離散系統而言,系統的階躍響應更能從圖像上反應其特征。因此式(4)中y(k)表示辨識得出的系統離散階躍響應的采樣點,yk表示實際系統的階躍響應的采樣點,N代表采樣點的個數。
2化學反應優(yōu)化算法
2.1CRO算法操作單元
CRO算法操作的單元就是分子,并且每一個分子都有一些特性,即分子結構ω、勢能(PE)、動能(KE)、撞擊次數(numHit)、最小撞擊次數(minHit)等。分子結構代表所求問題的解,勢能代表對應的目標函數值。如果解ω是已知的,令f(ω)為式(2)中的計算結果,那么就有PEω=f(ω)。本文使用動能來衡量分子結構轉變?yōu)檩^差結構的能力(即一個有更高函數值的解)。使用動能的目的就是使目標函數值能跳出局部最優(yōu)解(極小值)繼續(xù)尋優(yōu)。
2.2CRO的基礎反應
在CRO算法中,有四種基礎反應,它們分別如下表示:
(1) 分子與容器壁之間的無效碰撞
分子與容器壁之間的無效碰撞是指分子碰到容器壁后被反彈回來。由于反應發(fā)生得不劇烈,因此反應前后的分子結構應該是變化不大的。假定一個分子碰撞前的結構為ω,分子將要獲得一個新的分子結構ω′=N(ω),其中N()表示一次鄰域搜索操作且N(ω)返回分子結構ω的其中一個鄰域值。ω的每一個變量都需要增加一個擾動以產生ω′。即:
ω′=N(ω(i))=ω(i)+δ(i)
(5)
式中,δ(i)表示的是第i維的擾動??紤]到本文系統辨識的實際問題,與文獻[7]采取標準正態(tài)分布進行擾動不同,本文采用[-0.1,0.1]之間的隨機數作為擾動。
實數域上的連續(xù)優(yōu)化問題通常是有約束條件的,很多連續(xù)優(yōu)化問題的最優(yōu)解恰好是在約束條件的邊界上的。所以使用擾動進行鄰域的搜索操作有可能會越界。因此本文采取混合機制[4](HS)處理越界問題。令ω′(i)為ω′中的第i個變量,u(i)和l(i)分別為上下界。那么就有下式:
(6)
其中t是[0,1]中的隨機數。在這種情況下,解恰好在邊界或解在邊界附近的情況就不會被忽略了。
PEω+KEω≥PEω′
(7)
反應發(fā)生后的動能大小是:
KEω′=(PEω+KEω-PEω′)×q
(8)
式中,q是[KELossRate,1]中的一個隨機數。KELossRate是動能損失率,(1-q)表示碰撞過程中損失到環(huán)境中的動能系數,損失的動能被存儲在中心能量緩沖器中,用于支持后續(xù)分子的分解。如果式(7)不滿足則反應不發(fā)生。所有的分子保持不變。
(2) 分子的分解
正常情況下,下式成立時分子才能分解。
(9)
(10)
(3) 分子之間的無效碰撞
(11)
(4) 分子的合成
分子的合成是指 2個分子碰撞后合成為1個分子。假定碰撞前2個分子的結構是ω1和ω2,反應完成后形成了新的分子結構 。由于反應是劇烈的,因此ω′的分子結構與ω1和ω2的分子結構有很大的不同。合成的機理:對于ω′里的第i個變量,產生一個[0,1]的隨機數ti,ω′的第i個變量:
(12)
(13)
反應后的動能KEω′=PEω1+PEω2+KEω1+KEω2-PEω′。如果式(13)不滿足則反應不發(fā)生。
2.3化學反應優(yōu)化算法流程
本文取式(14)作為分子結構。
(14)
注意到本文優(yōu)化的目標函數是單峰的,因此并不需要具有很強的跳出局部最優(yōu)解的能力,故初始動能取0。文獻[2]隨機生成一系列范圍在[-2,2]的初始點以形成初始分子群。但是由于Bode圖的特殊性,本文將連續(xù)系統的模型辨識的隨機生成初始點的范圍改為[0,2]。而離散系統的辨識仍然是[-2,2]。
在算法的初始化中,需要設置一些算法參數。其中PopSize是分子群中分子的總個數。dec是分子分解的臨界值,如果最優(yōu)解連續(xù)出現的次數達到dec,則進行分子的分解;否則進行分子之間的無效碰撞。Syn是分子合成的臨界值,當選取的2 個分子的動能都小于Syn,則進行分子合成;否則進行分子之間的無效碰撞。KELossRate是動能的損失率,即每次碰撞損失的動能占總能量的比重。collRate是分子之間的碰撞比率,它決定參與反應的分子個數是單分子還是兩個分子。iniBuffer是中心能量緩沖器的初始值。FELimit是目標優(yōu)化函數的一個限制值,如果目標優(yōu)化函數達到FELimit則停止迭代。
算法的具體步驟如下:
步驟1設置參數,輸入實際系統的采樣數據。
步驟2初始化分子群。計算出它們的目標函數值,取最小點為xmin,并計算當前點的勢能保存到fmin中。
步驟3從 [0,1] 間取一個隨機數t,如果t 步驟4如果最優(yōu)解連續(xù)出現的次數達到dec,就進行分子的分解。否則將進行分子與容器壁之間的無效碰撞。 步驟5如果選取的兩個分子的動能同時小于syn,就進行分子的合成。否則進行分子之間的無效碰撞。 步驟6每次反應完成后把反應前的分子更新為反應后的分子。接著計算反應后的分子的勢能并更新當前的最優(yōu)解xmin及最小值fmin。 步驟7判斷是否滿足終止條件,若滿足則終止計算,不滿足則重復步驟3。 步驟8輸出最優(yōu)解。 化學反應優(yōu)化算法的流程如圖1所示。 圖1 基本化學反應優(yōu)化算法流程圖 3仿真 3.1連續(xù)系統模型辨識過程 為驗證化學反應優(yōu)化算法應用于連續(xù)系統傳遞函數模型參數辨識的有效性,現在考慮取用文獻[2]中的二階連續(xù)模型: (15) 其中模型有4個待辨識的參數(1.0, 1.0, 0.5, 1.0),參數的取值范圍均為[0,2],且整個辨識過程參數均取正數。 本文也采用的辨識方法如下所述: 步驟1在四個參數的取值范圍任意取出4個參數值,接著使用MATLAB畫出其Bode圖。 步驟2分別對辨識得出的系統和實際系統相同的采樣點進行采樣,本文采取[10-2,102]區(qū)間內按對數分布均分采樣200個點,并使用式(2)計算適應度函數。 步驟3求解系統辨識問題就轉化為了數學上的尋優(yōu)問題,可以運用第2節(jié)介紹的化學反應優(yōu)化算法進行計算。 3.2離散系統模型辨識過程 由于本文對離散系統采取的辨識方法與文獻[2]是迥然不同的,文獻[2]采用的是通過辨識零極點來辨識系統。因此選取的模型不具有一般性。故本文不采取文獻[2]中的傳遞函數模型。為了實際需要,本文采取與3.1節(jié)中相似的類型: (16) 其中模型有4個待辨識的參數(0.5, 0.0, -0.5, 0.92),參數的取值范圍均為[-2,2]。本文采用的辨識方法如下所述: 步驟1在四個參數的取值范圍任意取出4個參數值,接著使用MATLAB畫出其離散階躍響應圖。 步驟2分別對辨識得出的系統和實際系統相同的采樣點進行采樣200個點,并使用式(4)計算適應度函數。 步驟3求解系統辨識問題就轉化為了數學上的尋優(yōu)問題,可以運用第2節(jié)介紹的化學反應優(yōu)化算法進行計算。 4算例分析 4.1連續(xù)系統模型辨識結果分析 本文的仿真使用一臺內存是2 GB的i3-2310m的個人電腦,運行環(huán)境是Matlab 2013a。 在參考了文獻[8]之后,本文選取的化學反應優(yōu)化算法參數如表1所示。 表1 化學反應優(yōu)化算法的參數選擇 表2中,化學反應優(yōu)化算法與文獻[2]中的遺傳算法對于連續(xù)系統模型的辨識結果對比表明:前者所得的結果更接近與真實值。表3列出的是在同一運行環(huán)境中化學反應算法與遺傳算法的結果對比,其中使用的遺傳算法的程序來自Matlab 2013a自帶的遺傳算法工具箱。圖2和圖3分別為辨識得出的連續(xù)系統與實際系統的Bode圖和階躍響應對比。從表2和表3可以看出化學反應優(yōu)化算法更精確地辨識出了實際系統且計算時間更少。 表2 本文與文獻[2]的結果對比 表3 在同一平臺下化學反應算法與遺傳算法的結果對比 圖2 辨識得出的連續(xù)系統與實際系統的階躍響應圖 圖3 辨識得出的連續(xù)系統與實際系統的Bode圖 4.2離散系統模型辨識結果分析 化學反應優(yōu)化算法的辨識結果為: (16) 通過與式(15)輸入的傳遞函數模型作對比,可以看出辨識得出的結果還是與真實值很接近的,這說明了化學反應優(yōu)化算法也可以應用于離散系統的辨識中。通過與文獻[2]對比,也能看出化學反應優(yōu)化算法從算法性能上相對于遺傳算法的優(yōu)越性。 5結語 本文通過將辨識問題轉換為優(yōu)化問題,以化學反應優(yōu)化算法做為工具,應用于模型結構已知且可用傳遞函數模型進行描述的控制系統,克服了傳統的最小二乘法的過程復雜、計算量大、不是無偏估計等缺點,簡化了系統辨識的過程,且提高了辨識的效率。 本文仿真結果驗證了該尋優(yōu)過程的可行性,并且證實了化學反應優(yōu)化算法相對于遺傳算法在系統辨識方面的優(yōu)越性。該算法還可推廣到控制系統的其它優(yōu)化問題的研究中。與很多優(yōu)化算法一樣,在應用到實際工程問題時算法參數的選擇往往影響巨大,因此具體問題需要具體分析,參數的選擇有賴于大量反復試驗,合理調節(jié)算法的參數可以使它更易收斂于全局最優(yōu)。但是該算法存在收斂速度過慢以及參數過多等問題,對于該算法的改進還有待研究和驗證。 參考文獻 [1] 馮培悌.系統辨識[M].杭州:浙江大學出版社,1999. [2] Kristinsson K,Dumont G A.System identification and control using genetic algorithms[J].IEEE Transactions on Systems Man and Cybernetics,1992,20(5):1033-1046. [3] 汪鐳.蟻群算法在系統辨識中的應用[J].自動化學報,2003,29(1):103-109. [4] 徐小平,錢富才,劉丁,等.基于PSO算法的系統辨識方法[J].系統仿真學報,2008,20(13):3525-3528. [5] Shihlian Cheng,Chyi Hwang.Optimal Approximation of Linear Systems by a Differential Evolution Algorithm[J].IEEE Transactions on Systems,Man,and Cybernetics,2001,31(6):698-707. [6] Lam A Y S,Li V O K.Chemical-reaction-inspired Metaheuristic for Optimization[J].IEEE Trans on Evolutionary Computation,2010,14(3):381-399. [7] Lam A Y S,Li V O K.Real-coded chemical reaction optimization[J].IEEE Trans on Evolutionary Computation,2012,16(3):339-353. [8] Yi Sun,Albert Y S Lam,Victor O K Li,et al.Chemical Reaction Optimization for the Optimal Power Flow Problem[C].WCCI 2012 IEEE World Congress on Computational Intelligence June,2012.Brisbane:Australia. [9] 王淳.基于化學反應算法的配電網重構[J].電網技術,2012,36(5):209-214. [10] 張智晟,溫令云,李國,等.基于改進化學反應優(yōu)化算法的電動汽車與可再生能源多目標協同調度[J].電網技術,2014,38(3):633-637. [11] 楊承志.系統辨識與自適應控制[M].重慶:重慶大學出版社,2003. 中圖分類號TP273 文獻標識碼A DOI:10.3969/j.issn.1000-386x.2016.02.062 收稿日期:2014-06-28。何興華,碩士生,主研領域:智能信息處理。周永華,教授。