| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3856 人关注过本帖
标题:[分享]MATLAB m语言中调用simulink的程序
只看楼主 加入收藏
Genial
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:175
专家分:0
注 册:2006-3-31
收藏
 问题点数:0 回复次数:1 
[分享]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 simulink 语言 分享 
2006-03-31 20:33
cyd415
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-17
收藏
得分:0 
看起来不错,以后在实践中试试
2006-04-17 23:08
快速回复:[分享]MATLAB m语言中调用simulink的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016186 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved