主要内容

通过活动状态数据监视状态活动

活动状态数据可以简化某些状态流的设计®因为您不必维护与图表层次结构高度相关的数据。当您启用活动状态数据时,statflow通过输出端口向Simulink报告状态活动金宝app®或者作为图表中的本地数据。使用活动状态数据,您可以:

  • 避免手动更新反映图表活动的数据。

  • 通过使用范围、仿真数据检查器或逻辑分析器查看图表活动。

  • 用于诊断的日志图活动。

  • 驱动其他Simulink金宝app子系统。

激活状态数据的类型

当启用活动状态数据时,statflow创建一个布尔值或枚举数据对象来匹配活动类型。

活动类型 活动状态数据类型 描述
自我的活动 布尔 状态是活动的吗?
孩子的活动 枚举 哪个孩子活跃?
叶国家活动 枚举 哪个叶状态是活动的?

对于图表或状态的自我活动,数据值为真正的当活跃的和不活跃的时候。对于子状态和叶状态活动,数据是枚举类型。statflow可以定义枚举类,也可以手动创建定义。有关更多信息,请参见定义状态活动枚举类型

可以为状态流图、状态、状态转换表或原子子图启用活动状态数据。该表列出了每种statflow对象支持的活动类型。金宝app

Stateflow对象 个人活动 孩子的活动 叶国家活动
图表 不支持金宝app 金宝app支持 金宝app支持
具有exclusive (OR)分解的状态 金宝app支持 金宝app支持 金宝app支持
具有并行(AND)分解的状态 金宝app支持 不支持金宝app 不支持金宝app
原子子图表 金宝app在容器级别支持 金宝app子图表内部支持 金宝app子图表内部支持
状态转换表 不支持金宝app 金宝app支持 金宝app支持

启用激活状态数据

您可以在属性检查器或模型资源管理器中启用活动状态数据。

  • 属性检查器

    1. 要打开属性检查器,请在建模选项卡上,单击属性检查器

    2. 在statflow Editor画布中,选择要监视的statflow对象。

    3. 监控部分,选择创建用于监视的输出复选框并编辑活动状态数据属性。

  • 模型浏览器

    1. 要打开模型资源管理器,在建模选项卡上,单击模型浏览器

    2. 模型层次结构窗格中,双击要监视的statflow对象。

    3. 在statflow对象窗格中,选择创建用于监视的输出复选框并编辑活动状态数据属性。

活动状态数据属性

活动类型

要监视的状态活动的类型。从以下选项中选择:

  • 自我的活动

  • 孩子的活动

  • 叶国家活动

数据名称

活动状态数据对象的名称。有关更多信息,请参见命名状态流对象的指南

枚举的名字

活动状态数据对象的枚举数据类型的名称。此属性仅应用于子状态和叶状态活动。

手动定义枚举类型

指定您是否手动定义枚举数据类型。此属性仅应用于子状态和叶状态活动。有关更多信息,请参见定义状态活动枚举类型

设置活动状态数据的作用域

默认情况下,活动状态数据的作用域为输出.statflow在Simulink模型中的图表块上创建一个输出端口。金宝app

要访问状态流图中的活动状态数据,请将范围更改为当地的在“符号”窗格或“模型资源管理器”中。有关更多信息,请参见设置数据属性

可以通过将本地活动状态数据绑定到金宝app仿真软件。信号(金宝app模型)对象。属性修改对象的属性CoderInfo财产。有关更多信息,请参见金宝app仿真软件。CoderInfo(金宝app模型)

定义状态活动枚举类型

默认情况下,statflow定义子活动和叶活动的枚举数据类型。如果您选择手动定义枚举类型复选框,且不存在枚举数据类型定义,则statflow提供创建定义的链接。单击从模板中创建枚举定义链接生成一个可定制的定义。

枚举数据类型定义为每个州名包含一个枚举值。该定义还包含一个枚举值,该枚举值作为枚举数据类型的默认值,并指示没有活动的子状态。例如,在模型中sf_car,国家gear_state包含四个对应于汽车齿轮的子状态:第一个第二个第三第四.模型使用枚举类定义指定子活动数据类型:

classdefgearType <仿金宝app真软件。IntEnumType枚举无(0),first(1), second(2), third(3), fourth(4)结束...结束

您可以通过重新排序枚举值或重命名默认值来定制此定义。不要重命名对应于状态的枚举值或使用getDefaultValue方法指定不同的默认值。有关更多信息,请参见定义枚举数据类型

提示

自动创建的枚举的基本存储类型默认为本机整数.为更小的内存占用,在优化在“配置参数”对话框中,修改自动创建的枚举的基本存储类型字段。有关更多信息,请参见自动创建的枚举的基本存储类型(金宝app仿真软件编码器)

State活动和并行状态

在并行(AND)分解的状态中,子活动和叶状态活动不可用,因为并行子状态同时处于活动状态。

当您在图表或状态中启用叶状态活动时,具有并行(AND)分解的子状态将被视为叶状态。例如,假设您为这个图表启用了叶状态活动。因为国家B有平行分解,它的子态B1B2同时活动B被视为图表的叶状态。

在模拟期间,连接到活动状态输出数据的范围显示叶状态的枚举值A1A2,B

活动状态数据的限制

  • 为没有子活动的状态启用子活动输出会导致编译和运行时出现错误。

  • 不能使用并行分解在图表或状态中启用子状态或叶状态活动。要检查并行状态的子状态中的状态活动,请使用操作符。有关更多信息,请参见使用内操作符检查状态活动

  • 在使用经典或Mealy语义的图表属性时,不支持活动金宝app状态数据初始化每次时间图唤醒时的输出启用。有关更多信息,请参见初始化每次时间图唤醒时的输出

另请参阅

(金宝app模型)|(金宝app模型)

相关的话题