关于 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
作为参考轨迹的导数形式。这特别适用于有时间延迟的系统。
我们正试图通过人为的大延迟来控制 tclab。我们遵循了
cv_wgt_start 效果很好。参见
但我的问题是 cv_mgt_start 是全局选项,我们如何处理两个具有完全不同延迟的 CVS?
具有不同延迟的一个选项是使用参数 p
定义自定义 objective 函数,这是惩罚开始的阶跃函数。在此示例中,控制/预测范围内有 10 个时间步长。惩罚 (5) 从 T1
的第 7 步和 T2
.
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
作为参考轨迹的导数形式。这特别适用于有时间延迟的系统。