人在仿真软件万博1manbetx

万博1manbetxSimulink &基于模型的设计

在MATLAB中执行状态流图

在MATLAB R2019a中,现在可以创建可以在MATLAB中执行的独立状态流图。让我们看看它是如何工作的!

开始

首先,一个重要的概念:一个独立的状态流程图是一个MATLAB类。不同之处在于您使用statflow图形语言而不是MATLAB代码来编辑它。

首先,使用Stateflow图表以下条目在MATLAB工具条中的按钮:

新的Stateflow文件

下面是我能想到的最简单的例子,每次执行图表时,我都会增加局部变量“x”的值。

简单的图表

我可以通过首先创建一个图表对象来执行这个图表obj并初始化x为零。然后我可以调用图表一步方法,并观察值如何x增加。

执行表

您还可以将事件输入添加到图表中,它们将生成MATLAB类的方法。在下面的图表中,我定义了a重置事件,并使用它来重置局部变量的值x

简单事件图

事件调用图

在statflow中设计MATLAB应用程序逻辑

关于独立的statflow Charts,我最喜欢的一件事是,它们与MATLAB应用程序很好地结合在一起程序设计师

让我们稍微扩展一下前面的示例。在App Designer中,我创建了这个简单的App:

MATLAB应用程序

我的目标是当我点击启用按钮,值显示上TicksCount量规将开始增加增量并不断增加延迟.如果我点击重置按钮,TicksCount回到零。

这是怎么做到的呢?

为了将应用程序与状态流程图连接起来,它们都需要了解另一个。在应用程序端,你可以创建一个私有属性来存储图表的句柄。在statflow方面,你需要创建一个局部变量,该变量将包含应用程序的句柄。这样,它们中的每一个都能够调用另一个。

在App Designer中,代码如下所示。startupFcn初始化名为appLogicChart并将句柄传递给app。然后图表对象存储在app属性中theChart

添加注册状态流程图

完成后,应用程序中的按钮可以调用图表中的事件。

App Designer按钮回调

同时,图表可以通过它的句柄访问应用程序的各种属性。多亏了statflow动画,在你的应用程序中调试逻辑变得非常方便:

一个实现逻辑状态流程图的MATLAB应用程序

在上面的图表中需要指出的一件重要的事情是the的用法关键字。在引擎盖下,图表建立了MATLAB计时器实现时间逻辑。在我看来,这是在MATLAB中使用计时器的最简单的方法。

现在轮到你了

如果你对这个新特性感兴趣,我建议你浏览在MATLAB环境下执行部分的statflow文档。

我们很想知道你们将如何利用独立的statflow图表……请在下面的评论中告诉我们!

就个人而言,我可能再也不会在MATLAB编辑器中编写MATLAB类了!

|

评论

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