12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- close all ; clc;
- % Script de calcul des modes de vibration du portique de l'exo 17
- % portique 2D avec 2*ne elements
- %
- % fonction utilisee
- % plotstr : trace du maillage avec numero noeuds et elements
- % vibrations : resolution du probleme
- % plotmodes : trace des modes de vibrations d'un portique 2D
- %
- % H.Oudin
- global nddln nnod nddlt nelt nnode ndim
- global Coord Connec Nprop Prop Ncl Vcl F
- disp(' ');
- disp('modes de vibration du portique de l''exercice de cours 17');
- disp('==================');
- disp('les poutres sont maillees en ne elements');
- ne = input('donner le nombre d''elements ne ? [2]: ');
- if isempty(ne) ne=2; end
- % definition du maillage
- h = 1; nelt=2*ne;
- Coord=[];
- for j=0:ne Coord=[Coord;[0 j*h/ne]]; end
- for j=1:ne Coord=[Coord;[j*h/ne h ]]; end
- [nnod,ndim]=size(Coord);
- nddln=3; nddlt=nddln*nnod;
- Connec=[]; nnode = 2;
- for j=1:nelt Connec=[Connec;[j j+1]]; end
- % tableau des proprietees ES EI rhoS
- Nprop = ones(nelt);
- Prop=[ 21000000 210 0.78 ];
- % definition des CL en deplacement
- CL=[ 1 , 1 , 1 , 1; ... % numero du noeud, type (1 ddl impose ,0 ddl libre)
- nnod , 1 , 1 , 1];
- Ncl=zeros(1,nddlt);ncld=0;
- Vcl=zeros(1,nddlt); % deplacements imposes nuls
- for i=1:size(CL,1)
- for j=1:nddln
- if CL(i,1+j)==1 Ncl(1,(CL(i,1)-1)*nddln+j)=1; end
- end
- end
- F=zeros(nddlt,1); %----- vecteur sollicitation
- %plotstr % trace du maillage
- nmode = input('combien de frequences faut-il calculer ? [3]: ');
- if isempty(nmode) nmode=3; end
- [f,U] = feval('vibrations',nmode);
- for j= 1: nmode
- figure('Name','modes de vibration du portique',...
- 'Position',[taille(3)/2.01 taille(4)/2.4 taille(3)/2 taille(4)/2])
- plotmodes(U(:,nmode+1-j),j,f(nmode+1-j))
- end
- return
|