隨著科技的迅猛發(fā)展,在多個工業(yè)領(lǐng)域(航空、航天、汽車、船舶等等)面對復(fù)雜系統(tǒng),用戶的設(shè)計(jì)和分析的手段逐漸豐富完善,其中仿真技術(shù)越來越受到重視,不同的客戶運(yùn)行來自不同供應(yīng)商的仿真軟件,例如有限元工具、機(jī)械和熱力工具、信號流工具等等,這些工具都有著許多專門針對特定問題或條件設(shè)計(jì)的代碼,這些代碼幾乎所有都是專有格式。
客戶一直希望有一種方法來共同模擬他們的異構(gòu)工具,F(xiàn)MI標(biāo)準(zhǔn)的出現(xiàn)提供了一種很好的解決方案。FMI標(biāo)準(zhǔn)的全稱是Functional Mock-up Interface,它是一個不依賴于工具的標(biāo)準(zhǔn),其通過XML文件和已編譯的C代碼的組合來同時支持動態(tài)模型的模型交換( Model Exchange)和聯(lián)合仿真(Co-Simulation)。
遵循FMI標(biāo)準(zhǔn),Synopsys SaberRD解決了用戶的需求,它允許客戶導(dǎo)出他們的Saber模型,并使用基于標(biāo)準(zhǔn)的接口與其他工具進(jìn)行聯(lián)合仿真。
1. 簡介
FMI協(xié)同仿真為協(xié)同仿真環(huán)境中的仿真工具的耦合提供了接口標(biāo)準(zhǔn)。子系統(tǒng)之間的數(shù)據(jù)交換僅限于離散序列點(diǎn)。在兩個通信點(diǎn)之間的時間內(nèi),子系統(tǒng)由各自的解算器獨(dú)立求解。主算法控制子系統(tǒng)之間的數(shù)據(jù)交換和所有仿真解算器(從機(jī))的同步。
協(xié)同仿真的方法:FMU實(shí)現(xiàn)將FMI函數(shù)調(diào)用包裝到仿真工具提供的API調(diào)用。

圖1 在單臺計(jì)算機(jī)上與工具耦合的聯(lián)合仿真
2. 如何使用FMI2.0 Co-Simulation導(dǎo)出FMU
通過SaberRD的FMI 2.0 Co-Simulation接口可以將一個完整的Saber設(shè)計(jì)工程或部分Saber模塊導(dǎo)出成為一個FMU。步驟如下:
2.1 創(chuàng)建一個 SaberRD設(shè)計(jì)
2.2 添加輸入輸出端口

圖2 在原理圖上添加分層端口
從器件庫中的“原理圖連接器”類別中選擇適當(dāng)?shù)亩丝诜?,并將其連接到需要導(dǎo)出到FMU的原理圖節(jié)點(diǎn)。
對于離散端口和模擬控制端口,將分層輸入連接器連接到輸入端口,將分層輸出連接器連接到輸出端口。

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

注意:
將錯誤的分層連接器連接到節(jié)點(diǎn)會導(dǎo)致FMU導(dǎo)出失敗。將端口連接器添加到原理圖中的順序很重要,因?yàn)樵趍odelDescription.xml中為導(dǎo)出的FMU定義FMU端口的順序需要相同。
2.3 添加原理圖參數(shù)(可選)
對于任何需要在主模擬器中作為設(shè)計(jì)參數(shù)的模型參數(shù),以便在計(jì)算開始時更改它,應(yīng)在原理圖上添加設(shè)計(jì)參數(shù),選擇需要在模型屬性網(wǎng)格上作為參數(shù)導(dǎo)出的屬性,并將其值更改為所需的名稱,該名稱將在創(chuàng)建層次符號時用作層次參數(shù)。

圖3 在原理圖上添加設(shè)計(jì)參數(shù)
注意
只有標(biāo)量數(shù)、整數(shù)和字符串類型的屬性才能導(dǎo)出為FMU參數(shù)。像MAST structure, array, VHDL-AMS record, and vectors 等數(shù)據(jù)結(jié)構(gòu)不能導(dǎo)出到FMU。
2.4 基于原理圖創(chuàng)建頂層symbol
注意頂層symbol名稱必須與底層原理圖名稱一致。

圖4 為原理圖創(chuàng)建層次符號
2.5 編輯頂層symbol外形(可選)
如果分層設(shè)計(jì)具有任何設(shè)計(jì)參數(shù)或物理模擬端口,則需要手動更新生成的符號

圖5在符號上添加設(shè)計(jì)參數(shù)
在分層符號上更新物理端口方向,對于離散和模擬控制端口,在創(chuàng)建Saber設(shè)計(jì)原理圖時,輸入/輸出信息端口已經(jīng)定義這些類型的端口不需要進(jìn)一步處理。
但是,模擬能量守恒物理端口,如電氣或液壓端口有兩個組件, across變量和through變量在同一個端口,而且沒有方向信息,要將這種端口導(dǎo)出到FMU,必須提供其方向和類型信息。
提供方向和類型,打開Symbol Editor ,選擇這個
physical port., 添加 behavior property


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

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

表1 更新后的物理端口因果關(guān)系屬性

圖5 在物理端口符號上添加因果關(guān)系
2.6 檢查設(shè)計(jì)文件的正確性
2.7 將Saber設(shè)計(jì)文件導(dǎo)出為FMU
File > Export, 選擇 Function Mockup Interface (FMI)…



圖6 Saber FMU導(dǎo)出
窗口參數(shù)說明:
- Design Symbol: 選擇響應(yīng)的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) 模型,仿真時會用到該文件。如果不需要相關(guān)文件,該欄可以空著。
- stopTime: FMI co-simulation仿真停止時間,默認(rèn)為1.0 seconds.
- stepSize: the co-simulation仿真步長,. 默認(rèn)為 is 1.0e-3 seconds.
- Timeout: 協(xié)同仿真響應(yīng)最大時間
- Simulator Settings: SaberHDL simulator settings. 不填寫,為默認(rèn)仿真設(shè)置。
如果需要更精準(zhǔn)的仿真結(jié)果,可以設(shè)置,格式如下:dc; tr -tend 1 -tstep 1 us -tniter 10 -order
如果需要跳過DC仿真,可設(shè)置如下:tr -tend 1 -tstep 1 ms -trip zero
如果需要保存仿真結(jié)果:dc; tr -tend 1 -tstep 1u -wdir saber_results
*Communication Port: 主仿真器和從仿真器之間的 TCP/IP 端口號. 默認(rèn)為0
3. 將SaberRD設(shè)計(jì)導(dǎo)出到FMU
使用SaberRD導(dǎo)出的FMU模型,可以用于任何FMU仿真,平臺包括win64, win32, linux64 和 linux32。

3.1 設(shè)計(jì)示例說明
A、該設(shè)計(jì)有兩個參數(shù)
第一個 Von:二極管導(dǎo)通壓降

第二個Load:負(fù)載電阻

B、該設(shè)計(jì)有3個模擬電壓輸入端口

C、該設(shè)計(jì)有4個輸出端口ia、ib、ic、vdc
3.2 示例操作步驟
A、 下載示例,解壓并將符號文件(rectifier_3p.ai_sym),原理圖文件(rectifier_3p.ai_sch)和三相電壓激勵文件(v_3p.csv)復(fù)制到本地目錄D:SaberworkFMIrectifier_3p。

B、調(diào)用SaberRD,點(diǎn)擊菜單從原理圖文件中打開設(shè)計(jì):“File ->Open->Open design”,選擇原理圖文件rectifier_3p.ai_sch。
C、將設(shè)計(jì)導(dǎo)出到FMU,單擊菜單“File->Export->Function Mockup Interfaces (FMI)…”,選擇Design Symbol為rectifier_3p.ai_sym(下圖示例中為D:SaberworkFMIrectifier_3prectifier_3p.ai_sym),點(diǎn)擊“導(dǎo)出”按鈕,保存rectifier_3p_saberhdl .fmu。生成的FMU文件在本地目錄D:SaberworkFMIrectifier_3p。

4.FMU模型測試
A、設(shè)置環(huán)境變量SABER_FMU_SOLVER的值為SaberRD的安裝路徑,例如:C:SynopsysSaberRD64T-2022.03
B、下載本文提供了FMUChecker-2.0.4b1-win64,來進(jìn)行模型測試。
C、打開FMUChecker-2.0.4b1-win64文件夾,將v_3p.csv和rectifier_3p_saberhdl.fmu文件復(fù)制進(jìn)來

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

E、在命令窗口運(yùn)行如下命令。它運(yùn)行瞬態(tài)仿真2秒,通信步長為1e-3。輸出信息保存在log.txt文件中,仿真結(jié)果保存在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格式的波形查看器打開結(jié)果文件results.cs查看仿真結(jié)果,驗(yàn)證導(dǎo)出的模型

注意
fmucheck運(yùn)行時會在底層調(diào)用SaberRD仿真器,如果沒有simulator license會報錯誤。

-
連接器
+關(guān)注
關(guān)注
102文章
15906瀏覽量
145243 -
仿真器
+關(guān)注
關(guān)注
14文章
1048瀏覽量
86724 -
模擬器
+關(guān)注
關(guān)注
2文章
992瀏覽量
45361 -
協(xié)同仿真
+關(guān)注
關(guān)注
0文章
6瀏覽量
8274 -
HDL語言
+關(guān)注
關(guān)注
0文章
48瀏覽量
9307
發(fā)布評論請先 登錄
康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(二)
康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(四)
自動駕駛聯(lián)合仿真——功能模型接口FMI(終)
求助協(xié)同仿真程序調(diào)試
采用Modelsim FLI接口的協(xié)同仿真技術(shù)
基于Altera FPGA的軟硬件協(xié)同仿真方法介紹
什么是Ansoft Designer與Ansoft HFFS雙工器協(xié)同仿真?
HW協(xié)同仿真錯誤
如何使用Artix-7 FPGA進(jìn)行以太網(wǎng)協(xié)同仿真?
Saber Simulink協(xié)同仿真方法
Modelsim FLI接口的協(xié)同仿真技術(shù)
基于集成電路協(xié)同仿真的數(shù)據(jù)管理
康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(一)
康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(三)

基于FMI接口的協(xié)同仿真應(yīng)用
評論