【发布时间】:2019-12-28 00:58:58
【问题描述】:
我有一个Python Gekko 应用程序来估计和控制对工业聚合物制造过程(UNIPOL 聚乙烯)的干扰。该方法是更新未知的催化剂活性以最小化测量的和预测的生产率之间的差异。然后将催化剂活性用于生产控制。预测的生产率基于与冷却水的热交换。我遇到的问题是,有时由于与测量(流量计、温度)和大瞬变期间的计算相关的间歇性问题,生产率测量并不好。分布式控制系统(Honeywell Experion 与 TDC3000)具有适当的保护措施,可防止错误测量并报告值但状态不佳。如何使用可用的良好测量值,但忽略 Python Gekko 中间歇性的不良测量值?由于专有问题,我没有可以分享的示例代码,但它是similar to this TCLab exercise。
for i in range(1,n):
# Read temperatures in Celsius
T1m[i] = a.T1
T2m[i] = a.T2
# Insert measurements
TC1.MEAS = T1m[i]
TC2.MEAS = T2m[i]
Q1.MEAS = Q1s[i-1]
Q2.MEAS = Q2s[i-1]
# Predict Parameters and Temperatures with MHE
m.solve(disp=True)
我可以使用np.nan (NaN) 作为衡量标准还是有其他方法来处理不良数据?
【问题讨论】:
-
无法使用
np.nan忽略测量。目标变为 NaN,因此如果TC1.MEAS = np.nan则使用该值。
标签: python time-series nonlinear-optimization gekko honeywell