2

我正在尝试加速我的 simulink 项目并想使用加速器模拟模式。

我的项目的目的是控制一个循环过程,其结构如下:

  • matlab 脚本,其中实现了所有参数和带有参数估计的前馈控制。它还开始为每次迭代模拟 simulink 模型。
  • simulink 模型,其中实现了动态系统和前馈控制(基本上是一个查找表)以及反馈控制。所有块的参数由脚本生成的工作区变量/结构设置。

在每次模拟通过后,计算前馈控制变量并根据模拟数据估计参数。然后再次模拟模型。模型在迭代期间没有改变,但它仍然在每个周期编译。从一开始:这个解决方案是否适合使用加速器模式?

我试图按照这些建议的步骤来确定为什么在每次迭代中都构建它:mathworks

如果我使用 Accelerator-Mode 运行它(参考这个函数的文档,它现在可以编译以进行模拟),我仍然无法重现为什么每次迭代都会编译它。

csdet1.ContentsChecksum.Value ~= csdet2.ContentsChecksum.Value

是真的,但建议的代码没有找到任何细节。

csdet1.InterfaceChecksum.Value ~= csdet2.InterfaceChecksum.Value

也是如此,建议的代码输出

UserDefinedTypesChecksum

是不同的。这是什么意思,我该如何解决这个问题?

旁白:当我在 Simulink 中打开模型并选择正常模式的情况下运行 Simulink.BlockDiagram.getChecksum() 时,我收到此错误:

为此图表图表名称指定的持续更新 RTW 不支持此操作。”

但是这个图表是一个 Matlab-Function 块,而不是一个状态流程图?!

4

0 回答 0