本周文件交换精选

我们最好的用户提交

使用MATLAB gui和Simulink金宝app模型

格雷格的本周的选择是

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

内容

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

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

为什么三个选择?

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

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

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

从根本上说,Will Campbell采用的策略是使用金宝appSET_PARAM应用程序编程接口(API)的Simulink。金宝app

例如,在GUI中出现的滑块的回调函数中,模型中增益块的值会使用:

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

模型执行的控制是使用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和模型之间需要的握手更少,因为使用这种方法,GUI和模型之间存在内在的关系。

为了创建汇聚块,将信号显示在图窗口内的图中,如上图所示,Nitin使用aMATLAB的s函数

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

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

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

这是菲尔·戈达德采用的方法。

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

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

这些方法比较起来怎么样?

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

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

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

评论

如果您对这篇文章有任何意见,请点击在这里




发布MATLAB®7.14

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。