【发布时间】:2016-07-03 21:12:06
【问题描述】:
我使用 StateFlow 在 Simulink 中创建了这个状态机图:
有两种状态 (S1,S2),其中一种 (S1) 有 3 个嵌套的并行 FSM ,每个状态有 4 个状态 (SS1, SS2, SS2, SS4) ,我在这 3 个中都设置了一个默认状态FSMs (SS1),以及主要的两种状态(默认 S2)。
为了测试主 FSM (S1,S2) ,我对所有输入/事件都使用了信号生成器。其中一个输入是方波,它是我的主 FSM (1 Hz) 的时钟事件,模拟持续时间为 50 秒。
我遇到的问题是我可以在信号生成器中看到我有一个方波,但是当我把范围放在那个时钟上时我看到一个方波(从 0 到 49.5 秒然后下降到 0)。
我的时钟呢?什么没有正确地喂养我的 FSM?
这是 FSM:
正交子状态是:
详细说明:
在 S1 和 S2 之间
具有时钟信号的信号生成器之一是:
另一个有以下信号:
【问题讨论】:
-
您使用的是什么求解器,正在使用什么步长?另外,为什么您将 Clock 定义为从 0->2 开始,然后将其转换为布尔值(本质上是 0->1)?
-
求解器是 ode3。关于时钟,我想您必须使用转换器,以便它们是布尔值,因为我定义了三个事件时钟和另外两个“上升沿”输入。我不确定它们是否必须是布尔值。 0-2 是由 simulink 创建的,我也不知道为什么......我把 1 的幅度放在 50Hz 方波