2

在 MPC 应用程序中,有时优化器会决定在 0-100% 的可能范围内将阀门移动 0.2%。我希望优化器仅在阀门超过某个阈值(例如 5%)时才移动阀门,而不是移动非常少量的阀门(除了增加阀门的运动之外,这并没有真正贡献太多)。因此,只有当优化器移动阀门 >= 5% 时,它才会决定移动阀门。

DMAX, DMAXHI, 并且DMAXLO可以规定您可以移动变量的幅度,但不要阻止无关紧要的移动。总是可以选择裁剪优化器的输出,但如果优化器可以将其纳入其预测中会更理想。

因为这是一个实时应用程序,所以解决方案不能包含会减慢求解时间的二进制整数变量。

4

1 回答 1

1

一种可能的方法是使用分层方法,在这种方法中重复解决问题并修复不明显移动的 MV 的值:

  1. 解决优化问题并确定哪些 MV 已移动但不足以超出无意义阈值
  2. 关闭这些 MV 的状态并将它们修复为之前的值
  3. 重新解决问题,然后检查是否有任何其他已移动但不足以显着的 MV

根据您拥有的 MV 数量和解决优化问题所需的时间,您可以根据需要多次重复此循环。根据您需要解决它的频率,这种方法可能是一种可行的策略,并且可能比使用 MINLP 求解器更快。

于 2019-04-12T19:07:45.953 回答