top of page

FMU與FMI的版本差異與說明

  • 作家相片: Admin
    Admin
  • 3天前
  • 讀畢需時 3 分鐘

在進行系統級模擬時,工程師常面臨的挑戰是「不同工具的模型能否有效協作」。而FMI (Functional Mock-up Interface)的出現,正是為了標準化這些「模型交換」與「聯合模擬」的流程,打破工具之間的圍牆,讓模型能夠像積木一樣自由組合。


  1. FMI 與 FMU 的技術定義:


  • FMI (Functional Mock-up Interface):這是一套「標準通訊協定」(Protocol)。它定義了模型應如何封裝、輸入輸出接口(I/O)規範、以及外部軟體如何呼叫模型內的數學函數。概念上可類比為 USB 的介面標準。

  • FMU (Functional Mock-up Unit):這是符合FMI規範的「檔案實體」。它通常是一個 .fmu的壓縮檔,相當於一個隨身碟。


一個標準的 FMU 內部包含了兩個關鍵部分:

  • XML描述檔 (modelDescription.xml):包含了變數名稱、單位、參數以及輸入輸出接口定義。

  • 二進制執行檔 (Binaries/C-code):包含了模型的實際動態行為與物理公式。


在業界應用中,FMU主要分為兩種運作模式,這直接決定了使用者的部署方式:

  • Model Exchange (ME, 模型交換):FMU僅提供微分方程(數學模型),不包含求解器(Solver)。Host端必須自行提供數值求解器來計算下一時刻的狀態。

  • Co-Simulation (CS, 聯合模擬):FMU內建了求解器。Host端只需向FMU請求:「請計算dt時間後的結果」,FMU就會在內部自行運算並回傳數值。這是實現HIL跨機獨立運算的關鍵模式。


  1. FMI 1.0 / 2.0 / 3.0之演進:


  • FMI 1.0:FMI 1.0的核心貢獻在於建立了 ME 與 CS 的基本框架,讓模型能「帶著介面」離開原開發工具,進入別的模擬環境。

  • FMI 2.0:目前的產業主流標準。相較於 1.0,它大幅改善了數學定義的嚴謹度,並增強了工具鏈整合能力。目前MR2 HIL平台主要支援的格式即為FMI 2.0版本。

  • FMI 3.0:重點將應用場景從「連續時間系統」擴展至更強的「離散/事件驅動」與即時排程需求。除非有明確的進階事件觸發需求,否則FMI 2.0仍是目前跨平台模擬的主力。


  1. Simulink 的 FMI 支援演進:MATLAB/Simulink 對 FMI 的支援經歷了從「匯入」到「獨立匯出」的關鍵轉變


    第一階段:

    R2017b (FMU Import) MATLAB 主要扮演 Host 角色,使用者可將其他軟體生成的 FMU 匯入 Simulink 進行模擬。

    第二階段:

    R2019a (Tool-coupling Export) Simulink 開始支援生成 FMU 2.0。但此版本的 Co-Simulation 採「工具耦合」技術,執行 FMU 的電腦必須安裝 MATLAB 才能運作,限制了部署彈性。

    第三階段:

    R2020a (Standalone Co-Simulation) Simulink正式支援匯出Standalone FMU。生成的FMU內含完整求解器與二進制碼,完全切斷對MATLAB的依賴。這意味著您可以在未安裝MATLAB的設備上直接執行該模型。

    第四階段:

    R2023b (FMI 3.0) 全面支援 FMI 3.0 匯入匯出,並增強了 FMU 2.0 的匯出能力,特別是支援了變步長求解器 (Variable-step Solver) 的封裝,提升了模擬效率。


  1. 結論


    隨著FMI標準日益成熟,將FMU技術應用於MR2 HIL的耦合模擬中,能挖掘更多系統驗證的可能性。透過Simulink生成Standalone FMU,工程師能將複雜的控制演算法與機械負載模型,無縫且高效地整合至 HIL 環境中。



凱登將陸續推出MR2軟體特色、電機模型解析、編碼器驗證、各式外掛模組、應用案例等文章,敬請期待。

 

如有任何問題歡迎請隨時聯繫我們,並給與我們指教。

留言


Gathertech Intelligent Automation CO., LTD. | Tainan, Taiwan

Copyright © 凱登智動科技(Gathertech Intelligent Automation CO., LTD.) 版權所有

bottom of page