4. 基于统计过程的故障检测

工业过程通常有几十到上百个测点,变量之间高度相关。若对每个变量单独设阈值报警,既会漏掉“单变量正常但变量关系已破坏”的故障,也会因阈值过密产生大量误报。基于统计过程的方法换了一个思路:先用历史正常运行数据建立变量之间的相关结构模型,再把实时样本投影到该模型上,用两个统计量分别衡量“模型内偏离”和“模型外异常”,最后用贡献图定位是哪些变量把统计量推高了。本节围绕主成分分析(PCA)、偏最小二乘(PLS)、T²与SPE统计量、贡献图诊断,并以田纳西伊士曼过程(TEP)为例说明完整流程。

一、PCA:用主成分描述正常工况的相关结构

设标准化后的训练数据矩阵为 X ∈ R^(n×m),n 为样本数,m 为变量数。PCA 对协方差矩阵做特征分解,取前 k 个最大特征值对应的特征向量组成载荷矩阵 P ∈ R^(m×k),则得分 T = X P,重构 X̂ = T Pᵀ,残差 E = X − X̂。主成分子空间保留过程的主要波动方向,残差子空间承载变量间相关关系被破坏的部分。k 的选取常用累计方差贡献率(如 85%~95%)或交叉验证确定;k 过小会把正常波动误判为故障,k 过大则削弱对相关结构破坏的敏感性。

建模前必须做标准化:X_std = (X − μ) / σ,其中 μ、σ 只能来自正常训练集,并保存下来用于在线样本。若某变量方差接近零,应先剔除或改用其他缩放方式,否则标准化会放大噪声。

二、PLS:当质量变量可测时引入监督信息

PCA 只利用 X 自身结构,属于无监督方法。若过程同时能采集关键质量变量 Y(如产品纯度、收率),PLS 更合适。PLS 在 X 与 Y 之间同时提取潜变量,使潜变量既解释 X 的方差,又与 Y 的协方差最大。其外部关系可写为 X = T Pᵀ + E,Y = U Qᵀ + F,内部关系 U = T B。PLS 的 T² 与 SPE 定义与 PCA 类似,但 SPE 通常基于 X 的残差计算。当 Y 在线可测且滞后不大时,PLS 对与质量相关的故障更敏感;若 Y 不可测或严重滞后,则退回 PCA。

三、T²与SPE:两个统计量各管一段

T² 衡量样本在主成分子空间内偏离正常中心的马氏距离:T² = tᵀ Λ⁻¹ t,其中 Λ 为前 k 个特征值构成的对角阵。SPE(又称 Q 统计量)衡量样本在残差子空间的平方重构误差:SPE = eᵀ e = ‖(I − P Pᵀ) x‖²。控制限可在正态假设下按 F 分布(T²)和 χ² 分布(SPE)计算,也可用核密度估计或经验分位数从正常数据直接取 99% 分位点,后者对非高斯数据更稳健。

两个统计量的故障指向不同:T² 超限通常意味着过程整体工况偏移,或主成分方向上的幅值异常;SPE 超限意味着变量间相关关系被破坏,常见于传感器漂移、阀门卡涩、物料配比变化等。实际中会出现“T² 报警而 SPE 正常”“SPE 报警而 T² 正常”“两者同时报警”三类情况,需结合贡献图进一步判断。

PCA/PLS 统计监控与贡献图诊断链路 正常工况训练数据 X n×m,剔除开停车与异常段 标准化 μ, σ 参数仅由训练集估计并保存 PCA / PLS 建模 载荷 P、特征值 Λ、主元数 k PLS 另得回归系数 B、Q 控制限 T²_lim、SPE_lim(99%分位) 在线样本 x_new 按训练 μ, σ 标准化 投影与残差 t = Pᵀx,e = x − P Pᵀx 统计量计算 T² = tᵀΛ⁻¹t SPE = eᵀe 超限判定 T²>T²_lim 或 SPE>SPE_lim 贡献图诊断 T²贡献:c_i = tᵀΛ⁻¹ p_i x_i SPE贡献:c_i = e_i² 按贡献排序定位关键变量 结合工艺知识确认根因 结果判读 T²↑ SPE正常:工况偏移 SPE↑ T²正常:相关结构破坏 两者同升:复合故障/大扰动 诊断结果反馈:更新模型 / 调整控制限 / 维护传感器

四、贡献图:从“报警”到“定位”

统计量超限只说明“有异常”,贡献图回答“谁造成的”。对 SPE,第 i 个变量的贡献可直接取残差平方 c_i = e_i²;对 T²,常用 c_i = tᵀ Λ⁻¹ p_i x_i,其中 p_i 为载荷矩阵第 i 行。把所有变量贡献按降序排列,贡献显著高于其余变量的几个测点即为嫌疑变量。需要注意三点:一是贡献图是相关性证据而非因果结论,需结合工艺流程确认;二是多个变量同时高贡献可能源于同一根因(如某股进料变化导致下游多个温度、压力同时偏移);三是贡献图对传感器故障和过程故障的区分能力有限,通常要配合历史报警记录和现场检查。

五、田纳西伊士曼过程案例

TEP 是化工过程监控的标准仿真平台,包含反应器、冷凝器、汽提塔、压缩机等单元,共 41 个测量变量和 11 个操纵变量,另有 21 种预设故障(IDV1~IDV21),涵盖阶跃、随机变化、缓慢漂移、阀门粘滞等类型。典型做法是:用 500 个正常样本训练 PCA 模型,取累计方差 90% 对应的主元数(TEP 中常在 20~30 之间),用正常样本的 99% 分位点确定 T² 和 SPE 控制限;再用 960 个测试样本(前 160 个正常、第 161 个起引入故障)在线计算统计量。

以 IDV1(A/C 进料比阶跃变化)为例,故障引入后 SPE 通常迅速超限,T² 也可能升高,贡献图中与进料流量、反应器温度相关的变量贡献突出。以 IDV4(反应器冷却水入口温度阶跃)为例,T² 往往先于 SPE 报警,说明工况整体偏移。以 IDV11(反应器冷却水入口温度随机变化)为例,SPE 波动加剧但均值偏移不明显,需观察统计量的持续超限比例而非单点。这些差异说明:不同故障类型在两个统计量上的响应模式不同,实际诊断时应同时观察 T²、SPE 的时序曲线和贡献图,而不是只看某一时刻是否报警。

建模时建议保留一段独立正常数据做验证,用误报率(正常段超限比例)和检测延迟(故障段首次连续超限所需样本数)共同评价模型,避免只追求低误报而牺牲灵敏度。
控制限不是越低越好。若把限值压到 95% 分位,误报会明显增加,操作人员很快会对报警失去信任;工程上常取 99% 分位并配合连续多点超限确认(如连续 3 点超限才报警)来平衡灵敏度和误报。

六、可直接参考的建模与诊断检查表

环节关键动作判断依据
数据准备剔除开停车、异常段,检查缺失与量纲训练集应代表正常工况,样本量建议 ≥ 变量数的 10 倍
标准化用训练集 μ、σ 处理训练与在线数据在线样本不得重新估计 μ、σ
主元数 k累计方差 85%~95% 或交叉验证k 过小误报多,k 过大灵敏度低
控制限99% 分位或 F/χ² 分布用独立正常段验证误报率
在线监控逐样本计算 T²、SPE 并记录超限时刻关注连续超限而非单点
贡献图对超限样本计算变量贡献并排序取前 3~5 个变量结合工艺确认
模型维护工况变更后重新训练或更新控制限误报率持续升高即需更新

把上述流程落到 MATLAB 中,核心代码通常只有几十行:[P,~,latent] = pca(X_train) 得到载荷与特征值,T = X_train*P(:,1:k) 得到得分,Lambda = diag(latent(1:k)),在线阶段用 t = P(:,1:k)'*x_new、e = x_new - P(:,1:k)*t 计算两个统计量。真正决定诊断效果的不是代码长度,而是训练数据是否干净、主元数是否合理、控制限是否经过验证,以及贡献图结果是否与工艺知识相互印证。