GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型

上传人:公**** 文档编号:547928261 上传时间:2023-04-30 格式:DOC 页数:8 大小:103.50KB
返回 下载 相关 举报
GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型_第1页
第1页 / 共8页
GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型_第2页
第2页 / 共8页
GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型_第3页
第3页 / 共8页
GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型_第4页
第4页 / 共8页
GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型》由会员分享,可在线阅读,更多相关《GUI指导教程系列(9):在GUI中调用含未知参数的Simulink模型(8页珍藏版)》请在金锄头文库上搜索。

1、.本节教程主要向大家演示使用三种不同的方法,在GUIDE中嵌入Simulink模块。关于原理大家可以参考http:/ functionrunSimulinkModel(m,c,k)2 %即使在函数中有模型的参数输入或定义,但是Simulink默认只使用基本状态空间的数据3 sim(mass_spring);复制代码5、由于函数状态空间和基本状态空间的变量和数据不兼容,这就增加了在GUIDE中调用Simulink模型的难度。在接下来的教程中,我们将讨论使用三种方法来解决这个问题!GUIDE调用Simulink方法一:主要使用set_param函数设置仿真参数,具体参考http:/ axes(ha

2、ndles.axes1)%将axes1设置为当前坐标系,便于绘制仿真结果5 m=str2num(get(handles.mass_editText,String);%获取质量6 c=str2num(get(handles.damping_editText,String);%获取阻尼7 k=str2num(get(handles.spring_editText,String);%获取劲度系数%配置Simulink仿真选项,使其使用当前工作空间8 %设置Simulink从当前工作空间运行9 options=simset(SrcWorkspace,current);%使用sim()函数对模型进行仿真

3、10 %第一参数是模型名称11 %第二个参数是向量,指定仿真开始和结束时间12 %如果设置为,则使用在Simulink中设置的始末时间13 %第三个参数设置Simulink仿真选项14 sim(mass_spring,options);%绘制图形%模型中有一个OUT模块,使用它我们可以设置输出变量为tout和yout15 %然后就可以直接调用Simulink的获取仿真结果tout和yout进行绘图了16 plot(tout,yout)17 xlabel(Time)18 ylabel(Displacement)19 Title(2ndOrderMassSpringSystem)20 gridon

4、复制代码3、保存修改,再运行GUI。在文本框中输入“质量-弹簧-阻尼”系统的三个参数(注意不要输入字母、符号或负数),然后点击“Simulate!”按钮,看看我们的劳动成果吧!方法三:1、同样在GUIDE中打开未经有修改的simulink_gui.fig文件2、双击“Simulate!”按钮打开属性查看器,将Callback属性修改为simulateButton。以后每次点击“Simulate!”按钮时,则GUI只响应simlateButton中定义的操作,而不是simulate_pushbutton_Callback。注意:simulateButton是另外编写的一个M脚本文件,MATLAB

5、中脚本文件(不同于函数文件)中的所有变量和数据共用基本状态空间。3、其实simulateButton.m脚本的代码如下21 %注意到simulateButton.m文件不是一个M函数(以function开头的为M函数),而是M脚本!22 %Matlab脚本将在基本工作空间运行,它涉及到所有的变量和数据都保存在基本工作空间!23 %而Simulink所有参数默认调用基本工作空间的数据,所以此时我们就可以直接使用sim()函数进行模型仿真了!clearall%获取当前GUI窗体的句柄24 h=gcf;25 %获取GUI的handles结构体,它包含了所有控件的信息26 handles=guidat

6、a(h);%选择当前坐标系,由于后面的绘图27 axes(handles.axes1);%获取文本框中的Simulink仿真参数28 m=str2num(get(handles.mass_editText,String);%注意获取的string是一个字符串,需要使用str2num将其转换为数值29 c=str2num(get(handles.damping_editText,String);30 k=str2num(get(handles.spring_editText,String);%仿真系统31 sim(mass_spring);%绘制仿真结果图形32 plot(tout,yout)33 xlabel(Time)34 ylabel(Displacement)35 Title(2ndOrderMassSpringSystem)36 gridon复制代码其实方法二的一种变形就是,跨空间计算Simulink模型所需要的参数,比如evalin(base,m=5),就表示在基本工作空间运行m=5这条命令。4、保存下对GUI的修改,验证下我们的成果吧!.6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号