劉文霞,王榮杰,2,韓 冉,郜懷通
1(集美大學 輪機工程學院,廈門 361021)
2(福建省船舶與海洋重點實驗室,廈門 361021)
非線性科學是近些年來研究的熱點之一,Wang 等[1]將非線性系統(tǒng)應(yīng)用于伺服電機的控制中,Zhang 等[2]應(yīng)用超諧波響應(yīng)分析法測試旋轉(zhuǎn)葉片受氣壓影響的形變程度,Zheng 等[3]運用非線性系統(tǒng)到分子動力學,充分說明了對非線性系統(tǒng)研究的重要性.自1963年Lorenz提出了第一個具有非線性動力學特性的混沌吸引子,即Lorenz 系統(tǒng).此后,學術(shù)界對混沌系統(tǒng)的研究逐漸深入.2020年,Peng 等將改進的返回結(jié)果映射法應(yīng)用于混沌系統(tǒng)的參數(shù)估計,與經(jīng)典返回結(jié)果映射法相比節(jié)省了大量的運算時間[4].Zhuang 等[5]應(yīng)用Jaya-Powell 算法估計Lorenz 混沌系統(tǒng)的參數(shù),為邊緣計算提供了便利.國外研究員用改進的粒子群算法估計基于混沌響應(yīng)的永磁同步電動機模型參數(shù),并取得了良好的效果[6].
混沌是非線性系統(tǒng)中普遍存在的一種現(xiàn)象,它作為非線性動力系統(tǒng)的固有特性引起了極大的關(guān)注[7],尤其是混沌系統(tǒng)在生物醫(yī)學、保密通信以及信息科學等領(lǐng)域需求的推動下,致使許多國內(nèi)外研究者加入研究,并提出了大量的研究方法[8-10],但這些研究方法大多以參數(shù)已知為前提.在許多實際應(yīng)用中,由于系統(tǒng)的復(fù)雜性等因素,導(dǎo)致系統(tǒng)參數(shù)在大多數(shù)情況下是無法確定的,為了降低在參數(shù)尋優(yōu)過程中的難度,需要對未知參數(shù)設(shè)置一定的范圍,所以對混沌系統(tǒng)中的未知參數(shù)進行有效評估成為混沌系統(tǒng)中的關(guān)鍵問題[11].對混沌系統(tǒng)中的未知參數(shù)進行有效評估實質(zhì)是多維復(fù)雜函數(shù)優(yōu)化問題,群體智能優(yōu)化算法對解決復(fù)雜函數(shù)優(yōu)化問題提出了有效的方案.例如:人工蜂群算法[12]、螢火蟲算法[13]、差分進化算法[14]、花朵授粉算法[15]、粒子群算法[16]等相繼被用于對混沌系統(tǒng)的參數(shù)估計,具有比傳統(tǒng)優(yōu)化算法更好的效果.
人工蜂群算法是仿生智能計算領(lǐng)域中一種十分典型的群體智能優(yōu)化算法,它是通過模仿蜜蜂的采蜜過程而得到的,主要特點是可以直接通過對局部候選解的優(yōu)劣進行比較,選出全局最優(yōu)值[17].相比其他群智能優(yōu)化算法,人工蜂群算法在處理多維問題及全局搜索方面所需參數(shù)較少,計算簡單,易于實現(xiàn)等優(yōu)點[18,19].故本文利用人工蜂群算法解決混沌系統(tǒng)中參數(shù)估計的問題.
定義m個參數(shù)的n維混沌系統(tǒng)的狀態(tài)變量估計值如式(1):
式(1)中,X=(x1,x2,···,xn)T∈Rn是系統(tǒng)的狀態(tài)向量;θ=(θ1,θ2,···,θm)T∈Rm是系統(tǒng)未知參數(shù)向量;X0是系統(tǒng)的初始狀態(tài);F:Rn×Rm→Rn是給定的非線性向量函數(shù).
假設(shè)系統(tǒng)結(jié)構(gòu)已知,當對系統(tǒng)參數(shù)進行估計時被估計系統(tǒng)可定義為式(2):
式(2)中,Y=(y1,y2,···,yn)T∈Rn是被估計系統(tǒng)中的狀態(tài)向量是系統(tǒng)估計參數(shù).
參數(shù)估計問題也可轉(zhuǎn)化為式(3):
式(3)中,N表示用于狀態(tài)變量的數(shù)據(jù)長度,xi和yi分別表示在其狀態(tài)變量下系統(tǒng)的真值和估計值.顯然,J(θ)是多維和多模非線性函數(shù),混沌系統(tǒng)具有動態(tài)不穩(wěn)定且對初始參數(shù)敏感的特性.因此,難以有效且準確地估計出混沌系統(tǒng)的參數(shù).而人工蜂群算法在處理多維問題上易于實現(xiàn),故本文采用人工蜂群算法并以式(3)為目標函數(shù)進行求解.基于人工蜂群算法的混沌系統(tǒng)參數(shù)估計框圖如圖1所示.首先,將原系統(tǒng)輸出的值x1,x2,···,xn和待估計系統(tǒng)輸出的值y1,y2,···,yn進行計算得到參數(shù)估計的誤差平方和J(θ);然后,將得到的J(θ)反饋到人工蜂群算法中生成新的估計值;最后,通過多次迭代調(diào)整估計值θ ?使優(yōu)化函數(shù)J最小.
圖1 混沌系統(tǒng)參數(shù)估計框圖
人工蜂群算法(Artificial Bee Colony algorithm,ABC)是一種通過模仿蜜蜂的采蜜過程而得到的優(yōu)化算法,它是由土耳其學者Karaboga 于2005年提出的用來解決多變量函數(shù)的優(yōu)化問題[20].通過對問題的局部尋優(yōu)行為,找到全局最優(yōu)值的過程.ABC 算法主要有初始化、雇傭蜂、觀察蜂和偵查蜂4 個階段.
初始化階段:ABC 算法在初始化階段,每只雇傭蜂會隨機產(chǎn)生一個食物源,每個食物源與待優(yōu)化解的個數(shù)SN一一對應(yīng),SN為蜂群規(guī)模,而每個待優(yōu)化解V(i)是一個n維的向量.即初始值生成公式如式(4):
式(4)中,i=1,2,···,SN,j=1,2,···,n.Vmin(j)和Vmax(j)分別是第n維的最小值和最大值.rand表示0和1 之間的隨機數(shù).
雇傭蜂階段:在此階段,每只雇傭蜂通過搜索方程在其當前位置的附近生成新的食物源VEB(i),其搜索方程如式(5):
式(5)中,i=1,2,···,SN,j=1,2,···,n.λ是?1 到1 之間的隨機數(shù),r是1 到SN之 間的任意整數(shù)且r≠i.
當?shù)玫叫碌氖澄镌碫EB(i),便對其進行評估且與舊的食物源V(i)進行比較.如果VEB(i)的適用性優(yōu)于V(i),則將VEB(i)替換V(i);否則保留V(i).
觀察蜂階段:當所有雇傭蜂搜索完成后,它們通過舞蹈分享保存的信息給觀察蜂.觀察蜂根據(jù)相應(yīng)的概率在雇傭蜂傳遞的信息基礎(chǔ)上更新候選解,并評估其適應(yīng)度選擇食物源.更新方程如式(6):
式(6)中,i=1,2,···,SN,j=1,2,···,n.β是?1 到1 之間的隨機數(shù),k是1 到SN之間的任意整數(shù)且k≠i.
當?shù)玫叫碌氖澄镌碫OB(i),便對其進行評估且與更新的食物源V(i)進行比較.如果VOB(i)的適用性優(yōu)于V(i),則將VOB(i)替換V(i);否則保留V(i).
偵查蜂階段:為了防止陷入局部最優(yōu),對于連續(xù)klimit次沒更新的解由式(4)重新生成新的候選解代替它.
當?shù)玫叫碌暮蜻x解VSB(i),便對其進行評估且與原候選解V(i)進行比較.如果新候選解的適用性優(yōu)于原候選解,則替換它;否則保留原候選解.
ABC 算法的優(yōu)化流程圖如圖2所示.
雖然ABC 算法在處理多維問題及全局搜索方面所需參數(shù)較少,計算簡單,易于實現(xiàn).但其收斂速度相對較慢,精度不高.
本節(jié)為充分利用搜索方程對蜂源進行搜索得到優(yōu)化解,引入了可選擇的概率p得到新的搜索機制,舍棄了概率計算和限制次數(shù)內(nèi)蜂群沒替換重新生成隨機蜂群的方法,算法的具體改進之處如下.
在雇傭蜂階段,改用搜索方程如式(7):
式(7)中,i=1,2,···,SN,j=1,2,···,n.Vmin(j)和Vmax(j)分別是第n維的最小值和最大值.
在觀察蜂階段,引用了差分進化中變異[21]的方法.其搜索方程如式(8):
式(8)中,i=1,2,···,SN,j=1,2,···,n.Vbest(j)是雇傭蜂求出的最優(yōu)值,r1和r2的取值范圍為1 到SN,但r1≠r2.?的取值范圍為?1 到1.
在偵查蜂階段,引用了概率p,如果p>rand,則用如下搜索方程更新如式(9):
式(9)中,i=1,2,···,SN,j=1,2,···,n.k的取值范圍為1 到SN,?的取值范圍為?1 到1.
圖2 ABC 算法流程圖
本文ABC 算法的優(yōu)化步驟如算法1 所示.
算法1.本文ABC 算法1.初始化階段:設(shè)置最大迭代次數(shù)FEmax,蜜蜂個數(shù)為維度為n;由式(4)得到初始混沌系統(tǒng)的參數(shù)估計值,并通過式(3)計算得到估計參數(shù)轉(zhuǎn)化的函數(shù)值J1.While (符合終止條件)2.雇傭蜂階段:由式(7)更新參數(shù)估計值,并通過式(3)計算得到目標函數(shù)值J2;將當前最優(yōu)目標函數(shù)值J1和J2 進行比較,最小值即為最優(yōu)值,選出最優(yōu)值放于J1.3.觀察蜂階段:由式(8)更新參數(shù)估計值,并通過式(3)計算得到目標函數(shù)值J3;將當前最優(yōu)目標函數(shù)值J1和J3 進行比較,最小值即為最優(yōu)值,選出最優(yōu)值放于J1.4.偵察蜂階段:S N V(i,j)
比較概率p和rand的大小,根據(jù)比較結(jié)果決定是否更新參數(shù)估計值;由式(9)更新參數(shù)估計值,并通過式(3)計算得到目標函數(shù)值J4;將當前最優(yōu)目標函數(shù)值J1和J4 進行比較,最小值即為最優(yōu)值,選出最優(yōu)值放于J1.FE=FE+1迭代次數(shù) ;End
為了驗證本文ABC 算法的有效性,將本文ABC 算法和ABC 算法及文獻[12]中的IABC 算法的優(yōu)化能力進行評估.分別采用了Sphere 函數(shù)、Griewank 函數(shù)、Ragstrigin 函數(shù)、Rosenbrock 函數(shù)、Ackley 函數(shù)、Schaffer 函數(shù)6 個標準的測試函數(shù)進行測試,測試函數(shù)的表達式、維度、搜索范圍及函數(shù)最優(yōu)值如表1所示[22].
將所有函數(shù)的最大迭代次數(shù)FEmax設(shè)置為100,各函數(shù)的收斂曲線如圖3所示.從各函數(shù)的收斂曲線圖可以看出,本文ABC 算法與ABC 算法及IABC 算法相比下降趨勢更快、坡度更陡、所用迭代次數(shù)更少,其函數(shù)f3、f5和f6尤為明顯.故本文ABC 算法相比ABC 算法和IABC 算法收斂速度更快,優(yōu)化效果更佳.這說明本文ABC 算法是可行的.
表1 標準測試函數(shù)
圖3 標準測試函數(shù)收斂曲線
Lorenz 系統(tǒng)是最典型的混沌系統(tǒng)[23,24],這里以Lorenz 系統(tǒng)為例,驗證本文ABC 算法對混沌系統(tǒng)中未知參數(shù)估計的適用性.Lorenz 系統(tǒng)的狀態(tài)方程如式(10):
未知參數(shù)的真實值a=10,b=28,c=8/3.以x(0)=0.1,y(0)=0.1,z(0)=0為初始狀態(tài)值對系統(tǒng)進行仿真,設(shè)置采樣次數(shù)N=10 000.數(shù)值仿真采用四階Rayleigh-Benard法[25]來計算式(10)中每個整數(shù)點的變量值,步長h=0.01,混沌系統(tǒng)[26]如圖4所示.
圖4 Lorenz 混沌吸引子三維圖
在本文ABC 算法中,設(shè)置最大迭代次數(shù)FEmax=100,種群大小SN=20,混沌系統(tǒng)的未知參數(shù)范圍設(shè)置為:8 ≤a≤12,2 5 ≤b≤30和2 ≤c≤3.圖5是參數(shù)估計值在每次迭代中記錄的最優(yōu)解曲線圖.圖6是目標函數(shù)值在每次迭代中記錄的最優(yōu)解曲線圖.
圖5 參數(shù)估計值收斂曲線
圖6 目標函數(shù)值收斂曲線
由圖5和圖6仿真結(jié)果可以得出,本文ABC 算法的收斂性及穩(wěn)定性明顯優(yōu)于ABC 算法及IABC 算法.圖7、圖8和圖9分別是通過兩種算法得到的最優(yōu)估計參數(shù)值由式(10)得出的狀態(tài)變量估計值和真值之間的對比圖,其中誤差e(t)的方程如式(11).
式(11)中 δi(t)是分別是參數(shù)x(t)、y(t)、z(t)的真值,是分別是參數(shù)x(t)、y(t)、z(t)的估計值.
圖7 ABC 算法狀態(tài)變量
由圖7~圖9可見,圖9中真值和估計值曲線更趨近于重合尤其隨采樣次數(shù)的增大,重合度越高,而圖7中的真值和估計值曲線在隨采樣次數(shù)增大時有明顯的分叉現(xiàn)象,圖8的重合度相比于圖9較差,所以本文ABC 算法的趨近性明顯優(yōu)于ABC 算法和IABC 算法.參數(shù)a、b、c及目標函數(shù)的最優(yōu)值、最差值和平均值是由ABC 算法和本文ABC 算法及IABC 算法分別獨立運行30 次計算得到的平均值,記錄于表2.
圖8 IABC 算法狀態(tài)變量
由表2可以得出,在最優(yōu)值、最差值和平均值上由本文ABC 算法仿真得出的參數(shù)a趨近于10、參數(shù)b趨近于28、參數(shù)c趨近于8/3的效果明顯優(yōu)于由ABC 算法和IABC 算法仿真得出的參數(shù)趨近值.利用本文ABC 算法得出的目標函數(shù)值也明顯小于由ABC算法和IABC 算法得出的目標函數(shù)值,故本文ABC 算法在穩(wěn)定性及收斂速度上明顯優(yōu)于ABC 算法和IABC算法.
圖9 本文ABC 算法狀態(tài)變量
表2 文獻[14]ABC和本文ABC 算法參數(shù)估計結(jié)果
針對人工蜂群算法收斂速度相對較慢,精度不高,本文首先引入了可選擇的概率p得到新的搜索機制;在此基礎(chǔ)上,將混沌系統(tǒng)中復(fù)雜的參數(shù)估計問題轉(zhuǎn)化為多維問題,利用改進的人工蜂群優(yōu)化算法求解混沌系統(tǒng)的參數(shù).測試函數(shù)優(yōu)化實驗證了人工蜂群算法改進方案的有效性;Lorenz 混沌系統(tǒng)的參數(shù)辨識仿真實驗結(jié)果表明了本文的基于人工蜂群算法的混沌系統(tǒng)參數(shù)辨識方法比傳統(tǒng)ABC 算法及IABC 算法具有更高的估計精度,且較快的收斂速度.