Rivian使用MATLAB和MATLAB Parallel Server擴展整車仿真
使用MATLAB和Simulink設(shè)計和構(gòu)建Rivian車輛仿真界面平臺幫助我們實現(xiàn)了關(guān)鍵目標。我們?yōu)楣こ處熀头枪こ處焺?chuàng)建了統(tǒng)一平臺,用于運行整車仿真、后處理結(jié)果和創(chuàng)建報告。
整個汽車行業(yè)的工程師越來越依賴仿真來評估操控性能、加速性能、續(xù)航里程和其他關(guān)鍵性能指標。與物理測試相比,通過仿真來評估車輛性能速度更快,成本也更低。整車仿真還有助于設(shè)計工作在原型硬件可用之前在開發(fā)過程中盡早進行。然而,隨著車輛仿真的成本和效率優(yōu)勢在組織內(nèi)日趨明顯,仿真需求的增加使得車輛仿真面臨一系列挑戰(zhàn)。
考慮到與商業(yè)仿真軟件對接和運行整車仿真所帶來的復雜性,需要擁有一支專門的仿真工程師團隊,他們具備必要的專業(yè)知識。然而,該團隊可能很快會因各利益相關(guān)者的要求而不堪重負,這些利益相關(guān)者包括屬性工程師、性能工程師、動力學工程師、續(xù)航里程和效率工程師以及高級管理人員。簡單地執(zhí)行這些團隊要求的多個仿真也可能成為瓶頸,特別是當這些仿真連續(xù)地在商業(yè)軟件上運行時更是如此。最后,由于缺乏標準化的車輛數(shù)據(jù),加上對仿真結(jié)果的臨時后處理,這使得工程師爭相獲取黃金源數(shù)據(jù)和采用獲準的方法來報告結(jié)果,從而加劇了這些困難。
在Rivian,我們的團隊開發(fā)了可擴展、易于使用的平臺,用于配置、運行和后處理大量整車仿真。此車輛仿真界面(VSI)平臺是使用MATLAB®和Simulink®開發(fā)的,有助于減少冗余,提高復用性,并通過并行處理提高仿真吞吐量。借助使用App設(shè)計工具構(gòu)建的直觀用戶界面,該平臺還讓整個公司的工程團隊都能輕松實現(xiàn)仿真,從而消除了仿真請求瓶頸(圖1)。
圖1. VSI用戶界面
本文介紹我們?nèi)绾问褂妹嫦驅(qū)ο蟮脑瓌t設(shè)計VSI,如何利用它來使仿真更平等普及,以及如何使用并行處理來擴展仿真工作量。
VSI的面向?qū)ο蟮脑O(shè)計
當我們開始設(shè)計VSI平臺時,面向?qū)ο蟮姆椒@然是實現(xiàn)靈活性、可擴展性和復用性等目標的最直接方法。我們首先明確定義了幾個基本對象:Vehicle、Load Case和Simulation。在這種情形下,Vehicle對象用于表示Rivian車輛,例如Rivian R1T、Rivian R1S或Rivian EDV(我們的電動貨車)。此對象還表示車輛的配置,用于定義特定的電池組、動力總成系統(tǒng)、輪胎、前后驅(qū)動裝置和其他組件。Load Case對象用于定義仿真場景,包括速度曲線、環(huán)境條件和駕駛工況。而VSI Simulation對象只是Vehicle實例與特定Load Case的組合(圖2)。
圖2. VSI仿真包括特定車輛配置和預定義的測試場景
從編程的角度來看,可將Simulation的概念視為構(gòu)成VSI平臺基礎(chǔ)框架的超類。此超類的屬性包括可以通過用戶界面選擇的車輛配置和測試場景屬性,以及一組用于創(chuàng)建模型、運行仿真、執(zhí)行后處理、提取度量和共享結(jié)果的方法(圖3)。借助MATLAB的面向?qū)ο蟮木幊坦δ?,我們可以輕松地針對VSI平臺創(chuàng)建這種類結(jié)構(gòu)體的實現(xiàn)。MATLAB句柄對象尤其適用于封裝仿真中包含的所有信息(不僅包括車輛和測試場景,還包括用戶設(shè)置、結(jié)果和度量),并在VSI內(nèi)高效傳輸這些信息,而無需復制數(shù)據(jù)。這些對象隨后可以轉(zhuǎn)換為元數(shù)據(jù)文本文件并進行存檔,使我們能夠通過從元數(shù)據(jù)重新構(gòu)造對象來重新創(chuàng)建任何歷史仿真。
圖3. VSISim超類,包括仿真輸入和執(zhí)行方法
使仿真更平等普及和最大化復用
我們已將VSI部署為MATLAB工具箱和獨立可執(zhí)行文件(用MATLAB Compiler?編譯),可供未安裝MATLAB的同事使用。由于可以輕松訪問VSI,團隊不再需要等待Simulink工程師來運行仿真并獲得結(jié)果。VSI界面的左側(cè)(如圖1所示)用于選擇車輛配置和測試場景,而界面的右側(cè)顯示用不同顏色表示的仿真列表。紅色表示尚未運行的仿真,綠色表示已完成的仿真,琥珀色表示已完成的仿真以及過期結(jié)果(例如,當新組件數(shù)據(jù)可用或模型修訂時,可能會發(fā)生這種情況)。值得注意的是,VSI的仿真結(jié)果是共享的;工程師可能會發(fā)現(xiàn)他們要運行的仿真已由本團隊或完全不同的團隊中的某個人完成。工程師可以利用已有的仿真結(jié)果,避免運行相同且不必要的仿真,從而節(jié)省時間和計算資源。
在定義并選擇了要運行的仿真后,工程師可點擊標有Run&Post-Process的按鈕(如圖1所示)。仿真是結(jié)合使用Simulink和商業(yè)仿真軟件在后臺通過MATLAB API啟動的(圖4)。
圖4. 集群仿真的工作流程圖,以及顯示五個調(diào)度仿真的VSI界面(以藍色突出顯示)。紫色狀態(tài)表示仿真正在進行中;紅色狀態(tài)則表示仿真已完成。
在單個仿真完成后,記錄的數(shù)據(jù)會發(fā)送回MATLAB工作區(qū)進行處理,然后轉(zhuǎn)換為Apache® Parquet數(shù)據(jù)文件格式,并最終存檔在共享目錄中。我們還開發(fā)了一套MATLAB腳本,用于匯總結(jié)果以生成關(guān)鍵度量,根據(jù)我們的需求管理系統(tǒng)中設(shè)置的目標報告仿真狀態(tài),并生成自動報告來概括關(guān)鍵性能指標,以供Rivian高級管理層參考。
通過并行處理實現(xiàn)擴展
在VSI用戶界面中,工程師可以選擇使用本地計算機上的多個內(nèi)核來并行運行仿真,也可以選擇使用遠程Amazon® Web Services(AWS®)集群來執(zhí)行此操作(圖5)。本地方法利用了Parallel Computing Toolbox?,它是工程師在測試模型更新和更改時最常選用的方法。遠程方法基于運行MATLAB Parallel Server?的AWS EC2實例,適用于具有已經(jīng)過測試和驗證的模型的生產(chǎn)環(huán)境。
圖5. 用于并行處理的VSI選項
在遠程并行工作流中,MATLAB Parallel Server和MATLAB作業(yè)調(diào)度器發(fā)揮著重要作用。VSI先從MATLAB Parallel Server調(diào)用parcluster函數(shù),以根據(jù)我們所定義的AWS EC2配置文件創(chuàng)建一個集群對象。在為要并行運行的每個仿真創(chuàng)建了一個仿真對象后,VSI將在集群上創(chuàng)建一個作業(yè),并為每個仿真創(chuàng)建一個單獨的任務(wù)。該作業(yè)及其任務(wù)通過MATLAB作業(yè)調(diào)度器提交到AWS EC2實例。該調(diào)度器可協(xié)調(diào)作業(yè)的執(zhí)行,并將任務(wù)分配給各個集群工作進程。當仿真完成時,MATLAB后處理函數(shù)會在集群上運行,然后結(jié)果再進行存檔和共享。對于大型作業(yè),例如涉及14個冗長仿真的作業(yè),遠程并行方法要快得多,在68分鐘內(nèi)即可完成作業(yè),而依序方法需要9個多小時(圖6)。
圖6. 依序(黃色)、本地并行(藍色)和遠程并行(紅色)方法的基準仿真時間
在過去的六個月里,我們在Rivian的同事已使用VSI進行了9,000多次整車仿真,總共模擬行駛了大約200萬英里。
計劃的改進
使用MATLAB和Simulink設(shè)計和構(gòu)建VSI平臺幫助我們實現(xiàn)了關(guān)鍵目標。我們?yōu)楣こ處熀头枪こ處焺?chuàng)建了統(tǒng)一平臺,用于運行整車仿真、后處理結(jié)果和創(chuàng)建報告。我們消除了仿真請求瓶頸,減少了仿真任務(wù)中的冗余,并提高了仿真復用性。此外,我們還通過支持在AWS集群或本地工作站的多個內(nèi)核上并行運行仿真,最大程度地提高了吞吐量。
我們計劃對VSI做出大量改進,包括將該平臺部署為Web應用,為關(guān)鍵性能指標添加儀表板,以及簡化從用戶界面使用試驗設(shè)計(DOE)的過程。與此同時,我們還在繼續(xù)開發(fā)和擴展Rivian的MATLAB Minimart,這是內(nèi)部構(gòu)建的MATLAB工具箱集合,用于數(shù)據(jù)轉(zhuǎn)換和查看、啟動和制動分析,以及各種其他經(jīng)常需要的功能。
關(guān)于MathWorks
MathWorks是數(shù)學計算軟件領(lǐng)域世界領(lǐng)先的開發(fā)商。來自該公司的MATLAB被稱為“科學家和工程師的語言”,是一個集算法開發(fā)、數(shù)據(jù)分析、可視化和數(shù)值計算于一體的編程環(huán)境。Simulink則是一個模塊化建模環(huán)境,面向多域和嵌入式工程系統(tǒng)的仿真和基于模型的設(shè)計。這些產(chǎn)品服務(wù)于全球工程師和科學家,幫助他們加快步伐,在汽車、航空航天、通信、電子、工業(yè)自動化及其他各行各業(yè)更快地實現(xiàn)發(fā)明、創(chuàng)新和開發(fā)。MATLAB和Simulink產(chǎn)品是全球眾多頂級大學和學術(shù)機構(gòu)的基本教研工具。MathWorks創(chuàng)建于1984年,總部位于美國馬薩諸塞州的內(nèi)蒂克市(Natick,Massachusetts),在全球擁有34個分支機構(gòu),共有6,000多名員工。有關(guān)詳細信息,請訪問cn.mathworks.com。