方 強(qiáng),宋福民
(深圳市大族數(shù)控科技有限公司,廣東深圳 518057)
高速高精度加工是目前最重要的研究領(lǐng)域之一,其目的在于提高機(jī)械加工生產(chǎn)率并改善加工質(zhì)量。然而,實(shí)現(xiàn)高速高精度加工也面臨著許多挑戰(zhàn)。最主要的問題在于存在擾動、非線性、模型和參數(shù)不確定性的情況下如何設(shè)計(jì)高性能的伺服控制器。當(dāng)使用有限帶寬的伺服控制器時,伺服延遲也成為引起位置誤差的主要原因,并會隨著高速加工時進(jìn)給速度的提高而更加嚴(yán)重。
智能控制技術(shù)(如模糊控制、神經(jīng)網(wǎng)絡(luò)控制、遺傳算法控制等)的出現(xiàn),為彌補(bǔ)PID控制策略的不足提供了良好的解決途徑。其中PID控制與智能控制方式的結(jié)合,產(chǎn)生了許多復(fù)合式的PID控制策略。例如,模糊PID控制,專家PID控制,模糊+PID復(fù)合控制、神經(jīng)元網(wǎng)絡(luò)PID控制等。復(fù)合式PID控制策略可以揚(yáng)長避短發(fā)揮各自優(yōu)勢,是智能控制的一個重要研究方向。
本文就是利用小腦模型具有不依賴于被控對象的精確數(shù)學(xué)模型、極強(qiáng)的非線性擬合能力、對運(yùn)行工況的適應(yīng)能力強(qiáng)的特點(diǎn),將其與PID控制相結(jié)合形成PID+CMAC控制策略,并借助Turbo PMAC的“開放伺服”功能,在Turbo PMAC運(yùn)動控制器上研究了PID+CMAC控制策略的實(shí)現(xiàn)方法。
人工神經(jīng)網(wǎng)絡(luò)是由許多具有并行運(yùn)算、功能簡單的信息處理單元(神經(jīng)元)相互連接組成的網(wǎng)絡(luò)。雖然單個神經(jīng)元的結(jié)構(gòu)簡單,功能有限,但其構(gòu)成的網(wǎng)絡(luò)系統(tǒng)所能實(shí)現(xiàn)的功能卻是極其豐富和復(fù)雜。神經(jīng)網(wǎng)絡(luò)的智能處理能力及控制系統(tǒng)所面臨的問題是人工神經(jīng)網(wǎng)絡(luò)控制的發(fā)展動力。人工神經(jīng)網(wǎng)絡(luò)處理非線性問題是這個領(lǐng)域最有意義的事情,它主要處理傳統(tǒng)技術(shù)不能解決的復(fù)雜非線性、不確定、不確知系統(tǒng)的控制問題。主要有如下優(yōu)勢:
(1)可以處理難以用模型或規(guī)則描述的過程或系統(tǒng);
(2)采用并行分布式信息處理方式,具有很強(qiáng)的容錯性;
(3)神經(jīng)網(wǎng)絡(luò)的本質(zhì)是非線性系統(tǒng);
(4)神經(jīng)網(wǎng)絡(luò)系統(tǒng)具有自學(xué)習(xí)功能,能不斷提高對非線性系統(tǒng)的逼近能力;
(5)神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的信息綜合能力,非常適合多變量系統(tǒng)。
根據(jù)神經(jīng)網(wǎng)絡(luò)在控制器中的作用不同,神經(jīng)網(wǎng)絡(luò)在控制系統(tǒng)設(shè)計(jì)中的應(yīng)用一般分為兩類:一類是神經(jīng)控制,它是以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)而形成的獨(dú)立智能控制系統(tǒng);另一類稱為混合神經(jīng)網(wǎng)絡(luò)控制,它是利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和優(yōu)化能力來改善其它控制方法的控制。
人工神經(jīng)網(wǎng)絡(luò)經(jīng)過多年的發(fā)展出現(xiàn)了多種形式的網(wǎng)絡(luò),常用的如BP網(wǎng)絡(luò)(誤差反向傳播網(wǎng)絡(luò))、CMAC網(wǎng)絡(luò)(小腦模型)、ELMAN 網(wǎng)絡(luò)、RBF網(wǎng)絡(luò)等。
CMAC是 J.S.Albus在 1975年提出的一種模擬小腦功能的神經(jīng)網(wǎng)絡(luò)模型。它是一種聯(lián)想網(wǎng)絡(luò),對每一輸入只有少部分神經(jīng)元與之有關(guān),它的聯(lián)想具有局部泛化能力。基本思想是:將學(xué)習(xí)的數(shù)據(jù)(知識)存儲在交疊的存儲單元(記憶空間)中,其輸出為相應(yīng)激活單元數(shù)據(jù)的累加和。CMAC算法實(shí)現(xiàn)過程包含兩個階段:結(jié)果輸出階段和權(quán)值學(xué)習(xí)階段。在結(jié)果輸出階段,CMAC將所有被輸入狀態(tài)激活的存儲單元的權(quán)值(存儲數(shù)據(jù))相加,即:

其中N為存儲單元數(shù)目;ys為狀態(tài)s(s=1,2,……n)的實(shí)際輸出值,n為總狀態(tài)數(shù);Wj為第j個存單元的權(quán)值;Cs為第j個存儲單元是否被狀態(tài)s激活的指示,當(dāng)某個狀態(tài)僅有m個存儲單元被激活時,其Cs為1,而其他存儲單元的Cs均為 0。
CMAC的學(xué)習(xí)算法采用簡單的δ算法,收斂速度極快,且不存在局部極小問題,這使它非常適合在線應(yīng)用。
CMAC網(wǎng)絡(luò)權(quán)向量的δ學(xué)習(xí)算法是:W(k+1)=W(k)+η(u-ut)/c,其中η為學(xué)習(xí)率,c為泛化參數(shù),u為PID+CMAC復(fù)合控制器的輸出,ut為CMAC控制器的輸出,系統(tǒng)以u-ut為誤差信號進(jìn)行訓(xùn)練,因而是“目標(biāo)導(dǎo)向”的。
經(jīng)過一段時間的學(xué)習(xí)后,CMAC網(wǎng)絡(luò)的輸出ut將逐漸接近u,而反饋控制器PID的輸出將逐漸減小,充分訓(xùn)練后,CMAC網(wǎng)絡(luò)將成為被控制對象的逆模型。和BP網(wǎng)絡(luò)不同的是,CMAC網(wǎng)絡(luò)是局部的逆動態(tài)模型,而非全局的,但由于其學(xué)習(xí)速度很快,所以可以在線適應(yīng)被控對象的參數(shù)變化。
Turbo PMAC是美國Delta Tau公司發(fā)布的PMAC升級版本,保持了PMAC系列控制器的優(yōu)良性,并具有更高的運(yùn)算速度和控制能力。Turbo PMAC面向用戶進(jìn)一步開放了底層特性,其特有的“開放伺服”功能為用戶定義自己的伺服算法提供了條件。
Turbo PMAC的“開放伺服”功能允許用戶使用高級語言來編寫自定義的算法,并能運(yùn)行在高優(yōu)先級的伺服中斷上,不僅可用于電機(jī)伺服控制,也可用于其他高優(yōu)先級任務(wù),如高速I/O處理,反饋信號的預(yù)處理和伺服指令的后處理。而在以前是通過匯編語言實(shí)現(xiàn)的,需要掌握Motorola的DSP56300系列匯編指令,編程困難,可靠性低。開放伺服算法程序采用高級語言編寫,規(guī)則類似于PLC程序或運(yùn)動程序,但在運(yùn)行機(jī)制上不同于PLC程序。如果PLC程序運(yùn)行在實(shí)時中斷上,有可能被運(yùn)動程序搶先,若PLC作為后臺程序運(yùn)行,則無確定的運(yùn)行周期。開放伺服算法程序運(yùn)行在伺服中斷上,能確保在每個周期運(yùn)行。此外,開放伺服算法程序還可采用特定的訪問機(jī)制訪問伺服功能寄存器。
Turbo PMAC只能運(yùn)行一個開放伺服算法,可以用于多個電機(jī)控制。如果需要在各個電機(jī)上運(yùn)行不同的伺服算法,可以在算法程序中通過明確的邏輯控制,使不同電機(jī)具有不同的伺服算法和處理方法。
自定義伺服算法的運(yùn)行不會對編碼器轉(zhuǎn)換表處理,軌跡生成,位置跟隨,時基控制,跟隨誤差極限檢查等內(nèi)建的固件程序構(gòu)成影響。
自定義伺服算法程序可使用PEW IN32 PRO程序來編輯,也可使用其它任何無格式文本編輯器進(jìn)行編輯。編輯好的程序必須使用PEW IN32 PRO程序進(jìn)行編譯,并將編譯后的機(jī)器碼下載到Turbo PMAC的用戶程序RAM中。使用SAVE指令可將程序復(fù)制到不揮發(fā)的閃存中,在上電或復(fù)位時,該算法程序會自動從Turbo PMAC中載入,使伺服算法成為Turbo PMAC的固件程序。
Turbo PMAC為嵌入用戶自定義伺服算法提供了接口,然而數(shù)控機(jī)床的位置控制是一種高速高精的實(shí)時控制,位置環(huán)的控制周期一般不太長,大約都在10ms以內(nèi)。因此在如此短的時間內(nèi)伺服算法不可能完成復(fù)雜的神經(jīng)網(wǎng)絡(luò)控制和在線學(xué)習(xí),常用的方法是從伺服運(yùn)動系統(tǒng)上采集一組樣本數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到權(quán)矩陣參數(shù),神經(jīng)網(wǎng)絡(luò)控制時通過查表權(quán)矩陣參數(shù)進(jìn)行實(shí)時控制。
本文所研究的CMAC小腦模型控制器是局部神經(jīng)網(wǎng)絡(luò),而非全局的,由于其學(xué)習(xí)速度很快,所以很適合實(shí)時伺服控制過程。
在PID+CMAC控制策略中,CMAC控制器占據(jù)前饋環(huán)節(jié),用于改善系統(tǒng)的跟蹤性能,不影響系統(tǒng)的穩(wěn)定性和抗干擾能力;前饋環(huán)節(jié)旁路了系統(tǒng)大部分的輸入信號,減小了系統(tǒng)相位滯后,極大地提高了系統(tǒng)響應(yīng)速度。所有型號的PMAC控制器缺省的伺服算法為PID+前饋控制算法,其中缺省的前饋控制算法包括速度前饋、加速度前饋算法。為了尊重用戶的使用習(xí)慣將CMAC控制器與缺省的前饋控制器并聯(lián),作為前饋算法的有益補(bǔ)充。控制框圖如圖1所示。

圖1 基于Turbo PMAC的PID+CMAC算法框圖
CMAC算法的基本實(shí)現(xiàn)過程包括網(wǎng)絡(luò)權(quán)參數(shù)初始化、計(jì)算CMAC控制輸出un、將un加入到伺服控制過程中、在線更新網(wǎng)絡(luò)權(quán)參數(shù)(在線學(xué)習(xí))。
在該算法中Ixx30、Ixx31和Ixx33為基本PID增益項(xiàng),Kvff、Kaff分別為速度前饋增益和加速度前饋增益。以下是自定義PID+CMAC伺服算法程序中有關(guān)小腦模型控制部分的源程序示例:


為了PID+CMAC控制策略對改善系統(tǒng)動態(tài)性能的有效性,在Turbo PMAC伺服運(yùn)動系統(tǒng)上植入上述自定義伺服算法分別對系統(tǒng)的正弦響應(yīng)和定位運(yùn)動進(jìn)行了測試。
測試步驟如下:
(1)將自定義伺服控制算法程序下載到Turbo PMAC控制器中;
(2)激活自定義伺服算法(設(shè)置Ixx59=1),關(guān)閉CMAC控制功能Qx00=0;
(3)使用PMAC Tuning軟件整定控制器參數(shù)(Ixx30、Ixx31、Ixx32、Ixx35);
(4)打開CMAC控制功能Qx00=1;
(5)驅(qū)動工作臺運(yùn)動,同時測量運(yùn)動數(shù)據(jù)、繪制運(yùn)動曲線;
(6)根據(jù)實(shí)際控制效果調(diào)節(jié)CMAC控制器網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率Qx01和動量因子Qx02。測試效果如圖2~圖4所示。
說明:圖中橫坐標(biāo)為時間參數(shù),縱坐標(biāo)為跟蹤誤差參數(shù)。

圖2 各種控制策略下系統(tǒng)正弦響應(yīng)誤差曲線

圖3 各種控制策略下系統(tǒng)定位運(yùn)動誤差曲線(5mm運(yùn)動位移)

圖4 各種控制策略下系統(tǒng)定位運(yùn)動誤差曲線(5cm運(yùn)動位移)
PID+CMAC控制策略對于改善系統(tǒng)的定位性能和跟蹤性能具有良好的效果,然而如何在實(shí)際伺服運(yùn)動系統(tǒng)上實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)控制策略一直是工程人員研究的難點(diǎn)。本文借助Turbo PMAC控制器的“開放伺服”功能開發(fā)出了自定義PID+CMAC伺服算法,并通過試驗(yàn)驗(yàn)證了該算法的有效性。對PID+CMAC伺服算法的設(shè)計(jì)與應(yīng)用作如下小結(jié):
1) 利用Turbo PMAC的硬件資源嵌入自定義PID+CMAC伺服算法,對神經(jīng)網(wǎng)絡(luò)控制策略在伺服運(yùn)動系統(tǒng)上的應(yīng)用進(jìn)行了創(chuàng)新研究;
2) 開發(fā)出了小腦模型(CMAC)控制程序,實(shí)現(xiàn)了在線學(xué)習(xí)功能;
3) 網(wǎng)絡(luò)權(quán)參數(shù)學(xué)習(xí)率和動量因子直接影響到伺服運(yùn)動系統(tǒng)的動態(tài)跟蹤性能,需要根據(jù)實(shí)際控制效果反復(fù)測試與調(diào)整;
4) 網(wǎng)絡(luò)權(quán)參數(shù)學(xué)習(xí)率決定了誤差信號u-un-uff的收斂速度,學(xué)習(xí)率越大學(xué)習(xí)速度越快,然而過大會導(dǎo)致起始段波動增大;
5) 由于不同的輸入有可能激勵相同的單元,因此小腦模型(CMAC)存在學(xué)了新的忘了舊的之遺忘現(xiàn)象。
[1]朱大奇,張偉.基于平衡學(xué)習(xí)的CMAC神經(jīng)網(wǎng)路非線性辨識算法[J].控制與決策,2004,19(12):1425.
[2]呂英俊,李敏花,柏猛.一種交流伺服系統(tǒng)中的神經(jīng)元自適應(yīng)控制器[J].煤礦機(jī)械,2005(11):125-127.
[3]蔣銳權(quán),吳祖育,蔡建國.數(shù)控機(jī)床神經(jīng)元自適應(yīng)位置控制算法[J].上海交通大學(xué)學(xué)報(bào),2001,35(7):1088-1092.
[4]李寶仁,江春華.基于神經(jīng)網(wǎng)絡(luò)PID的交流伺服系統(tǒng)位置控制[J].機(jī)床與液壓2005(1):136-137.