PCA故障诊断步骤剖析.doc

上传人:小飞机 文档编号:3957200 上传时间:2023-03-28 格式:DOC 页数:12 大小:510.50KB
返回 下载 相关 举报
PCA故障诊断步骤剖析.doc_第1页
第1页 / 共12页
PCA故障诊断步骤剖析.doc_第2页
第2页 / 共12页
PCA故障诊断步骤剖析.doc_第3页
第3页 / 共12页
PCA故障诊断步骤剖析.doc_第4页
第4页 / 共12页
PCA故障诊断步骤剖析.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《PCA故障诊断步骤剖析.doc》由会员分享,可在线阅读,更多相关《PCA故障诊断步骤剖析.doc(12页珍藏版)》请在三一办公上搜索。

1、基于PCA算法的故障诊断步骤离线PCA监测模型的计算步骤:(1) 选择监控变量,收集正常工况下的各变量的样本,记为训练样本数据X_train和检验数据X_test;X_train为nm矩阵,即n个样本,m个观测变量(即以列向量来看的话,为一个观测变量各个采样点的值)对样本数据X_train和检验数据X_test进行中心化和标准化处理得到和;中心化处理:按列对X_train减去观测变量的均值 观测变量某一采样点的值减去这一观测变量所有采样点的平均值 求取一列(即某一观测变量)的平均值标准化处理:对X_train除以观测变量的标准差(按列(观测变量)进行) 标准差求出标准化矩阵的协方差矩阵;的协方

2、差矩阵对为:(2) 对进行特征分解,求得特征值()及其对应的特征向量(负荷向量);(3) 确定主元个数, 确定了主元个数k,就得到了k个特征值,及其对应的特征向量;A:累计贡献率法:前k个主元的累积方差贡献率为:当前k个主元的累积方差贡献率达到85%,则主元个数取k值B:交叉检验估计法:将采集到的数据分成k个部分,1部分数据用来建立主元模型,剩下的k-1部分用来作为检验数据去检验所建的模型。如此,建立若干个不同主元个数的模型,并测试所建立的模型,从中选取一个通过检验后误差最小的模型的主元个数作为系统主元个数。(4) 建立PCA主元模型,并进行交叉验证以确定误差最小按照,求出第i个主元,并依据求

3、出其主元模型用带入得到另一主元模型,依据,求出模型误差,确定模型误差最小的那个模型即为主元模型。(5) 计算T2统计量控制限和SPE统计量控制限;对于样本个数为n,主元个数为k的过程变量X_train, T2统计量服从自由度为k和n一k的F分布,则置信度为的T2统计量控制上限为:或检验水平为的SPE统计量控制上限为:,是与(1-)分位点对应的标准差在线过程监测与故障诊断步骤:(1) 采集第i时刻的在线实时数据(为1m矩阵),并进行中心化和标准化处理得到;(2) 按照,求出的得分向量,依据,求出PCA模型估计量,这里;(3) 计算的T2统计量和SPE统计量,并画出T2统计量和SPE统计量的控制图

4、;(4) 将上述计算结果与T2统计量控制限和SPE统计量控制限比较,以检测过程运行有无异常,当有异常状态发生时,绘制贡献图,找出与故障相关的系统变量:1) 检查每个观测值x的标准化得分, 并确定造成失控状态的r(ra)个得分:;2) 计算每个变量相对于失控得分的贡献率是:3) 当是负时,设它为零;4) 计算第j个过程变量的总贡献率:5) 把所有m个过程变量的画在一个曲线图上。PCA_TE仿真程序:%TE过程的传统主元分析在Matlab中的仿真程序%建立模型:%载入模型数据,以故障11为例Xtrain = load(G:d11.dat); Xtrain = double(Xtrain);%载入测

5、试数据Xtest = load(G:d11_te.dat);Xtest = double(Xtest);%标准化处理:X_mean = mean(Xtrain); %按列求Xtrain平均值 X_std = std(Xtrain); %求标准差 X_row,X_col = size(Xtrain); %求Xtrain行、列数 % for i = 1:X_col%Xtrain(:,i)=(Xtrain(:,i) - X_mean(i)./X_std(i);%Xtest(:,i) = (Xtest(:,i) - X_mean(i)./X_std(i);% end Xtrain=(Xtrain-re

6、pmat(X_mean,X_row,1)./repmat(X_std,X_row,1);%求协方差矩阵sigmaXtrain = cov(Xtrain);%对协方差矩阵进行特征分解,lamda为特征值构成的对角阵,T的列为单位特征向量,且与lamda中的特征值一一对应:T,lamda = eig(sigmaXtrain); % disp(特征根(由小到大));% disp(lamda);% disp(特征向量:);% disp(T); %取对角元素(结果为一列向量),即lamda值,并上下反转使其从大到小排列,主元个数初值为1,若累计贡献率小于90%则增加主元个数D = flipud(diag

7、(lamda); num_pc = 1; while sum(D(1:num_pc)/sum(D) T2UCL1/num_pc r = cat(2,r,i); endend%2.计算每个变量相对于上述失控得分的贡献cont = zeros(length(r),52);for i = length(r) for j = 1:52 cont(i,j) = abs(S(i)/D(i)*P(j,i)*Xtest(400,j); endend%3.计算每个变量的总贡献CONTJ = zeros(52,1);for j = 1:52 CONTJ(j) = sum(cont(:,j);end%4.计算每个变量对Q的贡献e = Xtest(400,:)*(I - P*P);contq = e.2;%5. 绘制贡献图 figure; subplot(2,1,1); bar(CONTJ,k); xlabel(变量号); ylabel(T2贡献率 %); subplot(2,1,2); bar(contq,k); xlabel(变量号); ylabel(Q贡献率 %);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号