文档

在图表中分配枚举值

增强状态流的可读性®图表,使用枚举数据。使用枚举数据,您可以:

  • 创建一组受限制的值,并通过名称引用这些值。

  • 将相关值分组到单独的数据类型中。

  • 避免定义一长串常量。

Simulink中的状态流图支持枚举数金宝app据金宝app®模型。有关更多信息,请参见使用枚举数据按名称引用值

图的行为

此示例演示如何构建使用枚举值发出状态关键字的图表。

在模拟过程中,图表动作在状态之间交替一个而且B

执行状态一个

  • 在模拟开始时,状态一个输入。

  • 状态一个执行条目通过分配值来操作红色的到枚举数据颜色

  • 的数据y每个时间步增加一次(每0.2秒),直到达到条件[y > 6]是真的。

  • 这个图表是从状态到状态的转换一个B

执行状态B

  • 从状态过渡后一个发生时,状态B输入。

  • 状态B执行条目通过分配值来操作绿色到枚举数据颜色

  • 的数据y每个时间步递减一次(每0.2秒),直到达到条件[y < 3]是真的。

  • 这个图表是从状态到状态的转换B回到国家一个

构建图表

向图表中添加状态和转换

  1. 创建一个Simulink金宝app模型与空图表,在MATLAB®命令提示符,输入sfnew

  2. 在空图表中,添加状态一个而且B.在文本提示符下,输入适当的操作语句。

  3. 向状态添加一个默认转换一个以及状态之间的转换一个而且B

  4. 双击每个转换。在文本提示符处,输入适当的条件。

为图表定义枚举数据类型

  1. 创建要在其中存储数据类型定义的文件首页选项卡,选择>

  2. 在MATLAB编辑器中,输入:

    classdefTrafficColors < 金宝appSimulink。IntEnumType枚举红(0)绿(10)结束结束
    classdef节定义基于整数的枚举数据类型TrafficColors.的枚举部分包含此数据类型允许的枚举值,后面跟着它们的基础数值。

  3. 将文件保存为TrafficColors.m在MATLAB搜索路径的文件夹中。

定义图表数据

  1. 若要解析未定义的数据,请在“符号”窗格中单击解析未定义的符号图标.状态流编辑器为图表中的每个符号分配适当的作用域。

    象征 范围
    颜色 输出数据
    y 本地数据
    绿色 参数数据
    红色的 参数数据

  2. 指定颜色作为枚举数据,在属性检查器中:

    • 类型字段中,选择Enum: <类名>.取代<类名>TrafficColors,前面定义的数据类型的名称。

    • 日志记录,选择测井信号数据复选框。

  3. 的范围和类型y,在属性检查器中:

    • 范围字段中,选择输出

    • 类型字段中,选择uint8

    • 日志记录,选择测井信号数据复选框。

  4. 在“符号”窗格中,删除符号绿色而且红色的.在指定之前,状态流编辑器错误地将这些符号标识为参数颜色作为枚举数据。

查看仿真结果

  1. 当您模拟模型时,模拟数据检查器图标突出显示,以指示它有新的模拟数据。要打开模拟数据检查器,单击图标。

  2. 在模拟数据检查器中,选择颜色而且y信号,以便它们显示在单独的轴上。

  3. 要在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

相关的话题