程序化Simulink模型操作重置

时间:2014-08-25 20:53:12

标签: matlab simulink

我正在运行一个模型,我在其中使用函数加载模型并以编程方式选择多个可配置子系统并打开多个信号的信号记录(我使用load_system无形地加载系统)。

我发现我的信号没有被记录并做了几次检查,并意识到我的set_param / get_param调用都正确执行但是打开系统显示信号记录实际上没有打开。

举个例子: - 我调用函数1来加载模型并打开信号记录 - 在使用" sim"模拟模型之前,我在功能1中设置了一个调试点。命令 - 如果我使用find_system命令,我可以看到一个记录信号句柄的完整列表(当断点处于活动状态时) - 但是,如果我打开系统(open_system),则引用的信号不会突出显示为已记录(缺少标准符号)。 - 如果我重新运行find_system - 我发现没有记录任何信号 - 推进断点并运行模拟,结果不会记录任何数据。

我怀疑该模型是以一种奇怪的方式加载的,但我对如何调试此问题感到茫然。

欢迎任何建议

1 个答案:

答案 0 :(得分:0)

我发现了这个问题的解决方案可能对其他人有所帮助。

我使用可配置子系统并使用set_param强制在我的simulink模型中选择块。但是,在许多情况下,如果默认块选择是所需的配置,我正在跳过此步骤。

我发现如果我强制set_param在块选择上运行,无论默认块配置如何,我都能够激活信号记录并让模型按预期运行。

一个有趣的夸克就是可配置子系统的句柄发生了变化。具体来说,加载系统会生成一组句柄。当我继续打开模型时,这些相同对象的句柄是不同的。应用set_param选项似乎解决了这个问题,当我打开日志记录时,对象句柄是一致的。

当然,隐含的是,在开启所述日志记录之前必须完全配置模型。