Main Content

State Transition Table

以表格形式表示模态逻辑

  • State Transition Table block

库:
Stateflow

描述

State Transition Table 模块以表格形式表示顺序模态逻辑的有限状态机。除了在 Stateflow® 图中绘制状态和转移这种方式,您还可以使用状态转移表,以简洁、紧凑的格式对状态机进行建模,而且只需对图对象进行极少的维护。有关详细信息,请参阅使用状态转移表以表格形式表达时序逻辑

为了实现控制逻辑,State Transition Table 模块可以使用 MATLAB® 或 C 语言作为动作语言。有关详细信息,请参阅使用 MATLAB 和 C 作为动作语言语法时的差异

State Transition Table 模块属性指定状态转移表如何与 Simulink® 模型对接。您可以在属性检查器、模型资源管理器或“状态转移表”属性对话框中修改这些属性。有关详细信息,请参阅指定状态转移表的属性。您也可以使用 Stateflow.StateTransitionTableChart 对象以编程方式指定状态转移表属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API

端口

输入

全部展开

当您在符号窗格中创建输入数据时,Stateflow 会创建输入端口。您创建的输入数据有对应的输入端口,该端口在您创建数据后出现。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

输出

全部展开

当您在符号窗格中创建输出数据时,Stateflow 会创建输出端口。您创建的输出数据有对应的输出端口,该端口在您创建数据后出现。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

参数

全部展开

设置“代码生成”选项卡上的参数需要具有 Simulink Coder™ 或 Embedded Coder®

主要

选择如何在 State Transition Table 模块图标上显示端口标签。

none

不显示端口标签。

FromPortIcon

如果对应的端口图标显示了信号名称,则在 State Transition Table 模块上显示信号名称。否则,显示端口模块名称。

FromPortBlockName

State Transition Table 模块上显示对应端口模块的名称。

SignalName

如果信号名称存在,则显示连接到 State Transition Table 模块上端口的信号的名称。否则,显示相应端口模块的名称。

编程用法

参数ShowPortLabels
类型:字符串标量或字符向量
"none""FromPortIcon" | "FromPortBlockName" | "SignalName"
默认值"FromPortIcon"

控制用户对图内容的访问。

ReadWrite

允许打开和修改图内容。

ReadOnly

允许打开但不允许修改图。如果图在模块库中,您可以创建和打开该图的链接,创建和修改图的本地副本,但不能更改权限或修改原始模块库实例的内容。

NoReadOrWrite

禁止打开或修改图。如果图在模块库中,您可以在模型中创建该图的链接,但不能打开、修改、更改权限或创建图的本地副本。

编程用法

参数Permissions
类型:字符串标量或字符向量
"ReadWrite" | "ReadOnly" | "NoReadOrWrite"
默认值"ReadWrite"
off

不尝试消除任何包含原子子图的人为代数环。

on

尝试消除任何包含原子子图的人为代数环。

编程用法

参数MinAlgLoopOccurrences
类型:字符串标量或字符向量
"off" | "on"
默认值"off"

指定此图中的所有模块是必须以相同的速率运行,还是可以不同的速率运行。

  • 如果图中的模块可以不同的速率运行,则为图指定继承采样时间 (-1)。

  • 如果所有模块必须以相同的速率运行,则将与此速率对应的采样时间指定为采样时间参数的值。

  • 如果图中的任何模块指定了不同的采样时间(而不是 -1inf),则当您更新或仿真模型时,Simulink 会显示错误消息。例如,假设图中的所有模块必须以 5 次/秒的速率运行。要确保该速率,请将图的采样时间指定为 0.2。在此示例中,如果图中的任何模块指定了除 0.2-1inf 之外的其他采样时间,则当您更新或仿真模型时,Simulink 将显示错误。

-1

指定继承采样时间。如果图中的模块能够以不同速率运行,则使用此采样时间。

[Ts 0]

指定周期性采样时间。

编程用法

参数SystemSampleTime
类型:字符串标量或字符向量
"-1" | "[Ts 0]"
默认值"-1"

代码生成

为原子(非虚拟)子图选择生成的代码格式。

自动

Simulink Coder 根据模型中存在的图实例的类型和数量,为您的系统选择最佳格式。

内联

Simulink Coder 无条件地内联图。

不可重用函数

Simulink Coder 在单独的文件中显式生成单独的函数。采用此设置的状态转移表生成的函数可能有参量,具体取决于 函数接口, Function interface函数接口Function interface (Simulink) 参数设置。您可以使用参数 函数名称, Function name函数名称Function name (Simulink)文件名(无扩展名), File name (no extension)文件名(无扩展名)File name (no extension) (Simulink) 为生成的函数和文件命名。这些函数不可重入。

可重用函数

Simulink Coder 可以生成带参量的函数,当模型中包含图的多个实例时,将允许重用图的代码。

此选项可生成带参量的函数,这样就可以在为模型引用层次结构(其中引用的模型包含图的多个实例)生成的代码中重用图代码。在这种情况下,图必须位于库中。

提示

  • 如果您希望将图的多个实例表示为一个可重用函数,可以为每个子系统指定“自动”或“可重用函数”。最好是使用其中一个,因为使用两个会生成两个可重用函数,每个选项生成一个函数。仅当无法重用代码时,这些选项的结果才会有区别。如果选择“自动”,将无法控制图代码的函数或文件名。

  • 可重用函数”和“自动”选项都会确定是否存在图的多个实例,以及是否可以重用代码。当无法重用代码时,这些选项的行为会有所不同。在这种情况下,“自动”选项会生成内联代码,或者在禁止内联的情况下为每个图实例生成一个单独的函数。

  • 如果您在生成的代码处于源代码管理状态下时选择了“可重用函数”,请将文件名选项设置为“使用子系统名称”、“使用函数名称”或“用户指定”。否则,只要您修改模型,代码文件的名称就会改变,从而无法对文件进行源代码管理。

依存关系

  • 此参数要求具有 Simulink Coder

  • 将此参数设置为“不可重用函数”或“可重用函数”将启用下列参数:

    • 函数名称选项

    • 文件名选项

    • 用于初始化/终止函数的内存段(需要 Embedded Coder 和基于 ERT 的系统目标文件)

    • 用于执行函数的内存段(需要 Embedded Coder 和基于 ERT 的系统目标文件)

  • 将此参数设置为“不可重用函数”将启用具有独立数据的函数(需要 Embedded Coder 许可证和基于 ERT 的系统目标文件)。

编程用法

参数RTWSystemCode
类型:字符串标量或字符向量
"Auto" | "Inline" | "Nonreusable function" | "Reusable function"
默认值"Auto"

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2012b 中推出

全部展开