主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

デ,タに基づくモデルを使用した故障検出

この例では,デ,タに基づくモデル化の方法をどうやって故障検出に利用するかを示します。

はじめに

マシン運用での異常を早めに検出し分離することは,事故の低減,ダウンタイムの短縮,ひいては運用コストの節約に役立ちます。この方法では,システム運用からのライブ測定値を処理し,新たに発生している障害を示す予期しない動作があればそれにフラグを立てます。

この例では,故障診断の以下の側面にいて探求します。

  1. 残差分析によるシステムの異常な動作の検出

  2. 破損したシステムのモデル作成による劣化の検出

  3. オンランでのモデルパラメタの適応化を使用したシステムの変化の追跡

システム動作の動的モデルの同定

モデルベースの検出方法では,対象となるシステムの動的モデルは,まず入出力の測定データを使用して作成されます。優れたモデルは,未来のある特定の対象期間にいて,システムの応答を正確に予測できます。予測が拙劣である場合,残差が大きくなり,そこに相関が含まれる可能性があります。こうした側面を探求して,失敗がどのように発生するかを探り当てます。

衝撃と振動を受ける構築物にいて考えます。振動の発生源としては,突風,稼働中のエンジンやタービンとの接触,地盤振動など,システムによってさまざまなタイプの要因が考えられます。衝撃は,システムを十分に刺激するよう加えられる,システムに対する瞬発的衝突テストの結果です。金宝appSimulinkモデルpdmMechanicalSystem.slxは,こうした構造物の単純な例です。刺激は,周期的な衝突のほか,フィルター処理されたホワイトノイズでモデル化された地盤振動からも発生します。このシステムの出力は,測定ノ@ # @ズをも@ # @センサ,によって収集されます。モデルは、健全な状態や破損状態にある構造物に関わる、さまざまなシナリオをシミュレートできます。

sysA =“pdmMechanicalSystem”;open_system (sysA)将模型设置为正常运行模式set_param ([sysA,/机械系统的),“LabelModeActiveChoice”“正常”模拟系统并记录响应数据sim(sysA) ynormal = logout . getelement (“y”) . values;

入力信号は測定されていません。記録したのは応答ynormalのみです。したがって,“ブラ▪▪ンド同定”の手法を使用してシステムの動的モデルを作成します。具体的には,システムの表現として,記録された信号のarmaモデルを作成します。この方法は,入力信号が(フィルター処理された)ホワイトノイズであると仮定される場合に有効です。データは周期的衝突の影響下に置かれるため,衝突の発生を開始時点として,その時点ごとにデータをいくつかの部分に分割します。この方法により,各データセグメントには1つの衝突への応答に加えてランダムな刺激が含められます。この状態は時系列モデルを使用して捉えることができ,衝突の影響はそれに見合った初期条件に帰せられます。

Ts = 1/256;%数据采样时间Nr = 10;信号中突起数的%N = 512;碰撞之间数据长度的%Znormal = cell(nr,1);ct = 1:nr ysegment = ynormal.Data((ct-1)*N+(1:500));z = iddata(ysegment,[],Ts);Znormal {ct} = z;%每段只有一个凸起结束情节(znormal {}):绘制记录段的抽样图标题(“测量响应段”

デ,タを推定部分と検証部分に分割します。

Ze = merge(znormal{1:5});Zv = merge(znormal{6:10});

党卫军()コマンドを使用して,7次時系列モデルを状態空間形式で推定します。モデルの次数は、交差検定 (検証データへの適合を確認) と残差分析 (残差が無相関であることを確認) により選択されました。

Nx = 7;模型= sest(ze, nx,“形式”“规范”“t”、Ts);礼物(模型)查看具有参数不确定性的模型方程
model =离散时间识别状态空间模型: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 = 1.025 + / - 0.01401日元x1 x2 1.444 + / - 0.0131 x3 1.907 + / - 0.01271 x4 2.385 + / - 0.01203 x5 2.857 + / - 0.01456 x63.26 +/- 0.0222 x7 3.552 +/- 0.0336采样时间:0.0039062秒参数化:带指数的CANONICAL形式:7。自由系数数:14参数及其不确定性使用“idssdata”、“getpvec”、“getcov”。状态:终止条件:接近(局部)最小值,(范数(g) < tol)..迭代次数:7,函数求值次数:15在时域数据“ze”上使用SSEST估计。拟合估计数据:[99.07 99.04 99.15 99.05 99.04]%(预测焦点)FPE: 0.6242, MSE:[0.5974 0.6531 0.5991 0.5871 0.6496]更多信息在模型的“报告”属性。

モデルの表示では,パラメ,タ,推定において比較的小さい不確かさが示されます。信頼性は,測定信号の推定スペクトルについて1-sd(99.73%)の信頼限界を計算することにより確認できます。

H =谱图(模型);showConfidence (h, 3)

低周波数での応答に約30%の不確かさがありますが,信頼領域は小さなものとなります。検証の次のステップは,検証デ,タセットzvでの応答をモデルがどの程度うまく予測するのかを確認することです。25ステップ先の予測期間を使用します。

比较(zv, model, 25)%针对一个数据集的验证

プロットでは,検証データセットの最初の実験において,25回のタイムステップ(= 0.1秒)先までの応答をモデルが85%を超える精度で予測できることが示されています。データセットでの他の実験への適合を確認するには,プロットの軸の右クリックによるコンテキストメニューを使用します。

モデルの検証の最終ステップは,それによって生成された残差を解析することです。優れたモデルでは,こうした残差はホワイトとなる,つまり非ゼロのラグについて統計的に有意でない相関が示されるはずです。

zv渣油(模型)

残差は,非ゼロのラグではほとんど無相関です。通常動作のモデルが導出されたので,故障の検出にモデルをどう使用できるかの調査に進みます。

健全な状態のモデルを使用した残差分析による故障検出

故障検出とは,システムを観測する中での好ましくない変化や予期しない変化へのタグ付けです。故障により,システムのダ。これは,漸進的な摩損に起因することも,センサーの不具合や部品の破損によって生じる急激な変化に起因することもあります。故障が発生すると,通常の動作状態下で取得したモデルでは,観測される応答を予測できなくなります。このため,測定された応答と予測された応答との差(残差)が大きくなります。こうした偏差には,通常,残差の二乗和が大きいことや相関が存在することによりフラグが設定されます。

金宝appSimulinkモデルを,破損したシステムのバリアントに配置してシミュレ,トします。残差テストに必要なのはホワイト入力であるため(初期状態によってはこれに過渡を伴う場合あり),単一の衝突を入力として使用します。

set_param ([sysA,/机械系统的),“LabelModeActiveChoice”“DamagedSystem”);set_param ([sysA,/脉冲的),“时间”“5120”%来强制只进行一次碰撞sim(sysA) y = logout . getelement (“y”) . values;

resid(model, y.Data) set_param([sysA,/脉冲的),“时间”“512”%恢复原始

残差は大きくなっており,非ゼロのラグでの相関を示しています。これは,故障の検出の背後にある基本的な考え方です。残差メトリクスを生成し,測定値の新たなセットでどのように変化するかを観測します。ここで使用するのは,1ステップの予測誤差に基づく単純な残差です。実際には,アプリケ,ションでのニ,ズに合わせてカスタマ,ズされた,より高度な残差が生成されます。

通常状態と劣化状態のモデルを使用した故障検出

故障検出のより詳細な方法は,故障(破損)状態のシステムのモデルをも同定することです。これにより,どのモデルがシステムでのラ。こうしたアレンジメントは,さまざまなタイプの故障のモデルに一般化でき,そのため,故障の検出だけでなくどの故障であるかの同定(“分離”)にも使用できます。この例では,以下の方法を取ります。

  1. 通常の(健全な)状態で動作しているシステムと,既知の摩損により耐用寿命末期の状態で動作しているシステムでデータを収集します。

  2. 各状態での動作を表す動的モデルを同定します。

  3. デ,タクラスタリング法を使用して,これらの状態に明確な区別を付けます。

  4. 故障検出用に,稼働中のマシンからデ,タを収集し,その動作のモデルを同定します。続いて,観測される動作がどの状態(通常か破損しているか)によって最もよく説明されるかを予測します。

通常の動作モ,ドでのシステムは既にシミュレ,トされています。ここでは,“耐用寿命末期”モ,ドのモデルpdmMechanicalSystemをシミュレ,トします。これは,システムが既に劣化して,動作許容範囲の最終状態にある場合のシナリオです。

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

ここで,モデルのセットを,各デ:タセグメントに1。前と同様,7次の時系列モデルを状態空間形式で作成します。速度の共分散計算をオフにします。

mNormal = cell(nr,1);mFault = cell(nr, 1);Nx = order(model);opt = ssestOptions(“EstimateCovariance”, 0);znormal{ct} = sest(znormal{ct}, nx,“形式”“规范”“t”, Ts, opt);mFault{ct} = sest(zfault{ct}, nx,“形式”“规范”“t”, Ts, opt);结束

モデルmFaultが故障モ,ドでの動作をよく表現していることを確認します。

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

通常および故障の推定スペクトルを以下にプロットします。

Color1 =“k”;Color2 =“r”;ModelSet1 = cat(2,mNormal,repmat({Color1},[nr, 1]))';ModelSet2 = cat(2,mFault,repmat({Color2},[nr, 1]))';spectrum(ModelSet1{:},ModelSet2{:}) axis([1 1000 -45 40]) title(输出光谱(黑色:正常,红色:故障)

スペクトルのプロットにより,違いが示されます。損傷モ,ドでは主要な共振が増幅されていますが,それ以外のスペクトルはオ,バ,ラップしています。次に,通常の状態と故障状態を量的に区別する手段を作成します。以下のようなデ,タクラスタリング法および分類法を使用できます。

  • 模糊C-Meansクラスタリング。模糊逻辑工具箱のfcm ()を参照してください。

  • サポ,トベクタ,マシン分類器。统计和机器学习工具箱のfitcsvm ()を参照してください。

  • 自己組織化マップ。深度学习工具箱のselforgmap ()を参照してください。

この例では,サポ,トベクタ,マシンの分類手法を使用します。2のタプのモデル(mNormalおよびmFault)から得た情報のクラスタリングは,極と零点の場所,ピーク共振の場所,パラメーターのリストなど,これらのモデルが提供できる各種情報を基にしている場合があります。ここでは,2の共振に対応する極配置によってモ。クラスタリングをするため,健全な状態のモデルの極には‘好’,故障状態のモデルの極には“错误的”でタグを付けます。

ModelTags = cell(nr*2,1);% nr为数据段数ModelTags(1:nr) = {‘好’};ModelTags(nr+1:end) = {“错误”};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はSVM分類器であり,学習デ,タParDataを好領域と故障領域に分離します。この分類器の预测メソッドを使用することで,nx行1列の入力ベクトルを2つの領域のいずれかに割り当てることができます。

これで,パラメーターが健全(模式=“正常”)から完全破損(模式= DamagedSystem)まで連続的に変化するシステムからデータバッチを収集し,予測(通常か破損しているか)について分類器をテストすることができます。このシナリオをシミュレートするには,モデルを‘DeterioratingSystemモードにします。

set_param ([sysA,/机械系统的),“LabelModeActiveChoice”“DeterioratingSystem”);sim(sysA) ytv = logout . getelement (“y”) . values;ytv = squeeze(ytv. data);PredictedMode = cell(nr,1);ct = 1: nr zSegment = iddata (ytv ((ct-1) * 512 + (1:50 0)), [], Ts);mSegment = sest(zSegment, nx,“形式”“规范”“t”、Ts);PredictedMode(ct) = predict(cl, plist(esort(pole(mSegment))));结束I = strcmp(PredictedMode,‘好’);Tags = ones(nr,1);Tags(~I) = -1;t = (0:5120)'* t;模拟时间%时间= t(1:12 12:end-1);情节(时间(I)、标签(我),“g *”、时间(~我),标签(~我),的r *“MarkerSize”12)网格轴([0 20 -2 2])“绿色:正常,红色:故障”)包含(“数据评估时间”) ylabel (“预测”

プロットでは,中間点あたりまで動作は正常であり,その後故障状態となると分類器によって予測されていることが示されています。

オンランでのモデルパラメタの適応化による故障検出

上記の解析では,システム動作中のさまざまな時点で収集したデ,タのバッチを使用しました。システムの健全性をモニターするための,より便利なことの多い代替方法は,その動作の適応モデルを作成することです。新しい測定値が継続的に処理され,モデルのパラメ,タ,を再帰的に更新するために使用されます。摩損や故障の影響は,モデルのパラメ,タ,値の変化によって示されます。

摩損のシナリオにいて再考します。システムが古くなるにれ,“ガタガタ”が大きくなります。これは,いくかの共振モドの励起と,システムのピク応答の立上がりが現れたものです。このシナリオはモデルpdmDeterioratingSystemEstimationで説明されており,このモデルは,オフラpdmMechanicalSystemの“变质系统”モ,ドと同じです。システムの応答は,ARMAモデル構造のパラメーターを推定するよう設定された“递归多项式模型估计“ブロックに渡されます。実際のシステムは健全な状態で始まり,200秒の時間範囲の間に耐用寿命の末期状態まで劣化します。

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

“ARMA模型”ブロックは,前節で多項式(ARMA)形式への変換後に導出された正常動作の推定モデルから得たパラメーターと共分散データを使用して初期化されています。パラメ,タ,の共分散デ,タも変換されるよう,関数translatecov ()が使用されます。ブロックでは,“忘却係数”アルゴリズムが使用されます。この忘却係数は,パラメーターを各サンプリング瞬時に更新するため,1よりわずかに小さく設定されています。忘却係数での選択は,システムの更新速度に影響します。値が小さいと,更新による分散が大きくなります。一方,値が大きいと,推定器が急速な変化に適応しにくくなります。

モデルパラメーターによる推定は,出力スペクトルとその3-sd信頼領域を更新するために使用されます。対象周波数でスペクトルの信頼領域が健全なシステムの信頼領域とオーバーラップしない場合,システムは明らかに変化しています。故障検出のしきい値は,特定の周波数で許容される最大ゲインをマークするプロットで,黒の線を使用して示されています。システムでの変化が蓄積されるにれ,スペクトルはこの線を超えてドリフトします。。

シミュレ,ションを実行し,スペクトルのプロットが更新されていくのを観察します。

sim (sysB)

モデルパラメーターの実行中の推定はシステムの極配置の計算にも使用され,その後,システムの状態が”正常“か”故障”かを予測するためSVM分類器に入力されます。この判定はプロットにも表示されます。正規化された予測のスコアが0.3より小さい場合,判定は仮のもの(識別の境界に近い)とみなされます。スペクトルの実行中の推定と分類器による予測がどのように計算されるかの詳細にいては,スクリプトpdmARMASpectrumPlot.mを参照してください。

適応推定およびプロット手順は,関数recursiveARMA ()を使用してS金宝appimulinkの外で実装することが可能です。“递归多项式模型估计器”ブロックと関数recursiveARMA ()のどらも,展開を目的としたコド生成をサポトしています。

分類スキムは,既知の故障モドがいくかある場合へと一般化できます。これにいては,各モドが特定タプの故障を参照する,複数グルプの分類器が必要になります。こうした側面にいては,この例では扱っていません。

まとめ

この例では,システム同定スキームをデータクラスタリング法および分類法と組み合わせて故障の検出と分離に役立てる方法を説明しました。逐次的バッチ解析とオンラ▪▪ンでの適応スキ▪▪ムの両方に▪▪いて説明しました。測定された出力信号のarma構造のモデルが同定されました。同様の方法は,入力信号と出力信号の両方にアクセスでき,状態空間モデルやBox-Jenkins多項式モデルのような他のタイプのモデル構造の使用を考えている状況で採用できます。

この例でわかったことは,次のとおりです。

  1. 通常動作のモデルに基づいた残差における相関は,故障の開始を示す可能性があります。

  2. 漸進的に悪化している故障は,システムの動作に継続的に適応するモデルを採用することにより検出できます。モデルの特性 (出力スペクトルでの境界など) について事前設定されたしきい値は、故障の発現と進行を可視化するために役立ちます。

  3. 故障の発生源を分離する必要がある場合,実行可能な方法は,関連する故障モードに応じた別々のモデルを前もって作成しておくことです。これにより,分類法を使用して,システムの予測された状態をこれらのモードのいずれかに割り当てられるようになります。

関連するトピック