创建Stateflow图表为执行MATLAB对象
把状态机编程的优点与MATLAB的完整功能®,创建一个独立的Stateflow®图表以外的一个模型金宝app®模型。保存独立的表扩展.sfx
作为一个MATLAB对象并执行它。优化设计通过使用图表动画和图形调试工具。
与独立的图表,您可以创建MATLAB应用程序,如:
MATLAB应用程序设计师使用模式逻辑来管理用户界面小部件的行为。看到通过使用Stateflow图表设计人机界面逻辑。
通信协议和数据流处理的应用程序使用时序逻辑。看到使用图表对象模型的通信协议。
数据采集工具箱™或仪器控制工具箱™使用基于定时器的应用程序逻辑来监视和控制外部的任务。看到通过使用Stateflow实施财务战略。
这些应用程序可以共享,而不需要执行Stateflow许可证。有关更多信息,请参见分享独立图表。
构建一个独立的图
构建一个独立的Stateflow图,打开Stateflow编辑器使用编辑
函数。例如,在MATLAB命令窗口中,输入:
编辑chart.sfx
chart.sfx
不存在,Stateflow编辑器打开一个空表的名字吗图表
。否则,编辑器打开定义的图表自解压
文件。
在Stateflow编辑器中,创建一个独立的图相结合,转换,数据,和其他元素。有关更多信息,请参见构建和运行一个Stateflow图表。
保存独立的图之后,帮助
在MATLAB函数显示信息执行:
帮助chart.sfx
从MATLAB命令窗口关闭独立图表,使用sfclose
功能:
sfclose图表
创建一个Stateflow图对象
执行一个单独的图表在MATLAB中,首先创建一个Stateflow图表对象。使用的名称自解压
文件独立的表函数。指定数据的初始值作为名称-值对。例如,假设您定义一个单独的图表与数据对象data1
和data2
。然后这个命令创建图表对象chartObject
,初始化data1
和data2
,并执行它的缺省转换:
chartObject =图(data1 = value1, data2 = value2)
显示图表信息,如语法执行,图表数据的值,和活动状态的列表,使用disp
功能:
disp (chartObject)
执行一个单独的表
定义一个Stateflow图表对象后,您可以通过调用执行独立的图表一步
函数(与数据值,如果有必要的话):
步骤(chartObject, data1 = value1, data2 = value2)
或者,您可以调用其中一个输入事件函数:
event_name (chartObject data1 = value1, data2 = value2)
在这两种情况下,之前的值分配给本地数据表执行。
如果你的图表图形或MATLAB函数,你可以叫他们直接在MATLAB命令窗口。调用图函数不执行独立的图表。
function_name (chartObject, u1, u2)
请注意
如果你使用输入参数个数
在你的图表,图形或MATLAB函数输入参数个数
统计图表对象作为输入参数。的价值输入参数个数
都是一样的你是否调用该函数从图表或MATLAB命令窗口。
您可以执行一个单独的表不开Stateflow编辑器。如果图是开放的,那么Stateflow通过图表动画编辑强调积极的状态和转换。
为了便于调试和单元测试,您可以执行一个独立的直接从Stateflow图表编辑器。在执行期间,您输入数据值和广播事件的用户界面。有关更多信息,请参见执行和单元测试Stateflow图表对象。
您可以从一个MATLAB脚本执行一个单独的表,一个仿真软件模型,或应用程序用户界面设计师。金宝app有关更多信息,请参见:
停止表执行
停止执行一个图表,摧毁图表对象通过调用删除
功能:
删除(chartObject)
图表对象被删除后,任何处理图表对象仍然在工作区中,但成为无效。从工作区中删除无效的句柄,使用命令清晰的
:
清晰的chartObject
如果你明确有效的图表对象处理还有其他处理相同的图表对象,对象的图表并不是毁灭。举个例子,当你执行一个图表,Stateflow编辑器包含图表对象内部处理。结算表对象处理从工作区不破坏图表对象或删除图表动画编辑器中高亮显示。重置动画高亮显示,右键单击图画布和选择删除高亮显示。
分享独立图表
你可以与合作者分享独立图表没有Stateflow许可证。
如果你的合作者有相同的或以后版本的MATLAB比你,他们可以执行你的独立的图表为MATLAB对象不开Stateflow编辑器。不支持图表动画和调试。金宝app运行时错误消息不链接状态或转换图表中发生错误的地方。
请注意
运行独立的图表,你保存在R2019a或R2019b, MATLAB的合作者必须具有相同的版本。
如果你的合作者有MATLAB的早期版本,独立图表导出到一个他们可以使用的格式。你只能出口到R2019a后来版本。完成导出过程,您需要访问你的版本的Stateflow和出口。
使用Stateflow的版本,打开独立的图表。
在状态图选项卡上,选择保存>之前的版本。
在出口以前版本对话框中,为导出的表指定一个文件名。
从另存为类型列表中,选择要导出的早期版本的图表。
点击保存。
使用早期版本的Stateflow,开放和重新保存导出的图表。
出口一个图表从MATLAB命令窗口,调用Stateflow函数exportToVersion
。有关更多信息,请参见出口图表MATLAB的早期版本。
请注意
试图执行一个导出图表保存之前,它将导致一个错误。
的属性和功能Stateflow图对象
Stateflow图表对象封装了数据和操作在一个单一的结构通过提供:
私有属性,包含独立的内部状态变量图。
一个
一步
函数调用实现表的各种操作语义。
图表对象可以有其他属性和函数,对应于各种元素出现在图。
独立的图表元素 | 图表对象元素 |
---|---|
当地和恒定的数据 | 公共属性 |
输入事件 | 函数执行图 |
图形和MATLAB函数 | 的函数,你可以调用MATLAB命令窗口 |
图表对象的配置选项
当你创建一个图表对象,您可以指定图表的行为包括这些配置选项名称-值对。
配置选项 | 描述 | 例子 |
---|---|---|
-animationDelay |
指定的延迟图表动画使用强调每一个过渡段。默认值是0.01 秒。产生一个图没有动画延迟,设置为零。 |
创建一个图表对象,缓慢的动画通过指定一秒钟的延迟。 chartObject =图(“-animationDelay”,1)
|
-enableAnimation |
使图表动画和调试仪器。默认值是真正的 。 |
创建一个图表对象的动画和调试仪器禁用。 chartObject =图(“-enableAnimation”假)
|
-eventQueueSize |
指定队列的大小用于事件和时序逻辑操作。默认值是20. 。禁用事件的排队,设置为零。有关更多信息,请参见事件的独立的图表。 |
创建一个图表对象,忽略了所有事件没有警告,如果他们发生在图表处理另一个操作。 chartObject =图(“-eventQueueSize”,0)
|
-executeInitStep |
启用默认的初始执行转换。默认值是真正的 。 |
创建一个图表对象但不执行缺省转换。 chartObject =图(“-executeInitStep”假)
|
-warningOnUninitializedData |
启用警告后空的图表数据初始化表对象。默认值是真正的 。 |
当创建一个图表对象消除警告。 chartObject =图(“-warningOnUninitializedData”假)
|
图表数据的初始化
在Stateflow编辑器中,您可以使用符号面板为图表数据指定初始值。当你创建一个图表对象,图表数据初始化按字母顺序根据其范围。常量数据初始化。本地数据初始化。
如果你使用一个表达式来指定一个初始值,然后试图解决的图表的表达:
在图表中使用其他数据的值。
调用函数在搜索路径。
例如,假设你为本地数据指定一个初始值x
通过使用表达式y
。然后:
如果表有一个常数
y
,y
初始化之前x
。本地数据x
分配相同的初始值y
。如果有本地数据的图表
y
,x
初始化之前y
。本地数据x
是分配给一个空数组。如果配置选项-warningOnUninitializedData
被设置为真正的
发生了一个警告。如果表格没有数据命名
y
,x
通过调用初始化函数y
。如果文件y.m
不是在搜索路径,这发生错误:未定义的函数或变量“y”。
Stateflow不搜索MATLAB工作区解决初始值,所以这个发生错误,即使有一个变量y
在MATLAB工作区。
功能和限制
金宝app支持的功能
经典的图表与MATLAB作为行动语言语义。您可以使用MATLAB的全部功能,包括那些受限制的功能模型的代码生成。金宝app看到通过脚本执行Stateflow图表对象和模型。
请注意
在独立Stateflow图表中,操作系统命令的象征
!
不支持。金宝app执行操作系统命令,使用函数系统
。独家(或)和并行(和)状态分解层次结构。看到定义独家使用状态分解和并行模式和使用层次结构设计多级状态的复杂性。
流程图、图形功能和MATLAB函数。看到可重用组件的图表。
MATLAB代码转换成图形函数通过使用模式向导。看到MATLAB代码转换成Stateflow流程图。
图表的地方和恒定的数据没有限制类型。看到执行和单元测试Stateflow图表对象。
输入事件。看到通过使用Stateflow图表设计人机界面逻辑。
运营商
焕然一新
,hasChangedFrom
,hasChangedTo
检测本地数据的值的变化。请注意
独立Stateflow图表不支持改变检测矩阵的一个元素或者一个字段结构金宝app。
时序逻辑运算符:
独立图表定义绝对时间时序逻辑所,也仅限于1毫秒精度。
函数
getActiveStates
在执行期间访问美国活跃的图表。单元阵列存储活跃状态,输入:州= getActiveStates (chartObject)
Stateflow函数
exportAsClass
出口独立图等效MATLAB类。使用这个函数来调试运行时错误,否则很难诊断。例如,假设你遇到一个错误而执行Stateflow图控制一个MATLAB应用程序。如果你出口图表MATLAB类文件,你可以更换图与类应用程序中使用MATLAB调试器和诊断错误。出口的图表chart.sfx
作为一个类文件chart.m
,输入:Stateflow.exportAsClass (“chart.sfx”)
限制
内容具体到仿真软件:金宝app
样品时间和连续时间语义。
C动作语言。
金宝app仿真软件功能和仿真软件子系统状态。
输入、输出和参数数据。
数据存储内存数据。
输出和本地事件。
输入、输出和当地的消息。
其他限制:
没有粉或摩尔语义。
没有状态转换表。
无真相表函数。
没有state-parented本地数据或函数。
没有过渡动作(动作执行后源状态的转换是退出之前进入目的地国家)。
另请参阅
disp
|编辑
|exportAsClass
|exportToVersion
|帮助
|sfclose