关于 Mcp Motor Current Signature Analysis
Mcp Motor Current Signature Analysis 是用于分析定子电流信号、诊断电机故障的 MCP 服务。它支持实测和合成信号,可从频谱分析运行完整诊断并分类故障严重程度。
主要功能
- 01读取 CSV、TSV、WAV 和 NPY 信号
- 02计算电机参数与故障频率
- 03执行 FFT、PSD 和包络分析
- 04检测电机故障并分类严重程度
- 05按 ID 持久化保存信号与频谱
适用场景
- 01根据实测电流文件诊断故障
- 02结合轴承几何参数检查轴承缺陷
- 03生成合成故障信号用于测试
MCP 相关
向 MCP 客户端提供电机电流分析工具、`mcsa://fault-signatures` 资源和 `analyze_motor_current` 提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-mcsa
用于电机电流特征分析(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_density | Welch PSD 估算 → 返回 spectrum_id |
find_spectrum_peaks | 检测并分析频谱中的峰值 |
detect_broken_rotor_bars | BRB 故障指数及严重程度分类 |
detect_eccentricity | 通过边带检测气隙偏心 |
detect_stator_faults | 检测定子匝间短路 |
detect_bearing_faults | 根据电流频谱检测轴承缺陷 |
compute_envelope_spectrum | 用于调制分析的 Hilbert 包络频谱 |
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 | 删除磁盘上存储的一个或全部项目 |
资源
| URI | 描述 |
|---|---|
mcsa://fault-signatures | 故障特征、频率和经验阈值参考表 |
提示词
| 提示词 | 描述 |
|---|---|
analyze_motor_current | MCSA 分析的分步引导工作流 |
安装与设置
步骤 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)
-
加载测量信号(或生成合成信号):
“加载
measurement.wav中的信号” → 返回signal_id: sig_a1b2或:“生成一个带有断条故障的测试信号” →sig_c3d4 -
计算电机参数:
“计算 4 极电机的参数,电源频率为 50 Hz,转速为 1470 RPM”
-
计算预期故障频率:
“这台电机的预期故障频率是多少?”
-
预处理信号:
“预处理信号 sig_a1b2” → 返回新的
signal_id: sig_e5f6 -
分析频谱:
“计算 sig_e5f6 的 FFT 频谱” → 返回
spectrum_id: spec_g7h8 -
检测特定故障:
“检查 spec_g7h8 中是否存在断条”
-
包络分析(可选):
“计算 sig_e5f6 的包络频谱”
使用存储的信号快速诊断
run_full_diagnosis 工具只需一次调用,就能对存储的信号运行整个流程:
Input: signal_id + motor nameplate data
Output: complete report with fault severities and recommendations
轴承分析
进行轴承故障分析时,需要轴承几何参数(滚珠数量、滚珠直径、节圆直径、接触角)。服务将:
- 计算特征故障频率(BPFO、BPFI、BSF、FTF)
- 计算预期的电流边带
- 在频谱中搜索这些边带
支持的文件格式
| 格式 | 扩展名 | 采样率 |
|---|---|---|
| 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/
依赖项
文档
如需查看每个工具、资源和提示词的详细参考,包括参数表、诊断工作流、集成模式和严重程度阈值,请参阅 使用指南。
引用
如果您在研究中使用此软件,请引用:
@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文件自动显示 “引用此仓库” 按钮。
许可证
MIT — 详情请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。