时间:2024-07-28
万彪
(武汉职业技术学院 计算机学院, 武汉 430074)
基于OPC的统计过程控制算法研究与软件开发
万彪
(武汉职业技术学院 计算机学院, 武汉 430074)
通过TE过程和OPC通信模拟工业现场采集数据,应用多变量统计过程控制原理及软件实现方法结合实际生产过程,开发出适用于工业现场的自动化监控软件。针对质量控制要求,给出基于主成分分析的多变量SPC在工业控制过程质量监控中的实现方法,在Simulink中运行TE过程,产生历史数据作为建模数据,产生实时数据并通过OPC将数据传入应用程序中处理,调用在Matlab中制作好的PCA DLL算法实时绘制SPC控制图并检测故障及追寻故障原因,并用典型化工生产过程——TE过程,做了有效验证。
工业现场; 统计过程控制; 主成分分析; OPC通信
统计过程控制是一种基于数理统计的方法,它不需要对过程控制系统建立精确的数学模型,而是采用多变量统计过程控制方法对从底层设备获取的数据进行理论分析[1]。统计过程控制可以更方便地帮助人们了解并改进工业控制过程中存在的潜在问题,并积极追寻生产过程中发生异常的原因[2]。本文针对一般的工业过程,选用主成分分析方法,在Simulink中运行TE过程,产生历史数据作为建模数据,产生实时数据并通过OPC将数据传入应用程序中处理,调用在Matlab中制作好的PCA DLL算法实时绘制SPC控制图并检测故障及追寻故障原因。开发一个用于实时监控生产过程的产品质量及运行状况,并对故障原因做简单判断的统计过程控制软件,帮助操作人员有效监控生产过程及产品质量情况。
根据整个系统所需,系统可分为3个层次:上位机应用软件,OPC通讯接口,现场设备。其中上位机软件包括人机界面显示和核心算法,人机界面主要包括实时显示统计过程控制图,以及统计量超限时利用贡献图诊断故障,核心算法包括算法实现及调用;OPC接口负责为设备层和上位机数据通信;现场设备是上位机的数据源,负责底层设备的数据产生和采集。其系统总体结构图,如图 1所示。
本文使用TE 过程在Matlab/Simulink 仿真平台模拟产生现场设备数据源[3]。系统数据流程图,如图2所示。
根据图2看出,数据源是运行在Matlab/Simulink 中的TE 过程产生。但是由于这时PLC 程序没有新建标签名,OPC 无法扫描到标签,因此本文应用RSLogix5000软件编写相应梯形图,配合TE 过程变量新建相应标签,结合RSLogix 5000 Emulate 模拟器,运行PLC 程序,并且由TE 过程通过Simulink 中OPC 工具箱(OPC 客户端)将TE 过程输出值写入OPC 服务器(RSLinx)变量数组和PLC 程序标签中,模拟了实际生产过程中产生和获取数据的过程[4]。当OPC Server获取PLC采集到现场的数据(TE 产生)时,上位机就可以通过内嵌在主程序里的OPC Client读取数据,经过>数据预处理,调用统计过程控制算法,绘制控制图和贡献图。
图1 系统结构图
图2 系统数据流程图
OPC数据通信由OPC服务器和OPC客户端组成,使用AB公司的RSLinx作为OPC服务器,具有通信安全、稳定、可靠等特点,支持OPC规范,故无需重新开发OPC服务器。OPC客户端设计在下文的详细设计中给出。
根据统计过程控制原理,确定上位机应用程序的基本功能有以下几点:
1、根据正常工况(无故障TE生产过程)历史数据,建立统计过程控制模型,计算出SPE和T2统计量的控制限[5];
2、根据实时数据,在线监测并计算出此刻的SPE和T2统计量值;
3、实时绘制统计过程控制曲线并显示数据;
4、当SPE和T2统计量值超出控制限时,利用贡献图进行故障诊断;
多变量统计过程控制应用软件结构大致可分为四个模块:通讯模块、数据处理模块、核心算法模块和人机界面模块。系统框图,如图3所示。
图3 上位机应用软件系统框图
各个模块的功能与内容:
1) 通讯模块
通讯模块是实现应用程序和硬件设备进行数据交换的中间桥梁。本文应用OPC数据通信,将OPC客户端内嵌在VB程序里,实时获取现场(TE过程模拟)传来的数据供应用程序处理。
2) 数据预处理模块
数据预处理模块主要是对采集到的历史数据和实时数据进行剔除野点,消除噪声和量纲影响等处理,,为建模和核心算法提供准确,可靠的数据。
3) 核心算法模块
本文的核心算法包括主成分分析法、SPE和T2统计量及控制限,贡献图分析等。利用Matlab现有的库函数实现,并做成COM组件供应用程序调用。
4) 人机界面模块
人机界面模块直观反映了生产过程的运行状态,给操作人员一目了然的了解和掌握生产信息[6]。本软件的人机界面主要包括控制过程控制主界面、贡献图界面、过程变量及控制变量界面、实时数据界面等。
根据统计过程控制及PCA 算法研究得出实现本文算法模块开发的具体流程如下:
1、选取正常工况时的TE 过程数据作为建模数据X;
2、对建模数据X进行标准化处理,消除量纲影响得到其标准化矩阵X;
3、计算标准化后的矩阵X的协方差矩阵;
4、对协方差矩阵进行特征值分解,得到特征值及对应的特征向量;
5、采用累积贡献率法确定主成分个数K;
6、计算主成分模型;
7、获取实时数据向量X(i)(1×m),进行标准化处理
8、计算得分向量及PCA 模型估计量;
9、计算某一时刻的SPE 和T2 统计量,绘制控制图,检测过程运行状态;
10、比较统计量与控制线,确定发生异常时,采用贡献图法计算贡献率;
11、进一步进行故障原因的分析,改进生产过程和质量。
根据以上流程,利用Matlab 在数学矩阵运算中的优势,给出了算法在Matlab中的具体实现。假设数据矩阵为X。
1) 对采集到的数据进行标准化处理:
相关代码:X=zscore(X);
2) 对数据矩阵进行主成分分析[7]:
[COEFF, SCORE, LATENT, TSQUARED] = princomp(X)
其中princomp()是Matlab 自带的主成分分析函数,COEFF 是负荷向量(协方差矩阵对应的特征向量矩阵),SCORE 是得分向量,LATENT 是协方差矩阵的特征值,TSQUARED 是T2 统计量。
3) 确定主成分个数K。使用累积贡献率法求主成分个数,代码如下:
percent=input('确定方差贡献率限(0~1):'); %输入预设的累计贡献率值
k=0;
fori=1:size(LATENT,1)
alpha(i)=sum(LATENT(1:i))/sum(LATENT); %alpha0 表示累计贡献率值
if alpha(i)>=percent %%通常取85%
k=i; break;
end
end
4) 建立主成分模型。确定T2和SPE统计量及控制限。h0=1-2*theta(1)*theta(3)/3/(theta(2)^2); %求h0
SPEbeta=theta(1)*(norminv(beta)*(2*theta(2)*h0^2)^0.5/theta(1)+1+theta(2)*h0*(h0-1)/theta(1)^2)^(1/h0); %求SPE统计量控制限
T2knbeta=k*(size(X,1)-1)/(size(X,1)-k)*finv(beta,k,size(X,1)-k); %求T2统计量控制限
5) 比较统计量与控制限,如果超限,计算T2和SPE贡献率:SPE贡献率代码如下。
Q(i)=(XT(analyzetime,i)-Xp(analyzetime,i)).^2;
per(i)=sign(XT(analyzetime,i)-Xp(analyzetime,i))*Q(i)/spe(analyzetime);
由于VB程序不能直接调用Matlab编译好的函数,需将Matlab函数生成COM组件,以动态链接库(DLL)的形式注册运行在计算机上才能被程序调用。
本文使用TE 过程在MATLAB/SIMULINK 仿真平台模拟产生现场数据。TE 以下四个放热的化学反应是TE 过程的主要生产过程,如式(1)—式(4)。
A(g)+C(g)+D(g)→G(liq)
(1)
A(g)+C(g)+E(g)→H(liq)
(2)
A(g)+E(g)→F(liq)
(3)
3D(g)→2F(liq)
(4)
从上面四个公式看出,A、C、D和E是TE过程反应的四种原料,经过前两个放热反应产生产物G和H。而经过后面两种化学反应产生B和F两种副产品。
TE过程主要包含五个操作单元,分别是冷凝器,气液分离器、反应器、循环压缩机和产品分离器,它的工艺流程图,如图4所示。
图4 TE过程工艺流程图
TE过程有12个可操作(控制)变量和41个可检测的过程变量。其中12个控制变量用来控制过程的TE生产过程的运行,如表1 所示。
41个过程变量由19个组分变量和22个连续过程变量组成,如表2、表3所示。
TE过程中可以通过改变负载扰动和设定点两种方法进行故障仿真。预设的操作故障有21种,如表4所示。
其中1-6属于阶跃变化,7-12属于随机变化,13属于慢偏移变化,21属于稳态位置等,16-20为留给使用人员自行配置的未知故障。
表1 TE过程控制变量
表2 TE过程组分变量
表3 TE过程变量
表4 TE过程故障点
本文利用TE过程实现两个个功能,分别如下:1、在Simulink中运行TE过程,将产生的数据存入SQLServer数据库中作为SPC的建模历史数据;2、产生实时数据,通过Matlab/Simulink中的OPCToolBox将实时数据写入OPCServer(RSLinx)中,模拟现场采集数据,提供给上位机应用软件所需数据。
OPCToolBox工具箱可以连接OPCDA(DataAccess)和OPCHAD(HistoricalDataAccess)服务器,让你直接从Matlab和Simulink获得实时和历史数据。你可以从DCS系统、SCADA系统和PLC设备上读、写和记录符合OPC基金会数据访问(DA)标准的数据。
SPC软件的基本思想是通过事先获取或储存在数据库里的正常工况下的历史数据建立统计主成分模型,计算出SPE、T2的值,也称为控制限。在线监测时,将实时数据投影到主成分模型中,计算此时的SPE、T2值,并绘制成统计控制图。比较此刻计算出的SPE、T2值与控制限,判断该时刻系统是否失控。当该时刻的统计量大于控制限时,说明生产状况可能出现了异常因素,通过贡献图分析,可快速查找引起异常的原因。
根据软件开发需求及SPC软件的基本思想,本文确定了SPC统计过程监控的人机界面。SPC监控主界面,如图5所示。
图5 监控主界面图
该主界面图可以实时显示T2和SPE统计量和控制限,并能很明显看出统计量与控制线的关系,当统计量超过控制线时说明有异常情况发生,点击“分析”按钮,调出贡献图。
统计过程控制是一种基于数理统计的数学计算方法,依据对采集的大量生产数据的统计过程分析,监控实际过程的产品质量和运行安全状况。经过近百年的理论研究和实际应用,统计过程控制取得了卓越的发展。目前国内遇到的主要问题是如何更好的将统计过程控制理论研究与实际应用结合,推动SPC在国内的发展。本文结合这两方面的优势,开发了一套可用于实际生产过程监控的通用的统计过程控制应用软件,该软件应用统计学方法结合生产实际,对实时采集到的数据进行处理和分析,并将结果以图表形式直观的表达在软件界面上,方便不懂统计学方法的操作人员解决现场发生的异常情况,有利于空寂国产控制方法在工业自动化中的推广。
[1] Roberts S W. Control chart tests based on geometric moving average[J]. Technometrics,1959,1:239-250.
[2] Macgregor J F, Kourt I T. Statistical process control of multivariate processed[J]. Control Engineering Practice, 1995, 3(3):403-414.
[3] 赵立杰, 柴天佑, 王纲. 多元统计性能监视和故障诊断技术研究进展[J]. 信息与控制, 2004, 33(2):197-201.
[4] 邓晓刚, 田学民. 生产过程故障诊断方法研究现状及展望[J]. 石油大学学报: 自然科学版, 2005, 29(6):151-157.
[5] Barry M Wise, Nealb Gallagher. The process chemometrics approach to process monitoring and fault detection[J]. Journal of Process Control, 1996, 6(6):329-348.
[7] Hoskuldsson A. PLS regression methods[J]. Journal of Chemometrics, 1988, 2: 211-228.
Research on Statistical Process Control Algorithm Based on OPC and Software Development
Wan Biao
(College of computer Science, Wuhan Polytechnic Computer Institute, Wuhan 430074, China)
Data are collected through TE process and OPC communication simulation of industrial field. By principles of multivariable process control and the software realization method combining with the actual production process are researched, automatic monitoring software is developed to be suitable to inustrial field. In view of the quality control requirements and the analysis of the statistical process control, a specific realization method of multivariate SPC based on principal component analysis in the industrial control process quality monitoring is given. The TE process is operated in Simulink, and the generated history data are used as the modeling data. The generated real-time data are introduced into the application program and processed by OPC. The designed PCA DLL algorithm in Matlab is used to real-time draw SPC control chart, detect faults and pursue the cause of the problems. Finally, a typical chemical production process - TE process is used to make effective verification.
Industrial site; Statistical process control; Principal component analysis; OPC communication
万彪(1975-),男,荆门人,硕士,武汉职业技术学院计算机学院,副教授,研究方向:计算机应用,武汉 430074
1007-757X(2017)02-0071-04
TP311
A
2016.05.05)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!