123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- clc;clear all;close all;
- % Solution analytique frequence et mode de vibration d'une poutre
- % H.Oudin
- %----------------------------------------------------------
- % Caracteristiques de la poutre
- EI= 1 ; roS=1; L= 1;
- %----------------------------------------------------------
- k = 0;
- taille = get(0,'ScreenSize');
- while k < 6
- k = menu('Choix des conditions aux limites',...
- 'libre -libre','bi-appuyee','bi-encastree',...
- 'appuyee - libre','encastree - appuyee', 'sortir') ;
- tr = [1,2,3,4,5,6];
- nmod = 3;
- switch tr(k)
- case 1, disp('poutre libre - libre');
- disp('c''est l''exemple traite dans le cours');
- disp('il existe deux modes rigide une translation une rotation');
- figure('Name','3 premiers modes de vibration d''une poutre libre - libre',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- subplot(nmod+1,1,1),hold on, fplot('[cos(x) , 1/cosh(x)]',[0,5*pi,-1,1],'b'),...
- title('representation de l''equation implicite cos(x)cosh(x)-1 = 0'), grid
- for imod = 1:nmod
- a= imod*pi;
- b=(imod+1)*pi;
- lx = fzero(@(x) cos(x)*cosh(x)-1,[a b])
- anal=(lx^2)*sqrt(EI/roS/(L^4));
- aa = -(cos(lx)-cosh(lx))/(sin(lx)-sinh(lx));
- mode = @(x) cos(lx*x/L)+cosh(lx*x/L)+aa*(sin(lx*x/L)+sinh(lx*x/L));
- %mode2= @(x) (cos(lx*x/L)+cosh(lx*x/L)+aa*(sin(lx*x/L)+sinh(lx*x/L))).*...
- %(cos(lx*x/L)+cosh(lx*x/L)+aa*(sin(lx*x/L)+sinh(lx*x/L)));
- %m = roS*quad(mode2,0,L); % Les modes sont M norme m=1
- subplot(nmod+1,1,imod+1), fplot(mode,[0 L],'r'),...
- title(['poutre libre - libre ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 2, disp('poutre bi-appuyee les solutions sont lx = i*pi');
- figure('Name','3 premiers modes de vibration d''une poutre bi-appuyee',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- for imod = 1:nmod
- lx = imod*pi
- anal=(lx^2)*sqrt(EI/roS/(L^4));
- subplot(nmod,1,imod), fplot(@(x) sin(imod*pi*x/L),[0 L],'r'),...
- title(['poutre bi-appuyee ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 3, disp('poutre bi-encastree');
- figure('Name','3 premiers modes de vibration d''une poutre bi-encastree',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- subplot(nmod+1,1,1),hold on, fplot('[cos(x) , 1/cosh(x)]',[0,5*pi,-1,1],'b'),...
- title('representation de l''equation implicite cos(x)cosh(x)-1 = 0'), grid
- for imod = 1:nmod
- a= imod*pi;
- b=(imod+1)*pi;
- lx = fzero(@(x) cos(x)*cosh(x)-1,[a b])
- anal=(lx^2)*sqrt(EI/roS/(L^4));
- aa = -(cos(lx)-cosh(lx))/(sin(lx)-sinh(lx));
- mode = @(x) cos(lx*x/L)-cosh(lx*x/L)+aa*(sin(lx*x/L)-sinh(lx*x/L));
- subplot(nmod+1,1,imod+1), fplot(mode,[0 L],'r'),...
- title(['poutre bi - encastree ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 4, disp('poutre appuyee - libre');
- disp('il existe un mode rigide de rotation');
- figure('Name','3 premiers modes de vibration d''une poutre appuyee - libre',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- subplot(nmod+1,1,1),hold on, fplot('[tan(x) , tanh(x)]',[0,4*pi,-1.5,1.5],'b'),...
- title('representation de l''equation implicite tan(x) = th(x)'), grid
- for imod = 1:nmod
- a= imod*pi/2+.1;
- b=(2*imod+1)*pi/2-.1;
- lx = fzero(@(x) tan(x)-tanh(x),[a b])
- anal=(lx^2)*sqrt(EI/roS/(L^4));
- aa = sin(lx)/sinh(lx);
- mode = @(x) sin(lx*x/L)+aa*sinh(lx*x/L);
- subplot(nmod+1,1,imod+1), fplot(mode,[0 L],'r'),...
- title(['poutre appuyee - libre ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- case 5, disp('poutre encastree - appuyee');
- figure('Name','3 premiers modes de vibration d''une poutre encastree - appuyee',...
- 'Position',[taille(3)/2.01 taille(4)/2.6 taille(3)/2 taille(4)/2])
- subplot(nmod+1,1,1),hold on, fplot('[tan(x) , tanh(x)]',[0,4*pi,-1.5,1.5],'b'),...
- title('representation de l''equation implicite tan(x) = th(x)'), grid
- for imod = 1:nmod
- a= imod*pi/2+.1;
- b=(2*imod+1)*pi/2-.1;
- lx = fzero(@(x) tan(x)-tanh(x),[a b])
- anal=(lx^2)*sqrt(EI/roS/(L^4));
- aa = (cos(lx)+cosh(lx))/(sin(lx)+sinh(lx));
- mode = @(x) cos(lx*x/L)-cosh(lx*x/L)-aa*(sin(lx*x/L)-sinh(lx*x/L));
- subplot(nmod+1,1,imod+1), fplot(mode,[0 L],'r'),...
- title(['poutre encastree - appuyee ',num2str(imod),'ieme mode de pulsation ',num2str(anal),...
- ' Hz ' ]), grid
- end
- end
- end
- disp('les autres cas seront simples a programmer en utilisant le cours');
|