barre_keme.m 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. function [Ke,Me] = barre_keme(iel)
  2. % Calcul de la matrice raideur Ke et de la matrice masse
  3. % pour un element (iel) d'une structure treillis
  4. %
  5. % appel [Ke,Me] = barre_keme(iel)
  6. % ou [Ke,Me] = feval('barre_keme',iel)
  7. % en entree iel : numero de l'element
  8. % en sortie Ke : matrice raideur elementaire (2*ndim,2*ndim)
  9. % Me : matrice masse elementaire (2*ndim,2*ndim)
  10. %
  11. % H.Oudin
  12. global ndim
  13. global Coord Connec Nprop Prop
  14. ES=Prop(Nprop(iel),1);
  15. roS=Prop(Nprop(iel),2);
  16. X = Coord(Connec(iel,:),:); % ----- Coordonnees des 2 noeuds de l'element
  17. dX = X(2,:) - X(1,:); % ----- x2-x1 et y2-y1
  18. if ndim == 1
  19. L = abs(dX);
  20. Ke = (ES/L)*[ 1 -1
  21. -1 1 ];
  22. Me = (roS*L/6)*[2 1
  23. 1 2 ];
  24. elseif ndim == 2
  25. L = sqrt(dX(1)^2 + dX(2)^2);
  26. c = dX(1)/L; s = dX(2)/L; % ----- Cosinus directeurs de l'element
  27. cc = c*c; ss = s*s; cs = c*s;
  28. Ke = (ES/L)*[ cc cs -cc -cs
  29. cs ss -cs -ss
  30. -cc -cs cc cs
  31. -cs -ss cs ss];
  32. M = (roS*L/6)*[2 1
  33. 1 2 ];
  34. P = [ c s 0 0
  35. 0 0 c s ];
  36. Me =P' * M * P;
  37. elseif ndim == 3
  38. disp('================================================ ');
  39. disp(' element non programme ');
  40. disp('================================================ ');
  41. end
  42. return