1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y52ZmZ9q
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
GRNN建立在非参数核回归基础上,以样本数据为后验条件,通过执行诸如Parzen非参数估计,从观测样本里求得自变量和因变量之间的联结概率密度函数之后,直接计算出因变量对自变量的回归值。GRNN不需要设定模型的形式,但是其隐回归单元的核函数中有光滑因子,它们的取对网络有很大影响,需优化取值。GRNNb论具有良好的函数逼近性能,而且因为其网络训练更为方便,因此,GRNN在信号过程、结构分析、控制决策系统、金融领域、生物工程领域等各个科学和工程领域得到了广泛的应用。
4.部分源码
%%
%Step1
STR = 1;%选择数据标号1,2,3,4
Name_Train = ['data\00',num2str(STR),'\','train_FD00',num2str(STR),'.txt'];
Name_RUL = ['data\00',num2str(STR),'\','RUL_FD00',num2str(STR),'.txt'];
%读取数据
Data_Train = load(Name_Train);
Data_RUL = load(Name_RUL);
%%
%Step2
%计算每个机器的时间
%得到机器编号
Mach_No = unique(Data_Train(:,1));
for i = 1:length(Mach_No)
Index = find(Data_Train(:,1) == i);
%平滑预处理
used = [7,8,9,12,13,14,16,17,18];
tmps = Data_Train(Index,used);
[R,C] = size(tmps);
dout = zeros(R,C);
for mm = 1:C
dout(:,mm) = [func_smooth(tmps(:,mm),32)]';
end
Mach_Info{i} = dout;
RUL_Train(i) = length(Index);
end
figure;
subplot(121);
plot(Data_Train(find(Data_Train(:,1) == 1),7));
title('信号预处理之前');
subplot(122);
plot(Mach_Info{1}(:,1));
title('信号预处理之后');
%%
%Step3
%特征提取
P = [];
T = [];
for i = 1:length(Mach_No)
tmps = Mach_Info{i};
%提取当前矩阵的特征
Y = func_pca(tmps',1);
Y = Y';
for j = 1:length(Y)
P = [P;Mach_Info{i}(j,1:6),Y(j,:)];
T = [T;(RUL_Train(i)-j)];
end
end
%%
%Step4
%使用神经网络进行训练
%%归一化处理
%对pt矩阵进行归一化处理
%GRNN网络训练
net = newgrnn(P',T',5.1);
save train_net.mat net
05_021_m