Matlab 我的简单simulink模型运行得太快了

Matlab 我的简单simulink模型运行得太快了,matlab,simulink,stateflow,Matlab,Simulink,Stateflow,我在Matlab上设计了一个简单的simulink和状态流图。它工作得很好!但我有两个问题: 1) 这个模型跑得太快了。两种状态之间的过渡时间惊人地快,我看不到。我试图改变一些参数,但没有成功。我应该改变什么(可能在模型配置参数上?)使其变慢,以便我们可以看到转换 2) 目前我只有一个恒定的输入。如何设置一系列常数,可能是周期性的?我想应该有一个特殊的组件。我需要,比如说在时间0时输入0,然后在1分钟后输入1,在时间3时输入2,等等 1)我在一些交互模拟中遇到了同样的问题,CPU会让它们运行得

我在Matlab上设计了一个简单的simulink和状态流图。它工作得很好!但我有两个问题:

1) 这个模型跑得太快了。两种状态之间的过渡时间惊人地快,我看不到。我试图改变一些参数,但没有成功。我应该改变什么(可能在模型配置参数上?)使其变慢,以便我们可以看到转换

2) 目前我只有一个恒定的输入。如何设置一系列常数,可能是周期性的?我想应该有一个特殊的组件。我需要,比如说在时间0时输入0,然后在1分钟后输入1,在时间3时输入2,等等

1)我在一些交互模拟中遇到了同样的问题,CPU会让它们运行得太快,用户无法交互。尽管由于它使用的解决方案会带来沉重的CPU负载,但使用一个新的解决方案还是带来了解决方案。有了这个,如果你定义一个10秒的模拟,那就是它将持续的时间。如果您不想通过此负担,只需延长模拟时间,或在整个模拟过程中彻底检查范围(禁用范围内的点限制,单击“参数”按钮,然后取消选中“数据历史记录/将数据点限制到最后…”

2) 模拟链接/源/重复序列。您可以定义时间向量以及该时间内要输出的值。请记住,块在两个点之间插值,因此,如果要在T=1s中从2更改为3,则必须定义两个点,一个在T=1s中为U=2,另一个在T=1s中为U=3。例如,0英寸(0..1)、5英寸(1..2)、10英寸(2..3)和15英寸(3..4):


如果您只想检查转换,则不需要使其变慢。您可以尝试使用Stateflow中可用的调试模式,并可以逐步查看模型的工作方式。

减缓Stateflow动画的选项(例如,您可以更好地看到模拟过程中状态之间的转换)位于Simulink菜单栏中的“显示”菜单下

在最新版本(R2014b)中,该选项位于显示->状态流动画下(以及模拟->状态流动画下)。(有关详细信息,请参阅。)

在旧版本中,它位于显示->模拟中的数据显示->图表动画延迟(秒)下(不过,我不能100%确定该选项何时在菜单中移动)


请注意,要在菜单中启用这些选项,您必须在图表内部。

可能会在
范围上展开缩放并可视化图形,您还可以将模拟停止时间从1000.0减少到1或2,甚至更少。Stateflow调试器还允许在动画中设置延迟。@Manex错误!时间值应该是整体的;两个随后的数字显然不能相似。谢谢。您知道除了模型本身之外,我们是否还可以验证生成的C代码?我需要检查可达性;特定状态(或一段代码)永远无法访问。@ArianaJasmine这样做的方法是使用,它将验证Simulink中的设计(而不是代码)和代码。这两种都是Simulink的(昂贵的)附加产品。
Time values:   [0 1 1 2 2  3  3  4]
Output values: [0 0 5 5 10 10 15 15]