航空发动机数据-C-MAPSS数据集的个人理解

C-MAPSS数据集包含不同运行和故障条件的传感器数据,用于航空发动机的故障预测研究。数据集分为训练和测试子集,训练集显示故障逐渐发展,测试集提供故障前的状态,目标是预测剩余操作周期。FD004因其多种工作状态和故障模式被视为最难预测的数据子集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据来源:https://www.nasa.gov/intelligent-systems-division
数据集介绍:
在这里插入图片描述
NASA的C-MAPSS(商用模块化航空推进系统仿真)数据集(涡扇发动机退化仿真数据集)是一种被广泛使用的基准数据.C-MAPSS数据包括不同数量的运行工况和故障工况的传感器数据。
数据:该数据有4个子数据集,每个子数据集有不同数量的运行工况和故障工况,每个子数据集又分为训练子集和测试子集,其中训练集记录了航空发动机的多个状态参数从正常到故障的完整周期内每个时间序列的采样值,测试集则包含了故障前某一个时间点之前的状态参数值以及对应的剩余寿命。如上表所示。数据中的每一行是单个运行时间周期内数据的快照,包含26列:第一列表示发动机ID,第二列表示当前运行周期数,3-5列表示对发动机性能有重大影响的三个操作设置,6-26列表示21个传感器值。发动机在每个时间序列开始时正常工作,但在某个未知时间点出现故障。在训练集中,故障的量级不断增长,直到系统出现故障。在测试集中,数据一直提供到系统故障之前的一段时间。目标是在测试数据出现故障之前估计剩余的操作周期的数量。
注:由于FD004有六种工作状态,两种故障模式,所以认为FD004数据是最难进行预测的
数据结构如下:
在这里插入图片描述例如FD001包含train_FD001,test_FD001和RUL_FD002,值得说明的是:test数据集中的cycle是随机停止在某一步的(还没有停止工作的某一cycle),并且每个engine对应的RUL在RUL_FD001给出,因此在RUl_FD001中有100个数字,代表的就是RUL。

### C-MAPSS 数据集介绍 C-MAPSS(Commercial Modular Aero-Propulsion System Simulation)数据集是一个广泛应用于航空发动机健康监测和剩余使用寿命(RUL)预测研究的数据集[^1]。此数据集由NASA开发,旨在提供一个标准化平台以便研究人员测试和发展新的算法。 #### 数据结构特点 该数据集中包含了多个不同类型的涡轮风扇引擎运行周期内的操作条件以及来自各种传感器的时间序列测量值。具体来说: - **训练/测试文件**:分为若干个独立的子文件夹,每个代表一组特定的操作场景; - **每条记录**:表示单次飞行循环期间收集到的一组观测结果; - **字段说明**: - `unit`:标识具体的引擎单元编号; - `time`:对应于给定单位在整个生命周期内经历过的总工作时间步数; - 多达21种不同类型的工作参数与环境变量(如温度、压力等),这些构成了输入特征空间的一部分; 值得注意的是,在实际应用中并非所有的传感信号都对退化过程有贡献作用,因此通常会经过预处理筛选出最具影响力的几个维度作为模型构建的基础[^2]。 ### 使用方法概述 对于希望利用C-MAPSS开展RUL建模工作的学者而言,可以从以下几个方面入手准备实验流程: #### 数据探索分析 通过统计描述性指标计算、可视化图表绘制等方式初步掌握整体分布规律及其内部关联模式,识别潜在异常点并考虑适当清洗策略。 #### 特征工程设计 依据领域专业知识选取合适的转换函数或组合方式增强原始属性表达能力,比如采用滑动窗口机制提取局部趋势变化特性,或是引入额外衍生量度反映相对比例关系等等。 #### 模型选择搭建 考虑到任务目标为回归性质的任务形式,可以尝试诸如随机森林、支持向量机乃至深度神经网络在内的多种机器学习技术方案来进行比较评估。特别是卷积神经网络(CNN),已被证明能够有效捕捉时空依赖性的复杂映射关系,在此类问题上展现出良好表现潜力[^3]。 ```python import pandas as pd from sklearn.model_selection import train_test_split from torch.utils.data import DataLoader, TensorDataset import torch.nn.functional as F import torch.optim as optim def load_data(file_path): df = pd.read_csv(file_path) X = df.iloc[:, :-1].values # 假设最后一列为标签列之外的部分都是特征 y = df.iloc[:, -1].values # 获取真实RUL值 return X, y X_train, y_train = load_data('path_to_training_set.csv') X_test, y_test = load_data('path_to_testing_set.csv') # 进一步划分验证集合... X_trn, X_val, y_trn, y_val = train_test_split(X_train, y_train) dataset_trn = TensorDataset(torch.tensor(X_trn), torch.tensor(y_trn)) loader_trn = DataLoader(dataset_trn) class CNNModel(nn.Module): def __init__(self): super().__init__() self.conv1d_1 = nn.Conv1d(in_channels=..., out_channels=...) ... def forward(self, x): ... output = F.relu(x) return output model = CNNModel() criterion = nn.MSELoss() optimizer = optim.Adam(model.parameters(), lr=0.001) for epoch in range(num_epochs): running_loss = 0. for i, data in enumerate(loader_trn): inputs, labels = data optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels.unsqueeze(1)) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch {epoch + 1}, Loss: %.3f' % (running_loss / len(loader_trn))) ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值