ResultsGiven below is thegraph for the FFT. These results that were obtained for the creation of the FFTon Excel for Helical Gears operating at 1000, 3000 and 5000rpm respectively: Discussionand Conclusions From FFTspectrum of healthy gear and gear with Breakage fault, it is observed that theeffect of gear tooth breakage appears in frequency domain vibration signal asSidebands of fundamental frequency. Also from Table 1.0, it can be seen thatthe amplitudes of harmonics in case of gearbox with breakage fault are morethan the amplitude of harmonics of healthy gearbox.
The presence of toothbreakage fault in any gearbox gives rise to peaks and generates sidebands. FromFFT technique it can be predicted that the gear box has some fault but the severitycannot be determined.MatlabExercise simulation of a gear pair Introduction This exercise performs a kinematic simulationof a gear pair using MATLAB. The geometry of a gear is read from an stl filewhich is available on D2L (‘sprocket.stl’). Use the same geometry for both thegears (i.e. the number of teeth are equal).
Two of these gears are required tobe assembled as given in this figure.2. Create a new m file by pressing the new buttonin MATLAB home tab and selecting script. Save this file as Gear simulation.
byselecting 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 listV and a faces list F.
The stlfile read procedure uses the commands introduced in the Matlab csv file readexercise (found onD2L).For the purpose of this exercise it is sufficient to use the code as is, and proceedwith the rest ofthesteps.4. Runthe m file using the run command under the editor tab. This will load the setof vertices V andfaces F to the workspace.Use thepatch knowledge to create a patch for the first gear. For this in the knowledgewindow type the following commands.
The patch corresponding to the gear isstored in the variable named p handle. the light knowledge adds lighting to thefigure. 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)Definethe transformation matrix. You should have the rotsym() function stored in thecurrentMATLABdirectory to call this function.>>T_wg2=rotsym(‘z’,360/40/180*pi) 3.95 0 0′; 0 0 0 1;Totransform all the vertices together, you can create a matrix which has all thevertices in its columns,with anextra row in the bottom which are all ones. This will create a matrix with itscolumns having thehomogenouscoordinates of each vertice of the gear, expressed in G2 frame.P_g2m2=V’;ones(1,size(V,1));Thesize(V,1) function is used to get the number of columns of matrix V. Apply thetransformation to getthetransformed set of homogenous coordinatesP_wm2=T_wg2*P_g2m2;Now usethese transformed points to update the patch corresponding to gear 2. Since thepatchKnowledgeexpects the set of vertices to be a matrix with rows having the 3 coordinatesof each vertices, you can define a new variable to store the vertices in therequired format.
Call the set () command to update the patch corresponding togear 2.Vnew=P_wm2(1:3,:)’;set(p_handle2,’vertices’, Vnew)Now the two gears should be assembled correctlyin the figure window.8.Simulating the two gears is performed in three stepsa)performing a numerical integration of the given acceleration values.
(with theinitial conditions forpositionand 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.Thesimulation starts from time 0s to 10s with increments of 0.01s. These threetasks are sequentiallyperformedrepeatedly in each iteration of the loop. The following for loop implementsthese tasks.
Readthe comments to clarify each step.Finalcode% house keepingclear*clcclose all%% File I/O – STLsfilename=’sprocket.stl’ %the name of the filefid=fopen(filename, ‘r’); % this command opens a file. fidpoints to the file% the first in put is filename,% the second input specifies thefile permision (read)% type “help fopen for acomplete desciption of the command”if fid == -1 % fid is -1 if we cannot openerror(‘File could not be opened, check name or path.’)% this command stops the programand prints an error messageendfacet_index=0; % this counts the facesvertex_index=0; % this counts the verticesfacev_count=0; % this counts the vertices in afacewhile feof(fid) == 0tline = fgetl(fid); %gets the next line in the textfilenospace = sscanf(tline, ‘%s’); %scans the whole lineif strcmp(nospace(1:5),’facet’) %identifies the start of new facefacet_index=facet_index+1;endif strcmp(nospace(1:5),’endfa’) %identifies the end of currentfacefacev_count=0;endif strcmp(nospace(1:5),’verte’) %identifies the each vertexvertex_index =vertex_index+1;facev_count=facev_count+1;V(vertex_index,:) = sscanf(tline,’%*s %f %f %f’); %sscanf reads the formatted stringF(facet_index,facev_count) =vertex_index; % fill the face listendendfclose(fid); % closes the filep_handle= patch(‘faces’, F, ‘vertices’ ,V, ‘facec’, ‘b’,’EdgeColor’,’none’);light % add a default lightdaspect(1 1 1) % Setting the aspect ratioview(3) % Isometric viewhold 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 timealpha=0; %input accelerationomega=1; %initial conditiontheta1=0; %initial conditionfor t=1:dt:10%a) numerical integrationomega=omega+alpha*dt; %velocity integratortheta1=theta1+omega*dt; %position integratortheta2=deg2rad(360/40)-theta1; %forward kinematics%b) vertice transformationT_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 foranimationset(p_handle,’vertices’ ,P_wm(1:3,:)’)set(p_handle2,’vertices’ ,P_wm2(1:3,:)’)drawnow %force figure updatepause(0.01) %slow down loop to animateend