**5. Machine health predictive maintenance teaching models**

In this section we describe three machine health predictive maintenance teaching and training models developed at SEPT LF. They are: Fan Fault Detection and Diagnosis (FDD); IIoT Vibration Demonstration Station; and Machine Health Monitoring and Prediction Platform.

#### **5.1 Fan FDD**

#### *5.1.1 General overview*

The purpose of Fan FDD is to be able to determine faults in a mechanical system, in this case a spinning fan, and diagnose which part of the fan is faulty. It utilizes vibration and current measurements in combination with machine learning. The system uses a small computer called a Raspberry Pi, and a microcontroller (SAMD21G18A). Upon request from the Raspberry Pi, the microcontroller will record the vibration (in FFT) and current data from the fan and return it to the raspberry pi to store. The Raspberry Pi can use the data to train a neural network to make assumptions about the state of the fan.

The system is unique as it can be trained on 3 fault conditions, but it is able to output separate 4th condition which is a combination of two other conditions!

The circuit board contains a microcontroller, a SAMD21G18A, I2C for the accelerometer, ADXL345, an op-amp circuit for measuring current, and some display LEDs to give the user some feedback. The microcontroller can communicate with the Raspberry Pi through the Serial Port via USB. The firmware on the microcontroller only responds to commands from the Raspberry Pi serial port.

#### *5.1.2 Python programs*

The program that runs on the raspberry pi is written in python. Two main programs were written for Data Collection; and Fault Detection.

#### *5.1.3 Data collection program*

The purpose of this program is to collect different datasets to later train the network. The user will run through a series of events displayed on the screen. It will ask the user to turn on the fan, run the fan in normal condition, collect data, run the fan with a weight attached to the impeller (to simulate a broken fan blade), collect data, and finally run the fan with a cover on it (to simulate a blockage) and collect data. Once all of this has run it will automatically create a dataset and train the

neural network with the data. The dataset for each fault condition is an FFT (calculated on the microcontroller) + the current measurement. Using the datasets, the data collection will run a program called "trainNN.py" which will output an neural network file type of "nn" which can be later used to determine the fault of the fan.
