馮 寧
(廣東機電職業(yè)技術學院,廣東 廣州 510515)
面向分布式數(shù)控系統(tǒng)的自適應調(diào)度框架研究
馮 寧
(廣東機電職業(yè)技術學院,廣東 廣州 510515)
提出了一種“面向分布式數(shù)控系統(tǒng)的自適應調(diào)度框架”,該調(diào)度框架綜合利用“數(shù)控系統(tǒng)任務優(yōu)先級動態(tài)設定”和“數(shù)控系統(tǒng)任務的周期自適應調(diào)整”。在“數(shù)控系統(tǒng)任務的周期自適應調(diào)整”中采用動態(tài)設定數(shù)據(jù)信息流緩沖區(qū)的上溢、下溢警戒區(qū),并且通過“時間系列”模型預測任務周期觀測時間“t”,能夠很好地預防數(shù)據(jù)信息流的上溢和下溢,使系統(tǒng)在很短時間內(nèi)收斂到穩(wěn)定狀態(tài),有效地提高了數(shù)控系統(tǒng)的加工速度和加工質(zhì)量。
分布式數(shù)控;自適應調(diào)度框架;信息流;時間系列模型
在傳統(tǒng)數(shù)控系統(tǒng)調(diào)度模型下,系統(tǒng)的可調(diào)度性取決于每一個任務在最壞情況下的執(zhí)行時間,這種調(diào)度易于實現(xiàn),但因為系統(tǒng)是固定地考慮任務在最壞情況下的時間需求,CPU的利用率比較低,不能充分發(fā)揮系統(tǒng)的性能。當前有一些文獻討論了數(shù)控系統(tǒng)的自適應調(diào)度方法,這些方法大致可歸結(jié)為兩類,一類是調(diào)度周期的自適應研究,另一類是任務優(yōu)先級自適應動態(tài)調(diào)整的研究。對于第一類研究存在的缺陷是由于數(shù)控系統(tǒng)的數(shù)據(jù)信息流的相互依賴性,即使調(diào)度周期根據(jù)負載情況自適應調(diào)整,仍然存在下游任務等待上游任務數(shù)據(jù)的情況,導致系統(tǒng)加工速度不平穩(wěn)。對于第二類研究,優(yōu)先級自適應動態(tài)調(diào)整能夠改善系統(tǒng)的可調(diào)度性,但因為任務調(diào)度周期是固定的,則在負載過重時任務丟失率過高,負載過低時CPU利用率過低。
本文設計了一種面向分布式數(shù)控系統(tǒng)的調(diào)度框架,該框架根據(jù)數(shù)控系統(tǒng)任務的實時情況自適應動態(tài)調(diào)整任務優(yōu)先級和調(diào)度周期,能夠有效防止數(shù)控系統(tǒng)數(shù)據(jù)信息流的數(shù)據(jù)等待和數(shù)據(jù)丟失,最大限度地提高CPU的利用率,有效提高系統(tǒng)的性能。
圖1是數(shù)控系統(tǒng)的數(shù)據(jù)信息流模型,系統(tǒng)針對的是一種分布式數(shù)控系統(tǒng),系統(tǒng)從加工程序到粗插補在主控制器內(nèi)完成,各個軸的精插補到軸的驅(qū)動在各軸的智能控制器內(nèi)完成。主控制器與各個智能控制器之間通過現(xiàn)場總線相連進行通信。
上述數(shù)控系統(tǒng)的數(shù)據(jù)信息流由譯碼、刀補處理、插補等若干環(huán)節(jié)組成,各個環(huán)節(jié)通過緩沖區(qū)相連,上游環(huán)節(jié)產(chǎn)生的數(shù)據(jù)信息存入緩沖區(qū),下游環(huán)節(jié)所要消費的數(shù)據(jù)信息從緩沖區(qū)讀出,上游環(huán)節(jié)的輸出作為下游環(huán)節(jié)的輸入。只要緩沖區(qū)不發(fā)生上溢或下溢,數(shù)據(jù)加工就會正常進行。而一旦發(fā)生緩沖區(qū)下溢,就會使某一環(huán)節(jié)出現(xiàn)數(shù)據(jù)等待,數(shù)控加工就會中斷,導致加工不平穩(wěn),影響加工質(zhì)量。一旦發(fā)生緩沖區(qū)上溢,就會導致部分數(shù)據(jù)丟失,數(shù)控加工就會失真。

對于圖1所示數(shù)控系統(tǒng)數(shù)據(jù)信息流,精插補處理、位置控制、速度控制環(huán)節(jié)在各個智能控制器中進行,精插補產(chǎn)生的數(shù)據(jù)存放于運行緩沖區(qū),每一個精插補數(shù)據(jù)的消費與位置控制、速度控制在時序上需要嚴格的匹配。精插補數(shù)據(jù)的消費速度相對固定,是由加工速度的快慢決定。譯碼、刀補處理、速度預處理、粗插補環(huán)節(jié)是在主控制器內(nèi)進行。主控制器除了要處理這些任務以外,還要處理一些弱實時任務、非實時任務和突發(fā)任務,這些任務的消費速度是變化和未知的。同時粗插補緩沖區(qū)消費數(shù)據(jù)的速度也是變化的,當所加工段為直線,每一段插補的區(qū)間就長,消費的速度就低。當所加工段為曲線,每一段插補的區(qū)間就短,消費的速度就高。以上各種因素就導致各個緩沖區(qū)數(shù)據(jù)產(chǎn)生與消費的速度處在一個不斷變化的過程中,如果數(shù)據(jù)產(chǎn)生與消費的速度長期不匹配,就有可能產(chǎn)生數(shù)據(jù)溢出。
2.1 數(shù)控系統(tǒng)任務模型和緩沖區(qū)模型描述
將數(shù)控系統(tǒng)信息流上的周期任務用5元組表示為TPi=(C,P0,T0,Pi,Ti)。式中,C表示任務TPi的上游緩沖區(qū),P0表示任務TPi的初始優(yōu)先級,T0表示任務TPi的初始周期,Pi表示任務TPi的當前優(yōu)先級,Ti表示任務TPi的當前周期。任務的初始優(yōu)先級由任務在數(shù)控系統(tǒng)信息流上的位置決定,越靠近加工末端位置優(yōu)先級越高,最高優(yōu)先級規(guī)定為0。任務的初始周期由設定的加工速度決定。任務的當前優(yōu)先級和當前周期根據(jù)實際情況自動動態(tài)調(diào)整。任務TPi、TPi+1、TPi+2及緩沖區(qū)i和緩沖區(qū)i+1的位置關系如圖2所示。
數(shù)控系統(tǒng)信息流上各緩沖區(qū)的模型如圖3所示。每個緩沖區(qū)由Ci、Cit、Cil、Cih這4個參數(shù)決定,其中Ci表示緩沖區(qū)i的容量,Cit表示緩沖區(qū)i的當前已占容量,Cil表示緩沖區(qū)iv的下溢警戒區(qū)容量,Cih表示緩沖區(qū)i的上溢警戒區(qū)容量。


2.2 緩沖區(qū)警戒容量的確定
根據(jù)緩沖區(qū)的模型,可以得知在任一時刻緩沖區(qū)的剩余容量ΔCi=Ci-Cit。
(1)緩沖區(qū)上溢警戒區(qū)容量的確定
定義1 上溢:對于某一緩沖區(qū),若其上游產(chǎn)生數(shù)據(jù)的速度大于下游消費數(shù)據(jù)的速度,在某一段時間內(nèi),上游產(chǎn)生數(shù)據(jù)量與下游消費數(shù)據(jù)量之差超過緩沖區(qū)剩余容量ΔCi,導致上游產(chǎn)生的部分數(shù)據(jù)丟失的現(xiàn)象稱作上溢。

Cih=Ci-B/Tk
(1)
式中:Tk為緩沖區(qū)i上游任務的執(zhí)行周期,ti為任務TPi的無中斷執(zhí)行時間。
(2)緩沖區(qū)下溢警戒區(qū)容量的確定
定義2 下溢:對于某一緩沖區(qū),若其下游消費數(shù)據(jù)的速度大于上游產(chǎn)生數(shù)據(jù)的速度,在某一段時間內(nèi),下游消費數(shù)據(jù)量與上游產(chǎn)生數(shù)據(jù)量之差超過緩沖區(qū)當前容量Cit,導致緩沖區(qū)下游任務在一段時間內(nèi)沒有數(shù)據(jù)消費而處于等待狀態(tài)的現(xiàn)象稱作下溢。

Cil=B′/Tf
(2)
式中:Tf為緩沖區(qū)i下游任務的執(zhí)行周期,ti為任務TPi的無中斷執(zhí)行時間。
2.3 數(shù)控系統(tǒng)任務優(yōu)先級的動態(tài)設定
在圖1所示數(shù)控系統(tǒng)數(shù)據(jù)信息流中,因為緩沖區(qū)下游任務更接近數(shù)控系統(tǒng)的執(zhí)行端,下游任務的初始優(yōu)先級比上游任務初始優(yōu)先級高。當某緩沖區(qū)i到達下溢警戒線時,有可能會發(fā)生下溢危險。此時若該緩沖區(qū)下游任務優(yōu)先級高于上游任務,有可能因為上游任務優(yōu)先級較低而不能立即執(zhí)行,如果系統(tǒng)中有優(yōu)先級高于該緩沖區(qū)上游任務而低于下游任務的任務存在,則會導致上游任務較長時間處于等待狀態(tài),而下游任務將該緩沖區(qū)的數(shù)據(jù)完全消費光。因為下游任務的優(yōu)先級高于上游任務,從而使下游任務因無數(shù)據(jù)消費而長期處于等待狀態(tài),而上游任務因優(yōu)先級較低而得不到執(zhí)行權(quán),導致系統(tǒng)處于中斷狀態(tài),在這種情況下應該調(diào)整系統(tǒng)緩沖區(qū)上下游任務的優(yōu)先級,使上游任務的優(yōu)先級暫時高于下游任務的優(yōu)先級,從而增加緩沖區(qū)上游任務數(shù)據(jù)的產(chǎn)生量。如果此時下游任務優(yōu)先級已經(jīng)低于上游任務,則啟動周期調(diào)整程序。
當某緩沖區(qū)i到達上溢警戒線時,有可能會發(fā)生上溢危險,此時應該減少緩沖區(qū)i上游任務數(shù)據(jù)產(chǎn)生的速度,增大緩沖區(qū)下游任務數(shù)據(jù)消費的速度。其方法為:
(1)檢查緩沖區(qū)i下游任務的優(yōu)先級是否高于上游任務的優(yōu)先級,如果不是調(diào)整緩沖區(qū)上下游任務的優(yōu)先級,使緩沖區(qū)下游任務的優(yōu)先級高于上游任務的優(yōu)先級。
(2)如果下游任務的優(yōu)先級已經(jīng)高于上游任務的優(yōu)先級,則檢查上一緩沖區(qū)i+1的上游任務優(yōu)先級是否高于下游任務的優(yōu)先級,目的是暫時將數(shù)據(jù)流攔截在緩沖區(qū)i+1,減少緩沖區(qū)i的數(shù)據(jù)來量,如果不是則調(diào)整緩沖區(qū)i+1上下游任務的優(yōu)先級,使緩沖區(qū)i+1上游任務的優(yōu)先級高于下游任務的優(yōu)先級。
(3)如果緩沖區(qū)i+1不需要調(diào)整,則啟動周期調(diào)整程序。
任務優(yōu)先級動態(tài)調(diào)整算法:
緩沖區(qū)i下游任務優(yōu)先級為Pi,緩沖區(qū)i上游任務優(yōu)先級為Pi+1,上一緩沖區(qū)i+1下游任務的優(yōu)先級為Pi+1,上一緩沖區(qū)i+1上游任務的優(yōu)先級為Pi+2,任務總數(shù)N。
Function_Adjust()
{
for( i=0; i { If(Cit { If(Pi>Pi+1) {調(diào)整緩沖區(qū)i上下游任務優(yōu)先級,使Pi else {啟動周期調(diào)整程序;} } If(Cit>Cih):到達上溢警戒線 { If(Pi {調(diào)整緩沖區(qū)i上下游任務優(yōu)先級,使Pi>Pi+1;} else { If(Pi+1> Pi+2) {調(diào)整緩沖區(qū)i+1上下游任務優(yōu)先級,使Pi+1< Pi+2;} else {啟動周期調(diào)整程序;} } } } 2.4 數(shù)控系統(tǒng)的任務周期自適應調(diào)整 調(diào)整任務周期的目的是預防緩沖區(qū)溢出,保證加工的正常進行。對于數(shù)控系統(tǒng)而言,在一次加工的過程中加工速度往往相對穩(wěn)定,所以數(shù)控系統(tǒng)信息流的末端消費數(shù)據(jù)的速率相對穩(wěn)定。任何一個緩沖區(qū),上游任務離數(shù)控系統(tǒng)信息流的末端更遠,所以調(diào)節(jié)上游任務的周期比調(diào)節(jié)下游任務的周期更有利于保證數(shù)控系統(tǒng)的穩(wěn)定加工。 (3) (4) 在上述周期調(diào)整公式中,所選取的觀測時間段t越短越安全。但t取值太小則一次調(diào)整的幅度過大,則會頻繁啟動任務周期調(diào)整,系統(tǒng)開銷過大。若所取觀測時間段t太長,則有可能會在時間t內(nèi)發(fā)生溢出的危險。理想狀態(tài)是所選取的時間t正好使緩沖區(qū)不發(fā)生溢出。但實際情況下數(shù)控系統(tǒng)的一些任務是不確定的,所以不可能算出t的精確值。一種較好的解決途徑是采用統(tǒng)計的方法來確定觀測時間t,因為根據(jù)數(shù)控系統(tǒng)的特點,引起數(shù)控系統(tǒng)負載波動的主要原因是隨機突發(fā)任務,因此觀測時間t也是一種隨機變量。 利用時間系列模型可以較好地根據(jù)已經(jīng)發(fā)生的K個時序變量預測下一個時序變量,因此利用時間系列模型來確定觀測時間t,根據(jù)已經(jīng)實際發(fā)生的一系列周期調(diào)整間隔時間t,預測下一個觀測時間。實踐證明,利用時間系列模型可以達到比較好的效果。時間系列模型建模及預測步驟如圖4所示。 2.5 周期自適應調(diào)整算法的驗證 對數(shù)控系統(tǒng)周期自適應調(diào)整算法進行仿真驗證,在驗證中將CPU的利用率上限Up設定為95%。驗證方法為:在數(shù)控系統(tǒng)正常任務的基礎上,每隔100ms觸發(fā)一個突發(fā)實時任務,每隔5ms采樣一次CPU的利用率,每隔100ms統(tǒng)計一次在該100ms時段內(nèi)數(shù)據(jù)發(fā)生上溢和下溢的次數(shù),結(jié)果表明CPU每次觸發(fā)突發(fā)任務后15ms內(nèi)利用率就能夠快速收斂穩(wěn)定到85%左右(見表1),到了0.5s以后就基本不會發(fā)生數(shù)據(jù)的上溢和下溢(見表2)。 表1 CPU利用率統(tǒng)計表 時刻/ms05101520253035CPU利用率/%6586958986848586時刻/ms100105110115120125130135CPU利用率/%9591868584868685時刻/ms200205210215220225230235CPU利用率/%9490878584868585 表2 數(shù)據(jù)溢出統(tǒng)計表 時刻/ms100200300400500600700800上溢次數(shù)04311000下溢次數(shù)05311000 (1)自適應調(diào)度框架動態(tài)設定系統(tǒng)任務優(yōu)先級和任務的執(zhí)行周期,有效地提高了系統(tǒng)CPU的利用率,提高了數(shù)控系統(tǒng)的加工速度和質(zhì)量。 (2)采用數(shù)據(jù)緩沖區(qū)的結(jié)構(gòu),使數(shù)控系統(tǒng)各環(huán)節(jié)的任務不必嚴格按照固定的時序執(zhí)行,降低了整個系統(tǒng)實時性的要求,也不會因為某一個環(huán)節(jié)的數(shù)據(jù)中斷而導致加工過程的停止。采用“時間系列”模型預測任務周期觀測時間“t”,能夠較好地預防數(shù)據(jù)信息流的上溢和下溢,使系統(tǒng)在很短時間內(nèi)收斂到穩(wěn)定狀態(tài)。 [1]郭偉.基于全分布式數(shù)控系統(tǒng)的自治式控制單元及關鍵技術研究[D].上海:上海交通大學,2008. [2]周剛,鄔義杰,潘曉弘.數(shù)控系統(tǒng)軟件模塊實時調(diào)度方法[J].機械工程學報,2009(1):162-166. [3]梁宏斌,王永章.基于Windows的開放式數(shù)控系統(tǒng)實時問題研究[J].計算機集成制造系統(tǒng),2003(5):403-406. [4]謝經(jīng)明,周祖德,陳幼平,等.基于現(xiàn)場總線的開放式數(shù)控系統(tǒng)體系結(jié)構(gòu)研究[J].華中科技大學學報,2002(4): 1-4. [5]姚鑫驊,潘雪增,傅建中,等.數(shù)控系統(tǒng)的混合任務模型及其最優(yōu)調(diào)度算法研究[J].浙江大學學報:工學版,2006(8):1315-1319. [6]鄭飛,王時龍,簡毅.可重構(gòu)分布式數(shù)控系統(tǒng)的設計與實現(xiàn)[J]. 計算機集成制造系統(tǒng),2008(4):637-643. 如果您想發(fā)表對本文的看法,請將文章編號填入讀者意見調(diào)查表中的相應位置。 Research on adaptive scheduling framework for distributed NC system FENG Ning (Guangdong Vocational College of Mechanical & Electrical Technology, Guangzhou 510515, CHN) An “adaptive scheduling framework for distributed CNC system” is proposed. The scheduling framework utilizes comprehensively "CNC system task dynamic priority setting" and "CNC system task period adaptive adjustment". In " CNC system task period adaptive adjustment", data stream buffer overflow and underflow warning area are set dynamically, "time series model" is used to predict the observation period of time "t", it can well prevent flow data overflow and underflow, enables the system to converge to stable state in a short period of time, and effectively improves the machining speed and quality of the CNC system. distributed CNC system; adaptive scheduling framework; information flow; time series model TH29 A 10.19287/j.cnki.1005-2402.2016.12.029 馮寧,男,1971年,碩士研究生,講師,工程師,專業(yè)主任,主要研究方向為數(shù)控系統(tǒng)、機電一體化技術,已發(fā)表論文6篇,著作3部。 (編輯 李 靜) 2016-05-10) 161237





3 結(jié)語
