Simulink/StateFlow 我的时钟出错
Simulink/StateFlow error with my Clock
我使用 StateFlow 在 Simulink 中创建了这个状态机图表:
有两个状态(S1,S2),其中一个(S1)有3个嵌套并行FSM,每个有4个状态(SS1, SS2, SS2, SS4),我都放了一个默认状态3个FSM(SS1),以及主要的两个状态(默认S2)。
为了测试主 FSM (S1,S2),我对所有 inputs/events 使用了信号生成器。输入之一是方波,它是我的主 FSM (1 Hz) 的时钟事件,模拟持续时间为 50 秒。
我遇到的问题是我可以在信号生成器中看到我有一个方波,但是当我将示波器放在那个时钟上时我看到一个方波(从 0 延长到 49.5 秒然后下降到 0) .
我的时钟在哪里?我的 FSM 有什么问题?
这是 FSM:
正交子状态是:
详情:
在S1和S2之间
具有时钟信号的信号生成器之一是:
对方有以下信号:
问题是您对 ode3 使用了默认步长。使用固定步长求解器时,auto
步长计算为 (StopTime-StartTime)/50
。在您的情况下,步长为 1。
因为在 t = 0,1,2,3,...49 时 Clock
的值为 2,这就是您在示波器中看到的值。
在 t =50 时,Clock
的值为 0,这就是您在示波器中看到的值。
您需要转到 Simulaton->Model Configuration Parameters
下拉菜单的 Solver Panel
。
然后打开 Additional Options
选项并将步长更改为更小的值,例如 0.01.
或者(取决于您的其他要求)您可以使用可变步长求解器。
我使用 StateFlow 在 Simulink 中创建了这个状态机图表:
有两个状态(S1,S2),其中一个(S1)有3个嵌套并行FSM,每个有4个状态(SS1, SS2, SS2, SS4),我都放了一个默认状态3个FSM(SS1),以及主要的两个状态(默认S2)。
为了测试主 FSM (S1,S2),我对所有 inputs/events 使用了信号生成器。输入之一是方波,它是我的主 FSM (1 Hz) 的时钟事件,模拟持续时间为 50 秒。
我遇到的问题是我可以在信号生成器中看到我有一个方波,但是当我将示波器放在那个时钟上时我看到一个方波(从 0 延长到 49.5 秒然后下降到 0) .
我的时钟在哪里?我的 FSM 有什么问题?
这是 FSM:
正交子状态是:
详情:
在S1和S2之间
具有时钟信号的信号生成器之一是:
对方有以下信号:
问题是您对 ode3 使用了默认步长。使用固定步长求解器时,auto
步长计算为 (StopTime-StartTime)/50
。在您的情况下,步长为 1。
因为在 t = 0,1,2,3,...49 时 Clock
的值为 2,这就是您在示波器中看到的值。
在 t =50 时,Clock
的值为 0,这就是您在示波器中看到的值。
您需要转到 Simulaton->Model Configuration Parameters
下拉菜单的 Solver Panel
。
然后打开 Additional Options
选项并将步长更改为更小的值,例如 0.01.
或者(取决于您的其他要求)您可以使用可变步长求解器。