以前发了一个调用函数的,现在补充一个不是函数的吧,有问题可以在评论区留言。

X_train = load('D:\matlab\bin\COD\train\d00.dat'); %载入训练数据
X_test =load('D:\matlab\bin\COD\test\d1_te.dat'); %载入测试数据
X_train = double(X_train');%注意此处有个转置,是因为TE数据集的d00数据和其他数据行列颠倒了。只要保证和样本数据维度一致即可。
X_test = double(X_test);
X_mean = mean(X_train);  %求均值
X_std = std(X_train);    %求标准差
[X_row,X_col] = size(X_train);
X_train=(X_train-repmat(X_mean,X_row,1))./repmat(X_std,X_row,1);%标准化处理
SXtrain = cov(X_train);%求协方差矩阵
[T,lm] = eig(SXtrain);%求特征值及特征向量
D = flipud(diag(lm));%将特征值从大到小排列,
num = 1;
while sum(D(1:num))/sum(D) < 0.9   %若累计贡献率小于90%则增加主元个数
num = num +1;
end
P = T(:,X_col-num+1:X_col); %取对应的特征向量                           TU=num*(X_row-1)*(X_row+1)*finv(0.99,num,X_row - num)/(X_row*(X_row - num));%求置信度为99%时的T2统计控制限  for i = 1:3th(i) = sum((D(num+1:X_col)).^i);
end
h0 = 1 - 2*th(1)*th(3)/(3*th(2)^2);
ca = norminv(0.99,0,1);
QU = th(1)*(h0*ca*sqrt(2*th(2))/th(1) + 1 + th(2)*h0*(h0 - 1)/th(1)^2)^(1/h0); %置信度为99%的Q统计控制限
%模型测试
n = size(X_test,1);
X_test=(X_test-repmat(X_mean,n,1))./repmat(X_std,n,1);%标准化处理
%求T2统计量,Q统计量
[r,y] = size(P*P');
I = eye(r,y);
T2 = zeros(n,1);
Q = zeros(n,1);
for i = 1:n
T2(i)=X_test(i,:)*P*inv(lm(52-num+1:52,52-num+1:52))*P'*X_test(i,:)';                                           Q(i) = X_test(i,:)*(I - P*P')*X_test(i,:)';
end
%绘图
for i=1:nif T2(i,1)>TUbreakend
endfigure('Name','PCA');
subplot(3,1,1);plot(1:i,T2(1:i),'k');hold on;plot(i:n,T2(i:n),'k');title('统计量变化图');xlabel('采样数');ylabel('T2');hold on;line([0,n],[TU,TU],'LineStyle','--','Color','g');for i=1:nif Q(i,1)>QUbreakendend subplot(3,1,2);plot(1:i,Q(1:i),'k');hold on;plot(i:n,Q(i:n),'k');title('统计量变化图');xlabel('采样数');ylabel('SPE');hold on;line([0,n],[QU,QU],'LineStyle','--','Color','g');%贡献图
%4.计算每个变量对Q的贡献
e = X_test(600,:)*(I - P*P');%选取第600个样本来检测哪个变量出现问题。
contq = e.^2;
[mxq_bor,mxq]=max(contq);
contqq=zeros(1,52);
contqq(1,mxq)=contq(1,mxq);
%5. 绘制贡献图
subplot(3,1,3);bar(contq,'g');hold on;bar(contqq,'r');xlabel('变量号');ylabel('SPE贡献率 %');
%检测结果分析
%T2故障检测率k1=0;
for i=160:960if T2(i)>TUk1=k1+1;end
end
FDRT=k1/(960-160);
%T2误报率
k1=0;
for i=1:159if T2(i)>TUk1=k1+1;end
end
FART=k1/159;
%Q故障检测率
k1=0;
for i=160:960if Q(i)>QUk1=k1+1;end
end
FDRQ=k1/(960-160);
%Q故障检测率
k1=0;
for i=1:159if Q(i)>QUk1=k1+1;end
end
FARQ=k1/159;

之前的那篇在这

基于PCA的TE过程故障诊断(matlab)相关推荐

  1. 人脸识别 pca matlab,基于PCA的人脸识别的Matlab实现代码

    基于PCA的人脸识别算法 --Matlab Face recognition Based on PCA 目录 人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流 . 首先判断其是否存在人脸 , ...

  2. 基于PCA的人脸识别的Matlab实现代码

    基于PCA的人脸识别算法 --Matlab Face recognition Based on PCA 目录 一.人脸识别简介...3 二.主元分析...3 三.原理说明...3 四.算法流程图... ...

  3. PCA针对TE过程(田纳西伊斯曼过程)数据的故障监测处理

    PCA故障诊断中两个关键统计变量T2T^2T2和SPESPESPE的的计算 T2T^2T2:Hotelling-T2 SPESPESPE:平方预测误差(Squared prediction error ...

  4. 基于PCA的人脸检测(Matlab版代码)

    花了几天,终于把matlab版的人脸检测运行成功了,虽然正确率不是很高,看着各种论文上的人脸检测正确率都出奇的高,我是不怎么相信的,有的论文连基于平均脸的人脸检测正确率都能达到98%,汗啊--  也许 ...

  5. 基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA算法的人脸识别

    1.基于PCA的人脸识别代码 2.MATLAB ELM+PCA人脸识别 2.基于PCA的人脸识别(matlab)(采用PCA算法进行人脸识别,通过抽取人脸的主要成 分,构成特征脸空间,识别时将测试图像 ...

  6. 基于PCA的故障诊断方法(matlab)

    1. PCA原理分析 PCA的原理主要是将原始数据进行降维.其具体工作原理参照:CodingLabs - PCA的数学原理 2. 数据预处理 训练数据集(只有正样本)为维数据,即有n个采样值,每个采样 ...

  7. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

    Date: 2022.5.30 文章目录 前言 1.算法原理 2.实现效果 3.测试matlab代码 前言 在大学毕业设计的时候,在毕业设计中实现了基于PCA和BP神经网络的人脸识别系统,采用matl ...

  8. 故障诊断 matlab 仿真,基于MATLAB的BP网络变压器故障诊断仿真

    • 62 • 内 燃 机 与 配 件基于MATLAB的BP网络变压器故障诊断仿真 郑广瑞;王娜 (包头供电局,包 头 014000) 摘要:基于油中溶解气体分析针变压器故障诊断的对传统方法,在诊断过程 ...

  9. 瞬时转速 matlab,基于瞬时转速的发动机故障诊断研究

    基于瞬时转速的发动机故障诊断研究 对本系统中瞬时转速的采集进行了误差分析,并讨论了影响瞬时转速波动的几个因 (本文共3页) 阅读全文>> 汽车发动机按照其所用燃料可分为柴油机和汽油机.柴油 ...

最新文章

  1. 基于人工智能方法的手写数字图像识别_【工程分析】基于ResNet的手写数字识别...
  2. 英伟达新核弹GPU:4nm制程800亿晶体管,20张即可承载全球互联网流量,全新Hopper架构太炸了...
  3. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法
  4. java项目001.双色球游戏
  5. 【动态规划】洛谷 P1282 多米诺骨牌
  6. python socket 发送图片
  7. php 三色排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,第2章 排序 | | 第17节 三色排序练习题...
  8. TP5报错variable type error: array
  9. 深度强化学习之稀疏奖励(Sparse Reward)
  10. 如何通过抖音来进行广告宣传
  11. 熊出没电锯机器人哪一集_熊出没伐木机器人第几集 熊出没光头强造伐木机器人是哪一集?...
  12. HMM隐马尔科夫模型
  13. 玉米社:网站打开慢,如何提升网站打开速度?
  14. hyperledger fabric 2.3.3 环境搭建教程
  15. mybatis 关于出现Parameter array not found. Available parameters are [collection, list]问题的解决方案
  16. 电脑不能连接wifi怎么办连不上wifi怎么办
  17. vivo手机删除自带程序方法
  18. wpf 的 Window或UserControl绑定自己后台属性
  19. Idea主菜单不见了(File,View等工具栏隐藏了)
  20. sql 凭证明细表 科目余额表_转用友科目余额表sql和软件中的一样

热门文章

  1. ORA-00392: log 15 of thread 1 is being cleared, operation not allowed
  2. org.eclipse.wst.validation has been removed
  3. python基础练习题(一)
  4. Vue中的methods配置项中的箭头函数this指向及相关源码分析
  5. android加载本地图库,Android读取本地图库与调用摄像头拍摄
  6. Laravel 上传文件大小改为200M
  7. TimeGen 软件的实用
  8. 1050: 平方和与立方和
  9. mana wifi_在IBM Security Policy Manager 7.1中使用Access Manager凭证
  10. python主函数写法