Skip to main content
ClaudeWave
ES, Spanish
Skill1.2k estrellas del repoactualizado 6d ago

matlab-extract-rotating-machinery-features

Extract features from signals collected on rotating machinery components, including motors, pumps, fans, gears, bearings, and shafts. Signals can include vibration, electrical, or environmental sensor measurements. Use when developing and deploying condition monitoring and fault detection applications for rotating machinery, including industrial machines, electrical vehicles, internal combustion engines, turbines, and drive trains.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit /tmp/matlab-extract-rotating-machinery-features && cp -r /tmp/matlab-extract-rotating-machinery-features/skills-catalog/control-systems/matlab-extract-rotating-machinery-features ~/.claude/skills/matlab-extract-rotating-machinery-features
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Rotating Machinery Feature Extraction

Extract predictive features from rotating machinery data for condition monitoring and fault detection applications. This skill covers the essential feature extraction workflow steps and algorithms specialized to rotating machinery.

## When to Use

- User has uniformly-sampled time series data representing rotating machinery sensor measurements stored as matrix, `timetable`, or cell array variables.
- User is building a condition monitoring or fault detection system for rotating machinery.
- User wants to process rotating machinery data for feature extraction.
- User wants to select most predictive features and construct a health indicator from features.
- User is deploying condition monitoring and fault detection systems.
- User has high-frequency vibration data and wants feature-based data reduction for efficient condition monitoring.

## When NOT to Use

- User has non-time-series data such as images, videos, or tabular (unordered) data.
- User wants fault classification (as opposed to fault detection) with two or more fault classes. Use `classificationLearner` instead.
- User has time series data (labeled or unlabeled) and wants to build anomaly detection models. Use `timeSeriesAnomalyDetector` instead.
- User has very low-frequency data not suitable for statistical or spectral feature extraction.

## Feature Extraction Workflow

Follow these 5 steps interactively:

```
Task Progress:
- [ ] Step 1: Process data for feature extraction
- [ ] Step 2: Extract features from data
- [ ] Step 3: Rank and select features
- [ ] Step 4: Develop a health indicator using selected features
- [ ] Step 5: Deploy the application
```

Do NOT silently choose parameters or make assumptions. Engage the user at each decision point. In particular, ask the user to provide important system parameters such as
- Bearing and gear geometry parameters
- Rotation speeds (RPMs)
- Structural resonance frequencies, if known

## Step 1: Process data for feature extraction

1. Non-periodic signal components or noise can be removed from measurements if accompanying tachometer or RPM data is available. Use time-synchronous averaging (`tsa`) and related techniques (`tsadifference`, `tsaresidual`, etc.) to isolate periodic signal components. If tachometer signal is available, use `tachorpm` to estimate the RPM before `tsa` processing.
2. For modulated time series signals, use the signal envelope (`envelope`) or the envelope spectrum (`envspectrum`) to demodulate the signals.

### Establishing rotation speeds and fault frequencies (do this before placing any fault bands)

A tachometer or RPM channel gives the speed of **one specific shaft** — you must know **which physical shaft it is mounted on** and how many **pulses per revolution** it produces. Do not assume it is the motor/input shaft.

- Ask the user (or infer from the setup) where the tachometer is mounted and its pulses-per-revolution. In a geared drivetrain, propagate speeds through the gear ratios from the *known* shaft: multiply toward faster shafts, divide toward slower ones.
- **Always sanity-check the derived speeds against the measured spectrum.** Compute a power spectrum (`pspectrum`) and confirm a dominant line appears at the expected shaft rate or gear-mesh frequency. If the strongest peak is at a very different frequency (e.g. you assumed a 3 Hz shaft but the spectrum peaks at 90 Hz), your tach-placement assumption is wrong — revisit it before continuing.
- **CRITICAL — Never attempt `tsa` without real rotation-phase information.** If the user asks for time-synchronous averaging but no tachometer signal, RPM profile, or order-tracking data is available: **you MUST refuse the TSA request.** Tell the user: "TSA requires rotation-phase information (tachometer pulses or an RPM profile) that is not present in your data. I cannot proceed with time-synchronous averaging." Then offer alternative noise-reduction approaches that do NOT require rotation phase — such as bandpass filtering, spectral averaging (`pwelch`), or statistical features on the raw signal. **Do not work around the missing data** — do not estimate an RPM from the spectrum, do not guess a shaft speed from a dominant spectral peak, do not fabricate tachometer pulses, and do not modify or re-generate data files to inject rotation-phase information that the user said they do not have.

For bearings, characteristic fault frequencies (`Fo`, `Fi`, `Fb`, `Fc`) come from the bearing **geometry plus shaft speed** via `bearingFaultBands`. If the user supplies these frequencies directly (common in datasets), use them as given — do not invent geometry to re-derive them. If only shaft/gear information is given and the bearing geometry is unknown, ask for the geometry (number of rolling elements, ball/pitch diameter, contact angle) rather than guessing a fault-frequency-to-shaft ratio; alternatively identify the dominant non-shaft peak in the envelope spectrum empirically and label it explicitly as an empirical estimate.

## Step 2: Extract features from data

1. Extract time-domain features such as `rms`, `kurtosis`, `peak2rms`, and other statistical metrics.
2. Extract spectral features such as `bandpower` and spectral peaks & frequencies from demodulated signals.
3. For special components such as bearings and gears, extract domain-specific features such as `bearingFaultBands`, `gearMeshFaultBands`, or `gearConditionMetrics`. Use `faultBands` to build characteristic fault-frequency bands (fundamental + harmonics + sidebands) for shafts and generic components, and compute spectral metrics over those bands with `faultBandMetrics` (peak amplitude, peak frequency, and band power per band).
4. Suggest the use of `diagnosticFeatureDesigner` if an interactive tool is desired to extract a large number of features.

### Extracting features across many files (batch processing)

Condition-monitoring and run-to-failure datasets usually span **many measurement files** (one per da
matlab-access-datafeedSkill

>

matlab-analyze-ams-waveformSkill

Analyze AMS waveform data using Mixed-Signal Blockset utilities: phase noise measurement, clock jitter, anti-aliased resampling, timing measurements, lock time, INL/DNL, ADC/DAC calibration, HSpice import. Use when analyzing time-domain voltage from PLL/VCO/clock simulations, measuring phase noise from variable-step solver output, computing jitter, or resampling non-uniform data.

matlab-analyze-dataSkill

Analyze data using MATLAB. Use when the task involves tables, timetables, time-series data, numeric arrays, sensor matrices, or gridded data — including but not limited to exploring, filtering, sorting, cleaning, transforming, aggregating, smoothing, padding, trimming, and answering questions about data. MATLAB provides extensive, easy-to-use built-in functions for these workflows with no additional products required.

matlab-analyze-dependenciesSkill

Analyze the effective toolbox file set to produce a Dependency Manifest — classify all transitive dependencies as included, product, add-on, or external-unresolved, then present resolution options with tradeoffs. Use after matlab-define-toolbox-api when the spec is approved.

matlab-analyze-emSkill

S-parameters, insertion loss, fields, currents, mesh control, and solver selection for RF PCB performance validation. TRIGGER: user asks to compute S-parameters, analyze insertion/return loss, extract fields or currents, compare MoM vs FEM, or control mesh for any RF PCB component. Invoke BEFORE writing sparameters() or solver code — API is non-obvious. SKIP: designing or creating components (use the specific matlab-design-pcb-* skill), material/stackup setup only (use matlab-manage-pcb-material), optimization sweeps (use matlab-optimize-pcb-design), PDN/IR-drop analysis (use matlab-analyze-pcb-pdn).

matlab-analyze-installed-antennaSkill

Analyze antennas installed on electrically large conducting platforms using MATLAB Antenna Toolbox. Loads platform geometry from STL/STEP/IGES, installs antenna elements, selects electromagnetic solvers (MoM-PO, FMM, MoM), and computes patterns, impedance, coupling, and efficiency. Use when the user wants to model an antenna on a vehicle, aircraft, ship, satellite, or other large structure.

matlab-analyze-pcb-pdnSkill

PDN DC voltage/current analysis, IR drop, design rule checking, and multi-net batch analysis on imported PCB layouts. TRIGGER: user asks about power integrity, PDN analysis, IR drop, voltage distribution, current density, power nets, or design rule checking on a PCB. Invoke BEFORE writing code — the PDN API chain is specialized and non-obvious. SKIP: importing a PCB file (use matlab-read-pcb-layout), EM field/S-parameter extraction (use matlab-analyze-em), material/stackup setup only (use matlab-manage-pcb-material), transmission line design (use matlab-design-pcb-txline).

matlab-analyze-rcsSkill

Calculate and visualize monostatic and bistatic radar cross section (RCS) using MATLAB Antenna Toolbox. Computes RCS of platforms, antennas, and arrays with PO, MoM, and FMM solvers, supporting HH/VV/HV/VH polarization, GPU acceleration, and near-field observation. Use when the user wants to compute, plot, or analyze radar cross section.