張浩,唐敦兵,鄭慶康
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
伺服電機(jī)常見的控制方式多為單片機(jī)控制、DSP控制、ARM控制以及PLC控制等。這些控制方式的實(shí)現(xiàn)較為復(fù)雜,需從底層開發(fā)做起,配線復(fù)雜,開發(fā)周期長。而通訊運(yùn)動(dòng)控制的方式可以避免傳統(tǒng)脈沖控制方式帶來的系統(tǒng)兼容性和穩(wěn)定性問題。設(shè)計(jì)的多自由度煤樣抓取系統(tǒng)作為機(jī)電一體化設(shè)備,其控制核心在于多軸聯(lián)動(dòng)插補(bǔ)運(yùn)動(dòng)。本文設(shè)計(jì)了基于運(yùn)動(dòng)控制卡的開放式多軸聯(lián)動(dòng)控制系統(tǒng),其核心技術(shù)在于開放式模塊體系結(jié)構(gòu)平臺(tái)與多軸運(yùn)動(dòng)伺服控制系統(tǒng)[1]??刂葡到y(tǒng)的整體架構(gòu)以PC機(jī)為支撐單元,以運(yùn)動(dòng)控制卡為控制單元,以伺服電機(jī)為執(zhí)行單元。采用DMCNET通訊控制的方式,實(shí)現(xiàn)多軸高速聯(lián)動(dòng),以滿足多工位、多任務(wù)、多目標(biāo)的機(jī)械手動(dòng)態(tài)調(diào)度需求?;贛icrosoft Visual Studio開發(fā)平臺(tái),層次化構(gòu)建各系統(tǒng)功能模塊,開發(fā)了軟件系統(tǒng)。
硬件控制系統(tǒng)主要包含PC機(jī)、運(yùn)動(dòng)控制卡、伺服系統(tǒng)以及各類反饋傳感器??刂葡到y(tǒng)硬件架構(gòu)如圖1所示,該架構(gòu)易于保證系統(tǒng)進(jìn)行模塊化和開放式設(shè)計(jì),增強(qiáng)系統(tǒng)的擴(kuò)展性。
圖1 控制系統(tǒng)結(jié)構(gòu)圖
PC機(jī)是系統(tǒng)的上位機(jī)管理層,負(fù)責(zé)搭建系統(tǒng)數(shù)據(jù)庫,系統(tǒng)的控制指令以及數(shù)據(jù)信息均需經(jīng)過數(shù)據(jù)庫進(jìn)行存儲(chǔ)與處理。用于內(nèi)嵌PID控制算法實(shí)時(shí)處理運(yùn)動(dòng)數(shù)據(jù)信息,通過建立PC機(jī)與運(yùn)動(dòng)控制卡間的通訊,精確調(diào)整電機(jī)轉(zhuǎn)速,完成機(jī)械手終端的路徑規(guī)劃。此外PC機(jī)還用于機(jī)交互界面的管理以及多軸聯(lián)動(dòng)系統(tǒng)的監(jiān)控。
運(yùn)動(dòng)控制卡通過PCI插槽內(nèi)嵌在PC機(jī)中,系統(tǒng)采用PCI總線型運(yùn)動(dòng)控制卡-PCI-DMC-B01。PCI總線傳輸效率高,支持即插即用,數(shù)據(jù)吞吐量大。運(yùn)動(dòng)控制卡實(shí)現(xiàn)運(yùn)動(dòng)模式切換、參數(shù)調(diào)節(jié)、路徑監(jiān)測等細(xì)節(jié)操作。多伺服電機(jī)的協(xié)同控制基于運(yùn)動(dòng)控制卡的微處理器(DSP),其共享多伺服電機(jī)的參數(shù)數(shù)據(jù)。程序設(shè)計(jì)過程中通過調(diào)用運(yùn)動(dòng)控制卡的動(dòng)態(tài)函數(shù)庫,整合處理關(guān)聯(lián)參數(shù),生成高速脈沖指令,實(shí)現(xiàn)多電機(jī)同步驅(qū)動(dòng)。設(shè)計(jì)運(yùn)動(dòng)控制卡通過DMC-NET總線高速連接伺服系統(tǒng)以及遠(yuǎn)程擴(kuò)展模塊,該架構(gòu)大大提升了系統(tǒng)的整合能力。
伺服電機(jī)控制方式采用的是位置(PR)控制,脈沖輸出模式采用CW/CCW方式。伺服驅(qū)動(dòng)器通過讀取數(shù)據(jù)緩沖區(qū)的通訊指令,實(shí)現(xiàn)對(duì)工作電機(jī)運(yùn)轉(zhuǎn)參數(shù)的實(shí)時(shí)調(diào)節(jié)。伺服驅(qū)動(dòng)器通過采集電機(jī)編碼器以及光柵尺的位置反饋信號(hào),校正電機(jī)的運(yùn)動(dòng)控制參數(shù),構(gòu)成全閉環(huán)控制系統(tǒng),實(shí)現(xiàn)多軸聯(lián)動(dòng)的精準(zhǔn)定位[2]。此外控制系統(tǒng)還包括限位、故障、報(bào)警以及原點(diǎn)信號(hào)等電路。
針對(duì)終端機(jī)械手的具體功能,控制系統(tǒng)需滿足以下4點(diǎn)要求:
1) 控制系統(tǒng)能夠?qū)崿F(xiàn)四軸聯(lián)動(dòng),完成三維空間任意軌跡的插補(bǔ)運(yùn)動(dòng),重點(diǎn)介紹x、y、z軸的協(xié)調(diào)控制。
2) 控制系統(tǒng)能夠?qū)崿F(xiàn)任意工況下的回原點(diǎn)操作。
3) 控制系統(tǒng)能夠快速響應(yīng)多工位、多任務(wù)、多目標(biāo)的動(dòng)態(tài)請(qǐng)求,以最優(yōu)路徑完成動(dòng)態(tài)調(diào)度。
4) 控制系統(tǒng)能夠?qū)崿F(xiàn)現(xiàn)場監(jiān)控與手動(dòng)調(diào)控功能。
PCI-DMC-B01運(yùn)動(dòng)控制卡封裝動(dòng)態(tài)函數(shù)庫,支持Windows環(huán)境下的實(shí)時(shí)系統(tǒng)開發(fā)。依托VS平臺(tái),設(shè)計(jì)軟件系統(tǒng),主要實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)處理、界面顯示、手動(dòng)調(diào)試等功能的模塊化集成。軟件系統(tǒng)開發(fā)總體思路采用模塊化設(shè)計(jì),各模塊對(duì)應(yīng)既定的功能集成[3]。
系統(tǒng)功能模塊可分為硬件初始化、參數(shù)設(shè)定、操作模式切換、動(dòng)態(tài)調(diào)度算法實(shí)現(xiàn)、執(zhí)行運(yùn)動(dòng)控制、狀態(tài)監(jiān)控等。程序設(shè)計(jì)流程如圖2所示。
圖2 系統(tǒng)程序設(shè)計(jì)流程圖
1) 控制系統(tǒng)硬件初始化
系統(tǒng)程序設(shè)計(jì)的第一步是實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制卡及通訊總線等硬件設(shè)備的初始化,主要函數(shù)見表1。
表1 初始化函數(shù)
通過調(diào)用動(dòng)態(tài)函數(shù)庫中的相關(guān)函數(shù),指定運(yùn)動(dòng)控制卡適配卡號(hào),可實(shí)現(xiàn)運(yùn)動(dòng)控制卡的初始化操作,將所有寄存器恢復(fù)為默認(rèn)狀態(tài)。
2) 運(yùn)動(dòng)控制
采用DMCNET通訊控制的方式,上位機(jī)管理系統(tǒng)下達(dá)控制指令,運(yùn)動(dòng)控制卡通過DMC-NET通訊方式操作伺服驅(qū)動(dòng)器寄存器,實(shí)現(xiàn)電機(jī)運(yùn)動(dòng)控制。系統(tǒng)中多軸插補(bǔ)軌跡的實(shí)現(xiàn)是基于單軸運(yùn)動(dòng)控制,單軸可完成點(diǎn)位運(yùn)動(dòng)和連續(xù)軌跡運(yùn)動(dòng)。電機(jī)可實(shí)現(xiàn)S-Curve曲線與T-Curve曲線方式加減速,運(yùn)動(dòng)過程中可實(shí)現(xiàn)速度、位置以及轉(zhuǎn)矩調(diào)節(jié)。最終實(shí)現(xiàn)系統(tǒng)三軸線性插補(bǔ)運(yùn)動(dòng)控制、二軸圓弧插補(bǔ)運(yùn)動(dòng)控制以及三軸螺旋插補(bǔ)運(yùn)動(dòng)控制等操作,完成終端機(jī)械手三維空間任意軌跡的連續(xù)運(yùn)動(dòng)。
3) 全閉環(huán)控制方法實(shí)現(xiàn)
針對(duì)終端機(jī)械手定位精準(zhǔn)、運(yùn)動(dòng)平穩(wěn)的控制要求,結(jié)合經(jīng)典PID算法,本文PID算法結(jié)合速度與加速度前饋增益以及前饋低通濾波器的特點(diǎn),提出雙環(huán)PID調(diào)節(jié)控制的方法,并采用擾動(dòng)觀察器來抑制低頻擾動(dòng),調(diào)節(jié)比例、積分、微分3個(gè)環(huán)節(jié)來實(shí)現(xiàn)對(duì)系統(tǒng)的控制??刂扑惴驁D如圖3所示。
圖3 PCI-DMC-B01控制算法框圖
本文PID算法允許用戶通過操作寄存器參數(shù)來實(shí)現(xiàn)增益切換功能,決定積分環(huán)節(jié)是否發(fā)揮作用,避免積分飽和現(xiàn)象。由于終端機(jī)械手的運(yùn)動(dòng)軌跡前期已離線規(guī)劃完成,因此在連續(xù)運(yùn)動(dòng)狀態(tài)下,可獲得前饋信號(hào)的各階導(dǎo)數(shù)與超前量,從而實(shí)現(xiàn)對(duì)控制系統(tǒng)的極點(diǎn)進(jìn)行前期改造。通過設(shè)置速度和加速度前饋增益,可提升系統(tǒng)動(dòng)態(tài)響應(yīng)速度,減小跟隨誤差[4]。此外前饋環(huán)節(jié)的增加還可以實(shí)現(xiàn)對(duì)系統(tǒng)的相差和增益進(jìn)行補(bǔ)償,實(shí)現(xiàn)控制系統(tǒng)的完全追蹤。
為消除多軸聯(lián)動(dòng)過程中的高低頻震蕩現(xiàn)象,系統(tǒng)增加了閉環(huán)控制器。核心點(diǎn)在于該控制器的魯棒性以及針對(duì)不確定擾動(dòng)的抑制能力。通過采集系統(tǒng)的輸出對(duì)象,經(jīng)逆變換后作為系統(tǒng)的理論輸入,與實(shí)際輸入變量做比較,得到系統(tǒng)的擾動(dòng)量,然后將擾動(dòng)補(bǔ)償給輸出對(duì)象,即可抵消擾動(dòng)的影響。通過逐步增大比例增益Kp,直至電機(jī)出現(xiàn)微震跡象。再降低Kp,增大Kd,降低系統(tǒng)超調(diào)量,實(shí)現(xiàn)系統(tǒng)參數(shù)整定操作。在電機(jī)運(yùn)行過程中,可通過設(shè)置驅(qū)動(dòng)器相對(duì)應(yīng)的參數(shù),選擇電機(jī)加減速方式,該控制系統(tǒng)實(shí)現(xiàn)電機(jī)參照T-Curve和S-Curve速度剖面下的相對(duì)于絕對(duì)坐標(biāo)進(jìn)行加減速操作,具體實(shí)現(xiàn)us層級(jí)的速度快速響應(yīng)變化。
4) Windows用戶軟件設(shè)計(jì)
基于VS開發(fā)平臺(tái),進(jìn)行多軸聯(lián)動(dòng)系統(tǒng)控制界面設(shè)計(jì),可實(shí)現(xiàn)啟動(dòng)多線程操作,運(yùn)動(dòng)指令手動(dòng)設(shè)置,驅(qū)動(dòng)器狀態(tài)監(jiān)測等功能。界面設(shè)計(jì)與模塊化功能程序相匹配,可以有效調(diào)控硬件系統(tǒng)組件。本文對(duì)主要界面進(jìn)行簡要介紹。
圖5為單軸操作接口界面,窗口區(qū)分為6大功能區(qū)塊。① 區(qū)塊實(shí)現(xiàn)運(yùn)動(dòng)控制卡的檢索與初始化,伺服擴(kuò)展單元的查找、選擇、站號(hào)設(shè)置等功能。② 區(qū)塊通過調(diào)用相對(duì)應(yīng)的動(dòng)態(tài)函數(shù)庫函數(shù),實(shí)現(xiàn)伺服電機(jī)操作模式的切換。函數(shù)的具體定義如表2所示。③ 區(qū)塊用于設(shè)置運(yùn)動(dòng)指令,包含初始速度、最大速度、運(yùn)動(dòng)行程、加速時(shí)間等參數(shù),實(shí)現(xiàn)伺服電機(jī)不同運(yùn)動(dòng)狀態(tài)的調(diào)節(jié)。④ 區(qū)塊通過獲取命令數(shù)值、反饋值、速度值、運(yùn)動(dòng)狀態(tài)等參數(shù),實(shí)現(xiàn)對(duì)伺服電機(jī)運(yùn)動(dòng)的監(jiān)測。此外,可通過Reset按鈕執(zhí)行重置命令。⑤ 區(qū)塊實(shí)現(xiàn)伺服電機(jī)運(yùn)動(dòng)速度與位置置換操作。⑥ 區(qū)塊主要用于執(zhí)行運(yùn)動(dòng)指令為正轉(zhuǎn)、反轉(zhuǎn)與停止等操作。
圖5 單軸運(yùn)動(dòng)控制界面
表2 運(yùn)動(dòng)模式函數(shù)
圖6為多軸聯(lián)動(dòng)操作界面,窗口區(qū)分為7大功能區(qū)塊。多軸聯(lián)動(dòng)功能的實(shí)現(xiàn)基于單軸運(yùn)動(dòng)的精確控制,后者的功能界面也是前者的高度集成。兩者的界面形式存在諸多相同點(diǎn),諸如運(yùn)動(dòng)控制卡的初始化、運(yùn)動(dòng)參數(shù)的設(shè)置與監(jiān)測以及運(yùn)動(dòng)指令的執(zhí)行等操作。差異性體現(xiàn)在以下幾點(diǎn):
1) 增添了二軸、三軸線性插補(bǔ),三軸螺旋插補(bǔ)、二軸圓弧、螺旋插補(bǔ)等運(yùn)動(dòng)模式。
2) 增添了圓弧中心坐標(biāo)、螺旋高度、z軸深度等參數(shù)設(shè)置。
3) 實(shí)現(xiàn)了多軸協(xié)調(diào)控制,完成了多軸聯(lián)動(dòng)操作。
通過點(diǎn)擊⑤區(qū)塊的命令執(zhí)行按鈕,即可實(shí)現(xiàn)多軸聯(lián)動(dòng)操作。
圖6 多軸聯(lián)動(dòng)控制界面
結(jié)合現(xiàn)有三坐標(biāo)實(shí)驗(yàn)平臺(tái),進(jìn)行多軸聯(lián)動(dòng)控制系統(tǒng)的現(xiàn)場聯(lián)調(diào)。PC機(jī)通過運(yùn)動(dòng)控制卡發(fā)出運(yùn)動(dòng)指令,伺服電機(jī)帶動(dòng)線性模組移動(dòng)。通過光柵尺反饋位置以及伺服電機(jī)編碼器反饋信息獲取定位信息。通過多次實(shí)驗(yàn),設(shè)定不同的目標(biāo)位置、運(yùn)行速度、加速度等參數(shù)。經(jīng)過數(shù)據(jù)處理,得到結(jié)果為各軸高速動(dòng)態(tài)響應(yīng):正反向誤差:0.5 m;重復(fù)定位精度:58 μm;綜合定位精度:15.6 μm;三軸聯(lián)動(dòng)響應(yīng)時(shí)間10 μs內(nèi)。
該測試結(jié)果與傳統(tǒng)的控制器加配線的方式相比,定位精度都有所提高,實(shí)現(xiàn)了多軸的高速聯(lián)動(dòng),滿足了多工位的復(fù)雜動(dòng)態(tài)調(diào)度請(qǐng)求。
以PC機(jī)為平臺(tái),基于運(yùn)動(dòng)控制卡的通訊控制技術(shù),結(jié)合Windows開發(fā)環(huán)境,在VS平臺(tái)上開發(fā)上位機(jī)管理軟件,實(shí)現(xiàn)了多伺服電機(jī)的協(xié)調(diào)控制,使終端機(jī)械手能夠完成三維空間內(nèi)任意軌跡的動(dòng)態(tài)插補(bǔ)運(yùn)動(dòng),滿足了多工位、多任務(wù)、多請(qǐng)求的系統(tǒng)目標(biāo),使系統(tǒng)具備極強(qiáng)的可移植性與開放性[5]。
利用PCI-DMC-B01運(yùn)動(dòng)控制卡提供的動(dòng)態(tài)函數(shù)庫,采用C#編程語言編制多軸聯(lián)動(dòng)的實(shí)驗(yàn)平臺(tái)界面。該界面實(shí)現(xiàn)了單軸速度、位置運(yùn)動(dòng)控制,二軸線性以及圓弧插補(bǔ)運(yùn)動(dòng)控制,三軸線性、螺旋插補(bǔ)運(yùn)動(dòng)控制。在該界面上,可方便設(shè)置、監(jiān)測多伺服電機(jī)的運(yùn)動(dòng)參數(shù),實(shí)現(xiàn)運(yùn)動(dòng)軌跡顯示功能。最終結(jié)合四自由度煤樣抓取實(shí)驗(yàn)平臺(tái),充分驗(yàn)證了該控制系統(tǒng)的可靠性與穩(wěn)定性。
[1] 江小玲,舒志兵. 基于CAN總線多軸伺服電機(jī)的同步控制[J]. 機(jī)床與液壓,2012,40(8):120-122.
[2] 劉洋. 永磁同步電機(jī)伺服系統(tǒng)實(shí)用技術(shù)的研究 [D]. 南京:南京航空航天大學(xué),2010: 20-36.
[3] 張劍,殷蘇民. 基于運(yùn)動(dòng)控制卡的開放式數(shù)控系統(tǒng)研制[J]. 機(jī)床與液壓,2003(3):171-175.
[4] 魯文其,胡旭東,史偉民,等. 基于擾動(dòng)補(bǔ)償算法的拉床主溜板雙伺服同步驅(qū)動(dòng)控制策略[J]. 機(jī)械工程學(xué)報(bào),2013,49(21):30-37.
[5] 劉思捷. CANopen協(xié)議在伺服系統(tǒng)中的軟件實(shí)現(xiàn)與植入研究[D]. 武漢:華中科技大學(xué),2011.