主要内容

故障检测使用基于数据模型

这个例子展示了如何使用一个故障检测的基于数据的建模方法。

介绍

异常的早期检测和隔离机器的操作可以帮助减少交通事故,减少停机时间,从而节省运营成本。涉及到处理现场测量的方法从一个系统的操作标记任何意想不到的行为,指向一个新开发的错。

这个例子探讨了故障诊断方面

  1. 检测系统行为异常的残留分析

  2. 检测通过构建模型的破坏系统的恶化

  3. 跟踪系统使用在线适应模型参数的变化

确定系统行为的动态模型

在基于模型的方法来检测,有关系统的动态模型是第一个使用测量输入和输出数据。一个好的模型能够准确预测系统的响应对未来一定时间范围。预测不好时,残差可能很大,可能包含相关性。这些方面都是用来检测失败的发生率。

考虑建筑受到冲击和振动。振动的来源可以根据不同类型的刺激系统如狂风,接触运行发动机和发电机,或地面振动。影响是冲动的结果撞测试系统上,被添加到系统充分激发。万博1manbetx仿真软件模型pdmMechanicalSystem.slx是一个简单的结构。激发来自周期性疙瘩以及地面振动过滤白噪声的模型。收集系统的输出的传感器测量噪声。模型能够模拟各种场景涉及到结构健康或破坏状态。

sysA =“pdmMechanicalSystem”;open_system (sysA)%设置模型在健康的操作模式set_param ([sysA,/机械系统的),“LabelModeActiveChoice”,“正常”)%模拟系统和测井响应数据sim (sysA) ynormal = logsout.getElement (“y”). values;

输入信号不是测量;我们记录了响应ynormal。因此我们建立一个系统的动态模型使用“盲识别”技术。特别地,我们构建一个ARMA模型的记录信号的表示系统。这种方法有效,当输入信号被认为是白噪音(过滤)。由于数据是周期性的疙瘩,我们把数据分割成几块每个起价的发生率。这样,每个数据段的响应包含一个凹凸+随机激励——这种情况可以使用时间序列模型,捕获,凹凸的效果是由于合适的初始条件。

Ts = 1/256;%数据采样时间nr = 10;%的碰撞信号N = 512;%之间的数据长度疙瘩znormal =细胞(nr, 1);ct = 1: nr ysegment = ynormal.Data ((ct-1) * N + (1:50 0));z = iddata (ysegment [], Ts);znormal {ct} = z;%每一段只有一个肿块结束情节(znormal {}):%的阴谋的抽样记录段标题(测量反应段的)

把数据分割成评估和验证。

泽=合并(znormal {1:5});zv =合并(znormal {10});

估计7阶时间序列模型状态方程形式使用党卫军()命令。模型的顺序是由交叉验证(检查适合验证数据)和残留分析(检查残差不相关的)。

nx = 7;模型= ss (nx泽,“形式”,“规范”,“t”、Ts);礼物(模型)%视图模型方程的参数不确定性
模型=离散时间状态空间模型发现:x (t + Ts) = x (t) + K e (t) y (t) = C x (t) + e (t) = (x1, x2) x3 x1 0 1 0 x2 0 0 1 x3 0 0 0 x4 0 0 0 x5 0 0 0 x6 0 0 0 x7 0.5548 + / - 0.04606 - -2.713 + / - 0.2198 - 5.885 + / - 0.4495 x4 x5 x6 x1 0 0 0 x2 0 0 0 x3 1 0 0 x4 0 1 0 0 0 1 x5 x6 0 0 0 x7 -8.27 + / - 0.5121 - 9.234 + / - 0.3513 - -7.956 + / - 0.1408 x7 x1 0 x2 0 x3 0 x4 0 x5 0 x6 1 x7 4.263 + / - 0.02599 C = (x1, x2) x3 x4 x5 x6 x7 y1 1 0 0 0 0 0 0 K = y₁x1 1.025 + / - 0.01401 x2 1.444 + / - 0.0131 x3 1.907 + / - 0.01271 x4 2.385 + / - 0.01203 x5 2.857 + / - 0.01456 x6 3.26 + / - 0.0222 x7 3.552 + / - 0.0336样品时间:0.0039062秒参数化:规范形式指数:7。干扰组件:估计很多免费的系数:14使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:终止条件:附近(当地)最小,(标准(g) < tol) . .迭代次数:7、功能评估:15估计使用党卫军时域数据“泽”。适合估算数据:(99.07 99.04 99.15 99.05 99.04)%(预测聚焦)消防工程:0.6242,MSE:(0.5974 0.6531 0.5991 0.5871 0.6496)模型的“报告”属性的更多信息。

模型显示了相对较小的参数估计的不确定性。我们可以证实的可靠性计算1-sd(99.73%)信心约束估计被测信号的频谱。

h = spectrumplot(模型);showConfidence (h, 3)

置信区域很小,虽然有30%的不确定性较低的频率响应。验证的下一步是想看看这个模型预测的反应验证数据集zv。我们使用25-step提前预测地平线。

比较(zv模型,25)%对一个数据集验证

情节表明模型能够预测的响应在第一个实验中验证数据集25次步骤(= 0.1秒)在未来> 85%的准确率。查看适合其他的实验数据集,使用鼠标右键上下文菜单的图轴。

验证模型的最后一步是分析产生的残差。对于一个好的模型,这些残差应该是白色的,即,show statistically insignificant correlations for non-zero lags:

zv渣油(模型)

在非零落后残差主要是不相关的。派生一个正常行为模型我们继续探讨如何使用模型检测的缺点。

故障检测残留分析使用模型的健康状态

故障检测标记的或意想不到的变化的观测系统。故障导致系统动力学的变化由于逐渐磨损或突然变化引起的传感器故障或破损的部分。当故障出现时,在正常工作条件下无法获得的模型预测观察到的反应。这将导致测量和预测反应的区别(残差)增加。这种偏差通常由一个大型squared-sum-of-residuals标记或存在相关性。

把仿真软件模型和万博1manbetx模拟damaged-system变体。我们使用单个肿块以来作为输入剩余测试可能需要白色输入瞬态由于初始条件。

set_param ([sysA,/机械系统的),“LabelModeActiveChoice”,“DamagedSystem”);set_param ([sysA,/脉冲的),“时间”,“5120”)%,迫使只有一个肿块sim (sysA) y = logsout.getElement (“y”). values;

渣油(模型、y.Data) set_param ([sysA,/脉冲的),“时间”,“512”)%恢复原始

残差现在越来越显示相关性非零落后。这是错误检测的基本思想——创建一个剩余指标,观察它如何改变与每个新的测量。这里使用的是一个简单的基于互译残余预测误差。在实践中,更高级的残差生成定制的应用程序的需求。

故障检测正常和恶化状态的使用模型

也更详细的故障检测方法是识别的模型有缺陷(损坏)的系统状态。我们可以分析哪些模型更有可能解释现场测量的系统。这样的安排可以广义模型对各种类型的故障,从而不仅用于检测故障也要确定哪一个(“隔离”)。在这个例子中,我们采取以下方法:

  1. 我们收集数据与系统运行正常(健康)和一个已知退化性诱导临终状态。

  2. 我们确定一个动态模型代表每个状态的行为。

  3. 我们使用数据聚类方法来画一个明确区分这些状态。

  4. 对于故障检测,我们从跑步机收集数据并识别其行为的典范。然后,我们预测哪些状态(正常或损坏)最有可能解释观察到的行为。

我们已经模拟了系统在正常操作模式。我们现在模拟模型pdmMechanicalSystem在“生命的终结”模式。这是场景的系统已经恶化到最终状态允许的操作。

set_param ([sysA,/机械系统的),“LabelModeActiveChoice”,“DamagedSystem”);sim (sysA) y = logsout.getElement (“y”). values;zfault =细胞(nr, 1);ct = 1: nr z = iddata (y.Data ((ct-1) * N + (1:50 0)), [], Ts);zfault {ct} = z;结束

我们现在创建一组模型,为每个数据段。作为构建7日之前订单时间序列模型的状态空间形式。关闭协方差计算速度。

mNormal =细胞(nr, 1);mFault =细胞(nr, 1);nx =订单(模型);选择= ssestOptions (“EstimateCovariance”,0);ct = 1: nr mNormal {ct} = ss (znormal {ct}, nx,“形式”,“规范”,“t”Ts,选择);mFault {ct} = ss (zfault {ct}, nx,“形式”,“规范”,“t”Ts,选择);结束

验证该模型mFault很好地体现了错误的操作模式:

比较(合并(zfault {:}), mFault {:}, 25)

正常和故障估计光谱绘制如下。

Color1 =“k”;Color2 =“r”;ModelSet1 =猫(2 mNormal repmat ({Color1}, (nr, 1))) ';ModelSet2 =猫(2 mFault repmat ({Color2}, (nr, 1))) ';谱(ModelSet1 {:}, ModelSet2{:})轴([1 1000 -45 40])标题(的输出光谱(黑色:正常,红色:错误的))

谱图显示了不同:破坏模式有其主共振放大但光谱重叠。接下来,我们创建一个方法来定量区分正常和故障状态。我们可以使用数据聚类和分类方法如:

  • 模糊c均值聚类。看到fcm ()在模糊逻辑工具箱。

  • 万博1manbetx支持向量机分类器。看到fitcsvm ()在统计和机器学习工具。

  • 自组织映射。看到selforgmap ()在深入学习工具箱。

在这个例子中,我们使用支持向量机分类技术。万博1manbetx从这两种类型的集群信息模型(mNormalmFault)可以基于不同类型的信息,这些模型可以提供如波兰人和0的位置,他们的共振峰值的位置或列表的参数。这里,我们分类模式的极点位置对应于两个共振。对于聚类,我们标记的波兰人健康状态模型与“好”和有缺陷的两极状态模型与“错误的”。

ModelTags =细胞(nr * 2, 1);% nr是数量的数据段ModelTags (1: nr) = {‘好’};ModelTags (nr + 1:结束)= {“错误”};ParData = 0 (nr * 2、4);plist = @ (p)[真正的(p(1)),图像放大(p(1)),真正的(p(3)),图像放大(p (3)));%的主导共振ct = 1: nr ParData (ct,:) = plist (esort(杆(mNormal {ct})));ParData (nr + ct:) = plist (esort(杆(mFault {ct})));结束cl = fitcsvm (ParData ModelTags,“KernelFunction”,“rbf”,“BoxConstraint”正,“类名”,{‘好’,“错误”});cl.ConvergenceInfo.Converged
ans =逻辑1

cl是一个支持向量机分类器,将训练数据ParData成良好的和有缺陷的区域。使用预测这个分类器方法可以分配一个输入nx-by-1向量两个地区之一。

现在我们可以测试分类器的预测(正常、损坏)批次收集数据从一个系统的参数变化的方式从健康(模式=“正常”)被完全损坏(模式=“DamagedSystem”)以连续的方式。模拟这种情况下,我们把模型放在“DeterioratingSystem”模式。

set_param ([sysA,/机械系统的),“LabelModeActiveChoice”,“DeterioratingSystem”);sim (sysA) ytv = logsout.getElement (“y”). values;ytv =挤压(ytv.Data);PredictedMode =细胞(nr, 1);ct = 1: nr zSegment = iddata (ytv ((ct-1) * 512 + (1:50 0)), [], Ts);nx mSegment = ss (zSegment,“形式”,“规范”,“t”、Ts);PredictedMode (ct) =预测(cl, plist (esort(钢管(mSegment))));结束我= strcmp (PredictedMode,‘好’);标签= 1 (nr, 1);标签(~我)= 1;t = (0:5120) * Ts;%的仿真时间时间= t (1:512: end-1);情节(时间(I)、标签(我),“g *”、时间(~我),标签(~我),的r *,“MarkerSize”12)网格轴([0 20 2 2])标题(“绿色:正常,红色:错误的状态)包含(“数据评估时间”)ylabel (“预测”)

情节表明,该分类器预测行为到中点是正常和故障状态。

故障检测模型参数的在线适应

前面的分析使用批收集的数据在不同时期的操作系统。另一个,更方便,监控的健康系统的方法是创建一个自适应模型的行为。新测量连续处理和用于更新模型的参数递归的方式。磨损或断层的影响表明通过改变模型参数值。

考虑再次损坏的场景。随着系统的年龄,有一个更大的“震动”,表现为兴奋的几个共振模式以及提高系统的峰值响应。这个场景中描述模型pdmDeterioratingSystemEstimation这是一样的“DeterioratingSystem”模式pdmMechanicalSystem除了冲动疙瘩添加离线识别不存在。系统的响应传递给一个“递归多项式模型估计“块被配置为估计ARMA模型的参数结构。实际系统开始在一个健康的状态但是临终条件恶化的时间跨度200秒。

initial_model = translatecov (@ (x) idpoly (x)模型);sysB =“pdmDeterioratingSystemEstimation”;open_system (sysB);

“ARMA模型”块已经初始化使用参数和协方差估计的正常行为模式派生的数据转换后在前一节中多项式(ARMA)格式。的translatecov ()函数的参数协方差数据转换。块使用“忘记因素”算法和遗忘因子设置为略低于1在每个采样时刻更新参数。遗忘因子的选择影响如何快速系统更新。一个小值意味着将有高方差的更新在一个较大的值会更难适应快速变化的估计量。

模型参数估计是用于更新输出频谱及其3-sd信心。系统将明显改变谱的置信区域不重叠的健康系统感兴趣的频率。故障检测阈值显示使用一个黑线在情节的最大允许获得在特定频率。系统积累的变化,光谱漂移跨越这条线。这作为一个视觉指示的故障可以用来要求维修在真实的系统。

运行仿真和观测谱图的更新。

sim (sysB)

运行模型参数的估计也被用来计算系统极点位置,然后送入支持向量机分类器预测如果系统是“好”或“故障”状态。这个决定也显示在图。当预测的标准化分数小于3,这一决定被认为是暂时的(接近边界的区别)。看到这个脚本pdmARMASpectrumPlot.m有关如何运行估计信号的频谱分析和分类器预测计算。

可以实现自适应估计和策划过程仿真软件使用之外万博1manbetxrecursiveARMA ()函数。”“递归多项式模型估计块以及recursiveARMA ()函数支持部署代码生万博1manbetx成的目的。

分类方案可以推广到失败的情况有几种已知的模式。我们需要多群分类模式是指一个特定类型的失败。在本例中不探讨这些方面。

结论

这个例子展示了系统识别方案结合数据聚类和分类方法可以帮助检测和隔离故障。连续批量分析以及网络适应方案进行了讨论。一个ARMA模型结构的测量输出信号被确认。可以采用类似的方法在一个访问的情况下输入和输出信号,并希望使用其他类型的模型结构,如状态方程或Box-Jenkins多项式模型。

在这个例子中,我们发现:

  1. 在残差相关性基于正常运行的模型可以显示出现故障。

  2. 逐渐恶化的缺点可以被雇佣一个不断适应的系统行为模型。预设阈值模型的特征如边界输出光谱可以帮助可视化故障的发生和发展。

  3. 当源的故障需要隔离,一个可行的方法是预先创建单独的模型有关的失效模式。那么一个分类方法可用于分配的预测状态系统其中一个模式。

相关的话题