本周文件交换选择

我们最好的用户反馈

使用MATLAB gui与Simulink金宝app模型

格雷格的本周的精选有

金宝appSimulink-GUI同步示例通过将坎贝尔SIMULINK模型的GUI开发金宝app通过Nitin Skandan金宝app使用事件监听器和MATLAB用户界面的Simulink信号查看通过菲尔·戈达德

内容

不是每个人都需要看到Simulink模型金宝app

通常那些运行模拟的人想要改变一些输入和参数,看看模型如何响应,而不需要理解模型本身的复杂性。为模型提供图形用户界面(GUI)是满足为仿真的最终用户抽象模型内部结构需求的常用方法。

为什么是三个选择?

作为一名现场工程师,我与许多使用Simulink的客户进行了大量的工作,我经常会收到关于如何为Simulink模型提供GUI的问题。金宝app因此,我开始搜索File Exchange以寻找一个好的示例,但我找到了三个。

每个File Exchange条目都以不同的方式向Simulink模型添加GUI。金宝app所选的每个File Exchange条目都提供了相对简单的示例和文档。

方法1:使用SET_PARAM API更改模型参数

Will Campbell采用的基本策略是使用金宝appSET_PARAMSimulink应用程序编程接口(API)。金宝app

例如,在GUI中出现的滑块的回调函数中,使用以下方法更新模型中的增益块的值:

更新模型的增益值set_param ([bdroot/获得的),“获得”,值)

模型执行的控制是使用SET_PARAM和模型的SET_PARAM一起执行的模拟状态

最后,在模型打开、仿真启动等过程中,通过使用实现从模型到GUI的同步回调函数为Simulink图中的模型和块。金宝app

本例的构造方式是,GUI和Simulink模型以异步方式执行。金宝appWill在这个例子中包含的元素是为了维护GUI元素和Simulink模型参数之间的同步而在GUI和Simulink模型之间实现握手的努力。金宝app

方法二:自定义MATLAB代码s函数

Nitin Skandan通过使用GUI作为Sink和Source块来处理模型的GUI附件。也就是说,作为向Simulink模型提供输入或从Simulink模型显示输出的块。金宝app

这意味着GUI代码的执行发生在模型模拟过程中,因此使用这种方法,由于GUI和模型之间的内在关系,它们之间需要较少的握手。

为了创建接收器块,在图形窗口内的图形中显示信号,如上面的示例所示,Nitin使用了MATLAB的s函数

Nitin还提供了一些很好的文档来描述通过自定义Simulink块创建这种类型的GUI所需的内容。金宝app

方法3:使用Simulink金宝app事件监听器

最复杂的方法是在编辑和执行的各个阶段监听Simulink模型生成的事件。金宝app

这就是Phil Goddard所采用的方法。

在某些方面,这与威尔采取的方法相似。但是,Phil创建的不是使用Model和Block回调函数来维护模型和GUI之间的同步性事件监听器在Simulink模型中发生特定事件时执行函数。金宝app

使用这种方法可以在模型和GUI之间实现非常紧密的集成,而不需要填充模型回调函数。因此,GUI的代码可以完全独立于模型进行维护,并且不会影响将模型用于其他应用程序,例如在没有GUI的情况下进行手动模拟模型参考

这些方法比较起来如何?

总之,上面三个File Exchange条目中处理的方法如何比较?

模型的回调 信号接入 困难
SET_PARAM_API 没有 是的 没有 媒介
MATLAB的s函数 是的 也许 是的 媒介
事件监听器 没有 没有 是的

  • 块——需要向模型中添加一个块来启用GUI
  • 模型回调——需要填充模型或模型块的回调属性
  • 信号访问-能够在模拟期间访问信号值
  • 难度——创建这些类型的GUI实现的相对难度

评论

如果你想对这篇文章留下任何评论,请点击在这里




使用MATLAB®7.14发布

|
  • 打印
  • 发送电子邮件

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。