在simulink

时间:2015-06-23 05:04:20

标签: optimization simulink estimation

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

1 个答案:

答案 0 :(得分:0)

从评论中的讨论中,听起来好像是在InitFcn模型回调中定义参数值。在进行正常模拟时,这很好,但问题是在每次模型更新和模拟期间都会执行此回调。这意味着当使用类似Simulink Design Optimization的东西时,它会在尝试改变参数值时反复迭代模型,InitFcn回调中定义的值会为每次迭代覆盖值(对于相同的值)优化尝试设置的参数(s)。这导致参数在优化期间永远不会改变值并保持不变,并且模型回调中定义了值。

正确的方法是在PreLoadFcn模型回调中定义模型参数:

  

<强> PreLoadFcn

     
      
  • 在加载模型之前。
  •   
  • 定义此参数的回调代码对于加载模型使用的变量非常有用。
  •   
     

[...]

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

如果它导致参数估算/优化失败,则需要与我们分享您的模型和相关文件。

通常,为了最大化优化成功的机会,您希望最小化同时估计的参数数量(在每个步骤中使用较少数量的参数进行多阶段估计有时可能是一个很好的折衷方案)