Motor Current Signature Analysis
MCP server for Motor Current Signature Analysis — fault detection in electric motors
Versions
0.1.2latest0.2.1Tools 21
calculate_motor_params Calculate motor operating parameters from nameplate and measured data. Computes synchronous speed, slip, rotor frequency, and slip frequency. These parameters are required inputs for fault frequency calculations.
compute_fault_frequencies Calculate expected fault frequencies for common induction-motor faults. Computes characteristic frequencies for broken rotor bars, eccentricity, stator faults, and mixed eccentricity based on motor operating parameters. Use these frequencies to know WHERE to look in the current spectrum.
compute_bearing_frequencies Calculate bearing characteristic defect frequencies (BPFO, BPFI, BSF, FTF). Returns normalised frequencies (multiples of shaft speed) and, if shaft speed is provided, absolute frequencies in Hz. If supply frequency is also given, computes expected stator-current sidebands.
preprocess_signal Preprocess a stator-current signal for spectral analysis. Applies (in order): DC offset removal → notch filtering → bandpass filtering → normalisation → windowing. Returns the preprocessed signal.
compute_spectrum Compute the single-sided amplitude spectrum (FFT) of a current signal. Returns a spectrum_id referencing the stored spectrum, plus a compact summary with top peaks. Use spectrum_id in downstream fault-detection tools.
compute_power_spectral_density Compute Power Spectral Density using Welch's method. Better for noisy signals and trend analysis than a raw FFT. Returns a spectrum_id plus compact summary.
find_spectrum_peaks Detect peaks in a frequency spectrum. Returns a list of peaks sorted by amplitude (highest first) with frequency, amplitude, and prominence values.
detect_broken_rotor_bars Detect broken rotor bar faults from current spectrum. Computes the BRB fault index by measuring sidebands at (1 ± 2s)·f_s relative to the fundamental. Returns severity classification: healthy / incipient / moderate / severe.
detect_eccentricity Detect air-gap eccentricity faults from current spectrum. Analyses sidebands at f_s ± k·f_r for static and dynamic eccentricity. Returns severity classification.
detect_stator_faults Detect stator inter-turn short circuit faults from current spectrum. Analyses sidebands at f_s ± 2k·f_r caused by stator winding asymmetry.
detect_bearing_faults Detect bearing defect signatures in the stator-current spectrum. Bearing faults modulate motor torque, creating sidebands at f_s ± k·f_defect. Note: bearing signatures in current are typically weak; envelope analysis or vibration data can improve detection.
compute_envelope_spectrum Compute the envelope spectrum of a current signal. Uses the Hilbert transform to extract the amplitude envelope, then computes its FFT. Useful for detecting bearing and mechanical faults that modulate the current at low frequencies.
compute_band_energy Compute the integrated spectral energy in a frequency band. Useful as a generic fault/cavitation indicator — measures the energy concentration around a characteristic frequency in the PSD.
compute_time_frequency Compute Short-Time Fourier Transform (STFT) for time-frequency analysis. For non-stationary conditions (variable speed/load, start-up transients). If target_freq_hz is provided, also tracks that frequency's amplitude over time. Returns a summary (not the full 2D matrix) to keep output manageable.
inspect_signal_file Inspect a signal file without fully loading it. Returns file metadata: size, format details, estimated number of samples, sampling frequency (for WAV), column headers (for CSV), and array shape (for NPY). Use this before load_signal_from_file to verify the file format and plan the loading parameters.
load_signal_from_file Load a motor-current signal from a file (CSV, WAV, or NumPy NPY). Supports the most common formats used by industrial DAQ systems: - **CSV/TSV/TXT**: Columnar data with optional time column. The sampling frequency is inferred from the time column or must be provided explicitly. - **WAV**: Audio files from portable recorders or DAQ. Sampling frequency is read from the WAV header. - **NPY**: NumPy binary arrays. Sampling frequency must be provided. Returns the signal, sampling frequency, number of samples, duration, and file metadata. The returned signal can then be passed to preprocess_signal, compute_spectrum, or run_full_diagnosis.
generate_test_current_signal Generate a synthetic motor-current test signal. Creates a simulated stator-current waveform with the fundamental, supply harmonics, noise, and optional fault signatures. Useful for testing, validation, and demonstration of MCSA analysis tools.
run_full_diagnosis Run a comprehensive MCSA diagnostic analysis on a current signal. Performs the full pipeline: preprocessing → spectrum → fault detection for broken rotor bars, eccentricity, stator faults, and optionally bearing defects. Returns a complete diagnostic report.
diagnose_from_file Load a signal from file and run the full MCSA diagnostic pipeline. One-shot tool: reads the signal file, preprocesses, computes the spectrum, runs all fault detectors, and returns a complete diagnostic report. Ideal for batch or automated condition-monitoring workflows.
list_stored_data List all signals and spectra currently stored on disk. Returns a compact summary of each stored item (ID, type, size, and key metadata) without returning the raw data arrays. The data is persisted in the MCSA data directory and survives server restarts.
clear_stored_data Delete stored signals and spectra from disk and memory. Pass a specific data_id to remove one item, or omit to clear all.
Permissions 2
filesystem low env_vars low