1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
%variables: E=module de young, L=longueur de la traverse, h=hauteur du poteau
%A1,A2=section des poteaux et de la traverse, I1,I2=inertie des poteaux et de la traverse
%P=force horizontale appliquée au noeud 2
%Aprés avoir compilé ce programme en expression numérique, on pourra la ligne cidessous:
A1=10.32; A2=10.32; I1=171.01; I2=171.01; L=800; h=400; E=21*10^3; P=1000;
%par:
%syms E L h A1 A2 I1 I2 P;
%Ceci afin de voir que l'expression littérale du moment au pied du premier poteau encastré (avec A1=0 et A2=0, efforts normaux négligés dans les barres),
%ne correspond pas au formulaire.
%ATTENTION, il faut activer la ligne 'Efforts=simplify(Efforts)' à la fin du programme.
%Matrice élémentaire du premier poteau (dans le repère local).
Kf1 = E*I1/h^3*[12 6*h -12 6*h ; 6*h 4*h^2 -6*h 2*h^2 ; -12 -6*h 12 -6*h ; 6*h 2*h^2 -6*h 4*h^2 ]; %partie flexionnelle
Ka1=E*A1/h*[1 -1 ; -1 1 ]; %partie axiale
Kp1([2 3 5 6 ],[2 3 5 6 ])=Kf1; %assemblage de la partie axiale et flexionnelle
Kp1([1 4 ],[1 4 ])=Ka1;
%r1=Matrice de rotation du premier poteau.
r1=[0 1 0 ; -1 0 0 ; 0 0 1];
R1=kron(eye(2),r1);
%Kp1=Matrice élémentaire du premier poteau (dans le repère global).
Kp1=(R1)'*Kp1*R1;
%Kt=Matrice élémentaire de la traverse.
Kf2 = E*I2/L^3*[12 6*L -12 6*L ; 6*L 4*L^2 -6*L 2*L^2 ; -12 -6*L 12 -6*L ; 6*L 2*L^2 -6*L 4*L^2 ]; %partie flexionnelle
Ka2=E*A2/L*[1 -1 ; -1 1 ]; %partie axiale
Kt([2 3 5 6 ],[2 3 5 6 ])=Kf2; %assemblage de la partie axiale et flexionnelle
Kt([1 4 ],[1 4 ])=Ka2;
%Matrice élémentaire du deuxième poteau (dans le repère local).
Kf3 = E*I1/h^3*[12 6*h -12 6*h ; 6*h 4*h^2 -6*h 2*h^2 ; -12 -6*h 12 -6*h ; 6*h 2*h^2 -6*h 4*h^2 ]; %partie flexionnelle
Ka3=E*A1/h*[1 -1 ; -1 1 ]; %partie axiale
Kp3([2 3 5 6 ],[2 3 5 6 ])=Kf3; %assemblage de la partie axiale et flexionnelle
Kp3([1 4 ],[1 4 ])=Ka3;
%Matrice de rotation du deuxième poteau.
r3=[0 -1 0 ; 1 0 0 ; 0 0 1];
R3=kron(eye(2),r3);
%Kp3=Matrice élémentaire du deuxième poteau (dans le repère global).
Kp3=(R3)'*Kp3*R3;
%Assemblage de la matrice globale (repère global).
K=zeros(12);
Kr(1:6, 1:6)= K(1:6, 1:6)+ Kp1;
Kr(4:9, 4:9)= K(4:9, 4:9)+ Kt;
km= Kp1(4:6,4:6)+Kt(1:3,1:3);
Kr(4:6,4:6)=km;
Kr(7:12, 7:12)= K(7:12, 7:12)+ Kp3;
km2= Kt(4:6,4:6)+Kp3(1:3,1:3);
Kr(7:9,7:9)=km2;
%Kr(à ce stade)= matrice de rigidité gobale de la structure
%Ci-dessous: Elimination des déplacements impossibles aux appuis encastrés,
%(c'est à dire les trois déplacements au noeud 1 et 4).
%on élimine donc les lignes et les colonnes 1,2,3,10,11,12.
i=[1, 2, 3, 10, 11, 12 ];
Kr(:,i)=[];
Kf=Kr;
%Kf = partie de la matrice de rigidité qui exprime les efforts extérieurs aux 4 noeuds,
%en fonction des déplacements des noeuds 2 et 3.
%(ceci afin de faire le calcul des efforts aprés avoir fait celui des déplacements)
Kr(i,:)=[];
%Kr = partie de la matrice 'carrée' de rigidité,
%qui nous permet de calculer les déplacements aux noeuds 2 et 3
%F=Matrice colonne des forces appliquées aux noeuds 2 et 3 (efforts nodeaux)
F=[P;0;0;0;0;0]
%U= déplacements des noeuds 2 et 3 (on inverse Kr)
U= Kr\F;
%U=simplify(U);
%Efforts= efforts aux appuis 1 et 4
Efforts=Kf*U;
%Efforts=simplify(Efforts)
%(Dans efforts, On retrouve bien les efforts extérieurs appliqués aux noeuds 2 et 3 ).
%Les résultats obtenus ici prennent en compte les efforts normaux (présence des sections A1 et A2)
%En éliminant A1 et A2 dans l'expressiondu du moment à l'encastrement du premier poteau (à la ligne 3 de 'Efforts'),
%On doit retrouver la même expression que dans les formulaires. (Les efforts normaux sont en effet trés négligeable).
%Hors, le moment du formulaire est:
Mformulaire=P*h*(3*I2*h+I1*L)/((12*I2*h)+(2*I1*L))
%Et le moment calculé par le programme est:
%Mp=(6*h*I1^3*I2*L^2+9*h^2*I2^2*I1^2*L)*h*P/(2*I1*I2*h*(3*I1^2*L^2+6*I1*L*I2*h))
%Soit, (en le simplifiant)
Mprogramme=P*h*(2*L*I1+3*I2*h)/(2*I1*L+4*I2*h)
%En appliquant les valeurs numérique au début du programme, on trouve une valeur de Mp abérrante par rapport
%à celle calculé par 'RDM6' et par ce programme (ligne 3 de 'Efforts').
%Les résultats de RDM6 sont:
RDM6=[-500.2; -187.5;125080.3 ; 1000;0;0;0;0;0;-499.8;187.5;124931.3]
%Rappel des résultats du programme:
Efforts |
Partager