蔣 濤,唐 兆,張 濤,凌 亮
(西南交通大學(xué)牽引動(dòng)力國家重點(diǎn)實(shí)驗(yàn)室,四川 成都 610031)
目前在我國鐵道車輛仿真和建模領(lǐng)域廣泛使用的多體動(dòng)力學(xué)仿真軟件主要包括德國的 Simpack、俄羅斯的 Universal Mechanism、美國的 Adams、英國的 Vampire 等。這些商業(yè)軟件往往采用閉源策略或者僅提供有限的擴(kuò)展能力,難以針對特定問題進(jìn)行定制化的算法集成。此外,在當(dāng)前的國際形勢下,潛在的許可證問題進(jìn)一步突出,自主可控的鐵道車輛動(dòng)力學(xué)軟件開發(fā)勢在必行。
國內(nèi)的一些研究機(jī)構(gòu)一直在致力于開發(fā)自主可控的,或者針對特定研究方向的多體動(dòng)力學(xué)仿真軟件。如西南交通大學(xué)針對車輛-軌道的耦合作用先后開發(fā)了仿真軟件 VICT[1]和 TTISIM[2],針對磨耗型踏面的輪軌接觸關(guān)系開發(fā)了軟件 TPLWRSim[3]。大連交通大學(xué)為了研究列車的空氣制動(dòng)及縱向動(dòng)力學(xué)開發(fā)了集成仿真軟件[4]。這些軟件往往把開發(fā)的重心放在算法求解上,在前后處理上只實(shí)現(xiàn)基礎(chǔ)的功能;在架構(gòu)上也會選擇最為簡單的單體架構(gòu),即將算法和數(shù)據(jù)模型的前后處理耦合在一起。這種 on-the-fly 的開發(fā)模式雖然具有較高的靈活性和可控性,但是任何代碼的變動(dòng)都需要重新編譯整個(gè)程序,開發(fā)效率低,代碼重用度不高[5]。因此,這些仿真軟件雖然具有商業(yè)推廣的價(jià)值,但是由于用戶交互體驗(yàn)不佳,功能單一,通常只在機(jī)構(gòu)內(nèi)部使用。
近年來,隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,越來越多的計(jì)算服務(wù)被遷移到云端,再借助 Web 技術(shù)輻射到多種終端平臺,“云計(jì)算”成為信息領(lǐng)域研究的熱點(diǎn)[6]。本文在分析云仿真[7]的概念和應(yīng)用現(xiàn)狀的基礎(chǔ)上,提出將云仿真應(yīng)用到鐵道車輛系統(tǒng)動(dòng)力學(xué)仿真中,首先介紹了系統(tǒng)的總體架構(gòu)設(shè)計(jì),接著描述了應(yīng)用中的實(shí)際問題與關(guān)鍵技術(shù)實(shí)現(xiàn),最后以某動(dòng)車組的動(dòng)力學(xué)仿真為例,闡釋了系統(tǒng)的操作邏輯和數(shù)據(jù)流向,驗(yàn)證了可行性。
云仿真是一種構(gòu)建于網(wǎng)絡(luò)之上,通過云計(jì)算平臺,按照用戶需求組織網(wǎng)上仿真資源并為用戶提供各類仿真服務(wù)的一種新的仿真方法,由李伯虎院士于 2009 年首次提出并給出典型應(yīng)用示范系統(tǒng)[7]。云仿真向上可以追溯到以實(shí)現(xiàn)模型互聯(lián)為主要目標(biāo)的分布交互式仿真[8]和以仿真資源共享來完成仿真的基于 Web 的仿真[9,10],并最終形成以實(shí)現(xiàn)通過網(wǎng)絡(luò)隨時(shí)隨地?zé)o障礙地獲取所需建模仿真服務(wù)為目標(biāo)的云仿真[11]。
目前,云仿真在國內(nèi)外催生了大量的仿真應(yīng)用實(shí)例。2015 年,Ansys 推出 Ansys Cloud 云仿真服務(wù),充分證明了云仿真的可行性,也體現(xiàn)了巨大的應(yīng)用前景。Shekhar[12]提出為資源有限的個(gè)人或組織提供分布式計(jì)算密集型仿真服務(wù)的云仿真平臺 SiMaaS。周利敏[13]基于虛擬化技術(shù)提出一種實(shí)現(xiàn)了高可用的云仿真平臺框架。何越[14]充分利用云計(jì)算平臺彈性資源調(diào)度、運(yùn)維敏捷的優(yōu)點(diǎn)搭建了 TMSR 云仿真平臺,并應(yīng)用到核能仿真系統(tǒng)中,解決了原有系統(tǒng)資源利用率低,部署和擴(kuò)展困難的問題。曾佑偉[15]將原本只支持 CS 架構(gòu)的 SiROS 仿真軟件遷移到云平臺,在保證結(jié)果準(zhǔn)確可靠的前提下,支持了多用戶并行仿真等功能。
在鐵道車輛動(dòng)力學(xué)仿真領(lǐng)域,幾乎沒有應(yīng)用云仿真的案例,研究人員常用的仿真工具仍然以商業(yè)多體動(dòng)力學(xué)軟件和自主研發(fā)的動(dòng)力學(xué)軟件為主。一方面商業(yè)軟件核心算法不開放,許可證問題嚴(yán)峻,另一方面自主研發(fā)的軟件擴(kuò)展性不強(qiáng),用戶交互體驗(yàn)不佳,難以推廣使用?;诖?本文提出利用云仿真的優(yōu)勢降低模型等仿真資源的管理維護(hù)成本,規(guī)范和模塊化仿真的前后處理流程,為自主可控的求解算法研究提供便利的應(yīng)用和推廣環(huán)境。
一個(gè)完整的仿真流程總體上可以分為前處理,求解計(jì)算和后處理三個(gè)步驟。根據(jù)研究目的的不同,用戶首先通過 GUI 界面建立相應(yīng)的仿真模型,具體包括研究對象的物理參數(shù)輸入,研究對象之間約束條件的建立,以及必要的模型交互和編輯;接著,軟件內(nèi)部將用戶的參數(shù)輸入以及必要的求解器設(shè)置參數(shù)整合成配置文件的形式,傳輸給核心的求解器進(jìn)行計(jì)算;最終,求解器輸出結(jié)果文件,再由相應(yīng)的后處理程序?qū)Y(jié)果進(jìn)行可視化展示。以此為理論基礎(chǔ),本系統(tǒng)采用“縱向分層,橫向切面”的總體策略,建立了如圖1 所示的系統(tǒng)架構(gòu)。
圖1 系統(tǒng)架構(gòu)圖
計(jì)算層:從求解器中抽象出參數(shù)解析,數(shù)據(jù)校驗(yàn),求解計(jì)算和結(jié)果輸出四個(gè)接口,為實(shí)現(xiàn)接口的任何求解算法提供快速集成與無縫升級能力;建立求解器實(shí)例池,以負(fù)載均衡網(wǎng)絡(luò)統(tǒng)一調(diào)度求解實(shí)例;通過結(jié)果輸出接口的數(shù)據(jù)源向數(shù)據(jù)平面提供實(shí)時(shí)計(jì)算數(shù)據(jù)。
邏輯層:整合資源平面的各類資源為應(yīng)用層提供多種仿真資源的管理服務(wù);調(diào)用計(jì)算層的相應(yīng)接口為應(yīng)用層提供邏輯獨(dú)立的計(jì)算服務(wù);處理應(yīng)用層及計(jì)算層的數(shù)據(jù),向資源平面持久化存儲;監(jiān)聽數(shù)據(jù)平面的結(jié)果數(shù)據(jù)為整個(gè)系統(tǒng)提供狀態(tài)監(jiān)控功能;統(tǒng)合各層之間的網(wǎng)絡(luò)通信數(shù)據(jù),為整個(gè)系統(tǒng)提供登錄授權(quán),日志記錄等安全服務(wù)。
應(yīng)用層:注入邏輯層的安全機(jī)制,為管理人員提供用戶管理等服務(wù);監(jiān)聽交互層的交互事件,聚合邏輯層的操作邏輯,從前后處理兩個(gè)維度提供服務(wù);監(jiān)聽數(shù)據(jù)平面的結(jié)果數(shù)據(jù),驅(qū)動(dòng)場景渲染,提供可視化服務(wù)。
交互層:構(gòu)建良好的用戶交互體驗(yàn),建立用戶與邏輯層之間的連接。移動(dòng)終端整合前處理能力,滿足用戶隨時(shí)隨地訪問仿真資源,發(fā)起計(jì)算請求的需求;數(shù)據(jù)大屏整合后處理能力,提供功能強(qiáng)大的場景渲染,結(jié)果可視化服務(wù);桌面終端整合前后處理服務(wù),為用戶提供全面的仿真服務(wù)。
文件版本兼容性,跨設(shè)備、跨用戶的仿真項(xiàng)目共享,跨項(xiàng)目的模型復(fù)用是使用桌面端仿真軟件的痛點(diǎn),基于元數(shù)據(jù)的仿真資源組合技術(shù)能夠有效解決以上痛點(diǎn),是隨時(shí)隨地?zé)o障礙地訪問仿真項(xiàng)目以及快速高效地共享仿真項(xiàng)目的關(guān)鍵技術(shù),其核心是中心化的數(shù)據(jù)存儲以及基于元數(shù)據(jù)的資源標(biāo)識。
中心化的資源存儲以數(shù)據(jù)庫為主要的參數(shù)資源存儲,以文件系統(tǒng)為主要的模型資源存儲,將項(xiàng)目數(shù)據(jù)上云,由邏輯層提供統(tǒng)一的管理接口,響應(yīng)多用戶、多設(shè)備終端的資源請求,有效解決了文件版本兼容性,跨設(shè)備、跨用戶的仿真項(xiàng)目共享問題。
基于元數(shù)據(jù)的資源標(biāo)識為所有項(xiàng)目參數(shù)資源及模型資源建立一組唯一的資源標(biāo)識符或元數(shù)據(jù)標(biāo)簽,在交互層以元數(shù)據(jù)為參數(shù)向邏輯層請求具體的數(shù)據(jù),并將頁面元素與相應(yīng)的資源數(shù)據(jù)綁定,用戶對頁面元素的改動(dòng)等價(jià)于在資源平面中對相應(yīng)資源的改動(dòng),有效解決了跨項(xiàng)目的模型復(fù)用問題,同時(shí)大大降低了首次請求仿真項(xiàng)目時(shí)的資源請求量。
求解器是一個(gè)仿真軟件的核心,也是軟件邏輯中相對獨(dú)立的存在,其“輸入——求解——輸出”的簡單邏輯決定了求解器良好的復(fù)用性和可替換性。然而,在現(xiàn)有的仿真軟件中,求解器通常和前處理程序深度耦合,因此難以并行運(yùn)行多個(gè)求解任務(wù),也無法快速提供對新算法的有效支持。林忠偉提出以 plug-in-play 模式[5]實(shí)現(xiàn)了求解器獨(dú)立于主程序更新,但仍然沒有解決多任務(wù)求解的問題,且每次更新算法程序需要用戶側(cè)的操作。
本系統(tǒng)遵循 plugable 的理念,以網(wǎng)絡(luò)通信代替進(jìn)程通信解決求解器與主程序耦合的問題,采用抽象功能接口的方式實(shí)現(xiàn)新算法快速、用戶無感知的集成能力。在實(shí)現(xiàn)上,首先基于 Web Service 技術(shù)將任何符合標(biāo)準(zhǔn)接口的求解器封裝為提供參數(shù)解析,數(shù)據(jù)校驗(yàn),求解計(jì)算和結(jié)果輸出四個(gè)功能的服務(wù);接著基于 Docker 的容器化技術(shù)將求解器打包進(jìn)獨(dú)立的運(yùn)行環(huán)境,基于 Kubernetes 的容器編排技術(shù)創(chuàng)建求解器的運(yùn)行實(shí)例池,通過負(fù)載均衡算法動(dòng)態(tài)調(diào)用實(shí)例;最后,通過暴露服務(wù)的形式對外提供統(tǒng)一的求解支持。通過此方法,邏輯層只需要調(diào)用對應(yīng)的接口,而不用關(guān)心內(nèi)部實(shí)現(xiàn)的邏輯與具體運(yùn)行的求解實(shí)例,有效解決了多任務(wù)求解和新算法的支持問題。
盡管 Web 技術(shù)具有良好的用戶交互體驗(yàn)及跨平臺終端一致性,但是囿于本身的性能限制,瀏覽器在處理復(fù)雜的,實(shí)時(shí)的場景渲染時(shí)會存在較為嚴(yán)重的卡頓,延遲現(xiàn)象[16]。
本系統(tǒng)采用基于 Unity Web 的渲染方式,即在 Unity 中編寫邏輯,通過仿真結(jié)果數(shù)據(jù)驅(qū)動(dòng)場景渲染,再通過發(fā)布為 Web 終端的方式部署到網(wǎng)頁端實(shí)現(xiàn)可視化展示。在實(shí)際的應(yīng)用過程中,存在嚴(yán)重的性能問題,具體表現(xiàn)為首次加載大模型時(shí)可觀的加載延遲,數(shù)據(jù)更新過程中較大的網(wǎng)絡(luò)延遲,執(zhí)行場景交互時(shí)明顯的失幀等。
為了解決上述問題,引入基于 Render Streaming 的云渲染技術(shù),即在之前方案的基礎(chǔ)上,通過在服務(wù)器端進(jìn)行復(fù)雜的場景預(yù)渲染,通過視頻流的形式將數(shù)據(jù)分發(fā)到客戶端,通過建立的網(wǎng)絡(luò)通信管道響應(yīng)客戶端的交互事件。針對該方案引入的交互響應(yīng)延遲問題,適當(dāng)引入緩存技術(shù),提高服務(wù)器端的帶寬流量可以有效解決。
以某型號動(dòng)車組車輛的動(dòng)力學(xué)仿真研究為基礎(chǔ),橫向擴(kuò)展項(xiàng)目仿真資源,縱向增加資源管理,場景渲染等系統(tǒng)功能,將其與 Simpack 仿真軟件進(jìn)行對比,驗(yàn)證系統(tǒng)的可用性。
我國的高速鐵路網(wǎng)八縱八橫,軌道上運(yùn)行的鐵路車輛也多種多樣,在每一個(gè)仿真項(xiàng)目中都為同樣的動(dòng)車組車輛或軌道線路建模則產(chǎn)生大量的重復(fù)勞動(dòng),效率低下。以仿真項(xiàng)目為聚合根資源,通過元數(shù)據(jù)標(biāo)識符引用的方式聚合車輛資源,軌道資源,運(yùn)行工況資源,仿真結(jié)果資源,場景渲染資源等。更進(jìn)一步地,以車輛為聚合根資源,聚合編組參數(shù),輪對資源,轉(zhuǎn)向架資源,減振器資源等,最終形成以仿真項(xiàng)目為聚合根,逐級聚合的完整的仿真項(xiàng)目描述。通過傳遞具體仿真項(xiàng)目唯一元數(shù)據(jù)標(biāo)識符的形式實(shí)現(xiàn)跨設(shè)備,跨用戶的仿真項(xiàng)目共享。
針對跨項(xiàng)目的模型復(fù)用問題,引入資源模板功能,如圖2 所示。資源模板功能從引用和克隆兩個(gè)維度解決實(shí)際問題。引用模板功能在新的仿真項(xiàng)目中引用現(xiàn)有仿真資源的唯一標(biāo)識,解決相同車輛類型在不同軌道線路、不同工況下運(yùn)行的仿真問題。克隆模板功能在新的仿真項(xiàng)目中獲取現(xiàn)有仿真資源全部數(shù)據(jù)并生成新的仿真資源,允許用戶針對個(gè)別參數(shù)進(jìn)行定制化更新,滿足了復(fù)用 CR400BF 車輛資源的數(shù)據(jù)生成 CR400BF-BZ 車輛資源的需求。
圖2 車輛設(shè)置頁面
本系統(tǒng)的后處理平臺實(shí)現(xiàn)了兩種模擬運(yùn)行功能:對于運(yùn)行中的求解過程實(shí)時(shí)仿真運(yùn)行結(jié)果,對于運(yùn)行完成的求解過程回放仿真運(yùn)行模擬。其交互流程如圖3 所示,在初始化階段根據(jù)求解過程標(biāo)識符向服務(wù)器請求求解過程的狀態(tài),對于仍在運(yùn)行中的求解過程,監(jiān)聽數(shù)據(jù)分發(fā)服務(wù)器以獲取最新的實(shí)時(shí)仿真結(jié)果進(jìn)行渲染;對于已經(jīng)完成的求解過程,直接通過邏輯層服務(wù)獲取存儲的仿真結(jié)果進(jìn)行渲染。
圖3 結(jié)果渲染流程示意圖
前處理流程以項(xiàng)目列表為起點(diǎn),支持仿真項(xiàng)目的新建,刪除,編輯,導(dǎo)入,導(dǎo)出等功能。每一個(gè)仿真項(xiàng)目中支持車輛、軌道、輪軌接觸參數(shù)、運(yùn)行參數(shù)等設(shè)置頁面,以圖4 所示的軌道參數(shù)設(shè)置頁面為例,任意編輯左側(cè)參數(shù)設(shè)置欄,右側(cè)軌道預(yù)覽欄也會實(shí)時(shí)更新,方便用戶直觀地查看數(shù)據(jù)的正確性與合理性。前處理流程的終點(diǎn)為系統(tǒng)參數(shù)自檢頁面,在此頁面終端設(shè)備自動(dòng)將所有項(xiàng)目相關(guān)資源數(shù)據(jù)上傳到服務(wù)器,服務(wù)器進(jìn)行參數(shù)校驗(yàn),資源存儲并返回結(jié)果。
圖4 軌道參數(shù)設(shè)置頁面
后處理流程以實(shí)時(shí)模擬運(yùn)行為主,一個(gè)典型的實(shí)時(shí)模擬運(yùn)行頁面如圖5 所示。其中,區(qū)域 1、2 提供仿真過程的控制能力,用戶通過區(qū)域 2 的拖拽式滑塊可以快速定位當(dāng)前場景渲染的時(shí)間,實(shí)現(xiàn)結(jié)果回放功能。區(qū)域 3、4、5 以及中心區(qū)域提供場景的必要信息以及切換能力,用戶可以通過區(qū)域 3 下拉列表切換場景中心區(qū)域渲染的內(nèi)容,區(qū)域 4 提供了當(dāng)前軌道的線路預(yù)覽以及運(yùn)行車輛的實(shí)時(shí)位置,區(qū)域 5 提供了車輛的整體預(yù)覽以及當(dāng)前編組的信息。區(qū)域 6、7、8 提供核心的數(shù)據(jù)展示能力,用戶通過區(qū)域 6 選擇按鈕切換區(qū)域 7、8 的顯示與隱藏,通過區(qū)域 7 控制折線圖要展示的具體數(shù)據(jù),通過區(qū)域 8 展示實(shí)時(shí)數(shù)據(jù)。
圖5 實(shí)時(shí)運(yùn)行模擬頁面
將本系統(tǒng)與鐵道車輛動(dòng)力學(xué)仿真研究中常用的 Simpack 仿真軟件進(jìn)行對比,具體對比項(xiàng)目與對比結(jié)果如表1所示。結(jié)果表明:本系統(tǒng)在多人協(xié)作,使用效率,用戶交互等方面具有明顯優(yōu)勢,在數(shù)據(jù)分析方面存在較大改善空間。總體上,本系統(tǒng)能夠在一定程度上代替?zhèn)鹘y(tǒng)桌面端仿真軟件,在自主可控的仿真計(jì)算算法的研發(fā),應(yīng)用與推廣方面能夠起到一定的推進(jìn)作用。
表1 Simpack與本系統(tǒng)使用對比
本文提出一套可用于鐵道車輛動(dòng)力學(xué)仿真的云仿真系統(tǒng),描述其系統(tǒng)架構(gòu),闡明系統(tǒng)開發(fā)中遇到的關(guān)鍵問題與技術(shù)解決方案,為同類軟件系統(tǒng)的開發(fā)提供參考思路,具有一定借鑒意義。通過具體的仿真過程驗(yàn)證關(guān)鍵技術(shù)的可實(shí)現(xiàn)性,系統(tǒng)的可操作性,具有實(shí)際的應(yīng)用推廣價(jià)值。系統(tǒng)相較于傳統(tǒng)桌面端仿真軟件解決了多個(gè)痛點(diǎn),通過可插拔技術(shù)將求解器與前后處理流程完全解耦,具有良好的通用性與擴(kuò)展性,可以快速遷移到鐵路車輛動(dòng)力學(xué)仿真領(lǐng)域的其它研究中。
系統(tǒng)的下一步工作包括:
1)增強(qiáng)系統(tǒng)的后處理能力,除了提供仿真結(jié)果的場景渲染和可交互展示,增加自動(dòng)化的數(shù)據(jù)分析、報(bào)表生成、結(jié)果對比等功能。
2)增加求解器算法的種類,更新負(fù)載均衡算法實(shí)現(xiàn)自主的算法選擇功能,開發(fā)實(shí)現(xiàn)多種算法結(jié)果的對比分析功能。