poutre_stress.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. function [Ne,Te,Mfe] = poutre_stress(iel,Ue)
  2. % Calcul des contraintes dans un element poutre d'une structure portique
  3. %
  4. % appel poutre_stress(iel,Ue)
  5. % ou feval('poutre_stress',iel,Ue)
  6. % en entree iel : numero de l'element
  7. % Ue : vecteur des depalements nodaux de l'element
  8. %
  9. % H.Oudin
  10. global ndim
  11. global Coord Connec Nprop Prop
  12. X = Coord(Connec(iel,:),:);
  13. dX = X(2,:) - X(1,:);
  14. if ndim == 1
  15. EI=Prop(Nprop(iel),1);
  16. L = abs(dX); Ne = 0;
  17. Te = -(EI/L^3)*(12*Ue(1)+6*L*Ue(2)-12*Ue(3)+6*L*Ue(4));
  18. Mfe= (EI/L^2)*[-6*Ue(1)-4*L*Ue(2)+6*Ue(3)-2*L*Ue(4) ; 6*Ue(1)+2*L*Ue(2)-6*Ue(3)+4*L*Ue(4)];
  19. fprintf('Dans l''element %3i\n',iel)
  20. fprintf('Ne = %8.3e Te = %8.3e Mfe au noeud i %8.3e en noeud j %8.3e \n',Ne,Te,Mfe(1),Mfe(2))
  21. elseif ndim == 2
  22. ES=Prop(Nprop(iel),1); EI=Prop(Nprop(iel),2);
  23. L = sqrt(dX(1)^2 + dX(2)^2);
  24. c = dX(1)/L; s = dX(2)/L;
  25. P = [ c s 0 0 0 0
  26. -s c 0 0 0 0
  27. 0 0 1 0 0 0
  28. 0 0 0 c s 0
  29. 0 0 0 -s c 0
  30. 0 0 0 0 0 1
  31. ];
  32. Ue = P*Ue;
  33. Ne = (ES/L)*(Ue(4)-Ue(1));
  34. Te = -(EI/L^3)*(12*Ue(2)+6*L*Ue(3)-12*Ue(5)+6*L*Ue(6));
  35. Mfe= (EI/L^2)*[-6*Ue(2)-4*L*Ue(3)+6*Ue(5)-2*L*Ue(6) ; 6*Ue(2)+2*L*Ue(3)-6*Ue(5)+4*L*Ue(6)];
  36. fprintf('Dans l''element %3i\n',iel)
  37. fprintf('Ne = %8.3e Te = %8.3e Mfe au noeud i %8.3e en noeud j %8.3e \n',Ne,Te,Mfe(1),Mfe(2))
  38. elseif ndim == 3
  39. disp('================================================ ');
  40. disp(' element non programme ');
  41. disp('================================================ ');
  42. end
  43. return