调试状态转换表中的运行时错误
一个状态转换表表示一个有限状态机的顺序模态逻辑的表格格式。而不是在状态流中绘制状态和转换®图表中,您可以使用状态转换表以一种简洁、紧凑的格式对状态机建模,这种格式需要对图形对象的维护最少。有关更多信息,请参见状态流中的状态转换表.
创建模型和状态转换表
创建一个Simulink®用新的模型状态转换表.
sfnewstt
将以下状态和转换添加到表中:
该表在层次结构的最高级别上有两个状态,
Power_off
而且Power_on
.默认情况下,Power_off
是活跃的。事件开关
切换系统Power_off
而且Power_on
州。Power_on
有三个子状态:第一个
,第二个
,第三
.默认情况下,当Power_on
变得活跃,第一个
也会变得活跃。当转变
等于1,系统从第一个
来第二个
,第二个
来第三
,第三
来第一个
,对于事件的每一次发生开关
.然后重复这个模式。添加两个输入从仿真软件:
一个叫做
开关
的范围来自Simulink的输入和一个不断上升的边缘触发。数据叫做
转变
的范围来自Simulink的输入.
在模型视图中,连接a正弦波块作为
开关
事件和一步块作为转变
状态转换表的数据。在模型中,有一个事件输入和一个数据输入。正弦波块生成一个与Stateflow事件相对应的重复输入事件
开关
.Step块生成与Stateflow数据对象对应的1和0的重复模式转变
.理想情况下,开关
事件以允许至少一个循环通过的频率发生第一个
,第二个
,第三
.
调试状态转换表
来调试表创建模型和状态转换表,请遵循以下步骤:
右键单击
Power_off
状态,并选择设置断点>关于进入国家.启动模拟。
因为您在上指定了断点
Power_off
,执行在这一点停止。点击step In按钮进入下一步,
.
要查看使用的数据和当前值,请将光标悬停在不同的表单元格上。
继续点击Step In按钮并观看动画状态。在每一步之后,观看图表动画以查看执行顺序。使用工具提示查看数据值。
单步走表明循环从第一个
来第二个
来第三
在州内Power_on
不发生。从Power_on
来Power_off
需要优先考虑的事情。
纠正运行时错误
在调试状态转换表,您将逐步模拟一个状态转换表并找到一个错误。事件开关
驱动模拟,但是对于输入数据对象来说,模拟时间过得太快转变
产生影响
要纠正此错误:
停止模拟,以便可以编辑表。
添加条件
后(20.0秒)
到从Power_on
来Power_off
.现在从
Power_on
来Power_off
20秒后才会发生。开始仿真。
重复单击Step In按钮观察固定的行为。