活动状态数据可以简化某些状态流的设计®因为您不必维护与图表层次结构高度相关的数据。当您启用活动状态数据时,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支持 |
您可以在属性检查器或模型资源管理器中启用活动状态数据。
属性检查器
要打开属性检查器,请在建模选项卡上,单击属性检查器.
在statflow Editor画布中,选择要监视的statflow对象。
在监控部分,选择创建用于监视的输出复选框并编辑活动状态数据属性。
模型浏览器
要打开模型资源管理器,在建模选项卡上,单击模型浏览器.
在模型层次结构窗格中,双击要监视的statflow对象。
在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仿真软件编码器).
在并行(AND)分解的状态中,子活动和叶状态活动不可用,因为并行子状态同时处于活动状态。
当您在图表或状态中启用叶状态活动时,具有并行(AND)分解的子状态将被视为叶状态。例如,假设您为这个图表启用了叶状态活动。因为国家B
有平行分解,它的子态B1
和B2
同时活动B
被视为图表的叶状态。
在模拟期间,连接到活动状态输出数据的范围显示叶状态的枚举值A1
,A2
,B
.
为没有子活动的状态启用子活动输出会导致编译和运行时出现错误。
不能使用并行分解在图表或状态中启用子状态或叶状态活动。要检查并行状态的子状态中的状态活动,请使用在
操作符。有关更多信息,请参见使用内操作符检查状态活动.
在使用经典或Mealy语义的图表属性时,不支持活动金宝app状态数据初始化每次时间图唤醒时的输出启用。有关更多信息,请参见初始化每次时间图唤醒时的输出.
金宝app仿真软件。CoderInfo
(金宝app模型)|金宝app仿真软件。信号
(金宝app模型)