基于超参数优化的SOFC 系统故障分类方法*
2023-08-02付晓薇
樊 洋 付晓薇,3 李 曦
(1.武汉科技大学计算机科学与技术学院 武汉 430065)
(2.智能信息处理与实时工业系统湖北省重点实验室 武汉 430065)
(3.华中科技大学材料成形与模具技术国家重点实验室 武汉 430074)
(4.华中科技大学人工智能与自动化学院 武汉 430074)
1 引言
随着社会的快速发展,能源问题显得越来越突出。全球经济的快速发展,对能源的消耗也是与日俱增,但是传统的化石燃料能源不断减少,导致能源的价格不断突破新高。燃料电池是一种清洁、高效的发电设备,它将燃料中的化学能通过电化学反应直接转为电能,并能够实现给外接电路持续供电。安静的工作状态和少量污染气体排放特点使得固体氧化物燃料电池[1](SOFC)系统具有广阔的应用前景。
SOFC系统具有较高的能量转换效率以及环保的特性。但是,SOFC 系统依然受限于系统的使用寿命和稳定性。因此,针对SOFC 系统进行及时故障定位与分类,可显著提高设备的安全性和稳定性,对于SOFC 系统的发展至关重要。故障诊断的主要目标是实现故障的检测以及对发生的故障类型进行分类。目前,主要使用基于模型的方法和基于数据驱动的方法进行SOFC 系统故障诊断。其中,基于模型的SOFC 故障诊断技术[2~4]主要难点在于模型的准确性。然而,由于现代工艺过程较为复杂,系统的物理原理、结构以及先验知识较难再获取,因此限制了基于模型的SOFC 故障诊断技术的发展与应用。但是,SOFC 系统可通过安装传感器实时采集系统运行过程中的大量数据。因此,较基于模型的方法,基于数据驱动的方法更为可行可靠,更具有一定优势。
基于数据驱动的SOFC故障诊断方法包括故障树算法[5]、主成分分析(Principal Components Analysis,PCA)方法[6]、人工神经网络[7]和支持向量机(Support Vector Machine,SVM)方法[8]等。Polverino P等使用依赖于故障树分析的方法为SOFC系统现场诊断算法[5]。该算法可以在系统组件层面进行可能性故障与相应状态的相关性识别。Murshe A. M.等使用多种主成分分析方法设计了一种SOFC 系统故障监测方法[6],该方法将故障检测问题表述为线性矩阵不等式(LMI)。Sorrentino M 等使用深度学习的方法构建了递归神经网络并完成对应的分类器模型用于系统建模和对SOFC电堆故障进行故障诊断[7]。Costamagna P等使用了一种带有支持向量机的量化模型[8],利用先进的特征选择技术,讨论了在SVM 分类过程中用作特征的易于测量残差的相对重要性。Barelli L 概述了基于数据的SOFC 主要诊断方法[9],认为SVM 是一种重要的故障分类方法,在实际应用中展现出了较强的泛化能力。它可以处理拥有大特征空间但样本数量有限情况下的分类问题。这些特性使SVM 广泛应用于分类领域。虽然支持向量机可以进行分类工作,但是若直接使用SVM 对SOFC 系统故障进行分类,仍会出现难题。首先,由于SOFC系统运行时会产生较多变量,且每个变量数据之间还会存在信息冗余的特点,若直接使用SVM 对故障类型进行分类,不同的故障类型很难分辨;其次,直接计算高维数据易导致系统开销急剧增加,同时还会降低SVM的诊断效率增加训练时间成本;再次,SVM 在处理SOFC 系统的非线性数据时,核函数的选择也尤为关键。选择适合的核函数能有效提高故障分类的准确性。最后,在选择SVM 的核函数为高斯核函数时,两个重要参数C 与Gamma 值的选取直接影响最终识别准确率。为此,本文采用PCA特征提取方法提取SOFC系统的故障特征。利用粒子群优化算法构造的多分类模型准确率高的特点,提出了基于数据驱动的主成分分析与超参数优化的支持向量机(PCA-PSVM)的SOFC故障分类方法。
2 SOFC系统基本原理
SOFC 系统结构[10]如图1 所示,主要由重整器、换热器、电堆以及燃烧室四大部分组成。其主要工作流程[11]:首先,将水通过蒸发器进行状态转换,与燃料气瓶输入的甲烷气体在重整器内进行重整,将产生的氢气输入电堆;其次,鼓风机将空气输送到换热器中进行加热并送入SOFC 电堆;再次,SOFC电堆将重整器输入的氢气与电堆内部阳极进行相应的化学反应,实现将化学能转换为电能;最后,燃烧室将电堆中产生的其他气体进行燃烧处理,避免有害气体的排出。可以通过控制换热器输入的空气流量,有效调节电堆内部的反应温度。
图1 固体氧化物燃料电池系统工作流程图
图2 本文方法主要流程
3 本文方法
3.1 数据预处理
由于SOFC 系统直接从传感器获取数据,因此数据可能不属于同一个量纲。对数据进行归一化处理可以加速梯度下降求最优解的速度[12]。为了保持各维度数据之间的线性关系,本方法选取最值归一化方法对传感器数据进行处理。
从SOFC系统各传感器获得的运行状态数据常存在信息相互重叠的问题,为了避免信息冗余情况的发生,本文使用PCA算法对传感器数据进行特征提取。主成分分析算法主要是通过线性空间变换的方法求取主元变量[13],使用低维主元空间来表现高维数据空间,并且能够不丢失原始数据之间的方差信息。为消除变量之间的相互影响,将归一化的数据矩阵X'∈Rn×m(n 为样本数量,m 为变量数),先进行标准化得到矩阵,PCA 模型可表示为
其中E为由噪声引起的残差矩阵;ti表示主元向量,表示重构矩阵。通过使用主成分分析对数据进行降维后,高维度数据被转换为低维度数据,可大大减少了后续分析处理的计算量,节省了时间成本。
3.2 粒子群优化支持向量机
支持向量机(SVM)建立在统计学习理论的VC维[14](Vapnik-Chervonenkis dimension)理论和结构风险最小化原则的基础上。SVM 的基本模型是定义在特征空间上的间隔最大的线性分类器,合理的使用核函数可以使它成为实质上的非线性分类器。我们经常使用它来实现分类以及处理回归问题。
因为SVM 是一种有监督的学习,所以将训练集定义为(x1:y1),…(xq:yq),xi表示为输入的第i个数据样本,yi是对应的第i个输入样本的标签。SVM的目标函数为
其中,d是一个标量,C是惩罚系数,w是q维向量,ξi是被分类点和超平面之间的距离,Φ(xi)将原始数据xi投影到更高的维度。
SVM 是一种线性的分类器。在处理非线性数据时,其分类的效果会表现较差。因此,通过添加核函数的方法可增强SVM 处理非线性数据的能力。基于模式识别理论[15],可以将低维度线性不可分模型通过非线性映射到高维度空间使之可分。若直接SVM 进行高维度分类,很难确定非线性映射函数的形式、参数以及高维特征维数。由于SOFC 系统数据具有非线性特点,因此选择RBF[16]核函数,其定义如下:
其中,δ是RBF核的宽度。
由于SVM 的核宽度参数δ和惩罚参数C会影响故障分类的效果,因此,本文引入粒子群优化算法对SVM 的参数进行寻优优化,提高鲁棒性。粒子群算法的主要公式为
其中i表示的是此群中粒子的总数量。vi是粒子的速度,xi是粒子当前的位置。rand()是产生0~1的随机函数,c1与c2为学习因子。
粒子群算法优化支持向量机的步骤如下:
Step1:粒子群初始化,将支持向量机中的C和δ看作一个点(C,δ)。初始化随机产生粒子的速度与位置;
Step2:通过交叉验证的方式计算适应度值,训练SOFC 系统故障样本得到SVM 分类器并计算适应度值;
Step3:若单个粒子最优值pbest和全局最优值gbest分别优于先前最佳位置相应适应度,则更新pbest和gbest,否则不更新;
Step4:根据式(5)、(6)更新当前时刻粒子的速度和位置;
Step5:若符合适应值条件或迭代要求,则终止寻优;否则返回Step2继续进行优化。
3.3 本文方法主要流程图
首先,读取SOFC 系统传感器数据;其次,使用归一化以及PCA 方法对数据进行预处理。在进行故障分类之前,需要对设定待优化Gamma 值与C值选取范围,以及粒子群算法运行参数的初始化设定,以便于生成随机粒子。随后利用支持向量机对故障数据进行分类,使用交叉验证对分类效果进行评估,若本次寻优结果优于以往的结果则更新当前粒子参数。直到满足停止条件,完成本次参数寻优过程并获取支持向量机惩罚系数C 与高斯核函数的宽度系数Gamma 值,从而得到最终获得固体氧化物燃料电池系统多故障分类模型。
4 实验数据分析
4.1 故障说明
本次实验数据来源于华中科技大学燃料电池研究中心千瓦级SOFC系统。主要针对的故障分别是重整器积碳、换热器破裂以及电堆内部故障状态,工作流程见图1。
重整器积碳故障属于一种较为常见的故障类型,产生的主要原因是甲烷和水蒸气分别通过T13与T12 进入重整器进行相应的化学反应,主要公式如下:
反应过程中不仅会产生电堆需要的氢气也会产生CO、CO2等废气。最为关键的是产生了固体的碳颗粒,这些碳颗粒会阻塞重整器内部的燃料输入口,导致电堆燃料输入不足。如图3所示。
图3 甲烷压力与电堆功率图
由图3 可见,当重整器出现积碳故障后,电堆功率出现了较为明显的波动,严重影响了电堆的发电效率。
因为SOFC 电堆内部反应需要较高的温度,通过加热空气后再输入到电堆中使电堆满足发电需求。换热器破裂故障主要发生在电堆发电一段时间后,换热器长时间保持高温状态而导致管道出现破裂的故障状态。可以通过空气压强P2 与电堆功率来观察到SOFC 系统是否出现换热器破裂故障,如图4所示。
图4 换热器输入空气压强与电堆功率图
由图4 可见,当换热器出现破裂故障时,电堆功率出现了明显的下降。为了保持电堆功率的稳定输出,增加了换热器输入空气压强,最后,仍因该故障导致系统停机。
电堆故障是较为复杂的故障类型。因为电堆是一个封闭的状态,很难直观发现故障的位置及其发生原因。因此,我们将电堆中发生的故障统称为电堆故障。将电堆入口气体压强与电堆出口温度的变化作为出现电堆故障的依据,如图5所示。
图5 电堆入口输入空气压强与电堆出口气体温度图
当发生电堆故障后,电堆入口输入空气压强出现了连续的波动,电堆出口气体温度也随着产生了波动变化。
4.2 本文方法
由于数据样本具有61 个独立变量,因此需要先将数据进行降维处理,然后再使用本文方法(PSVM)进行故障分类。在进行数据降维之前,还需要对实验数据进行归一化处理,进行这一步主要是可以减少具有较大数值范围的属性在进行分类时起到主导作用,同时还可以缩短计算时间以及避免出现数值溢出。使用PCA将训练集由61维降低到10维。图6 展示了训练集上在进行PCA 降维后的主元个数和方差贡献率以及累计贡献率结果。本文在选取了前10 主元成分后,对应的累计贡献率可达92.4%。通过使用主成分分析算法,我们可以发现仅使用少量的主成分信息就可以描述整个SOFC系统数据特征。
图6 主成分分析
训练集的分类混淆矩阵如图7 所示。此训练集包含72个正常状态数据,53个积碳故障,53个换热器故障,35个堆故障数据。从图7中我们可以观察到,使用本文方法(PCA-PSVM方法)可准确实现堆故障有效分类。比较分类结果如图8所示。
图7 PCA-PSVM分类效果混淆矩阵
图8 SVM分类效果混淆矩阵
通过对比图7 与图8,可以看出本文方法对SOFC系统的故障状态分类有显著提升。
图9 展示了使用本文方法在训练集上的分类准确度。本次使用粒子群算法寻优过程进行了500 次的迭代,最终得到当C=5.809,Gamma=6.997时,本文方法在测试集上的准确率可以达到99.3 %。
图9 SOFC故障分类准确性比较
所比较的基于数据驱动的SOFC系统故障分类方法的平均每次分类时间如表1。由于采用了粒子群算法对支持向量机进行的参数进行寻优步骤,因此本文方法的时间成本会比其他方法要高。从表1 我们还可以观察到使用主成分分析对数据降维后,再使用支持向量机进行故障分类会缩短训练时间,因此我们可以确定数据预处理操作对SVM分类效果有显著提升。
表1 基于数据驱动故障分类运行速度比较
表2 是不同故障分类算法在测试集上的实验结果。可知,使用PCA降维与粒子群算法进行参数优化后,SVM的分类精度有了显著提升。这是因为PCA降维消除了数据的干扰和噪声,粒子群优化算法避免了人为对支持向量机中的惩罚系数C 与RBF 核函数Gamma 值的输入,从而提升了故障识别分类的准确率。
表2 不同方法故障分类识别的准确率比较
5 结语
针对SOFC系统数据具有高维度、时间序列、非线性以及工作情况复杂等问题,本文提出了PCA-PSVM 方法对SOFC 系统多故障进行分类。首先采用数据归一化与主成分分析方法对原始数据进行故障特征提取,这样不仅可以降低数据的维度,还可以消除数据干扰,提高计算速度。PSVM利用PCA方法所提取的特征数据,使用最优化算法之粒子群算法对使用了高斯核函数的支持向量机分类器进行C 值与Gamma 值的最值寻优操作。经SOFC平台真实故障数据验证,本文方法能够准确,有效地对故障类型进行识别分类,具有较强实用性。