FMU模組-2
- 3天前
- 讀畢需時 3 分鐘
於先前文章中,我們已介紹MR2 Advance搭配FMU模組實現即時聯合仿真系統。使用者可從Simulink或MapleSim等第三方建模軟體生成FMU檔案,將FMU檔案載入FMU模組後,模組將自動呼叫內建編譯器進行模型編譯與執行,此方案大幅降低使用者建置聯合仿真的技術門檻,為使用者提供簡易且快速部署即時聯合仿真系統。

隨著許多客戶的應用情境日益多元且複雜,為了模擬更接近真實的物理環境,其生成的數學物理模型體積也與日俱增。儘管FMU模組內建模型編譯功能,但受限於雙核心處理器的運算資源,其編譯時間將隨著模型複雜度越大而變得越久,進而增加使用者從調整模型至實機驗證的開發週期。
為了提供客戶高效率的實驗環境,我們引入交叉編譯(Cross compilation)方案,客戶在安裝我們所提供的軟體擴充包後,即可利用PC端(x86-x64架構)強大的多核心處理器,以並行處理進行模型編譯,最後將編譯結果載入至FMU模組,由內部的即時系統負責模型運算,並與MR2 Advance進行高速資料交握,實現聯合仿真系統。此架構不僅大幅縮短編譯時間,更讓使用者能專注於演算法的快速驗證與優化。
![(圖2) Cross compiler operation[1]](https://static.wixstatic.com/media/0a818a_c7f3f42339464b028afc2aa6722310ab~mv2.png/v1/fill/w_490,h_245,al_c,q_85,enc_avif,quality_auto/0a818a_c7f3f42339464b028afc2aa6722310ab~mv2.png)
為了因應使用者於不同的開發環境下進行實驗,目前提供兩種編譯方式供使用者彈性使用。
Local: 利用PC端高效能多核心處理器,以多核心並行方式進行模型編譯,此選項適合應用在複雜且較大的數學模型,將編譯時間縮短,大幅提升研發迭代的效率。
FMU Module: 由模組內建編譯器進行模型編譯,此選項具備獨立性與移植性,使用者無需在現有的開發環境中安裝額外軟體,即可立即進行聯合仿真實驗。
本次更新除了提供更高效率的編譯方式外,同時也新增編譯優化選項,使用者可根據應用需求調整優化等級,我們推薦使用者初期以O0進行實驗,以不進行任何優化的前提下,優先確保物理模型邏輯正確無誤。
當應用情境追求更高的即時性時,使用者可進一步提升優化等級,然而優化等級越高,可能會產生非預期的計算結果,其主因為編譯器為了提升執行速度,可能對模型原始碼進行指令重排、變數暫存器分配等多種策略。這些策略雖然可提升模型計算效率,但同時也可能會影響數學模型的計算精確度,因此我們會建議使用者,僅當時間步長(dt)無法滿足即時性需求時,再調整比O0較高的優化等級。針對想進一步了解編譯器優化細節的讀者,可參考GCC Options That Control Optimization[2],其內文詳細說明各優化等級內容。

在應用需求日益多元、模型規模持續成長的趨勢下,我們導入更高效率的編譯機制,以有效縮短從數學模型調整至實機驗證的開發週期。同時延續系統既有的高獨立性與可移植性,並提供多元化的編譯模式與分級編譯優化選項,協助使用者依據不同開發環境與應用情境選擇最合適的編譯策略。
參考資料
[1]. “What is Cross Compiler?,” https://www.geeksforgeeks.org/compiler-design/what-is-cross-compiler/, Retrieved on March 2026.
[2]. “Options That Control Optimization,” https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html, Retrieved on March 2026.
凱登將陸續推出MR2軟體特色、電機模型解析、編碼器驗證、各式外掛模組、應用案例等文章,敬請期待。
如有任何問題歡迎請隨時聯繫我們,並給與我們指教。




留言