【问题标题】:Simulink save final state leads to compile errorSimulink保存最终状态导致编译错误
【发布时间】:2015-07-10 16:55:35
【问题描述】:

我有一个简单的 simulink 模型

除非我尝试保存输出状态,否则它编译得很好:

然后我在尝试编译时遇到了这个错误:

只有在 Normal 或 Accelerator 模式下运行的模型以及在 Normal 模式下运行的 Model 模块才支持保存完整的 SimState 集。

为什么会发生这种情况以及如何解决?

更新:

我的模型设置为固定步长,并设置为正常模式:

【问题讨论】:

  • 如何运行模型?它是否在另一个模型内的模型块中?您确定模型中没有任何其他块吗?您是否从模型生成代码?
  • @am304,这是一个非常简单的模型。它不是嵌套的。它运行良好。但它没有建立。我通过按我上传的最后一张照片上最右侧的按钮来构建代码。
  • 为什么要建立模型?那有什么用?记录最终状态不适用于构建。只需按 play 即可运行模型。

标签: matlab simulink


【解决方案1】:

如 cmets 中所述,“构建”模型仅用于生成代码/可执行文件,不支持保存最终状态用于代码生成。如果您只想运行模型,只需按“运行”按钮,而不是“构建”按钮,它应该可以工作。有关如何运行模型的更多详细信息,请参阅Simulink documentation

【讨论】:

  • 我需要循环运行 simulink 并在每个循环开始时调整模型。因此,我需要在下一个循环中恢复 simulink 状态。问题是 simulink 通常很慢。因此,我需要编译它以使其更快。
  • 正如我所说的那样行不通。 Simulink 并不慢。你的模型可能很慢,但那是另一回事。我会尝试解决您的模型变慢的原因并加快速度。
  • 在这种情况下你帮不了我,因为模型在 5 到 10 秒内运行,这是合理的。我已尽我所能让它尽可能快。问题是它必须循环运行数千次,这使得它非常慢。
  • 好吧,不看模型,无法说5/10s是否合理。可能没问题,或者模型可以运行得更快。例如,我在您的“玩具模型”示例中注意到您使用的是固定步长求解器。如果您也在“真实”模型中这样做,那么可变步长求解器可能会快很多。
  • 另请参阅 Simulink 文档中的 Save and Restore Simulation State as SimState,了解使用 SimState 的限制。您应该能够在 Accelerator 中运行您的模型,但是无论您以何种方式运行您的模型,我相信您不需要按“构建”按钮,这是完全没有必要的。
猜你喜欢
  • 2015-11-18
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
相关资源
最近更新 更多