<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的NURBS曲線插補(bǔ)控制

          基于DSP的NURBS曲線插補(bǔ)控制

          作者: 時(shí)間:2007-09-12 來源:網(wǎng)絡(luò) 收藏

          摘要:本文介紹了一種TMS320LF2407a芯片的運(yùn)動(dòng)卡的設(shè)計(jì)方法及插補(bǔ)的概念,提出了實(shí)現(xiàn)插補(bǔ)的一種實(shí)時(shí)方法,采用參數(shù)遞推預(yù)估與校正的參數(shù)插補(bǔ)算法,有效地簡(jiǎn)化了插補(bǔ)過程中的軌跡計(jì)算,避免了對(duì)的直接求導(dǎo)和曲率半徑等復(fù)雜計(jì)算,該算法顯著減小了插補(bǔ)計(jì)算時(shí)間,從而能夠適應(yīng)運(yùn)動(dòng)系統(tǒng)的高速高精度要求。
          關(guān)鍵詞運(yùn)動(dòng)插補(bǔ)

          1 引言

          運(yùn)動(dòng)控制卡是一種工業(yè)PC機(jī)、用于各種運(yùn)動(dòng)控制場(chǎng)合(包括位移、速度、加速度等)的上位控制單元,而插補(bǔ)模塊是運(yùn)動(dòng)控制單元不可缺少的。本文所設(shè)計(jì)的基于PCI總線的運(yùn)動(dòng)控制卡,可完成數(shù)控系統(tǒng)中實(shí)時(shí)性要求較高的插補(bǔ)、位置控制、實(shí)現(xiàn)數(shù)控系統(tǒng)中多軸聯(lián)動(dòng)的插補(bǔ)計(jì)算、位置控制等功能。傳統(tǒng)的插補(bǔ)器一般都具有直線和圓弧的插補(bǔ)功能,使用不同算法處理直線、圓弧、螺旋線運(yùn)動(dòng)。使用這種方法并非所有的控制特征被編程到每種插補(bǔ)類型,而添加一種新的插補(bǔ)類型需要大幅度改動(dòng)軟件結(jié)構(gòu)。而該DSP運(yùn)動(dòng)控制卡的插補(bǔ)器采用基于非均勻有理B樣條NURBS的通用插補(bǔ)器,把所有編程的插補(bǔ)類型轉(zhuǎn)換為公共的數(shù)學(xué)表達(dá)式,使所有的功能不依賴于編程類型。通用插補(bǔ)器是一種能準(zhǔn)確表達(dá)曲率的插補(bǔ)模型,能夠精確表達(dá)出各種曲線、曲面的軌跡?;贜URBS原理的通用插補(bǔ)器模型包含任何曲線、曲面,所有傳統(tǒng)的插補(bǔ)類型(直線、圓?。┮膊焕?,克服了傳統(tǒng)插補(bǔ)器的缺點(diǎn),提高了控制精度。

          2 運(yùn)動(dòng)控制卡的硬件設(shè)計(jì)

          運(yùn)動(dòng)控制卡的硬件設(shè)計(jì)基于PCI總線規(guī)范,采用DSP和FPGA的結(jié)合,再配以其它輔助電路,可適用于各種PC機(jī)及其兼容機(jī)系統(tǒng),其硬件方框圖如圖1所示,以下分別介紹圖1中各芯片功能及其在該硬件電路中的作用。

          核心處理器DSP:TMS320LF2407a是TI公司專為電機(jī)控制和其他控制系統(tǒng)設(shè)計(jì)的DSP[1]。主要完成位置速度PID控制,插補(bǔ)迭代運(yùn)算,開關(guān)量輸入和輸出以及程序和數(shù)據(jù)存儲(chǔ)和上下機(jī)的通信。

          模擬量控制電路:將速度信號(hào)數(shù)字量用數(shù)據(jù)線接4路12位數(shù)模轉(zhuǎn)換芯片DAC7625,將數(shù)字信號(hào)轉(zhuǎn)換為-10~10V的模擬信號(hào),輸出接模擬信號(hào)輸入的電機(jī)伺服驅(qū)動(dòng)模塊。

          反饋電路:在大多數(shù)運(yùn)動(dòng)系統(tǒng)中,采用光電編碼器作為閉環(huán)控制的反饋元件。光電編碼器輸出的是兩組相位相差90的脈沖信號(hào)A和B, 先將信號(hào)差分整形以消除干擾信號(hào)的影響,然后對(duì)A、B兩相信號(hào)進(jìn)行四倍頻,同時(shí)進(jìn)行鑒相確定出DIR,根據(jù)DIR對(duì)四倍頻的脈沖進(jìn)行加計(jì)數(shù)或減計(jì)數(shù)。計(jì)數(shù)器和位置捕捉寄存器均為32位,DSP可對(duì)其進(jìn)行讀取或清零。

          通訊電路:通過PCI接口從模式3.3V芯片PLX9030和雙口RAM芯片70V24與PC機(jī)的PCI總線相連,可以進(jìn)行高速數(shù)據(jù)傳輸。其中雙口RAM70V24作為上下機(jī)交換數(shù)據(jù)公共緩沖區(qū)。70V24芯片具有8個(gè)異步仲裁標(biāo)志位,更好地保證雙方對(duì)數(shù)據(jù)的準(zhǔn)確操作。另外,使用FPGA芯片F(xiàn)LEX10KA來實(shí)現(xiàn)PLX9030對(duì)雙口RAM70V24的時(shí)序轉(zhuǎn)換。

          開關(guān)量電路:包括通用16/16通用I/O點(diǎn)、能使4個(gè)電機(jī)輸出,4個(gè)軸左右的極限輸入和原點(diǎn)中斷輸入。


          圖一 硬件結(jié)構(gòu)框圖

          3 運(yùn)動(dòng)控制卡的插補(bǔ)計(jì)算

          數(shù)控系統(tǒng)中插補(bǔ)的作用是讀取用戶程序經(jīng)解釋器解釋之后的位置指令,由軌跡的起點(diǎn)、終點(diǎn)、軌跡的類型、軌跡的方向,計(jì)算出軌跡運(yùn)動(dòng)的各個(gè)中間點(diǎn)坐標(biāo)。插補(bǔ)程序在每一個(gè)插補(bǔ)周期算出坐標(biāo)軸在一個(gè)周期中的位置增量,由此位置增量算出坐標(biāo)軸相應(yīng)的指令位置,作為位置閉環(huán)控制系統(tǒng)的輸入[2]。該DSP運(yùn)動(dòng)控制卡中,設(shè)計(jì)一種基于NURBS原理的通用插補(bǔ)器,下面簡(jiǎn)要說明NURBS的原理。


          圖二

          一條曲線的形狀由控制點(diǎn)的位置決定,見圖二中的Bi。圖二中a、b曲線的B7點(diǎn)的位置不同,使a、b曲線在與B7相鄰的部分曲線形狀發(fā)生變化,而其余控制點(diǎn)附近的曲線形狀保持不變。在任意時(shí)刻t,曲線的位置為各個(gè)控制點(diǎn)加權(quán)平均值。離控制點(diǎn)越近,加權(quán)值越大,反之越小。一條K 次NURBS 曲線可以表示為一分段有理多項(xiàng)式矢函數(shù):


          其中,Bi(i= 0,1,…,n)為控制點(diǎn), 每個(gè)控制點(diǎn)附有一個(gè)權(quán)因子Wi(i=0,1,…,n),首末權(quán)因子W0,Wn>0,其余Wi≥0,Ni,k為K次規(guī)范B樣條基函數(shù),可由下式遞推計(jì)算:


          U=[u0,u1,…,un+k+1]稱為節(jié)點(diǎn)矢量。以三次NURBS曲線為例,即k=3時(shí),第i段曲線可以寫成下列矩陣形式:

          其中 ,

          由于控制頂點(diǎn)及權(quán)因子均已知,則Y0、Y1、Y2、Y3、Y0’、Y1’、Y2’、Y3’與參數(shù)無關(guān),可在插補(bǔ)計(jì)算之前預(yù)先算出,插補(bǔ)計(jì)算時(shí)只需計(jì)算插補(bǔ)變化量Δt,從而大大加快了計(jì)算速度。

          在參數(shù)空間,曲線上插補(bǔ)點(diǎn)的參數(shù)可由二階泰勒級(jí)數(shù)表示為:

          ti+1= ti+Tt`+(T2/2)t(2) +O(T2 ) (3)

          其中,T為插補(bǔ)周期,t`,t(2)分別為參數(shù)對(duì)t的一階和二階導(dǎo)數(shù)。若以一階差分代替微分,將

          代入公式(3),整理可得參數(shù)快速遞推公式,用以預(yù)估新插補(bǔ)點(diǎn)的參數(shù):

          i+1=2.5ti-2ti-1+0.5ti-2 (4)



          基于上述算法可進(jìn)一步推導(dǎo)NURBS插補(bǔ)的誤差,加減速控制等算法,從而完善運(yùn)動(dòng)控制卡的NURBS插補(bǔ)運(yùn)算功能。

          圖三 插補(bǔ)子程序框圖

          插補(bǔ)子程序流程如圖三所示,具體插補(bǔ)過程包括以下幾個(gè)步驟:

          1) 設(shè)定參數(shù)初始值,在選取t2點(diǎn)時(shí),需要對(duì)插補(bǔ)步長進(jìn)行預(yù)算,在滿足弓高誤差、進(jìn)給速度、進(jìn)給加速度的約束條件時(shí)才可采用、否則需進(jìn)行校正。

          2) 預(yù)估插補(bǔ)參數(shù),得出預(yù)估參數(shù)后需取t的整數(shù)部分來確定取哪一段曲線的Y系數(shù)數(shù)組,這里0≤ti≤n,若ti超出n則說明該曲線已到盡頭 這時(shí)插補(bǔ)參數(shù)應(yīng)取為n,取第n-1段曲線的Y參數(shù)數(shù)組,實(shí)際插補(bǔ)參數(shù)取值為1。

          3) 根據(jù)預(yù)估插補(bǔ)參數(shù)計(jì)算預(yù)估插補(bǔ)點(diǎn)Fi+1,預(yù)估插補(bǔ)步長Li。

          4) 求期望步長,需要先分別根據(jù)弓高誤差、進(jìn)給速度、進(jìn)給加速度的約束條件算出各自步長,然后取其最小值即為期望步長。

          5) 根據(jù)希望步長計(jì)算插補(bǔ)偏差,判斷插補(bǔ)偏差是否符合精度要求,若符合則該插補(bǔ)點(diǎn)即為所求,否則需對(duì)其進(jìn)行校正。

          6) 確定符合要求的插補(bǔ)參數(shù)后,計(jì)算新插補(bǔ)點(diǎn),并算出各軸增量。

          當(dāng)運(yùn)動(dòng)控制系統(tǒng)的精度要求較高時(shí),僅根據(jù)進(jìn)給速度及插補(bǔ)周期生成插補(bǔ)軌跡是不夠的, 需要進(jìn)一步對(duì)步長進(jìn)行調(diào)整,方法是在插補(bǔ)中實(shí)時(shí)監(jiān)控插補(bǔ)弓高誤差的大小,當(dāng)誤差在允許誤差范圍內(nèi)時(shí),仍按瞬時(shí)進(jìn)給速度計(jì)算進(jìn)給步長Li,若誤差超出了允許范圍,則按允許誤差求取約束插補(bǔ)步長。此外,為了獲得更好的速度穩(wěn)定性,應(yīng)直接以弦長速度為控制目標(biāo),為了滿足式(2) 的新插補(bǔ)點(diǎn)Fi+1,本文采用基于參數(shù)遞推預(yù)估與校正的參數(shù)曲線插補(bǔ)算法,它不僅計(jì)算速度快,而且可避免其他插補(bǔ)算法所需的曲線求導(dǎo)等復(fù)雜計(jì)算。

          4 結(jié)束語

          NURBS曲線插補(bǔ)具有極大的優(yōu)越性,程序量小,實(shí)時(shí)性高[3],但是由于NURBS

          曲線所具有的有理形式分段參數(shù)方程使曲線的軌跡及其導(dǎo)數(shù)、曲率等計(jì)算異常繁瑣,因而需要通過適當(dāng)?shù)牟逖a(bǔ)預(yù)處理,運(yùn)用基于預(yù)估與校正的插補(bǔ)策略以及合理的近似計(jì)算等措施,有效地簡(jiǎn)化了插補(bǔ)過程中的軌跡計(jì)算,避免了對(duì)曲線的直接求導(dǎo)和曲率半徑等復(fù)雜計(jì)算,確保了插補(bǔ)算法的良好實(shí)時(shí)性。

          根據(jù)上述算法,在上位機(jī)用VC++實(shí)現(xiàn)上層控制,通過PCI總線和雙口RAM芯片與DSP交換數(shù)據(jù),用DSP語言實(shí)現(xiàn)下層插補(bǔ)算法,利用DSP的高速運(yùn)算能力和和實(shí)時(shí)信號(hào)處理能力,在芯片粘片機(jī)的運(yùn)用中取得了良好的效果,使該運(yùn)動(dòng)控制卡能夠滿足運(yùn)動(dòng)控制系統(tǒng)中高速高精度的要求。

          參考文獻(xiàn)

          1 劉和平等,TMS320LF240x DSP結(jié)構(gòu)、原理及應(yīng)用,北京:北京航空航天大學(xué)出版社 2002
          2 葉伯生等,計(jì)算機(jī)數(shù)控系統(tǒng)原理、編程與操作,武漢:華中理工大學(xué)出版社,1999
          3 趙鴻,NURBS曲線插補(bǔ)技術(shù)的應(yīng)用,制造技術(shù)與機(jī)床,1999
          4 施法中,計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條,北京:高等教育出版社2001
          5 Cheng M Y,Tsai M C,Kuo J C,Real time nurbs command generators for CNC servo controllers[J], Machining tools Manufacture,2002,42:801-813

          合成孔徑雷達(dá)相關(guān)文章:合成孔徑雷達(dá)原理


          關(guān)鍵詞: 控制 曲線 NURBS DSP 基于

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();