《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字卷積加減速算法的設(shè)計與實現(xiàn)
基于FPGA的數(shù)字卷積加減速算法的設(shè)計與實現(xiàn)
2015年電子技術(shù)應(yīng)用第8期
程文雅,高 敏,李盛培
西南科技大學(xué) 信息工程學(xué)院,四川 綿陽621000
摘要: 為了減小計算量,引入了數(shù)字卷積采用FPGA硬件編程的方式實現(xiàn)加減速控制算法,提高了算法的穩(wěn)定性和運算速度;為了減小速度誤差和位置誤差,在不同情況下采用相應(yīng)的補償算法來實現(xiàn)對定點數(shù)運算過程中的余數(shù)處理;針對數(shù)字卷積運算之前產(chǎn)生的余數(shù),在速度序列的末尾添加速度補償序列來消除余數(shù)誤差;對于數(shù)字卷積運算過程中產(chǎn)生的余數(shù),采用余數(shù)累加的方式來減小余數(shù)誤差。
中圖分類號: TH16;TP311
文獻標(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.
Design and implementation of a FPGA-based digital convolution acceleration and deceleration algorithm
Cheng Wenya,Gao Min,Li Shengpei
School of Information Engeneering,Southwest University of Science and Technology,Mianyang 621000,China
Abstract: In order to reduce the amount of calculation, the way of digital convolution being realized by using FPGA hardware programming is introduced to realize acceleration/deceleration motion algorithm and improves the stability and speed of the algorithm. In order to reduce the speed error and position error, corresponding compensation algorithm is used according to the different condition to realize the remainder in the process of processing operations on fixed-point number. For the remainder produced before digital convolution computation, add the speed compensation sequence to the end of the speed sequence to remove the remainder error. For the remainder produced in the process of digital convolution operation, adopt the way of accumulating remainders, to reduce the remainder error.
Key words : acceleration and deceleration;direct convolution;trapezoidal curve;S curve;FPGA

    

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]卷積算子表達式為:

wdz3-gs1-2.gif

    由于式(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。

wdz3-t1.gif

wdz3-t2.gif

2 數(shù)字卷積加減速算法的硬件實現(xiàn)

2.1 梯形加減速算法的實現(xiàn)

    對于單軸點對點的梯形加減速運動,S為總的運動距離,Vmax為最大速度,N1為梯形加減速數(shù)字卷積序列長度??偟倪\行時間為S除以Vmax;在FPGA硬件設(shè)計時采用定點數(shù)進行計算,在運算過程中涉及到除法運算。因此,為了減小誤差要考慮余數(shù)的問題。文中的運動距離S、速度Vmax及余數(shù)之間的關(guān)系表達式如式(3):

    wdz3-gs3.gif

    其中,N表示速度為Vmax時的速度序列脈沖數(shù),R為余數(shù)。另外,輸入速度序列為X1[k],如圖3所示。

    wdz3-gs4.gif

wdz3-t3.gif

    卷積算子序列Y1[i]如圖4所示,數(shù)字卷積序列長度為N1,其中N1<N/2。通過對X1[k]與Y1[i]進行一次數(shù)字卷積得到梯形加減速運動控制速度序列如圖5所示,其表達式為式(5):

    wdz3-gs5.gif

wdz3-t4-5.gif

    如果忽略余數(shù)R,在運動過程中將出現(xiàn)速度誤差,進而導(dǎo)致位置誤差。為了解決這個問題,本文采用速度補償?shù)姆绞剑谒俣刃蛄械哪┪蔡砑友a償速度序列來消除余數(shù)誤差,得到的速度輸出序列如圖6所示。

wdz3-t6.gif

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所示。

    wdz3-gs6.gif

wdz3-t7-8.gif

    與梯形加減速類似,如果忽略余數(shù)R將導(dǎo)致速度誤差和位置誤差。為了解決這個問題,本文采用速度補償?shù)姆绞?,在速度序列的末尾添加補償速度序列來消除余數(shù)誤差,得到的速度輸出序列X5(h)如圖9所示。

wdz3-t9.gif

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可表示為:

    wdz3-gs7.gif

    其中,V是X2[N1+N-1]序列的值;A表示速度為V時的速度補償序列脈沖數(shù);B表示最終補償脈沖序列的誤差值。另外,P表示在圖7中總的添加的補償速度序列脈沖數(shù)。

    wdz3-gs8.gif

    類似地,對于S形曲線加減速速度序列X4[N+N1+N2-1]如式(6)所示,余數(shù)R可以表示為:

    wdz3-gs9.gif

    其中,W是X4[N+N1+N2-1]序列的值;C表示速度為W時的速度補償序列脈沖數(shù);D表示最終補償脈沖序列的誤差值。另外,P表示總的添加補償速度序列脈沖數(shù)。

    wdz3-gs10.gif

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ù)補償速度部分。

wdz3-t10.gif

wdz3-t11.gif

wdz3-t12.gif

wdz3-t13.gif

wdz3-t14.gif

wdz3-t15.gif

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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。