成克強,林家全,楊東裕,戴青云,王美林
(1.廣東工業(yè)大學 信息工程學院,廣州 510006; 2.工業(yè)和信息化部電子第五研究所,廣州 510610; 3.廣東技術(shù)師范大學, 廣州 510665)
當前,我國正從制造大國邁向制造強國,作為智能制造的關(guān)鍵支撐,智能車間系統(tǒng)軟件對推動制造業(yè)轉(zhuǎn)型升級具有重要的戰(zhàn)略意義。隨著智能車間數(shù)字化、智能化、系統(tǒng)化發(fā)展,系統(tǒng)軟件的可靠性、穩(wěn)定性、開放性等直接影響加工生產(chǎn)的質(zhì)量和效益。然而,由于軟件需求的不確定性,開發(fā)人員的主觀局限性,以及制造系統(tǒng)的復雜性,系統(tǒng)軟件在開發(fā)過程中難免會出現(xiàn)缺陷[1-2]。同時,隨著軟件系統(tǒng)長期運行,系統(tǒng)性能衰減,占用的資源累增,造成軟件老化,導致系統(tǒng)失效或宕機[3]。為避免出現(xiàn)軟件老化現(xiàn)象,Huang等[4]提出軟件再生技術(shù),采用定期清除內(nèi)部狀態(tài)或運行環(huán)境,避免老化引起突發(fā)性失效,但是再生頻率不易把握。有學者提出對軟件老化趨勢進行預測[5-6],根據(jù)系統(tǒng)運行參數(shù)信息,對系統(tǒng)資源消耗情況進行預測分析,但難以捕捉老化性能參數(shù)的隱藏規(guī)律,導致預測精度低,預測效果不佳。為提升制造系統(tǒng)軟件可靠性,減緩系統(tǒng)軟件老化速度,更好的服務生產(chǎn)制造,唯有加強軟件仿真測試,建立高保真測試運行環(huán)境,盡可能的及早挖掘軟件漏洞[7]。
系統(tǒng)軟件可靠性測試是在設定的條件下進行相關(guān)操作,檢驗系統(tǒng)是否滿足規(guī)定的需求以及評估預期結(jié)果與實際結(jié)果的偏差,往往通過放大可能造成被測對象性能下降的壓力因素,或加速被測產(chǎn)品性能下降速率,縮短測試時間,提升軟件開發(fā)時效性。在測試過程中,為節(jié)省人力、時間及硬件資源, Just R等[8]提出采用自動化測試,但軟件測試自動化是一項復雜的任務,它不僅涉及測試用例的執(zhí)行,還涉及適當輸入值的生成和相應輸出的評估,在測試時間和運行環(huán)境上,仍然面臨很多問題。隨著系統(tǒng)軟件趨向大型化、高復雜度發(fā)展,Holck J和Sthl D等[9-10]提出針對存在多個依賴關(guān)系的大型復雜軟件開展持續(xù)集成測試,雖然在開發(fā)周期的各個階段頻繁地開展軟件測試,可以提高測試效率和可預測性,但總體測試時間太長,耗費高,也不能全面發(fā)掘漏洞。同時,智能車間系統(tǒng)軟件有別于傳統(tǒng)軟件,智能車間系統(tǒng)軟件的運行非常依賴于與其配套生產(chǎn)設備的交互,采用傳統(tǒng)軟件測試方法,無法真實模擬軟件的實際運行情況。當前,隨著個性化定制生產(chǎn)的快速發(fā)展,具備實時調(diào)度和精準預防維護等功能的智能車間系統(tǒng)軟件對時效性和經(jīng)濟性的要求越來越高。制造系統(tǒng)傳統(tǒng)測試方法需要長時間不間斷的執(zhí)行測試,在測試期間需一直開啟生產(chǎn)線,由于在非加速狀態(tài)下系統(tǒng)軟件的老化失效時間非常長,完成一次可靠性測試就需要數(shù)月甚至更長時間,耗費非常高。因此,現(xiàn)有的軟件可靠性測試和評估技術(shù)已不能滿足智能制造系統(tǒng)軟件的可靠性測試評估要求,急需提出一種新的方法來縮短工業(yè)系統(tǒng)軟件的可靠性測試時間和降低測試成本。
近年來,隨著多學科建模與仿真技術(shù)的飛速發(fā)展,數(shù)字孿生概念及應用成為研究熱點。對于制造系統(tǒng)仿真測試而言,如能構(gòu)建生產(chǎn)線的數(shù)字孿生模型,設置與實體產(chǎn)線相同的屬性,從而代替實體生產(chǎn)線與系統(tǒng)軟件實時交互,即可實現(xiàn)高保真測試,縮短測試時間和節(jié)省測試成本。
數(shù)字孿生是一項集多物理量、多尺度、多概率的仿真技術(shù),通過數(shù)字虛擬空間與物理設備之間的高保真虛實映射,實現(xiàn)數(shù)字孿生體與實體設備全生命周期同步演化的過程,是物理與信息世界的橋梁和紐帶[11-12]。數(shù)字孿生概念最早由Grieves教授提出[13],最初應用于航空航天領(lǐng)域,現(xiàn)已推廣到智能制造、網(wǎng)聯(lián)汽車測試、裝備預防維護、文物保護等領(lǐng)域,貫穿產(chǎn)品全生命周期的各個階段[14]。葛雨明等提出在有限環(huán)境下利用數(shù)字孿生技術(shù)進行自動駕駛汽車的測試和驗證,可以真實模擬復雜道路場景[15];Angjeliu等[16]將數(shù)字孿生技術(shù)用于米蘭大教堂的維修保護,通過建立高精度的建筑結(jié)構(gòu)孿生模型,預測評估結(jié)構(gòu)發(fā)展趨勢,并制定相應的預防維護策略或干預措施;在核電設備運行服務方面,采用數(shù)字孿生技術(shù),可以檢測異常、診斷和評估系統(tǒng)性能,同時預測設備剩余壽命,指導運行優(yōu)化和制定設備維護方案[17];在飛機運行中,通過建立綜合考慮結(jié)構(gòu)偏差和溫度變化的超高保真模型,在保全飛機結(jié)構(gòu)完整性的前提下,預測飛機零部件及整機壽命,數(shù)字孿生被譽為“結(jié)構(gòu)壽命預測和管理的再造工程”[18];Tao Fei等[19]提出利用風力發(fā)動機數(shù)字孿生模型驅(qū)動故障預測與健康管理,可有效實現(xiàn)孿生模型與實體的交互與融合。
隨著仿真建模技術(shù)與工業(yè)互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能技術(shù)的融合發(fā)展,在智能制造領(lǐng)域,數(shù)字孿生技術(shù)將大幅推進產(chǎn)品設計、生產(chǎn)、運行維護等全生命周期的變革發(fā)展。智能車間是智能制造的主要載體,Tao Fei等[20]提出智能車間數(shù)字孿生模型構(gòu)建智方法,并研究了數(shù)字孿生智能車間的運行機制和實現(xiàn)方法;Guo Daqiang等[21]提出裝配畢業(yè)制造系統(tǒng)(GMS)數(shù)字孿生模型,針對裝配島的特點及工作流程,通過設計作業(yè)票、安裝票、物流票來組織生產(chǎn)活動,可以有效規(guī)范管理人員、操作員的職責,增強車間管理的可視性。智能車間系統(tǒng)軟件是智能制造的核心,操控著產(chǎn)品全生命周期的數(shù)據(jù),其可靠性和穩(wěn)定性直接影響產(chǎn)品的生產(chǎn)質(zhì)量和效益。通過數(shù)字孿生技術(shù),可以在智能車間系統(tǒng)軟件開發(fā)測試階段發(fā)現(xiàn)漏洞和不足之處,無需等到實際生產(chǎn)運行階段再對系統(tǒng)軟件進行測試。同時通過建立準確的測試與預測模型,在軟件失效前預先做好防范措施,可以大幅降低系統(tǒng)軟件的商用風險,提升工業(yè)軟件的運維能力。
數(shù)字孿生模型是根據(jù)系統(tǒng)的物理實體在虛擬空間上建立數(shù)字孿生體,從而實現(xiàn)對實體全生命周期的映射。制造系統(tǒng)生產(chǎn)線的數(shù)字孿生模型結(jié)構(gòu)框架如圖1所示。
圖1 生產(chǎn)線數(shù)字孿生模型結(jié)構(gòu)框架
在框架中,數(shù)字孿生虛擬模型基于生產(chǎn)線的物理模型進行構(gòu)建,通過對實際物理模型的三維結(jié)構(gòu)、通信數(shù)據(jù)、通信接口等進行建模,實現(xiàn)生產(chǎn)線的數(shù)字孿生模型離散事件仿真加速測試。車間系統(tǒng)軟件與數(shù)字孿生模型通過數(shù)據(jù)采集與監(jiān)控系統(tǒng)(SCADA)進行交互,包括下發(fā)業(yè)務流程、反饋模型狀態(tài)數(shù)據(jù)等。
建立生產(chǎn)線高保真數(shù)字孿生模型替代實際的生產(chǎn)車間系統(tǒng)用于制造系統(tǒng)軟件的可靠性仿真測試,需要構(gòu)建包括產(chǎn)品、設備資源、工藝流程等系統(tǒng)級仿真模型。為實現(xiàn)孿生模型與系統(tǒng)軟件之間的交互功能,模型應具備交互、計算和控制等屬性。以構(gòu)建步進電機生產(chǎn)線數(shù)字孿生模型為例,需實現(xiàn)模型中設備間、SCADA系統(tǒng)與車間系統(tǒng)軟件(MES、APS等)之間的交互能力;通過分析計算實際采集的機床主速、切削力、溫度等實時數(shù)據(jù),在仿真軟件中實現(xiàn)機床孿生模型的加工過程和行為。另外,還需具備對產(chǎn)線資源的控制功能,即利用所構(gòu)建的車間模型,結(jié)合設備生產(chǎn)情況,在數(shù)字孿生模型中實現(xiàn)真實場景下的生產(chǎn)加工過程。
步進電機生產(chǎn)線系統(tǒng)是一種典型的離散事件系統(tǒng),在構(gòu)建車間系統(tǒng)產(chǎn)線數(shù)字孿生模型后,為使孿生模型具有仿真加速可靠性測試評估的能力,采用離散事件系統(tǒng)仿真方法開展測試。根據(jù)模型中的加工流程、工藝要求以及與車間系統(tǒng)軟件的交互事件情況,確定事件到達模型、服務模型和排隊模型等信息,運用離散事件仿真加速方法實現(xiàn)生產(chǎn)線的數(shù)字孿生模型執(zhí)行生產(chǎn)過程的加速效果,縮短可靠性測試評估時間。結(jié)合產(chǎn)線系統(tǒng)特點,擬采用進程交互法[22](PI,Process Interaction)作為離散事件仿真系統(tǒng)的建模方法,通過提升加速系統(tǒng)仿真時鐘運行速度開展仿真測試。
按照進程交互法思想,生產(chǎn)線中各個設備及產(chǎn)品的數(shù)字孿生模型視為離散事件系統(tǒng)仿真中的實體,其中產(chǎn)品為系統(tǒng)中的臨時實體,設備為系統(tǒng)中的永久實體。整個仿真系統(tǒng)的動態(tài)運行過程表現(xiàn)為:隨著系統(tǒng)的執(zhí)行,臨時實體不斷產(chǎn)生和達到,在永久實體的作用下,與系統(tǒng)交互完成全部活動,最終離開系統(tǒng)。進程交互法通過設置和執(zhí)行未來事件表與當前事件表來實現(xiàn)相關(guān)流程。未來事件表包括將來某個時刻發(fā)生事件的記錄,現(xiàn)階段被推遲但下次執(zhí)行時間已確定的事件的記錄也在其中,每一個記錄包括當前位置、下一個位置、優(yōu)先權(quán)標志等信息;當前事件表是指執(zhí)行時間在當前仿真時刻內(nèi)的事件記錄,包括前期被推遲但執(zhí)行時間在此刻的事件記錄。進程交互法流程如圖2所示。
圖2 進程交互法流程圖
采用離散事件進程交互法開展數(shù)字孿生模型仿真測試時,通過初始化各參數(shù),掃描孿生模型中未來事件表的事件記錄,取出滿足條件的事件加入當前事件表,推進仿真時鐘。按照擬定規(guī)則,逐項掃描孿生模型中的當前事件表。通過判斷當前事件所屬進程以及在進程中的位置信息等,盡可能的向前推進該事件,直到不滿足繼續(xù)執(zhí)行的條件為止。然后對當前事件表的下一個事件進行同樣操作。在推進事件的執(zhí)行過程中,對被延遲執(zhí)行的事件的位置做好記錄,并指出后續(xù)可能被激活的時間。當事件執(zhí)行完畢,則在當前事件表中刪除相關(guān)信息。掃描完當前事件表中所有事件后,返回到未來事件表中,重新推進仿真時鐘,進行下一輪操作。對車間仿真系統(tǒng)而言,一旦執(zhí)行某加工流程,只要滿足其相應條件,就要實現(xiàn)所有永久實體與臨時實體的交互,孿生模型才能反映物理車間的真實場景。同時,在推進仿真時鐘的過程中,要盡可能的做到車間系統(tǒng)軟件與車間虛擬設備的真實交互,時鐘推進間隔的選取直接影響仿真的逼真程度
智能車間系統(tǒng)軟件的可靠性直接關(guān)系到車間生產(chǎn)產(chǎn)品的質(zhì)量和效率,同時也影響車間管理的成本控制和排產(chǎn)計劃,因此在系統(tǒng)投產(chǎn)時,需加強對系統(tǒng)軟件的可靠性測試驗證。運用產(chǎn)線數(shù)字孿生模型開展系統(tǒng)軟件仿真加速測試,待測系統(tǒng)軟件直接與產(chǎn)線孿生模型按照實際業(yè)務流程進行數(shù)據(jù)交互。生產(chǎn)線的數(shù)字孿生模型包含生產(chǎn)相關(guān)的事件隊列,記錄事件發(fā)生順序及事件的執(zhí)行時間。仿真加速測試時根據(jù)事件隊列與當前仿真時間設置未來事件表與當前事件表。為準確計算總測試時間,仿真加速測試采用固定步長時間推進機制方式進行仿真時鐘加速。以200倍加速為例,即在現(xiàn)實中每隔5毫秒,仿真時鐘便推進1秒,以此推動事件隊列的加快執(zhí)行。待測系統(tǒng)軟件與部分數(shù)字孿生模型及其事件的交互流程,如圖3所示。
圖3 智能車間系統(tǒng)軟件仿真加速測試示意圖
從以上示意圖可以看出,智能車間系統(tǒng)軟件仿真加速測試主要實現(xiàn)系統(tǒng)軟件在車間層的執(zhí)行速度。待測系統(tǒng)軟件根據(jù)實際業(yè)務流程與數(shù)字孿生模型進行數(shù)據(jù)交互。通過加速離散事件仿真系統(tǒng)中的車間層虛擬事件,加快孿生設備執(zhí)行與響應速度,縮短軟件系統(tǒng)因等待生產(chǎn)線設備響應執(zhí)行的時間,提高軟件系統(tǒng)與孿生設備交互通信頻率。在測試過程中,通過縮短孿生系統(tǒng)中每個業(yè)務流程的完成時間,最終實現(xiàn)縮短系統(tǒng)軟件的可靠性評估驗證時間。
采用數(shù)字孿生技術(shù)開展智能車間系統(tǒng)軟件仿真加速測試,在選取測試用例時,考慮產(chǎn)線需涵蓋大部分工業(yè)軟件及流水線的業(yè)務流程,使測試結(jié)果更具普遍性和通用性,因此,選用典型的步進電機加工裝配生產(chǎn)過程作為車間系統(tǒng)生產(chǎn)線開展測試驗證。該車間生產(chǎn)線包括出庫、AGV輸送、加工、裝配、檢測、包裝等常見生產(chǎn)流程,同時,車間系統(tǒng)軟件涵蓋了目前智能車間中常見的功能如柔性生產(chǎn)、工藝修改、生產(chǎn)排程、倉庫管理等,保證了該測試過程及結(jié)果具有一定的參考意義。
基于windows系統(tǒng),采用Demo3D軟件構(gòu)建步進電機生產(chǎn)線數(shù)字孿生模型。
4.1.1 構(gòu)建生產(chǎn)設備的三維模型
根據(jù)步進電機車間生產(chǎn)線生產(chǎn)加工特點,結(jié)合關(guān)鍵設備的物理結(jié)構(gòu),構(gòu)建相關(guān)設備的三維模型。三維模型應滿足其大小、位置、形狀等與實際設備比例相同,動作邏輯與生產(chǎn)線設備保持一致。步進電機車間生產(chǎn)線的部分設備物理模型及其對應三維模型如表1所示。
4.1.2 確定設備接口及通信協(xié)議
根據(jù)設備用戶手冊或說明文檔,確定實際生產(chǎn)線中設備與所用軟件間的通信協(xié)議、API接口、通信地址,并在模型中設置相同的協(xié)議和地址,部分通信地址及協(xié)議如圖4所示。
圖4 數(shù)字孿生模型與SCADA系統(tǒng)的通信地址及協(xié)議
表1 步進電機生產(chǎn)線主要設備三維模型
4.1.3 確定通信數(shù)據(jù)
結(jié)合系統(tǒng)軟件開發(fā)需求,確定生產(chǎn)線設備在運行時與車間系統(tǒng)軟件或車間其他生產(chǎn)線設備通信的具體數(shù)據(jù)內(nèi)容。在步進電機產(chǎn)線孿生模型中,車間系統(tǒng)軟件與數(shù)字孿生模型間的交互數(shù)據(jù)經(jīng)過SCADA系統(tǒng)下發(fā)和上傳。在SCADA系統(tǒng)和數(shù)字孿生模型中,定義的部分數(shù)字孿生設備的數(shù)據(jù)類型變量和模型模擬變量如圖5和圖6所示。
圖5 數(shù)字孿生模型變量
圖6 SCADA變量
4.1.4 確定生產(chǎn)線事件及隊列順序
根據(jù)步進電機產(chǎn)線生產(chǎn)流程,確定生產(chǎn)過程中的下單、備料、出庫、加工等主要事件,并確定這些事件在生產(chǎn)過程中的先后順序、到達時間及事件發(fā)生邏輯等信息。圖7為產(chǎn)品加工裝配流程圖。根據(jù)流程圖確定事件的發(fā)生順序,同時,將事件相關(guān)信息記錄到進程交互法的未來事件表與當前事件表中。
圖7 步進電機加工裝配流程
4.1.5 確定事件與數(shù)字孿生模型之間的聯(lián)系
生產(chǎn)線設備的數(shù)字孿生模型為事件發(fā)生的載體。根據(jù)產(chǎn)線生產(chǎn)過程,確定每個事件發(fā)生的載體,同一個事件可能有多個載體,同一個載體也可能會產(chǎn)生多個事件。圖8為步進電機產(chǎn)線數(shù)字孿生與相關(guān)事件的聯(lián)系圖。
圖8 步進電機產(chǎn)線數(shù)字孿生模型與事件的關(guān)系
最終構(gòu)建的步進電機產(chǎn)線數(shù)字孿生模型,如圖9所示。
圖9 步進電機產(chǎn)線數(shù)字孿生模型
在構(gòu)建的步進電機產(chǎn)線數(shù)字孿生模型上運行車間系統(tǒng)管理軟件,采用仿真加速測試方法,縮短系統(tǒng)軟件可靠性評估時間。經(jīng)過多次試驗測試,因受限于仿真服務器的硬件性能,系統(tǒng)軟件在步進電機數(shù)字孿生產(chǎn)線模型中的加速運行速度最大維持在200倍運行。各倍速下每5分鐘內(nèi)系統(tǒng)軟件與生產(chǎn)線通訊次數(shù)情況如圖10所示。不同倍速下的車間系統(tǒng)軟件所在服務器的系統(tǒng)內(nèi)存占用情況如圖11所示。
圖10 不同倍數(shù)加速測試狀態(tài)下系統(tǒng)與產(chǎn)線通訊次數(shù)
圖11 各倍數(shù)加速測試時系統(tǒng)內(nèi)存占用情況
在不同加速倍數(shù)的車間系統(tǒng)數(shù)字孿生仿真加速測試下,被測系統(tǒng)軟件與生產(chǎn)線的通訊次數(shù)和服務器上的內(nèi)存消耗情況差異明顯??梢钥闯?,在1倍速、20倍速、200倍速下,在相同測試時間內(nèi),隨著加速倍速的提高,運行系統(tǒng)軟件占用的內(nèi)存明顯提升,通訊次數(shù)也顯著增加了。在相同時間內(nèi),提高系統(tǒng)運行速度,相當于加快了系統(tǒng)軟件的老化速度。采用數(shù)字孿生仿真加速方法,可以有效縮短系統(tǒng)軟件可靠性測試時間。同時,通過加速測試,影響軟件可靠性的其他因素如操作系統(tǒng)資源的耗盡、碎片以及錯誤的積累速度也會相應的加快,有助于在較短時間內(nèi)挖掘系統(tǒng)軟件存在的漏洞。
在案例中,假設以現(xiàn)實中的一年為測試周期,設定仿真加速測試的加速倍數(shù)為200倍,則仿真時鐘內(nèi)的一年為現(xiàn)實中的43.8小時。在整個測試過程中,系統(tǒng)軟件因調(diào)度流程中對叉車信號變量處理存在誤差,最終導致叉車在倉庫單元出貨口停止運行。在重啟軟件系統(tǒng)清除數(shù)據(jù)后,軟件正常運行,重啟及清除數(shù)據(jù)所花費的現(xiàn)實時間為24分鐘。則最終該軟件的可靠性指標:MTBF(平均故障間隔時間)與MTTF(平均無故障時間)由下式計算得出:
以上說明采用數(shù)字孿生模型仿真加速驗證車間系統(tǒng)軟件可靠性的方法具有一定的可行性。
智能車間系統(tǒng)軟件的可靠性和開發(fā)軟件的時效性對推動生產(chǎn)制造個性化、智能化、系統(tǒng)化發(fā)展至關(guān)重要。提升軟件可靠性的有效方式是開展測試評估,而開展軟件測試驗證需要耗費大量時間,影響系統(tǒng)上線的時效性,同時,智能車間系統(tǒng)軟件執(zhí)行時需要與生產(chǎn)線設備頻繁交互。為解決以上問題,本文采用基于數(shù)字孿生的仿真加速測試方法對車間系統(tǒng)軟件進行測試驗證。通過構(gòu)建步進電機產(chǎn)線數(shù)字孿生模型,搭建車間系統(tǒng)軟件運行時的高保真環(huán)境,實現(xiàn)物理場景與孿生模型的有效映射,采用離散事件仿真加速方法,縮短系統(tǒng)軟件在生產(chǎn)線的運行時間,提升系統(tǒng)與產(chǎn)線通信頻率,加速系統(tǒng)軟件的老化速度,驗證了采用數(shù)字孿生技術(shù)加速系統(tǒng)軟件可靠性測試的有效性。后續(xù)將進一步結(jié)合數(shù)字孿生技術(shù),針對產(chǎn)線性能提升開展研究,擬通過注入故障信息,開展仿真加速測試,快速準確定位故障位置,實現(xiàn)故障預警等功能。