news 2026/7/15 14:45:11

风电场监控平台,实时输出异常分数 + 健康指数 + 故障概率,联动工单系统。风机早期故障检测数据集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
风电场监控平台,实时输出异常分数 + 健康指数 + 故障概率,联动工单系统。风机早期故障检测数据集

风机早期故障检测数据集由95个数据集组成,包含89年的SCADA时间序列,分布在三个风电场A、B和C的36个不同风力涡轮机上。特征数量取决于风电场,风电场A有86个特征,风电场B有257个特征,风电场C有957个特征。
整个数据集是平衡的,因为95个数据集中有45个包含导致风力涡轮机故障的标记异常事件,其他50个数据集代表正常行为。此外,每个数据点的基于风力涡轮机状态的标签确保了培训数据的质量,并包含了有关某些给定风力涡轮机故障的进一步信息。风电场A的数据基于EDP开放数据平台的数据和葡萄牙陆上风电场的5台风力涡轮机组成。它包含SCADA数据和由给定故障日志导出的信息,该日志定义了指定故障的启动时间戳。从这些数据中选择了22个数据集纳入本次数据收集。另外两个风电场是位于德国的海上风电场,由于B和C风电场的保密原因,所有三个数据集均匿名。每个数据集以csv文件的形式提供,其中列定义了特征,行表示时间序列的数据点。1. 来自3个不同风电场36台风力涡轮机的89年实际运行数据2. 95个数据集(44个包含标记的异常故障事件,51个代表正常状态)3. 10分钟分辨率的综合SCADA数据4. 特征因风电场而异(86个特征用于风电场A,257个特征用于风电场B,957个特征用于风电场C)5. 每个数据集包括一年的训练数据和4-98天的预测数据。

02

—数据标注数据标记为2个级别。第1级是所谓的事件标签。如果数据集包含预测时间范围内的异常事件,则将该数据集标记为异常。如果不是这种情况,则标记为正常。已根据风电场运营商的直接反馈或以服务报告和故障日志的形式记录的故障确定异常标签。通过风电场运营商的反馈、对数据的手动检查和专家知识的组合,确定正常标签。对于风电场A,所有异常事件的启动都基于可用的EDP故障日志进行定义,该日志仅定义每个故障的启动时间戳。
由于并没有进一步的信息可用,所以在每个故障之前对数据进行分析,以确定可能的事件开始。风电场A的“真实”异常事件开始时间可能不同于设定值。对于B和C风电场,根据数据分析、风电场运营商的反馈、服务报告文件和专家知识定义所有异常事件的开始。虽然在某些情况下,异常事件的真实开始可能与设置的开始有潜在差异,但定义的事件开始得太早的可能性很小。若有的话,异常事件的开始时间可能早于定义的时间。
第2级标签为每个数据集的每个时间戳分配一个标签。这些标签称为状态ID。对于风电场B和C,它们源自风电场运营商提供的原始运行模式,并结合服务报告信息。对于风电场A,未提供此信息。在这种情况下,状态ID基于EDP提供的日志中的故障信息。对于每个风机涡轮机故障,前14天标记为状态ID 4(故障),故障时间戳后3天标记为状态ID 3(维修模式)。设定风机涡轮机故障周围的时间范围的目的是为了降低在训练数据中包含异常行为的风险。由于没有关于给定故障前后异常持续时间的信息,因此保守地选择了时间范围。状态标签可用于推断给定数据点是否表示正常WT行为。


一、风机早期故障检测数据集(CARE to Compare)

数据集总览表

项目详情
数据集全称CARE to Compare:风机早期异常检测时序数据集
数据规模95个子集、89年SCADA时序、36台风机、3个风电场(A/B/C)
风机/风电场A:5台、86特征;B:海上、257特征;C:海上、957特征(匿名)
样本平衡44个异常(含故障事件)、51个正常,整体平衡
时间分辨率10分钟/步
数据构成每个子集=1年训练数据 + 4–98天预测数据
标注体系2级标注:
① 事件标签:子集级(异常/正常)
② 状态ID:逐时间戳(正常、故障前、维修等)
标注依据故障日志、运营商反馈、服务报告、专家经验
格式每个子集1个CSV,行=时间步、列=特征

标注说明(2级标签)

  • Level 1(事件标签)
    • 异常:预测窗口内发生故障事件(44个子集)
    • 正常:全程无故障(51个子集)
  • Level 2(状态ID,逐行标签)
    • 风电场A:故障前14天=状态4(故障前兆);故障后3天=状态3(维修)
    • 风电场B/C:源自原始运行模式+服务报告,覆盖正常、运行、降功率、故障、维修等

二、核心应用场景(直接用于推文)

  1. 风机早期故障预警(最核心)
    用SCADA时序提前几天–几周发现齿轮箱、轴承、发电机等退化趋势,减少非计划停机。
  2. 预测性维护(PdM)
    替代定期检修,按健康状态排程,降低运维成本、延长设备寿命。
  3. 多风电场/多机型算法基准测试
    特征维度从86→957、陆风/海风混合,适合验证LSTM、Autoencoder、Transformer等在高维、长时序、小异常下的表现。
  4. 科研/毕设/竞赛
    时序异常检测、多变量时序分类、小样本学习、领域自适应(风电场间迁移)等方向首选公开基准。
  5. 工业落地
    部署于风电场监控平台,实时输出异常分数+健康指数+故障概率,联动工单系统。

分类标签

#数据集#风机故障#时序数据#异常检测#SCADA#预测性维护#风电AI#CARE数据集

推文组合标签

  • 技术向:#时序异常检测 #LSTM #Autoencoder #深度学习
  • 行业向:#智慧风电 #风机运维 #健康监测 #海上风电
  • 精简封面:#风机数据集 #早期预警 #AI运维

四、完整训练代码(适配CARE数据集,时序异常检测)

环境安装

pipinstallpandas numpy scikit-learn tensorflow matplotlib

1. 数据读取与预处理(多CSV子集加载+标准化+滑窗)

importosimportpandasaspdimportnumpyasnpfromsklearn.preprocessingimportStandardScalerfromsklearn.model_selectionimporttrain_test_split# ========== 配置 ==========DATA_ROOT="care_dataset/"# 存放95个csv的目录SEQ_LEN=144# 10min×144=1天窗口N_FEATURES=86# 风电场A=86,B=257,C=957# =========================defload_all_subsets(data_root):X_all,y_all=[],[]forcsv_fileinsorted(os.listdir(data_root)):ifnotcsv_file.endswith(".csv"):continuedf=pd.read_csv(os.path.join(data_root,csv_file))# 假设最后一列是state_id,倒数第二是event_label(0=正常,1=异常)feat_cols=df.columns[:-2]X=df[feat_cols].values y_event=df.iloc[:,-2].values[0]# 子集级标签# 标准化(按子集)scaler=StandardScaler()X_scaled=scaler.fit_transform(X)# 滑窗foriinrange(len(X_scaled)-SEQ_LEN):X_all.append(X_scaled[i:i+SEQ_LEN])y_all.append(y_event)returnnp.array(X_all),np.array(y_all)X,y=load_all_subsets(DATA_ROOT)print("序列形状:",X.shape)# (样本数, SEQ_LEN, N_FEATURES)print("异常比例:",y.mean())# 划分X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42,stratify=y)

2. 模型(LSTM-AE 时序异常检测,适合早期预警)

fromtensorflow.keras.modelsimportModelfromtensorflow.keras.layersimportInput,LSTM,Dense,Dropoutdefbuild_lstm_ae(seq_len,n_feat):# 编码器inp=Input(shape=(seq_len,n_feat))x=LSTM(64,return_sequences=True)(inp)x=Dropout(0.2)(x)x=LSTM(32,return_sequences=False)(x)# 解码器x=Dense(32,activation='relu')(x)x=Dense(seq_len*n_feat,activation='linear')(x)out=tf.reshape(x,(-1,seq_len,n_feat))model=Model(inp,out)model.compile(optimizer='adam',loss='mse')returnmodelimporttensorflowastf model=build_lstm_ae(SEQ_LEN,N_FEATURES)model.summary()# 训练(只用正常数据训练重构)X_normal=X_train[y_train==0]model.fit(X_normal,X_normal,epochs=50,batch_size=32,validation_split=0.1,callbacks=[tf.keras.callbacks.EarlyStopping(patience=5)])

3. 异常分数计算+评估

# 重构误差=异常分数defanomaly_score(model,X):recon=model.predict(X,verbose=0)returnnp.mean(np.square(X-recon),axis=(1,2))train_score=anomaly_score(model,X_train)test_score=anomaly_score(model,X_test)# 阈值(95分位)thresh=np.percentile(train_score[y_train==0],95)y_pred=(test_score>thresh).astype(int)# 评估fromsklearn.metricsimportclassification_reportprint(classification_report(y_test,y_pred))

正文
分享风电领域顶级公开时序异常检测数据集——CARE to Compare。汇集3个风电场、36台风机、89年真实SCADA运行数据,含95个子集、10分钟分辨率,特征数86–957,覆盖陆风/海风场景。44个异常子集含标记故障事件,51个正常子集平衡分布;2级标注(子集事件标签+逐时间戳状态ID)保障训练质量。

标签:#风机故障 #时序数据集 #异常检测 #SCADA #预测性维护


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 14:43:54

告别繁琐操作:UFO²让Windows自动完成任何任务的革命性突破

告别繁琐操作:UFO让Windows自动完成任何任务的革命性突破 你是否曾因重复点击鼠标、在多个应用间切换而浪费数小时?是否希望电脑能像真人助理一样理解你的自然语言指令,自动完成复杂工作流?微软最新开源的UFO(桌面智能…

作者头像 李华
网站建设 2026/7/15 14:41:26

【小程序课程设计/毕业设计】基于 SpringBoot 的经典诗词普及学习系统 基于 SpringBoot+Android 的个性化诗词学习推送系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/15 14:41:15

Arend REPL环境完全指南:交互式定理证明与调试

Arend REPL环境完全指南:交互式定理证明与调试 【免费下载链接】Arend The Arend Proof Assistant 项目地址: https://gitcode.com/gh_mirrors/ar/Arend Arend是一款功能强大的定理证明助手,其REPL(交互式解释器)环境为开发…

作者头像 李华
网站建设 2026/7/15 14:40:05

CANN/asc-devkit SIMD逻辑与运算API

asc_and 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/ca…

作者头像 李华