黃文文,宋 璐,史敬灼
(河南科技大學(xué),洛陽 471023)
隨著電機(jī)伺服控制技術(shù)研究的不斷深入,電機(jī)辨識(shí)建模方法日益受到重視。電機(jī)辨識(shí)建模的過程是基于實(shí)驗(yàn)數(shù)據(jù),針對(duì)結(jié)構(gòu)形式已知、參數(shù)未知的待辨識(shí)模型,采用優(yōu)化算法確定模型參數(shù)與階次[1]。其中,優(yōu)化算法是辨識(shí)建模過程中的關(guān)鍵環(huán)節(jié)。優(yōu)化算法是否能夠找到最優(yōu)解,表現(xiàn)是否穩(wěn)健,即是否總是能夠收斂于最優(yōu)解,直接決定了所建模型的精度,甚至是建模的成敗。而優(yōu)化算法收斂于最優(yōu)解所需要花費(fèi)的時(shí)間長短,則決定了建模效率。
近年來,差分進(jìn)化算法被嘗試用于電機(jī)辨識(shí)建模。與其它領(lǐng)域的優(yōu)化問題相比,電機(jī)辨識(shí)建模這一特定的應(yīng)用領(lǐng)域,有其自身的特點(diǎn),有必要對(duì)標(biāo)準(zhǔn)差分進(jìn)化算法進(jìn)行針對(duì)性的改進(jìn),以保證建模精度,提高建模效率。
差分進(jìn)化算法自提出以來,已有許多文獻(xiàn)論及其改進(jìn)方法。總的來看,差分進(jìn)化算法的改進(jìn)主要聚焦在以下三個(gè)方面:一是采用自適應(yīng)的優(yōu)化算法參數(shù),使參數(shù)隨進(jìn)化過程動(dòng)態(tài)變化[2],例如,變異算子影響種群多樣性,通常進(jìn)化初期要求具有較強(qiáng)的種群多樣性,而進(jìn)化后期則期望有較快的收斂速度,因此可考慮在進(jìn)化過程中,使變異算子由大逐漸變?。欢歉淖兯惴ǖ慕Y(jié)構(gòu),如改變變異策略[3],或采用將多種變異策略進(jìn)行組合的多變異策略,也可在現(xiàn)有的變異、交叉和選擇三個(gè)操作中增加或刪除一些操作;三是差分進(jìn)化算法與其它優(yōu)化算法組合,根據(jù)具體問題需求和各種算法的特點(diǎn),組合成為滿足特定應(yīng)用需要的改進(jìn)算法[4]。
本文以超聲波電動(dòng)機(jī)辨識(shí)建模為例,在標(biāo)準(zhǔn)差分進(jìn)化算法的基礎(chǔ)上,對(duì)變異操作及參數(shù)設(shè)定等進(jìn)行改進(jìn),給出了適用于電機(jī)辨識(shí)建模的改進(jìn)差分進(jìn)化算法。該算法在得到最優(yōu)解的基礎(chǔ)上,能有效減少優(yōu)化辨識(shí)過程所需迭代次數(shù)和時(shí)間,優(yōu)化過程更為穩(wěn)健,建模效率更高。
以超聲波電動(dòng)機(jī)的驅(qū)動(dòng)頻率為輸入信號(hào)、轉(zhuǎn)速為輸出信號(hào),建立超聲波電動(dòng)機(jī)Hammerstein非線性模型。Hammerstein模型由靜態(tài)非線性環(huán)節(jié)和動(dòng)態(tài)線性環(huán)節(jié)組成[5]。其非線性環(huán)節(jié):
x=c1+c2ec3(u-c4)2
(1)
線性環(huán)節(jié):
式中:a1,a2,…,ana;b0,b1,…,bnb為模型的待定系數(shù),由辨識(shí)確定,na和nb為模型階次。
為進(jìn)行辨識(shí)建模,首先需要測取能夠反映超聲波電動(dòng)機(jī)運(yùn)行特性的實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)用超聲波電動(dòng)機(jī)為Shinsei USR60行波超聲波電動(dòng)機(jī),驅(qū)動(dòng)主電路為H橋結(jié)構(gòu),采用相移PWM控制方式。在電機(jī)的調(diào)速范圍10~120 r/min內(nèi),間隔10 r/min設(shè)定轉(zhuǎn)速階躍給定值,測取不同控制參數(shù)情況下的轉(zhuǎn)速階躍響應(yīng)作為實(shí)驗(yàn)數(shù)據(jù)。在所測階躍響應(yīng)數(shù)據(jù)中,取8組數(shù)據(jù)用作校驗(yàn)數(shù)據(jù),以評(píng)測所建模型的泛化能力;其它36組數(shù)據(jù)作為建模數(shù)據(jù),用于辨識(shí)建模。
采用標(biāo)準(zhǔn)差分進(jìn)化算法進(jìn)行超聲波電動(dòng)機(jī)辨識(shí)建模,取如下均方差函數(shù)作為優(yōu)化的目標(biāo)函數(shù):
(3)
式中:m為所用實(shí)測數(shù)據(jù)的組數(shù);h為每組數(shù)據(jù)的數(shù)據(jù)點(diǎn)數(shù);y為模型計(jì)算值;ye為實(shí)測值。
經(jīng)辨識(shí),得到模型階次為na=4,nb=1的超聲波電動(dòng)機(jī)Hammerstein非線性轉(zhuǎn)速控制模型,模型精度優(yōu)于作者所在課題組之前采用蟻群、粒子群、菌群覓食等優(yōu)化算法建模的情況,表明差分進(jìn)化算法是一種適用于超聲波電動(dòng)機(jī)辨識(shí)建模的較好的優(yōu)化算法。表1給出了采用該算法進(jìn)行優(yōu)化辨識(shí)的部分結(jié)果。
表1 采用標(biāo)準(zhǔn)差分進(jìn)化算法進(jìn)行模型辨識(shí)的部分優(yōu)化結(jié)果
但是,在建模過程中,采用相同優(yōu)化算法參數(shù)、模型階次參數(shù)進(jìn)行的多次優(yōu)化辨識(shí)計(jì)算,所得最優(yōu)目標(biāo)函數(shù)值往往會(huì)有差異,如表1第2組三次辨識(shí)的情況。顯然,所得最優(yōu)目標(biāo)函數(shù)值相對(duì)較大的優(yōu)化辨識(shí)過程,并未收斂于最優(yōu)解,優(yōu)化算法表現(xiàn)不夠穩(wěn)健。另一方面,使優(yōu)化辨識(shí)收斂所需的迭代計(jì)算次數(shù)較多,優(yōu)化過程所需時(shí)間較長,進(jìn)一步限制了建模效率。
為使優(yōu)化算法更穩(wěn)健,保證建模精度,并減少優(yōu)化辨識(shí)過程所需迭代次數(shù)和時(shí)間,提高建模效率,有必要考慮針對(duì)電機(jī)建模這一特定應(yīng)用領(lǐng)域,改進(jìn)差分進(jìn)化算法。
差分進(jìn)化算法利用種群中個(gè)體間的差異,引導(dǎo)種群個(gè)體的進(jìn)化方向,使種群個(gè)體進(jìn)化成為性能更為優(yōu)良的個(gè)體,而正是變異操作決定了如何引導(dǎo)種群個(gè)體的進(jìn)化方向。合適的變異策略將提供在可行解空間中適用于特定問題的搜索方法,從而可加快搜索到全局最優(yōu)解的搜索速度。文獻(xiàn)[3]對(duì)差分進(jìn)化算法進(jìn)行改進(jìn),給出下式的變異策略:
式中:F,F(xiàn)2為變異算子,文獻(xiàn)[3]設(shè)其為常數(shù),并令F=F2;r1,r2∈{1,2,3,…,Np}為隨機(jī)選取的互不相同的數(shù),且均與i不同;Np為初始種群個(gè)體數(shù)量;Xi(t)為第t代種群中的目標(biāo)個(gè)體矢量;Vi(t+1)為目標(biāo)矢量所對(duì)應(yīng)的變異個(gè)體矢量;Xbest(t)為第t代種群中的最優(yōu)個(gè)體矢量。
式(4)中,F(xiàn)所乘差分矢量為當(dāng)前最優(yōu)個(gè)體矢量與目標(biāo)個(gè)體矢量之間的差向量,使目標(biāo)個(gè)體產(chǎn)生定向運(yùn)動(dòng),趨近于當(dāng)前最優(yōu)個(gè)體矢量周邊進(jìn)行局部搜索。而F2所乘差分矢量為兩個(gè)不同隨機(jī)個(gè)體的差向量,使目標(biāo)個(gè)體產(chǎn)生隨機(jī)運(yùn)動(dòng),傾向于全局搜索。式(4)中系數(shù)F和F2的相對(duì)大小,反映了側(cè)重于全局搜索還是局部搜索,可以用來調(diào)控優(yōu)化進(jìn)程。一般而言,在優(yōu)化的起始階段應(yīng)側(cè)重于全局搜索,隨著優(yōu)化迭代計(jì)算的持續(xù)進(jìn)行,應(yīng)逐漸過渡到側(cè)重于局部搜索,并應(yīng)考慮保持適當(dāng)?shù)碾S機(jī)性。由此看來,系數(shù)F和F2的相對(duì)大小,應(yīng)該是隨著優(yōu)化進(jìn)程而變化的。但是,文獻(xiàn)[3]將系數(shù)F和F2設(shè)為常數(shù),并取兩者數(shù)值相等。這樣做,不符合優(yōu)化計(jì)算的一般規(guī)律。因此,本文嘗試在優(yōu)化過程中調(diào)整F和F2的相對(duì)大小,探求更適合于電機(jī)建模應(yīng)用的改進(jìn)算法。
根據(jù)一般規(guī)律,優(yōu)化起始階段的目標(biāo)函數(shù)值大,需要進(jìn)行大范圍的全局搜索,可設(shè)置F2為較大值,并取F為小值。隨著迭代計(jì)算的進(jìn)行,目標(biāo)函數(shù)值逐漸減小,應(yīng)使F值增大,逐漸過渡到側(cè)重局部搜索。F值增大到一定值后,應(yīng)保持不變。若F值過大,可能會(huì)因個(gè)體聚集太快而陷入局部極值點(diǎn),出現(xiàn)早熟。同時(shí),F(xiàn)2值應(yīng)保持適當(dāng)?shù)臄?shù)值,不能過小,以使種群在進(jìn)入局部搜索后仍保持一定的分散程度,限制聚集的速度和程度。
由此,嘗試采用不同的變異算子F,F(xiàn)2調(diào)整表達(dá)式,進(jìn)行超聲波電動(dòng)機(jī)辨識(shí)建模,評(píng)測變異算子的不同調(diào)整方式對(duì)優(yōu)化過程的影響。
優(yōu)化辨識(shí)效果最好的兩種變異算子調(diào)整方法如表2所示,為便于對(duì)比,表2同時(shí)給出了文獻(xiàn)[3]所述改進(jìn)算法、標(biāo)準(zhǔn)差分進(jìn)化算法的優(yōu)化結(jié)果。表2中1至4組情況,達(dá)到最優(yōu)目標(biāo)函數(shù)值所需時(shí)間依次為216.91 s,176.11 s,252.98 s,499.14 s。由表2可知,標(biāo)準(zhǔn)差分進(jìn)化算法三次所得最優(yōu)目標(biāo)函數(shù)值存在差異,而另外三種算法三次優(yōu)化所得最優(yōu)目標(biāo)函數(shù)值均相同,表現(xiàn)更為穩(wěn)健,建模精度更高。與標(biāo)準(zhǔn)差分進(jìn)化算法相比,另外三種算法迭代次數(shù)明顯減少,其中本文所述第2組情況的迭代次數(shù)平均值較標(biāo)準(zhǔn)算法減少73.7%。
與文獻(xiàn)[3]所述F和F2取為固定值的情況相比,本文的改進(jìn)差分進(jìn)化算法(第2組)在保持算法穩(wěn)健性的同時(shí),收斂所需迭代次數(shù)減少30.5%,達(dá)到最優(yōu)目標(biāo)函數(shù)值所需時(shí)間也進(jìn)一步縮短30.4%,收斂速度更快,建模效率更高。
表2 不同算法的優(yōu)化結(jié)果對(duì)比
下面對(duì)本文的改進(jìn)差分進(jìn)化算法(表2第2組)的優(yōu)化過程進(jìn)行分析。可以用來反映優(yōu)化過程差異的主要指標(biāo)是收斂速度和種群多樣性。當(dāng)前最優(yōu)目標(biāo)函數(shù)值變化曲線可表征收斂速度與收斂過程,種群中個(gè)體的分布情況可表征種群多樣性。但個(gè)體在多維搜索空間中的分布情況難以用平面圖形完整表達(dá);同時(shí),為了便于描述、比較,需要用數(shù)字指標(biāo)來衡量種群多樣性與個(gè)體分布狀況。故本文以當(dāng)前種群中各個(gè)體相對(duì)平均值距離之和來表征迭代過程中個(gè)體分布情況的變化,并稱之為“分散度”。分散度的數(shù)值越大,則種群中個(gè)體的分布越分散,種群多樣性越強(qiáng)。反之,分散度越小,個(gè)體分布越密集,多樣性越弱。分散度的計(jì)算方法:
(5)
(6)
圖1給出了優(yōu)化過程中的最優(yōu)目標(biāo)函數(shù)值變化曲線。可見,目標(biāo)函數(shù)值起始下降迅速,隨后的緩降階段持續(xù)的迭代次數(shù)較少,從而加快了收斂速度。
圖1 優(yōu)化過程中目標(biāo)函數(shù)變化曲線
圖2為每次迭代的個(gè)體分散度變化曲線??梢钥闯?,在達(dá)到最優(yōu)目標(biāo)函數(shù)值所需的125次迭代中,雖部分迭代存在分散度增加的情況,但整體呈現(xiàn)下降趨勢。這表明,在優(yōu)化過程中,各個(gè)體逐漸聚攏,群體分布由分散逐漸趨向密集,在迭代次數(shù)為125時(shí),分散度值為438.735 4,可見種群在收斂時(shí)仍保持一定的多樣性,符合期望。
圖2 第2組各個(gè)體分布情況變化曲線
圖3給出了種群中3個(gè)個(gè)體的a1值在迭代過程中的變化,各個(gè)體中a1值在迭代過程中由分散漸進(jìn)到平穩(wěn)地趨于聚集。圖4為不同迭代次數(shù)時(shí),全部100個(gè)個(gè)體中a1值的分布情況。同樣,隨著迭代次數(shù)的增加,不同個(gè)體中的a1值逐漸趨近,并在120次迭代時(shí)依然保持了一定范圍內(nèi)的零散分布。從上述優(yōu)化過程來看,本文的改進(jìn)算法的性能表現(xiàn)趨近于期望的優(yōu)化狀態(tài)。
圖3 第1,50,100個(gè)個(gè)體a1值變化曲線
圖4 第10,60,120次迭代100個(gè)個(gè)體分布情況
采用上述改進(jìn)差分進(jìn)化算法,經(jīng)優(yōu)化辨識(shí),得超聲波電動(dòng)機(jī)Hammerstein非線性轉(zhuǎn)速控制模型參數(shù)為[c1,c2,c3,c4,a1,a2,a3,a4,b0,b1]=[9.540 0, 155.871 7, -0.592 6, 42.006 0, -0.941 6, 0.062 3,0.047 1, -0.025 5 , 0.821 8 , -0.692 8],將上述參數(shù)代入式(1)和式(2)就得到了所建模型。
為驗(yàn)證所建模型的精度,將本文所建模型與文獻(xiàn)[5]所建超聲波電動(dòng)機(jī)模型的模型計(jì)算數(shù)據(jù)與實(shí)測電機(jī)階躍響應(yīng)數(shù)據(jù)進(jìn)行對(duì)比,如圖5所示??梢钥闯觯疚乃P偷哪P洼敵雠c實(shí)測輸出的接近程度更好。
圖5 實(shí)測數(shù)據(jù)與模型計(jì)算數(shù)據(jù)對(duì)比(120 r/min)
采用本文所建模型,使用式(3)計(jì)算全部36組實(shí)測建模數(shù)據(jù)的均方差值為9.54,另外8組實(shí)測校驗(yàn)數(shù)據(jù)對(duì)應(yīng)的均方差值為3.44;而采用文獻(xiàn)[5]所建模型,上述兩數(shù)值分別為466.42,109.76。對(duì)比可知,本文所建模型與實(shí)測數(shù)據(jù)之間的均方差值均較小,模型精度較高。
針對(duì)采用標(biāo)準(zhǔn)差分進(jìn)化算法進(jìn)行超聲波電動(dòng)機(jī)Hammerstein辨識(shí)建模所存在的算法不夠穩(wěn)健、建模效率低等問題,對(duì)標(biāo)準(zhǔn)算法中的變異操作進(jìn)行改進(jìn),引入自適應(yīng)調(diào)整系數(shù),使優(yōu)化進(jìn)程中何時(shí)側(cè)重全局搜索、何時(shí)側(cè)重局部搜索變?yōu)榭烧{(diào)可控,不再像標(biāo)準(zhǔn)算法那樣一成不變,從而可以更好地與電機(jī)辨識(shí)建模的應(yīng)用需求相匹配。超聲波電動(dòng)機(jī)辨識(shí)建模應(yīng)用表明,與標(biāo)準(zhǔn)差分進(jìn)化算法比較,本文的改進(jìn)差分進(jìn)化算法表現(xiàn)更為穩(wěn)健,保證了建模精度;與已有改進(jìn)算法相比,本文方法收斂速度更快,建模效率更高。