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. 01读取 CSV、TSV、WAV 和 NPY 信号
  2. 02计算电机参数与故障频率
  3. 03执行 FFT、PSD 和包络分析
  4. 04检测电机故障并分类严重程度
  5. 05按 ID 持久化保存信号与频谱

适用场景

  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)的模型上下文协议(MCP)服务——通过定子电流信号,对电机进行无创频谱分析和故障检测。

mcp-server-mcsa 可将任何大模型转变为预测性维护专家。通过整合快速傅里叶变换(FFT)和包络分析等先进技术,系统可以聆听电机的电气特征,并通过自然语言自动识别机械和电气异常。

MCSA 是一种行业标准的状态监测技术,通过分析定子电流的谐波成分,检测电机中的转子、定子、轴承和气隙故障,无需振动传感器、停机或接触设备。此服务将完整的 MCSA 诊断工作流带给任何兼容 MCP 的 AI 助手(Claude Desktop、VS Code Copilot 等),支持交互式专家分析和自动化状态监测流水线。

功能

  • 真实信号加载 — 从 CSV、TSV、WAV 和 NumPy .npy 文件中读取测量数据
  • 电机参数计算 — 根据铭牌数据计算转差率、同步转速和转子频率
  • 故障频率计算 — 计算断条、偏心、定子故障和混合偏心的故障频率
  • 轴承缺陷频率 — 根据轴承几何参数计算 BPFO、BPFI、BSF、FTF
  • 信号预处理 — 去除直流分量、归一化、加窗、带通/陷波滤波
  • 频谱分析 — FFT 频谱、Welch PSD、频谱峰值检测
  • 包络分析 — 使用 Hilbert 变换解调机械/轴承故障
  • 时频分析 — 使用 STFT 对非稳态工况进行频率跟踪
  • 故障检测 — 自动进行严重程度分类(健康 / 初期 / 中度 / 严重)
  • 一键诊断 — 从信号数组或文件直接运行完整流水线
  • 测试信号生成 — 生成带可配置故障注入的合成信号,用于演示和基准测试
  • 持久化数据存储 — 将信号和频谱保存为压缩的 .npz 文件,存放于 ~/.mcsa_data/;使用短 ID(sig_xxxx、spec_xxxx)引用,避免大型数组占用聊天上下文;服务器重启后数据仍会保留

工具(21)

工具描述
inspect_signal_file检查信号文件格式和元数据,无需加载
load_signal_from_file从 CSV / WAV / NPY 文件加载当前信号 → 返回 signal_id
calculate_motor_params根据电机数据计算转差率、同步转速和转子频率
compute_fault_frequencies计算所有常见故障类型的预期故障频率
compute_bearing_frequencies根据轴承几何参数计算 BPFO、BPFI、BSF、FTF
preprocess_signal直流分量去除、滤波、归一化和加窗处理流程 → 返回新的 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用于调制分析的 Hilbert 包络频谱
compute_band_energy频带内的积分频谱能量
compute_time_frequencySTFT 分析,可选频率跟踪
generate_test_current_signal生成可选含故障的电机合成电流 → 返回 signal_id
run_full_diagnosis从信号或 signal_id 开始的完整 MCSA 诊断流程
diagnose_from_file直接从文件执行完整的 MCSA 诊断流程
list_stored_data列出持久化到磁盘的所有信号和频谱
clear_stored_data删除磁盘上存储的一个或全部项目

资源

URI描述
mcsa://fault-signatures故障特征、频率和经验阈值参考表

提示词

提示词描述
analyze_motor_currentMCSA 分析的分步引导工作流

安装与设置

步骤 1 — 安装 uv(一次性操作,如果尚未安装)

uv 是推荐的 Python 包管理器。它通过单个工具处理所有事务(Python、软件包、虚拟环境),并在整个 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:

  • 类型:command
  • 命令:uvx mcp-server-mcsa
步骤 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)中的日志。最常见的原因是配置中的命令未找到。使用 uvx 可避免 PATH 问题。
uvx: command not found安装 uv 后重启终端。在 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)和精简摘要。
  • 数据在服务重启后仍会保留——明天重新打开 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 工具只需一次调用,就能对存储的信号运行整个流程:

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)

边带位于 $(1 \pm 2s) \cdot f_s$,其中 $s$ 为转差率,$f_s$ 为电源频率。 根据边带幅值与基波幅值的 dB 比值对严重程度进行分类。

偏心

边带位于 $f_s \pm k \cdot f_r$,其中 $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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。