周昊玥,張建忠
(東南大學(xué) 電氣工程學(xué)院,南京 210096)
在高精度伺服系統(tǒng)中,非線性摩擦力使系統(tǒng)的精度和動(dòng)態(tài)性能下降,在低速區(qū)域造成跟蹤畸變等不良結(jié)果。為了提高伺服系統(tǒng)的性能,需要對(duì)非線性摩擦力進(jìn)行補(bǔ)償。在各類摩擦補(bǔ)償方法中,基于摩擦模型的補(bǔ)償方法能快速精確地進(jìn)行摩擦補(bǔ)償,是較常用的摩擦補(bǔ)償方法。
在基于摩擦模型的補(bǔ)償方法中,摩擦模型的選擇及其參數(shù)的辨識(shí)對(duì)補(bǔ)償效果至關(guān)重要。目前,使用較多的是Canudas于1995年提出的LuGre模型[1],該模型能較精確地描述摩擦的預(yù)滑動(dòng)效應(yīng)、摩擦滯后、Stribeck效應(yīng)等。由于引入了無法直接進(jìn)行觀測(cè)的鬃毛平均形變量來描述摩擦現(xiàn)象,LuGre模型的動(dòng)態(tài)參數(shù)辨識(shí)較為困難。參數(shù)辨識(shí)的準(zhǔn)確度不高,將出現(xiàn)過補(bǔ)償或欠補(bǔ)償現(xiàn)象,無法發(fā)揮LuGre模型精度高的優(yōu)勢(shì)。針對(duì)該研究難點(diǎn),研究人員提出了多種辨識(shí)方法:文獻(xiàn)[2]針對(duì)LuGre模型的動(dòng)態(tài)參數(shù),提出了基于高增益閉環(huán)速度控制的辨識(shí)算法;文獻(xiàn)[3]提出了合作進(jìn)化灰狼優(yōu)化算法,將進(jìn)化算法的探索能力和灰狼優(yōu)化算法的開發(fā)能力相結(jié)合,同時(shí)對(duì)LuGre模型的所有參數(shù)進(jìn)行辨識(shí);文獻(xiàn)[4]提出了智能螢火蟲群優(yōu)化算法用于摩擦參數(shù)辨識(shí);文獻(xiàn)[5]結(jié)合粒子群優(yōu)化算法和實(shí)時(shí)編碼遺傳算法,對(duì)LuGre模型進(jìn)行參數(shù)辨識(shí);文獻(xiàn)[6]采用遺傳算法和Stribeck曲線對(duì)LuGre模型的靜態(tài)參數(shù)進(jìn)行辨識(shí),再由系統(tǒng)的滑前位移曲線計(jì)算模型的動(dòng)態(tài)參數(shù);文獻(xiàn)[7]采用徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)逼近LuGre模型。但這些常用智能算法的參數(shù)辨識(shí)策略,包括遺傳算法、粒子群、優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)算法等大多存在早熟收斂、容易陷入局部極小值的缺點(diǎn)[8-10]。
Passino于2002年提出的細(xì)菌覓食算法(以下簡(jiǎn)稱BFO)具有并行搜索、易跳出局部極小值的特點(diǎn)[11],適用于參數(shù)多、模型復(fù)雜的LuGre模型參數(shù)辨識(shí)。針對(duì)BFO尋優(yōu)精度低、收斂速度慢的問題,本文提出了一種改進(jìn)細(xì)菌覓食算法(以下簡(jiǎn)稱IBFO),引入自適應(yīng)步長方法,根據(jù)適應(yīng)度和位置分量對(duì)步長進(jìn)行調(diào)整。在MATLAB/Simulink中模擬了參數(shù)辨識(shí)過程并驗(yàn)證了參數(shù)辨識(shí)效果。
BFO通過模擬自然界中大腸桿菌的覓食行為求解問題,該算法由趨向、復(fù)制、遷徙三種操作組成[12-13]。設(shè)細(xì)菌種群大小為S;p(i,j,k,l)表示細(xì)菌i的位置,其中i=1,2,3,…,S;j、k、l分別為三種操作的次數(shù)。設(shè)位置空間為M維,則p(i,j,k,l)可用分量表示為[p1(i,j,k,l),p2(i,j,k,l),…,pM(i,j,k,l)]。進(jìn)行參數(shù)辨識(shí)時(shí),M即待辨識(shí)參數(shù)數(shù)量,每個(gè)細(xì)菌的位置表示一組參數(shù)辨識(shí)值。由適應(yīng)度J判斷細(xì)菌位置的優(yōu)劣。趨向操作中,細(xì)菌的位置更新公式:
pm(i,j+1,k,l)=pm(i,j,k,l)+Cm(i)Φm(j)
(1)
式中:pm表示位置向量的第m維分量,m=1,2,3,…,M;Cm(i)表示在該維方向上移動(dòng)的步長;Φm(j)表示隨機(jī)單位向量的第m維分量。傳統(tǒng)BFO算法中,步長Cm(i)固定不變,為了提高收斂速度和收斂精度,本文提出了自適應(yīng)步長方法,按如下公式計(jì)算步長Cm(i):
(2)
圖1 IBFO算法流程圖
式中:J(i,j,k,l)為細(xì)菌i當(dāng)前適應(yīng)度;Jth為適應(yīng)度閾值;C為固定步長。IBFO算法流程圖如圖1所示,與BFO相比,IBFO的步長Cm與適應(yīng)度J、位置分量pm占比正相關(guān)。在前期適應(yīng)度高時(shí),大的步長能夠提高搜索效率和收斂速度;在后期適應(yīng)度低時(shí),小的步長能夠提高收斂精度,防止在算法最優(yōu)點(diǎn)附近振蕩。步長與位置分量的大小正相關(guān),能兼顧不同大小參數(shù)的收斂精度。
LuGre模型是一種摩擦模型,該模型使用三個(gè)數(shù)學(xué)表達(dá)式準(zhǔn)確描述了系統(tǒng)轉(zhuǎn)速與摩擦力之間的關(guān)系。LuGre模型的數(shù)學(xué)表達(dá)式如下:
(3)
式中:Tf為總摩擦力矩;內(nèi)部狀態(tài)量z為鬃毛的平均形變。LuGre模型中含有六個(gè)參數(shù):動(dòng)態(tài)參數(shù)中,使用鬃毛的剛度系數(shù)σ0和微觀阻尼系數(shù)σ1描述鬃毛形變產(chǎn)生的相互作用力,即預(yù)滑動(dòng)階段的摩擦力。靜態(tài)參數(shù)中,庫倫摩擦力矩Tc表示非零速下的摩擦,與法向載荷成比例,與速度幅值無關(guān)。最大靜摩擦力矩Ts表示物體從靜止到產(chǎn)生相對(duì)運(yùn)動(dòng)所需的力矩。Stribeck速度ωs描述負(fù)斜率摩擦現(xiàn)象。黏性摩擦系數(shù)σ2表示接觸表面間流體潤滑層的黏性行為,與速度成比例[14]。
圖2 永磁伺服電機(jī)系統(tǒng)控制原理圖
分別采用內(nèi)??刂撇呗院汀坝泄ψ枘帷备拍钤O(shè)計(jì)電流環(huán)和轉(zhuǎn)速環(huán)的參數(shù)[17],則系統(tǒng)模型可表示:
在汽輪機(jī)就地儀表起停盤上有盤車自動(dòng)/手動(dòng)按鈕,盤車電機(jī)可以就地啟動(dòng),也可以在中心控制室遠(yuǎn)程啟動(dòng)。盤車電機(jī)控制邏輯如圖1所示[3]。
(4)
式中:α為電流環(huán)帶寬;β為轉(zhuǎn)速環(huán)帶寬。LuGre模型確定了摩擦力模型的結(jié)構(gòu),還需確定模型中的六個(gè)參數(shù),才能使用LuGre模型進(jìn)行摩擦補(bǔ)償。LuGre模型參數(shù)中,靜態(tài)參數(shù)主要描述宏觀下的摩擦力,動(dòng)態(tài)參數(shù)描述微觀下的摩擦力,進(jìn)行參數(shù)辨識(shí)時(shí)難以同時(shí)兼顧,一般分兩步進(jìn)行辨識(shí)。
Tf=Tc+(Ts-Tc)e-(ω/ωs)2+σ2ω
(5)
(6)
式中:e1(W1,ωi)表示轉(zhuǎn)速為ωi時(shí)摩擦力矩的實(shí)際模型Ti和辨識(shí)模型Tf(W1,ωi)的誤差。定義靜態(tài)參數(shù)辨識(shí)的適應(yīng)度J1:
(7)
由式(3)可知,LuGre模型中,動(dòng)態(tài)參數(shù)σ0、σ1與內(nèi)部狀態(tài)量z相互耦合,并且z無法直接測(cè)量,因此動(dòng)態(tài)參數(shù)的辨識(shí)較困難。令q軸參考電流為小幅值階躍信號(hào),此時(shí)電磁轉(zhuǎn)矩也為小幅值階躍變化的量,可以模擬預(yù)滑動(dòng)位移階段,將電機(jī)微小的位移θ看作z,將無法測(cè)量的z近似為可測(cè)量的θ,從而進(jìn)行動(dòng)態(tài)參數(shù)辨識(shí)。近似后,式(3)可用如下微分方程表示:
(8)
由式(8)可見,此時(shí)摩擦力矩只與動(dòng)態(tài)參數(shù)σ0、σ1、靜態(tài)參數(shù)σ2有關(guān)。由于上一步進(jìn)行了靜態(tài)參數(shù)辨識(shí),σ2為已知參數(shù)。由機(jī)械運(yùn)動(dòng)方程可得:
(9)
(10)
定義動(dòng)態(tài)參數(shù)辨識(shí)的適應(yīng)度J2:
(11)
為了驗(yàn)證本文算法的有效性,開展了相關(guān)的仿真研究,永磁伺服電機(jī)系統(tǒng)的仿真參數(shù)如表1所示。
表1 仿真參數(shù)
基于圖1的IBFO算法,利用MATLAB的m語言編寫程序?qū)崿F(xiàn)參數(shù)辨識(shí)。首先在電機(jī)空載情況下,采集不同轉(zhuǎn)速下的電磁轉(zhuǎn)矩和不同時(shí)刻下的角位移。靜態(tài)參數(shù)辨識(shí)時(shí),種群大小為200,趨向次數(shù)為50,復(fù)制次數(shù)為10,遷徙次數(shù)為4,遷徙概率為0.4,引力深度、引力寬度、斥力深度、斥力寬度均為0.05,Tc∈[0,10],Ts∈[0,10],ωs∈[0,1],σ2∈[0,1]。動(dòng)態(tài)參數(shù)辨識(shí)時(shí),種群大小為100,趨向次數(shù)為30,復(fù)制次數(shù)為10,遷徙次數(shù)為1,遷徙概率為0.3,引力深度、引力寬度、斥力深度、斥力寬度均為0.05,σ0∈[0,106],σ0∈[0,103],辨識(shí)結(jié)果如表2所示。
表2 參數(shù)辨識(shí)結(jié)果
由表2可見,與BFO相比,IBFO的辨識(shí)精度更高,每個(gè)參數(shù)的誤差均有降低,所有辨識(shí)誤差在3%以內(nèi)。使用IBFO辨識(shí)時(shí),誤差較大的是動(dòng)態(tài)參數(shù)中的微觀阻尼系數(shù)σ1,原因是σ1的辨識(shí)依賴階躍響應(yīng)的動(dòng)態(tài)部分,而動(dòng)態(tài)部分變化非常迅速,因此辨識(shí)難度最大。
圖3 單個(gè)細(xì)菌的辨識(shí)誤差曲線(靜態(tài)參數(shù))
在靜態(tài)參數(shù)辨識(shí)中,觀察同一個(gè)細(xì)菌,BFO和IBFO的誤差如圖3所示。對(duì)比圖3(a)與圖3(b),IBFO的收斂速度更快、收斂精度更高。由圖3(a)可見,由于步長固定,不同大小的參數(shù)誤差差別較大,其中ωs最小,導(dǎo)致ωs的誤差最大,但辨識(shí)結(jié)果由所有細(xì)菌移動(dòng)過的位置中適應(yīng)度最小的位置決定,因此ωs最終的辨識(shí)誤差為42.60%。由圖3(b)可見,IBFO每個(gè)參數(shù)的誤差均較小,趨向次數(shù)為1500次左右時(shí)的波動(dòng)是遷徙操作造成的,波動(dòng)后誤差能迅速減小,反映了IBFO較高的收斂速度。
在動(dòng)態(tài)參數(shù)辨識(shí)中,觀察同一個(gè)細(xì)菌,BFO和IBFO的誤差如圖4所示。對(duì)比圖4(a)與圖4(b),IBFO的收斂速度更快、收斂精度更高。兩個(gè)動(dòng)態(tài)參數(shù)中,鬃毛的剛度系數(shù)σ0收斂更快,結(jié)合式(8)可知,σ0可由運(yùn)動(dòng)停止時(shí)的位移進(jìn)行辨識(shí),σ0辨識(shí)的準(zhǔn)確度會(huì)較大地影響適應(yīng)度,因此σ0收斂更快。
圖4 單個(gè)細(xì)菌的辨識(shí)誤差曲線(動(dòng)態(tài)參數(shù))
按照?qǐng)D2的控制系統(tǒng)原理,在MATLAB/Simulink中構(gòu)建永磁伺服電機(jī)系統(tǒng)仿真模型。基于IBFO參數(shù)辨識(shí)結(jié)果,構(gòu)建LuGre模型并實(shí)現(xiàn)永磁伺服電機(jī)的前饋摩擦補(bǔ)償,從而觀測(cè)參數(shù)辨識(shí)和摩擦補(bǔ)償?shù)男Ч?。為了觀察摩擦力矩造成的轉(zhuǎn)速過零死區(qū)現(xiàn)象,令伺服系統(tǒng)的參考轉(zhuǎn)速為ω*(t)=6sin(2πt) 。仿真結(jié)果如圖5所示??梢?,摩擦補(bǔ)償后,轉(zhuǎn)速的過零死區(qū)和滯后現(xiàn)象被大幅削弱,跟蹤畸變得到大幅削弱,轉(zhuǎn)速跟蹤誤差最大為0.755 rad/s。
圖5 摩擦補(bǔ)償仿真波形
本文針對(duì)LuGre摩擦模型,提出了一種基于IBFO的參數(shù)辨識(shí)方法,在傳統(tǒng)BFO的基礎(chǔ)上,引入自適應(yīng)步長方法,根據(jù)細(xì)菌適應(yīng)度和位置分量改變趨向操作中的步長,提高了參數(shù)辨識(shí)的收斂精度和收斂速度。利用MATLAB建立BFO和IBFO算法,模擬摩擦參數(shù)辨識(shí)過程,仿真結(jié)果表明,IBFO能更好地辨識(shí)LuGre摩擦模型的參數(shù)。使用BFO辨識(shí)參數(shù)時(shí),靜態(tài)參數(shù)最大誤差為42.60%,動(dòng)態(tài)參數(shù)最大誤差為10.58%;使用IBFO辨識(shí)參數(shù)時(shí),靜態(tài)參數(shù)最大誤差降至1.08%,動(dòng)態(tài)參數(shù)最大誤差降至2.90%。利用MATLAB/Simulink構(gòu)建永磁伺服電機(jī)系統(tǒng)仿真模型,使用IBFO辨識(shí)的參數(shù)進(jìn)行摩擦補(bǔ)償仿真,結(jié)果表明該辨識(shí)結(jié)果較大程度地改善了轉(zhuǎn)速過零死區(qū)和轉(zhuǎn)速波形畸變現(xiàn)象,進(jìn)一步驗(yàn)證了IBFO參數(shù)辨識(shí)方法的有效性。