天天看點

matlab用m代碼來建立simulink仿真模型檔案

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 還有一個可選輸入,它将傳回一個結構數組,其中包含所有參數及其目前值的清單。 ​

matlab用m代碼來建立simulink仿真模型檔案

2、使用 set_param​

與 get_param 類似的用于修改模型和子產品參數的函數稱為 set_param。它需要三個輸入:要修改的對象(塊、模型或信号)的名稱;要修改的屬性;和新的價值。請注意,某些屬性是隻讀的,是以無法修改。

matlab用m代碼來建立simulink仿真模型檔案

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);      
matlab用m代碼來建立simulink仿真模型檔案