Vous êtes sur la page 1sur 5

Barre 2n

clc
clear
disp ('matrice de rigidité d''un élément barre à 2nouds ')
%Element linéaire .......u(x)=ax+b
syms x E S x1 x2 L real
N1=(x-x2)/(x1-x2) % N1=L0(x) premier point
N2=(x-x1)/(x2-x1) % N2=L1(x) deuxieme point
N=[N1 N2]
% l'origine peut etre prise n'importe ou
valx1=input('abscisse du noeud 1: ')
valx2=input('abscisse du noeud 2: ')
N=subs(N,{x1,x2},{valx1,valx2})
B=diff(N,x)
ke=E*S*int(B'*B,x,valx1,valx2)

Jordan

clc
clear
%disp('résolustion du systeme [A]{x}={b] par la méthode de gauss jordan ')
A=[1 1 6;-1 2 9;1 -2 3]
b=[7 2 10]'
input(' donner la matrice A')
input(' donner la matrice b')
disp('matrice augumentée')
Ab=[A,b]
[m,n]=size(Ab);
disp('transformation de gauss-jordan')
for k=1:m
ligne=k ;
Ab(k,:)=Ab(k,:)/Ab(k,k);
for i=1:m
if i~=k
ligne= i ;
Ab(i,:)=Ab(i,:)-Ab(i,k)*Ab(k,:);
end
end
end
Ab
x=Ab(:,n)
tp élément finis
clc
clear
%tp n1 systeme 3 ressort
%donées entrée
k1=100; %valeurs des rigisités n/m
k2=200; %nbr des de noeuds total
k3=k1
p=500;
n_el=3
n_nod=4
nd_nod=1
nd_tot=n_nod*nd_nod
tab_nod=[1 2;2 3;3 4]
tab_dof=[1 2;2 3;3 4]
%matrices de rigidité élémentaires 2*2
Kelem=[1 -1;-1 1]
K1e=k1*Kelem
K2e=k2*Kelem
K3e=k3*Kelem
% matrice de rigidité golabal nd_tot-nd tot
%assemblage manuel 1 : construction d'une tableau de zéroes de dim
%(nd_tot-nd_tot)
KG=zeros (nd_tot)
% remplissage de la matrice du ressort 1 ddl 1et2
K1=KG % initialisatio de K1 par le tableau KG
K1([1 2],[1 2])=K1e
% remplissage de la matrice du ressort 2 ddl 1et2
K2=KG % initialisatio de K3 par le tableau KG
K2([2 3],[2 3])=K2e
% remplissage de la matrice du ressort 1 ddl 1et2
K3=KG % initialisatio de K3 par le tableau KG
K3([3 4],[3 4])=K3e % affectaton de k3e au
%initialisation de K2 et par le tableau kG
%assemblage : somme des 3 matrices
KG=K1+K2+K3
%application des conditions limites aux déplacements
% ddl effectifs (libres) : u2 et u3
dl_fix=[1 4]
cl=[0 0]
dl_lib=[2 3]%setdiff dof's,dl _fix
charge=[0 p]
¨%vecteur des efforts globeaux( nd_tot*1)
FG=zeros (nd_tot,1)
%condtion aux limites u1=0 , u4=0 : ddl effectifs
FG(dl_lib)=charge
UG=zeros (nd_tot,1)
Keff=KG(dl_lib,dl_lib)
Feff=FG(dl_lib)
Ueff=Keff\Feff
Reac=KG(dl_fix,dl_lib)*Ueff

Tpelment
clc
clear
syms k1 k2 k3 k4 real
rig=[k1 k2 k3 k4]
rignum=100*[1 2 3 4]
kelem=[1 -1;-1 1]
tab_nod=[4 2;2 3;3 5;2 1] %table des neuds des éléménts
nel=size(tab_nod,1) % nbr d'élément du modele
n_nod=5 %nbr des noeuds total
%stiffnes :
k=sym(zeros(n_nod)) % matrice de rigidité gmobale déclaré symbolique
élémentaire a cause de rigi éléménrtaire
for e=1:nel;
disp('element')
disp(e)
el_dof=tab_nod(e,:)
ke=rig(e)*kelem
k(el_dof,el_dof)=k(el_dof,el_dof)+ke
end
KG=k=subs(KG,rig,rignum)
det(KGnum)
tp united
%programme de la recherche de la racine xarré d'un mombre
%par la méthode de newton raphson
%entrer des données
c=input ('donner la valeur de c: ')
eps=input ('donner la valeur de eps: ');
imax=input ('donner la valeur de imax=')
format long
% initialisation de la racine
x0=input ('donner la valeur de x0');
i=1;
while (i<=imax)
etape=i
x=0.5*(x0+c/x0); %algorithme de N-R
err=abs(x-x0)
if(err<=eps)%critere d'arret
disp('le processus a converger apres K étape')
K=i
disp('et la racine rechercheé est')
x
return
end % fin de if
i=i+1 ; % incrémentation de i.........>
% vérification de la racine
x0=x %le x trouvé joue le role de x0
end %fin de while

élément finis 3noeuds


clc
clear
disp ('matrice de rigidité d''un élément barre à 2nouds ')
%Element linéaire .......u(x)=ax+b
syms x E S x1 x2 x3 L real
N1=((x-x2)*(x-x3))/((x1-x2)*(x1-x3)) % N1=L0(x) premier point
N2=((x-x1)*(x-x3))/((x2-x1)*(x2-x3)) % N2=L1(x) deuxieme point
N3=((x-x1)*(x-x2))/((x3-x1)*(x3-x2)) % N3=L2(x) 3 point
N=[N1 N2 N3]
% l'origine peut etre prise n'importe ou
valx1=input('abscisse du noeud 1: ')
valx2=input('abscisse du noeud 2: ')
valx3=input('abscisse du noeud 3: ')
N=subs(N,{x1,x2,x3},{valx1,valx2,valx3})
B=diff(N,x)
ke=E*S*int(B'*B,x,valx1,valx3)

CADRE2M

clc
clear
disp('26/04/2016')
%====================modele
nnod=3; % nombere de noeds total
nnod_el=2; % nbr de noeud par noeud
ndl_nod=2; % nbr de ddls par neuds
nd1_el=nnod_el*ndl_nod ; % nbr ddl par elm
nddl=nnod*ndl_nod;
ddls=[1:nddl] % nbr ddl total
tabnod=[1 2;2 3;1 3] ;% tab de connectivité
tabdl=[1:4;3:6;1 2 5 6]; % nbrs ddls par élément
nel=size(tabnod,1) ;
cord=[0 0;2 0;0 1] ;
x=cord(:,1)' ;
y=cord(:,2)' ;
%======================= donnes =======
E=2e10;
S=5e-4;
L=1;
ES=E*S;
mat=[1 -1;-1 1];
%======================traitement ========
disp(' ')
KG=zeros(nddl) % matrice de rigidité global (nddl*nddl)
UG=zeros(nddl,1) ; %vecteu de déplacement
fG=zeros(nddl,1) ; % vecteurs des chargement
%========= assemblage======
for e=1:nel ;
Element=e ;
n1=tabnod(e,1) ; % noeud 1 de lelemnt e
n2=tabnod(e,2) ; % noeud 2 ,,,,,,
ddle=tabdl(e,:) ; % ddls de lelemt
dye=y(n2)-y(n1) ;
dxe=x(n2)-x(n1) ;
Le=sqrt(dxe^2+dye^2) ; % longeur de l'élémént
c=dxe/Le ; % cos phi
s=dye/Le ; % sin phi
T=[c s 0 0;0 0 c s] ; % matrice de transformation local global
kel=(ES/Le)*mat ; % matrice éléménrtaire dans le repere local
keg=T'*kel*T ; % matrice élémentaire dans le repere global
KG(ddle,ddle)=KG(ddle,ddle)+keg; % assemblage de Kg
end
KG=KG
% ===============résolution============
dfix=[1 2 4 5] % cl
dlib=setdiff(ddls,dfix) %dl libre
Kred=KG(dlib,dlib) % matrice de rigidité
dchar=[3 6]
FG(dchar)=[4000000 2000000]
Fred=FG(dlib)
dep1=Kred\Fred'
UG(dlib)=dep1
fG=KG*UG
tic
reac1=fG(dfix)
toc
tic
reac2=KG(dfix,dlib)*UG(dlib)
toc
disp(' ')
disp(' ')
disp(' ------------------resultats --------- --------')
disp(' ')
disp(' ')
disp(' ddl délplcement efforts ')
disp(' --- ---------- ------- ')
format short g
resu=[ddls' UG fG];
disp(resu)
xdep=UG(1:2:nddl)
ydep=UG(2:2:nddl)
for i=1:nnod
xmod(i)=x(i)+xdep(i)
ymod(i)=y(i)+ydep(i)
end
xmod ;
ymod ;
clf
for e=1:nel
n1=tabnod(e,1)
n2=tabnod(e,2)
plot([x(n1) x(n2)],[y(n1) y(n2)],'--b')
hold on
plot([x(n1) x(n2)],[y(n1) y(n2)],'ok')
plot([xmod(n1) xmod(n2)],[ymod(n1) ymod(n2)],'-r')
plot([xmod(n1) xmod(n2)],[ymod(n1) ymod(n2)],'oy')

end
xlabel('axe x')
ylabel('axe y')
axis('equal')
legend('structure initilae','noeud initial' ,'structure déformé','nouveau
noeud')
grid on
grid minor

Vous aimerez peut-être aussi