vibra_portique_exo17.m 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. close all ; clc;
  2. % Script de calcul des modes de vibration du portique de l'exo 17
  3. % portique 2D avec 2*ne elements
  4. %
  5. % fonction utilisee
  6. % plotstr : trace du maillage avec numero noeuds et elements
  7. % vibrations : resolution du probleme
  8. % plotmodes : trace des modes de vibrations d'un portique 2D
  9. %
  10. % H.Oudin
  11. global nddln nnod nddlt nelt nnode ndim
  12. global Coord Connec Nprop Prop Ncl Vcl F
  13. disp(' ');
  14. disp('modes de vibration du portique de l''exercice de cours 17');
  15. disp('==================');
  16. disp('les poutres sont maillees en ne elements');
  17. ne = input('donner le nombre d''elements ne ? [2]: ');
  18. if isempty(ne) ne=2; end
  19. % definition du maillage
  20. h = 1; nelt=2*ne;
  21. Coord=[];
  22. for j=0:ne Coord=[Coord;[0 j*h/ne]]; end
  23. for j=1:ne Coord=[Coord;[j*h/ne h ]]; end
  24. [nnod,ndim]=size(Coord);
  25. nddln=3; nddlt=nddln*nnod;
  26. Connec=[]; nnode = 2;
  27. for j=1:nelt Connec=[Connec;[j j+1]]; end
  28. % tableau des proprietees ES EI rhoS
  29. Nprop = ones(nelt);
  30. Prop=[ 21000000 210 0.78 ];
  31. % definition des CL en deplacement
  32. CL=[ 1 , 1 , 1 , 1; ... % numero du noeud, type (1 ddl impose ,0 ddl libre)
  33. nnod , 1 , 1 , 1];
  34. Ncl=zeros(1,nddlt);ncld=0;
  35. Vcl=zeros(1,nddlt); % deplacements imposes nuls
  36. for i=1:size(CL,1)
  37. for j=1:nddln
  38. if CL(i,1+j)==1 Ncl(1,(CL(i,1)-1)*nddln+j)=1; end
  39. end
  40. end
  41. F=zeros(nddlt,1); %----- vecteur sollicitation
  42. %plotstr % trace du maillage
  43. nmode = input('combien de frequences faut-il calculer ? [3]: ');
  44. if isempty(nmode) nmode=3; end
  45. [f,U] = feval('vibrations',nmode);
  46. for j= 1: nmode
  47. figure('Name','modes de vibration du portique',...
  48. 'Position',[taille(3)/2.01 taille(4)/2.4 taille(3)/2 taille(4)/2])
  49. plotmodes(U(:,nmode+1-j),j,f(nmode+1-j))
  50. end
  51. return