⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bp.m

📁 故障诊断 基于BP神经网络的故障诊断系统 1生成BP网络2.训练和自适应调整
💻 M
字号:
clear;
clc;

AnalysisDataName='S1132MA';
%加载训练的数据
load TrainData.txt;
[TrainData_Row,TrainData_Column]=size(TrainData);

P=TrainData(:,1:TrainData_Column-1);
T=TrainData(:,TrainData_Column);
P=P';
T=T';
%对数据进行归一化处理
[AnalysisData_Assistant_Min_Max,AnalysisData_Min_Max]=WYH_Get_Min_Max(AnalysisDataName);
P=WYH_Unit(P,AnalysisData_Assistant_Min_Max);
T=WYH_Unit(T,AnalysisData_Min_Max);

%定义BP神经网络
%----------------------------------------------------------------------------------------
%|************************构造三层(包括输入层)BP神经网络模型**************************|
%----------------------------------------------------------------------------------------
%1.生成BP网络
R=size(AnalysisData_Assistant_Min_Max,1);%输入层
S1=6;%隐层神经元个数
S2=1;%输出层神经元个数

PR=AnalysisData_Assistant_Min_Max;
net=newff(PR,[S1,S2],{'tansig','purelin'});

%3.训练和自适应调整
net.adaptFcn='trains';
net.trainFcn='trainlm';
net.trainParam.epochs=1000;
net.trainParam.goal=1e-2;
%net.trainParam.mu=0.001;
%net.trainParam.mu_dec=0.1;
%net.trainParam.mu_inc=10;
%net.trainParam.mu_max=1e10;
%net.trainParam.max_fail=5;
%net.trainParam.mem_reduc=1;
%net.trainParam.min_grad=1e-10;
%net.trainParam.show=25;
%net.trainParam.time=inf;

%4.性能评价函数
net.performFcn='mse';

Begin_Input_W=net.IW{1,1};
save SaveResult\Begin_Input_W.txt Begin_Input_W -ascii;
Begin_LayerOne_Bias=net.b{1};
save SaveResult\Begin_LayerOne_Bias.txt Begin_LayerOne_Bias -ascii;

Begin_LayerOneToTwo_W=net.LW{2,1};
save SaveResult\Begin_LayerOneToTwo_W.txt Begin_LayerOneToTwo_W -ascii;
Begin_LayerTwo_Bias=net.b{2};
save SaveResult\Begin_LayerTwo_Bias.txt Begin_LayerTwo_Bias -ascii;


%-------------------------------------------------------------------------
%-*******************************训练网络模型*****************************-
%--------------------------------------------------------------------------
[net,TR]=train(net,P,T);
%--------------------------------------------------------------------------
%-*******************************仿真网络模型*****************************-
%--------------------------------------------------------------------------
figure(2);
Model_T=sim(net,P);

%反归一化
Model_T=WYH_ReverseUnit(Model_T,AnalysisData_Min_Max);
Theory_T=WYH_ReverseUnit(T,AnalysisData_Min_Max);
%--------------------------------------------------------------------------
%-*******************************拟和数据作图显示*************************-
%--------------------------------------------------------------------------
%subplot(2,1,1);
xLabel=1:size(Theory_T,2);
plot(xLabel,Theory_T,'-K',xLabel,Model_T,':R');%黑色显示是理论值,红色显示是模型计算值
title(AnalysisDataName);

%--------------------------------------------------------------------------
%-*******************************神经网络的保存***************************-
%--------------------------------------------------------------------------

save SaveResult\net.dat net;

Input_W=net.IW{1,1};
save SaveResult\Input_W.txt Input_W -ascii;
LayerOne_Bias=net.b{1};
save SaveResult\LayerOne_Bias.txt LayerOne_Bias -ascii;

LayerOneToTwo_W=net.LW{2,1};
save SaveResult\LayerOneToTwo_W.txt LayerOneToTwo_W -ascii;
LayerTwo_Bias=net.b{2};
save SaveResult\LayerTwo_Bias.txt LayerTwo_Bias -ascii;

[Extend_Theory_T,Extend_Model_T]=ExtraPolate(net,AnalysisDataName);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -