賈長偉,王曉路,王長慶
(中國運載火箭技術研究院,北京 100076)
虛擬仿真試驗是通過虛擬化手段將真實的試驗設備轉換成數(shù)學模型,模擬真實的試驗場景開展的試驗。通過虛擬仿真試驗能大大節(jié)約人力、物力成本,并且先于試驗設備開展仿真試驗,及時發(fā)現(xiàn)設計不足,改進設備。
經(jīng)過數(shù)年的研究與設計,已經(jīng)積累了大量用于開展虛擬仿真試驗的仿真應用。虛擬仿真試驗包括試驗前的試驗設計、試驗中的運行管控、試驗后的結果分析。通過構建試驗設計樣本完成多種復雜系統(tǒng)試驗工況設計,試驗運行結束后,借助試驗結果評估方法對試驗進行評估分析,輔助用戶做出合理決策。本文設計的面向大型分布式虛擬仿真試驗管控系統(tǒng)正是實現(xiàn)了該功能。
本系統(tǒng)包括試驗設計、仿真調度、試驗結果評估3大功能模塊。其中,試驗設計作為仿真調度和試驗結果評估的輸入,完成整個虛擬仿真試驗的試驗樣本文件設計,通過正交、全因子、拉丁方等試驗設計算法,并可以根據(jù)用戶試驗需求采用自定義試驗設計算法。仿真調度作為分布式虛擬仿真試驗的核心,負責整個虛擬仿真試驗的調度管理,包括試驗運行方案生成、試驗運行過程管控等功能,運行結果作為試驗結果評估模塊的輸入。試驗結果評估收集試驗設計和仿真調度的數(shù)據(jù),通過試驗結果評估算法對試驗數(shù)據(jù)進行預處理、分析評估,最終輔助用戶完成方案決策。系統(tǒng)組成結構如圖1所示。
圖1 系統(tǒng)組成結構圖Fig.1 System composition structure
復雜產(chǎn)品設計過程中,涉及大量的參數(shù)及方案選取。如何選取關鍵參數(shù),如何對已有數(shù)據(jù)進行分析,如何從多個方案中選取最優(yōu)方案是設計人員重點關注的問題,試驗設計是上述問題的公認解決方案。以多學科集成后的模型作為輸入,設計和實現(xiàn)工程上經(jīng)常使用的試驗設計方法,包括中心組合法、拉丁方法、全因子法、正交表、均勻設計法等方法,并將試驗設計方法作為可重用的方法模塊管理起來,使用戶可以根據(jù)不同問題的需要從算法庫中選取特定算法對問題進行實驗。模塊支持試驗設計中設計矩陣的修改、導入、導出等功能,導出及導入的設計矩陣均按照所提供的XML文本格式進行存儲。其內(nèi)容主要包括過程文件、設計矩陣等內(nèi)容。
(1)過程數(shù)據(jù)文件的導出
當用戶打開實驗設計與近似建模模塊時,系統(tǒng)會自動存儲模塊運行中所產(chǎn)生的重要數(shù)據(jù)文件(XML),以供WEB平臺及用戶的后續(xù)驗證使用。過程數(shù)據(jù)文件分為設計矩陣、樣本點、靈敏度分析、近似模型誤差等4大塊。以一個設計變量為2,響應數(shù)為2,樣本數(shù)為3的模型為例,存儲格式示例如下所示:
<=中心組合法()=2=3>
<=000=000>
<=000=100>
<=100=000>
<>
<=中心組合法()=2=2=3>
<=000=000=000=000>
<=000=100=100=100>
<=100=000=100=100>
<>
(2)設計矩陣與樣本點的導入與導出
設計矩陣與樣本點以規(guī)定好的XML格式進行導入與導出操作。
<=2=2=3>
<=000=000=000=000>
<=000=100=100=100>
<=100=000=100=100>
<>
試驗設計的思路如圖2所示。
試驗設計模塊分為變量設計與設計矩陣兩個子模塊。用戶可在變量定義子模塊進行變量的閾值設定,在設計矩陣子模塊中進行變量定義及試驗設計方法選擇,并查看設計矩陣以及對其進行修改、導入、導出等操作。用戶可通過ID號按照接口定義要求,增加自定義的試驗設計算法或刪除已有算法,所有初始設計完成之后,將設計矩陣遞交原模型進行計算,從而得到相應的試驗設計樣本。
試驗設計流程包括以下步驟:
圖2 試驗設計模塊設計思路Fig.2 Experiment design module design ideas
1)在軟件界面選擇通過試驗設計獲取樣本點;
2)拖入設計變量,并確定各變量上下限;
中學教學強調對學生“核心素養(yǎng)”的培養(yǎng),更強調“創(chuàng)新能力、批判思維能力、溝通能力、合作能力以及品格教育和公民意識”的培養(yǎng)。這些能力的獲得一定是通過豐富多彩的教學活動去落實的,不是單靠著教師講、學生聽這種單一的教學方式來傳授的。核心素養(yǎng)的落地必須遵從學生的成長規(guī)律、天性發(fā)展和內(nèi)在需求。當核心素養(yǎng)真正滲入教材、到達課堂、融入教學并成為課堂教學變革的本色時,它就會變得平易近人。如何讓核心素養(yǎng)真實落地,不僅需要頂層的設計,更需要一線教師在實踐層面尋找策略和路徑。
3)選擇合適的試驗設計方法;
4)若所選擇的試驗設計方法支持水平調整,則對設計變量進行水平調整;
5)生成試驗設計矩陣,并最終得到試驗設計樣本。
仿真調度是分布式虛擬仿真試驗的核心子模塊,用于完成整個虛擬仿真試驗的調度管理,完成試驗應用的分發(fā)、部署、運行、過程管控、運行監(jiān)控等功能。仿真調度模塊的輸入是試驗設計樣本文件以及仿真應用,這些文件以獨立文件或壓縮包的形式存儲,并由仿真調度管理服務器分發(fā)到應用節(jié)點上,這是仿真調度模塊的分發(fā)功能。應用節(jié)點的解壓及存儲過程是仿真調度模塊的部署功能。分發(fā)部署完成之后,仿真調度模塊可以完成對整個仿真試驗的運行管理。為了確保試驗的正確性與完整性,試驗結束后可對本次試驗樣本文件及仿真應用進行清除操作。
仿真調度管理主要包括調度方案生成與管理模塊、應用分發(fā)部署模塊、應用運行控制模塊、運行資源監(jiān)控4部分,如圖3所示。
圖3 試驗過程調度與管理交互圖Fig.3 Simulation scenario logic
調度方案生成與管理模塊包括方案生成和方案管理,用戶在分發(fā)方案配置界面可以選擇要分發(fā)的目標客戶端,然后對文件列表中的文件進行目標客戶端的配置,配置方式主要有手動分發(fā)和自動分發(fā)兩種。若選擇手動分發(fā),用戶需對每一個客戶端的分發(fā)文件在界面上進行添加,用戶還需在界面上提供試驗次數(shù)的輸入(試驗次數(shù)的取值范圍為1~100,取默認值1),在用戶選擇“分發(fā)”按鈕時,程序會自動保存一次調度方案,在配置工作完畢后,用戶可以點擊工具欄的“保存”按鈕來保存調度方案到文件中,文件名和保存路徑由用戶指定。若選擇自動分發(fā),用戶在每一次向文件列表中添加倉庫文件或者向分發(fā)方案中添加目標客戶端時,程序都會自動生成調度方案,并實時在界面上進行更新。用戶可以點擊工具欄的“保存”按鈕來保存調度方案到文件中,文件名和保存路徑由用戶指定。在調度方案文件瀏覽樹中可對調度方案進行管理,包括方案的新建、導入、修改、保存、刪除。
應用分發(fā)部署模塊分為應用分發(fā)和應用部署,根據(jù)用戶所選的手動分發(fā)或自動分發(fā),服務器端向各客戶端分發(fā)應用程序??蛻舳嗽诮邮胀暌粋€應用文件后,就創(chuàng)建一個子線程來對該文件進行解壓,文件將被解壓到指定的文件夾下,若解壓完畢,則向服務端反饋“應用部署成功”或“應用部署失敗”信息。在試驗運行完畢后,用戶可以選擇是否對該試驗的所有應用進行清理??蛻舳嗽诮邮盏健扒謇碣Y源”命令后,將收到的應用壓縮包進行刪除,然后向服務器反饋是否清理成功的信息。
試驗運行資源監(jiān)控包括對象靜態(tài)信息收集與發(fā)布、對象動態(tài)信息收集與發(fā)布、程序狀態(tài)信息收集與發(fā)布、計算機節(jié)點性能信息收集與發(fā)布4部分,如圖4所示。
圖4 試驗運行資源監(jiān)控結構圖Fig.4 Test operation resource monitoring structure diagram
對象靜態(tài)信息收集與發(fā)布用于收集試驗域應用的相關模型信息、試驗域的類層次關系。其中模型信息包括名字VIO實例名、所屬應用名、屬性的個數(shù)以及各個屬性的名字、發(fā)布訂閱信息。
對象動態(tài)信息收集與發(fā)布用于收集試驗運行動態(tài)信息并統(tǒng)計,包括試驗運行期間交互的動態(tài)信息:更新/接收更新次數(shù)、更新總數(shù)據(jù)大?。徊捎眯奶鴻C制定時發(fā)布收集的對象動態(tài)信息。
程序狀態(tài)信息收集與發(fā)布用于收集程序狀態(tài)信息,包括域名稱、域內(nèi)的應用情況(包括應用數(shù)量、各應用名稱、應用所在機器的IP、應用句柄、應用運行狀態(tài)(包括正常、暫停和故障)、應用的時間管理參數(shù)(包括regulating、constrained、LBTS、Lookahead、Current Time))。
計算機節(jié)點性能信息收集與發(fā)布用于收集計算節(jié)點的性能信息:機器名、CPU頻率、CPU占有率、內(nèi)存使用率、IP地址、網(wǎng)絡的使用狀況。
試驗結果評估獲取試驗記錄得到的試驗運行結果,從算法庫中提取出試驗結果分析算法對試驗運行結果進行評估,以圖表的形式提供給用戶,并可以將結果分析數(shù)據(jù)導出到Origin或Matlab中,輔助用戶評估出最優(yōu)解決方案,總體框圖如圖5所示。
試驗結果數(shù)據(jù)管理支持從試驗記錄的數(shù)據(jù)庫中提取出試驗運行結果數(shù)據(jù),并自動加載試驗方案文件及實驗設計模塊設計得到的試驗樣本文件,從而提取出試驗的靜態(tài)信息和動態(tài)信息。對提取出的試驗數(shù)據(jù)信息進行試驗數(shù)據(jù)的預處理,預處理包括數(shù)據(jù)篩選、數(shù)據(jù)剔除與增補、規(guī)范化處理、排序等。
圖5 試驗結果評估總體框圖Fig.5 Overall block diagram of test results evaluation
試驗結果數(shù)據(jù)評估方法配置,該模塊為結果評估算法提供可擴展的接口,用戶可根據(jù)系統(tǒng)運行需求自行編寫設計所需的數(shù)據(jù)處理方法(.dll文件),然后對數(shù)據(jù)處理方法進行相應的注冊、編輯、刪除等操作,最終為試驗結果分析提供算法庫。同時,該模塊為Matlab和Origin提供了統(tǒng)一的數(shù)據(jù)訪問接口,可以將試驗分析結果導出到Matlab和Origin中,為用戶提供直觀的分析結果。
試驗結果數(shù)據(jù)評估方法包括試驗數(shù)據(jù)靈敏度分析、試驗數(shù)據(jù)統(tǒng)計分析、試驗數(shù)據(jù)相關性分析。試驗靈敏度分析包括方差分析、極差分析、攝動分析,試驗數(shù)據(jù)統(tǒng)計分析包括最大值、最小值、均值、方差、Pareto分析等,試驗數(shù)據(jù)相關性分析包括單相關系數(shù)、偏相關系數(shù)、復相關系數(shù)、典型的非線性相關分析等。
一種面向大型分布式虛擬仿真試驗的試驗設計與調度管控系統(tǒng),包括試驗設計模塊、仿真調度模塊以及試驗結果評估模塊;試驗設計模塊設計試驗變量,通過多種試驗設計算法得到試驗樣本文件;仿真調度模塊將試驗樣本文件以及仿真應用作為輸入,完成分布式虛擬仿真試驗的分發(fā)、部署、過程管控等功能,提高了試驗運行過程的效率;試驗結果評估模塊在試驗運行結束后得到試驗方案每條試驗樣本對應的試驗數(shù)據(jù),對試驗數(shù)據(jù)進行數(shù)據(jù)預處理,通過試驗結果數(shù)據(jù)評估方法評估試驗結果,并將結果通過圖形化界面直觀顯示給用戶,輔助系統(tǒng)用戶做出合理決策。采用常用工程級試驗設計方法,通過試驗多次運行及結果評估,完成對試驗參數(shù)的影響度分析,實現(xiàn)了復雜產(chǎn)品虛擬仿真試驗評估。