Simulink輸入輸出介面屬性自動配置

基於模型的軟體開發過程中,需要對輸入輸出訊號的一些屬性做基本的設定。單個Simulink功能模組可能會有超過幾十個輸入輸出訊號,這個時候往往會採用自動配置的方式,來快速完成屬性設定。

本文以輸入訊號的資料型別自動配置為例,介紹下自動配置的具體實現方法。

假設已開發完成如下圖所示的Simulink功能模組。

Simulink輸入輸出介面屬性自動配置

該功能模組有4個輸入訊號x1、x2、x3、x4,它們的初始預設資料型別(Data type)都是Inherit: auto。

Simulink輸入輸出介面屬性自動配置

首先,我們需要在Excel中對訊號的資料型別進行設定,將x1、x2、x3、x4的資料型別分別設定為boolean、uint8、uint16、single,如下圖。

Simulink輸入輸出介面屬性自動配置

然後,分別執行以下程式碼。

將當前模型的輸入介面及其名稱找到。

Inport=find_system(gcs,‘SearchDepth’,1,‘BlockType’,‘Inport’);InportName = get_param(Inport,‘Name’);

將上面定義的excel檔案資料匯入,並分別命名為訊號名稱及其資料型別。

[num,txt] = xlsread(‘DD。xlsx’,‘InputSignal’);ExcelName = txt(2:end,1);DataType = txt(2:end,2);

透過for迴圈,將模型名稱與excel定義名稱對比,將名稱相同的資料型別賦值到對應的模型介面。

for i=1:length(Inport)    for j=1:length(ExcelName)        if InportName{i}==ExcelName{j}            set_param(Inport{i},‘OutDataTypeStr’,DataType{j});        end    endend

執行完以上程式碼,4個輸入介面的資料型別就可以設定為與excel定義的一致。

Simulink輸入輸出介面屬性自動配置

如果後面模組輸入介面數量或者介面對應的資料型別有變化,我們只需要在excel中進行對應的修改,再執行程式碼即可完成自動配置。

以上,用一個簡單的例子,介紹了輸入訊號的資料型別自動配置方法。大家可以根據自己的建模需要,做一些適合自己的快速建模指令碼,提高建模效率。

Simulink模組的每一個手動設定介面都會有對應的介面,透過指令碼呼叫這些介面就可以實現很多的自動配置功能,具體可參考Matlab官方幫助文件。