## 1. Introduction

Machine maintenance is one of the most important issues in any industry, since good maintenance procedures avoid catastrophic failures that threaten the productive process, and most important of all, the life of the workers involved [1].

Due to catastrophic failures, industrial maintenance has been evolved to prevent machines from failures, which looks for symptoms in machines that allow determining the most appropriate time for doing maintenance, and even more important, determining the exact failure occurring in a machine [2, 3].

This new form of industrial maintenance development, called “predictive maintenance,” requires new methodologies and expert analysis, which can act as “machine physicians,” able to determine a machine’s health condition based on those symptoms [4].

One of the most accurate predictive methods is vibration analysis [5–7], which implies the study of machine vibration signals as a symptom allowing to determine eventual failures in an incipient state [8], thus avoiding a possible catastrophic failure. A significant problem associated with this study has to do with cost, currently ranging from US$ 12,000 to US$ 40,000 [5]. On the other hand, MATLAB is a very powerful calculation tool that, among many other remarkable features, can be used to create matrix-type databases, perform complex calculations, and generates graphs, allowing the creation of graphical interfaces, etc., so undoubtedly we can use it to develop a software for storing vibration analysis data in a database and tools that permit the analysis of data stored in the same software, this being a first step toward the creation of a low-cost “virtual instrument” [9]. This software is limited, in this first development stage, to data acquisition from an Excel spreadsheet, along with the recording and analysis of the acquired data, leaving aside for the time being the capture of the machine’s vibrations stage through a transducer, the conditioning of the captured vibrations, as well as the subsequent data acquisition [10, 11].

## 2. Software development for vibration analysis

In this chapter, we present the development of a virtual analyzer of mechanical vibrations to be used in industry. This software was developed on MATLAB/Simulink due to that software’s calculation capacity and because it has a visual programming tool called GUIDE, which allows an easy development of a graphical interface for vibration analysis [12].

The database is called “basedatos,” and it is created as a variable in MATLAB’s Workspace and stored in the same place. To access it, we must load the database through the command “Load” at the time of starting the program.

The database is a structure where we include operation conditions and measurement data, such as date, observations, etc., and inside this structure, one of the fields is an arrangement called “signal,” where we include width, frequency, phase, and harmonics attenuation coefficient of the vibrational signal.

Another important feature of MATLAB is a compiler that creates an “.exe” file that allows the execution of the program without the need to have it previously installed, therefore allowing to run the vibration analyzer on any PC.

Several screens are created for the different “analyzer features” and for the “implementable tools” that can be accessed through buttons arranged on a main screen called “Main” for the program root, and “Vibration analysis” for the developed tools, as shown in **Figure 1**.

Those screens or graphical interfaces have many components, such as buttons, selection boxes, dialog boxes, etc., that must be named first. In order to do that, inside the option “property” of the “tag” section of the interface elements, the names that those components will have are entered by the user. The names should be easy to remember, so we commonly use abbreviations referring to names of the corresponding functions or components. The importance of naming the components is that, at the time of creating the program’s code, those components are called through the “Callbacks” function, for editing or capturing their values through the “set” and “get” functions, respectively.

### 2.1. Analyzer features

#### 2.1.1. Data acquisition from Excel

This function allows importing vibration data from an Excel spreadsheet, in this way filling the database more quickly than entering the data one by one.

#### 2.1.2. Manual data entry

Manual entry allows entering specified data step by step with respect to the machine, the measurement point, sensor arrangement, the values of the measurement’s representative peaks, etc.

#### 2.1.3. Editing data from the database

With this function, we can look for the already existing data inside the database and modify them, allowing the correction of possible errors.

#### 2.1.4. Data comparison

Two measurements can be compared in parallel, to see their frequency spectra and the operation conditions at the time the measurement was made.

#### 2.1.5. Vibration simulations

This function makes it possible to see how entering another vibration with a different phase and/or damping coefficient will affect the frequency spectrum of a given signal, as well as to simply see the frequency spectrum of a designed signal.

#### 2.1.6. Vibration analysis

This is the software’s main function, where we can access different kinds of vibration analysis that can be carried out with discrete data, as is the case of these data.

The machines that can be analyzed with this software are as follows: DC motors, AC motors, rotodynamic pumps, hydraulic generators, steam generators, and SAG mills.

## 3. Implementable tools

This software’s basic tools allow capturing data from an Excel spreadsheet, store the data manually in the database, edit the data, compare fast Fourier transform (FFT) graphics, and simulate vibrations, looking at how they affect the data previously stored in the database. All those tools are part of the main features of the analyzer.

The fact that this software works with data entered in a discrete way limits the kind of vibration analysis tools that can be adapted to MATLAB. The tools that could be adapted to MATLAB are the following:

### 3.1. Frequency analysis

With this analysis, we can see the frequency spectrum of a vibration signal stored in the database, by varying the sampling frequency, and we can also see the spectrum in the form of a bar graph with a frequency error of 10^{−3}, which allows a very good resolution and shows the peaks clearly. This technique uses the Fast Fourier Transform (FFT) [9, 13].

The “frequency analysis” screen has a signal finder, a sector where the values of operational conditions are printed once the “Load” button is pressed, and a sector where the kind of graph is chosen and the sampling frequency in the case of choosing an FFT graph is determined.

### 3.2. Order spectral analysis

To carry out this kind of analysis, we must take a reference value that will be 1X, and, from this reference, the other frequencies will be expressed as multiples of it, where this value is usually the machine speed [13].

To do this, we will take a reference value in (KCPM) by which every frequency of the spectrum to be analyzed will be divided.

This screen is very similar to that of the “frequency analysis,” but instead of entering the sampling frequency, we can choose a reference frequency to generate the orders, and those frequencies can be the speed or the net frequency stored for that datum in the database, or any other that can be written and selected.

### 3.3. Histogram analysis

With this function, we can see the evolution over time of a given frequency value in a specific machine, at a specific measurement point, and with a specific sensor arrangement.

Because of this, it is necessary to determine which are the machine, the point, and the arrangement from which we want to extract a given frequency to see its evolution in time. Hence, on this screen, there is a sector for determining each of those parameters, and another sector for determining the central frequency in (KCPM) that we are searching, along with a tolerance value in this same unit allowing a search range around the central frequency. There is also another sector for determining whether we want to look for frequencies from all the existing measurements in the database, or if we only want to graph the last “X” data from the database, with respect to date and time from the last measurement to the first stored measurement.

On this screen, we can search for data stored in the database and determine the RMS value of the vibration rate and the crest factor (CF), a value allowing to see the influence of the complete vibration signal over the signal’s highest peak [14].

### 3.4. Time-frequency transform

Through this analysis, we can see the evolution in time of the complete vibration signal [13], and it is similar to the histogram analysis, but considering all the frequencies of the signals.

In order to do that we arrange data in the same way as on the “histogram analysis” screen, only varying the way the chart is created, since we must capture all the frequency-width pairs of all the data or of the last “X” data, which can be selected at will, and graph them next to one another to form a three-dimensional (3D) surface.

For this analysis, we considered two kinds of charts, a two-dimensional (2D) one that permits a simpler analysis of vibration evolution, and a 3D one that allows the signal peaks to be seen, but making the determination of the coordinates of the points more complex. The 2D chart is generated after pressing the “CONTOUR GRAPH” button and the 3D chart by pressing the “3D TFT CHART.”

## 4. Software operation

In order to see the operation of this analyzer based on real measurements, we invented a series of measurements to test the performance of the analysis tools in order to see the evolution in time of the measurements.

The data exported from Excel have a structure that facilitates their storage in the software’s database. This structure is shown in **Figure 2**.

From the “Main” screen, we access, pressing the corresponding button, the “Vibration Analysis” screen, as shown in **Figure 3**.

By means of the “Frequency Analysis” tool, we can get an FFT graph of a specific datum, or a representation of this FFT on a bar graph, as shown in **Figures 4** and **5**.

The tool “Spectral Analysis in Orders” allows the generation of a chart in orders taking as base frequency the machine’s recorded speed, the net frequency, or any desired value, and the graph obtained is an FFT chart or a representation of the FFT on a bar graph, as shown in **Figure 6**.

The “Histogram Analysis” tool allows seeing the evolution of a given frequency of the vibration spectrum. Here, we choose the machine, the point and the sensor arrangement, when the measurement was made, selecting the frequency we want to survey, along with a tolerance range in case the exact desired value is not found. **Figure 7** shows this screen, where we are looking for the 12 KCPM with a frequency tolerance of 0.5 KCPM.

The exact frequency obtained and the dates of the measurement are shown above the histogram bars.

With the “RMS and CF value” tool, we can calculate the RMS value and the CF, displaying the signal’s FFT or the signal as a function of time, so we can see the location of those values inside the vibration spectrum, as shown in **Figure 8**.

The “Time-Frequency Transform (TFT)” tool allows getting two kinds of graphs that represent the frequency, width, and time variables of the measured vibration spectra. One of the graphs is a 3D presentation of those variables (see **Figure 9**), and the other is a 2D contour line presentation of the 3D image, allowing a better analysis (see **Figure 10**).

With the tool “Comparison with Rules and Standards,” we can, after calculating the rms value, get a vibration severity evaluation, according to ISO 2372, ISO 2373, and ISO10816 standards. In this function, we select the rule with which we want the data to be compared, selecting the machine’s classification in accordance with the chosen rule, and then pressing the “Compare” button. This gives an evaluation of the vibration severity of the machine, according to the selected standard. This is shown in **Figure 11**.

## 5. Conclusions and future development

A powerful software for vibration analysis was developed, with a very low cost compared with the tens of thousand dollars that a system for acquisition and analysis of mechanical vibrations can effectively cost.

This software, developed in MATLAB, has powerful tools like the creation of FFT graphs or bar graphs allowing to see more clearly the FFT peaks, order charts, histograms of some frequencies in a given time period, calculation of the RMS value and CF of a given frequency spectrum, creation of TFT graphs in 3D and 2D, and comparison of frequency spectra with ISO 2372, ISO 2373, and ISO 10816 standards.

This is a first stage in the development of this kind of “virtual instrument,” since many parts still remain unsolved, like direct data acquisition from the machine, capturing and conditioning vibration signals for further storage in the database of the designed software, and this is an actual challenge to be faced in the short term.

Another interesting point for further development is the creation of an intelligent system (expert system, neural net, artificial intelligence, etc.) able to determine which is the possible failure appearing with vibration as a symptom.

The main file that contains the folders with the programming codes of the computational simulator (virtual instrument) presented in this chapter can be downloaded directly from the following website: http://www.mathworks.com/matlabcentral/fileexchange/56693-virtual-instrument-for-the-analysis-of-vibrations-in-rotary-machines