首页 文章

Simulink Rapid Accelerator可重建输入数据

提问于
浏览
0

我刚刚发现了一个错误的错误,因为我在使用Rapid Accelerator时过分关注Simulink关注所有依赖项 .

基本上我有数百次迭代在相同的模型上运行但具有不同的输入数据(来自MATLAB工作空间而不是“From Workspace”) .

Simulink似乎忽略了对输入数据的依赖性,并且不会相应地重建目标以获得新的输入数据 .

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

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

即使这不起作用:我如何首先强制重建?

也不

Simulink.BlockDiagram.buildRapidAcceleratorTarget('my_model');

更多设置"Rebuild all (including libraries)"在模拟目标设置中似乎 force 重建....

1 回答

  • 0

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

    当包含"From Workspace"块的模型编译为Rapid Accelerator目标时,独立可执行文件将包含工作空间中的所有相关变量,其大小和值等于编译时的大小和值 .

    这是一个足够好的理由,可以在默认情况下避免使用像“From Workspace”这样的块,除了快速正常的模式模拟 .

    如果你考虑它就很明显 - 考虑如果你的模型在工作区中使用变量会发生什么

    myVar = [1 2 3];
    

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

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

    这种灵活性在MATLAB / Simulink环境中是微不足道的,但是用C或C这样的语言实现它要困难得多 . 虽然可以在Rapid Acceleration目标中实现这种灵活性,但我不建议这样做 .

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

相关问题