matlab m 调用mdl,[分享]MATLAB m语言中调用simulink的程序
[分享]MATLAB m語言中調用simulink的程序
與前一篇出自同一朋友的博客
MATLAB m語言中調用simulink的程序
1.打開simulink模型的幾種方式
% 打開文件對話框
[FileName, PathName, FilterIndex] = uigetfile({'*.mdl','Model-files (*.mdl)'}, '打開');
if FileName ~= 0
% 加載模型
load_system([PathName, FileName]);
end
% 新建一個模型
new_system('untitled', 'Model');
% 打開一個仿真模型
open_system([PathName, FileName]);
2.獲取當前simulink的文件信息并顯示
% 獲取當前模型名稱
set(handles.ModelNameEdit, 'String', get_param(gcs, 'Name'));
% 獲取當前模型文件名稱即文件路徑
set(handles.SourceFileEdit, 'String', get_param(gcs, 'FileName'));
% 獲取當前模型創建的時間
set(handles.CreatedOnEdit, 'String', get_param(gcs, 'Created'));
% 獲取當前模型最近一次修改的時間
set(handles.LastSaveOnEdit, 'String', get_param(gcs, 'LastModifiedDate'));
% 獲取當前simulink的版本
set(handles.VersionEdit, 'String', get_param(gcs, 'Version'));
%獲取當前模型的版本
set(handles.ModelVersionEdit, 'String', get_param(gcs, 'ModelVersion'));
3.查找當前模型的所有block及對應的所有對話框參數
% 查找當前模型中的所有模塊,為了方便,首先顯示頂層模塊,再顯示其他層
BlocksTop = find_system(get(handles.ModelNameEdit, 'String'), 'SearchDepth', 1, 'Type', 'block');
BlocksAll = find_system(get(handles.ModelNameEdit, 'String'), 'Type', 'block');
AllBlocks = [BlocksTop; setdiff(BlocksAll, BlocksTop)];
% 顯示所有參數,參數名稱以struct的數據結構顯示
ParameterStruct = get_param(Block,'DialogParameters');
% 參數struct結構體的域,得到參數的名稱,以cell的數據結構顯示
Parameters = fieldnames(ParameterStruct);
% 獲取第一個參數的值
ParameterValue = get_param(Block, Parameters{1});
% 獲取參數值類型
ValueStruct = ParameterStruct.(Parameters{1}) ;
ParameterType = ValueStruct.Type;
% 參數值的提示信息
ParameterPrompt = ValueStruct.Prompt;
ParameterEnum = ValueStruct.Enum;
ParameterAttributes = ValueStruct.Attributes;
4.修改某個參數的值
% 獲取編輯框中的修改值
ChangedValue = get(handles.ParameterValueEdit, 'String');
try
% 嘗試保存修改
set_param(Block, Parameter, ChangedValue);
catch
% 修改失敗,彈出提示信息
errordlg([{['無法將', Block, ' 的 ', Parameter, '參數值修改為 ', ChangedValue]}; {'輸入的參數值有誤,請重新輸入!'}], '錯誤', 'on');
% 恢復原來的值
set(handles.ParameterValueEdit, 'String', get_param(Block, Parameter));
end
5.查詢模型中某些特點類型的block
% 查找當前模塊中的subsystem
SubSystems = find_system(gcs, 'Type', 'block');
% 查找所有的Scope
AllScope = find_system(gcs, 'BlockType', 'Scope');
% 查找所有的ToFile
AllToFile = find_system(gcs, 'BlockType', 'ToFile');
% 查找所有的ToWorkSpace
AllToWorkSpace = find_system(gcs, 'BlockType', 'ToWorkspace');
總結
以上是生活随笔為你收集整理的matlab m 调用mdl,[分享]MATLAB m语言中调用simulink的程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux优盘挂载卸载以及文件查看
- 下一篇: matlab数学建模程序代码大全,mat