文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.012
中文引用格式: 程文雅,高敏,李盛培. 基于FPGA的數(shù)字卷積加減速算法的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(8):43-46.
英文引用格式: Cheng Wenya,Gao Min,Li Shengpei. Design and implementation of a FPGA-based digital convolution acceleration and deceleration algorithm[J].Application of Electronic Technique,2015,41(8):43-46.
0 引言
現(xiàn)代數(shù)控系統(tǒng)、工業(yè)機器人正向著高速和高精度的方向發(fā)展,而加減速控制算法在實現(xiàn)其運動的高速、高精度上起著至關(guān)重要的作用。哈爾濱工程大學(xué)鄭金興等[1]提出了基于梯形速度控制的變插補周期實時插補算法,該算法可有效地控制加工精度,充分發(fā)揮了各軸聯(lián)動的加減速能力,但在運動的高速和實時性上不是很理想;朱明等[2]提出了一種實用的S曲線加減速控制算法,該算法加速度連續(xù)變化,速度變化平穩(wěn),減小了加工過程中速度突變造成的沖擊,但算法稍復(fù)雜,計算量大。目前,應(yīng)用于數(shù)控系統(tǒng)和工業(yè)機器人中的加減速運動控制算法有很多。如梯形曲線加減速、S形曲線加減速、多項式加減速、三角函數(shù)加減速[3-4]等控制算法。這些加減速算法都可以通過軟件編程的方式實現(xiàn),但由于計算量較大使得很難通過硬件編程的方式實現(xiàn)。為了減小計算量,實現(xiàn)加減速控制算法的高速與高精度,Chen和LEE[5]提出了基于FIR濾波器的加減速速度規(guī)劃算法。該算法采用濾波技術(shù)對加減速度進行光滑處理,實現(xiàn)了加減速的連續(xù)變化,減少了加工中由于加減速突變而產(chǎn)生的振動,進而實現(xiàn)高精度加工,同時又能達到良好的加減速性能,實現(xiàn)高速的加工;但其算法稍復(fù)雜,實現(xiàn)上有一定的難度。KIM D[6]提出了一種基于卷積的加減速運動規(guī)劃算法。該算法通過對速度進行卷積,使得在計算過程中只包含加法與除法運算,簡化了復(fù)雜的計算過程,提高了加減速控制算法的運算速度。
本文在以上研究基礎(chǔ)上,引入數(shù)字卷積,采用FPGA硬件編程的方式實現(xiàn)數(shù)字卷積加減速控制算法,提高了運算速度與精度。該算法采用定點數(shù)進行計算,節(jié)約了FPGA的邏輯門的數(shù)量并且減小了計算誤差。
1 數(shù)字卷積加減速算法
基于數(shù)字卷積加減速算法[7]卷積算子表達式為:
由于式(2)是迭代表達式,并且只包含加法和除法運算,因此采用FPGA硬件去實現(xiàn)將極大地降低計算量。
對于固定速度Vmax輸入經(jīng)過一次數(shù)字卷積后得到如圖1所示的梯形加減速曲線。其中,總的運行時間nTs等于曲線的長度除以固定速度Vmax。經(jīng)過數(shù)字卷積后速度的位移距離必須保持一致,因此,H1的值取為1/n1Ts。如果想要得到光滑、高柔性的S形加減速速度曲線,可以對固定速度輸入進行兩次數(shù)字卷積,即對得到的梯形速度曲線再進行一次數(shù)字卷積如圖2所示。另外,為了確保在經(jīng)過兩次數(shù)字卷積后能夠達到最大速度Vmax,n2Ts的時間必須小于n1Ts,否則在經(jīng)過數(shù)字卷積后得到的最大速度將小于固定的速度值Vmax。
2 數(shù)字卷積加減速算法的硬件實現(xiàn)
2.1 梯形加減速算法的實現(xiàn)
對于單軸點對點的梯形加減速運動,S為總的運動距離,Vmax為最大速度,N1為梯形加減速數(shù)字卷積序列長度??偟倪\行時間為S除以Vmax;在FPGA硬件設(shè)計時采用定點數(shù)進行計算,在運算過程中涉及到除法運算。因此,為了減小誤差要考慮余數(shù)的問題。文中的運動距離S、速度Vmax及余數(shù)之間的關(guān)系表達式如式(3):
其中,N表示速度為Vmax時的速度序列脈沖數(shù),R為余數(shù)。另外,輸入速度序列為X1[k],如圖3所示。
卷積算子序列Y1[i]如圖4所示,數(shù)字卷積序列長度為N1,其中N1<N/2。通過對X1[k]與Y1[i]進行一次數(shù)字卷積得到梯形加減速運動控制速度序列如圖5所示,其表達式為式(5):
如果忽略余數(shù)R,在運動過程中將出現(xiàn)速度誤差,進而導(dǎo)致位置誤差。為了解決這個問題,本文采用速度補償?shù)姆绞剑谒俣刃蛄械哪┪蔡砑友a償速度序列來消除余數(shù)誤差,得到的速度輸出序列如圖6所示。
2.2 S形曲線加減速算法的實現(xiàn)
如果對X1[k]進行兩次數(shù)字卷積將得到S形加減速曲線;對于S曲線加減速,第二次數(shù)字卷積的序列長度為N2。為了保證在經(jīng)過兩次數(shù)字卷積后,能夠達到最大速度Vmax,N2的取值必須小于N1,卷積算子序列Y2[n]如圖7所示。通過X2[j]與Y2[n]進行數(shù)字卷積可得到S形加減速曲線速度序列X4[q],如圖8所示。
與梯形加減速類似,如果忽略余數(shù)R將導(dǎo)致速度誤差和位置誤差。為了解決這個問題,本文采用速度補償?shù)姆绞?,在速度序列的末尾添加補償速度序列來消除余數(shù)誤差,得到的速度輸出序列X5(h)如圖9所示。
2.3 余數(shù)補償算法
由于在通過FPGA實現(xiàn)的過程中采用定點數(shù)進行計算,因此,在卷積計算的除法運算過程中,需要考慮余數(shù)問題[8]。事實上,在整個數(shù)字卷積的計算中有兩種情況會產(chǎn)生余數(shù):第一種情況是在數(shù)字卷積之前卷積序列長度N的計算,如式(3)所示;另一種情況是在數(shù)字卷積計算過程中產(chǎn)生的余數(shù)如式(2)所示。為了解決上述問題,針對不同情況下的余數(shù)問題采用不同的算法來實現(xiàn)補償。
對于在數(shù)字卷積之前產(chǎn)生的余數(shù),余數(shù)R的計算如式(3)所示,這種情況下采用在速度序列的末尾添加速度補償序列。梯形加減速的卷積序列X2[N1+N-1]如式(5)所示,余數(shù)R可表示為:
其中,V是X2[N1+N-1]序列的值;A表示速度為V時的速度補償序列脈沖數(shù);B表示最終補償脈沖序列的誤差值。另外,P表示在圖7中總的添加的補償速度序列脈沖數(shù)。
類似地,對于S形曲線加減速速度序列X4[N+N1+N2-1]如式(6)所示,余數(shù)R可以表示為:
其中,W是X4[N+N1+N2-1]序列的值;C表示速度為W時的速度補償序列脈沖數(shù);D表示最終補償脈沖序列的誤差值。另外,P表示總的添加補償速度序列脈沖數(shù)。
3 仿真與驗證分析
仿真驗證過程在Matlab和Quartus II 13.1開發(fā)環(huán)境下采用硬件描述語言Verilog,在Altera的Cyclone IV器件上進行仿真和驗證實現(xiàn)。圖10為在MATLAB上S=250,Vmax=10,N1=7時的梯形曲線加減速運動控制實驗結(jié)果;圖11為S=250,Vmax=10,N1=7,N2=4時的S形曲線加減速運動控制實驗結(jié)果;圖12、圖13分別為梯形和S形曲線加減速速度誤差圖,從圖中可以看出速度的誤差保持在±0.02范圍內(nèi)。圖14為S=250,Vmax=10,N1=7時的梯形曲線加減速通過FPGA硬件實現(xiàn)后在Modelsim上的仿真波形圖,圖15為S=250,Vmax=10,N1=7,N2=4時的S形曲線加減速通過FPGA硬件實現(xiàn)后的仿真波形,其中,標(biāo)有圓圈部分為添加的余數(shù)補償速度部分。
4 結(jié)論
針對工業(yè)機器人、數(shù)控系統(tǒng)中的加減速控制算法引入了數(shù)字卷積,減小了計算量,并通過FPGA硬件編程的方式實現(xiàn)了數(shù)字卷積的梯形曲線、S形曲線加減速控制算法。本文詳細分析了采用定點數(shù)計算數(shù)字卷積加減速算法過程的余數(shù)的處理方式。對與數(shù)字卷積運算之前產(chǎn)生的余數(shù),在速度序列的末尾添加速度補償序列來消除余數(shù)誤差;對于數(shù)字卷積運算過程中產(chǎn)生的余數(shù),采用余數(shù)累加的方式,來減小余數(shù)誤差。采用FPGA硬件編程的方式實現(xiàn)加減速控制算法,簡化系統(tǒng)結(jié)構(gòu),提高運算效率和算法的穩(wěn)定性。
參考文獻
[1] 鄭金興,張銘鈞.梯形速度控制變插補周期的實時插補算法研究[J].機床與液壓,2007(1):77-80.
[2] 朱明,游有鵬,何均.S形加減速算法前瞻處理研究[J].小型微型計算機系統(tǒng),2011(10):2140-2144.
[3] 陳曉兵,廖文和.基于分段刀軌S曲線加減速控制的進給速度優(yōu)化研究[J].組合機床與自動化加工技術(shù),2012(10):44-47.
[4] 劉筱,吳文江,鄭飂默.柔性S型加減速控制算法研究[J].組合機床與自動化加工技術(shù),2014(3):66-68.
[5] CHEN C S,LEE A C.Design of acceleration deceleration profiles in motion control based on digital FHR filters[J].Journal of Machine Tools & Manufacture,2001,38:799-825.
[6] KIM D I,JEON J W,KIM S.Software acceleration/deceleration methods for industrial robots and cnc maching tools[J].Mechatronics,1994,4(1):37-53.
[7] 陳偉娜,賴乙宗,李松,等.數(shù)控系統(tǒng)線性加減速算法分析與實現(xiàn)[J].科學(xué)技術(shù)與工程,2012(3):546-550.
[8] 王昕,王均偉,饒志,等.基于NURBS曲線軌跡規(guī)劃與速度規(guī)劃的研究[J].系統(tǒng)仿真學(xué)報,2008(15):3973-3980.