Simulink Rapid Accelerator重建可变输入数据

时间:2016-04-30 03:17:08

标签: matlab simulink

我刚刚发现了一个错误的错误,因为我在使用Rapid Accelerator时非常信任Simulink以关注所有依赖项。

基本上我有数百次迭代在同一个模型上运行但输入数据不同(来自MATLAB工作区的“From Workspace”)。

Simulink似乎忽略了对输入数据的依赖,并且不会为新输入数据重建目标。

现在我可以强制每次迭代重建,但这不是优化模型的重点......

我如何告诉Simulink只编译包含输入+链接器(每次迭代构建)的单个文件,而不是构建整个模型?

即使这不起作用:如何在第一时间强制重建?

无论

 Simulink.BlockDiagram.buildRapidAcceleratorTarget('my_model');

更多设置“在模拟目标设置中重建所有(包括库)”似乎强制重建....

1 个答案:

答案 0 :(得分:0)

这不是一个错误,它是一个有据可查的事实。

当一个模型包含"来自工作区" block被编译为Rapid Accelerator目标,独立可执行文件将包含工作空间中的所有相关变量,其大小和值等于它们在编译时

这是一个足够好的理由来避免像#34; From Workspace"默认情况下,快速正常模式模拟除外。

如果您考虑它,这是显而易见的 - 考虑如果您的模型在工作空间中使用变量会发生什么

myVar = [1 2 3];

在第一次运行期间,但在下次运行时设置

myVar = [1 2 3 4 5 6 7 8 9 10];

这种灵活性在MATLAB / Simulink环境中是微不足道的,但是用C或C ++这样的语言实现它要困难得多。虽然可以在快速加速目标中实现这种灵活性,但我不推荐它。

更好的方法是对模型使用inport,甚至更好的模型参数。例如,in this blog post以及其他各种地方都详细说明了这些内容。