mcpField
M
Mcp Motor Current Signature Analysis

Mcp Motor Current Signature Analysis

ローカル
github.com/LGDiMaggio科学・教育922 週間前に更新

Mcp Motor Current Signature Analysis について

Mcp Motor Current Signature Analysis は、固定子電流信号を分析して電動機の故障を診断する MCP サーバーです。実測信号と合成信号に対応し、スペクトル解析から重大度分類付きの診断まで行えます。

主な機能

  1. 01CSV、TSV、WAV、NPY信号の読み込み
  2. 02モーター特性と故障周波数の計算
  3. 03FFT、PSD、包絡線解析
  4. 04モーター故障の検出と重大度分類
  5. 05IDによる信号とスペクトルの永続保存

活用シーン

  1. 01実測電流ファイルからの故障診断
  2. 02軸受形状に基づく軸受欠陥の確認
  3. 03テスト用の合成故障信号の生成

MCP 対応

MCP クライアントにモーター電流解析ツール、`mcsa://fault-signatures` リソース、`analyze_motor_current` プロンプトを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"motor-current-signature-analysis": {
"command": "uvx",
"args": [
"mcp-server-mcsa"
]
}
}
}
起動コマンドuvx mcp-server-mcsa

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-server-mcsa0.2.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-server-mcsa

License: MIT Python 3.10+ MCP

モーター電流シグネチャ解析(MCSA)のためのModel Context Protocol(MCP)サーバーです。固定子電流信号を使用して、電気モーターの非侵襲的なスペクトル解析と故障検出を行います。

mcp-server-mcsaを使うと、あらゆるLLMを予知保全のエキスパートにできます。高速フーリエ変換(FFT)や包絡線解析などの高度な手法を統合することで、システムはモーターの電気的シグネチャを「聴き取り」、機械的・電気的な異常を自然言語だけで自動的に特定できます。

MCSAは、固定子電流の高調波成分を解析し、電気モーターの回転子、固定子、ベアリング、エアギャップの故障を検出する、業界標準の状態監視技術です。振動センサー、稼働停止、機械への物理的なアクセスは必要ありません。このサーバーは、MCSAの診断ワークフロー全体を、あらゆるMCP対応AIアシスタント(Claude Desktop、VS Code Copilotなど)で利用できるようにし、対話形式のエキスパート分析と自動化された状態監視パイプラインの両方を実現します。

機能

  • 実信号の読み込み — CSV、TSV、WAV、NumPyの.npyファイルから測定データを読み込みます
  • モーターのパラメーター計算 — 銘板データからすべり、同期速度、回転子周波数を算出します
  • 故障周波数の計算 — 回転子バーの破損、偏心、固定子の故障、複合偏心に対応します
  • ベアリングの故障周波数 — ベアリングの形状からBPFO、BPFI、BSF、FTFを算出します
  • 信号の前処理 — DC成分の除去、正規化、窓関数の適用、バンドパス/ノッチフィルタリングを行います
  • スペクトル解析 — FFTスペクトル、Welch PSD、スペクトルピークの検出に対応します
  • 包絡線解析 — 機械・ベアリングの故障を対象に、ヒルベルト変換による復調を行います
  • 時間周波数解析 — 定常でない条件下での周波数追跡にSTFTを使用します
  • 故障検出 — 故障の深刻度を自動的に分類します(正常/初期/中程度/重度)
  • ワンショット診断 — 信号配列またはファイルから、パイプライン全体を実行します
  • テスト信号の生成 — デモやベンチマーク用に、故障注入を設定できる合成信号を生成します
  • 永続データストア — 信号とスペクトルを圧縮.npzファイルとして~/.mcsa_data/に保存します。短いID(sig_xxxx、spec_xxxx)で参照することで、大きな配列がチャットコンテキストを圧迫するのを防ぎます。データはサーバーの再起動後も保持されます

ツール(21)

ツール説明
inspect_signal_file読み込まずに信号ファイルの形式とメタデータを調べます
load_signal_from_fileCSV / WAV / NPY ファイルから現在の信号を読み込みます → signal_id を返します
calculate_motor_paramsモーターデータから滑り、同期速度、ローター周波数を計算します
compute_fault_frequencies一般的なすべての故障タイプについて、予想される故障周波数を計算します
compute_bearing_frequenciesベアリングの形状から BPFO、BPFI、BSF、FTF を計算します
preprocess_signalDC 除去、フィルタリング、正規化、ウィンドウ処理のパイプラインを実行します → 新しい signal_id を返します
compute_spectrum片側 FFT 振幅スペクトルを計算します → spectrum_id を返します
compute_power_spectral_densityWelch 法による PSD 推定を行います → spectrum_id を返します
find_spectrum_peaksスペクトル内のピークを検出し、特性を分析します
detect_broken_rotor_barsBRB 故障指数を重大度分類とともに算出します
detect_eccentricity側帯波によるエアギャップ偏心の検出
detect_stator_faults固定子の巻線間短絡を検出します
detect_bearing_faults電流スペクトルからベアリングの欠陥を検出します
compute_envelope_spectrum変調解析用のヒルベルト包絡線スペクトルを計算します
compute_band_energy周波数帯域内の積分スペクトルエネルギーを計算します
compute_time_frequencyオプションの周波数追跡を含む STFT 解析を行います
generate_test_current_signalオプションで故障を含む合成モーター電流を生成します → signal_id を返します
run_full_diagnosis信号または signal_id から MCSA 診断パイプラインを完全に実行します
diagnose_from_fileファイルから MCSA 診断パイプラインを直接実行します
list_stored_dataディスクに保存されているすべての信号とスペクトルを一覧表示します
clear_stored_dataディスクに保存されている項目を1つまたはすべて削除します

リソース

URI説明
mcsa://fault-signatures故障シグネチャ、周波数、経験的しきい値の参照表

プロンプト

プロンプト説明
analyze_motor_currentMCSA 解析を段階的にガイドするワークフロー

インストールとセットアップ

ステップ 1 — uv をインストールする(初回のみ。未インストールの場合)

uv は、推奨される Python パッケージマネージャーです。すべて(Python、パッケージ、仮想環境)を1つのツールで管理でき、MCP エコシステム全体で使用されています。

Windows(PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

インストール後、uv / uvx コマンドを使用できるように、ターミナルを再起動してください。

ステップ 2 — 動作を確認する
uvx mcp-server-mcsa --help

ヘルプテキストが表示されます。これで完了です。pip install は必要ありません。uvx がパッケージを自動的にダウンロードし、隔離環境で実行します。

ステップ 3 — MCP クライアントに追加する

クライアントを選び、以下の設定を追加してください。ほかに必要な手順はありません。

Claude Desktop

設定ファイルを開きます。

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json

mcpServers オブジェクト内に mcsa を追加します(ファイルが存在しない場合は作成してください)。

{
  "mcpServers": {
    "mcsa": {
      "command": "uvx",
      "args": ["mcp-server-mcsa"]
    }
  }
}

その後、Claude Desktop を再起動してください。

VS Code(Copilot / Continue)

ワークスペースに .vscode/mcp.json を作成(または編集)します。

{
  "servers": {
    "mcsa": {
      "command": "uvx",
      "args": ["mcp-server-mcsa"]
    }
  }
}
Cursor

Settings → MCP Servers → Add new server を開きます。

  • Type:command
  • Command:uvx mcp-server-mcsa
Step 4 — テスト

MCP クライアントで、次のように試してください。

「ローターバー破損故障のテスト信号を生成し、完全な診断を実行してください。モーター:4 極、50 Hz、1470 RPM。」

サーバーから診断レポートが返されたら、準備完了です。


代替方法:pip でインストール(推奨しません — 注記を参照)
pip install mcp-server-mcsa

次に、クライアントを次のように設定します。

{
  "mcpServers": {
    "mcsa": {
      "command": "python",
      "args": ["-m", "mcp_server_mcsa"]
    }
  }
}

⚠️ Windows でよくある問題:Microsoft Store から Python をインストールした場合、mcp-server-mcsa コマンドが PATH に含まれておらず、「server disconnected」エラーが発生することがあります。その場合は、python -c "import sys; print(sys.executable)" で Python のパスを確認し、設定でフルパスを使用してください。

{
  "mcpServers": {
    "mcsa": {
      "command": "C:/Users/YOU/AppData/Local/.../python.exe",
      "args": ["-m", "mcp_server_mcsa"]
    }
  }
}

uvx を使用すると、この問題を完全に回避できます。

代替方法:ソースからインストール(開発用)
git clone https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis.git
cd mcp-motor-current-signature-analysis
uv sync --dev

ローカルリポジトリを参照するようにクライアントを設定します。

{
  "mcpServers": {
    "mcsa": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/mcp-motor-current-signature-analysis", "run", "mcp-server-mcsa"]
    }
  }
}

テストを実行します。

uv run pytest

MCP Inspector でデバッグします。

uv run mcp dev src/mcp_server_mcsa/server.py
トラブルシューティング
問題対処方法
Claude Desktop で「server disconnected」と表示される%APPDATA%\Claude\logs\(Windows)または ~/Library/Logs/Claude/(macOS)のログを確認してください。最も一般的な原因は、設定内のコマンドが見つからないことです。PATH の問題を避けるには uvx を使用してください。
uvx: command not founduv のインストール後にターミナルを再起動してください。Windows では、PowerShell を閉じて開き直す必要がある場合があります。
mcp-server-mcsa: command not found(pip)スクリプトが PATH に追加されていません。代わりに python -m mcp_server_mcsa を使用するか、uvx に切り替えてください。
サーバーは起動するが、ツールが表示されない設定を編集した後に MCP クライアントを再起動したことを確認してください。

データストア

信号とスペクトルは、圧縮された .npz ファイルとして ~/.mcsa_data/ にディスクへ保存されます(MCSA_DATA_DIR 環境変数で設定可能)。これにより、次のことが可能になります。

  • 大きな配列がチャットに送られることはありません — 短い ID(sig_xxxx、spec_xxxx)と簡潔な要約のみが LLM に返されます。
  • データはサーバーを再起動しても保持されます — 翌日に Claude Desktop を再び開いても、信号はそのまま残っています。
  • データを一か所にまとめて管理できます — 読み込んだ測定値と生成したテスト信号が、同じフォルダーに保存されます。
~/.mcsa_data/
  signals/
    sig_a1b2c3d4.npz   ← loaded from CSV
    sig_e5f6g7h8.npz   ← generated test signal
  spectra/
    spec_i9j0k1l2.npz  ← FFT result

ディスク上のすべてのデータを確認するには list_stored_data を、項目を削除するには clear_stored_data を使用してください。

使用例

実信号 — ワンショット診断

測定信号を最も手早く解析するには、diagnose_from_file ツールを使用します。ファイルパスとモーターの銘板データを指定するだけです。

「C:\data\motor_phaseA.csv のモーターを診断してください — 電源周波数 50 Hz、 4 極、1470 RPM」

サーバーはファイルを読み込み、信号を前処理し、スペクトルを計算して、すべての故障検出器を実行し、重大度別に分類された結果を含む完全な JSON レポートを返します。

ステップごとのワークフロー(信号 ID を使用)
  1. 測定信号を読み込む(または合成信号を生成する):

    「measurement.wav から信号を読み込んでください」→ signal_id: sig_a1b2 を返します または:「ローターバー破損故障のテスト信号を生成してください」→ sig_c3d4

  2. モーターのパラメーターを計算する:

    「4 極、電源周波数 50 Hz、1470 RPM で稼働するモーターのパラメーターを計算してください」

  3. 予想される故障周波数を計算する:

    「このモーターで予想される故障周波数は何ですか?」

  4. 信号を前処理する:

    「信号 sig_a1b2 を前処理してください」→ 新しい signal_id: sig_e5f6 を返します

  5. スペクトルを解析する:

    「sig_e5f6 の FFT スペクトルを計算してください」→ spectrum_id: spec_g7h8 を返します

  6. 特定の故障を検出する:

    「spec_g7h8 でローターバーの破損を確認してください」

  7. 包絡線解析(任意):

    「sig_e5f6 の包絡線スペクトルを計算してください」

保存済み信号からのクイック診断

run_full_diagnosis ツールは、1 回の呼び出しで保存済み信号に対してパイプライン全体を実行します。

Input: signal_id + motor nameplate data
Output: complete report with fault severities and recommendations
ベアリング解析

ベアリングの故障を解析するには、ベアリングの形状(ボールの数、ボールの直径、ピッチ円直径、接触角)が必要です。サーバーは以下を実行します。

  1. 特徴的な欠陥周波数(BPFO、BPFI、BSF、FTF)を計算します
  2. 予想される電流側帯波を算出します
  3. スペクトル内でこれらの側帯波を検索します
対応ファイル形式
形式拡張子サンプリングレート
CSV / TSV.csv、.tsv、.txt時刻列から取得、またはユーザー指定
WAV.wavヘッダーに埋め込み
NumPy.npyユーザー指定

故障検出の理論

ローターバーの破損(BRB)

スリップを $s$、電源周波数を $f_s$ とすると、側帯波は $(1 \pm 2s) \cdot f_s$ に現れます。 重大度は、側帯波の振幅と基本波の振幅の dB 比で分類されます。

偏心

ローターの機械周波数を $f_r$ とすると、側帯波は $f_s \pm k \cdot f_r$ に現れます。

固定子の巻線間短絡

巻線の非対称性により、側帯波は $f_s \pm 2k \cdot f_r$ に現れます。

ベアリングの欠陥

トルク振動が固定子電流を変調し、$f_s \pm k \cdot f_{defect}$ に側帯波が発生します。 欠陥周波数はベアリングの形状(BPFO、BPFI、BSF、FTF)によって異なります。

重大度のしきい値(基本波より低い dB 値)
レベル範囲
正常≤ −50 dB
初期−50~−45 dB
中程度−45~−40 dB
深刻> −35 dB

注:これらは一般的な指針です。実際のしきい値は、ベースライン測定に基づき、モーター、負荷、用途に応じて調整してください。

開発

セットアップ
git clone https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis.git
cd mcp-motor-current-signature-analysis
uv sync --dev
テストの実行
uv run pytest
MCP Inspector で実行
uv run mcp dev src/mcp_server_mcsa/server.py
リントと型チェック
uv run ruff check src/ tests/
uv run pyright src/

依存関係

  • mcp — Model Context Protocol SDK
  • numpy — 数値計算
  • scipy — 信号処理(FFT、フィルタリング、ヒルベルト変換)
  • pydantic — データ検証

ドキュメント

すべてのツール、リソース、プロンプトの詳細なリファレンス(パラメーター表、診断ワークフロー、統合パターン、重大度のしきい値を含む)については、使用ガイド をご覧ください。

引用

このソフトウェアを研究で使用する場合は、以下の形式で引用してください。

@software{dimaggio_mcsa_2025,
  author       = {Di Maggio, Luigi Gianpio},
  title        = {mcp-server-mcsa: MCP Server for Motor Current Signature Analysis},
  year         = 2025,
  url          = {https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis},
  license      = {MIT}
}

GitHub では、CITATION.cff ファイルに基づいて 「このリポジトリを引用」 ボタンが自動的に表示されます。

ORCID

ライセンス

MIT — 詳細は LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。