# An Open Source Framework Approach to Support Condition Monitoring and Maintenance
## 5 The Solution
### Condition Monitoring of Rolling Element Bearings  
The authors present a prototype capable of executing the condition monitoring of rolling-element bearing, which is supported by the architecture defined in Figure 5. Aligned with the discussion at the beginning of Section 5, this condition-monitoring prototype is written in Python language, and it monitors the received time-domain data of the rolling element bearing, not only in the time domain but also in the frequency domain, after performing a fast Fourier transform (FFT) of the time domain signal. Nevertheless, the solution is at the initial phases; In the near future, this prototype will be able to make some analytics such us RUL calculation using VTT O&M analytics libraries [36]. The software's objective is to be integrated into the Arrowhead Framework, i.e., as a service [26], as was mentioned in the previous section. Once it is compliant with the Arrowhead Framework, it is also possible to integrate it with applications that are based on sensors or other IoT devices like, for instance, Arduino [37], NodeMCU [38] and Raspberry Pi [39]. The data monitored in the prototype were simulated with a Python-based simulation program done by VTT. The user of the simulation software can define different bearing characteristics such as Pitch and ball diameters, the number of balls, contact angle, and select between the ball and roller types. In addition, the user can modify operation conditions: e.g., rotations per minute (RPM) and load. Finally, the program allows to simulate none faulty signals or add one the most typical faults of the rolling element bearings such as ball pass frequency outer (BPFO), ball pass frequency inner (BPFI), ball spin frequency (BSF) and fundamental train frequency (FTF) faults. This simulation program can be Arrowhead Framework compliant as a service consumer to validate the system. A preliminary simulation test was carried out on the baseline behavior of our system, without adding any of the most typical faults of the bearings. We provide the bearing characteristics and the operating conditions available in Table 1 and the sampling characteristics in Table 2. The output signal in the time domain can be seen in Figure 6, whereas Figure 7 shows the spectrum of the signal. An additional test was carried out, adding an outer race fault. We used the same simulation characteristics of the first test, and its parameters are available in Tables 1 and 2. The outer race fault simulated signal is the output of the raw vibration signal, plus an impulse caused by a fault on the outer race, which is generated whenever a rolling element passes over the faulty point on outer race. An output signal in the time domain can be seen in Figure 8 and its spectrum in Figure 9.  
To understand the results, we calculated the theoretical outer race fault frequency of a bearing simulation using the characteristics described in Table 1. This frequency is 63.4 Hz. Comparing the test carried without adding any fault, it can be observed that Figure 9 includes many peaks of acceleration in the spectrum in multiple frequencies, which includes the theoretical outer race fault frequency at \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**RPM** & **Pitch Diameter** & **Ball Diameter** & **Number of Balls** & **Contact Angle** & **Type of Bearing** \\ \hline
1500 & 10 mm & 5 mm & 10 Units & 10 degrees & Ball \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Bearing characteristics and the operating conditions of the simulation carried. Figure 6: Non-faulty vibration signal in time domain with the characteristics from Table 1.  
Figure 7: Non-faulty vibration signal in frequency domain with the characteristics of the Table 1.  
63.4 Hz and the theoretical inner race fault frequency at 186.6 Hz.