姚 遙,王少輝,程鐵漢
(1.周口師范學(xué)院 物理與電子工程系,河南 周口 466001;2.河南平高電氣股份有限公司 河南 平頂山 467000)
精密運動控制方法在球面打標(biāo)機(jī)中的應(yīng)用研究
姚 遙1,王少輝1,程鐵漢2
(1.周口師范學(xué)院 物理與電子工程系,河南 周口 466001;2.河南平高電氣股份有限公司 河南 平頂山 467000)
針對國家對鋼印標(biāo)記的要求和現(xiàn)有球面打標(biāo)機(jī)在打標(biāo)精度、速度方面的不足,提出一種基于FPGA(現(xiàn)場可編程邏輯門陣列)的步進(jìn)電機(jī)伺服控制器設(shè)計。設(shè)計中采用了改進(jìn)的比較積分法和S型加減速控制方法,并對可能產(chǎn)生的誤差進(jìn)行了研究和解決。實驗結(jié)果表明,該控制器可以有效的提高打印標(biāo)記的精度和速度。該控制器已成功應(yīng)用于球面打標(biāo)機(jī)中。
球面打標(biāo)機(jī);現(xiàn)場可編程邏輯門陣列;比較積分法;S型加減速;誤差分析
高壓容器鋼瓶按國家標(biāo)準(zhǔn)規(guī)定在出廠前必須進(jìn)行嚴(yán)格的質(zhì)量檢查。《氣瓶安全監(jiān)察規(guī)程》(2000版)第二章第12條規(guī)定:氣瓶的鋼印標(biāo)記是識別氣瓶的依據(jù),鋼印標(biāo)記必須準(zhǔn)確、清晰,并對鋼印的位置和內(nèi)容進(jìn)行了詳細(xì)的規(guī)定[1]。打標(biāo)機(jī)的控制器的性能的優(yōu)劣直接影響打印質(zhì)量,目前控制器核心主要由單片機(jī)實現(xiàn),通過單片機(jī)收發(fā)打印指令、指令運算、生成步進(jìn)脈沖,單片機(jī)的工作是相當(dāng)繁重的,提高打印速度就容易產(chǎn)生掉筆、缺字現(xiàn)象,不符合標(biāo)準(zhǔn)規(guī)定。廖欣[2]提出采用基于FPGA的PCI伺服控制卡實現(xiàn)步進(jìn)電機(jī)控制器,但其核心算法采用的是梯形加減速控制算法,打印速度較低,生產(chǎn)效率不高。本文采用FPGA作為打標(biāo)機(jī)的控制核心,核心算法采用改進(jìn)的比較積分法和S型加減速控制方法,能夠在提高打印速度的情況下達(dá)到打字準(zhǔn)確、清晰、不掉筆、缺字。
本球面打標(biāo)機(jī)控制器的FPGA采用了ALTERA公司的Cyclone系列產(chǎn)品EP1C3和QuartusII集成開發(fā)環(huán)境。Cyclone系列是ALTERA中等規(guī)模FPGA,EP1C3有2 910個邏輯單元,支持接近5萬門的設(shè)計,內(nèi)嵌RAM共59 904 bits,可配置為用戶程序RAM,也可以配置為雙口RAM或FIFO存儲器,完全滿足系統(tǒng)的設(shè)計要求[3]。
FPGA功能總體設(shè)計框圖如圖1所示。
圖1 FPGA功能框圖Fig.1 FPGA functional block diagram
整個FPGA模塊采用VHDL開發(fā)[4]。各模塊功能簡述如下:
核心控制器主要負(fù)責(zé)將存儲器中的數(shù)據(jù)讀出,然后分發(fā)到插補器和升降頻控制器中;處理外部反饋信號,并生成特定的反饋數(shù)據(jù)格式通過總線發(fā)送到主機(jī)。同時根據(jù)插補器的完成狀態(tài),給出內(nèi)部控制信號,協(xié)調(diào)各個模塊的工作。在前一條指令讀出后,如果數(shù)據(jù)存儲器內(nèi)還有指令,則將該指令讀出,在前一條指令執(zhí)行完成后,馬上開始執(zhí)行。核心控制器中還包含多個狀態(tài)寄存器,在各種事件發(fā)生后將其置位,以便主機(jī)獲取狀態(tài)。
加減速控制器負(fù)責(zé)按照核心控制器從數(shù)據(jù)指令中給定的初始速度和末速度給出步進(jìn)脈沖,送插補器作為參考輸出脈沖。
插補器的作用是根據(jù)核心控制器提供的信號,分別選通各個軸的輸出脈沖,最終實現(xiàn)插補脈沖輸出。
位置反饋是將本地的輸出脈沖計數(shù),得到打印頭當(dāng)前位置,通過核心控制器可以將打印頭位置讀到主機(jī)上。
運動控制系統(tǒng)中,控制方法對于其實現(xiàn)不同的性能要求起著關(guān)鍵的作用。在FPGA中的控制方法主要包含插補運算和加減速控制兩部分,下面對其分別進(jìn)行闡述。
球面打標(biāo)機(jī)在實際加工中有自由曲線、曲面、方程曲線和曲面體構(gòu)成的復(fù)雜零件輪廓,還有一系列實驗或經(jīng)驗數(shù)據(jù)表示的、沒有表達(dá)輪廓形狀的曲線方程的曲線,理論上,應(yīng)該保證針頭中心軌跡應(yīng)與零件輪廓形狀一致,但實際上,筆者只能通過一系列的直線或圓弧去逼近它。
插補的任務(wù)就是根據(jù)進(jìn)給速度的要求,在輪廓起點和終點之間計算出若干個中間點的坐標(biāo)值。由于每個中間點計算所需的時間直接影響系統(tǒng)的控制速度,而插補中間點坐標(biāo)值的計算精度又影響到系統(tǒng)的控制精度,所以插補算法對整個系統(tǒng)的性能指標(biāo)至關(guān)重要。
按照運算方式分,常用的插補方法有:逐點比較法、數(shù)字積分法、時間分割法、數(shù)字脈沖乘法器法、比較積分法等。不管是以哪一種方式實現(xiàn)插補,其基本原理都是相同的。在現(xiàn)場應(yīng)用中,選取何種插補運算方法,可以用算法簡便程度、插補精度高低、執(zhí)行時間長短來評價。
本設(shè)計中在PC機(jī)上已經(jīng)將曲線分段,得到每段直線各軸的步數(shù)、方向和速度。在已知直線運動步數(shù)的情況下,按照設(shè)定速度產(chǎn)生一個基準(zhǔn)參考脈沖,各軸需要的脈沖從該參考脈沖中提取。為在FPGA中方便運算,所有的速度都轉(zhuǎn)換為周期數(shù)(本設(shè)計中采用的是100 ns的整數(shù)倍)進(jìn)行運算。這樣,就能很容易產(chǎn)生給定頻率的脈沖。文中采用的是改進(jìn)的比較積分法[2]適合FPGA運算,單軸算法實現(xiàn)框圖如圖2所示。
在系統(tǒng)時鐘的控制下,每當(dāng)檢測到一個參考脈沖的邊沿,就啟動一次該算法。參考脈沖根據(jù)當(dāng)前的輸出脈沖周期決定。在所有的軸都完成運動指定步數(shù)后結(jié)束整個算法。從圖中可以看出,每一路算法相同。該算法優(yōu)于普通數(shù)字積分算法在于插補脈沖都是均勻的輸出,這對于直線運動時的平穩(wěn)度很重要。另一個優(yōu)點在于適合FPGA運算,因為它避開了非常耗資源的乘除法運算,只有加減法運算,并且可以很方便地擴(kuò)充為多路插補運動,而VHDL程序只需要很小的修改。
圖3是兩路插補輸出的SingalTap波形,分別輸出9、5個脈沖。
圖2 直線插補算法Fig.2 Linear interpolation algorithm
圖3 兩路插補SingalTap波形Fig.3 Two-way waveform interpolation SingalTap
從圖中可以看出,插補點正好均勻分布,達(dá)到插補要求。
打標(biāo)機(jī)做直線運動最復(fù)雜的就是電機(jī)的加減速控制,為了防止電機(jī)失步,不能直接發(fā)送給定頻率的脈沖,需要有加速和減速的過程。加減速控制有兩種方法,梯形方法和S型方法。如圖4所示,梯形方法是采用恒定加速度,S型方法是采用變加速度和恒定加速度的2次加速方案。
圖4 加減速控制曲線Fig.4 Acceleration and deceleration control curve
傳統(tǒng)梯型加減速實現(xiàn)簡單,計算方便,適用于低速、低精度要求的場合。但是在變速點存在速度突變,對系統(tǒng)造成柔性沖擊,不適用于高速、高精度要求的場合。S型加減速控制方式速度過渡平滑,加速度與加加速度變化平穩(wěn),提高了高速打標(biāo)系統(tǒng)的柔性,適用于高速、高精度要求的場合,所以本設(shè)計采用的是S型加減速控制方法。程序框圖[5]如圖5所示。
圖5 S型加減速程序框圖Fig.5 S-type acceleration and deceleration block diagram
實驗得到,利用梯形加速,電機(jī)從速度0加速到頻率200 kHz,加速時間最短在0.4 s左右,而用S型可以在不到0.1 s內(nèi)成功啟動。
圖6是兩路插補加速輸出的SingalTap波形。
圖6 S型加速插補SingalTap波形Fig.6 S-type acceleration waveform interpolation SingalTap
圖中第一個波形就是參考脈沖輸出,后面兩個分別是插補兩個軸的輸出脈沖。明顯可以看出輸出頻率不斷增加,實現(xiàn)的加速功能。
系統(tǒng)的誤差主要是從系統(tǒng)的運行過程來進(jìn)行分析的,具體體現(xiàn)在打印標(biāo)記的輸入、打印指令的形成、數(shù)據(jù)傳輸、數(shù)據(jù)處理以及電機(jī)驅(qū)動的各個環(huán)節(jié)[6]。由于打印標(biāo)記的輸入環(huán)節(jié)是圖形界面部分,圖形算法已經(jīng)比較成熟,校正比例為double型,因此在此處存在的誤差在系統(tǒng)可接受范圍;數(shù)據(jù)傳輸過程認(rèn)為是比較理想的,不會出現(xiàn)誤差,即使出現(xiàn)問題,那也將是錯誤,而非誤差;數(shù)據(jù)處理部分的FPGA在數(shù)字信號處理能力方面是相當(dāng)成熟的,若出現(xiàn)誤差也是在合理的范圍內(nèi);因此,可校正的誤差主要集中在由圖形標(biāo)記轉(zhuǎn)化為指令格式的指令形成階段。
在伺服機(jī)構(gòu)(步進(jìn)電機(jī)、驅(qū)動器和傳動裝置)確定的情況下,可以計算出步進(jìn)電機(jī)在每個脈沖下帶動針頭所運動的確切距離,稱為最小步進(jìn)距離。在形成運動數(shù)據(jù)指令時,先計算運動下一點到當(dāng)前點的實際距離,然后除以最小步進(jìn)距離得到的就是實際運動的步數(shù)。但由于運動步數(shù)只能是整數(shù)形式,必然存在著最大的±1最小步進(jìn)距離的誤差。如果數(shù)據(jù)處理出來的每個指令都忽略這個誤差,將會使累積誤差增大,甚至影響打印效果。
在本設(shè)計中,每生成一條數(shù)據(jù)指令后,以實際計算的步數(shù)再乘以最小步進(jìn)距離來確定當(dāng)前的實際位置。這樣,理想情況下的實際針頭位置和軟件上記錄的實際位置只相差±1個最小步進(jìn)距離,從而消除了累積誤差。
本控制器充分利用FPGA的高速并行處理能力,在開放式數(shù)控中能夠發(fā)揮出較好的運動控制性能。實際性能:在40 MHz的時鐘頻率下,實現(xiàn)0.1 μm的插補精度,可達(dá)到4~5字符/秒的打印速度,性能好于以前的控制器。出于環(huán)保和經(jīng)濟(jì)的考慮,燃?xì)馄囋絹碓蕉啵烊粴獾某醒b必須用鋼瓶,因而該控制器有著廣泛的應(yīng)用前景。
[1]國家質(zhì)量技術(shù)監(jiān)督總局.氣瓶安全監(jiān)察規(guī)程[S].北京:技術(shù)標(biāo)準(zhǔn)出版社,2000.
[2]劉曉明,廖欣,熊東,等.基于FPGA的高速PCI伺服卡的實現(xiàn)[J].自動化與儀表,2008(1):45-49.
LIU Xiao-ming,LIAO Xin,XIONG Dong,et al.Realization of high speed PCI servo control card based on FPGA[J].Automation and Instrumentation,2008(1):45-49.
[3]Silicon Laboratories.CP2102 Data Sheet[EB/OL].(2004)http://www.silabs.com.
[4]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(修訂版)[M].西安:西安電子科技大學(xué)出版社,1999.
[5]陸悅,張峰,賀超.基于FPGA的直線插補器的研究與設(shè)計[J].電氣自動化,2010,32(1):27-29.
LU Yue,ZHANG Feng,HE Chao.Design of line interpolator based on FPGA[J].Electrical Automation,2010,32(1):27-29.
[6]劉曉明,姚遙,王泉,等.鋼瓶刻印機(jī)刻印算法及應(yīng)用研究[J].自動化與儀表,2009(3):50-56.
LIU Xiao-ming,YAO Yao,WANG Quan,et al.Research of the algorithm and application of cylinder mark printer[J].Automation and Instrumentation,2009(3):50-56.
Research on applications of precision motion control method in spherical marker
YAO Yao1, WANG Shao-hui1, CHENG Tie-han2
(1.Physics and Electron Engineering Department,Zhoukou Normal University,Zhoukou466001,China;2.Henan Pinggao Electric Co.Ltd.,Pingdingshan467000,China)
For the requirements of the state to Cylinders marked and the shortage of sphere mark printer in marking accuracy and speed,a design of stepper motor servo controller based on FPGA (field programmable gate array)is proposed.Improved compare integration method and S-shape acceleration/deceleration control algorithm are used in the design,and possible errors are studied and resolved.Experimental results show that the controller can effectively improve the accuracy and speed of marking.The controller has been successfully applied in the sphere mark printer.
sphere mark printer; field programmable gate array; compare integration method; S-shape acceleration/deceleration;error analysis
TP273.5
A
1674-6236(2012)03-0109-03
2011-12-16 稿件編號:201112097
周口師范學(xué)院青年科研基金項目(zknuqn201133B)
姚 遙(1984—),男,河南周口人,碩士研究生,助教。研究方向:信號與信息處理系統(tǒng)設(shè)計。