我在 MPC 模式下使用 GEKKO (Solver APOPT)。我定义我的操纵变量如下:
u = m.MV(lb=0, ub=1, integer=True)
u.STATUS = 1
我故意不使用:
u = m.MV(value=1 ,lb=0, ub=1, integer=True)
u.STATUS = 1
或者:
u = m.MV(value=0 ,lb=0, ub=1, integer=True)
u.STATUS = 1
因为我不知道下一个决定是什么,我希望优化器来定义它。显然,当您未定义 的值时u,GEKKO 会为其指定默认值 0。
问题是这个值u用于我的模型预测以及其他计算中,这是不希望的(见图)。正如您所看到的, 的新值u是 1 ,在我的例子中意味着冰箱处于打开状态。但是,温度预测从默认值u0 开始。因此,冰箱中的温度在下一个时间步长中上升,并且仅在下一个时间步长中开始下降。我可以将 value 定义为之前的结果,u但这也不是 100% 正确。
我怎样才能避免这种情况?还有其他选择可以让我的预测正确开始吗?
我很感激你的帮助:)
四季花海
相关分类