Python环境下5种TE过程(Tennessee Eastman Process)故障检测方法

194 篇文章 1 订阅
126 篇文章 49 订阅

田纳西-伊斯特曼过程,也被称作TE过程,主要模拟美国田纳西州一家名为伊斯曼的化工公司的化工过程。TE过程是一个高度复杂、非线性和多变量的过程,涉及到多个阶段和多个控制参数,其中某些参数会相互影响,因此,它是一个理想的测试模型,可用于评估不同的控制算法和性能指标。

TE过程一共有22种工况,其中包括一种正常工况以及21种故障工况。在这21种故障中,故障1、故障2直到故障15以及故障21是预设故障类型。在已知的16个预设故障类型中,存在七种突变类型的故障,编号为1到7,这类故障的特点是具有突然性。此外,存在五种随机类型故障,编号为8到12,它们的特点是故障发生具有不确定性。还存在编号为13的缓慢漂移故障,其特点是发生过程平稳缓慢。以及三种粘滞类型的故障,编号为14、15和21,它们是由于阀门固定导致的。除去预设的故障类型后,编号为16到20的都是未知故障。

鉴于此,采用5种机器学习模型进行TE过程故障检测,运行环境为Python,5种方法分别为:

[1]动态内在最小二乘法的TE过程故障诊断,出图如下:

[2]基于并发潜结构映射的TE过程故障诊断,出图如下:

[3]基于动态内在典型相关分析的TE过程故障诊断,出图如下:

[4]基于动态内在主成分分析的TE过程故障诊断

[5]基于潜在结构全投影的TE过程故障诊断

完整代码可通过知乎学术咨询获得:

Python环境下5种TE过程(Tennessee Eastman Process)故障检测方法

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

好的,以下是对您问题的回答。 首先,我理解您的问题是如何使用Python和sklearn库中的KPCA方法进行Tennessee Eastman过程异常状态检测,并且可视化监测结果。下面是一些具体的步骤和代码示例。 1. 导入必要的库和数据集 ```python import numpy as np import pandas as pd from sklearn.decomposition import KernelPCA from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt # 读取Tennessee Eastman数据集 data = pd.read_csv('TE_process.csv') ``` 2. 准备数据 ```python # 将数据集中的标签列和时间列删除 data = data.drop(['faultNumber', 'simulationRun'], axis=1) # 将数据集按照异常状态分为两组,正常状态和异常状态 normal_data = data[data['faultSeverity'] == 0] abnormal_data = data[data['faultSeverity'] > 0] # 取出正常状态数据集中的样本,作为训练集 train_data = normal_data.sample(frac=0.7, random_state=1) # 取出异常状态数据集中的样本,作为测试集 test_data = abnormal_data.sample(frac=0.3, random_state=1) # 将训练集和测试集合并 data_train_test = pd.concat([train_data, test_data]) # 从合并后的数据集中分离出训练集和测试集的特征矩阵和标签列 X_train_test = data_train_test.drop(['faultSeverity'], axis=1) y_train_test = data_train_test['faultSeverity'] ``` 3. 使用KPCA方法进行降维和异常检测 ```python # 使用KPCA进行降维,设置核函数为rbf kpca = KernelPCA(kernel='rbf', n_components=2, fit_inverse_transform=True) X_kpca = kpca.fit_transform(X_train_test) # 训练一个分类器,这里使用SVC from sklearn.svm import SVC clf = SVC(kernel='linear', gamma=0.01) clf.fit(X_kpca[:len(train_data)], y_train_test[:len(train_data)]) # 使用分类器对测试集进行预测 y_pred = clf.predict(X_kpca[len(train_data):]) # 计算混淆矩阵,得到异常检测的监测率 cm = confusion_matrix(y_train_test[len(train_data):], y_pred) detection_rate = cm[1, 1] / (cm[1, 0] + cm[1, 1]) print('Detection Rate:', detection_rate) ``` 4. 可视化监测结果 ```python # 绘制训练集和测试集在KPCA降维后的散点图 plt.figure(figsize=(8, 6)) plt.scatter(X_kpca[:len(train_data), 0], X_kpca[:len(train_data), 1], c='green', label='Normal') plt.scatter(X_kpca[len(train_data):, 0], X_kpca[len(train_data):, 1], c=y_pred, label='Prediction') plt.xlabel('Component 1') plt.ylabel('Component 2') plt.legend() plt.show() ``` 这样,您就可以通过Python利用已有的训练集和测试集数据调用sklearn库使用KPCA方法进行Tennessee Eastman过程异常状态检测,并且给出异常状态的监测率,并可视化监测结果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值