ENGR6012 Assignment #1: Mechanical Vibrations and Condition Monitoring
ENGR6012 Assignment #1: Mechanical Vibrations and Condition Monitoring
Assignment #1:
Mechanical Vibrations and Condition Monitoring
Mark:
Part A: _____/100
Part B: _____/100
a) Determine the equations of motion for the mass –spring – damper system representing the
human body, as seen in Figure 1, in matrix form. (It is encouraged that you use influence
coefficients) (20 Marks)
b) Determine the transfer function between the force applied on m2 and the movement of the head
m5. (20 Marks)
c) Express the equations of motion, from part a, in state space form (20 Marks)
d) Using MATLAB, and noting the parameters:
• m1 = 1.8 kg, m2 = 6.3kg, m3 = 5.4kg, m4 = 22.5 kg, m5 = 54 kg
• c2 = 10 kNs/m, c3 = 0.5 kNs/m, c4 = 1.50 kNs/m, c5 = 1.1 kNs/m
• k2 = 100000 kN/m, k3 = 50 kN/m, k4 = 75 kN/m, k5 = 10 kN/m
i. Determine the eigenvalues of the system (10 Marks)
ii. Determine the natural frequencies of the system (10 Marks)
• Note: Overall Presentation (20 Marks)
o High quality presentation. Text and explanations accompanying equations and results.
o Reproduction of graphics of high quality
o Appropriate referencing
o No errors in grammar, spelling and syntax
o Code is thoroughly commented
Curtin University
For this assignment, you will perform an analysis of the state of health on a turbofan engine. Your
report will be written in MATLAB, using a live script. It will include the usual sections (introduction,
method / code, discussion, conclusion). As a result, you will submit:
• A live script which should be able to run if the data files are found in the same folder.
• A pdf copy of the live script to a Turnitin link.
Your report will consist of a brief introduction to explain the problem you are attempting to assess,
followed by a well-detailed explanation of how you analysed the data (an explanation of what each
section of your code attempts to do and why you are doing the step), discussion of your results, and
conclusion. Questions are provided here to help you craft your comments/response for your report.
Section 1 below will pertain to your introduction to the problem. You should look up turbofans and
give a brief explanation of how it works and known common faults. Section 2 will pertain to your
initial visualisation and cleaning of your data, and then your analysis of the data using MATLAB apps.
Steps are provided below, some with useful MATLAB commands, to help you in this process. In this
section, you are expected to use 3 apps to analyse the data, one of which is K-nearest neighbour. You
are to include the code associated with the app in your live script, which is generated and available to
you by MATLAB after you have done your analysis. Section 3 will pertain to your interpretation /
discussion of your results. Section 4 will be your conclusion. Appendices will contain any references
that is used to construct your report. A marking criteria is found at the end of this handout to explain
how the report and script will be marked.
To help you with the analysis (Section 2), a step by step process is provided:
1. The data used is the sensor readings taken off the equipment. Maintenance was done after
125 flights, regardless of whether the equipment seemed to need it or not, so we only have
the first 125 flights of each engine. There are 100 engines done in the maintenance. These
100 engines are found in files labelled “trainFD001_engine_#.txt”, which are files set up to be
read into tables in MATLAB. The headings for each column in the table is provided in the file.
2. Section 2: VISUALISE AND CLEAN YOUR DATA
a. READ YOUR DATA: Using readtable, read in the data for the first engine into a table
(readtable). Use the names given in Table 1 as the names of the columns in the table.
(These have already been provided to you in the file)
b. REMOVE USELESS DATA: Using subplot, create a 3 by 7 matrix of plots. Plot a time
plot for each of the 21 sensors using from time interval 5 to 125. This should be 120
data points. Looking at the data, remove those sensors that do not provide useful
information. You should have 14 sensors left. Explain why you removed some sensors
and not others.
Note: If I read my data into a table using readtable, and then in a for loop (using the
variable i) want:
• to plot the data, then to access the time in the data for rows 5 to the end
would be: data.Time(5:end) . Note here a few things:
o data.Time means that I am calling a specific column in the table. In
this case, the column is called Time
o Once I call the column, I give it the row numbers I want in parenthesis
()
o 5:end means that the rows called go from row 5 to the last row.
• to access all columns starting in the 3rd column: data{5:end,i+2} . Note here
a few things:
o { } denotes that it is a table indices if I don't know the names of the
columns
Curtin University
Using this, you should be able to construct 3 lines inside a for loop to:
c. SMOOTH YOUR DATA / REMOVE NOISE: Smooth your signal by removing noise from
your data using a method such as a trailing moving average (eg movmean with 4
elements backward and 0 elements forward). After smoothing your data, plot all
signals. Explain the method that was used to do the moving average.
d. APPLY TO ALL YOUR DATA: Using datastore, read in all the data from all 100 engines.
Store the data in a “tall array”. Be sure to treat all missing data as NA. Then smooth
out the data for each of the 100 engines to remove the noise. Why would someone
need to store data into a tall array? How does this differ than a normal array?
e. STANDARDISE DATA: Standardise your data with a mean of 0 and a standard
deviation of 1. You may want to look into functions (mean, std, repmat)
f. REDUCING DIMENSIONS OF DATA: Using PCA, choose the first 2 principal
components to describe the data. What percentage of the variance is explained by
using the first principal component? What percentage of the variance is explained by
using the first 2 principal components?
i. Plot your data using the 2 principal components. Plot the flights in blue with
the last 20 flights for each engine in red. What does this tell you about the
engine data?
ii. To see the trend of the engines over time, create a new plot of only the first
data points for each engine using the PCA in blue, and the last data point for
each engine. What can you say about the data?
iii. Going back to the plot provided in part f.i, plot the data obtained from engine
39 in green on the graph. Describe what has happened to engine 39.
g. LOOKING AT DATA USING THRESHOLDS: Let us interpret the data using thresholds.
On your plot of 2nd PCA component vs 1st PCA component, create an axis from -10 to
15 on the 1st PCA axis and -4 to 8 on the 2nd PCA component axis. Using patch, create
shaded areas that show the areas of “normal condition” in green, “warning” in yellow,
and “alarm” in red to show which regions each point lies.
d. Fill in the circle on the plot so that it shows clearly which category each point lies in.
For example, red can represent urgent, yellow for short, green for long.
e. Using the Classification Learner App, found under the App tab on top of the MATLAB
environment, import the sensor data with TTF. You will be using the 14 sensor data
as predictors and the TTF as the response. Do not import the engine number and the
time. Set the validation method to “Holdout Validation” and hold out 25% of the data.
This means you will be training on 75% of your data and testing on 25% of your data.
f. Using a KNN (K-nearest neighbour) with the number of neighbours as 5 to classify
your data. Research KNN and explain what the method does and what it means to
have a setting of 5 neighbours.
g. Select the confusion matrix to evaluate the results. Explain what is a confusion matrix
and the information found in the confusion matrix for this particular problem.
h. Choose 2 other methods (found in apps for classification learning, machine learning,
deep learning, math statistics and optimisation, or signal processing) to analyse your
data. Evaluate the result of your method using a confusion matrix and compare the
results with the KNN. Can you find a method that produces better results than the
KNN with 5 neighbours? Research the 3 methods that you have chosen (KNN and the
2 others) and explain the methods.
4. Section 3: DISCUSSION
a. Explain how you removed useless data and removed noise from the data. Why was
this necessary? Why did you need to standardise your data? With the growing
amount of data that we are able to obtain from machines, there is a need to consider
the cases of Big Data. How does treating your data as “Big Data” compare to not
treating your data as “Big Data”? How does it affect the way your program is run?
Why did you need to reduce your dimensions of your data? What are the advantages
and disadvantages of the reduction? In the case of your data set, do you find that it
was justified to reduce the dimensions using PCA?
b. Discuss the results of your analysis of the data with your 3 methods. Compare and
contrast the results. Which method provided the best results? Why? Use the
Curtin University
Some MATLAB functions you may need for this assessment (This is not an exhaustive list. You may
want to refer to the MATLAB help for assistance):
• readtable
• figure
• subplot
• plot
• scatter
• gscatter
• movmean
• datastore
• preview
• tall
• gather
• mean
• std
• repmat
• pca
• patch
Curtin University
Marking Criteria: Your submission should be in report form as follows (out of 100 marks):
• A suitable section to your live script showing title, task, author, student id, and date.
• Section 1: Introduction (20%)
o Description of a turbofan (5%)
o Brief explanation of how turbofans operate (5%)
o Description of common known faults in turbofans. (10%)
• Section 2: Method (30%) (Note: for full marks, sections must be thoroughly commented)
o Visualisation of data (5%)
▪ Removing useless data correctly
▪ Noise removed from data
▪ Data was standardised
o Cleaning data (5%)
▪ PCA was applied
▪ Data is shown using 2 principal components
o Categorising Data (5%)
▪ Graph using thresholds in data shown
▪ Data placed into 1 of 3 categories correctly (urgent, short, long)
o Method 1: KNN + accuracy + confusion matrix (5%)
o Method 2: method + accuracy + confusion matrix (5%)
o Method 3: method + accuracy + confusion matrix (5%)
• Section 3: Discussion (30%)
o Explanation of visualising and cleaning data (15%)
o Explanation of analysing data (15%)
• Section 4: Conclusion (5%)
• Overall Presentation (10%)
o High quality presentation
o Reproduction of graphics of high quality
o Appropriate referencing
o No errors in grammar, spelling and syntax
o Code is thoroughly commented
• Appendix: Completion of MATLAB Onramp (5%)