簡介功能模擬單元(Functional Mock-up Unit, FMU)是一種模擬模型,它描述了由微分方程、代數方程和離散時間方程構成的動態系統。功能模擬接口(Functional Mock-up Interface, FMI)是為在不同仿真環境下對這些方程進行評估而定義的標準接口。
Saber支持導入FMU 2.0,通過將擴展為. FMU的FMU模型轉換為等效的MAST模型,FMU 2.0是模型交換接口之一。生成的MAST模型繼承了MAST的所有特征,適用于所有分析,如DC(工作點分析)、AC(小信號分析)、TR(瞬態分析)以及高級環路分析,如MC(統計蒙特卡羅分析)和Vary(確定性參數掃描分析)。
01
FMI概述
- FMl是一個獨立于工具的標準,使用xml文件和c代碼(在DLL/共享庫中編譯或在源代碼中編譯)的組合來支持模型交換和動態模型的聯合模擬。它的目標是改善供應商和原始設備制造商之間的仿真模型交換。FMUs的應用非常有限,它在交換信號流數據方面非常有用。FMUs不能用于跨越守恒能量邊界。因此,如果在FMU和導入模擬器之間存在加載效應的情況下使用FMU,則它將不起作用。
- FMI模型交換標準定義了在工具之間交換動態模型的接口。Saber支持FMU導入功能。
- FMU以zip文件的形式發布。zip文件包含:
lFMI描述文件(XML格式)。
下列一項或兩項:
- FMU的C源和所需的運行時庫。
- 一個或多個目標計算機的二進制文件,例如Windows動態鏈接庫(.dll)或Linux共享對象庫(.so)。
- FMU特定文件格式的附加FMU數據,例如表或圖。
注意:如果FMU提供者希望隱藏源代碼以保護敏感數據,則特別需要提供二進制文件而不是C源代碼。FMU還可以包含物理參數或幾何尺寸,這些參數不應該是開放的,而應該以二進制格式共享。以二進制格式提供庫還可以在另一個模擬環境中實現FMU的全自動導入。另一方面,有些功能需要源代碼。 - FMU的示意圖如下圖所示:
*Figure 1 *Data flow between the environment and an FMU
02
Saber導入FMU的方法
通過拖放方法將FMU導入庫
導入FMU最簡單的方法是拖放方法。要將一個FMU導入到庫中,請遵循以下步驟:
1.打開文件瀏覽器,選擇要導入的FMU (*. FMU),并將其拖放到現有庫中。見下圖。
*Figure 2 *Import of an FMU by Drag-and-Drop method
2.將FMU放入庫后,將FMU文件復制到庫中。
在庫中自動創建一個新的等效MAST模型。生成的模型的名稱與FMU的modelDescription.xml中定義的< modelelldentifier >相同,并且是小寫字母。同時還創建了原理圖符號。在此過程中,符號輔助向導將打開,如下圖所示。從符號助手向導中,可以重新排列引腳的位置,旋轉符號方向,并查看轉換模型的日志信息。
Figure 3**Symbol Assistant Wizard
3.右鍵單擊添加了新FMU模型的庫。從彈出式菜單選擇編譯庫…或Update Library…。編譯庫后,新的FMU模型就可以進行仿真了。新的MAST模型的文檔在更新庫之后也可以得到。
手動將FMU導入庫
手動將FMU導入庫要手動將FMU添加到庫中,執行以下步驟:
1.右鍵單擊要添加FMU的庫,在彈出菜單中選擇add Items…。打開文件瀏覽器。
2.在“文件名”列表中選擇文件類型FMU Models (*. FMU)。
3.選擇FMU,單擊Open。所選的FMU被添加到庫中。另外,在庫中生成一個新的MAST模型和一個符號。
4.編譯新模型。右鍵單擊添加了新FMU模型的庫。從彈出式菜單選擇編譯庫…或Update Library…。庫被編譯,新的FMU模型已經準備好進行仿真。此外,在更新庫之后,可以獲得新的MAST模型的文檔。將FMU手動添加到庫的方法如下圖所示。
將FMU手動添加到庫的方法如下圖所示。
*Figure 4 *Manual Addition of an FMU to a Library
**使用AIM命令將FMU轉換為MAST模型
**
本實例將考慮FCC和CISPR標準,以檢查設計是否符合標準。圖2所示為本標準對a類設備規定的傳導輻射限值作為頻率的函數。
也可以通過AIM命令導入FMU: FMU2MAST。AIM命令格式如下:
FMU:FMU2MAST foo.fmu -output dirname -statepin discretelnu -debug onloff
上述語法中各選項的說明如下:
- -output:指定保存新生成的MAST模型的目錄名。如果未指定輸出目錄名,則新生成的MAST模型保存在當前目錄中。
- -statepin:指定FMU導入過程中用于狀態引腳的單元類型。默認選項是離散的。使用此選項,狀態引腳將使用FMU中定義的相同單元創建。如果該選項指定為nu,則創建狀態引腳時不帶任何單位,并且忽略FMU中定義的端口類型的單位。
- -debug:將調試信息記錄在日志文件中。如果設置為on,則詳細的調試信息將記錄在日志文件中。默認為關閉。
使用AIM命令FMU:FMU2MAST,只生成等效的MAST模型,不需要為其生成符號和文檔。要使該模型可用于模擬器,您需要將該模型添加到庫并編譯庫,以便創建符號和文檔。有關如何將MAST模型添加到庫的更多信息,請參閱庫管理器用戶指南。
03
支持的模擬分析
支持的分析
- 工作點分析
- DT(工作點掃描分析)
- 交流小信號分析
- PAC(周期交流分析)
- 瞬態分析
- Alter(參數變更)
- 并行模式
- 蒙特卡羅統計分析
- 參數掃描分析
- 多變量分析
- PZ(零點極分析)
- 靈敏度分析
不支持的分析
- 應力分析:由于FMU中沒有可用的應力信息,因此在應力分析中不支持生成的MAST模型。然而,如果需要為導入的FMU模型支持應力分析,您可以將應力測量添加到生成的MAST模型的control_section中。
- 故障分析:故障分析不支持導入的FMU模型。
04
模型局限性
由FMU生成的MAST模型有以下幾個限制:
- Saber不支持FMI 1.0。Saber只支持FMI 2.0。
- FMI有兩個接口:模型交換和聯合仿真。
- Model-Exchange接口標準中有導入和導出兩種模式。
- FMU可以在一個FMU中為多個平臺提供二進制庫。目前,FMU導入僅支持Windows和Linux上32位格式的FMU。這兩個平臺都不支持64位fmu。
- 在FMI中,用字符串類型定義端口是合法的。但是,Saber不支持字符串類型的端口。因此,具有字符串端口的FMU不能轉換為MAST模型。FMU中具有枚舉單元的離散端口被轉換為具有單元的等效狀態引腳。但是,FMU中沒有為用于離散端口的枚舉單元定義沖突解決函數。因此,等效的MAST狀態引腳沒有沖突解決功能。如果需要將這種引腳連接到具有分辨率功能的MAST引腳上,則可以開發轉換模型,將沒有分辨率功能的邏輯轉換為具有分辨率功能的邏輯。FMI目前不支持電、液壓等節能接口。
- 在FMU導入過程中,不可能使用能量保守引腳創建MAST模型。但是,如果系統沒有能量保守變量作為端口,并且系統在模型內部滿足KCL和KVL定律,則可以將能量保守FMU系統轉換為單個MAST模型。
- FMI和MAST都有一個物理單元定義。但是,FMI物理單位并不轉換為等效單位。所有連續變量都轉換為MAST,沒有nu(無單位)單位。然后將枚舉單元轉換為等效的MAST枚舉類型和狀態單元。
-
二進制
+關注
關注
2文章
796瀏覽量
41758 -
仿真器
+關注
關注
14文章
1019瀏覽量
83939 -
模擬器
+關注
關注
2文章
881瀏覽量
43423 -
FCC
+關注
關注
0文章
201瀏覽量
26077
發布評論請先 登錄
相關推薦
評論