以编程方式调试Simulink模型

时间:2015-12-10 03:48:21

标签: matlab debugging simulation simulink

我为simulink模型编写了一个matlab程序,并以编程方式对其进行控制,但在使用set_param('testmodel11', 'SimulationCommand', 'start');时我遇到了一个问题。

它同时提供所有值,即同时给出整个范围和工作区值,但我不希望这样。我想运行程序并在那时执行,只看到其余的值应为零。如何在此时停止模拟并仅从该点获取的绘图和值,其余应为零。理想情况下,下一个断点也有同样的行为吗?

2 个答案:

答案 0 :(得分:1)

有一种方法可以在某些断点(模拟点)处暂停模拟,绘制输出或执行所需的任何操作,然后继续模拟直到下一个断点。

但是,在任何断点处,您都将获得所有时间样本的输出数据,直到达到断点。要从特定时间戳中隔离数据,您可以根据采样时间计算其索引并从工作空间中提取它(输出数据存储为数组)

这是我的回答的链接,这将有所帮助,请通过它: https://stackoverflow.com/a/38348315/6580313

现在,在模拟暂停时运行的m文件中,您可以更改常量块的值,该值指定需要暂停模拟的下一个模拟时间。在m文件中,您还可以编写代码片段来访问输出数据。 模拟继续后,将在常量块中指定的新模拟时间暂停。

如果您有任何疑问,请与我们联系。

答案 1 :(得分:0)

听起来你想使用Simulink Debugger。查看文档以获取有关如何使用它的更多详细信息。它的主要命令行界面是sldebug