基於模型的軟體開發過程中,需要對輸入輸出訊號的一些屬性做基本的設定。單個Simulink功能模組可能會有超過幾十個輸入輸出訊號,這個時候往往會採用自動配置的方式,來快速完成屬性設定。
本文以輸入訊號的資料型別自動配置為例,介紹下自動配置的具體實現方法。
假設已開發完成如下圖所示的Simulink功能模組。
該功能模組有4個輸入訊號x1、x2、x3、x4,它們的初始預設資料型別(Data type)都是Inherit: auto。
首先,我們需要在Excel中對訊號的資料型別進行設定,將x1、x2、x3、x4的資料型別分別設定為boolean、uint8、uint16、single,如下圖。
然後,分別執行以下程式碼。
將當前模型的輸入介面及其名稱找到。
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定義的一致。
如果後面模組輸入介面數量或者介面對應的資料型別有變化,我們只需要在excel中進行對應的修改,再執行程式碼即可完成自動配置。
以上,用一個簡單的例子,介紹了輸入訊號的資料型別自動配置方法。大家可以根據自己的建模需要,做一些適合自己的快速建模指令碼,提高建模效率。
Simulink模組的每一個手動設定介面都會有對應的介面,透過指令碼呼叫這些介面就可以實現很多的自動配置功能,具體可參考Matlab官方幫助文件。