关于 cv_wgt_start 具有完全不同延迟的 CV

About cv_wgt_start for CVs with quite different delays

我们正试图通过人为的大延迟来控制 tclab。我们遵循了 中的建议。
cv_wgt_start 效果很好。参见 。我将 CV_wgt_delay 设置为双中继时间 (fopdt)。

但我的问题是 cv_mgt_start 是全局选项,我们如何处理两个具有完全不同延迟的 CVS?

具有不同延迟的一个选项是使用参数 p 定义自定义 objective 函数,这是惩罚开始的阶跃函数。在此示例中,控制/预测范围内有 10 个时间步长。惩罚 (5) 从 T1 的第 7 步和 T2.

的第 3 步开始
from gekko import gekko
import numpy as np

p1 = np.zeros(11)
p1[6:] = 5
p1 = m.Param(p1)

p2 = np.zeros(11)
p2[2:] = 5
p2 = m.Param(p2)

m.Minimize(p1*(T1-55)**2)
m.Minimize(p2*(T2-35)**2)

另一种option是用m.CV_TYPE=3作为参考轨迹的导数形式。这特别适用于有时间延迟的系统。