m基于GRNN广义回归神经网络的飞机发动机剩余寿命预测matlab仿真,训练集采用C-MAPSS数据集

简介: m基于GRNN广义回归神经网络的飞机发动机剩余寿命预测matlab仿真,训练集采用C-MAPSS数据集

1.算法描述

   GRNN建立在非参数核回归基础上,以样本数据为后验条件,通过执行诸如Parzen非参数估计,从观测样本里求得自变量和因变量之间的联结概率密度函数之后,直接计算出因变量对自变量的回归值。GRNN不需要设定模型的形式,但是其隐回归单元的核函数中有光滑因子,它们的取对网络有很大影响,需优化取值。GRNNb论具有良好的函数逼近性能,而且因为其网络训练更为方便,因此,GRNN在信号过程、结构分析、控制决策系统、金融领域、生物工程领域等各个科学和工程领域得到了广泛的应用。

    广义回归神经网络的理论基础是非线性核回归分析,非独立变量y相对于独立变量x的回归分析实际上是计算具有最大概率值的y。设随机变量x和y的联合概率密度函数为f (x ,y),已知x的观测值为X,则y相对于X的回归,即条件均值为:

image.png

对于未知的概率密度函数f (x, y),可由x和y的观测样本经非参数估计得:
image.png
image.png

   GRNN通常被用来进行函数逼近。它具有一个径向基隐含层和一个特殊的线性层。第一层和第二层的神经元数目都与输入的样本向量对的数目相等。GRNN结构如图所示,整个网络包括四层神经元:输入层、模式层、求和层与输出层。 

image.png

   输入层的神经元数目与学习样本中输入向量的维数m相等,每个神经元都是一个简单的分布单元,这些神经元直接将输入变量传递到隐含层中。 

   C-MAPSS Data Set里面有一个read me 的 txt文件。training 是给建模用的。 test 和 rul 是给 建模后验证用的。 每个 test 里面都有100组情况  对应的 rul里面有 100个数值。 rul 里面的数值就是真实值。 建模之后 跑test的数据 应该 给出接近rul的数值

1.1数据分析

1) unit number

2) time, in cycles

3) operational setting 1

4) operational setting 2

5) operational setting 3

6) sensor measurement 1

7) sensor measurement 2

...

26) sensor measurement 26

数据第一列是机器的编号,第二列是每个机器的运行的时间序列标号,3~5是对应的设置,6~最后一列是传感器的测量值。

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png

3.MATLAB核心程序

%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
相关文章
|
9月前
|
机器学习/深度学习 传感器 数据采集
MATLAB基于PCA的Indian Pines数据集分类实现
MATLAB基于PCA的Indian Pines数据集分类实现
431 7
|
9月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
635 0
|
9月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
586 2
|
9月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
223 8
|
8月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
1095 0
|
9月前
|
机器学习/深度学习 存储 算法
基于广义benders分解法的综合能源系统优化规划(Matlab代码实现)
基于广义benders分解法的综合能源系统优化规划(Matlab代码实现)
243 0
|
9月前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
517 0
|
9月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
680 1
|
9月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
374 7
|
9月前
|
机器学习/深度学习 算法 数据可视化
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
469 6

热门文章

最新文章