Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python移动地平线时间序列非线性回归中的坏数据_Python_Time Series_Nonlinear Optimization_Gekko_Honeywell - Fatal编程技术网

Python移动地平线时间序列非线性回归中的坏数据

Python移动地平线时间序列非线性回归中的坏数据,python,time-series,nonlinear-optimization,gekko,honeywell,Python,Time Series,Nonlinear Optimization,Gekko,Honeywell,我有一个应用程序来估计和控制工业聚合物制造过程(UNIPOL聚乙烯)的干扰。该方法是更新未知催化剂活性,以最小化测量和预测生产率之间的差异。然后将催化剂活性用于生产控制。预测生产率基于与冷却水的热交换。我遇到的问题是,有时生产率测量不好,因为在大的瞬态过程中,与测量(流量计、温度)和计算相关的间歇性问题。分布式控制系统(带TDC3000的霍尼韦尔Experion)具有适当的保护措施,可防止不良测量,并报告一个状态不良的值。在Python-Gekko中,如何使用可用的良好度量,而忽略间歇性的不良度

我有一个应用程序来估计和控制工业聚合物制造过程(UNIPOL聚乙烯)的干扰。该方法是更新未知催化剂活性,以最小化测量和预测生产率之间的差异。然后将催化剂活性用于生产控制。预测生产率基于与冷却水的热交换。我遇到的问题是,有时生产率测量不好,因为在大的瞬态过程中,与测量(流量计、温度)和计算相关的间歇性问题。分布式控制系统(带TDC3000的霍尼韦尔Experion)具有适当的保护措施,可防止不良测量,并报告一个状态不良的值。在Python-Gekko中,如何使用可用的良好度量,而忽略间歇性的不良度量?由于专有问题,我没有可以共享的示例代码,但它是

范围(1,n)内的i的
:
#以摄氏度为单位读取温度
T1m[i]=a.T1
T2m[i]=a.T2
#插入测量值
TC1.MEAS=T1m[i]
TC2.MEAS=T2m[i]
Q1.MEAS=Q1s[i-1]
Q2.MEAS=Q2s[i-1]
#用MHE预测参数和温度
m、 求解(disp=True)


我可以使用
np.nan
(nan)作为测量值,还是有其他方法来处理不良数据?

对于任何不良数据,您可以将FV、MVs、SVs或CVs的反馈状态
FSTATUS
设置为off(0)

如果测量值不正确:
TC1.FSTATUS=0
TC2.FSTATUS=0
Q1.FSTATUS=0
Q2.FSTATUS=0
其他:
TC1.FSTATUS=1
TC2.FSTATUS=1
Q1.FSTATUS=1
Q2.FSTATUS=1
Gekko消除了时间序列模型更新中的不良测量,但保留了良好的数据。对于CVs,它通过存储和时移测量值以及每个测量值的fstatus值来实现这一点。坏数据最终与
FSTATUS=0
指示器一起离开数据范围。如果要过滤输入数据,还可以将
FSTATUS
值设置为介于0和1之间:

x=LSTVAL∗(1−FSTATUS)+MEAS∗FSTATUS


其中,
LSTVAL
是最后一个值,
MEAS
是测量值,
x
是该测量值的新过滤输入。有关
FSTATUS
的更多信息,请参阅。

使用
np.nan
忽略测量是不起作用的。目标变为NaN,因此在
TC1.MEAS=np.NaN
时使用该值。