gui指导教程系列(9)在gui中调用simulink模型-matlab技术论坛.docxVIP

  • 216
  • 0
  • 约5.06千字
  • 约 10页
  • 2021-04-13 发布于天津
  • 举报

gui指导教程系列(9)在gui中调用simulink模型-matlab技术论坛.docx

GUI 指导教程系列 (9)——在 GUI 中调用 Simulink 模型 MATLAB 技术论坛 ... MATLAB 技术论坛 标题 : GUI 指标题: GUI 指导教程系列 (9)——在 GUI 标题 : GUI 指 作者: dynamic 时间: 2010-3-25 22:40 导教程系列 (9)——在 GUI 中调用 Simulink 模型本节教程主 要向大家演示使用三种不同的方法,在 GUIDE 要向大家演示使用三种不同的方法,在 GUIDE 中嵌入 Simulink 模块。关于原理大家可以参考 /access/ ... g_guis/f6-8865.html 在 Simulink 中能够直观快速的搭建系统模型,如果再联合 GUIDE 的面向对象可视化编程,可以说是锦上添花!将 Simulink 融入到 Simulink 融入到 GUIDE 中可以方便模型的终端用户,很容 易直接可视化的操控模型参数和显示仿真结果,而此时并不 需要进入 Simulink 环境。构建 Simulink 模型该部分我们将快 使用。速的构建一个 Simulink 模型方便在后面的 GUIDE 中 本次我们就使用一个简单的二阶 #8220; 质量-弹簧-阻尼 使用。 #8221; 系统作为示例吧。 在使用该教程时,我们假定您已 经具备 Simulink 相关建模基础和了解 #8220; 质量-弹簧-阻 尼#8221; 系统的理论。 因此在这里我就不深入介绍 Simulink 模型的建立和 #8220;质量-弹簧 -阻尼 #8221;系统的数学推 导。如果的确需要,建议您参考下 /Tutorials/Matlab/Simulink/index.html1 、先 载论坛为您制作好的 Simulink 和 GUI 模型 simulink-gui.zip (13.04 KB, 下载次数 : 338) ,包含 simulink_gui.fig 、 simulink_gui.m 、 simulateButton.m 和 mass_spring.mdl 四个文件, 将其解压到 MATLAB 工作目录。 2、在 Simulink 中打开模型,框图如下所示 3、请注意增益 (Gain)模块的增益使用的是变量 1/m、c/m和k/m,而不是数 值。因为 Simulink 默认使用基本状态空间 (Base WorkSpace) 的数据,因此在仿真之前必须先在状态空间定义参数m 的数据,因此在仿真之前必须先在状态空间定义参数 m、c 和k,否则将出错。当然我们可以使用 set_param()函数直接 设置参数,这个将会在后面讲解。 4、由于函数有自己的状 态空间(不是Base Works pace),因此在函数中使用 sim()函数 进行模型仿真,即使你在函数中定义了模型的必要参数,但 是这些参数只存在于函数状态空间中,模型在仿真是没法获 取。比如下面的代码将会导致错误 function runSimulinkModel(m,c,k) % 即使在函数中有模型的参数输入或定义,但是 Simulink 默认只使用基本状态空间的数据 sim(mass_spring); 复制代码 5、由于函数状态空间和基本状态空间的变量和数据不兼容, 这就增加了在 GUIDE 中调用 Simulink 模型的难度。在接下 来的教程中,我们将讨论使用三种方法来解决这个问题! GUIDE 调用 Simulink 方法一: 主要使用 set_param 函数设置 仿真参数方法二: Simulink 仿真参数方法二: Simulink 中提供的 simset() 函数,可以让用 户自定 Simulink 模型的运行空间 (默认是 Base Workspace), 我们只要将 Simulink 设置为从当前工作空间运行就 Ok 了。 帮助! 1、在 GUIDE关于 帮助! 1、在 GUIDE 中打开 simulink_gui.fig 文件 (不会使用 GUIDE ,那先看下 /thread-5217-1-1.html) , GUI 布局如 下所示 2、打开 simulink_gui.m 文件定位到 Simulate! 按钮的 回调函数 simulate_pushbutton_Callback ,在后面添加如下代 码 axes(handles.axes1) % 将 axes1 设置为当前坐标系,便于 绘制仿真结果 m=str2num(get(handles.mass_editText,String)); % 获取质量 c=str2num(get(handles.damping_editText,String)); % 获取阻 k=str2num(get(handles.spr

文档评论(0)

1亿VIP精品文档

相关文档