0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FMI接口的協(xié)同仿真應用

冬至子 ? 來源:Saber仿真 ? 作者:Greatalent ? 2023-12-05 09:58 ? 次閱讀

隨著科技的迅猛發(fā)展,在多個工業(yè)領域(航空、航天、汽車、船舶等等)面對復雜系統(tǒng),用戶的設計和分析的手段逐漸豐富完善,其中仿真技術越來越受到重視,不同的客戶運行來自不同供應商的仿真軟件,例如有限元工具、機械和熱力工具、信號流工具等等,這些工具都有著許多專門針對特定問題或條件設計的代碼,這些代碼幾乎所有都是專有格式。

客戶一直希望有一種方法來共同模擬他們的異構工具,F(xiàn)MI標準的出現(xiàn)提供了一種很好的解決方案。FMI標準的全稱是Functional Mock-up Interface,它是一個不依賴于工具的標準,其通過XML文件和已編譯的C代碼的組合來同時支持動態(tài)模型的模型交換( Model Exchange)和聯(lián)合仿真(Co-Simulation)。

遵循FMI標準,Synopsys SaberRD解決了用戶的需求,它允許客戶導出他們的Saber模型,并使用基于標準的接口與其他工具進行聯(lián)合仿真。

1. 簡介

FMI協(xié)同仿真為協(xié)同仿真環(huán)境中的仿真工具的耦合提供了接口標準。子系統(tǒng)之間的數(shù)據(jù)交換僅限于離散序列點。在兩個通信點之間的時間內,子系統(tǒng)由各自的解算器獨立求解。主算法控制子系統(tǒng)之間的數(shù)據(jù)交換和所有仿真解算器(從機)的同步。

協(xié)同仿真的方法:FMU實現(xiàn)將FMI函數(shù)調用包裝到仿真工具提供的API調用。

圖片

圖1 在單臺計算機上與工具耦合的聯(lián)合仿真

2. 如何使用FMI2.0 Co-Simulation導出FMU

通過SaberRD的FMI 2.0 Co-Simulation接口可以將一個完整的Saber設計工程或部分Saber模塊導出成為一個FMU。步驟如下:

2.1 創(chuàng)建一個 SaberRD設計

2.2 添加輸入輸出端口

圖片

圖2 在原理圖上添加分層端口

從器件庫中的“原理圖連接器”類別中選擇適當?shù)亩丝诜枺⑵溥B接到需要導出到FMU的原理圖節(jié)點。

對于離散端口和模擬控制端口,將分層輸入連接器連接到輸入端口,將分層輸出連接器連接到輸出端口。

圖片

對于物理模擬端口,如電氣和液壓端口,將分層模擬連接器連接到它們。

圖片

注意:

將錯誤的分層連接器連接到節(jié)點會導致FMU導出失敗。將端口連接器添加到原理圖中的順序很重要,因為在modelDescription.xml中為導出的FMU定義FMU端口的順序需要相同。

2.3 添加原理圖參數(shù)(可選)

對于任何需要在主模擬器中作為設計參數(shù)的模型參數(shù),以便在計算開始時更改它,應在原理圖上添加設計參數(shù),選擇需要在模型屬性網格上作為參數(shù)導出的屬性,并將其值更改為所需的名稱,該名稱將在創(chuàng)建層次符號時用作層次參數(shù)。

圖片

圖3 在原理圖上添加設計參數(shù)

注意

只有標量數(shù)、整數(shù)和字符串類型的屬性才能導出為FMU參數(shù)。像MAST structure, array, VHDL-AMS record, and vectors 等數(shù)據(jù)結構不能導出到FMU。

2.4 基于原理圖創(chuàng)建頂層symbol

注意頂層symbol名稱必須與底層原理圖名稱一致。

圖片

圖4 為原理圖創(chuàng)建層次符號

2.5 編輯頂層symbol外形(可選)

如果分層設計具有任何設計參數(shù)或物理模擬端口,則需要手動更新生成的符號

圖片

圖5在符號上添加設計參數(shù)

在分層符號上更新物理端口方向,對于離散和模擬控制端口,在創(chuàng)建Saber設計原理圖時,輸入/輸出信息端口已經定義這些類型的端口不需要進一步處理。

但是,模擬能量守恒物理端口,如電氣或液壓端口有兩個組件, across變量和through變量在同一個端口,而且沒有方向信息,要將這種端口導出到FMU,必須提供其方向和類型信息。

提供方向和類型,打開Symbol Editor ,選擇這個圖片physical port., 添加 behavior property

圖片

圖片

在 Property Name欄,輸入 causality

在Initial Value欄, 輸入方向和類型信息,用空格隔開

圖片

方向信息和信號類型參考下表:

圖片

表1 更新后的物理端口因果關系屬性

圖片

圖5 在物理端口符號上添加因果關系

2.6 檢查設計文件的正確性

2.7 將Saber設計文件導出為FMU

File > Export, 選擇 Function Mockup Interface (FMI)…

圖片

圖片

圖片

圖6 Saber FMU導出

窗口參數(shù)說明:

  • Design Symbol: 選擇響應的symbol文件,該symbol文件必須是基于原理圖的層次文模型,而且原理圖要與symbol在同一個文件夾下,
  • Platform: win64, win32, linux64, and linux32. 選擇操作系統(tǒng)平臺
  • Additional Design Data Files: 添加除了models ( .sin, .vhdl), symbols ( .ai_sym),和 schematic ( .ai_sch),外其他文件,如 (*.ai_dat) for the TLU (Table Look-Up) 模型,仿真時會用到該文件。如果不需要相關文件,該欄可以空著。
  • stopTime: FMI co-simulation仿真停止時間,默認為1.0 seconds.
  • stepSize: the co-simulation仿真步長,. 默認為 is 1.0e-3 seconds.
  • Timeout: 協(xié)同仿真響應最大時間
  • Simulator Settings: SaberHDL simulator settings. 不填寫,為默認仿真設置。

如果需要更精準的仿真結果,可以設置,格式如下:dc; tr -tend 1 -tstep 1 us -tniter 10 -order

如果需要跳過DC仿真,可設置如下:tr -tend 1 -tstep 1 ms -trip zero

如果需要保存仿真結果:dc; tr -tend 1 -tstep 1u -wdir saber_results

*Communication Port: 主仿真器和從仿真器之間的 TCP/IP 端口號. 默認為0

3. 將SaberRD設計導出到FMU

使用SaberRD導出的FMU模型,可以用于任何FMU仿真,平臺包括win64, win32, linux64 和 linux32。

圖片

3.1 設計示例說明

A、該設計有兩個參數(shù)

第一個 Von:二極管導通壓降

圖片

第二個Load:負載電阻

圖片

B、該設計有3個模擬電壓輸入端口

圖片

C、該設計有4個輸出端口ia、ib、ic、vdc

3.2 示例操作步驟

A、 下載示例,解壓并將符號文件(rectifier_3p.ai_sym),原理圖文件(rectifier_3p.ai_sch)和三相電壓激勵文件(v_3p.csv)復制到本地目錄D:SaberworkFMIrectifier_3p。

圖片

B、調用SaberRD,點擊菜單從原理圖文件中打開設計:“File ->Open->Open design”,選擇原理圖文件rectifier_3p.ai_sch。

C、將設計導出到FMU,單擊菜單“File->Export->Function Mockup Interfaces (FMI)…”,選擇Design Symbol為rectifier_3p.ai_sym(下圖示例中為D:SaberworkFMIrectifier_3prectifier_3p.ai_sym),點擊“導出”按鈕,保存rectifier_3p_saberhdl .fmu。生成的FMU文件在本地目錄D:SaberworkFMIrectifier_3p。

圖片

4.FMU模型測試

A、設置環(huán)境變量SABER_FMU_SOLVER的值為SaberRD的安裝路徑,例如:C:SynopsysSaberRD64T-2022.03

B、下載本文提供了FMUChecker-2.0.4b1-win64,來進行模型測試。

C、打開FMUChecker-2.0.4b1-win64文件夾,將v_3p.csv和rectifier_3p_saberhdl.fmu文件復制進來

圖片

D、打開dos命令窗口,進入fmuCheck.win64.exe目錄路徑

圖片

E、在命令窗口運行如下命令。它運行瞬態(tài)仿真2秒,通信步長為1e-3。輸出信息保存在log.txt文件中,仿真結果保存在result.csv文件中。

fmuCheck.win64.exe -e log.txt -i v3_3p.csv -o results.csv -s 2 -h 1.0e-3 -n 0 receifier_3p_saberhdl.fmu

F、使用任何支持csv格式的波形查看器打開結果文件results.cs查看仿真結果,驗證導出的模型

圖片

注意

fmucheck運行時會在底層調用SaberRD仿真器,如果沒有simulator license會報錯誤。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 連接器
    +關注

    關注

    98

    文章

    14217

    瀏覽量

    135928
  • 仿真器
    +關注

    關注

    14

    文章

    1014

    瀏覽量

    83591
  • 模擬器
    +關注

    關注

    2

    文章

    862

    瀏覽量

    43128
  • 協(xié)同仿真

    關注

    0

    文章

    6

    瀏覽量

    8101
  • HDL語言
    +關注

    關注

    0

    文章

    46

    瀏覽量

    8905
收藏 人收藏

    評論

    相關推薦

    康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(二)

    功能模型接口在復雜系統(tǒng)的建模與仿真中具有重要作用。本文探討了FMU的時間概念、模型交換和聯(lián)合仿真的通信機制。通過C代碼示例,介紹了聯(lián)合仿真接口
    的頭像 發(fā)表于 06-26 14:40 ?3230次閱讀
    康謀分享 | 自動駕駛聯(lián)合<b class='flag-5'>仿真</b>——功能模型<b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(二)

    康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(四)

    功能模型接口是一個開放且獨立于工具的標準,便于實現(xiàn)自動駕駛仿真工具間的模型交換和聯(lián)合仿真。本篇文章繼續(xù)展示如何建立一個FMU并實現(xiàn)基于UDP和FMI聯(lián)合
    的頭像 發(fā)表于 07-24 10:54 ?3095次閱讀
    康謀分享 | 自動駕駛聯(lián)合<b class='flag-5'>仿真</b>——功能模型<b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(四)

    自動駕駛聯(lián)合仿真——功能模型接口FMI(終)

    本文帶您了解,如何在aiSim中,通過UDP和aiSim車輛動力學API(Vehicle Dynamics Interface, VDI)來實現(xiàn)和外部的FMU車輛動力學模型的聯(lián)合仿真?
    的頭像 發(fā)表于 08-07 10:19 ?2656次閱讀
    自動駕駛聯(lián)合<b class='flag-5'>仿真</b>——功能模型<b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(終)

    求助協(xié)同仿真程序調試

    本人在做matlab和optisystem的協(xié)同仿真,下載的資料也都有, 就是寫的器件程序在Matlab中無法運行,就連用Matlab仿真optisystem自帶程序,都顯示Undefined
    發(fā)表于 04-02 11:22

    采用Modelsim FLI接口協(xié)同仿真技術

    1 前言協(xié)同仿真就是利用仿真工具提供的外部接口,用其它程序設計語言(非HDL語言,如c語言等)編程,用輔助仿真工具進行
    發(fā)表于 05-15 07:00

    基于Altera FPGA的軟硬件協(xié)同仿真方法介紹

    摘要:簡要介紹了軟硬件協(xié)同仿真技術,指出了在大規(guī)模FPGA開發(fā)中軟硬件協(xié)同仿真的重要性和必要性,給出基于Altera FPGA的門級軟硬件協(xié)同
    發(fā)表于 07-04 06:49

    什么是Ansoft Designer與Ansoft HFFS雙工器協(xié)同仿真?

    Ansoft Designe采用了最新的視窗技術,將電路仿真和電磁仿真集成到一個環(huán)境中,它可以與和電磁仿真工具HFSS,Q3D,Slwave進行動態(tài)連接和協(xié)同
    發(fā)表于 08-23 06:03

    HW協(xié)同仿真錯誤

    親愛的讀者們,我有一個RTL,一切正常。模擬沒問題。生成編程文件沒有任何問題。沒有修剪硬件。但是,當我嘗試執(zhí)行HW協(xié)同仿真時,我得到一些關于多個網絡驅動程序,非法加載等的ngdbuild和xflow
    發(fā)表于 03-17 09:49

    如何使用Artix-7 FPGA進行以太網協(xié)同仿真?

    你好,我有興趣使用Artix-7 FPGA進行以太網協(xié)同仿真(在Simulink中通過System Generator)。在System Generator中,我看到AC701
    發(fā)表于 07-15 08:45

    Saber Simulink協(xié)同仿真方法

    Saber可以和Simulink實現(xiàn)協(xié)同仿真(Co-Sim),仿真時以Saber為主機,調用Simulink,兩個軟件以固定時間步長交換數(shù)據(jù).運用Saber和Simulink 進行協(xié)同
    發(fā)表于 06-18 15:37 ?68次下載

    Modelsim FLI接口協(xié)同仿真技術

    1 前言    協(xié)同仿真就是利用仿真工具提供的外部接口,用其它程序設計語言(非HDL語言,如c語言等)編程,用輔助仿真
    發(fā)表于 06-07 08:33 ?1219次閱讀
    Modelsim FLI<b class='flag-5'>接口</b>的<b class='flag-5'>協(xié)同</b><b class='flag-5'>仿真</b>技術

    ADS無線協(xié)同仿真平臺

    ADS無線協(xié)同仿真平臺
    發(fā)表于 10-11 16:30 ?0次下載
    ADS無線<b class='flag-5'>協(xié)同</b><b class='flag-5'>仿真</b>平臺

    基于集成電路協(xié)同仿真的數(shù)據(jù)管理

    數(shù)據(jù)管理平臺軟件系統(tǒng)對集成電路協(xié)同仿真數(shù)據(jù)進行了管理與數(shù)據(jù)處理,實現(xiàn)了協(xié)同仿真數(shù)據(jù)的規(guī)范化存儲以及相關仿真性能參數(shù)的比對,并支持與ANSYS
    發(fā)表于 02-28 11:29 ?0次下載
    基于集成電路<b class='flag-5'>協(xié)同</b><b class='flag-5'>仿真</b>的數(shù)據(jù)管理

    康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(一)

    功能模型接口是一個開放且獨立于工具的標準,包含C-API接口、XML描述文件和可交換的功能模型單元,提供容器化模型,便于在不同平臺上重復使用和部署,實現(xiàn)自動駕駛仿真工具間的模型交換和聯(lián)合仿真
    的頭像 發(fā)表于 06-12 13:07 ?1450次閱讀
    康謀分享 | 自動駕駛聯(lián)合<b class='flag-5'>仿真</b>——功能模型<b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(一)

    康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(三)

    功能模型接口是一個開放且獨立于工具的標準,便于實現(xiàn)自動駕駛仿真工具間的模型交換和聯(lián)合仿真。本文以康謀aiSim為例,來展示如何建立一個FMU并實現(xiàn)基于UDP和FMI聯(lián)合
    的頭像 發(fā)表于 07-10 15:52 ?1382次閱讀
    康謀分享 | 自動駕駛聯(lián)合<b class='flag-5'>仿真</b>——功能模型<b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(三)