在MATLAB中执行状态流图
在MATLAB R2019a中,现在可以创建可以在MATLAB中执行的独立状态流图。让我们看看它是如何工作的!
开始
首先,一个重要的概念:一个独立的状态流程图是一个MATLAB类。不同之处在于您使用statflow图形语言而不是MATLAB代码来编辑它。
首先,使用Stateflow图表以下条目新在MATLAB工具条中的按钮:
下面是我能想到的最简单的例子,每次执行图表时,我都会增加局部变量“x”的值。
我可以通过首先创建一个图表对象来执行这个图表obj并初始化x为零。然后我可以调用图表一步方法,并观察值如何x增加。
您还可以将事件输入添加到图表中,它们将生成MATLAB类的方法。在下面的图表中,我定义了a重置事件,并使用它来重置局部变量的值x:
在statflow中设计MATLAB应用程序逻辑
关于独立的statflow Charts,我最喜欢的一件事是,它们与MATLAB应用程序很好地结合在一起程序设计师.
让我们稍微扩展一下前面的示例。在App Designer中,我创建了这个简单的App:
我的目标是当我点击启用按钮,值显示上TicksCount量规将开始增加增量并不断增加延迟.如果我点击重置按钮,TicksCount回到零。
这是怎么做到的呢?
为了将应用程序与状态流程图连接起来,它们都需要了解另一个。在应用程序端,你可以创建一个私有属性来存储图表的句柄。在statflow方面,你需要创建一个局部变量,该变量将包含应用程序的句柄。这样,它们中的每一个都能够调用另一个。
在App Designer中,代码如下所示。startupFcn初始化名为appLogicChart并将句柄传递给app。然后图表对象存储在app属性中theChart.
完成后,应用程序中的按钮可以调用图表中的事件。
同时,图表可以通过它的句柄访问应用程序的各种属性。多亏了statflow动画,在你的应用程序中调试逻辑变得非常方便:
在上面的图表中需要指出的一件重要的事情是the的用法后关键字。在引擎盖下,图表建立了MATLAB计时器实现时间逻辑。在我看来,这是在MATLAB中使用计时器的最简单的方法。
现在轮到你了
如果你对这个新特性感兴趣,我建议你浏览在MATLAB环境下执行部分的statflow文档。
我们很想知道你们将如何利用独立的statflow图表……请在下面的评论中告诉我们!
就个人而言,我可能再也不会在MATLAB编辑器中编写MATLAB类了!
- 类别:
- Stateflow,
- 有什么新鲜事吗?
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。