李 偉,張長勝
(昆明理工大學(xué) 信息工程與自動化學(xué)院,昆明 650500)
直流伺服電動機是機電系統(tǒng)中重要的驅(qū)動設(shè)備,其性能對整個伺服系統(tǒng)顯得尤為重要。摩擦是伺服系統(tǒng)中最重要的非線性干擾之一,其時變性會導(dǎo)致系統(tǒng)出現(xiàn)穩(wěn)態(tài)誤差、極限環(huán)和低速爬行等問題[1-2],為了有效提高伺服系統(tǒng)的控制性能,有必要對非線性摩擦參數(shù)進行辨識和補償。布谷鳥搜索(cuckoo search, CS)算法作為新興群智能算法,以其全局搜索能力好、搜索路徑優(yōu)和多目標(biāo)問題求解能力強等優(yōu)點已廣泛應(yīng)用于各種優(yōu)化領(lǐng)域。
多位學(xué)者已將智能算法運用到摩擦參數(shù)辨識中,文獻[3]采用了混沌螢火蟲算法辨識直流伺服系統(tǒng)靜摩擦參數(shù),所得辨識曲線與實際曲線基本重合,相對誤差較小。文獻[4]針對傳統(tǒng)方法對伺服系統(tǒng)摩擦參數(shù)辨識精度較低的問題,提出了一種魯棒辨識算法,可有效避免最小二乘法的建模誤差,極大提高了非線性LuGre摩擦辨識精度。文獻[5]利用即時學(xué)習(xí)算法對摩擦參數(shù)辨識,并設(shè)計了自適應(yīng)前饋控制器對摩擦進行補償,獲得了令人滿意的控制效果。文獻[6-7]利用遺傳算法對伺服系統(tǒng)摩擦參數(shù)辨識,獲得較高的辨識精度。其中,文獻[6]使用摩擦參數(shù)辨識值對伺服系統(tǒng)進行補償控制,驗證了辨識結(jié)果的有效性,文獻[7]還通過統(tǒng)計邏輯學(xué)對高水平置信區(qū)間內(nèi)的辨識結(jié)果誤差進行了預(yù)測。多個專家從不同方面對傳統(tǒng)CS算法的優(yōu)化效果進行了改進,文獻[8]針對CS算法搜索速度慢和易陷入局部最優(yōu)的缺點,提出了一種帶有局部搜索的復(fù)值CS算法,并通過實驗驗證了其較好的高維優(yōu)化能力。文獻[9]首先通過引入人工蜂群算法思想改善萊維飛行的后期搜索性能,使個體在迭代過程中互相學(xué)習(xí),提高其局部搜索能力,然后利用變異算子建立最差鳥巢位置,提高種群的多樣性,增加了算法的收斂速度、精度和穩(wěn)定性。文獻[10]針對CS算法局部搜索能力不強的問題,將布谷鳥群分為2個子群,通過2個子群之間的協(xié)作有效地提高了原算法的收斂速度和優(yōu)化精度。
本文將基于模擬退火布谷鳥搜索(cuckoo search algorithm based on simulated annealing, SACS)算法應(yīng)用于直流伺服系統(tǒng)摩擦參數(shù)辨識中。對系統(tǒng)的LuGre靜態(tài)摩擦模型進行研究,得到確定靜摩擦力矩的相關(guān)參數(shù)函數(shù)關(guān)系式。通過引入模擬退火算法的Boltzmann選擇機制,并結(jié)合迭代全局最優(yōu)值對布谷鳥算法發(fā)現(xiàn)概率自適應(yīng)性進行增強,以增加算法的收斂速度與精度。利用改進算法對靜摩擦參數(shù)進行辨識,得到精度較高的辨識結(jié)果,并通過摩擦補償實驗驗證優(yōu)化結(jié)果的有效性。
根據(jù)直流伺服系統(tǒng)通用模型和試驗?zāi)M,單輸入單輸出的直流伺服系統(tǒng)為
(1)
(1)式中:Jm為轉(zhuǎn)動慣量;ωm為角速度;u為控制力矩;Tf為摩擦力矩。摩擦對在低速和反向情況下的伺服系統(tǒng)影響尤為巨大,由LuGre模型,摩擦力矩為[11]
(2)
(3)
(4)
zs=g(ωm)sgn(ωm)
(5)
Tfs=[Tc+(Ts-Tc)e-(ωm/ωs)2]sgn(ωm)+σ2ωm
(6)
故此時,摩擦力矩只和靜態(tài)摩擦參數(shù)相關(guān),且伺服系統(tǒng)在正、反轉(zhuǎn)動速度方向時的靜態(tài)摩擦參數(shù)不同,(6)式可改寫為
(7)
由(7)式所建立的轉(zhuǎn)速-摩擦力矩曲線稱為Stribeck曲線。通過對伺服系統(tǒng)恒速跟蹤實驗可得Stribeck曲線,由該曲線可辨識出相關(guān)摩擦參數(shù)。
為模擬布谷鳥寄生育雛的繁殖策略,YANG Xin-she和DEB Suash規(guī)定了以下3個理想條件[12-14]:
1)每只布谷鳥每次隨機選擇一個鳥巢并產(chǎn)一個卵;
2)將存有最好鳥卵的鳥巢保留至下一代;
3)布谷鳥寄生的鳥巢數(shù)量固定,且被宿主發(fā)現(xiàn)的概率為pa∈[0,1]。
由此,根據(jù)萊維飛行隨機游走方式更新鳥巢位置用(8)式表示為
(8)
levy(β)~μ=t-β, 1<β≤3
(9)
(10)
按發(fā)現(xiàn)概率pa放棄部分鳥巢后,重新生成新解為
(11)
pa在基本CS算法中為固定值,較大的pa值雖然會增加算法收斂速度,但是尋優(yōu)精度也會隨之降低。為使尋優(yōu)過程中的發(fā)現(xiàn)概率取值趨于合理,基于現(xiàn)有布谷鳥算法特點,引入Boltzmann選擇機制以增加pa的自適應(yīng)性,迭代至第k代時寄生鳥卵被宿主發(fā)現(xiàn)的概率pa(k)定義為
(12)
T=T0(αk-1)
(13)
(14)
(15)
尋優(yōu)過程中目標(biāo)函數(shù)f的值即為適應(yīng)度值,對辨識誤差具有評價作用。
SACS方法對LuGre模型靜態(tài)摩擦參數(shù)優(yōu)化辨識的偽代碼如下:
While (k<最大迭代次數(shù)G) or (停止規(guī)則)
End if
由(12)式,(13)式計算pa(k);根據(jù)pa(k)丟棄部分解并通過(11)式產(chǎn)生新解;所有較優(yōu)解保留至下一代;尋找并保存種群中的最優(yōu)解;k=k+1
End while
輸出最優(yōu)解
圖1 實驗系統(tǒng)架構(gòu)
表1 靜態(tài)摩擦參數(shù)實際值與辨識值
圖2 迭代曲線
圖3 Stribeck曲線
圖4 未加補償?shù)奈恢酶?/p>
由表1知,在不大于文獻[3]、文獻[6]的種群規(guī)模和迭代次數(shù)的情況下,CS算法的辨識適應(yīng)度值提高了一個數(shù)量級,而在相同參數(shù)設(shè)置下,SACS算法又較CS算法提高了2個數(shù)量級,即辨識精度得到進一步提高,辨識結(jié)果的誤差率進一步降低,證明了算法改進的有效性。由圖3可直觀看出,基于SACS算法的摩擦參數(shù)辨識結(jié)果比較理想,辨識曲線與實際曲線基本重合。在圖4中,由于存在靜摩擦,位置跟蹤的峰值位置附近出了“平頂”現(xiàn)象而由圖5可知,加入摩擦補償后,期望曲線與跟隨曲線基本重合,誤差曲線幾乎是值為0的一條直線,極大程度消除了現(xiàn)象,說明了應(yīng)用SACS算法進行參數(shù)辨識的正確性。
圖5 基于摩擦補償?shù)奈恢酶?/p>
本文針對直流伺服系統(tǒng)靜摩擦參數(shù)辨識問題,提出了SACS算法。引入Bolzmann選擇機制對CS算法的宿主發(fā)現(xiàn)概率進行退火處理,增加了發(fā)現(xiàn)概率的自適應(yīng)性,可實現(xiàn)迭代動態(tài)變化,提高了算法的計算精度和收斂速度。試驗結(jié)果分析表明,采用SACS算法計算得到的摩擦參數(shù)辨識適應(yīng)度值優(yōu)于其它方法得到的結(jié)果2~3個數(shù)量級,獲得了更加精確的辨識效果,并將摩擦力矩補償引入到仿真控制中,驗證了SACS算法對摩擦參數(shù)辨識的有效性。