如果MV是自由度,是否有办法强制优化器至少将其移动一定量或根本不移动?

时间:2019-04-11 02:51:17

标签: gekko

在MPC应用程序中,有时优化器会决定将阀以0.2%的比例移动0-100%。我希望优化器仅在阀值超过一定阈值(例如5%)以上时才移动阀,而不是移动阀很小的量(除了增加阀的移动量之外,实际上并没有贡献多少)。因此,只有优化器将阀门移动> = 5%时,它才决定移动阀门。

DMAXDMAXHIDMAXLO可以规定您可以移动多少变量,但不能阻止无关紧要的移动。总是可以选择裁剪优化器的输出,但是如果优化器可以将其纳入其预测中,那将是更加理想的选择。

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

1 个答案:

答案 0 :(得分:1)

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

  1. 解决优化问题并确定哪些MV已移动但不足以超出无关紧要的阈值
  2. 关闭这些MV的状态并将其固定为以前的值
  3. 重新解决问题,然后检查是否有其他已移动但不足以引起严重影响的MV

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