|
@@ -0,0 +1,100 @@
|
|
|
+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');
|