郎言書(shū),于 東,何無(wú)為,韓文業(yè)
1(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168) 2(中國(guó)科學(xué)院大學(xué),北京 100049) 3(沈陽(yáng)中科數(shù)控技術(shù)股份有限公司,沈陽(yáng) 110168)
伴隨著數(shù)控技術(shù)的發(fā)展,數(shù)控系統(tǒng)的發(fā)展歷程從硬件數(shù)控、微機(jī)數(shù)控、PC數(shù)控,體系結(jié)構(gòu)也由封閉式走向開(kāi)放式結(jié)構(gòu)[1],近年來(lái)向智能化的方向邁進(jìn).
為實(shí)現(xiàn)數(shù)控系統(tǒng)的智能控制,國(guó)內(nèi)外多個(gè)研究機(jī)構(gòu)和數(shù)控系統(tǒng)廠商開(kāi)展數(shù)控系統(tǒng)智能化功能的相關(guān)研究.其中FANUC[2]提出了(Smart Machine Control)智能控制功能,考慮機(jī)床的負(fù)載、溫度、機(jī)器位置、磨損等隨時(shí)間的變化,實(shí)時(shí)自適應(yīng)地改變機(jī)床狀態(tài),在達(dá)到高精度和高加工質(zhì)量的同時(shí)縮短加工時(shí)間.智能自適應(yīng)控制[3]功能(Smart Adaptive Control)根據(jù)主軸的溫度和負(fù)載在加工期間優(yōu)化進(jìn)給率,充分利用主軸電機(jī)的功率;精細(xì)表面加工技術(shù)[4](Fine Surface Technology)提供CAM-CNC-Servo的全鏈?zhǔn)浇鉀Q方案,在獲得高的表面加工質(zhì)量的同時(shí),加工時(shí)間并沒(méi)有延長(zhǎng).
海德漢(HEIDEHAIN)數(shù)控系統(tǒng)的智能化功能[5-8],例如:CTC關(guān)聯(lián)軸補(bǔ)償(Cross Talk Compensation)功能,可以補(bǔ)償?shù)毒咧行奶?由加速度引起的位置誤差;AVD(Active Vibration Damping)動(dòng)態(tài)振動(dòng)抑制功能,主動(dòng)抑制機(jī)床和電機(jī)的振動(dòng),提高工件的表面質(zhì)量;PAC(Position Adaptive Control)位置自適應(yīng)控制功能,是基于控制參數(shù)的位置自適應(yīng)控制,得到更高的輪廓保真度;LAC(Load Adaptive Control)負(fù)載自適應(yīng)控制,控制參數(shù)和軸最大加速度基于負(fù)載自適應(yīng),保證高的精度;MAC(Motion Adaptive Control)運(yùn)動(dòng)自適應(yīng)控制功能,自適應(yīng)調(diào)整控制參數(shù),快移過(guò)程中減少振動(dòng),提高最大加速度;ADP(Advanced Dynamic Prediction)高性能動(dòng)態(tài)預(yù)測(cè)功能,在前瞻Look-ahead功能的基礎(chǔ)上,補(bǔ)償相鄰路徑之間因?yàn)閿?shù)據(jù)點(diǎn)分布導(dǎo)致的進(jìn)給率曲線的不同,在相鄰銑削路徑上得到非常平滑的進(jìn)給速度曲線;AFC(Adaptive Feed Control)自適應(yīng)進(jìn)給控制功能,根據(jù)加工狀態(tài)調(diào)整進(jìn)給率,優(yōu)化加工時(shí)間;保護(hù)機(jī)床機(jī)械結(jié)構(gòu);擺線銑削功能(Trochoidal Milling)高效加工槽和型腔,減小刀具和機(jī)床受力,與AFC功能一起使用可節(jié)省時(shí)間,粗加工過(guò)程是一個(gè)圓弧與直線運(yùn)動(dòng)的疊加運(yùn)動(dòng);OCM(Optimized Contour Milling)優(yōu)化輪廓銑削功能,在一致的工藝條件下對(duì)任何型腔和孤島進(jìn)行工具友好型加工.
OKUMA數(shù)控系統(tǒng)的智能化功能[9]包括(Thermo-Friendly Concept)熱誤差補(bǔ)償功能、碰撞檢測(cè)功能(Collision Avoidance System)、加工優(yōu)化功能(MACHINING NAVI)、五軸自動(dòng)調(diào)整(5-Axis Auto Tuning)功能、伺服優(yōu)化(SERVONAVI)功能等.其中,加工優(yōu)化功能(MACHINING NAVI)自動(dòng)調(diào)節(jié)機(jī)床主軸的轉(zhuǎn)速,節(jié)省時(shí)間、達(dá)到最高的生產(chǎn)效率.五軸自動(dòng)調(diào)整(5-Axis Auto Tuning)功能去除小的幾何誤差,而這些看似微不足道的幾何誤差可對(duì)加工工件造成大的問(wèn)題.伺服優(yōu)化(SERVONAVI)功能基于時(shí)刻變化的負(fù)載,調(diào)整加工速度,提高了伺服精度和周期.SIMENS數(shù)控系統(tǒng)具有智能運(yùn)動(dòng)控制[10,11]功能,應(yīng)用精優(yōu)曲面和臻優(yōu)曲面功能,可以得到更優(yōu)工件表面質(zhì)量.前述智能控制功能也包含軌跡規(guī)劃,或者是其他智能功能與軌跡規(guī)劃功能的組合.
智能軌跡規(guī)劃作為數(shù)控系統(tǒng)的智能化功能的子部分,近年來(lái)在快速發(fā)展.SIMENS數(shù)控系統(tǒng)的精優(yōu)曲面和臻優(yōu)曲面功能[10,11]提高工件表面質(zhì)量,改進(jìn)的Look-ahead功能,將前瞻范圍擴(kuò)展到相鄰路徑,提高加工速度、表面精度和加工質(zhì)量;智能加加速度約束功能(Intelligent jerk limitation)減少了機(jī)床機(jī)械的磨損,提高了機(jī)械部件的使用時(shí)間.OKUMA數(shù)控系統(tǒng)的Super-NURBS[12]功能,得到更快速、平滑的刀具軌跡,縮短加減速時(shí)間、提高進(jìn)給速率.
上述智能控制,以及包含的智能化軌跡規(guī)劃功能,都是在數(shù)控系統(tǒng)中實(shí)現(xiàn),并應(yīng)用到產(chǎn)品上,但是研究和實(shí)現(xiàn)方法是相對(duì)保密的,并不公開(kāi).學(xué)術(shù)界對(duì)于軌跡規(guī)劃方法的研究,近年來(lái)也得到長(zhǎng)足的發(fā)展.Da Rocha等[13]在嵌入式控制器BeagleBone中實(shí)現(xiàn)snap連續(xù)的軌跡規(guī)劃方法,實(shí)現(xiàn)拐角平滑過(guò)渡.Wen-Chuan Chen等[14]基于直線加減速和S曲線加減速,針對(duì)直線-直線,直線-圓弧,圓弧-圓弧,圓弧-直線4種情形,給出拐角平滑過(guò)渡方法.Li B等[15]提出一種基于強(qiáng)化學(xué)習(xí)的軌跡平滑方法,用強(qiáng)化學(xué)習(xí)訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù),在XY兩軸運(yùn)動(dòng)平臺(tái)上進(jìn)行了驗(yàn)證.綜上所述,智能化數(shù)控系統(tǒng)運(yùn)動(dòng)控制功能和軌跡規(guī)劃方法在學(xué)術(shù)界和產(chǎn)業(yè)界近年來(lái)得到了迅速的發(fā)展,無(wú)論是理論還是落實(shí)到產(chǎn)品中.本文將按照智能化數(shù)控系統(tǒng)軟硬件平臺(tái)、解釋器軟件、軌跡規(guī)劃方法這3個(gè)步驟,搭建智能化數(shù)控系統(tǒng)軌跡規(guī)劃模塊,智能化軟硬件平臺(tái)和解釋器軟件是軌跡規(guī)劃算法高效、實(shí)時(shí)、穩(wěn)定運(yùn)行的基礎(chǔ).
高速、高精的軌跡規(guī)劃方法和自適應(yīng)、自調(diào)節(jié)、跨平臺(tái)的軟件設(shè)計(jì)技術(shù)是機(jī)床智能控制系統(tǒng)的重要組成部分.作為上層設(shè)計(jì)的基礎(chǔ),軟硬件平臺(tái)的性能直接影響著算法效能的發(fā)揮.因此,首先介紹中科數(shù)控系統(tǒng)智能化軟硬件平臺(tái),是本文智能化數(shù)控系統(tǒng)軌跡規(guī)劃方法的運(yùn)行環(huán)境.
中科數(shù)控系統(tǒng)可重構(gòu)的硬件平臺(tái)包括人機(jī)交互單元(HMU)和控制單元(NCU).采用M:N的可重構(gòu)方式,根據(jù)客戶需求,可實(shí)現(xiàn)多個(gè)人機(jī)接口單元對(duì)應(yīng)多個(gè)控制單元.每個(gè)控制單元通過(guò)現(xiàn)場(chǎng)總線實(shí)現(xiàn)對(duì)驅(qū)動(dòng)器、I/O單元、傳感器網(wǎng)關(guān)的控制.傳感器網(wǎng)關(guān)支持有線/無(wú)線傳感器介入.無(wú)線方式包括WIFI、RFID等無(wú)線射頻方式.傳感器通過(guò)廣播同步與總線同步相結(jié)合的方式,實(shí)現(xiàn)傳感器數(shù)據(jù)的采集與控制信息的同步.
HMU為數(shù)控裝置的人機(jī)接口部分.主要為數(shù)控裝置的命令輸入、系統(tǒng)狀態(tài)顯示、聯(lián)機(jī)幫助、交互式編程和機(jī)床信息管理等功能提供計(jì)算平臺(tái),并具有網(wǎng)絡(luò)化接口.
NCU為數(shù)控裝置的控制部分.NCU采用箱式多插槽結(jié)構(gòu),插槽中可插入CPU控制板與多個(gè)功能擴(kuò)展板.控制板與功能擴(kuò)展板通過(guò)機(jī)箱背板上的總線互聯(lián),組成智能化數(shù)控裝置硬件平臺(tái).其中,功能擴(kuò)展板根據(jù)裝置的控制要求,可分為RGMII遠(yuǎn)程接口板、現(xiàn)場(chǎng)總線通訊板、I/O控制板卡等.NCU的標(biāo)準(zhǔn)配置為一塊CPU控制板,一個(gè)RGMII遠(yuǎn)程接口板,一個(gè)電源板,一個(gè)總線通信板以滿足不同檔次數(shù)控裝置對(duì)功能、性能與成本要求.
隨著數(shù)控技術(shù)的飛速發(fā)展,數(shù)控系統(tǒng)需要的不僅是高性能,還需要許多智能化技術(shù),如動(dòng)態(tài)規(guī)劃、推理及決策能力、加工環(huán)境感知能力、智能通信能力及智能監(jiān)控、診斷能力等.通過(guò)開(kāi)發(fā)先進(jìn)的具有自適應(yīng)、自調(diào)節(jié)能力的智能化數(shù)控系統(tǒng)二次開(kāi)發(fā)平臺(tái),應(yīng)用人員可以通過(guò)該平臺(tái)開(kāi)發(fā)出具有模擬、延伸和擴(kuò)展等智能行為的數(shù)控系統(tǒng).國(guó)際先進(jìn)的數(shù)控系統(tǒng)廠商,如西門(mén)子(SIEMENS)、發(fā)那科(FANUC)等都在其產(chǎn)品中提供了面向智能應(yīng)用的智能編程、智能任務(wù)管理、狀態(tài)監(jiān)控、機(jī)床診斷、PLC邏輯/輔助功能、APP管理等二次開(kāi)發(fā)功能,并提供了高效的二次開(kāi)發(fā)工具,不同程度地滿足了主機(jī)廠和最終用戶的數(shù)控系統(tǒng)配套應(yīng)用需求.本文參考國(guó)際先進(jìn)的系統(tǒng)的二次開(kāi)發(fā)功能,設(shè)計(jì)基于智能化數(shù)控系統(tǒng)的軟件平臺(tái)接口,具有智能化應(yīng)用開(kāi)發(fā)環(huán)境與工具的二次開(kāi)發(fā)工具,以支持實(shí)現(xiàn)智能化軟件模塊的開(kāi)發(fā)與部署.智能化數(shù)控系統(tǒng)的二次開(kāi)發(fā)平臺(tái)整體架構(gòu)如圖1所示.
圖1 智能化數(shù)控系統(tǒng)架構(gòu)Fig.1 Intelligent CNC system architecture
在硬件平臺(tái)之上,建立跨平臺(tái)二次開(kāi)發(fā)環(huán)境,兼容多種操作系統(tǒng).智能二次開(kāi)發(fā)環(huán)境及接口包括通用功能二次開(kāi)發(fā)接口和個(gè)性化功能二次開(kāi)發(fā)接口.加工運(yùn)行接口、程序管理接口、參數(shù)管理接口和工藝管理接口屬于通用功能二次開(kāi)發(fā)接口.任務(wù)管理接口、狀態(tài)監(jiān)控接口和機(jī)床檢查接口屬于個(gè)性化功能二次開(kāi)發(fā)接口.此外,智能數(shù)控系統(tǒng)平臺(tái)中的算法控制庫(kù)、運(yùn)動(dòng)函數(shù)庫(kù)、工藝數(shù)據(jù)庫(kù)、擴(kuò)展組件庫(kù)和人機(jī)交互函數(shù)庫(kù)與數(shù)控系統(tǒng)內(nèi)核交互.智能二次開(kāi)發(fā)環(huán)境通過(guò)通訊中間件與智能數(shù)控系統(tǒng)平臺(tái)交互,傳遞信息和指令數(shù)據(jù).
RCS(Real-time Control System)是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)的智能系統(tǒng)部(Intelligent Systems Division)研發(fā)形成的一套完整的實(shí)時(shí)控制系統(tǒng).應(yīng)用于數(shù)控機(jī)床和機(jī)器人.RCS專注于適應(yīng)不確定和非結(jié)構(gòu)化操作環(huán)境的智能控制.關(guān)鍵問(wèn)題是傳感、感知、知識(shí)、成本耗費(fèi)、學(xué)習(xí)、規(guī)劃和執(zhí)行.RCS 促成了開(kāi)放、可互操作和可測(cè)量的智能系統(tǒng)的開(kāi)發(fā),其核心在于James S.Albus于1991年提出的智能化架構(gòu).
Albus[16]提出的智能軟件平臺(tái)包含六元組,數(shù)控系統(tǒng)內(nèi)部有四元組,硬件邏輯有傳感器和執(zhí)行器,軟件邏輯有感知模塊、世界模型、價(jià)值判斷和行為生成模塊.
傳感器和執(zhí)行器是數(shù)控系統(tǒng)與外界環(huán)境溝通的橋梁.傳感器獲取外部信息作為數(shù)控系統(tǒng)的感知輸入,執(zhí)行器是數(shù)控系統(tǒng)最終的執(zhí)行元件,其行為能夠改變外界環(huán)境,如:機(jī)床刀具的移動(dòng)、毛坯切削成工件.執(zhí)行器的行為由感知、世界模型、價(jià)值判斷與行為生成模塊共同完成控制.以工件的加工為例,感知層獲取到工件的位置和形狀信息,輸入世界模型的數(shù)據(jù)庫(kù)中,刀具的最優(yōu)路徑規(guī)劃在價(jià)值判斷模塊中運(yùn)算得到,行為生成模塊結(jié)合價(jià)值判斷模塊的估量結(jié)果以及世界模型傳遞的狀態(tài)信息選擇合適的加減速規(guī)律沿著最優(yōu)路徑進(jìn)行密化處理,輸出一系列插補(bǔ)點(diǎn)給執(zhí)行器最終執(zhí)行.
世界模型是智能系統(tǒng)對(duì)于外界狀態(tài)最好的估計(jì),內(nèi)部包含知識(shí)數(shù)據(jù)庫(kù),存放先驗(yàn)知識(shí).世界模型有著對(duì)外部世界的狀態(tài)進(jìn)行預(yù)測(cè)和估計(jì)的能力,能夠模擬事件的進(jìn)行.世界模型能夠提供外部世界過(guò)去、現(xiàn)在和未來(lái)的答案.世界模型把外部世界過(guò)去、現(xiàn)在和未來(lái)的信息提供給行為生成模塊,使之可以做智能的判斷和行為選擇.同樣地,世界模型與感知處理系統(tǒng)交互,使之能夠獲取到先驗(yàn)知識(shí)做模型匹配、做基于模型的狀態(tài)、物體和事件的識(shí)別.為價(jià)值判斷模塊提供信息,計(jì)算資源耗費(fèi)、優(yōu)勢(shì)、風(fēng)險(xiǎn)、不確定性、重要性等.世界模型與傳感模塊交互,做到持續(xù)更新.
價(jià)值判斷模塊計(jì)算優(yōu)勢(shì)和劣勢(shì),確定性和不確定性,估計(jì)觀測(cè)到的外部狀態(tài)和假設(shè)行為的結(jié)果.價(jià)值判斷模塊分別對(duì)觀測(cè)到的狀態(tài)和尚在規(guī)劃中的活動(dòng)進(jìn)行資源耗費(fèi)計(jì)算、風(fēng)險(xiǎn)評(píng)估,對(duì)狀態(tài)參數(shù)進(jìn)行可信度和不確定性計(jì)算.正如智能個(gè)體做決策,選擇帶來(lái)最優(yōu)效益的行為,摒棄不具備優(yōu)勢(shì)的行為一樣,價(jià)值判斷模塊考慮諸多因素,從而給出推薦的最優(yōu)解.
行為生成模塊選擇目標(biāo),規(guī)劃并執(zhí)行任務(wù).任務(wù)被遞歸地分解為多個(gè)子任務(wù),各子任務(wù)按順序執(zhí)行共同完成最終目標(biāo).行為生成與世界模型,價(jià)值判斷這3個(gè)模塊之間循環(huán)交換信息,與此同時(shí),在模塊內(nèi)部進(jìn)行推理運(yùn)算.如此,目標(biāo)被選擇,計(jì)劃被產(chǎn)生.行為生成模塊對(duì)計(jì)劃做出假設(shè),世界模型預(yù)測(cè)規(guī)劃的結(jié)果,價(jià)值判斷模塊評(píng)估結(jié)果.同樣地,行為生成模塊也預(yù)測(cè)規(guī)劃的執(zhí)行,對(duì)于突發(fā)狀況,擁有修改現(xiàn)有計(jì)劃的能力.智能就存乎于一個(gè)交互型的系統(tǒng)架構(gòu),允許系統(tǒng)的各個(gè)組成部分相互聯(lián)結(jié)、相互之間以簡(jiǎn)單或復(fù)雜的方式進(jìn)行通信.
在數(shù)控系統(tǒng)中,一個(gè)任務(wù)可能是一條曲線的加工.曲線可細(xì)分為多條小線段,即任務(wù)被分解為多個(gè)子任務(wù).任務(wù)也可以有不同的分解方法.一條曲線也可以分解為直線段、圓弧段、拋物線的組合,根據(jù)分解方式的不同而異.在每一個(gè)行為生成的層級(jí),任務(wù)被分解為多個(gè)子任務(wù),這些子任務(wù)分別作為下一層級(jí)的任務(wù)命令.粒度越來(lái)越細(xì),行為越來(lái)越精確.任務(wù)的分解,是粒度細(xì)化的過(guò)程.
真正執(zhí)行之前,行為生成模塊做產(chǎn)生行為的假設(shè),世界模型預(yù)測(cè)結(jié)果,價(jià)值判斷模塊做評(píng)估.于是,行為生成模塊選取“最優(yōu)解”,即最優(yōu)規(guī)劃,進(jìn)行執(zhí)行.
圖2 智能化數(shù)控系統(tǒng)軟件架構(gòu)Fig.2 Intelligent CNC system software architecture
如圖2所示,智能化數(shù)控系統(tǒng)軟件架構(gòu)包括HMI人機(jī)交互界面、NML(Neutral Message Language)中間消息語(yǔ)言、解釋器和運(yùn)動(dòng)控制層.運(yùn)動(dòng)控制層包括軌跡規(guī)劃模塊、前瞻模塊、正逆向運(yùn)動(dòng)學(xué)模塊、平滑插補(bǔ)模塊和軸命令模塊.在數(shù)控加工過(guò)程中,上層模塊發(fā)送命令給下層模塊,下層模塊反饋狀態(tài)和錯(cuò)誤信息給上層模塊.例如,HMI人機(jī)交互界面通過(guò)NML發(fā)送G代碼段給解釋器,解釋器解析指令,進(jìn)行錯(cuò)誤處理,解析后的結(jié)果通過(guò)NML和共享內(nèi)存?zhèn)魉徒o運(yùn)動(dòng)控制模塊,錯(cuò)誤信息和當(dāng)前解釋器的狀態(tài)轉(zhuǎn)遞給HMI人機(jī)交互界面進(jìn)行顯示和處理.解釋器解析后的中間結(jié)果,是一組中間形式的指令集,包括運(yùn)動(dòng)段的起點(diǎn)、終點(diǎn)、段類型等信息,軌跡規(guī)劃模塊根據(jù)這些數(shù)據(jù)進(jìn)行規(guī)劃,經(jīng)歷前瞻、運(yùn)動(dòng)學(xué)和平滑插補(bǔ)模塊,最終下發(fā)插補(bǔ)點(diǎn)給伺服控制器.
在圖2所示的架構(gòu)中,解釋器和運(yùn)動(dòng)控制層都符合Albus架構(gòu),在解釋器內(nèi)部有四元組結(jié)構(gòu),本文將在第3章介紹解釋器世界模型的具體實(shí)現(xiàn).同樣,運(yùn)動(dòng)控制層中的四元組結(jié)構(gòu),也有感知處理、行為生成、曲線模型和價(jià)值判斷.在運(yùn)動(dòng)控制層,行為生成模塊對(duì)應(yīng)于軌跡生成.感知處理模塊從下一層的伺服控制器獲取反饋信息,實(shí)際軸命令通過(guò)正向運(yùn)動(dòng)學(xué)轉(zhuǎn)換,向上一層傳遞.同樣,讀取伺服控制器的狀態(tài)信息,向上一層傳遞.軌跡生成模塊,通過(guò)軌跡規(guī)劃、前瞻、逆向運(yùn)動(dòng)學(xué)、平滑插補(bǔ)等子模塊,生成最終的軌跡點(diǎn),下發(fā)給伺服控制器.價(jià)值判斷模塊與曲線模型交互,選取最優(yōu)的軌跡.
本章介紹智能化數(shù)控系統(tǒng)解釋器軟件,以RS274/NGC解釋器為例.NIST RS274/NGC解釋器[17],是基于James S.Albus提出的智能化系統(tǒng)架構(gòu)實(shí)現(xiàn)的開(kāi)源解釋器.作為上層模塊,解釋器下發(fā)的指令信息的正確性與否對(duì)于軌跡規(guī)劃模塊性能的發(fā)揮有著至關(guān)重要的影響.因此,本章主要介紹世界模型在解釋器中的實(shí)現(xiàn)、接口定義以及解析過(guò)程.
解釋器內(nèi)部有一個(gè)運(yùn)行時(shí)所依賴的世界模型,在具體實(shí)現(xiàn)中,軟件內(nèi)部的世界模型是一個(gè)名為setup_struct的結(jié)構(gòu)體,里面大約有100種屬性.世界模型在解釋器開(kāi)始運(yùn)行時(shí)進(jìn)行初始化,與機(jī)床的世界模型同步.解釋器的工作分為兩個(gè)步驟.1)解釋器運(yùn)行時(shí)讀入一行NC代碼,檢查無(wú)誤后存入block結(jié)構(gòu)體;2)解釋器進(jìn)一步檢查block結(jié)構(gòu),調(diào)用解析函數(shù)生成下發(fā)給運(yùn)動(dòng)控制器的指令.setup結(jié)構(gòu)體和setup結(jié)構(gòu)體中block的定義如下:
typedef struct setup_struct
{
Double axis_offset_x; // X軸偏置
double axis_offset_y; // Y軸偏置
double axis_offset_z; // Z軸偏置
block block1; // 解析下一個(gè)block
double current_x; // 當(dāng)前X軸位置
double current_y; // 當(dāng)前Y軸位置
double current_z; // 當(dāng)前Z軸位置
FILE * file_pointer; // 打開(kāi)NC程序文件的指針
int motion_mode; // 運(yùn)動(dòng)模式
double origin_offset_x; // X軸原點(diǎn)偏置
double origin_offset_y; // Y軸原點(diǎn)偏置
double origin_offset_z; // Z軸原點(diǎn)偏置
……
} setup;
typedef struct block_struct
{
char comment[256]; // 程序注釋
int g_modes[14]; // 模態(tài)G代碼
int line_number; // 程序行號(hào)
int motion_to_be; // 下一個(gè)運(yùn)動(dòng)類型
double x_number; // X軸位置
double y_number; // Y軸位置
double z_number; // Z軸位置
……
} block;
NIST RS274/NGC解釋器既可以嵌入到數(shù)控系統(tǒng)軟件中,作為一個(gè)子模塊,解析結(jié)果下發(fā)給運(yùn)動(dòng)控制模塊.也可以獨(dú)立運(yùn)行,作為一個(gè)獨(dú)立存在的軟件進(jìn)行調(diào)試,運(yùn)行在SAI(Stand Alone Interpreter)模式.
NIST RS274/NGC解釋器有三軸和五軸兩種工作模式,生成運(yùn)行于三軸機(jī)床和五軸機(jī)床的運(yùn)動(dòng)控制指令.對(duì)于五軸機(jī)床,3個(gè)旋轉(zhuǎn)軸的不同組合,五軸解釋器有著6種軸選項(xiàng),分別是AB、AC、BA、BC、CA和CB.根據(jù)機(jī)床的結(jié)構(gòu),選用合適的軸配置.
嵌入到數(shù)控系統(tǒng)軟件中的NIST RS274/NGC解釋器,有4個(gè)函數(shù)調(diào)用接口,圖3中的箭頭指示函數(shù)調(diào)用的方向.而SAI(Stand Alone Interpreter)模式下的解釋器并不需要這些接口,即可作為一個(gè)整體獨(dú)立運(yùn)行.
圖3 解釋器接口定義Fig.3 Interpreter interfaces definition
解釋器執(zhí)行函數(shù)(Interpreter-do-it functions)告訴解釋器做一些事情,例如:讀入一行NC代碼或者執(zhí)行已讀過(guò)的代碼行,這類函數(shù)返回整形的數(shù)值表示狀態(tài).解釋器給予信息函數(shù)(Interpreter-give-information functions)告訴解釋器給出信息,解釋器以返回值的形式或者以指針指向存儲(chǔ)區(qū)域的形式,指針作為解釋器提供的信息.標(biāo)準(zhǔn)加工函數(shù)(Canonical machining functions)告訴解釋器系統(tǒng)中其他部分需要做什么工作,這類函數(shù)并不返回任何值.標(biāo)準(zhǔn)加工函數(shù)是以被控制的加工中心是如何工作的視角來(lái)進(jìn)行編寫(xiě)的.從機(jī)床機(jī)械的角度,冷卻液和軸夾.從控制組件的角度,包括橢圓弧運(yùn)動(dòng)、各軸和機(jī)床主軸的同步、編程進(jìn)給率等等.外界給予信息函數(shù)(World-give-information functions)向解釋器外部的環(huán)境請(qǐng)求信息,解釋器外部環(huán)境可能給解釋器返數(shù)值、或者把數(shù)據(jù)放在一個(gè)存儲(chǔ)空間,把指向該存儲(chǔ)空間的指針?lè)到o解釋器.
解釋器不直接控制機(jī)床軸的運(yùn)動(dòng),也不進(jìn)行與運(yùn)動(dòng)相關(guān)的速度控制、點(diǎn)位的密化處理.但作為數(shù)控系統(tǒng)的上層模塊,解釋器將工件程序轉(zhuǎn)換為運(yùn)動(dòng)控制模塊能夠識(shí)別的指令集,并對(duì)工件程序中的錯(cuò)誤進(jìn)行處理和反饋.例如:數(shù)控系統(tǒng)解釋器在處理直線、圓弧等運(yùn)動(dòng)指令時(shí),需要識(shí)別出首末點(diǎn),有時(shí)對(duì)于圓弧指令,還要判斷該運(yùn)動(dòng)指令中的值能否構(gòu)成圓弧,對(duì)工件程序中G代碼后的數(shù)值進(jìn)行檢查,計(jì)算圓心坐標(biāo)等.不構(gòu)成圓弧的指令,解釋器啟動(dòng)錯(cuò)誤處理程序,顯示錯(cuò)誤信息,從而保證傳送給運(yùn)動(dòng)控制層的數(shù)據(jù)是正確的.
若解釋器僅僅解析指令,不做任何的錯(cuò)誤處理,那么運(yùn)動(dòng)控制層要對(duì)接收的數(shù)據(jù)正確性做判斷,會(huì)加重運(yùn)動(dòng)控制層的負(fù)擔(dān).因?yàn)檫\(yùn)動(dòng)控制對(duì)實(shí)時(shí)性的要求較強(qiáng),軌跡規(guī)劃模塊、前瞻和插補(bǔ)模塊的計(jì)算量大,這樣一來(lái)不能保證實(shí)時(shí)性,二來(lái)也增加了出錯(cuò)的幾率.數(shù)控系統(tǒng)解釋器軟件不僅要解析用戶輸入工件程序,還要進(jìn)行錯(cuò)誤處理.解釋器下發(fā)正確指令的解析結(jié)果給運(yùn)動(dòng)控制層,解析出錯(cuò)時(shí)輸出錯(cuò)誤原因和錯(cuò)誤代碼段作為提示信息給使用者.解釋器的工作方式是一行行解析的,前一行的錯(cuò)誤不影響后續(xù)數(shù)控程序段的解析.解釋器內(nèi)部有一個(gè)錯(cuò)誤描述文件,文件內(nèi)的錯(cuò)誤標(biāo)志數(shù)組存放著出錯(cuò)原因,錯(cuò)誤編號(hào)可由數(shù)組下標(biāo)索引.對(duì)于應(yīng)用到實(shí)踐中的解釋器,解析過(guò)程中發(fā)生的錯(cuò)誤種類很多,數(shù)組規(guī)模較大,這里給出編譯器錯(cuò)誤存儲(chǔ)數(shù)組的部分示例:
char * _com _errors[] =
{
/* 0 */ "No error",
/* 1 */ "A file is already open",
/* 2 */ "All axes missing with g92",
/* 3 */ "All axes missing with motion code",//運(yùn)動(dòng)段缺少各軸坐標(biāo)
/* 4 */ "Arc radius too small to reach end point",//圓弧半徑太小,無(wú)法達(dá)到終點(diǎn)位置
/* 5 */ "Attempt to divide by zero",//除數(shù)為零
……
}
以半徑格式的圓弧解析為例,G代碼中給出圓弧的起點(diǎn)、終點(diǎn)坐標(biāo)和圓弧的半徑r,解釋器判斷是否構(gòu)成圓弧.因?yàn)橄议L(zhǎng)一定小于整圓的直徑,因此當(dāng)二分之一弦長(zhǎng)大于圓的半徑,解釋器報(bào)錯(cuò).
令圓弧起點(diǎn)S和終點(diǎn)E之間連線構(gòu)成的弦長(zhǎng)的一半為half_length,中點(diǎn)M的坐標(biāo)為(mx,my),計(jì)算half_length的過(guò)程如下:
(1)
(2)
(3)
若:
(4)
若上式成立,則圓弧G代碼中的信息不構(gòu)成圓弧,解釋器報(bào)錯(cuò),提示用戶.其中,ε是一個(gè)很小的值.無(wú)論是優(yōu)弧還是劣弧,方向是順時(shí)針還是逆時(shí)針,弦長(zhǎng)都不應(yīng)大于圓的直徑.解釋器在工作狀態(tài)下,其內(nèi)部的功能函數(shù)執(zhí)行過(guò)程中,如果發(fā)現(xiàn)待解析的程序段存在錯(cuò)誤,可以直接打印錯(cuò)誤信息,或者將錯(cuò)誤代碼和錯(cuò)誤原因傳送給主調(diào)函數(shù),由主調(diào)函數(shù)進(jìn)行處理.測(cè)試解釋器執(zhí)行過(guò)程.
智能化軟硬件平臺(tái)和解釋器是軌跡規(guī)劃方法正常運(yùn)行的前提和保障.與刀具路徑不同,軌跡不但具有幾何形狀的概念,還包括速度和加速度等物理概念[18].本章主要研究智能化軌跡規(guī)劃方法.研究精度和速度兩個(gè)方面.
小線段智能軌跡規(guī)劃,根據(jù)特定的工件程序路徑信息,分析局部特征,選取特定的方法進(jìn)行加工.例如,在直線段較長(zhǎng)時(shí),拐角最優(yōu)過(guò)渡算法[19,20]能夠達(dá)到好的效果.縮短加工時(shí)間.直線段較短時(shí),對(duì)于特定的工件程序,拐角等速率過(guò)渡方法加工時(shí)間短、速度曲線更為光滑、減少毛刺和波動(dòng)現(xiàn)象.因此,可以在加工中的某個(gè)形狀特征的軌跡段選取算法中的一種,在下一段軌跡區(qū)域,因?yàn)樾螤钐卣鞯母淖?選取不同算法,達(dá)到最優(yōu)的加工效果.
(5)
(6)
加工起點(diǎn)為(0,0),終點(diǎn)(100,0)圓心坐標(biāo)(50,0),XY平面內(nèi)定義的半圓弧,圓弧離散精度為0.1mm,兩種拐角過(guò)渡算法的速度曲線畫(huà)在一張圖上.當(dāng)圓弧離散精度較高(0.1mm)時(shí),拐角等速率過(guò)渡方法的加工時(shí)間短于拐角最優(yōu)過(guò)渡算法,而且速度曲線更為光滑.當(dāng)圓弧離散精度較低,例如圓弧離散精度為1mm,即直線段較長(zhǎng)時(shí),拐角最優(yōu)過(guò)渡算法的執(zhí)行時(shí)間短于拐角等速率過(guò)渡方法.因此,可根據(jù)加工程序的特點(diǎn)和路況信息,智能地選取兩種方法中的一種進(jìn)行某一區(qū)域的加工,在整個(gè)工件程序的加工中兩種算法進(jìn)行多次切換,以達(dá)到最優(yōu)的加工效果,縮短執(zhí)行時(shí)間.
兩種拐角過(guò)渡方法的加速度曲線,拐角最優(yōu)過(guò)渡算法的加速度曲線在機(jī)床正向最大加速度和負(fù)向最大加速度之間來(lái)回切換,在拐角處XY兩軸都達(dá)到正向或者反向最大加速度.而拐角等速率過(guò)渡方法,在拐角處僅有一個(gè)軸達(dá)到正向或者反向最大加速度,因?yàn)楣战羌铀俣鹊姆较蛟诠战瞧椒志€上.而拐角最優(yōu)過(guò)渡算法的拐角加速度方向在拐角加速度多邊形的對(duì)角線上.
4.2.1 基本概念
前瞻(look-ahead),是CNC控制中唯一能夠提高生產(chǎn)率的功能[21],起到“自動(dòng)進(jìn)給率開(kāi)關(guān)”的作用,提高整體加工效率.在數(shù)控技術(shù)的發(fā)展初期,緩沖區(qū)被添加進(jìn)來(lái)以便于控制系統(tǒng)預(yù)讀一個(gè)數(shù)據(jù)塊,加速程序的執(zhí)行.這里的緩沖區(qū)起到了一種“前瞻”的作用,預(yù)測(cè)下一個(gè)運(yùn)動(dòng)并節(jié)省每個(gè)運(yùn)動(dòng)之間停滯的時(shí)間.后來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展,前瞻緩沖區(qū)的容量不斷擴(kuò)大,可以根據(jù)“路況”預(yù)讀多個(gè)程序段.如果前面的“路況”平緩,可以保持較大的進(jìn)給速度;如果前面的拐角較尖銳,那么需要提前進(jìn)行減速處理.
前瞻(Look-ahead),正如其名,體現(xiàn)的是“向前看”.前瞻功能使得數(shù)控機(jī)床滿足加工精度的同時(shí),顯著提高加工速度.預(yù)知后續(xù)待加工路徑與當(dāng)前路徑的偏離.作為數(shù)控系統(tǒng)運(yùn)動(dòng)控制的重要環(huán)節(jié),前瞻正體現(xiàn)了智能:推理出多種可能行為帶來(lái)的結(jié)果、在行動(dòng)之前做規(guī)劃,預(yù)測(cè)待加工軌跡的幾何變化,平滑地加減速,提高機(jī)床部件的使用壽命.
數(shù)控系統(tǒng)的前瞻模塊在當(dāng)前插補(bǔ)周期預(yù)讀后面的一部分程序段,通過(guò)計(jì)算來(lái)判斷后面的某個(gè)的程序段與其相鄰直線段是否在路徑上有大的偏離.如果前瞻模塊計(jì)算出前面有較尖銳的拐角,那么需要提前減速.當(dāng)代數(shù)控系統(tǒng)可達(dá)到很高的進(jìn)給速度,但離開(kāi)前瞻,這樣高的進(jìn)給速度無(wú)法發(fā)揮出來(lái).問(wèn)題的根源在于密集的數(shù)據(jù)點(diǎn)位.
數(shù)控系統(tǒng)既可讓刀具走過(guò)一條更為快速、輕盈的路徑,也可以使其笨拙地、具有破壞性地走過(guò)該路徑,關(guān)鍵在于前瞻功能.
前瞻性能的發(fā)揮離不開(kāi)對(duì)機(jī)床加減速能力的合理優(yōu)化.數(shù)控機(jī)床可以做到運(yùn)行更快的同時(shí),更為平穩(wěn).預(yù)知后續(xù)待加工路徑與當(dāng)前路徑的偏離.
4.2.2 前瞻效果
前瞻對(duì)拐角速度有一個(gè)下壓的過(guò)程.以直線段和圓弧組成的小測(cè)試程序?yàn)槔?圓弧離散為短線段進(jìn)行加工.圖4和圖5分別是前瞻計(jì)算前后的拐角速度曲線,前瞻計(jì)算后的拐角速度曲線更為光滑,調(diào)整后的拐角速度是加減速可達(dá)的.
圖4 前瞻計(jì)算前的拐角速度Fig.4 Corner velocity before look-ahead
圖5 前瞻計(jì)算后的拐角速度Fig.5 Corner velocity after look-ahead
動(dòng)態(tài)軌跡規(guī)劃,區(qū)別于離線軌跡規(guī)劃一次構(gòu)造好、不再改變的規(guī)劃方式,是一種實(shí)時(shí)的、動(dòng)態(tài)的響應(yīng)過(guò)程.數(shù)控系統(tǒng)接收到外界信號(hào),立即改變規(guī)劃過(guò)程.機(jī)床操作者調(diào)節(jié)倍率旋鈕,數(shù)控系統(tǒng)響應(yīng)倍率修調(diào).或者數(shù)控系統(tǒng)自身根據(jù)當(dāng)前加工狀況,自適應(yīng)地改變最大加工速度,動(dòng)態(tài)地規(guī)劃速度曲線.如圖所示,速度曲線的升降,有時(shí)可以在本段內(nèi)完成.有時(shí)在本段內(nèi)加速或者減速不到新的編程進(jìn)給率,需要取到下一段繼續(xù)進(jìn)行速度調(diào)整.
對(duì)于不同類型的加減速方法,按照原來(lái)加減速曲線的變化規(guī)律進(jìn)行速度曲線的調(diào)整.如果是直線加減速,按照直線加減速的方式進(jìn)行調(diào)整.如果是S曲線加減速,按照S曲線加減速的方式進(jìn)行調(diào)整.圖6是基于直線加減速方法,跨段減速的示意圖.其中,減速信號(hào)DEC在第2個(gè)段的執(zhí)行過(guò)程中被接收到,控制器實(shí)時(shí)響應(yīng)減速信號(hào).但在第2個(gè)段的末尾處減速不到新的進(jìn)給率,控制器取到下一段,繼續(xù)進(jìn)行減速.直至達(dá)到新的進(jìn)給倍率才停止減速過(guò)程.若線段的長(zhǎng)度短,且減速幅度較大,則可能跨越多個(gè)段才能完成動(dòng)態(tài)響應(yīng).
圖6 跨段減速過(guò)程中的動(dòng)態(tài)軌跡規(guī)劃Fig.6 Dynamic trajectory planning in deceleration process across segment
在響應(yīng)外界信號(hào)方面,除了倍率的增加和降低以外,還有數(shù)控加工中的特殊情況,例如急停和復(fù)位.兩者的區(qū)別在于,控制系統(tǒng)接收到急停信號(hào)直接清除運(yùn)動(dòng)隊(duì)列,各軸立即停止.接收到復(fù)位信號(hào),先按原有的加減速規(guī)律減速到零,再清除運(yùn)動(dòng)隊(duì)列,是一種和緩的響應(yīng)方法.
以復(fù)雜的凸輪為例,闡述復(fù)雜曲線軌跡規(guī)劃方法.凸輪曲線的數(shù)據(jù)來(lái)源有兩種:輪廓曲線產(chǎn)生的離散值和升程表數(shù)據(jù).本文嘗試用這兩種方法分別擬合生成完整的凸輪輪廓軌跡,兩種方法都能達(dá)到理想的效果.在數(shù)控系統(tǒng)中,根據(jù)給定的G代碼類型和數(shù)據(jù)進(jìn)行加工,選取樣條、圓弧、小線段3種指令描述整個(gè)凸輪輪廓,而且進(jìn)一步用這3種指令的兩兩組合形式和3種指令混合形式描述凸輪曲線.凸輪輪廓曲線在數(shù)控系統(tǒng)中有圓弧、小線段和樣條曲線3種表達(dá)方式.選取兩種不同類型的凸輪進(jìn)行實(shí)驗(yàn)分析.
表1 多種擬合方式加工兩種凸輪輪廓的執(zhí)行時(shí)間Table 1 Execution time of machining two cam profiles by various fitting methods
選取兩種不同類型的凸輪,凸輪a形狀對(duì)稱,凸輪b形狀不對(duì)稱.根據(jù)表1給出的加工時(shí)間,Nurbs樣條描述的凸輪輪廓,實(shí)際加工時(shí)間最短,小線段次之,圓弧段加工時(shí)間最長(zhǎng).然而,以凸輪a為例,在樣條、圓弧、小線段兩兩組合或3種方式混合加工的方式,圓弧-小線段混合描述的凸輪輪廓,加工時(shí)間最短,其次是小線段-Nurbs樣條混合,圓弧-Nurbs混合方式的加工用時(shí)最多.
本文圍繞智能化數(shù)控系統(tǒng)架構(gòu)和軌跡規(guī)劃方法,主要研究?jī)?nèi)容如下:首先闡述中科數(shù)控系統(tǒng)智能化軟硬件平臺(tái),作為算法的運(yùn)行環(huán)境,該平臺(tái)為算法的高效、穩(wěn)定運(yùn)行提供了可靠保障.基于Albus架構(gòu)的六元組結(jié)構(gòu),各個(gè)模塊的主要功能和交互機(jī)制.在此基礎(chǔ)上,介紹智能化數(shù)控系統(tǒng)解釋器中的世界模型、工作機(jī)理和錯(cuò)誤處理.智能化數(shù)控系統(tǒng)軌跡規(guī)劃方法是在軟硬件平臺(tái)和解釋器等底層和上層模塊的可靠運(yùn)行基礎(chǔ)上實(shí)現(xiàn)的.涵蓋小線段算法的智能選取、智能前瞻模塊調(diào)整拐角速度、動(dòng)態(tài)軌跡規(guī)劃方法根據(jù)當(dāng)前的加工狀況實(shí)時(shí)調(diào)整速度曲線,縮短加工時(shí)間,達(dá)到最優(yōu)的加工效果.最后,所提出的方法能夠在實(shí)時(shí)響應(yīng)外界環(huán)境變化的同時(shí),縮短加工時(shí)間,并達(dá)到預(yù)期的加工效果.