FMU中時間概念的連續性和離散性實際上是變量的屬性。并且FMU都能夠包含連續時間的變量或是離散時間的變量。在模型交換類型和聯合仿真類的FMU通信中可以看到這一點。
在FMI2.0中通過通信點來進行數據交換的通信結構是離散的。
一、模型交換:導入工具提供求解器

- 仿真工具之間模型集成非常緊密。
- 在導入工具和模型之間的接口非常復雜。
- 導入工具必須提供合適的求解器。
二、聯合仿真:導出工具提供求解器

三、聯合仿真的接口 Interface
通信時間步長可以和內部步長不同,通信時間步長主要是不同FMU之間交換信息,而在各自的內部可以時是不同的可變時間步長。
在聯合仿真接口中,參數會根據FMI標準有著典型的調用順序:
- 得到輸出:fmiGetXXX(...)
- 觸發計算直到下一個通信節點:fmidoStep(...)
- 設置輸入值:fmi2SetXXX(...)
以C代碼為例:
- 使用FMI2Instantiate函數實例化FMU
CALL (FMI2Instantiate(S, resourceURI, fmi2CoSimulation, modelDescription->instantiationToken, fmi2Flase, fmi2Flase))
其中涉及到的參數分別是FMI實例、FMU資源的URI、聲明FMU的類型為聯合仿真、唯一標識符、是否顯示FMU的GUI和是否啟動日志記錄的參數。
- 應用初始值和輸出
CALL(applyStartValues(S,settings)); CALL(FMIApplyInput(S,input,setttings->startTime,true,true,false));
- 設置參數并進入初始化模式,如果有FMU初始狀態文件的話,可以在實例化FMU后執行
CALL(FMI2SetupExperiment(S,settings->tolerance>0,settings->tolerance,settings->startTime,fmiFalse,0)); CALL(FMI2EnterInitializationMode(S)); CALL(FMI2ExitInitializationMode(S));
- 進入仿真循環,按照時間步長進行采樣和應用輸入
or(ubsignedlongstep=0;;step++){constfmi2Realtime=settings->startTime+step*settings->outputInterval;... CALL(FMISample(S,time,result)); CALL(FMIApplyInput(S,input,time,true,true,false)); ...... constFMIStatusdoStepStatus=FMI2DoStep(S,time,settings->outputInterval,fmiTrue); ...... CALL(FMIGetBooleanStatues(S,fmi2Terminated,&terminated)) ...... CALL(FMI2GetRealStatus(S,fmi2LastSuccessfulTime,&lastSuccessfulTime)); CALL(FMISample(S,lastSuccessfulTime,result)); ......
聯合仿真算法作用
- 聯合仿真算法不屬于FMI標準的一部分,其作用主要是用于:
- 推進整個仿真系統的時間,使得各個子系統的FMU組件在每個時間步長上同步執行仿真計算,即代碼中仿真循環的部分。
- 交換輸入和輸出數據。
- 觸發時鐘信號,用于同步不同仿真組件或觸發某些操作,即代碼中。
settings->startTime+step*settings->outputInterval;FMI2DoStep(S,time,settings->outputInterval,fmiTrue);
- 處理事件,例如狀態變化、外部輸入、內部條件觸發等,即代碼中。
CALL(FMI2GetRealStatus(S,fmi2LastSuccessfulTime,&lastSuccessfulTime));CALL(FMISample(S,lastSuccessfulTime,result));
四、模型描述文件是并行的
模型描述文件modelDescription.xml包含了關于FMU所有的靜態信息,其定義了FMU支持的接口類型,無論是模型交換或是聯合仿真,同時解釋了模型變量,包括了輸入、輸出以及相關參數,以便導入工具進行訪問。
除此之外也會包含模型接口的一些信息,比如模型連接時數據是符合輸入輸出的。

并且在模型描述文件中還會聲明一些屬性標志,比如“needsExcutionTool”,這一屬性表示需要特定的程序或是特定的庫文件才能夠執行FMU,所以在導入FMU時,在導入工具中需要一個額外的包裝Wrapper,并不真正的參與計算,而是用來實現模型、求解工具和執行之間進行通信。


作者介紹
崔工
康謀科技仿真測試業務技術主管,擁有超過5年的汽車仿真測試及自動駕駛技術研發經驗,熟練掌握仿真測試工具和平臺,如aiSim、HEEX等,能有效評估和優化自動駕駛系統的性能和安全性。擁有出色的跨文化溝通能力,成功帶領團隊完成多項海外技術合作項目,加速了公司在自動駕駛技術上的國際化進程。作為技術團隊的核心,領導并實施過大規模的自動駕駛仿真測試項目,對于車輛行為建模、環境模擬以及故障診斷具有獨到見解。擅長運用大數據分析和人工智能技術,優化仿真測試流程,提高測試效率和結果的準確性。
-
聯合仿真
+關注
關注
0文章
5瀏覽量
8376 -
自動駕駛
+關注
關注
788文章
14104瀏覽量
168665
發布評論請先 登錄
相關推薦
自動駕駛聯合仿真——功能模型接口FMI(終)

康謀分享 | 3DGS:革新自動駕駛仿真場景重建的關鍵技術

自動駕駛真的會來嗎?
AI/自動駕駛領域的巔峰會議—國際AI自動駕駛高峰論壇
如何讓自動駕駛更加安全?
自動駕駛車的人車交互接口設計方案
自動駕駛線控底盤VCU功能介紹
自動駕駛仿真工具

康謀新聞丨走進康謀科技——您的自動駕駛解決方案合作伙伴

康謀分享 | 汽車仿真與AI的結合應用

康謀分享 | 直面AD/ADAS快速開發挑戰:IVEX自動駕駛場景管理及分析平臺!

評論