1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- clc;clear all;close all;
- % Solution analytique frequence et mode de vibration d'une barre
- % Barre bi-encastree ;libre -libre ; encastree - ressort
- % H.Oudin
- %----------------------------------------------------------
- % Caracteristiques de la barre
- ES= 1 ; roS=1; L= 1;
- %----------------------------------------------------------
- k = 0;
- taille = get(0,'ScreenSize');
- while k < 5
- k = menu('Choix des conditions aux limites',...
- 'bi-encastree','encastree - libre','libre -libre',...
- 'encastree - ressort', 'sortir') ;
- tr = [1,2,3,4,5];
- nmod = 3;
- switch tr(k)
- case 1, disp('Barre bi-encastree');
- figure('Name','solution analytique : 3 premiers modes de vibration d''une barre',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- for imod = 1:nmod
- anal=imod*pi*sqrt(ES/roS/L/L);
- subplot(nmod,1,imod), fplot(@(x) sin(imod*pi*x/L),[0 L],'r'),...
- title(['barre bi-encastree : ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 2, disp('encastree -libre');
- figure('Name','solution analytique : 3 premiers modes de vibration d''une barre',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- for imod = 1:nmod
- aa=(2*imod-1)*pi/2;
- anal=aa*sqrt(ES/roS/L/L);
- subplot(nmod,1,imod), fplot(@(x) sin(aa*x/L),[0 L],'r'),...
- title(['barre encastree -libre : ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 3, disp('libre - libre');
- figure('Name','solution analytique : 3 premiers modes de vibration d''une barre',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- for imod = 1:nmod
- anal=imod*pi*sqrt(ES/roS/L/L);
- subplot(nmod,1,imod), fplot(@(x) cos(imod*pi*x/L),[0 L],'r'),...
- title(['barre libre -libre : ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 4, disp('encastree - ressort');
- alpa = input('donner la valeur du rapport ES/kl ? [1/2]: ');
- if isempty(alpa) alpa=0.5; end
- figure('Name',['equation implicite tan(x)+alpa*x = 0 pour alpa =',...
- num2str(alpa)],'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- subplot(nmod+1,1,1),hold on, fplot(@(x) tan(x),[0,3*pi,-6,6],'r'),...
- fplot(@(x) -alpa*x,[0,3*pi,-6,6],'g'),
- title('representation de l''equation implicite'), grid
- %figure('Name','solution analytique : 3 premiers modes de vibration d''une barre',...
- % 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- for imod = 1:nmod
- a= (2*imod-1)*pi/2+0.01;
- b=(2*imod+1)*pi/2-0.01;
- lx = fzero(@(x) tan(x)+alpa*x,[a b]);
- anal=lx*sqrt(ES/roS/L/L);
- subplot(nmod+1,1,imod+1), fplot(@(x) sin(lx*x/L),[0 L],'r'),...
- title(['barre encastree - ressort : ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- end
- end
|