一种基于k近邻的批次过程在线实时监测方法
技术领域
本发明属于工业过程监控与故障诊断领域,特别涉及一种基于k近邻的批次过程在线实时监测方法。
背景技术
批次过程作为一种重要的生产方式,已经被广泛地应用到食品、生物制药等众多领域。与连续的生产过程相比,批次过程具有反应复杂、时序操作严格等特点,使得对实际批次过程的监测变得更为困难。
近年来,基于多元统计分析的批次过程监测方法,例如主元分析(Principal Component Analysis,PCA)和偏最小二乘回归(Partial Least Squares,PLS)等,已被广泛应用于监测批次生产过程。但是由于批次生产过程存在的非线性、非高斯性以及多模型等特性,基于多元统计分析的批次过程监测方法在实际生产应用中受到了很大的限制。因此,本发明采用了在处理非线性、多模态和非高斯等问题具有的明显优势的k近邻方法。
另一方面,对于批次生产过程,已有的基于k近邻的故障检测方法(Fault detection based on k-Nearest Neighbor,FD-kNN)是对批次过程的三维数据矩阵按照批次展开的方式进行预处理,即将一个生产批次所有时刻的采样数据展开成一个高维向量作为一个样本,这说明FD-kNN需要等批次过程运行结束得到所有的数据后,才能判断该批次过程是否发生故障。显然,FD-kNN具有滞后性,不能实时地检测 出批次过程中存在的故障,在实际的生产实践中,这往往会导致生产材料的浪费等问题。因此,对批次过程的生产进行在线实时的检测显得尤为重要。
发明内容
本发明针对上述已有的基于k近邻的故障检测方法的不足,提出了一种利用k近邻方法对批次过程进行实时监测的故障检测方法。该方法按照批次过程的历史数据的采样时间片分别建立训练模型。在线实时监测时,只需得到当前采样时刻的数据,即可判断批次过程是否存在故障,如若检测出故障,则将停止批次的生产。
本发明提出的一种基于k近邻的批次过程在线实时监测方法,其实现的步骤如下:
第一部分:离线训练,建立模型。将批次过程的历史数据沿着时间轴切割为多个二维数据矩阵,对每一个二维数据矩阵进行归一化处理后,利用k近邻方法分别建立所有采样时刻的控制限。
第二部分:在线实时检测。在线采集批次过程的测量数据并归一化处理,计算测量样本的k个最近邻平方累积距离,并与第一部分中得到的采集测量数据对应采样时刻下的控制限作比较,判断批次过程是否异常。若测量样本的k个最近邻平方累积距离超出了第一部分中得到的采集测量数据对应采样时刻下的控制限,则表明批次过程发生异常。
所述的第一部分:离线训练,建立模型。
1)采集建模数据。利用多传感器数据采集系统收集正常工况下的 数据,用一个三维数据矩阵X(I,J,M)代表批次过程的历史数据,其中:I为批次数;J为测量变量数;M为独立采样点数。
2)沿着时间轴切割三维数据矩阵X(I,J,M)。将三维数据矩阵X(I,J,M)中所有批次过程对应同一采样时刻的数据分别构成一个二维矩阵。对于M个采样时刻,将三维数据矩阵X(I,J,M)沿着时间轴切割为M个二维矩阵。以第l个采样时刻为例,三维矩阵X(I,J,M)中所有批次过程对应的第l个采样时刻的数据构成了一个二维矩阵
其中,x(i)=[x1(i),x2(i),…,xJ(i)],i=1,2,…,I表示J个变量在第i批次下的测量值,即Xl的每一行x(i),i=1,2,…,I代表一个样本;xj=[xj(1),xj(2),…,xj(I)],j=1,2,…,J表示第j个变量在所有批次下的测量值,即Xl的每一列xj,j=1,2,…,J代表一个测量变量。
3)归一化处理二维数据矩阵。对M个二维矩阵分别进行归一化处理,使得二维矩阵中各个变量的均值为0,方差为1,得到M个新的二维数据矩阵。以第l个采样时刻为例,二维矩阵Xl经过归一化处理后,得到新的二维矩阵
4)确定控制限。根据M个采样时刻下的二维测量数据矩阵,分 别确定M个采样时刻下的控制限。以第l个采样时刻为例,确定该时刻下的控制限的具体步骤如下:
S1计算二维矩阵中每个样本与其他样本间的距离其距离的计算公式为:
di,t2=||x‾(i)-x‾(t)||22,i=1,2,...,I;t=1,2,...,I;i≠t---(3)]]>
S2从中找出与样本距离最小的k个样本,作为的k个最近邻。
S3计算的k个最近邻的平方累积距离其计算公式为:
Di2=Σj=1kdi,j2---(4)]]>
S4确定第l个采样时刻下的故障检测控制限
根据(4)式得到中每个样本的平方累积距离并将按照降序进行排序后,得新的序列则第l个采样时刻下的控制限可以确定为
其中,α为置信水平,表示向下取n(1-α)的整数部分。
所述的第二部分:在线实时监测。
1)归一化处理实时采集到的测量数据。由多传感器数据采集系统采集到批次过程第l个采样时刻的测量数据yl∈RJ,并利用训练模型中第l个采样时刻对应的均值和标准差来归一化处理yl,得到新的数据y‾l∈RJ.]]>
2)找到的k个最近邻。由公式di,t2=||x‾(i)-x‾(t)||22,i=1,2,...,I;t=1,2,...,I;i≠t,]]>在中找到的k个最近邻。
3)计算的k个最近邻平方累积距离。由公式计算出的k个最近邻平方累积距离
4)比较与的大小,若则yl是正常样本;否则yl是故障样本,表明过程发生异常。
本发明具有以下优势:
1.本发明首次提出了一种基于k近邻的批次过程在线实时监测方法,该方法可以在线监测批次过程;
2.本发明提出的故障检测方法是实时的,当批次过程中发生故障时,可以较及时地检测出来;
3.针对非线性、非高斯以及多模态的批次过程,本发明提出的故障检测方法具有更好的检测效果。
附图说明
图1是本发明第一部分实施的流程框图;
图2是本发明第二部分实施的流程框图;
图3是基于PCA方法对故障1的检测结果图;
图4本发明提出的方法对故障1的检测结果图;
图5是基于PCA方法对故障2的检测结果图;
图6本发明提出的方法对故障2的检测结果图。
具体实施方式
本发明提出的一种基于k近邻的批次过程在线实时监测方法,其实施的流程框图如图1和图2所示,具体的实现步骤如下:
第一部分:离线训练,建立模型。
1)采集建模数据。利用多传感器数据采集系统收集正常工况下的数据,用一个三维数据矩阵X(I,J,M)代表批次过程的历史数据,其中:I为批次数;J为测量变量数;M为独立采样点数。
2)沿着时间轴切割三维数据矩阵X(I,J,M)。将三维数据矩阵X(I,J,M)中所有批次过程对应的同一采样时刻的数据分别构成一个二维矩阵。对于M个采样时刻,将三维数据矩阵X(I,J,M)沿着时间轴切割为M个二维矩阵。以第l个采样时刻为例,三维矩阵X(I,J,M)中所有批次过程对应的第l个采样时刻的数据构成了一个二维矩阵
其中,Xl表示x(i)=[x1(i),x2(i),…,xJ(i)],i=1,2,…,I表示J个变量在第i批次下的测量值,即Xl的每一行x(i),i=1,2,…,I代表一个样本;xj=[xj(1),xj(2),…,xj(I)],j=1,2,…,J表示第j个变量在所有批次下的测量值,即Xl的每一列xj,j=1,2,…,J代表一个测量变量。
3)归一化处理二维数据矩阵。对M个二维矩阵分别进行归一化处理,使得二维矩阵中各个变量的均值为0,方差为1,得到M个新的二维数据矩阵。以第l个采样时刻为例,具体说明归一化处理二维矩阵Xl的实现步骤:
S1计算J个变量的均值,即二维矩阵Xl中各列的均值,并记为ul=[μ1,μ2,…,μJ]∈RJ,其中μj,j=1,2,…,J为第j个测量变量在第 l个采样时刻下的均值。
S2计算J个变量的标准差,即Xl中各列的标准差,并记为wl=[σ1,σ2,…,σJ]∈RJ,其中σj,j=1,2,…,J为第j个测量变量在第l个采样时刻下的标准差,其计算公式为:
σj=1IΣi=1I(xj(i)-uj)2---(1)]]>
S3将Xl中各列的每一个元素减去元素对应的变量均值,并除以元素对应的变量标准差,其计算公式为:
x‾j(i)=xj(i)-μjσj---(2)]]>
其中,并记处理后的二维矩阵为
4)确定控制限。根据M个采样时刻下的二维测量数据矩阵,分别确定M个采样时刻下的控制限。以第l个采样时刻为例,确定该时刻下的控制限的具体步骤如下:
S1计算二维矩阵中每个样本与其他样本间的距离,其距离的计算公式为:
di,t2=||x‾(i)-x‾(t)||22,i=1,2,...,I;t=1,2,...,I;i≠t---(3)]]>
S2从中找出与样本距离最小的k个样本,作为的k个最近邻。
S3计算的k个最近邻的平方累积距离,其计算公式为:
Di2=Σj=1kdi,j2---(4)]]>
S4确定第l个采样时刻下的故障检测控制限
根据(4)式得到中每个样本的平方累积距离并将按照降序进行排序后,得到新的序列则第l个采样时刻下的控制限可以确定为
其中,α为置信水平,表示向下取n(1-α)的整数部分。
第二部分:在线实时监测。
在线采集批次过程的测量数据,以第l个采样时刻为例,当得到第l个采样时刻下的测量值时,利用第l个采样时刻下对应的监测模型来判断批次过程是否异常。下面,阐述在线监测批次过程的具体步骤:
1)归一化处理实时采集到的测量数据。由多传感器数据采集系统采集到批次过程第l个采样时刻的测量数据yl=[y1,y2,…,yJ]∈RJ,根据公式(2)并利用训练模型中第l个采样时刻对应的均值ul∈RJ和标准差wl∈RJ来归一化处理yl,得到新的数据y‾l=[y‾1,y‾2,...,y‾J]∈RJ.]]>
2)找到的k个最近邻。由公式(3),在中找到的k个最近邻。
3)计算的k个最近邻平方累积距离。由公式(4),计算出的k个最近邻平方累积距离
4)比较与的大小,若则yl是正常样本;否则yl是故障样本,表明过程发生异常。
实施例
结合青霉素发酵过程的例子来说明本发明的有效性。实施例的数据来自于伊利诺科技学院(Illinois Institute of Technology,IIT)过程建模、监测及控制研究小组于2002年研究开发出的PenSim 2.0仿真平台。
本文将通过改变发酵体积的初始值来模拟发酵过程中的多工况现象,通过设置发酵体积的初始值分别为100、102、106,模拟三种工况下的实验数据,每种工况下各采集40批数据。
选取该过程的9个变量作为监测变量,如表1所示。每批发酵过程的时间长度均为400个小时,每隔1小时采样一次,共采样400个点。为了使收集到的数据更符合实际的生产情况,各个变量均加了均值为0,方差为0.01的高斯白噪声,这样形成的建模数据可以表示为X(120×9×400)。
为了测试算法的故障检测效果,在每种操作工况下分别引入阶跃和斜坡的两种故障类型,如表2所示。
表1青霉素发酵过程检测变量
序号变量序号变量
1通风速率(L/h)6二氧化碳浓度(mmole/L)
2搅拌功率(W)7PH值
3衬底补料温度(K)8反应温度(K)
4溶解氧浓度(mmole/L)9冷却水流量((L/h))
5发酵体积(L)
表2青霉素发酵过程中引入故障描述
序号故障类型故障引入时间(h)
1第一种工况下,通风速率阶跃性增长了1%200
2第一种工况下,搅拌功率以0.05的斜率降低200
3第二种工况下,通风速率以0.05的斜率增加200
4第二种工况下,搅拌功率阶跃性降低了0.3%200
5第三种工况下,通风速率阶跃性增长了1%30
6第三种工况下,搅拌功率以0.05的斜率降低30
下面结合青霉素发酵过程的实例对本发明的实施步骤进行详细地阐述:
第一部分:离线训练,建立模型。
1)采集青霉素发酵过程正常运行下的实验数据。由PenSim 2.0仿真平台可模拟青霉素发酵过程,得到三种工况下的无故障监测数据,并在各个变量上均加了均值为0,方差为0.01的高斯白噪声,这120批数据集合可以用一个三维的数据矩阵X(120×9×400)表示,其中:120为批次数;9为测量变量数;400为独立采样点数。
2)将三维数据矩阵按照采样时刻切割为多个二维数据矩阵。将上述的三维数据矩阵X(120×9×400)沿着时间轴切割为400个二维数据矩阵,即将120批次的同一采样时刻下的监测数据分别建立一个二维数据矩阵,共采样了400个点,则建立了400个二维矩阵。以第l个采样时刻为例,三维矩阵X中第l个采样时刻的数据构成了二维矩阵
3)归一化处理二维矩阵。分别对400个二维矩阵进行归一化处理,得到400个新的二维数据矩阵。以第l个采样时刻为例,二维矩阵Xl∈R120×9经过归一化处理,得到新的二维矩阵
4)利用k近邻方法分别建立400个采样时刻下的控制限。同样,以第l个采样时刻为例,确定第l个采样时刻对应的控制限Dα,l,具体的实现步骤如下:
S1取出第l个采样时刻对应的二维数据矩阵由公式(3)计算出中每个样本与其他样本间的距离。
S2从二维矩阵中找出与样本距离最小的k个样本,作为的k个最近邻。
S3由公式(4)计算的k个最近邻平方累积距离。
S4由公式(5)确定第l个采样时刻对应的控制限
第二部分:在线实时故障检测。
在线采集批次过程的测量数据,以第l个采样时刻为例,当得到第l个采样时刻下的测量值时,利用第l个采样时刻下对应的监测模型来判断批次过程是否异常。下面,阐述在线监测批次过程的具体步 骤:
1)在线实时采集测量数据yl=[y1,y2,…,y9]∈R9,根据公式(2)并利用训练模型中第l个采样时刻所对应的均值和标准差来归一化处理测量数据yl,得到新的数据为
2)由公式(3),计算与第l个采样时刻所对应的二维数据矩阵中每个样本的距离,并从找出距离最近的k个近邻样本作为的k个最近邻。
3)由公式(4),计算的k个最近邻的平方累积距离
4)将与第一部分中得到的第l个采样时刻下的控制限作比较,若则yl是正常样本;否则yl是故障样本,表明过程发生异常。
表3故障检测的结果
6种故障的检测结果在表3中给出,由于在不同工况下,这两种故障的检测结果类似,这里仅以工况一下的两个故障为例,给出其检 测结果图:故障1(图3、图4)和故障2(图5、图6)。
图3和图4分别是PCA和本发明方法在故障1(阶跃故障)下的检测结果,图5和图6分别为这两种故障检测方法在故障2(斜坡故障)下的检测结果。结合检测结果图和表3可以看出本发明方法在线实时监测批次过程的可行性,以及相对于PCA方法,本发明方法能够更有效地检测出批次过程中发生的故障,具有更好的检测性能。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。