Results

Given below is the

graph for the FFT. These results that were obtained for the creation of the FFT

on Excel for Helical Gears operating at 1000, 3000 and 5000rpm respectively:

Discussion

and Conclusions

From FFT

spectrum of healthy gear and gear with Breakage fault, it is observed that the

effect of gear tooth breakage appears in frequency domain vibration signal as

Sidebands of fundamental frequency. Also from Table 1.0, it can be seen that

the amplitudes of harmonics in case of gearbox with breakage fault are more

than the amplitude of harmonics of healthy gearbox. The presence of tooth

breakage fault in any gearbox gives rise to peaks and generates sidebands. From

FFT technique it can be predicted that the gear box has some fault but the severity

cannot be determined.

Matlab

Exercise simulation of a gear pair

Introduction

This exercise performs a kinematic simulation

of a gear pair using MATLAB. The geometry of a gear is read from an stl file

which is available on D2L (‘sprocket.stl’). Use the same geometry for both the

gears (i.e. the number of teeth are equal). Two of these gears are required to

be assembled as given in this figure.

2. Create a new m file by pressing the new button

in MATLAB home tab and selecting script. Save this file as Gear simulation. by

selecting save in the editor tab of MATLAB.

3. Copy paste the following code to your m file.

This code delivers the file specified under filename, and makes a vertices list

V and a faces list F.

The stl

file read procedure uses the commands introduced in the Matlab csv file read

exercise (found on

D2L).

For the purpose of this exercise it is sufficient to use the code as is, and proceed

with the rest of

the

steps.

4. Run

the m file using the run command under the editor tab. This will load the set

of vertices V and

faces F to the workspace.

Use the

patch knowledge to create a patch for the first gear. For this in the knowledge

window type the following commands. The patch corresponding to the gear is

stored in the variable named p handle. the light knowledge adds lighting to the

figure. The daspect (1 1 1) command sets the axis to have the same series.

The view (3) command gives an isometric view.

>>

p_handle= patch(‘faces’, F, ‘vertices’ ,V, ‘facec’, ‘b’,’EdgeColor’,’none’);

>>

light

>>

daspect(1 1 1)

>> view(3)

Define

the transformation matrix. You should have the rotsym() function stored in the

current

MATLAB

directory to call this function.

>>T_wg2=rotsym(‘z’,

360/40/180*pi) 3.95 0 0′; 0 0 0 1;

To

transform all the vertices together, you can create a matrix which has all the

vertices in its columns,

with an

extra row in the bottom which are all ones. This will create a matrix with its

columns having the

homogenous

coordinates of each vertice of the gear, expressed in G2 frame.

P_g2m2=V’;ones(1,size(V,1));

The

size(V,1) function is used to get the number of columns of matrix V. Apply the

transformation to get

the

transformed set of homogenous coordinates

P_wm2=T_wg2*P_g2m2;

Now use

these transformed points to update the patch corresponding to gear 2. Since the

patch

Knowledge

expects the set of vertices to be a matrix with rows having the 3 coordinates

of each vertices, you can define a new variable to store the vertices in the

required format. Call the set () command to update the patch corresponding to

gear 2.

Vnew=P_wm2(1:3,:)’;

set(p_handle2,’vertices’

, Vnew)

Now the two gears should be assembled correctly

in the figure window.

8.

Simulating the two gears is performed in three steps

a)

performing a numerical integration of the given acceleration values. (with the

initial conditions for

position

and velocity set to the given values)

b)

performing transformations of the vertices V using transformation matrices.

c)

updating the patches corresponding to the two gears.

The

simulation starts from time 0s to 10s with increments of 0.01s. These three

tasks are sequentially

performed

repeatedly in each iteration of the loop. The following for loop implements

these tasks. Read

the comments to clarify each step.

Final

code

% house keeping

clear

*

clc

close all

%% File I/O – STLs

filename=’sprocket.stl’ %the name of the file

fid=fopen(filename, ‘r’); % this command opens a file. fid

points to the file

% the first in put is filename,

% the second input specifies the

file permision (read)

% type “help fopen for a

complete desciption of the command”

if fid == -1 % fid is -1 if we cannot open

error(‘File could not be opened, check name or path.’)

% this command stops the program

and prints an error message

end

facet_index=0; % this counts the faces

vertex_index=0; % this counts the vertices

facev_count=0; % this counts the vertices in a

face

while feof(fid) == 0

tline = fgetl(fid); %gets the next line in the text

file

nospace = sscanf(tline, ‘%s’); %scans the whole line

if strcmp(nospace(1:5),’facet’) %identifies the start of new face

facet_index=facet_index+1;

end

if strcmp(nospace(1:5),’endfa’) %identifies the end of current

face

facev_count=0;

end

if strcmp(nospace(1:5),’verte’) %identifies the each vertex

vertex_index =vertex_index+1;

facev_count=facev_count+1;

V(vertex_index,:) = sscanf(tline,’%*s %f %f %f’); %sscanf reads the formatted string

F(facet_index,facev_count) =

vertex_index; % fill the face list

end

end

fclose(fid); % closes the file

p_handle= patch(‘faces’, F, ‘vertices’ ,V, ‘facec’, ‘b’,’EdgeColor’,’none’);

light % add a default light

daspect(1 1 1) % Setting the aspect ratio

view(3) % Isometric view

hold on;

p_handle2= patch(‘faces’, F, ‘vertices’ ,V, ‘facec’, ‘r’,’EdgeColor’,’none’);

T_wg2=rotsym(‘z’,deg2rad(360/40)) 3.95 0 0′; 0 0 0 1;

P_g2m2=V’;ones(1,size(V,1));

P_wm2=T_wg2*P_g2m2;

set(p_handle2,’vertices’ ,P_wm2(1:3,:)’)

dt=0.01; %sampling time

alpha=0; %input acceleration

omega=1; %initial condition

theta1=0; %initial condition

for t=1:dt:10

%a) numerical integration

omega=omega+alpha*dt; %velocity integrator

theta1=theta1+omega*dt; %position integrator

theta2=deg2rad(360/40)-theta1; %forward kinematics

%b) vertice transformation

T_wg=rotsym(‘z’,theta1) 0 0 0′;

0 0 0 1;

P_gm=V’;ones(1,size(V,1));

P_wm=T_wg*P_gm; %Transform gear 1

*

T_wg2=rotsym(‘z’,theta2) 3.95 0 0′;

0 0 0 1;

P_g2m2=V’;ones(1,size(V,1));

P_wm2=T_wg2*P_g2m2; %Transform gear 2

%c) visulization and delay for

animation

set(p_handle,’vertices’ ,P_wm(1:3,:)’)

set(p_handle2,’vertices’ ,P_wm2(1:3,:)’)

drawnow %force figure update

pause(0.01) %slow down loop to animate

end