董 輝,仲濟(jì)磊,李華昌,郭成朝,鄒 立
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
隨著《中國(guó)制造2025》的提出,傳統(tǒng)工業(yè)開(kāi)始向智能化工業(yè)轉(zhuǎn)型[1-2]。衣服作為人們?nèi)粘I畹谋仨毱罚槍?duì)不同的季節(jié)都會(huì)有不同的需求量,傳統(tǒng)的服裝加工方式難以供應(yīng)市場(chǎng)的需求,近年來(lái)也越來(lái)越多的企業(yè)開(kāi)始在自動(dòng)服裝裁剪設(shè)備上發(fā)力,競(jìng)爭(zhēng)也因此變得加激烈[3],其中,運(yùn)動(dòng)控制系統(tǒng)是決定其性能的關(guān)鍵。
因此如何設(shè)計(jì)一款高性價(jià)比的裁床運(yùn)動(dòng)控制器是其中的難點(diǎn)[4]所在。陳效力[5]在解決裁床的高速平穩(wěn)加工過(guò)程中采用了將離散點(diǎn)分段處理,實(shí)現(xiàn)圓弧平滑過(guò)渡,加工效果良好。但是在直線段與圓弧段的銜接點(diǎn),存在插補(bǔ)誤差較大的問(wèn)題。王允森[6]等提出利用B樣條曲線來(lái)擬合的方法,解決局部拐角尖銳導(dǎo)致速度跳躍過(guò)大問(wèn)題,但是B樣條曲線擬合軌跡會(huì)與實(shí)際的加工路線,形成輪廓誤差。鄔再新[7]提出RBF神經(jīng)網(wǎng)絡(luò)對(duì)自由曲線插補(bǔ)的方法,能夠解決復(fù)雜曲線的計(jì)算,但是無(wú)法保證插補(bǔ)的精度在誤差范圍內(nèi)。魏效玲[8]等提出基于神經(jīng)網(wǎng)絡(luò)的NUBRS曲線算法,在插補(bǔ)前對(duì)B樣條曲線的參數(shù)進(jìn)行了預(yù)估,但是沒(méi)有考慮訓(xùn)練的神經(jīng)網(wǎng)絡(luò)插補(bǔ)器自身帶來(lái)的插補(bǔ)偏差。
針對(duì)以上存在的問(wèn)題,本文采用基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條曲線插補(bǔ),并且結(jié)合負(fù)反饋校正與原始加工曲線動(dòng)態(tài)校準(zhǔn)。在此過(guò)程中,完成對(duì)X、Y兩軸的同步控制后,實(shí)現(xiàn)裁床刀具的高精度插補(bǔ)。同時(shí)在保證精度的條件下,利用加工過(guò)程的曲線曲率半徑的變化進(jìn)行速度前瞻規(guī)劃。最終實(shí)現(xiàn)裁床的高速高精度插補(bǔ)設(shè)計(jì)。
裁床的運(yùn)動(dòng)控制系統(tǒng)整體架構(gòu)主要包括上位機(jī)、運(yùn)動(dòng)控制器、觸控屏三大部分,如圖1所示。其中上位機(jī)主要是利用網(wǎng)絡(luò)通信TCP/IP協(xié)議與下位機(jī)運(yùn)動(dòng)控制器建立連接的,主要工作就是將原始PLT進(jìn)行解析和坐標(biāo)擬合并下發(fā)到單片機(jī)的存儲(chǔ)器中去,并利用工業(yè)攝像頭完成加工位置的定位糾偏操作。下位機(jī)主要是完成任務(wù)的調(diào)度和運(yùn)動(dòng)控制算法的實(shí)現(xiàn)制更新指令給下位機(jī)設(shè)備。觸控屏通過(guò)串口與運(yùn)動(dòng)控制器建立連接,實(shí)現(xiàn)人機(jī)界面的友好化控制。整個(gè)裁床運(yùn)動(dòng)控制系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)框架圖
為了實(shí)現(xiàn)裁床的高速,高精度完成材料的切割任務(wù),需要通過(guò)合理的加減速控制、精確的插補(bǔ)計(jì)算以及平面上長(zhǎng)短軸的同步運(yùn)動(dòng),并且在電機(jī)的啟動(dòng)和停止時(shí)不會(huì)產(chǎn)生失步,沖擊或者過(guò)切,才能加工出所需要的圖形。
高速高精度加工過(guò)程中需要優(yōu)化刀具進(jìn)給速度,即需要對(duì)進(jìn)給速度進(jìn)行前瞻性速度規(guī)劃。
裁床加工過(guò)程中,刀具的移動(dòng)路線如圖2所示,假設(shè)刀具從點(diǎn)A到接下來(lái)第一個(gè)運(yùn)動(dòng)點(diǎn)B的距離l1,下一個(gè)運(yùn)動(dòng)點(diǎn)B即為裁床將要進(jìn)行拐彎的拐點(diǎn),點(diǎn)B到點(diǎn)C的距離為l2。θ為l1與l2的夾角的補(bǔ)角,即為裁床刀具在B點(diǎn)所轉(zhuǎn)動(dòng)的角度。雖然通過(guò)θ的大小確定拐彎速度的值可以一定程度上滿足裁床的運(yùn)動(dòng)需求,但在裁床高速運(yùn)動(dòng)時(shí)會(huì)因?yàn)闆](méi)有結(jié)合上下運(yùn)動(dòng)點(diǎn)去判斷拐彎速度而導(dǎo)致裁床運(yùn)動(dòng)發(fā)生抖動(dòng)。因此需要實(shí)現(xiàn)前瞻預(yù)判出任意三點(diǎn)出的最大速度,提前進(jìn)行加減速過(guò)渡。
圖2 刀具移動(dòng)路線
(1)
同理可以依次計(jì)算出:
(2)
(3)
從而確定各個(gè)Ri處的最大允許速度為vi1,vi2,vi3和vmax中的最小值vi,即vi=min{vi1,vi2,vi3,vmax}。
給進(jìn)速度曲線如圖3所示,根據(jù)加工時(shí)的拐角最大允許速度vi,初始化線性方向角度為θ1,拐點(diǎn)C處的線程方向角度為θ,由此可以得到X,Y軸的給進(jìn)初始分速度為:
Vss=Vicos(θ1)
Vsy=Visin(θ1)
(4)
經(jīng)過(guò)轉(zhuǎn)接處后的給進(jìn)X,Y軸的分速度為:
Vex=Vicos(θ1+θ)
Vey=Visin(θ1+θ)
(5)
圖3 給進(jìn)速度曲線
目前,常用的傳統(tǒng)加工方法是利用CAD/CAM系統(tǒng)將原始的加工曲線離散化為小線段,采用小線段逼近的方式完成對(duì)復(fù)雜曲線的擬合,但是該方法會(huì)造成進(jìn)給速度的不連續(xù)和插補(bǔ)精度降低[9-10]。而使用B樣條曲線進(jìn)行擬合,能夠較好的復(fù)現(xiàn)加工曲線,并且具有拐角平滑,能夠明顯的提高工作效率的優(yōu)點(diǎn)。但是B樣條曲線計(jì)算復(fù)雜外,還會(huì)帶來(lái)插補(bǔ)的曲線可能偏離實(shí)際的加工路線困擾[11-12],本文為了解決這一問(wèn)題,采用改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條曲線插補(bǔ)方式,并結(jié)合負(fù)反饋來(lái)校正輪廓誤差,從而提高裁床插補(bǔ)精度。其中B樣條曲線數(shù)學(xué)表達(dá)式如下:
(6)
其中:式(4)中有n+1個(gè)控制點(diǎn)di(i=0,1,...n)和一個(gè)節(jié)點(diǎn)矢量U=[u0,u1,u2,...un],wi為權(quán)因子;其中表達(dá)式中的Ni,k(u)為第i(i=0,1,2…)個(gè)k次B樣條基函數(shù),m=n+k+1;Ni,k(u)由下面的遞推公式(7)可以得到:
(7)
從上述B樣條曲線方程,我們可以得出影響B(tài)樣條曲線擬合主要因素有:控制點(diǎn)、節(jié)點(diǎn)矢量、權(quán)因子。而其中的節(jié)點(diǎn)矢量的確定需要復(fù)雜的求導(dǎo)計(jì)算與泰勒展開(kāi),并且隨著時(shí)間累積誤差逐漸增大,導(dǎo)致加工曲線偏離實(shí)際的加工曲線??紤]到神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)非線性映射和自學(xué)能力強(qiáng)的優(yōu)點(diǎn),為此本文采用改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條曲線,并通過(guò)負(fù)反饋的方式優(yōu)化節(jié)點(diǎn)參數(shù)值。其訓(xùn)練學(xué)習(xí)過(guò)程如流程圖4所示。
圖4 BP插補(bǔ)神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練流程圖
2)將獲取的節(jié)點(diǎn)矢量中的節(jié)點(diǎn)參數(shù)依次輸入到預(yù)先建立的BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型進(jìn)行迭代,對(duì)于當(dāng)前輸入的節(jié)點(diǎn)參數(shù),獲取BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型的輸出。
3)將BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型的當(dāng)前輸出帶入B樣條曲線計(jì)算出預(yù)測(cè)插補(bǔ)點(diǎn),與實(shí)際插補(bǔ)點(diǎn)進(jìn)行比較,如果他們的差小于預(yù)設(shè)的精度閾值,則進(jìn)入步驟F4,否則進(jìn)入步驟5)。
5)計(jì)算損失函數(shù),利用梯度下降法完成BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型參數(shù)的更新。
本模型損失函數(shù)Ej表達(dá)如下:
(8)
(9)
其中:Wj為權(quán)值,bj為閾值,都是BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型參數(shù),g為激活函數(shù)。
本模型每次對(duì)單個(gè)數(shù)據(jù)權(quán)值Wj與閾值bj進(jìn)行更新訓(xùn)練:
(10)
其中:η為反向傳播學(xué)習(xí)率,取值范圍為(0, 1),j=0,1,...m。
6)加入動(dòng)量因子對(duì)BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型參數(shù)進(jìn)行修正,返回2)繼續(xù)進(jìn)行迭代。引入動(dòng)量因子的BP權(quán)值優(yōu)化過(guò)程可以用數(shù)學(xué)表達(dá)式表示為:
(11)
其中:第一項(xiàng)是BP算法的第一項(xiàng),η為反向傳播學(xué)習(xí)率,第二項(xiàng)為動(dòng)量項(xiàng),α為動(dòng)量項(xiàng)系數(shù),α根據(jù)工程經(jīng)驗(yàn)通常取0.95左右。
基于上述訓(xùn)練好的改進(jìn)BP神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型,完成插補(bǔ)具體實(shí)現(xiàn)步驟如下:
1)獲取待加工產(chǎn)品的原始加工軌跡曲線以及根據(jù)原始加工軌跡曲線擬合得到的B樣條曲線節(jié)點(diǎn)矢量U,從所述節(jié)點(diǎn)矢量中選取初始加工位置對(duì)應(yīng)的節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn);
(12)
進(jìn)一步計(jì)算對(duì)應(yīng)的反饋校正輸出p*(uj):
(13)
結(jié)合牛頓搜索路徑法,預(yù)測(cè)出下一次插補(bǔ)的節(jié)點(diǎn)參數(shù)uj+1:
(14)
其中:f(uj)=p*(uj)-yorg(uj),f′(uj)為f(uj)在uj處的導(dǎo)數(shù),yorg(uj)為原始加工軌跡曲線對(duì)應(yīng)uj的數(shù)值;將預(yù)測(cè)出的節(jié)點(diǎn)參數(shù)作為當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)參數(shù)返回步驟2);最后,通過(guò)查步長(zhǎng)表給進(jìn)對(duì)應(yīng)的步長(zhǎng)值,完成插補(bǔ)動(dòng)作;
3)判斷是否插補(bǔ)完成,如果完成插補(bǔ)則結(jié)束,否則返回步驟2);
在上述的插補(bǔ)算法僅是對(duì)給進(jìn)目標(biāo)點(diǎn)的精確預(yù)測(cè)校正,為了高速高精度的完成插補(bǔ),需要解決運(yùn)動(dòng)過(guò)程的X、Y兩軸的同步控制問(wèn)題[13]。本文采用S型加減速曲線變周期法進(jìn)行插補(bǔ),建立對(duì)應(yīng)的加速度表a0,a1,...am,加速度值由高到低逐漸減小。利用加速表和電機(jī)的機(jī)械參數(shù),建立與加速度對(duì)應(yīng)的速度表V0,V1,...Vm。根據(jù)速度和步長(zhǎng)的關(guān)系:
Lm=VmT
(15)
建立給進(jìn)步長(zhǎng)表l0,l1...lm,其中Vm為速度表中對(duì)應(yīng)下標(biāo)為m時(shí)的速度,T為插補(bǔ)周期。
假設(shè)加工的X軸為長(zhǎng)軸,Y軸為短軸。nxi為電機(jī)在第i個(gè)插補(bǔ)周期內(nèi)對(duì)應(yīng)的脈沖個(gè)數(shù)。利用建立好的步長(zhǎng)表和在長(zhǎng)軸的上的速度表,推知:
nxi=lj
(16)
公式(14)中l(wèi)j的下標(biāo)j為速度表中的對(duì)應(yīng)速度的所在位置,對(duì)應(yīng)的步長(zhǎng)為步長(zhǎng)表中的第j個(gè)。從而可以計(jì)算出長(zhǎng)軸的第i(i=0,1,...m)個(gè)插補(bǔ)周期為:
(17)
其中:C為對(duì)應(yīng)插補(bǔ)周期常量。
根據(jù)長(zhǎng)軸X、短軸Y與合運(yùn)動(dòng)向量方向的夾角θ,能得到短軸Y在第i個(gè)插補(bǔ)周期內(nèi)對(duì)應(yīng)的脈沖數(shù)為nyi:
nyi=nxi·tanθ
(18)
基于長(zhǎng)軸的對(duì)應(yīng)的插補(bǔ)周期Txi,可以計(jì)算得到短軸的當(dāng)前的速度:
(19)
由于Vyi取值為整數(shù),所以在對(duì)應(yīng)的周期內(nèi)會(huì)存在偏差ΔTyi,即:
ΔTyi=Txi-Vyi·nyi
(20)
根據(jù)公式(18)可以由上一個(gè)周期差值得到長(zhǎng)軸的下一個(gè)插補(bǔ)周期:
Tyi=Vyi·nyi+ΔTyi-1
(21)
最后將長(zhǎng)短軸各自對(duì)應(yīng)的插補(bǔ)周期與脈沖數(shù)寫(xiě)入對(duì)應(yīng)的緩沖區(qū),采用隊(duì)列的方式在STM32單片機(jī)上完成脈沖的發(fā)送,從而實(shí)現(xiàn)對(duì)長(zhǎng)短軸的同步控制,根據(jù)步長(zhǎng)表,給進(jìn)對(duì)應(yīng)的步長(zhǎng)值,完成裁床切割機(jī)對(duì)材料的精準(zhǔn)加工。
為了驗(yàn)證本文提出的運(yùn)動(dòng)控制算法的有效性,在Matlab2013b平臺(tái)上進(jìn)行的仿真驗(yàn)證?;诟倪M(jìn)的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)插補(bǔ)仿真結(jié)果,如圖5所示,小圓圈為加工的坐標(biāo),利用BP神經(jīng)網(wǎng)絡(luò)B樣條曲線插補(bǔ)器完成預(yù)測(cè)插補(bǔ),其中插補(bǔ)周期為100 μs,輪廓平均誤差為0.048%。
圖5 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)插補(bǔ)仿真圖
為了保證起始的速度快速上升,先以最大加速度10 000 mm/s2加速,隨著速度的增大,逐漸減小加速度;這樣可以保證電機(jī)的以更加平滑的速度迅速上升,給進(jìn)加速度曲線如圖6所示。
圖6 給進(jìn)加速度曲線
圖7給出了帶有速度前瞻拐角約束和不帶速度前瞻的對(duì)比仿真圖。在裁床高速加工過(guò)程中,觀察裁床切割刀頭的抖動(dòng)情況;經(jīng)過(guò)實(shí)際測(cè)試,對(duì)比分析發(fā)現(xiàn),對(duì)于裁床刀頭加有拐角的速度約束比不加拐角速度約束,加減速過(guò)程運(yùn)行更加平滑,刀頭抖動(dòng)情況要小很多。
圖7 給進(jìn)速度曲線
圖8給出了加減速過(guò)程中的進(jìn)給步長(zhǎng)曲線,進(jìn)給步長(zhǎng)值與速度值成正比關(guān)系,速度越大,進(jìn)給的步長(zhǎng)值就越大。
圖8 給進(jìn)步長(zhǎng)曲線
將設(shè)計(jì)好的智能裁床運(yùn)動(dòng)控制主板、伺服驅(qū)動(dòng)器、觸控屏以及開(kāi)關(guān)電源安裝在控制柜中,并完成對(duì)多軸運(yùn)動(dòng)控制平臺(tái)的調(diào)試,嵌入式運(yùn)動(dòng)控制主板及運(yùn)動(dòng)控制系統(tǒng)接線如圖9所示。
圖9 嵌入式運(yùn)動(dòng)控制系統(tǒng)
利用上位機(jī)選中待切圖案的輪廓,將待加工輪廓PLT圖形文件解析之后的坐標(biāo)點(diǎn)發(fā)送到下位機(jī)控制器中去,設(shè)置智能裁床運(yùn)動(dòng)控制系統(tǒng)最大切向加速度為amax=500 mm/s2,最大切向速度為vmax=300 mm/s,最大拐角約束速度為100 mm/s。開(kāi)始執(zhí)行自動(dòng)切割操作,直到完成所有的待加工切割材料。運(yùn)動(dòng)平臺(tái)與刀具實(shí)際切割泡沫材料效果圖如圖10所示。
圖10 加工效果圖
本設(shè)計(jì)裁床運(yùn)動(dòng)控制系統(tǒng)采用小線段逼近插補(bǔ)與利用改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條曲線插補(bǔ)結(jié)合負(fù)反饋校正的方法情況對(duì)比,如表1所示。
表1 小線段逼近插補(bǔ)與改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條插補(bǔ)結(jié)合負(fù)反饋校正的方法情況對(duì)比
從表1中對(duì)比情況可以得出,本文插補(bǔ)算法相對(duì)于小線段逼近插補(bǔ)方法,CAD描述點(diǎn)數(shù)更多,曲線更平滑,輪廓誤差更小,加工時(shí)間短,效率高。
針對(duì)小線段插補(bǔ)不連續(xù)問(wèn)題,本文提出了基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練B樣條曲線,結(jié)合負(fù)反饋校正實(shí)現(xiàn)高精度預(yù)測(cè)插補(bǔ)。同時(shí)根據(jù)加工曲線曲率半徑的變化完成速度前瞻規(guī)劃。最后,經(jīng)過(guò)算法仿真與平臺(tái)測(cè)試驗(yàn)證,本文提出來(lái)的運(yùn)動(dòng)控制算法能夠有效的解決裁床在高速加工程中刀具抖動(dòng)的問(wèn)題。產(chǎn)生的曲線軌跡光滑,加工時(shí)間較傳統(tǒng)的加工方法,明顯縮短。