集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程仿真方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及復(fù)雜裝備數(shù)字樣機作業(yè)流程仿真領(lǐng)域和數(shù)據(jù)可視化領(lǐng)域,尤其涉及一種集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程仿真方法。
【背景技術(shù)】
[0002]復(fù)雜裝備的作業(yè)流程復(fù)雜,涉及零部件多,受到復(fù)雜先序、有限資源以及時間節(jié)拍等條件的約束,通過模擬仿真,設(shè)計人員可以直觀地進行作業(yè)流程分析與評價,在設(shè)計早期階段發(fā)現(xiàn)缺陷、驗證合理性。
[0003]產(chǎn)品性能分析是產(chǎn)品開發(fā)過程中的重要步驟,能在設(shè)計階段分析產(chǎn)品的性能情況,給設(shè)計提供指導(dǎo)。產(chǎn)品性能分析過程往往需要使用涉及多個學(xué)科的多種CAE分析軟件,從而產(chǎn)生大量的多源性能分析數(shù)據(jù)。多源性能分析數(shù)據(jù)主要包括:1、一維時變數(shù)據(jù),例如運動學(xué)分析得到的速度值隨時間變化情況,該類數(shù)據(jù)一般用曲線進行可視化;2、標(biāo)量場數(shù)據(jù),此類數(shù)據(jù)記錄有限元模型每個單元節(jié)點上標(biāo)量性能值在關(guān)鍵時間點上的變化情況,例如靜力學(xué)分析得到的應(yīng)力應(yīng)變數(shù)據(jù),一般用動態(tài)云圖進行可視化;3、矢量場數(shù)據(jù),此類數(shù)據(jù)記錄有限元模型每個單元節(jié)點或空間關(guān)鍵位置點上矢量性能值在關(guān)鍵時間點上的變化情況,例如流體力學(xué)分析得到的流量數(shù)據(jù),一般用流場或模型變形進行可視化。
[0004]在作業(yè)流程仿真的基礎(chǔ)上,集成多源性能數(shù)據(jù)可視化,使得裝備的設(shè)計者、制造者能直觀地了解裝備運行過程中關(guān)鍵工況、關(guān)鍵部件的性能情況?;跀?shù)字樣機和數(shù)據(jù)可視化技術(shù),開發(fā)集成多源性能數(shù)據(jù)可視化的數(shù)字樣機作業(yè)流程仿真系統(tǒng)可服務(wù)于不同的用戶群體:
I各級領(lǐng)導(dǎo)者:可視化匯報各階段項目進展,提供真實感決策依據(jù)等;
I裝備設(shè)計者:驗證作業(yè)流程設(shè)計的合理性、發(fā)現(xiàn)缺陷;綜合不同性能的分析結(jié)果,了解裝備整體性能情況等;
I各界用戶:展示、科普和培訓(xùn)復(fù)雜裝備相關(guān)技術(shù)。
[0005]目前將作業(yè)流程建模仿真與多源性能分析數(shù)據(jù)可視化相結(jié)合的工作較少,且存在很大的局限性:諸如Delmia等流程建模軟件不涉及性能分析數(shù)據(jù)的可視化;各類CAE分析軟件只能針對單一自身領(lǐng)域的性能分析數(shù)據(jù)進行可視化,且無法與數(shù)字樣機工作流程相結(jié)合;數(shù)據(jù)后處理軟件(如Ensight)都不支持作業(yè)流程的建模。除此之外,各商業(yè)軟件還存在兩個方面的局限性:1、二次開發(fā)難度高,無法基于這些商業(yè)軟件開發(fā)獨立軟件;2、不同商業(yè)軟件都有固定的三維渲染引擎,建模方法與可視化結(jié)果耦合。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程仿真方法,用于將復(fù)雜裝備的數(shù)字樣機作業(yè)流程建模仿真與多源性能分析數(shù)據(jù)的可視化相結(jié)合,給開發(fā)者提供接口開發(fā)特定仿真任務(wù)所需求的多源性能分析數(shù)據(jù)解析方法、仿真行為。
[0007]集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程仿真方法包括以下步驟: 1.1)定制仿真系統(tǒng)功能:實現(xiàn)與渲染引擎無關(guān)的三維場景控制和數(shù)據(jù)可視化接口 ;重用或定制與特定集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程仿真任務(wù)相關(guān)的仿真對象類型,并使用對象創(chuàng)建的索引方法將類型注冊在仿真系統(tǒng)中;
1.2)編寫仿真腳本:根據(jù)復(fù)雜裝備作業(yè)流程編寫仿真腳本,并將多源性能分析數(shù)據(jù)通過鏈接的形式集成到仿真腳本中;
1.3)仿真腳本與多源性能分析數(shù)據(jù)解析:將仿真腳本和多源性能分析數(shù)據(jù)解析成樹狀仿真數(shù)據(jù);
1.4)層次化的仿真動作對象創(chuàng)建與注冊:使用對象創(chuàng)建的索引方法根據(jù)樹狀仿真數(shù)據(jù)進行仿真動作對象的創(chuàng)建,并根據(jù)觸發(fā)器將仿真動作對象注冊在仿真系統(tǒng)中;
1.5)集成多源性能分析數(shù)據(jù)的作業(yè)流程仿真:根據(jù)觸發(fā)器執(zhí)行仿真動作對象,完成作業(yè)流程仿真,并在流程仿真過程中實現(xiàn)性能分析數(shù)據(jù)同步可視化。
[0008]所述渲染引擎無關(guān)的三維場景控制和數(shù)據(jù)可視化接口包括:
三維場景實體接口,定義在渲染引擎中添加、查找、操作三維場景實體的方法;
三維數(shù)據(jù)可視化接口,定義使用渲染引擎中渲染性能分析數(shù)據(jù)可視化結(jié)果的方法; Widget接口,提供在軟件界面上繪制二維圖形的方法;
所述仿真對象類型包括:
基本數(shù)據(jù)解析器類型:用于將字符串解析成基本類型的數(shù)據(jù);
文件解析器類型:用于將腳本文件和性能分析數(shù)據(jù)文件解析成樹狀仿真數(shù)據(jù);
仿真動作類型:在仿真中完成一項具體功能的單元;
觸發(fā)器類型:用于表征仿真動作執(zhí)行的時機;
性能分析數(shù)據(jù)類型:用于存儲從性能分析數(shù)據(jù)文件中讀取并解析得到的數(shù)據(jù)。
[0009]所述對象創(chuàng)建的索引方法,使用泛型編程和宏隱藏傳統(tǒng)工廠方法模式中的創(chuàng)建工廠角色,其具體步驟包括:
3.1)定義對象創(chuàng)建工廠接口,對象創(chuàng)建工廠接口包括一個創(chuàng)建方法,繼承所述接口,使用類模板實現(xiàn)一個模板化創(chuàng)建工廠類型,模板化創(chuàng)建工廠類型的創(chuàng)建方法構(gòu)造一個模板類型的對象并返回該對象指針;
3.2)使用宏定義仿真對象類型的注冊過程:使用仿真對象類型實例化一個模板化創(chuàng)建工廠對象,將創(chuàng)建工廠對象注冊到創(chuàng)建工廠映射表中,創(chuàng)建工廠映射表是仿真對象類型的索引字符串與創(chuàng)建工廠對象的映射;
3.3)使用宏定義所述仿真對象的創(chuàng)建過程:根據(jù)索引字符串匹配創(chuàng)建工廠對象,調(diào)用創(chuàng)建工廠對象的創(chuàng)建方法創(chuàng)建仿真對象。
[0010]所述仿真腳本與多源性能分析數(shù)據(jù)解析包括以下步驟:
4.1)定義樹狀仿真數(shù)據(jù)存儲集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程建模的數(shù)據(jù),樹狀仿真數(shù)據(jù)的節(jié)點包含四種數(shù)據(jù):
節(jié)點名稱,表明該節(jié)點數(shù)據(jù)適用的對象;
屬性列表,為屬性名稱與類型為字符串的屬性值之間映射的映射表,用以存儲該節(jié)點中值為基本類型的屬性;
子節(jié)點,分為兩種:節(jié)點名稱形如“節(jié)點名稱.子節(jié)點名稱”的子節(jié)點為節(jié)點的復(fù)雜屬性,復(fù)雜屬性是指屬性值具有結(jié)構(gòu)且無法用基本類型數(shù)據(jù)及其數(shù)組表示的屬性,節(jié)點名稱形如“子節(jié)點名稱”的子節(jié)點單純作為子節(jié)點用于其他對象;
節(jié)點值,存儲在數(shù)據(jù)解析過程中生成的無法用字符串表示的值;
4.2)使用Xml文件格式作為集成多源性能分析數(shù)據(jù)的復(fù)雜裝備作業(yè)流程建模的腳本文件格式,并定義特殊Xml標(biāo)記用以鏈接到其他腳本文件和性能分析數(shù)據(jù)文件;
4.3)執(zhí)行文件解析器解析過程,將腳本文件和性能分析數(shù)據(jù)文件解析成樹狀仿真數(shù)據(jù)。
[0011]所述文件解析器解析過程包含如下步驟:
5.1)針對腳本文件和各種擴展名的性能分析數(shù)據(jù)文件開發(fā)或重用對應(yīng)的文件解析器,并將文件解析器注冊在創(chuàng)建工廠映射表中,索引字符串是文件的擴展名;
5.2)解析主腳本文件,遇到特殊Xml標(biāo)記時,根據(jù)鏈接文件的擴展名創(chuàng)建對應(yīng)文件解析器對象進行解析;
5.3) Xml文件解析器將Xml文件解析成與Xml文件結(jié)構(gòu)相同的樹狀仿真數(shù)據(jù);性能分析數(shù)據(jù)文件解析器解析文件生成性能分析數(shù)據(jù)對象,新建樹狀仿真數(shù)據(jù)的節(jié)點,將性能分析數(shù)據(jù)對象作為節(jié)點的節(jié)點值;
5.4)文件解析器遞歸地解析文件,得到若干樹狀仿真數(shù)據(jù),將樹狀仿真數(shù)據(jù)的根節(jié)點添加至上層樹狀仿真數(shù)據(jù)的子節(jié)點中,主腳本文件解析得到的樹狀仿真數(shù)據(jù)的根節(jié)點為所有樹狀仿真數(shù)據(jù)的根節(jié)點。
[0012]仿真動作對象的接口定義包括:
屬性表字段,用于定義仿真動作對象需要的屬性;
觸發(fā)器字段,用于定義仿真動作對象執(zhí)行的時機;
執(zhí)行狀態(tài)字段,用于標(biāo)示仿真動作對象執(zhí)行的狀態(tài),包括未執(zhí)行、正在執(zhí)行、已執(zhí)行次數(shù);
解析方法,根據(jù)屬性表字段解析樹狀仿真數(shù)據(jù);
執(zhí)行方法,執(zhí)行仿真動作對象,修改仿真系統(tǒng)的狀態(tài);
撤銷方法,撤銷仿真動作對象對仿真系統(tǒng)的修改;
所述仿真動作對象包括兩種類型:
基本仿真動作對象:實現(xiàn)仿真系統(tǒng)中某一特定狀態(tài)的轉(zhuǎn)移;
容器仿真動作對象:管理一組仿真動作對象,在執(zhí)行方法中使用自定義的算法調(diào)用被管理的仿真動作對象的執(zhí)行方法。
[0013]所述層次化的仿真動作對象創(chuàng)建與注冊包含如下步驟:
7.1)開發(fā)或重用仿真動作類型、觸發(fā)器類型、基本數(shù)據(jù)解析器類型,并注冊在創(chuàng)建工廠映射表中,索引字符串分別是仿真動作名稱、觸發(fā)器名稱和基本類型名稱;
7.2)遍歷樹狀仿真數(shù)據(jù),根據(jù)樹狀仿真數(shù)據(jù)節(jié)點的節(jié)點名稱創(chuàng)建已注冊的仿真動作類型的對象,并將當(dāng)前節(jié)點提供給仿真動作對象的解析方法,進行仿真動作對象的屬性設(shè)置和層次化解析。
[0014]所述仿真動作對象的解析方法包含如下步驟:
8.1)仿真動作對象實例化屬性表字段,屬性表包括若干行,每行包含五種數(shù)據(jù):屬性名稱、數(shù)據(jù)類型名稱、默認(rèn)值、基本類型標(biāo)識、屬性描述;
8.2)遍歷屬性表的每一行,檢查“基本類型標(biāo)識”,如果為真,則查找樹狀仿真數(shù)據(jù)節(jié)點的屬性列表中同名的屬性字符串,根據(jù)“數(shù)據(jù)類型名稱”創(chuàng)建已注冊的基本數(shù)據(jù)解析器對象,使用基本數(shù)據(jù)解析器對象解析屬性字符串得到屬性值,若未查找到同名的屬性字符串則解析“默認(rèn)值”;如果為假,則查找樹狀仿真數(shù)據(jù)節(jié)點中標(biāo)記為復(fù)雜屬性的同名子節(jié)點,將該子節(jié)點作為屬性值;
8.3)將“基本類型標(biāo)識”為真的屬性值賦值給仿真動作對象對應(yīng)的字段,調(diào)用仿真動作對象的自定義解析方法解析“基本類型標(biāo)識”為假的屬性值;
8.4)容器仿真動作對象的自定義解析方法將“基本類型標(biāo)識”為假的屬性值作為樹狀仿真數(shù)據(jù)執(zhí)行層次化的仿真動作對象創(chuàng)建過程,并將創(chuàng)建得到的仿真動作對象注冊在自身的容器里;
8.5)仿真動作對象的觸發(fā)器是一種特殊且“基本類型標(biāo)識”為假的屬性值,根據(jù)屬性值中樹狀仿真數(shù)據(jù)的節(jié)點名稱創(chuàng)建已注冊的觸發(fā)器對象,并賦值給仿真動作對象的觸發(fā)器