在基於模型開發的過程當中,除了模型本身之外,模型的參數也是開發成果的一個重要部分,筆者總結了幾種基於純Matlab/Simulink環境下的參數管理方法,與大家分享一下(TargetLink的數據管理方法不在本文討論範圍之內)。

以某電機FOC控制的模擬模型為例:

整個模型由測試用例、FOC控制演算法和PlantModel三部分組成,而具體到模型的參數,又有以下幾種:

模擬環境參數:比如各子模塊的不同模擬周期;

測試用例:測試用例中電機轉速值和電機力矩指令值;

PlantModel參數:被測電機的參數(電阻電感等),供電電壓,環境溫度等等;

ECU硬體參數:ECU數據採集及功率輸出的相關電路參數;

ECU控制參數:FOC控制演算法的參數,如PI值等等;

為了統一集中的對這些參數進行管理,可用到如下的方法:

M文件:

將所有文件定義在一個m文件中,再開始模擬前自動運行或手動運行該m文件。

Mat文件

將工作空間中的相關參數保存為一個Mat文件,在開始模擬前自動或手動Load該mat文件。

Simulink callback function

如上圖,將相關參數的定義寫在模擬開始之前的四個CallBack函數中,區別是寫在後面兩個的話,由於每次模擬callback函數都會重新執行一遍,因此在Matlab工作空間對參數的修改就會無效。因此,可以將不同的參數特性(是否允許在工作空間被更改?)放在不同的callback函數內。

Simulink Data Dictionary

SimulinkDataDictionary是在Matlab 2014a以後才引入的功能。鏈接方法(第一次可通過該操作從工作空間創建一個DD):

使用DD的好處是:

模型與DD的鏈接建立好以後,可自動運行,可以在ModelExplorer中對DD進行編輯,設定最大最小值,顯示哪些值被修改過,查找該參數被那些simlink模塊所使用,比較兩個不同的DD的差異等等。

關於版本管理:

假設模型和參數的版本號經歷了如上圖的變遷,使用方法(1)(2)(4),因為模型文件和參數文件是兩個獨立的文件,只要在標定配置文件中標明該版本所對應的模型版本號,就能按圖索驥。而採用方法(三),以模型V0.2為例,其最新的狀態對應的是參數V0.2,而如果要追溯到該版本模型對應參數版本V0.1的狀態,則需要費一些周章。

下載IND4汽車人APP,閱讀更多Simulink系列專業文章!


推薦閱讀:
相关文章