基于典型相关分析的故障检测和过程监控算法研究(Matlab代码实现)

👨‍🎓 个人主页: 研学社的博客
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

文献来源:

本文首先研究了一种基于广义典型相关分析(CCA)的故障检测(FD)方法,旨在在可接受的误报率下最大限度地提高故障检测能力。更具体地说,生成两个残差信号,分别用于检测输入和输出子空间中的故障。两个残差信号的最小协方差是通过考虑输入和输出之间的相关性来实现的。考虑到广义CCA由于过程噪声的高斯假设而应用范围有限,提出了一种广义CCA与基于随机算法的阈值设置相结合的FD技术,并将其应用于高速列车的模拟牵引驱动控制系统。结果表明,与标准的广义CCAFD方法相比,所提方法能够显著提高检测性能。

📚2 运行结果

部分代码:

%% ----------------------- CCA algorithm ----------------------------------

[U, S, V, P,P_res, L,L_res] = cca_fun_static(In_trc,Out_trc);

%% *********************** building statistics for CCA-based FD ***********

%% ----------------------- statistic of CCA residual form 1----------------

% ~~~~~~~~~ for Q statistic

rs=[]; % residual signal

Omega = S(1:rank(S),1:rank(S));

for j = 1:N_free

te1 = P'*In_trc(:,j)-Omega*L'*Out_trc(:,j); % Q statistic

rs=[rs te1];

end

cov_rs = (N_free-1)^-1*rs*rs'; % covariance of Q

%% ----------------------- statistic of CCA residual form 1 from PPT -----

T2_rdin = [];

tempinv = (eye(size(Omega,1))-Omega^2); tempinv = diag(tempinv);

if ~isempty(P_res) % determine the P_res matrix is empty or not

tempeye = diag(eye(size(P_res,2)));

tempi = [tempinv; tempeye];

else

tempi = tempinv;

end

Inv_s = inv(diag(tempi)/(n_s-1));

for j = 1:N_fault

te1 = [P P_res]'*In_trfc(:,j)-S*[L L_res]'*Out_trfc(:,j); % residual L'y-\SigmaJ'u

te2 = te1'*Inv_s*te1; % for T2

T2_rdin=[T2_rdin te2];

end

alpha = 0.05; % significance level

Th_T2_cca_rd = chi2inv(1-alpha,size(Inv_s,1));

%% ----------------------- statistic of CCA residual form 2 from PPT -----

T2_rdin2 = [];

tempinv = (eye(size(Omega,1))-Omega^2); tempinv = diag(tempinv);

if ~isempty(L_res) % determine the L_res matrix is empty or not

tempeye = diag(eye(size(L_res,2)));

tempi = [tempinv; tempeye];

else

tempi = tempinv;

end

Inv_s2 = inv(diag(tempi)/(n_s-1));

for j = 1:N_fault

te1 = [L L_res]'*Out_trfc(:,j)-S'*[P P_res]'*In_trfc(:,j); % residual J'u-\Sigma'L'y

te2 = te1'*Inv_s2*te1; % for T2

T2_rdin2=[T2_rdin2 te2];

end

Th_T2_cca_rd2 = chi2inv(1-alpha,size(Inv_s2,1));

%% ========== detection results of CCA-based FD ===========================

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

figure

subplot(2,1,1)

plot_FD_result(T2_rdin,Th_T2_cca_rd,2,12,1);

ylabel('T2_{ccadin}');

title('Detection result of CCA','FontSize',12);

subplot(2,1,2)

plot_FD_result(T2_rdin2,Th_T2_cca_rd2,2,12,1);

ylabel('T2_{ccadin2}');

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Zhiwen Chen, Steven X. Ding, Tao Peng, Chunhua Yang and Weihua Gui. Fault detection for non-Gaussian process using generalized canonical correlation analysis and randomized algorithms. IEEE Transactions on Industrial Electronics, 65(2): 1559-1567, 2018.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值