在 simulink 中调整参数

Tuning parameters in simulink

我得到了一个包含4个输入、6个输出和16个参数的simulink模型,带有4个不同的自写控制器。我需要调整参数以找到它们的优化值。我尝试使用参数估计和响应优化工具以及分析菜单中的其他选项,但我无法达到我的目标。工具开始估计,但参数值保持不变,没有任何变化。我认为这是因为该工具对单输入和单输出模型很有用。有人帮忙吗?

从评论中的讨论来看,您似乎是在 InitFcn 模型回调中定义参数值。这在进行正常模拟时很好,但问题是在每次模型更新和模拟期间都会执行此回调。这意味着当使用像 Simulink Design Optimization 这样的东西时,它会在尝试改变参数值的同时一遍又一遍地迭代模型,InitFcn 回调中定义的值会覆盖每次迭代的值(对于相同的优化尝试设置的参数。这导致参数在优化期间从不更改值并保持不变,其值在模型回调中定义。

解决这个问题的正确方法是在 PreLoadFcn 模型回调中定义模型参数:

PreLoadFcn

  • Before the model is loaded.
  • Defining a callback code for this parameter is useful for loading variables that the model uses.

[...]

有关详细信息,请参阅文档中的 Model Callbacks

如果是其他原因导致参数 estimation/optimisation 失败,您需要与我们分享您的模型和相关文件。

通常,为了最大限度地提高优化成功的机会,您希望尽量减少同时估计的参数数量(在每一步使用较少数量的参数进行多阶段估计有时是一个很好的选择妥协)。