在图表中分配枚举值
增强状态流的可读性®图表,使用枚举数据。使用枚举数据,您可以:
创建一组受限制的值,并通过名称引用这些值。
将相关值分组到单独的数据类型中。
避免定义一长串常量。
Simulink中的状态流图支持枚举数金宝app据金宝app®模型。有关更多信息,请参见使用枚举数据按名称引用值.
图的行为
此示例演示如何构建使用枚举值发出状态关键字的图表。
在模拟过程中,图表动作在状态之间交替一个
而且B
.
执行状态一个
在模拟开始时,状态
一个
输入。状态
一个
执行条目
通过分配值来操作红色的
到枚举数据颜色
.的数据
y
每个时间步增加一次(每0.2秒),直到达到条件[y > 6]
是真的。这个图表是从状态到状态的转换
一个
州B
.
执行状态B
从状态过渡后
一个
发生时,状态B
输入。状态
B
执行条目
通过分配值来操作绿色
到枚举数据颜色
.的数据
y
每个时间步递减一次(每0.2秒),直到达到条件[y < 3]
是真的。这个图表是从状态到状态的转换
B
回到国家一个
.
构建图表
向图表中添加状态和转换
创建一个Simulink金宝app模型与空图表,在MATLAB®命令提示符,输入
sfnew
.在空图表中,添加状态
一个
而且B
.在文本提示符下,输入适当的操作语句。向状态添加一个默认转换
一个
以及状态之间的转换一个
而且B
.双击每个转换。在文本提示符处,输入适当的条件。
为图表定义枚举数据类型
创建要在其中存储数据类型定义的文件首页选项卡,选择新>类.
在MATLAB编辑器中,输入:
classdefTrafficColors < 金宝appSimulink。IntEnumType枚举红(0)绿(10)结束结束
classdef
节定义基于整数的枚举数据类型TrafficColors
.的枚举
部分包含此数据类型允许的枚举值,后面跟着它们的基础数值。将文件保存为
TrafficColors.m
在MATLAB搜索路径的文件夹中。
定义图表数据
若要解析未定义的数据,请在“符号”窗格中单击解析未定义的符号图标
.状态流编辑器为图表中的每个符号分配适当的作用域。
象征 范围 颜色
输出数据 y
本地数据 绿色
参数数据 红色的
参数数据 指定
颜色
作为枚举数据,在属性检查器中:在类型字段中,选择
Enum: <类名>
.取代<类名>
与TrafficColors
,前面定义的数据类型的名称。下日志记录,选择测井信号数据复选框。
的范围和类型
y
,在属性检查器中:在范围字段中,选择
输出
.在类型字段中,选择
uint8
.下日志记录,选择测井信号数据复选框。
在“符号”窗格中,删除符号
绿色
而且红色的
.在指定之前,状态流编辑器错误地将这些符号标识为参数颜色
作为枚举数据。
查看仿真结果
当您模拟模型时,模拟数据检查器图标
突出显示,以指示它有新的模拟数据。要打开模拟数据检查器,单击图标。
在模拟数据检查器中,选择
颜色
而且y
信号,以便它们显示在单独的轴上。要在MATLAB工作空间中访问日志数据,请调用信号日志对象
logsout
.例如,在命令提示符处输入:A = table(logsout.getElement)“颜色”) .Values.Time,...logsout.getElement (“颜色”) .Values.Data);A.Properties.VariableNames = {“SimulationTime”,“颜色”};一个
A = 9×2表SimulationTime颜色______________ _____ 0 RED 1.6 GREEN 2.8 RED 4 GREEN 5.2 RED 6.4 GREEN 7.6 RED 8.8 GREEN 10 RED
相关的话题
- 定义枚举数据类型
- 使用枚举数据的最佳实践
- 接入信号测井数据
- 使用模拟数据检查器查看数据(金宝app模型)