主要内容

创建Stateflow图表为执行MATLAB对象

把状态机编程的优点与MATLAB的完整功能®,创建一个独立的Stateflow®图表以外的一个模型金宝app®模型。保存独立的表扩展.sfx作为一个MATLAB对象并执行它。优化设计通过使用图表动画和图形调试工具。

与独立的图表,您可以创建MATLAB应用程序,如:

这些应用程序可以共享,而不需要执行Stateflow许可证。有关更多信息,请参见分享独立图表

构建一个独立的图

构建一个独立的Stateflow图,打开Stateflow编辑器使用编辑函数。例如,在MATLAB命令窗口中,输入:

编辑chart.sfx
如果文件chart.sfx不存在,Stateflow编辑器打开一个空表的名字吗图表。否则,编辑器打开定义的图表自解压文件。

在Stateflow编辑器中,创建一个独立的图相结合,转换,数据,和其他元素。有关更多信息,请参见构建和运行一个Stateflow图表

保存独立的图之后,帮助在MATLAB函数显示信息执行:

帮助chart.sfx

从MATLAB命令窗口关闭独立图表,使用sfclose功能:

sfclose图表

创建一个Stateflow图对象

执行一个单独的图表在MATLAB中,首先创建一个Stateflow图表对象。使用的名称自解压文件独立的表函数。指定数据的初始值作为名称-值对。例如,假设您定义一个单独的图表与数据对象data1data2。然后这个命令创建图表对象chartObject,初始化data1data2,并执行它的缺省转换:

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和出口。

  1. 使用Stateflow的版本,打开独立的图表。

  2. 状态图选项卡上,选择保存>之前的版本

  3. 在出口以前版本对话框中,为导出的表指定一个文件名。

  4. 另存为类型列表中,选择要导出的早期版本的图表。

  5. 点击保存

  6. 使用早期版本的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。

  • 时序逻辑运算符:

    • ,,每一个操作输入事件的数量,表调用(蜱虫)和绝对时间(证券交易委员会)。使用这些操作符状态操作和触发器作为过渡。

    • 操作表调用的数量(蜱虫)。

    • temporalCount作用于绝对时间(证券交易委员会,msec,购买)。

    • 运行作用于绝对时间(证券交易委员会)。

    独立图表定义绝对时间时序逻辑所,也仅限于1毫秒精度。

  • 函数getActiveStates在执行期间访问美国活跃的图表。单元阵列存储活跃状态,输入:

    州= getActiveStates (chartObject)

  • Stateflow函数exportAsClass出口独立图等效MATLAB类。使用这个函数来调试运行时错误,否则很难诊断。例如,假设你遇到一个错误而执行Stateflow图控制一个MATLAB应用程序。如果你出口图表MATLAB类文件,你可以更换图与类应用程序中使用MATLAB调试器和诊断错误。出口的图表chart.sfx作为一个类文件chart.m,输入:

    Stateflow.exportAsClass (“chart.sfx”)
    当您执行MATLAB类,Stateflow编辑器没有动画原始图。

限制

内容具体到仿真软件:金宝app

  • 样品时间和连续时间语义。

  • C动作语言。

  • 金宝app仿真软件功能和仿真软件子系统状态。

  • 输入、输出和参数数据。

  • 数据存储内存数据。

  • 输出和本地事件。

  • 输入、输出和当地的消息。

其他限制:

  • 没有粉或摩尔语义。

  • 没有状态转换表。

  • 无真相表函数。

  • 没有state-parented本地数据或函数。

  • 没有过渡动作(动作执行后源状态的转换是退出之前进入目的地国家)。

另请参阅

|||||

相关的话题