隨著科技的迅猛發(fā)展,在多個(gè)工業(yè)領(lǐng)域(航空、航天、汽車、船舶等等)面對(duì)復(fù)雜系統(tǒng),用戶的設(shè)計(jì)和分析的手段逐漸豐富完善,其中仿真技術(shù)越來越受到重視,不同的客戶運(yùn)行來自不同供應(yīng)商的仿真軟件,例如有限元工具、機(jī)械和熱力工具、信號(hào)流工具等等,這些工具都有著許多專門針對(duì)特定問題或條件設(shè)計(jì)的代碼,這些代碼幾乎所有都是專有格式。
客戶一直希望有一種方法來共同模擬他們的異構(gòu)工具,F(xiàn)MI標(biāo)準(zhǔn)的出現(xiàn)提供了一種很好的解決方案。FMI標(biāo)準(zhǔn)的全稱是Functional Mock-up Interface,它是一個(gè)不依賴于工具的標(biāo)準(zhǔn),其通過XML文件和已編譯的C代碼的組合來同時(shí)支持動(dòng)態(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. 簡(jiǎn)介
FMI協(xié)同仿真為協(xié)同仿真環(huán)境中的仿真工具的耦合提供了接口標(biāo)準(zhǔn)。子系統(tǒng)之間的數(shù)據(jù)交換僅限于離散序列點(diǎn)。在兩個(gè)通信點(diǎn)之間的時(shí)間內(nèi),子系統(tǒng)由各自的解算器獨(dú)立求解。主算法控制子系統(tǒng)之間的數(shù)據(jù)交換和所有仿真解算器(從機(jī))的同步。
協(xié)同仿真的方法:FMU實(shí)現(xiàn)將FMI函數(shù)調(diào)用包裝到仿真工具提供的API調(diào)用。
圖1 在單臺(tái)計(jì)算機(jī)上與工具耦合的聯(lián)合仿真
2. 如何使用FMI2.0 Co-Simulation導(dǎo)出FMU
通過SaberRD的FMI 2.0 Co-Simulation接口可以將一個(gè)完整的Saber設(shè)計(jì)工程或部分Saber模塊導(dǎo)出成為一個(gè)FMU。步驟如下:
2.1 創(chuàng)建一個(gè) SaberRD設(shè)計(jì)
2.2 添加輸入輸出端口
圖2 在原理圖上添加分層端口
從器件庫中的“原理圖連接器”類別中選擇適當(dāng)?shù)亩丝诜?hào),并將其連接到需要導(dǎo)出到FMU的原理圖節(jié)點(diǎn)。
對(duì)于離散端口和模擬控制端口,將分層輸入連接器連接到輸入端口,將分層輸出連接器連接到輸出端口。
對(duì)于物理模擬端口,如電氣和液壓端口,將分層模擬連接器連接到它們。
注意:
將錯(cuò)誤的分層連接器連接到節(jié)點(diǎn)會(huì)導(dǎo)致FMU導(dǎo)出失敗。將端口連接器添加到原理圖中的順序很重要,因?yàn)樵趍odelDescription.xml中為導(dǎo)出的FMU定義FMU端口的順序需要相同。
2.3 添加原理圖參數(shù)(可選)
對(duì)于任何需要在主模擬器中作為設(shè)計(jì)參數(shù)的模型參數(shù),以便在計(jì)算開始時(shí)更改它,應(yīng)在原理圖上添加設(shè)計(jì)參數(shù),選擇需要在模型屬性網(wǎng)格上作為參數(shù)導(dǎo)出的屬性,并將其值更改為所需的名稱,該名稱將在創(chuàng)建層次符號(hào)時(shí)用作層次參數(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)建層次符號(hào)
2.5 編輯頂層symbol外形(可選)
如果分層設(shè)計(jì)具有任何設(shè)計(jì)參數(shù)或物理模擬端口,則需要手動(dòng)更新生成的符號(hào)
圖5在符號(hào)上添加設(shè)計(jì)參數(shù)
在分層符號(hào)上更新物理端口方向,對(duì)于離散和模擬控制端口,在創(chuàng)建Saber設(shè)計(jì)原理圖時(shí),輸入/輸出信息端口已經(jīng)定義這些類型的端口不需要進(jìn)一步處理。
但是,模擬能量守恒物理端口,如電氣或液壓端口有兩個(gè)組件, across變量和through變量在同一個(gè)端口,而且沒有方向信息,要將這種端口導(dǎo)出到FMU,必須提供其方向和類型信息。
提供方向和類型,打開Symbol Editor ,選擇這個(gè)physical port., 添加 behavior property
在 Property Name欄,輸入 causality
在Initial Value欄, 輸入方向和類型信息,用空格隔開
方向信息和信號(hào)類型參考下表:
表1 更新后的物理端口因果關(guān)系屬性
圖5 在物理端口符號(hào)上添加因果關(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在同一個(gè)文件夾下,
- Platform: win64, win32, linux64, and linux32. 選擇操作系統(tǒng)平臺(tái)
- Additional Design Data Files: 添加除了models ( .sin, .vhdl), symbols ( .ai_sym),和 schematic ( .ai_sch),外其他文件,如 (*.ai_dat) for the TLU (Table Look-Up) 模型,仿真時(shí)會(huì)用到該文件。如果不需要相關(guān)文件,該欄可以空著。
- stopTime: FMI co-simulation仿真停止時(shí)間,默認(rèn)為1.0 seconds.
- stepSize: the co-simulation仿真步長,. 默認(rèn)為 is 1.0e-3 seconds.
- Timeout: 協(xié)同仿真響應(yīng)最大時(shí)間
- 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 端口號(hào). 默認(rèn)為0
3. 將SaberRD設(shè)計(jì)導(dǎo)出到FMU
使用SaberRD導(dǎo)出的FMU模型,可以用于任何FMU仿真,平臺(tái)包括win64, win32, linux64 和 linux32。
3.1 設(shè)計(jì)示例說明
A、該設(shè)計(jì)有兩個(gè)參數(shù)
第一個(gè) Von:二極管導(dǎo)通壓降
第二個(gè)Load:負(fù)載電阻
B、該設(shè)計(jì)有3個(gè)模擬電壓輸入端口
C、該設(shè)計(jì)有4個(gè)輸出端口ia、ib、ic、vdc
3.2 示例操作步驟
A、 下載示例,解壓并將符號(hào)文件(rectifier_3p.ai_sym),原理圖文件(rectifier_3p.ai_sch)和三相電壓激勵(lì)文件(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模型測(cè)試
A、設(shè)置環(huán)境變量SABER_FMU_SOLVER的值為SaberRD的安裝路徑,例如:C:SynopsysSaberRD64T-2022.03
B、下載本文提供了FMUChecker-2.0.4b1-win64,來進(jìn)行模型測(cè)試。
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)行時(shí)會(huì)在底層調(diào)用SaberRD仿真器,如果沒有simulator license會(huì)報(bào)錯(cuò)誤。
-
連接器
+關(guān)注
關(guān)注
99文章
15390瀏覽量
140567 -
仿真器
+關(guān)注
關(guān)注
14文章
1037瀏覽量
85419 -
模擬器
+關(guān)注
關(guān)注
2文章
894瀏覽量
44410 -
協(xié)同仿真
+關(guān)注
關(guān)注
0文章
6瀏覽量
8229 -
HDL語言
+關(guān)注
關(guān)注
0文章
48瀏覽量
9167
發(fā)布評(píng)論請(qǐng)先 登錄
康謀分享 | 自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(二)

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

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

求助協(xié)同仿真程序調(diào)試
采用Modelsim FLI接口的協(xié)同仿真技術(shù)
基于Altera FPGA的軟硬件協(xié)同仿真方法介紹
什么是Ansoft Designer與Ansoft HFFS雙工器協(xié)同仿真?
HW協(xié)同仿真錯(cuò)誤
如何使用Artix-7 FPGA進(jìn)行以太網(wǎng)協(xié)同仿真?
Saber Simulink協(xié)同仿真方法
Modelsim FLI接口的協(xié)同仿真技術(shù)

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

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

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

評(píng)論