# Chart
状态机模块
- 库: StateMachine
# 描述
表示状态机的整体逻辑容器,包含状态、转移、事件和图函数等元素。
# 示例
参考模型示例
。外部信号源为 Step 模块,将其采样时间设置为 0.1,在状态机变量设置的配置界面将 a、b、c 的范围设置为 Output,将 Input 的范围设置为 Input。在仿真设置界面将常规选项卡中的终止时间设置为 2,步长设置为 0.1。
空白状态机中创建两个状态并连线,填写相应的语句。
单击仿真,在结果查看器中查看仿真结果。
a := 1 仅在状态激活时执行,即仿真开始第 0 秒时执行一次。
b := b+1 在状态处于激活且未转出该状态时,每个仿真步执行一次,即 0~1 秒期间每仿真步长 0.1 秒执行一次。
c := 1 在状态转出时执行一次,即第 1 秒 Step 阶跃信号发生器触发时执行一次。
# 端口
# 输入
Port_1 — 输入端口标量 | 向量 | 矩阵
当您在符号窗格中创建输入数据时,您创建的输入数据有对应的输入端口,该端口在您创建数据后出现。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
# 输出
Port_1 — 输出端口标量 | 向量 | 矩阵
当您在符号窗格中创建输出数据时,您创建的输出数据有对应的输出端口,该端口在您创建数据后出现。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
# 参数
# 主要
显示端口标签 — 选择如何显示端口标签无(默认) | 无 | 端口名 | 端口号 | 信号名
选择如何在 Chart 模块图标上显示端口标签。
无
不显示端口标签。
端口名
如果对应的端口图标显示了信号名称,则在 Chart 模块上显示信号名称。否则,显示端口模块名称。
端口号
在 Chart 模块上显示对应端口模块的名称。
信号名
如果信号名称存在,则显示连接到 Chart 模块上端口的信号的名称。否则,显示相应端口模块的名称。
采样时间 — 指定时间间隔-1(默认)
指定此图中的所有模块是必须以相同的速率运行,还是可以不同的速率运行。
- 如果图中的模块可以不同的速率运行,则为图指定继承采样时间 (-1)。
- 如果所有模块必须以相同的速率运行,则将与此速率对应的采样时间指定为采样时间参数的值。
-1 指定继承采样时间。如果图中的模块能够以不同速率运行,则使用此采样时间。
# 代码生成
函数打包 — 代码格式自动(默认) | 内联 | 不可重用函数 | 可重用函数
为状态机选择生成的代码格式。
自动
将基于模型中存在的状态机的类型和实例数为您选择最佳格式。
内联
无条件地内联状态机。
不可重用函数
生成的函数不带参数,因此不支持重用状态机代码。
可重用函数
可以生成带参数的函数,当模型中包含状态机的多个实例时,将允许重用状态机的代码。
函数名称 — 状态机代码的函数名称''(默认)| 函数名称
为状态机代码指定唯一的有效 C 或 C++ 函数名称。
如果您想为函数指定特定的名称,而不是让代码生成器分配其自己自动生成的名称或者使用状态机名称,请使用此参数。
# 依存关系
要启用此参数,需要打包类型为可重用函数和不可重用函数。
文件名(无扩展名) — 所生成文件的名称''(默认)| 文件名
# 版本历史记录
- 在 2024b 之前推出
- 在 2026a 推出文件名功能
# 限制信息
不支持部分
- 参数-主要-读/写权限 — 选择访问图内容的方式
- 参数-主要-尽量减少出现代数环 — 控制代数环的消除