主要内容

调试状态转换表中的运行时错误

一个状态转换表表示一个有限状态机的顺序模态逻辑的表格格式。而不是在状态流中绘制状态和转换®图表中,您可以使用状态转换表以一种简洁、紧凑的格式对状态机建模,这种格式需要对图形对象的维护最少。有关更多信息,请参见状态流中的状态转换表

创建模型和状态转换表

  1. 创建一个Simulink®用新的模型状态转换表

    sfnewstt

  2. 将以下状态和转换添加到表中:

    状态转换表,包含两个顶级状态Normal和Alarm。Normal有三个子状态,分别为Off、Warmup和On。

    该表在层次结构的最高级别上有两个状态,Power_off而且Power_on.默认情况下,Power_off是活跃的。事件开关切换系统Power_off而且Power_on州。Power_on有三个子状态:第一个第二个,第三.默认情况下,当Power_on变得活跃,第一个也会变得活跃。当转变等于1,系统从第一个第二个第二个第三,第三第一个,对于事件的每一次发生开关.然后重复这个模式。

  3. 添加两个输入从仿真软件:

    • 一个叫做开关的范围来自Simulink的输入和一个不断上升的边缘触发。

    • 数据叫做转变的范围来自Simulink的输入

  4. 在模型视图中,连接a正弦波块作为开关事件和一步块作为转变状态转换表的数据。

    包含状态转换表、步进块和正弦波块的Simulink模型。

    在模型中,有一个事件输入和一个数据输入。正弦波块生成一个与Stateflow事件相对应的重复输入事件开关.Step块生成与Stateflow数据对象对应的1和0的重复模式转变.理想情况下,开关事件以允许至少一个循环通过的频率发生第一个第二个,第三

调试状态转换表

来调试表创建模型和状态转换表,请遵循以下步骤:

  1. 右键单击Power_off状态,并选择设置断点>关于进入国家

  2. 启动模拟。

    因为您在上指定了断点Power_off,执行在这一点停止。

  3. 点击step In按钮进入下一步,

  4. 要查看使用的数据和当前值,请将光标悬停在不同的表单元格上。

    继续点击Step In按钮并观看动画状态。在每一步之后,观看图表动画以查看执行顺序。使用工具提示查看数据值。

单步走表明循环从第一个第二个第三在州内Power_on不发生。从Power_onPower_off需要优先考虑的事情。

纠正运行时错误

调试状态转换表,您将逐步模拟一个状态转换表并找到一个错误。事件开关驱动模拟,但是对于输入数据对象来说,模拟时间过得太快转变产生影响

要纠正此错误:

  1. 停止模拟,以便可以编辑表。

  2. 添加条件后(20.0秒)到从Power_onPower_off

    修改状态转换表。

    现在从Power_onPower_off20秒后才会发生。

  3. 开始仿真。

  4. 重复单击Step In按钮观察固定的行为。

相关的话题

Baidu
map