Poutre

Fermé
romeo - 14 mai 2014 à 00:52
JulienJust Messages postés 139 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 2 septembre 2014 - 14 mai 2014 à 10:14
Bonjour,

Je vous sollicite car je suis bloqué dans un programme matlab.

Actuellement je suis entrain d'étudier une une poutre en flexion et je n'ai pas réussi a programmer le matrice d'assemblage de raideur
voici le code et je n'arrive pas a trouver ....

Merci d'avance
Cdlt


close all;
clear all;
clc;

% Caractéristique géométriques et matérielles

l =90;
e =10;
h = 30;
Iz = e*h*h*h/12;
E = 210000;
A =e*h;
P = -100;
nu = 0.3;
alpha = 3/2;
G = E/(2+2*nu);

coeff = E*Iz/(l^3);

nbreElements = 3
coordNoeuds=linspace(0,l,nbreElements+1)';
x=coordNoeuds;

nbreNoeuds=size(coordNoeuds,1);
x=coordNoeuds(:,1);

Ddl=2*nbreNoeuds % deux degres de liberté par noeuds
force=zeros(Ddl,1);
force(Ddl)= P;
deplacement=zeros(Ddl,1);
Ke=[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] %la matrice de raideur pour un element
Ne = 2;

nnodes = (Ne-1)*nbreElements+1 %nombre totale de noeuds

coords = zeros(1,nnodes);
for i= 1 : nnodes
coords(i) = l*(i-1)/(nnodes-1);
end;

connect = zeros(Ne,nbreElements);

for lmn=1:nbreElements
connect(1,lmn) = lmn;
connect(2,lmn) = lmn+1;
end;

for lmn = 1 : nbreElements
lmncoords = zeros(Ne);
for a = 1 : Ne
lmncoords(a) = coords(connect(a,lmn));
end
end

K = zeros(nnodes*2,nnodes*2);
for i=1 : 4
for j =1 :4
K(i,j) = Ke(i,j);
end
end

for a = 1 : Ne
rw = connect(a,lmn);
for b = 1 : Ne
cl = connect(b,lmn);
K(rw,cl) = K(rw,cl)+Ke(a,b);
end
end
A voir également:

1 réponse

JulienJust Messages postés 139 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 2 septembre 2014 18
14 mai 2014 à 10:14
Bonjour,

Je n'ai pas lu complètement le script mais, as-tu essayé de résoudre l'exercice à la main avant de le programmer ?

Cdlt
0