主要内容

通过合并活动状态输出简化状态流图

活动状态数据可以简化一些statflow®图表的设计,因为您不必维护与图表层次结构高度相关的数据。当您启用活动状态数据时,statflow通过输出端口向Simulink®报告状态活动,或作为图表中的本地数据。金宝app这个示例展示了如何通过添加活动状态输出数据来简化状态流图的设计。有关更多信息,请参见通过活动状态数据监视状态活动

在遗留模型中old_sf_car,状态流程图shift_logic跟踪子状态活动gear_state通过更新输出数据的值齿轮

通过加入活动状态数据,模型sf_car避免手动更新反映图表活动的数据。相反,图表通过主动状态输出齿轮自动输出子状态活动。

修改模型

简化了设计old_sf_car模型,消除与图表层次结构高度相关的数据,并启用自动监视中的子状态活动gear_state

步骤1:消除状态活动的手动跟踪

  1. 在模型中old_sf_car,打开图表shift_logic

  2. 打开“符号”窗格。在建模选项卡上,选择符号面板

  3. 在每个子状态gear_state,删除为输出数据变量赋值的入口操作齿轮

  4. 在Symbols窗格中,右键单击输出变量齿轮并选择删除

步骤2:启用Active State Output

  1. 打开属性检查器。在建模选项卡上,选择属性检查器

  2. 在状态流编辑器中,选择状态gear_state

  3. 在属性检查器中,选择创建用于监视的输出复选框,然后选择孩子的活动

  4. 数据名称字段,输入名称齿轮激活状态数据的。

  5. 枚举的名字字段,输入名称gearType活动状态数据的枚举数据类型。

步骤3:连接信号到Simulink块金宝app

  1. 在Simuli金宝appnk模型中,添加一个Cast To Double块。此块将状态流图的枚举输出转换为某种类型的信号.有关更多信息,请参见数据类型转换(金宝app模型)

  2. 连接输出信号齿轮shift_logic图表到Cast到Double block。

  3. 将Cast To Double模块的输出信号连接到传输子系统。

  4. 添加一个内存(金宝app模型)块。这个块防止状态流图和阈值计算子系统之间的代数循环。

  5. 从Cast To Double块的输出信号连接到内存块。

  6. 将Memory块的输出连接到阈值计算子系统。

查看仿真结果

输出信号齿轮是由statflow管理的枚举类型。在仿真过程中,您可以通过将图表连接到Scope块来查看主动状态输出信号齿轮。中枚举值的名称与子状态的名称相匹配gear_state.的附加枚举值没有一个指示没有子节点处于活动状态时的时间步长。

另请参阅

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

相关的话题