MENU

【Python実践】設備異常を早期に見抜く!代表的な5つのパターンと対処法

場やプラントの設備は、止まってしまえば生産性や安全性に直結する重要な存在です。
しかし、故障や不具合は突然起こるのではなく、必ず小さな「予兆」を伴っています。振動、温度、電流、圧力――日々収集されるセンサーデータの中に、その兆しは隠れています。

設備の異常検知とは、この予兆をいち早く捉え、計画的なメンテナンスやダウンタイム削減につなげる技術です。統計的手法から機械学習、ディープラーニングまで多様なアプローチがあり、振幅や周波数、周期性などの変化を分析することで、故障の芽を事前に摘み取ることが可能になります。

本記事では、異常検知の基本的な考え方から代表的な手法、そして設備データに現れる典型的な異常パターンを整理し、わかりやすく解説します。

目次

設備の異常検知とは

設備の異常検知とは、機械や装置が通常とは異なる挙動を示した際に、その兆候を早期に捉える技術のことです。工場やプラントでは、振動・温度・電流・圧力など多様なセンサーデータが常時収集されています。これらのデータを解析することで、故障や不具合が顕在化する前に「予兆」を検知し、計画的なメンテナンスやダウンタイム削減につなげることができます。

異常検知のメリット

異常検知を行うことで、次のようなメリットがあります。

  • 予防保全:突発的な故障を防ぎ、計画的なメンテナンスを可能にする
  • 生産性向上:設備停止による損失を最小化し、稼働率を高める
  • 安全性確保:異常を早期に発見することで事故や品質トラブルを防止
  • コスト削減:不要な部品交換や過剰な点検を減らし、効率的な運用を実現

異常検知の主なアプローチ

異常検知は大きく分けると 統計的手法・機械学習手法・ディープラーニング手法 の3つに分類できます。さらに、これらの手法は「教師あり(ラベル付きデータを用いる)」と「教師なし(正常データや分布のみを用いる)」の2つのパターンに分けられます。設備異常検知の現場では、異常データが少ないため教師なし手法が中心となりますが、ラベル付きデータが豊富にある場合には教師あり手法が高い精度を発揮します。それぞれの特徴を整理すると以下の通りです。

統計的手法(教師なし)

もっとも古典的でシンプルな方法です。平均値や分散を基準に「通常範囲」を定義し、その範囲から外れた値を異常とみなします。代表的な手法には Zスコア、移動平均、IQR、CUSUM などがあり、計算が軽いためリアルタイム監視に適しています。ただし、複雑なパターンや多変量データには対応が難しいという弱点があります。

  • 考え方:データの平均値や分散を基準に「通常範囲」を定義し、その範囲から外れた値を異常とみなす。
  • 代表例:Zスコア、移動平均、四分位範囲(IQR)、CUSUM(累積和管理図)など。
  • メリット:計算が軽く、リアルタイム監視に向いている。
  • デメリット:複雑なパターンや多変量データには対応が難しい。

機械学習手法(主に教師なし/半教師あり)

統計的手法より柔軟で、複雑なデータ構造にも対応できるアプローチです。正常データの分布や構造を学習し、それから外れるデータを異常と判定します。代表例は Isolation Forest(孤立しやすい点を異常と判定)、LOF(局所密度比による異常検出)、One-Class SVM(正常境界を学習し外側を異常と判定)など。多次元データや複雑なパターンに強い一方で、パラメータ調整やラベル付きデータが必要になる場合があります。

  • 考え方:正常データの分布や構造を学習し、それから外れるデータを異常と判定する。
  • 代表例
    • Isolation Forest:ランダム分割で孤立しやすい点を異常とみなす。大規模データに強い。
    • Local Outlier Factor (LOF):近傍点との密度比を利用して異常を検出。局所的な異常に強い。
    • One-Class SVM:正常データの境界を学習し、外側を異常と判定。非線形データにも対応可能。
  • メリット:多次元データや複雑なパターンを扱える。
  • デメリット:パラメータ調整が必要で、ラベル付きデータがあると精度が上がる。

ディープラーニング手法(教師なし/教師あり両方あり)

近年注目されている最先端のアプローチです。ニューラルネットワークを使い、正常データを再構築した際の誤差や予測誤差を監視することで異常を検出します。代表例はオートエンコーダ(再構築誤差)、RNN/LSTM(時系列予測誤差)、CNN(画像や波形データの異常検知)など。複雑な非線形パターンや高次元データに強く、特徴量設計を自動化できる点が魅力ですが、大量のデータと計算資源が必要で、モデル解釈性が低いという課題もあります。

  • 考え方:ニューラルネットワークを使い、正常データを再構築した際の誤差を監視することで異常を検出。
  • 代表例
    • オートエンコーダ:入力データを圧縮・再構築し、誤差が大きいものを異常と判定。
    • RNN/LSTM:時系列データの予測誤差を利用して異常を検出。
    • CNN:画像や波形データの異常検知に強い。
  • メリット:複雑な非線形パターンや高次元データに強く、特徴量設計を自動化できる。
  • デメリット:大量のデータと計算資源が必要で、モデル解釈性が低い。

異常検知の手順

一般的な異常検知の手順は「データの準備(クレンジング)→特徴量設計→検出アルゴリズム適用→評価・改善」という流れです。特に最初のクレンジング工程が精度を大きく左右します。

スライディングウィンドウを用いた特徴量抽出

異常は多くの場合、短時間の局所的な変化として現れます。
そのため、異常検知ではスライディングウィンドウを用いて特徴量を計算し、それをモデルに投入する方法が一般的です。
全データをそのまま扱うよりも、局所的な変化を捉えやすく、計算効率や汎化性能の面でも有利になります。

ウィンドウサイズは「どれくらいの時間・データ範囲で特徴量を計算するか」を決めるパラメータです。

信号の周期性:1周期〜数周期を含むサイズが望ましい
 → 例:周期が約1秒なら、ウィンドウサイズは1〜3秒程度
異常の持続時間:異常が現れる時間スケールに合わせる
 → 瞬間的なスパイクなら短め、徐々に変化する異常なら長め
サンプリングレート:1秒あたりのデータ数に応じて調整
 → 例:100Hzなら1秒=100データ → ウィンドウサイズ100が1秒分

スライドサイズは「ウィンドウをどれだけずらして次の特徴量を計算するか」を決めるパラメータです。

検出の滑らかさ vs 計算効率のトレードオフ
ウィンドウサイズの10〜50%程度が一般的
 → ウィンドウサイズ100なら、スライドサイズ10〜50

代表的な5つの異常パターンと検出手法

設備データに現れる異常にはいくつかの典型的なパターンがあります。これらを理解しておくことで、現場でのトラブルを早期に察知し、適切な検出手法を選択することが可能になります。ここでは、設備異常を捉える上で特に重要な5つのパターンを整理し、それぞれに対応する代表的な検出手法を一覧にまとめました。

パターン名説明代表的な検出手法
振幅の変化信号や振動の大きさが通常より増加・減少する異常。統計的閾値判定(Zスコア、移動平均)、IQR、CUSUM
周波数成分の変化FFTなどのスペクトル解析で新しいピークが出現、既存ピークが強調される。FFT解析、ウェーブレット変換+機械学習(SVM, 決定木)
波形形状の変化信号の形が尖る、歪む、非対称になるなど通常と異なる波形になる。オートエンコーダによる再構築誤差、DTW(動的時間伸縮法)、CNN
周期性の乱れ本来一定周期で繰り返されるパターンが不安定になる。自己相関解析、ARモデル、RNN/LSTM
相関関係の崩れ/ノイズ増加複数センサ間の関係が弱まる・逆転する、またはノイズレベルが増加する。PCA残差分析、マハラノビス距離、相関係数監視、グラフニューラルネットワーク

信号の平均値が時間とともに持続的に上昇・下降する「トレンド変化(レベルシフト/ドリフト)」も現場で頻出する異常です。これは振幅の変化の一種として扱われることが多く、移動平均やCUSUMなどの統計的手法で検出されます。

振幅の変化

振幅の変化とは、時系列信号において波形の高さ(ピーク値)が一時的または継続的に増減する現象を指します。通常、信号の振幅は安定していることが多いですが、異常や外乱が加わることで、振幅が急激に大きくなったり小さくなったりすることがあります。

このような変化は、機械の動作状態や外部環境の変化を反映している可能性があり、異常検知や予兆保全の観点から重要な指標となります。

振幅が変化する理由

振幅の変化が生じる原因として、以下のようなものが考えられます。

  • 負荷の急変:モーターやポンプなどが急に重い負荷を受けた場合、振幅が増大することがある
  • センサの劣化やノイズ混入:センサの感度が変化したり、外部ノイズが混入することで振幅が不安定になる
  • 物理的衝撃や振動:機械的な衝突や振動が加わることで、一時的に振幅が跳ね上がる
  • 制御系の異常:フィードバック制御が不安定になると、振幅が周期的に増減することがある

検出手法

振幅の変化を検出するためには、以下のような手法が有効です。

  • ピーク検出アルゴリズム:局所的な最大値・最小値を抽出し、振幅の変化を定量化
  • 移動平均+しきい値判定:振幅の平均値を滑らかに追跡し、一定のしきい値を超えたら異常と判定
  • エンベロープ解析:信号の包絡線を抽出し、振幅の変動を時間的に追跡
  • 統計的手法(Zスコア、IQRなど):振幅の分布から外れ値を検出

よく使われる特徴量

振幅の変化を定量的に捉えるために、以下のような特徴量がよく使われます。

  • 振幅レンジ(Max - Min)
    最大値と最小値の差を取ったものです。振幅の変動幅を定量化でき、安定性の指標として使われます。
  • RMS(Root Mean Square)
    振幅の二乗平均平方根で、信号の平均的なエネルギー量を表します。ノイズや振動の強さを反映するため、機械の健全性評価に適しています。
  • エンベロープ平均
    信号の包絡線を抽出し、その平均値を計算します。振幅のトレンドを追跡するのに適しており、徐々に増大する異常を検出できます。
  • 振幅の標準偏差
    振幅のばらつきを表す指標です。安定した信号では小さく、異常や外乱があると大きくなるため、変動の検出に有効です。

周波数成分の変化

周波数成分の変化とは、時系列信号において波形を構成する周波数の構造が一時的または継続的に変化する現象を指します。通常、信号は特定の基本周波数やその高調波で構成されますが、異常や外乱が加わることで新しい周波数成分が混入したり、既存の周波数が強調・減衰したりすることがあります。

このような変化は、機械の動作状態や外部環境の変化を反映している可能性があり、スペクトル解析や異常検知の観点から重要な指標となります。

周波数成分が変化する理由

周波数成分の変化が生じる原因として、以下のようなものが考えられます。

  • 負荷の変動:モーターや回転機械の回転数が変化すると、基本周波数が変わる
  • 共振や構造変化:機械部品の摩耗や破損により、新しい共振周波数が現れる
  • 外部ノイズの混入:電気的ノイズや環境振動が加わり、異なる周波数成分が混ざる
  • 制御系の不安定化:制御ループの乱れにより、周期的な高周波成分が発生する

検出手法

周波数成分の変化を検出するためには、以下のような手法が有効です。

  • フーリエ変換(FFT):信号を周波数領域に変換し、スペクトルのピーク変化を観察
  • 短時間フーリエ変換(STFT):時間ごとの周波数成分を追跡し、変化を時系列で捉える
  • ウェーブレット変換:非定常信号に対して周波数変化を多解像度で解析
  • スペクトルエンベロープ解析:周波数成分の包絡線を抽出し、成分の増減を追跡

よく使われる特徴量

周波数成分の変化を定量的に捉えるために、以下のような特徴量がよく使われます。

  • 主成分周波数(Dominant Frequency)
    スペクトルの中で最も強いピークを持つ周波数。基本動作の変化を検出するのに有効。
  • 周波数帯域エネルギー(Band Energy)
    特定の周波数帯域に含まれるエネルギー量。ノイズや共振の影響を評価できる。
  • スペクトル重心(Spectral Centroid)
    周波数分布の重心を表す指標。高周波成分が増えると値が大きくなる。
  • スペクトル拡がり(Spectral Spread)
    周波数分布の広がりを示す。安定した信号では狭く、異常時には広がる。
  • 周波数成分の標準偏差
    周波数ピークのばらつきを表す。安定性の指標として使える。

波形形状の変化

波形形状の変化とは、時系列信号において波形の形そのものが一時的または継続的に歪んだり欠けたりする現象を指します。通常、信号は滑らかな正弦波や安定したパターンを示しますが、異常や外乱が加わることで波形が部分的に潰れたり、尖ったピークが現れたり、あるいは一部が欠落することがあります。

このような変化は、機械の物理的状態やセンサの異常を直接反映している可能性があり、異常検知や品質管理の観点から重要な指標となります。

波形形状が変化する理由

波形形状の変化が生じる原因として、以下のようなものが考えられます。

  • センサの欠陥や応答不良:一部の波形が欠ける、途切れる
  • 機械的摩耗や衝撃:ピークが潰れる、山が平らになる
  • 外部ノイズや突発的イベント:一部に尖ったスパイクが混入する
  • 制御系の異常:波形が非対称になったり、周期ごとに形が変わる

検出手法

波形形状の変化を検出するためには、以下のような手法が有効です。

  • 波形テンプレートマッチング:正常波形と比較し、形状の差異を検出
  • 区間ごとの統計量比較:部分区間の平均値や分散を比較し、異常を抽出
  • スパイク検出アルゴリズム:急激なピークや欠落を検出
  • ウェーブレット解析:局所的な形状変化を多解像度で捉える

よく使われる特徴量

波形形状の変化を定量的に捉えるために、以下のような特徴量がよく使われます。

  • 波形対称性(Symmetry)
    波形が左右対称かどうかを評価。非対称になると異常の可能性が高い。
  • 波形尖度(Kurtosis)
    波形の尖り具合を表す指標。スパイクや異常ピークの検出に有効。
  • 波形歪度(Skewness)
    波形の非対称性を定量化。偏りが大きいと異常を示す。
  • 区間欠落率(Missing Ratio)
    信号の一部が欠けている割合。センサ不良や途切れの検出に使われる。
  • 局所的標準偏差
    区間ごとのばらつきを評価。正常波形では安定、異常波形では急増する。

周期性の乱れ

周期性の乱れとは、時系列信号において波形の繰り返し周期が一時的または継続的に変化する現象を指します。通常、信号は一定の周期で繰り返されますが、異常や外乱が加わることで周期が伸びたり縮んだり、あるいは不規則に揺らぐことがあります。

このような変化は、機械の運転状態や外部環境の影響を反映している可能性があり、異常検知や予兆保全の観点から重要な指標となります。

周期性が乱れる理由

周期性の乱れが生じる原因として、以下のようなものが考えられます。

  • 回転数の変動:モーターや回転機械の速度が不安定になることで周期が変化する
  • 摩耗や劣化:部品の摩耗により動作リズムが乱れる
  • 外部衝撃や負荷変動:周期的な動作に外乱が加わり、一部の周期が伸縮する
  • 制御系の不安定化:フィードバック制御が乱れることで周期が揺らぐ

検出手法

周期性の乱れを検出するためには、以下のような手法が有効です。

  • 自己相関解析:信号の周期性を評価し、乱れを検出
  • ピーク間隔解析:波形のピーク間隔を計測し、周期の伸縮を定量化
  • スペクトル解析(FFT):基本周波数の変動やピークの広がりを確認
  • 時間周波数解析(STFT、ウェーブレット):周期の揺らぎを時間的に追跡

よく使われる特徴量

周期性の乱れを定量的に捉えるために、以下のような特徴量がよく使われます。

  • 平均周期(Mean Period)
    ピーク間隔の平均値。周期の基準を示す。
  • 周期の標準偏差(Period Std)
    ピーク間隔のばらつきを表す。周期が安定していれば小さく、乱れると大きくなる。
  • 基本周波数の変動幅(Frequency Variation)
    FFTで得られる基本周波数の変動量。周期の揺らぎを反映する。
  • 周期安定度指数(Stability Index)
    周期の一貫性を数値化した指標。安定性評価に用いられる。
  • スペクトルピーク幅(Peak Bandwidth)
    周波数ピークの広がりを表す。周期が乱れると広がりが大きくなる。

相関関係の崩れ(またはノイズ増加)

相関関係の崩れとは、複数の時系列信号の間に存在していた一定の関係性(同期や位相の一致)が失われる現象を指します。通常、関連するセンサや機械部品の信号は強い相関を持ちますが、異常や外乱が加わることで相関が弱まり、逆相関や不規則な関係に変化することがあります。また、ノイズが増加すると信号間の関係が曖昧になり、相関が崩れたように見える場合もあります。

このような変化は、システム全体の協調動作が乱れている可能性を示し、異常検知や原因分析の観点から重要な指標となります。

相関関係が崩れる理由

相関関係の崩れやノイズ増加が生じる原因として、以下のようなものが考えられます。

  • 部品の摩耗や劣化:本来同期していた動作がずれ始める
  • 制御系の不安定化:フィードバックが乱れ、信号間の位相が逆転する
  • 外部ノイズの混入:センサ信号にランダム成分が加わり、相関が弱まる
  • 環境変動:温度や振動など外部要因で信号が不規則になる

検出手法

相関関係の崩れやノイズ増加を検出するためには、以下のような手法が有効です。

  • 相互相関解析(Cross-Correlation):複数信号の相関係数を計算し、関係性の強弱を評価
  • コヒーレンス解析(Coherence):周波数領域で信号間の関連性を評価
  • 位相差解析:信号間の位相のずれを追跡し、逆転や乱れを検出
  • ノイズ指標(SNR, Signal-to-Noise Ratio):信号に対するノイズの割合を定量化

よく使われる特徴量

相関関係の崩れやノイズ増加を定量的に捉えるために、以下のような特徴量がよく使われます。

  • 相関係数(Correlation Coefficient)
    信号間の線形関係を表す指標。値が1に近いほど強い相関、0に近いほど無相関。
  • コヒーレンス値(Coherence Value)
    周波数領域での信号間の関連性を表す。値が高いほど周波数成分が一致。
  • 位相差(Phase Difference)
    信号間の位相のずれを定量化。逆相関や同期崩れを検出できる。
  • SNR(Signal-to-Noise Ratio)
    信号に対するノイズの割合。値が低いほどノイズが多く、相関が崩れやすい。
  • ノイズ分散(Noise Variance)
    ノイズ成分のばらつきを表す。安定した信号では小さく、ノイズ増加時には大きくなる。

ダミーデータの生成サンプル

このプログラムは、時系列信号に典型的な5種類の異常パターンを生成し、グラフとして可視化するものです。正常な正弦波を基準に、異常区間(3〜6秒)でそれぞれ異なる変化を加えることで、異常検知でよく問題となる現象を表現しています。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'Meiryo'  # 日本語文字化け防止

# 時間軸
t = np.linspace(0, 10, 1000)

# 1. 振幅の変化(途中だけ振幅が大きくなる → その後戻る)
signal1 = np.sin(2 * np.pi * t)
signal1[(t > 3) & (t < 6)] *= 2

# 2. 周波数成分の変化(基本波に高周波成分が混ざる)
signal2 = np.sin(2 * np.pi * t)
signal2[(t > 3) & (t < 6)] += 0.5 * np.sin(8 * np.pi * t[(t > 3) & (t < 6)])

# 3. 波形形状の変化(途中だけ欠ける/潰れる)
signal3 = np.sin(2 * np.pi * t)
signal3[(t > 4) & (t < 5)] = 0  # 区間を欠けさせる

# 4. 周期性の乱れ(一部の周期が短くなる → 周波数2倍)
signal4 = np.sin(2 * np.pi * t)

# 区間3〜6秒を異常区間とする
mask = (t >= 3) & (t <= 6)

# 異常区間の時間軸をリセット(t=3をゼロに)
t_shifted = t[mask] - 3

# 周波数を2倍(周期1/2)にして速く振動させる
# 3秒時点で sin(2π*3)=0 → sin(0) で自然につながる
# 6秒時点で sin(4π*3)=sin(12π)=0 → ゼロクロスで復帰
signal4[mask] = np.sin(4 * np.pi * t_shifted)

# 6秒以降の時間軸もリセットして、元の波形に滑らかに復帰
t_after = t[t > 6] - 6
signal4[t > 6] = np.sin(2 * np.pi * t_after)


# 5. 相関関係の崩れ(位相が途中で逆転する2波形)
signal5a = np.sin(2 * np.pi * t)  # 基準波形
signal5b = np.sin(2 * np.pi * t + np.pi/4)  # 位相が少しずれた波形

# 区間3〜6で位相を逆転させる
signal5b[(t > 3) & (t < 6)] = np.sin(2 * np.pi * t[(t > 3) & (t < 6)] + np.pi)

# 描画
fig, axs = plt.subplots(5, 1, figsize=(10, 12))

axs[0].plot(t, signal1)
axs[0].set_title("振幅の変化(途中で増大)")
axs[0].grid(True)

axs[1].plot(t, signal2)
axs[1].set_title("周波数成分の変化(高周波混入)")
axs[1].grid(True)

axs[2].plot(t, signal3)
axs[2].set_title("波形形状の変化(欠ける例)")
axs[2].grid(True)

axs[3].plot(t, signal4)
axs[3].set_title("周期性の乱れ(周期が伸びる)")
axs[3].grid(True)

axs[4].plot(t, signal5a, label="信号A")
axs[4].plot(t, signal5b, label="信号B")
axs[4].set_title("相関関係の崩れ(位相逆転)")
axs[4].legend()
axs[4].grid(True)

plt.tight_layout()
plt.show()

めとめ

本記事では、設備の異常検知の基本的な考え方から代表的な手法、そして振幅・周波数・波形形状・周期性・相関関係といった典型的な異常パターンについて解説しました。

異常検知は、単なる故障予知にとどまらず、生産性の向上・安全性の確保・コスト削減を同時に実現するための重要な技術です。データのクレンジングから特徴量設計、モデル適用、評価改善までを一貫した流れとして捉えることが、精度の高い検知につながります。

特にスライディングウィンドウによる局所的な特徴量抽出は、短時間の変化を捉える上で有効であり、現場での予兆保全に大きな力を発揮します。

今回紹介した考え方や手法が、皆さんのお役に立てば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次