【故障诊断】基于KNN、SVM、RF、DT、ET多种算法实现制冷系统故障诊断附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

制冷系统故障可由多种模型进行模拟诊断.为了提高其诊断性能,将包括K近邻模型(KNN),支持向量机(SVM),决策树模型(DT),随机森林模型(RF)及逻辑斯谛回归模型(LR)在内的5种成员诊断器,通过绝对多数投票方法集成为一个集成模型,并采用美国采暖,制冷与空调工程师学会(ASHRAE)故障数据对1台90冷吨的离心式冷水机组进行建模及验证,数据包含制冷系统的7类典型故障及一类正常运行.结果表明:集成模型在所选数据集上总体诊断正确率达到99.58%,较各成员诊断器(94.55%~99.05%)均有显著提升,对正常运行,局部故障及全局故障的诊断性能亦有改善.此外,对比分析了不同集成模型及成员诊断器的诊断性能,从中找到诊断正确率与时间成本最佳的集成模型(99.41%,1.34 s).可见,集成模型较单一模型性能更佳,在制冷系统故障诊断中具有更好的应用前景.

⛄ 部分代码

% Gaussian Mixture Model (10/12/2020)function GMM = mGaussianMixtureModel(feat,label,opts)% Defaultkfold = 10;tf    = 2;if isfield(opts,'kfold'), kfold = opts.kfold; endif isfield(opts,'ho'), ho = opts.ho; endif isfield(opts,'tf'), tf = opts.tf; end% Number of classnum_class = numel(unique(label)); % [Hold-out]if tf == 1  fold = cvpartition(label,'HoldOut',ho);  % Call train & test data  xtrain = feat(fold.training,:); ytrain = label(fold.training);  xtest  = feat(fold.test,:);     ytest2 = label(fold.test);  % Train model  My_Model = fitgmdist(xtrain,num_class,...    'Options',statset('MaxIter',1000),...    'Regularize',1e-5,...    'Start',ytrain);  % Test using cluster  pred2 = cluster(My_Model,xtest);   % Accuracy  Afold = sum(pred2 == ytest2) / length(ytest2);    % [Cross-validation] elseif tf == 2  fold   = cvpartition(label,'KFold',kfold);  Afold  = zeros(kfold,1);   pred2  = [];  ytest2 = [];   for i = 1:kfold    % Call train & test data    trainIdx = fold.training(i); testIdx = fold.test(i);    xtrain   = feat(trainIdx,:); ytrain  = label(trainIdx);    xtest    = feat(testIdx,:);  ytest   = label(testIdx);     % Train model    My_Model = fitgmdist(xtrain,num_class,...      'Options',statset('MaxIter',1000),...      'Regularize',1e-5,...      'Start',ytrain);    % Test using cluster    pred = cluster(My_Model,xtest);     % Accuracy    Afold(i) = sum(pred == ytest) / length(ytest);    % Store temporary    pred2  = [pred2(1:end); pred];    ytest2 = [ytest2(1:end); ytest];   end  % [Leave-one out]elseif tf == 3  fold     = cvpartition(label,'LeaveOut');  % Size of data  num_data = length(label);   Afold    = zeros(num_data,1);   pred2    = [];  ytest2   = [];   for i = 1:num_data    % Call train & test data    trainIdx = fold.training(i); testIdx = fold.test(i);    xtrain   = feat(trainIdx,:); ytrain  = label(trainIdx);    xtest    = feat(testIdx,:);  ytest   = label(testIdx);     % Train model    My_Model = fitgmdist(xtrain,num_class,...      'Options',statset('MaxIter',1000),...      'Regularize',1e-5,...      'Start',ytrain);    % Test using cluster    pred = cluster(My_Model,xtest);     % Accuracy    Afold(i) = sum(pred == ytest) / length(ytest);    % Store temporary    pred2  = [pred2(1:end); pred];    ytest2 = [ytest2(1:end); ytest];   endend% Confusion matrixconfmat = confusionmat(ytest2,pred2); % Overall accuracyacc = mean(Afold); % Store resultGMM.acc  = acc;GMM.con  = confmat;if tf == 1  fprintf('\n Accuracy (GMM-HO): %g %%',100 * acc);elseif tf == 2  fprintf('\n Accuracy (GMM-CV): %g %%',100 * acc);elseif tf == 3  fprintf('\n Accuracy (GMM-LOO): %g %%',100 * acc);endend

⛄ 运行结果

⛄ 参考文献

Katırcıoğlu F, Cingiz Z. Fault diagnosis for overcharge and undercharge conditions in refrigeration systems using infrared thermal images. Proceedings of the Institution of Mechanical Engineers, Part E: Journal of Process Mechanical Engineering. 2023;0(0). doi:10.1177/09544089221148065

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值