添加 Stateflow 数据
您可以使用符号窗格或工具条向 Stateflow® 图添加数据。
在 Stateflow 图中,状态、转移、MATLAB® 函数和真值表可以访问数据。要检查特定状态或转移使用哪些数据,请右键点击该状态或转移并点击浏览。此操作将打开上下文菜单,显示选定状态或转移中所有已解析的数据,及其名称和作用域。当您从此菜单中选择数据时,模型资源管理器将打开并显示该数据的属性。如果您选择一个输出事件,则链接到该事件的对应 Simulink® 子系统或 Stateflow 图将打开。
注意
Stateflow 数据不可用于 Stateflow 图中的 Simulink 函数。
使用“符号”窗格添加数据
“符号”窗格显示您的图中的所有数据对象。要在符号窗格中创建数据,请执行以下操作:
在建模选项卡中的设计数据下,选择符号窗格。
点击创建数据按钮
。在新数据行中,在类型列中,点击图标并选择:
输入数据
局部数据
输出数据
常量
数据存储内存
参数
临时
有关数据类型的详细信息,请参阅设置数据属性。
通过设置名称列中的值来编辑数据的名称。
对于输入和输出数据,您可以通过点击端口字段并选择端口号来更改输入端口或输出端口的顺序。
要为数据指定属性,请右键点击符号所在的行并选择浏览。
将数据连接到 Simulink
如果您创建一个输入或输出数据,可以将其连接到 Simulink 模块。
要连接输入数据,请执行以下操作:
在您的 Simulink 模型中,添加信源模块。请参阅Sources (Simulink)。
将源模块输出连接到 Stateflow 图上的输入端口。
当您点击运行时,输入数据对象从连接的 Simulink 模块接收值。
要连接输出数据,请执行以下操作:
在您的 Simulink 模型中,添加信宿模块。请参阅Sinks (Simulink)。
将 Stateflow 图上的输出端口连接到目标模块输入。
当您点击运行时,输出数据对象向连接的 Simulink 模块发送值。
使用图中数据的最佳做法
不要从 Simulink 输出信号继承 Stateflow 输出数据的属性,因为值会从 Simulink 模块反向传播且可能无法预测。
通过使用原位数据优化所生成代码的性能
为了优化 Stateflow 图、真值表和状态转移表的生成代码的性能并减少内存使用量,请使用原位数据。要创建原位数据,请为图输入和输出分配相同的名称。原位数据允许代码生成器将数据视为按引用传递的单个参量,而不是单独的变量。这种方法可最大限度地减少中间数据复制操作,从而生成更高效的生成代码。
当输入和输出数据共享相同名称时,您只能修改输入数据的属性。对应的输出数据属性变为只读。