如何采用DSP技術(shù)實現(xiàn)運(yùn)動控制器的設(shè)計?
運(yùn)動控制技術(shù)是數(shù)控機(jī)床的關(guān)鍵技術(shù),其技術(shù)水平的高低將直接影響一個國家裝備制造業(yè)的發(fā)展水平。目前,多軸伺服控制器越來越多地運(yùn)用在運(yùn)動控制系統(tǒng)中,具有較高的集成度和靈活性,可實時完成運(yùn)動控制過程中復(fù)雜的邏輯處理和控制算法,能實現(xiàn)多軸高速高精度的伺服控制。
實時實施復(fù)雜控制算法的關(guān)鍵這些運(yùn)動控制系統(tǒng)已經(jīng)成為功能強(qiáng)大的數(shù)字信號處理器(DSP)的出現(xiàn)。即使在要求較低但成本敏感的應(yīng)用中,例如家用冰箱壓縮機(jī)驅(qū)動器,也可以利用DSP的功能來實現(xiàn)無傳感器控制算法,可降低系統(tǒng)成本并提高驅(qū)動器的整體穩(wěn)健性。在高性能伺服驅(qū)動器中,DSP的強(qiáng)大計算能力允許通過矢量控制,紋波轉(zhuǎn)矩降低,預(yù)測控制結(jié)構(gòu)以及對非理想系統(tǒng)行為的補(bǔ)償進(jìn)行更精確的控制。
運(yùn)動控制器是運(yùn)動控制系統(tǒng)的核心部件。國內(nèi)的運(yùn)動控制器大致可以分為3類:
第1類是以單片機(jī)等微處理器作為控制核心的運(yùn)動控制器。這類運(yùn)動控制器速度較慢、精度不高、成本相對較低,只能在一些低速運(yùn)行和對軌跡要求不高的輪廓運(yùn)動控制場合應(yīng)用。
第2類是以專用芯片(ASIC)作為核心處理器的運(yùn)動控制器,這類運(yùn)動控制器結(jié)構(gòu)比較簡單,大多只能輸出脈沖信號,工作于開環(huán)控制方式。由于這類控制器不能提供連續(xù)插補(bǔ)功能,也沒有前饋功能,特別是對于大量的小線段連續(xù)運(yùn)動的場合不能使用這類控制器。
第3類是基于PC總線的以DSP或FPGA作為核心處理器的開放式運(yùn)動控制器。這類開放式運(yùn)動控制器以DSP芯片作為運(yùn)動控制器的核心處理器,以PC機(jī)作為信息處理平臺,運(yùn)動控制器以插件形式嵌入PC機(jī),即“PC+運(yùn)動控制器”的模式。這樣的運(yùn)動控制器具有信息處理能力強(qiáng),開放程度高,運(yùn)動軌跡控制準(zhǔn)確,通用性好的特點。但是這種方式存在以下缺點:運(yùn)動控制卡需要插入計算機(jī)主板的PCI或者ISA插槽,因此每個具體應(yīng)用都必須配置一臺PC機(jī)作為上位機(jī)。這無疑對設(shè)備的體積、成本和運(yùn)行環(huán)境都有一定的限制,難以獨(dú)立運(yùn)行和小型化。
DSP 在電機(jī)控制方面的應(yīng)用是一個新領(lǐng)域。DSP 是應(yīng)用高性能的處理器提高對電機(jī)控制精度的一種芯片。高速的DSP 主要用在電機(jī)無傳感器控制和磁場定向控制中,因為在無傳感器控制中需要用已知的電流和電壓實時計算速度和位置,而在電機(jī)磁場定向控制中,需要把所有的變量以矢量形式轉(zhuǎn)化到與定子旋轉(zhuǎn)磁場同步的坐標(biāo)系中,這些都需要進(jìn)行大量的運(yùn)算,高速的DSP可以實時完成這些工作。在價格上DSP已經(jīng)從最初期的幾百美元降到了幾美元。16位的DSP的性能也從5Mips(百萬次每秒)提高到了2000Mips。包括大容量片內(nèi)存儲器,還在片上集成多種外圍設(shè)備。
DSP的數(shù)據(jù)運(yùn)算處理功能強(qiáng)大,即使在很復(fù)雜的控制中,采樣周期也可以取得很小,控制效果更接近于連續(xù)系統(tǒng)。把DSP與PC的各自優(yōu)勢結(jié)合將是高性能數(shù)控系統(tǒng)的發(fā)展趨勢。本運(yùn)動控制器采用TI公司的高性能浮點DSP作為主控芯片,通過ISA接口與PC協(xié)調(diào)并進(jìn)行數(shù)據(jù)交換,以PC計算機(jī)作為基本平臺,以DSP高速運(yùn)動控制卡作細(xì)插補(bǔ)、伺服控制的核心,對直線電機(jī)的運(yùn)動進(jìn)行控制,取得了良好的實際應(yīng)用效果。
基于“ PC+ 運(yùn)動控制器”結(jié)構(gòu)的開放式機(jī)器人運(yùn)動控制系統(tǒng)能夠充分利用 PC 開放程度高、通用性好、處理能力強(qiáng)等特點以及運(yùn)動控制器運(yùn)算速度快、實時性能好、控制能力強(qiáng)等特點,因此得到較快發(fā)展,成為目前的研究熱點。但目前采用此種結(jié)構(gòu)的開放式機(jī)器人運(yùn)動控制系統(tǒng)中,不管是控制器供應(yīng)商所提供的運(yùn)動控制器或者是科研人員自主設(shè)計的運(yùn)動控制器,在通用性、軟硬件可重構(gòu)方面都存在一些問題,影響著機(jī)器人運(yùn)動控制系統(tǒng)的開放性。因此,本文通過研究開放式機(jī)器人運(yùn)動控制器的結(jié)構(gòu)特點,制定了基于 DSP+FPGA的開放式機(jī)器人運(yùn)動控制器的總體設(shè)計方案。根據(jù)所制定的設(shè)計方案,設(shè)計并實現(xiàn)了基于 DSP+FPGA 的開放式機(jī)器人運(yùn)動控制器,并研究了基于開放式機(jī)器人運(yùn)動控制器的
運(yùn)動控制核心算法。本文通過充分利用 DSP 的高速數(shù)字信號處理能力和 FPGA 的強(qiáng)大并發(fā)控制能力以及豐富的邏輯資源來使運(yùn)動控制器獲得較高的運(yùn)算與控制能力。通過充分利用 FPGA 的邏輯編程能力來代替集成芯片以及實現(xiàn)邏輯連接,實現(xiàn)運(yùn)動控制器的軟硬件可重構(gòu),提高機(jī)器人運(yùn)動控制器的開放性。并通過研究曲線擬合預(yù)處理技術(shù)以及速度前瞻技術(shù)來提高運(yùn)動控制器的控制效率,實現(xiàn)高速運(yùn)動控制。
本文所設(shè)計的機(jī)器人運(yùn)動控制器應(yīng)用于開放式機(jī)器人控制系統(tǒng)中,與工業(yè) PC 、伺服系統(tǒng)、機(jī)器人本體等組成開放式機(jī)器人控制系統(tǒng)??刂葡到y(tǒng)結(jié)構(gòu)形式為 PC+ 運(yùn)動控制器,其中 PC 主要實現(xiàn)人機(jī)界面、參數(shù)配置、路徑規(guī)劃、機(jī)器人運(yùn)動學(xué)正變換與逆變換、多機(jī)通信等功能。而基于 DSP+FPGA 的運(yùn)動控制器則主要完成實時性要求較高的軌跡規(guī)劃、速度規(guī)劃、位置控制、以及狀態(tài)反饋等任務(wù)。 PC 與運(yùn)動控制器采用具有開放性的 PC104Plus 總線進(jìn)行通信,通過雙端口 RAM 進(jìn)行數(shù)據(jù)共享與同步。系統(tǒng)總體結(jié)構(gòu)如圖 2.1 所示。其中 I/O 接口卡主要完成光耦隔離和電平轉(zhuǎn)換,保護(hù)運(yùn)動控制器不因來自伺服系統(tǒng)的脈沖電壓而受到損害。伺服系統(tǒng)實現(xiàn)對機(jī)器人運(yùn)動關(guān)節(jié)的伺服驅(qū)動和光電編碼反饋,為運(yùn)動控制器提供實時的機(jī)器人運(yùn)動關(guān)節(jié)速度和位置狀況。
運(yùn)動控制器是數(shù)控機(jī)床、機(jī)器人等一類機(jī)電一體化設(shè)備中常用的核心運(yùn)動控制部件?,F(xiàn)代數(shù)控技術(shù)對運(yùn)動控制系統(tǒng)的開放性、實時性、加工速度和精確度等性能指標(biāo)提出了越來越高的要求。隨著集成電路技術(shù)、微電子技術(shù)、計算機(jī)技術(shù)不斷發(fā)展,運(yùn)動控制器已經(jīng)從以單片機(jī)、微處理器和專用芯片作為核心的運(yùn)動控制器發(fā)展到基于PC機(jī)平臺的以數(shù)字信號處理器(DSP)和復(fù)雜可編程邏輯器件(CPLD)作為核心處理器的協(xié)處理架構(gòu)的開放式運(yùn)動控制器。這種將P C機(jī)的信息處理能力和開放式的特點與運(yùn)動控制器很強(qiáng)的運(yùn)動軌跡控制能力有機(jī)地結(jié)合在一起,具有信息處理能力強(qiáng)、開放程度高、運(yùn)動軌跡控制準(zhǔn)確和通用性好的特點。這種模式在一個統(tǒng)一的人機(jī)對話平臺上,通過DSP算法和CPLD配置進(jìn)行適當(dāng)?shù)恼{(diào)整來實現(xiàn)不同的硬件功能模塊,可以方便地和多種類型的驅(qū)動器進(jìn)行連接。因此現(xiàn)在基于PC的新一代運(yùn)動控制器成為控制系統(tǒng)的主流和發(fā)展方向。
本文開發(fā)的開放式運(yùn)動控制器以PC機(jī)為平臺,完成坐標(biāo)變換、軌跡規(guī)劃、粗插補(bǔ)運(yùn)算等控制指令的設(shè)置和發(fā)送,同時可以實時顯示當(dāng)前伺服系統(tǒng)的運(yùn)動位置、速度和電機(jī)狀態(tài)等參數(shù)。運(yùn)動控制器以DSP芯片作為核心處理器,完成數(shù)據(jù)處理和控制算法、進(jìn)行保護(hù)中斷的處理,通過PCI或USB總線與PC機(jī)實時通訊。CPLD芯片作為協(xié)處理器完成編碼信號的采集,鑒相處理,對脈沖和模擬量進(jìn)行配置和輸出,把DSP處理過的控制數(shù)據(jù)經(jīng)過內(nèi)部轉(zhuǎn)換送到外部設(shè)備,并管理DSP和各種外部設(shè)備的接口。該運(yùn)動控制器可以完成非勻速比同步運(yùn)動控制,支持NURBS插補(bǔ),并提供了豐富的動態(tài)鏈接庫函數(shù)。
2 運(yùn)動控制器工作原理和硬件構(gòu)成
該控制器可實現(xiàn)四路編碼器反饋和電機(jī)控制,其核心是TI公司的TMS320LF2407數(shù)字信號處理芯片和ALTERA 公司的MAX 7000S系列CPLD器件EPM7128SLC84??刂破鞯挠布Y(jié)構(gòu)如圖1所示。DSP完成與上位機(jī)的實時通訊,對伺服電機(jī)速度和位置的精確控制,電機(jī)狀態(tài)監(jiān)測和外部信號檢測等功能。雙口SRAM(DUAL-PORT STATIC RAM)不僅提供控制器與上位機(jī)的通訊接口,而且還為運(yùn)動軌跡控制提供了足夠的緩沖區(qū)。由于一片DSP只提供兩組正交編碼脈沖(QEP)電路,對于多于兩個電機(jī)的控制器,若用多片DSP不僅會造成DSP資源的浪費(fèi),而且還會增加由于協(xié)調(diào)DSP之間的工作而產(chǎn)生的難度,因此這里我們用CPLD來提供另外兩組正交編碼脈沖電路,對速度、位置進(jìn)行采樣,同時用CPLD提供高速穩(wěn)定的其它邏輯控制電路。
運(yùn)動控制器由基板和接口卡組成,集成了DSP核心電路,通信電路,CPLD譯碼、中斷、正交編碼處理電路,編碼器信號處理電路,電壓轉(zhuǎn)換電路,光電隔離電路等。運(yùn)行過程中,PC機(jī)把粗插補(bǔ)的數(shù)據(jù)通過ISP-1581芯片傳遞給DSP進(jìn)行時間分割精插補(bǔ)。在每一個伺服周期中,CPLD器件和DSP各處理兩路反饋的正交編碼信號進(jìn)而獲取實時位置和速度,DSP計算出理論插補(bǔ)位置與實際位置的偏差,基于速度和加速度前饋進(jìn)行PID調(diào)節(jié),計算獲得速度控制量,產(chǎn)生的輸出信號經(jīng)DAC7625進(jìn)行數(shù)模轉(zhuǎn)換及放大電路放大后將模擬電壓發(fā)送至伺服驅(qū)動器以控制電機(jī)。
DSP兩個事件管理模塊中的正交編碼脈沖(QEP)電路可以實現(xiàn)對兩對正交編碼信號的四倍頻和方向檢測,其定時器工作在增減計數(shù)模式,依據(jù)電機(jī)運(yùn)行情況進(jìn)行計數(shù)。根據(jù)不同伺服周期定時器內(nèi)數(shù)值的變化,可以計算獲得電機(jī)的實際位置,由M/T測速法可求得其運(yùn)行速度。另外兩個電機(jī)的反饋信號由EPM7128進(jìn)行處理,DSP與之通訊以獲取電機(jī)運(yùn)行信息。擴(kuò)展4個32位寄存器用來存儲電機(jī)當(dāng)前位置,通過實時從計數(shù)器讀取每個伺服周期走過的脈沖數(shù)與之累加實現(xiàn)。每隔一定的伺服周期,將4個16位的計數(shù)器賦初值32000使之重新計數(shù)。
2.1 CPLD處理電路
CPLD主要包括正交編碼檢測邏輯電路,DSP地址譯碼電路和計數(shù)器及中斷邏輯四個部分,它對兩個正交編碼輸入四倍頻后進(jìn)行計數(shù),反饋給DSP。正交編碼脈沖電路的方向檢測邏輯決定了輸入序列中的哪一個是先導(dǎo)序列,接著就產(chǎn)生方向信號作為計數(shù)器的計數(shù)方向輸入。如果QEP1是先導(dǎo)序列,則所選的定時器增計數(shù);如果QEP2是先導(dǎo)序列,則所選的計數(shù)器減計數(shù)。正交編碼脈沖電路對輸入的兩列脈沖的兩個邊沿都進(jìn)行計數(shù),因此,由它所產(chǎn)生的時鐘頻率是每個輸入脈沖序列頻率的四倍。中斷邏輯,限位和報警等信號產(chǎn)生時向DSP申請中斷。每個軸的正負(fù)限位信號、歸零信號和報警信號,四個軸共計16個信號,這些信號相或,只要有一個信號產(chǎn)生時就產(chǎn)生一個上升沿信號,此上升沿觸發(fā)DSP中斷,DSP以查詢方式判斷是哪個信號產(chǎn)生的中斷。
2.2 控制卡通訊及接口
早期PC機(jī)通過ISA總線實現(xiàn)對電機(jī)的控制,但響應(yīng)速度慢,實時性差,后來的PCI局部總線,解決了ISA的傳輸速度慢等問題。近幾年通用串行總線USB(Universal Serial Bus)以其較快的傳輸速率和支持熱插拔等諸多優(yōu)點而受到用戶的廣泛受青睞。得到了許多硬件和軟件廠商的支持。USB 2.0接口的最高傳輸速率由12Mb/s提高到了480Mb/s,能夠更好地支持?jǐn)?shù)據(jù)實時傳輸。把USB引入運(yùn)動控制器,實現(xiàn)了運(yùn)動控制器的熱插拔,解決了計算機(jī)接口資源有限等問題,滿足了多軸運(yùn)動控制卡對數(shù)據(jù)實時通訊的需要。為提高運(yùn)動控制器硬件上的開放性,開發(fā)了通用的接口卡,輔助完成基板與外部的通訊。除了進(jìn)行反饋信號等的必要傳輸外,還提供了電機(jī)的限位、回零、報警、伺服使能等信號和通用I/O各8路。為防止外界信號干擾,保證控制器的可靠性和安全性,輸入輸出信號都經(jīng)由TLP521進(jìn)行光電隔離。
3 速度、加速度前饋PID控制算法
本控制器采用典型的三環(huán)調(diào)節(jié),其中速度調(diào)節(jié)器和電流調(diào)節(jié)器的功能由伺服電機(jī)驅(qū)動器完成,電流環(huán)用來提高系統(tǒng)的動態(tài)響應(yīng)指標(biāo),增強(qiáng)系統(tǒng)抗干擾能力;速度環(huán)用于調(diào)節(jié)伺服電機(jī)的轉(zhuǎn)速。位置閉環(huán)調(diào)節(jié)原理框圖如圖2所示,它包括位置PID調(diào)節(jié)和速度、加速度前饋,由運(yùn)動控制器底層程序完成,用于實現(xiàn)精確定位、回零等,輸出飽和控制可保證輸出電壓不會超過設(shè)定范圍。
4 Matlab仿真及結(jié)果分析
基于KLD-200二維數(shù)控平臺進(jìn)行仿真。平臺由兩個Panasonic公司的MSMA012A 1E伺服電機(jī)及配套的MSDA013A1A驅(qū)動器進(jìn)行控制。電機(jī)最高轉(zhuǎn)速為3000RPM,功率1 00W,增量式編碼器,2500P/r,絲杠導(dǎo)程為4mm/r。取Kp=100、Ki=12、Kd=2進(jìn)行仿真。Y軸電機(jī)速度曲線與余弦曲線類似,跟隨誤差曲線如圖3所示。無前饋情況下電機(jī)跟隨誤差從開始的63個脈沖在0.137秒后上升到114個脈沖,隨后作類似余弦曲線的變化。引入前饋后,跟隨誤差從開始的63個脈沖迅速上升到109個脈沖,然后逐漸下降,在大約0.2秒后穩(wěn)定在±2個脈沖之間??梢姡俣群图铀俣惹梆伌蟠鬁p小了系統(tǒng)的跟隨誤差。利用自己開發(fā)的運(yùn)動控制器對數(shù)控平臺反復(fù)進(jìn)行控制實驗,效果良好。梯形曲線控制實驗中,設(shè)定加速度為10rev/s2,目標(biāo)速度300RPM,位移120mm。到達(dá)目標(biāo)速度后,驅(qū)動器顯示的電機(jī)速度波動范圍在±2RPM之間。利用VC的OnTimer()函數(shù)實時獲取位置信息并進(jìn)行顯示,可以看出,到位后的最大超調(diào)量約為5~10個脈沖,穩(wěn)態(tài)誤差在±2個脈沖之內(nèi),小于1mm。