人在仿真软件万博1manbetx

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

在MATLAB中实现状态流程图

在MatlabR2019A中,现在可以创建可以在MATLAB中执行的独立状态流程图。让我们看看这是怎么回事!

开始

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

要开始,请使用状态流程图以下条目MATLAB toolstrip中的按钮:

新的Stateflow文件

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

简单的图表

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

执行表

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

带事件的简单图表

使用事件调用图表

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

关于独立状态流程图,我最喜欢的一点是,它们与使用程序设计师

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

MATLAB应用程序

我的目标是当我点击使可能按钮,值显示上滴答声量规将开始增加增量而且每一天都在增加延迟.如果我点击重置按钮滴答声返回到零。

这是怎么回事?

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

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

添加注册状态流程图

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

App Designer按钮回调

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

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

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

现在轮到你了

如果您对这个新功能感兴趣,我建议您浏览MATLAB中的执行Stateflow文档的第节。

我们很想知道您将如何利用独立状态流程图。。。请在下面的评论中告诉我们!

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

|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。