barre_ke.m 1.4 KB

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