0
点赞
收藏
分享

微信扫一扫

【PNN分类】基于概率神经网络PNN实现柴油机故障诊断含Matlab源码

624c95384278 2022-03-17 阅读 44

1 简介

介绍了概率神经网络的模型,分析了其特点,并探讨了基于PNN的发动机故障诊断方法.通过MATLAB进行仿真试验,结果表明基于概率神经网络的故障诊断方法可以最大程度地利用故障先验知识,提高发动机故障诊断的准确率.

2 部分代码

% diagnose.m
% 柴油机故障诊断
%% 清空工作空间
clear,clc
close all
%% 定义训练样本和测试样本
% 故障1
pro1 = [1.97,9.5332,1.534,16.7413,12.741,8.3052;
1.234,9.8209,1.531,18.3907,13.988,9.1336]';
% 故障2
pro2 = [0.7682,9.5489,1.497,14.7612,11.497,7.68;
0.7053,9.5317,1.508,14.3161,11.094,7.3552]';
% 故障3
pro3 = [0.8116,8.1302,1.482,14.3171,11.1105,7.4967;
0.816,9.0388,1.497,15.0079,11.6242,7.7604]';
% 故障4
pro4 = [1.4311,8.9071,1.521,15.746,12.0088,7.8909;
1.4136,8.6747,1.53,15.3114,11.6297,7.5984]';
% 故障5
pro5 = [1.167,8.3504,1.51,12.8119,9.8258,6.506;
1.3392,9.0865,1.493,15.0798,11.6764,7.8209]';
% 正常运转
normal = [1.1803,10.4502,1.513,20.0887,15.465,10.2193;
1.2016,12.4476,1.555,20.6162,15.755,10.1285]';
% 训练样本
trainx = [pro1, pro2, pro3, pro4, pro5, normal];
% 训练样本的标签
trlab = 1:6;
trlab = repmat(trlab, 2, 1);
trlab = trlab(:)';
%% 样本的归一化,s为归一化设置
[x0,s] = mapminmax(trainx);
%% 显示结果
strr = cell(1,6);
for i=1:6
if res(i) == testlab(i)
strr{i} = '正确';
else
strr{i} = '错误';
end
end
diagnose_ = {'第一缸喷油压力过大','第一缸喷油压力过小', '第一缸喷油器针阀磨损',...
'油路堵塞', '供油提前角提前 ','正常'};
fprintf('诊断结果:\n');
fprintf(' 样本序号 实际类别 判断类别 正/误 故障类型 \n');
for i =1:6
fprintf(' %d %d %d %s %s\n',...
i, testlab(i), res(i), strr{i}, diagnose_{res(i)});
end

3 仿真结果

【PNN分类】基于概率神经网络PNN实现柴油机故障诊断含Matlab源码_matlab

4 参考文献

[1]孙永军, 王福明. 概率神经网络PNN在发动机故障诊断中的应用[J]. 机械工程与自动化, 2007(4):2.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

【PNN分类】基于概率神经网络PNN实现柴油机故障诊断含Matlab源码_matlab_02



举报

相关推荐

0 条评论