MATLAB具有廣泛的 API(應用程式接口),用于從MATLAB 代碼建構和修改 Simulink 模型。這可能來自 MATLAB 指令行,來自函數或腳本,或者來自任何可以執行m代碼的地方。
本文分享幾個用于使用m代碼建構和/或操作 Simulink 模型的更常見的函數。主要函數是get_param 和set_param。它們使模型或子產品的每個屬性都可以分别從 MATLAB 代碼中進行檢查和更改。請注意,模型中一般有數百個參數,并且對于大多數預設設定就足夠了。
本文涵蓋的主題是
使用get_param
使用set_param
使用M 代碼構模組化型
1、使用 get_param
get_param 是用于檢查模型現有屬性的主要 MATLAB 函數。
在使用 get_param 之前,必須先将模型加載到記憶體中。這可以通過手動打開模型或使用 API 函數 load_system 或 open_system 來實作。
get_param 可用于檢查感興趣的特定參數。
>> load_system('simSolverExample')
>> get_param('simSolverExample','Name')
ans =
'simSolverExample'
>> get_param('simSolverExample','Location')
get_param('simSolverExample','Solver')
get_param('simSolverExample','StopTime')
ans =
-7 -7 1543 831
ans =
'ode1'
ans =
'10.0'
get_param 還有一個可選輸入,它将傳回一個結構數組,其中包含所有參數及其目前值的清單。
2、使用 set_param
與 get_param 類似的用于修改模型和子產品參數的函數稱為 set_param。它需要三個輸入:要修改的對象(塊、模型或信号)的名稱;要修改的屬性;和新的價值。請注意,某些屬性是隻讀的,是以無法修改。
3、使用 M 代碼建構simulink模型
可以使用純 MATLAB 代碼建構 Simulink 模型——無需使用通常的視覺、點選和滑鼠操作。雖然很少這樣做,但它确實展示了如何使用各種 MATLAB-Simulink API 函數。
function autoCreateModel
fname = 'autoCreatedModel';
if exist(fname,'file') == 4
if bdIsLoaded(fname)
close_system(fname,0)
end
delete([fname,'.mdl']);
end
new_system(fname);
add_block('built-in/Sin', [gcs,'/Sine Wave'],...
'Position', [140 95 170 125],...
'SampleTime','0');
add_block('built-in/Gain', [gcs,'/Gain'],...
'Position',[240 95 270 125],...
'Gain','2');
add_block('built-in/Scope', [gcs,'/Scope'],...
'Position',[350 94 380 126]);
add_line(gcs,'Sine Wave/1','Gain/1')
add_line(gcs,'Gain/1','Scope/1')
set_param(gcs,...
'Solver','FixedStepDiscrete',...
'FixedStep','0.1');
% Save the model
save_system(fname);