Ohm’s law tells us that power = current * voltage, therefore tracking a motor’s power consumption allows us to consider the behavior of both current and voltage concurrently. A popular method used to monitor motor behavior is “Instantaneous Power Signature Analysis”, or IPSA. Essentially a motor’s power is analyzed in the frequency domain in order to uncover external interference - whether mechanical or electrical. You can read more about IPSA in this academic article:In this tutorial we will be using spectral analysis to generate features for our anomaly detection model.
Predictive Maintenance by Electrical Signature Analysis to Induction Motors. 10.5772/48045. Bonaldi, E.L. & Oliveira, Levy & Borges da Silva, Jonas & Lambert-Torres, Germano & SILVA, L.E.. (2012). [page 500].
It’s recommended to check out the official guide on Edge Impulse’s data forwarder here, and check out the ODrive specific data forwarding Arduino script attached to this tutorial (“odrive_data_forwarding.ino”)!We’ll run the attached code on our Arduino while it’s connected via UART to our ODrive board. You can read about the ODrive UART interface here.
Undisturbed pseudo-random motor movement
When we train our machine learning model we’re not actually feeding raw, signal level samples to the model, rather we feed it features generated by digital signal processing. Using spectral analysis we can create sets of information about how our signal behaves in the frequency domain.After we click “Save Impulse”, let’s navigate to the “Spectral analysis” window. Here we can make adjustments to the DSP block in our impulse. Among other things we can set filter types and immediately view the filtered data. The default filter setting is a low pass filter, but this can and should be adjusted according to the type of anomalies the engineer is trying to detect. Once we’re happy with our DSP block settings, we can click “Save parameters” and then navigate to the next screen - “Generate features”.