何興華 周永華
(廣西大學(xué)電氣工程學(xué)院 廣西 南寧 530004)
?
基于化學(xué)反應(yīng)算法的系統(tǒng)辨識
何興華周永華
(廣西大學(xué)電氣工程學(xué)院廣西 南寧 530004)
摘要化學(xué)反應(yīng)優(yōu)化算法起源于化學(xué)反應(yīng)過程中的能量變化的模擬。提出一種利用化學(xué)反應(yīng)優(yōu)化算法對系統(tǒng)進行辨識的方法。即通過建立連續(xù)系統(tǒng)和離散系統(tǒng)的傳遞函數(shù)結(jié)構(gòu)模型,首先將系統(tǒng)辨識問題轉(zhuǎn)化為數(shù)學(xué)上求取相關(guān)參數(shù)的全局最優(yōu)估計問題,然后利用化學(xué)反應(yīng)優(yōu)化算法對該問題進行求解。最后給出仿真實例,并且與遺傳算法進行了比較,結(jié)果表明該方法具有較好的效果,且兼具速度快、精度高等特點。
關(guān)鍵詞系統(tǒng)辨識化學(xué)反應(yīng)優(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年首次提出“系統(tǒng)辨識”這個名詞:系統(tǒng)辨識就是在輸入和輸出數(shù)據(jù)的基礎(chǔ)上,從一組給定的模型類中,確定一個與所測系統(tǒng)等價的模型。自此之后系統(tǒng)辨識開始廣泛地應(yīng)用于電力、化工等工程技術(shù)領(lǐng)域[1]。
模型參數(shù)的辨識有很多的方法,其中最小二乘法是一種經(jīng)典的和最基本的方法,也是應(yīng)用最廣泛的方法。但是,最小二乘估計不是無偏估計且無法應(yīng)用于很多非線性模型的辨識,這就亟需新的方法以解決這個問題。隨著優(yōu)化理論的發(fā)展,一些新的智能算法得到了迅速發(fā)展和廣泛應(yīng)用,成為解決傳統(tǒng)系統(tǒng)辨識問題的新方法,如遺傳算法[2]、蟻群算法[3]、粒子群算法[4]、差分演化算法[5]等。這些算法極大地豐富了系統(tǒng)辨識技術(shù)。
化學(xué)反應(yīng)優(yōu)化算法CRO(Chemical Reaction Optimization Algorithms)[6,7]是由Albert Y.S. Lam等于2010年才提出來。它是一種新型的模擬化學(xué)反應(yīng)過程中因分子碰撞而導(dǎo)致能量變化的群體多目標優(yōu)化算法?;瘜W(xué)反應(yīng)中分子的能量的變化使作者得到了啟發(fā)。眾所周知,在放熱反應(yīng)的發(fā)生過程中,反應(yīng)物含有的總能量總是大于生成物含有的總能量的。如果把能量類比為目標函數(shù)值,這正好類似于一個尋找最小值的過程。化學(xué)反應(yīng)優(yōu)化算法具有群體規(guī)模動態(tài)變化、個體之間信息交換手段豐富等獨有的特征。因而該算法已經(jīng)開始被廣泛應(yīng)用到各個領(lǐng)域,如電力系統(tǒng)潮流計算[8]、配電網(wǎng)的重構(gòu)[9]、電動汽車與可再生能源多目標協(xié)同調(diào)度[10]等。
1系統(tǒng)的辨識問題
1.1連續(xù)系統(tǒng)的辨識問題
在控制系統(tǒng)里,一個線性連續(xù)動態(tài)系統(tǒng)可以分別用時域的微分方程或頻域的傳遞函數(shù)來表示。鑒于具體連續(xù)系統(tǒng)辨識問題的需要,本文采取的是用傳遞函數(shù)表示法[11]。對于所要辨識的系統(tǒng)模型:
(1)
式中an-1,…,a0和bm,bm,…,b0就是所需辨識的系統(tǒng)參數(shù),辨識的目的就是在系統(tǒng)的輸入輸出和結(jié)構(gòu)都給定的情況下,估計系統(tǒng)的參數(shù)。估計偏差則必須設(shè)定一個適應(yīng)度函數(shù),從而使系統(tǒng)辨識問題轉(zhuǎn)換成多元函數(shù)優(yōu)化問題。本文采取如下適應(yīng)度函數(shù)衡量偏差:
(2)
其中,y(k)表示辨識得出的系統(tǒng)的對數(shù)幅頻特性的采樣點,yk表示實際系統(tǒng)的對數(shù)幅頻特性采樣點,z(k)表示辨識得出的系統(tǒng)的相頻特性的采樣點,zk表示實際系統(tǒng)的相頻特性采樣點,N代表采樣點的個數(shù)。
1.2離散系統(tǒng)的辨識問題
本文將要辨識的離散系統(tǒng)模型:
(3)
式中an-1,…,a0和bm,bm,…,b0就是所需辨識的系統(tǒng)參數(shù)。離散系統(tǒng)的辨識過程,和連續(xù)系統(tǒng)的辨識過程是類似的。本文取下式作為適應(yīng)度函數(shù)衡量偏差。
(4)
考慮到對于離散系統(tǒng)而言,系統(tǒng)的階躍響應(yīng)更能從圖像上反應(yīng)其特征。因此式(4)中y(k)表示辨識得出的系統(tǒng)離散階躍響應(yīng)的采樣點,yk表示實際系統(tǒng)的階躍響應(yīng)的采樣點,N代表采樣點的個數(shù)。
2化學(xué)反應(yīng)優(yōu)化算法
2.1CRO算法操作單元
CRO算法操作的單元就是分子,并且每一個分子都有一些特性,即分子結(jié)構(gòu)ω、勢能(PE)、動能(KE)、撞擊次數(shù)(numHit)、最小撞擊次數(shù)(minHit)等。分子結(jié)構(gòu)代表所求問題的解,勢能代表對應(yīng)的目標函數(shù)值。如果解ω是已知的,令f(ω)為式(2)中的計算結(jié)果,那么就有PEω=f(ω)。本文使用動能來衡量分子結(jié)構(gòu)轉(zhuǎn)變?yōu)檩^差結(jié)構(gòu)的能力(即一個有更高函數(shù)值的解)。使用動能的目的就是使目標函數(shù)值能跳出局部最優(yōu)解(極小值)繼續(xù)尋優(yōu)。
2.2CRO的基礎(chǔ)反應(yīng)
在CRO算法中,有四種基礎(chǔ)反應(yīng),它們分別如下表示:
(1) 分子與容器壁之間的無效碰撞
分子與容器壁之間的無效碰撞是指分子碰到容器壁后被反彈回來。由于反應(yīng)發(fā)生得不劇烈,因此反應(yīng)前后的分子結(jié)構(gòu)應(yīng)該是變化不大的。假定一個分子碰撞前的結(jié)構(gòu)為ω,分子將要獲得一個新的分子結(jié)構(gòu)ω′=N(ω),其中N()表示一次鄰域搜索操作且N(ω)返回分子結(jié)構(gòu)ω的其中一個鄰域值。ω的每一個變量都需要增加一個擾動以產(chǎn)生ω′。即:
ω′=N(ω(i))=ω(i)+δ(i)
(5)
式中,δ(i)表示的是第i維的擾動??紤]到本文系統(tǒng)辨識的實際問題,與文獻[7]采取標準正態(tài)分布進行擾動不同,本文采用[-0.1,0.1]之間的隨機數(shù)作為擾動。
實數(shù)域上的連續(xù)優(yōu)化問題通常是有約束條件的,很多連續(xù)優(yōu)化問題的最優(yōu)解恰好是在約束條件的邊界上的。所以使用擾動進行鄰域的搜索操作有可能會越界。因此本文采取混合機制[4](HS)處理越界問題。令ω′(i)為ω′中的第i個變量,u(i)和l(i)分別為上下界。那么就有下式:
(6)
其中t是[0,1]中的隨機數(shù)。在這種情況下,解恰好在邊界或解在邊界附近的情況就不會被忽略了。
PEω+KEω≥PEω′
(7)
反應(yīng)發(fā)生后的動能大小是:
KEω′=(PEω+KEω-PEω′)×q
(8)
式中,q是[KELossRate,1]中的一個隨機數(shù)。KELossRate是動能損失率,(1-q)表示碰撞過程中損失到環(huán)境中的動能系數(shù),損失的動能被存儲在中心能量緩沖器中,用于支持后續(xù)分子的分解。如果式(7)不滿足則反應(yīng)不發(fā)生。所有的分子保持不變。
(2) 分子的分解
正常情況下,下式成立時分子才能分解。
(9)
(10)
(3) 分子之間的無效碰撞
(11)
(4) 分子的合成
分子的合成是指 2個分子碰撞后合成為1個分子。假定碰撞前2個分子的結(jié)構(gòu)是ω1和ω2,反應(yīng)完成后形成了新的分子結(jié)構(gòu) 。由于反應(yīng)是劇烈的,因此ω′的分子結(jié)構(gòu)與ω1和ω2的分子結(jié)構(gòu)有很大的不同。合成的機理:對于ω′里的第i個變量,產(chǎn)生一個[0,1]的隨機數(shù)ti,ω′的第i個變量:
(12)
(13)
反應(yīng)后的動能KEω′=PEω1+PEω2+KEω1+KEω2-PEω′。如果式(13)不滿足則反應(yīng)不發(fā)生。
2.3化學(xué)反應(yīng)優(yōu)化算法流程
本文取式(14)作為分子結(jié)構(gòu)。
(14)
注意到本文優(yōu)化的目標函數(shù)是單峰的,因此并不需要具有很強的跳出局部最優(yōu)解的能力,故初始動能取0。文獻[2]隨機生成一系列范圍在[-2,2]的初始點以形成初始分子群。但是由于Bode圖的特殊性,本文將連續(xù)系統(tǒng)的模型辨識的隨機生成初始點的范圍改為[0,2]。而離散系統(tǒng)的辨識仍然是[-2,2]。
在算法的初始化中,需要設(shè)置一些算法參數(shù)。其中PopSize是分子群中分子的總個數(shù)。dec是分子分解的臨界值,如果最優(yōu)解連續(xù)出現(xiàn)的次數(shù)達到dec,則進行分子的分解;否則進行分子之間的無效碰撞。Syn是分子合成的臨界值,當選取的2 個分子的動能都小于Syn,則進行分子合成;否則進行分子之間的無效碰撞。KELossRate是動能的損失率,即每次碰撞損失的動能占總能量的比重。collRate是分子之間的碰撞比率,它決定參與反應(yīng)的分子個數(shù)是單分子還是兩個分子。iniBuffer是中心能量緩沖器的初始值。FELimit是目標優(yōu)化函數(shù)的一個限制值,如果目標優(yōu)化函數(shù)達到FELimit則停止迭代。
算法的具體步驟如下:
步驟1設(shè)置參數(shù),輸入實際系統(tǒng)的采樣數(shù)據(jù)。
步驟2初始化分子群。計算出它們的目標函數(shù)值,取最小點為xmin,并計算當前點的勢能保存到fmin中。
步驟3從 [0,1] 間取一個隨機數(shù)t,如果t 步驟4如果最優(yōu)解連續(xù)出現(xiàn)的次數(shù)達到dec,就進行分子的分解。否則將進行分子與容器壁之間的無效碰撞。 步驟5如果選取的兩個分子的動能同時小于syn,就進行分子的合成。否則進行分子之間的無效碰撞。 步驟6每次反應(yīng)完成后把反應(yīng)前的分子更新為反應(yīng)后的分子。接著計算反應(yīng)后的分子的勢能并更新當前的最優(yōu)解xmin及最小值fmin。 步驟7判斷是否滿足終止條件,若滿足則終止計算,不滿足則重復(fù)步驟3。 步驟8輸出最優(yōu)解。 化學(xué)反應(yīng)優(yōu)化算法的流程如圖1所示。 圖1 基本化學(xué)反應(yīng)優(yōu)化算法流程圖 3仿真 3.1連續(xù)系統(tǒng)模型辨識過程 為驗證化學(xué)反應(yīng)優(yōu)化算法應(yīng)用于連續(xù)系統(tǒng)傳遞函數(shù)模型參數(shù)辨識的有效性,現(xiàn)在考慮取用文獻[2]中的二階連續(xù)模型: (15) 其中模型有4個待辨識的參數(shù)(1.0, 1.0, 0.5, 1.0),參數(shù)的取值范圍均為[0,2],且整個辨識過程參數(shù)均取正數(shù)。 本文也采用的辨識方法如下所述: 步驟1在四個參數(shù)的取值范圍任意取出4個參數(shù)值,接著使用MATLAB畫出其Bode圖。 步驟2分別對辨識得出的系統(tǒng)和實際系統(tǒng)相同的采樣點進行采樣,本文采取[10-2,102]區(qū)間內(nèi)按對數(shù)分布均分采樣200個點,并使用式(2)計算適應(yīng)度函數(shù)。 步驟3求解系統(tǒng)辨識問題就轉(zhuǎn)化為了數(shù)學(xué)上的尋優(yōu)問題,可以運用第2節(jié)介紹的化學(xué)反應(yīng)優(yōu)化算法進行計算。 3.2離散系統(tǒng)模型辨識過程 由于本文對離散系統(tǒng)采取的辨識方法與文獻[2]是迥然不同的,文獻[2]采用的是通過辨識零極點來辨識系統(tǒng)。因此選取的模型不具有一般性。故本文不采取文獻[2]中的傳遞函數(shù)模型。為了實際需要,本文采取與3.1節(jié)中相似的類型: (16) 其中模型有4個待辨識的參數(shù)(0.5, 0.0, -0.5, 0.92),參數(shù)的取值范圍均為[-2,2]。本文采用的辨識方法如下所述: 步驟1在四個參數(shù)的取值范圍任意取出4個參數(shù)值,接著使用MATLAB畫出其離散階躍響應(yīng)圖。 步驟2分別對辨識得出的系統(tǒng)和實際系統(tǒng)相同的采樣點進行采樣200個點,并使用式(4)計算適應(yīng)度函數(shù)。 步驟3求解系統(tǒng)辨識問題就轉(zhuǎn)化為了數(shù)學(xué)上的尋優(yōu)問題,可以運用第2節(jié)介紹的化學(xué)反應(yīng)優(yōu)化算法進行計算。 4算例分析 4.1連續(xù)系統(tǒng)模型辨識結(jié)果分析 本文的仿真使用一臺內(nèi)存是2 GB的i3-2310m的個人電腦,運行環(huán)境是Matlab 2013a。 在參考了文獻[8]之后,本文選取的化學(xué)反應(yīng)優(yōu)化算法參數(shù)如表1所示。 表1 化學(xué)反應(yīng)優(yōu)化算法的參數(shù)選擇 表2中,化學(xué)反應(yīng)優(yōu)化算法與文獻[2]中的遺傳算法對于連續(xù)系統(tǒng)模型的辨識結(jié)果對比表明:前者所得的結(jié)果更接近與真實值。表3列出的是在同一運行環(huán)境中化學(xué)反應(yīng)算法與遺傳算法的結(jié)果對比,其中使用的遺傳算法的程序來自Matlab 2013a自帶的遺傳算法工具箱。圖2和圖3分別為辨識得出的連續(xù)系統(tǒng)與實際系統(tǒng)的Bode圖和階躍響應(yīng)對比。從表2和表3可以看出化學(xué)反應(yīng)優(yōu)化算法更精確地辨識出了實際系統(tǒng)且計算時間更少。 表2 本文與文獻[2]的結(jié)果對比 表3 在同一平臺下化學(xué)反應(yīng)算法與遺傳算法的結(jié)果對比 圖2 辨識得出的連續(xù)系統(tǒng)與實際系統(tǒng)的階躍響應(yīng)圖 圖3 辨識得出的連續(xù)系統(tǒng)與實際系統(tǒng)的Bode圖 4.2離散系統(tǒng)模型辨識結(jié)果分析 化學(xué)反應(yīng)優(yōu)化算法的辨識結(jié)果為: (16) 通過與式(15)輸入的傳遞函數(shù)模型作對比,可以看出辨識得出的結(jié)果還是與真實值很接近的,這說明了化學(xué)反應(yīng)優(yōu)化算法也可以應(yīng)用于離散系統(tǒng)的辨識中。通過與文獻[2]對比,也能看出化學(xué)反應(yīng)優(yōu)化算法從算法性能上相對于遺傳算法的優(yōu)越性。 5結(jié)語 本文通過將辨識問題轉(zhuǎn)換為優(yōu)化問題,以化學(xué)反應(yīng)優(yōu)化算法做為工具,應(yīng)用于模型結(jié)構(gòu)已知且可用傳遞函數(shù)模型進行描述的控制系統(tǒng),克服了傳統(tǒng)的最小二乘法的過程復(fù)雜、計算量大、不是無偏估計等缺點,簡化了系統(tǒng)辨識的過程,且提高了辨識的效率。 本文仿真結(jié)果驗證了該尋優(yōu)過程的可行性,并且證實了化學(xué)反應(yīng)優(yōu)化算法相對于遺傳算法在系統(tǒng)辨識方面的優(yōu)越性。該算法還可推廣到控制系統(tǒng)的其它優(yōu)化問題的研究中。與很多優(yōu)化算法一樣,在應(yīng)用到實際工程問題時算法參數(shù)的選擇往往影響巨大,因此具體問題需要具體分析,參數(shù)的選擇有賴于大量反復(fù)試驗,合理調(diào)節(jié)算法的參數(shù)可以使它更易收斂于全局最優(yōu)。但是該算法存在收斂速度過慢以及參數(shù)過多等問題,對于該算法的改進還有待研究和驗證。 參考文獻 [1] 馮培悌.系統(tǒng)辨識[M].杭州:浙江大學(xué)出版社,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] 汪鐳.蟻群算法在系統(tǒng)辨識中的應(yīng)用[J].自動化學(xué)報,2003,29(1):103-109. [4] 徐小平,錢富才,劉丁,等.基于PSO算法的系統(tǒng)辨識方法[J].系統(tǒng)仿真學(xué)報,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] 王淳.基于化學(xué)反應(yīng)算法的配電網(wǎng)重構(gòu)[J].電網(wǎng)技術(shù),2012,36(5):209-214. [10] 張智晟,溫令云,李國,等.基于改進化學(xué)反應(yīng)優(yōu)化算法的電動汽車與可再生能源多目標協(xié)同調(diào)度[J].電網(wǎng)技術(shù),2014,38(3):633-637. [11] 楊承志.系統(tǒng)辨識與自適應(yīng)控制[M].重慶:重慶大學(xué)出版社,2003. 中圖分類號TP273 文獻標識碼A DOI:10.3969/j.issn.1000-386x.2016.02.062 收稿日期:2014-06-28。何興華,碩士生,主研領(lǐng)域:智能信息處理。周永華,教授。