Sie sind auf Seite 1von 5

1.

- calcular los esfuerzos y deformaciones en la figura siguiente

Ojo las cargas y momento son 15 kn +xx y 10 kn.m +xx

ANALIZAR EL CODIGO MATLAB

% L: longitud de la barra
E=210000; A=200; I=2e8; EA=E*A; EI=E*I;
% generacion de coordenadas y conexiones
numberElements=3;
nodeCoordinates=[0 0;0 6000;6000 6000;6000 0];
xx=nodeCoordinates;
for i=1:numberElements;
elementNodes(i,1)=i;
elementNodes(i,2)=i+1;
end
numberNodes=size(nodeCoordinates,1);
xx=nodeCoordinates(:,1);
yy=nodeCoordinates(:,2);
% para la estructura:
% desplazamiento: vector desplazamiento
% fuerza: vector fuerza
% rigidez: matriz de rigidez
% GDof: número global de grados de libertad
GDof=3*numberNodes;
U=zeros(GDof,1);
force=zeros(GDof,1);
%vector fuerza
force(2)=15000+61;
force(10)=10e4+61;
% matriz de rigidez
[stiffness]=...
formStiffness2Dframe(GDof,numberElements,...
elementNodes,numberNodes,xx,yy,EI,EA);
% condiciones de contorno y solución
prescribedDof=[1 4 5 8 9 12]’;
% solucion
displacements=solution(GDof,prescribedDof,stiffness,force);
% desplazamientos / reacciones de salida
outputDisplacementsReactions(displacements,stiffness,...
GDof,prescribedDof)
% dibujo de malla y forma deformada
clf
U=displacements;
drawingMesh(nodeCoordinates+500*[U(1:numberNodes)...
U(numberNodes+1:2*numberNodes)],elementNodes,’L2’,’k.-’);
drawingMesh(nodeCoordinates,elementNodes,’L2’,’k--’);
% generación de coordenadas y conectividades
numberElements=12;
nodeCoordinates=[0 0;0 1500;0 3000;0 4500 ;
0 6000;1500 6000;3000 6000;
4500 6000;6000 6000;6000 4500;
6000 3000;6000 1500;6000 0];
xx=nodeCoordinates;
for i=1:numberElements;
elementNodes(i,1)=i;
elementNodes(i,2)=i+1;
end
numberNodes=size(nodeCoordinates,1);
xx=nodeCoordinates(:,1);
yy=nodeCoordinates(:,2);
% para la estructura:
% de desplazamientos: vector de desplazamiento
% de fuerza: vector de fuerza
% de rigidez: matriz de rigidez
% GDof: número global de grados de libertad
GDof=3*numberNodes;
U=zeros(GDof,1);
force=zeros(GDof,1);
stiffness=zeros(GDof);
%vector fuerza
force(5)=15000+61;
force(31)=10e4+61;
% matriz de rigidez
[stiffness]=...
formStiffness2Dframe(GDof,numberElements,...
elementNodes,numberNodes,xx,yy,EI,EA);
% condiciones de contorno y solución
prescribedDof=[1 13 14 26 27 39]’;
% solucion
displacements=solution(GDof,prescribedDof,stiffness,force);
% desplazamientos / reacciones de salida
outputDisplacementsReactions(displacements,stiffness,...
GDof,prescribedDof)
%dibujo de malla y forma deformada
U=displacements;
clf
drawingMesh(nodeCoordinates+500*[U(1:numberNodes)...
U(numberNodes+1:2*numberNodes)],elementNodes,’L2’,’k.-’);
drawingMesh(nodeCoordinates,elementNodes,’L2’,’k--’);
end;
% limpiar
clear all
% E; módulo de elasticidad
% I: segundo momento de area
% L: longitud de la barra
E=210e6; A=0.02;
Iy=10e-5; Iz=20e-5; J=5e-5; G=84e6;
% generacion de coordenadas y conexiones
nodeCoordinates=[0 0 0; 3 0 0; 0 0 -3; 0 -4 0];
xx=nodeCoordinates(:,1);
yy=nodeCoordinates(:,2);
zz=nodeCoordinates(:,3);
elementNodes=[1 2;1 3;1 4];
numberNodes=size(nodeCoordinates,1);
numberElements=size(elementNodes,1);
% estructura:
% desplazamiento: vector de desplazamiento
% fuerza: vector fuerza
% rigidez: vector de rigidez
% GDof: número global de grados de libertad
GDof=6*numberNodes;
U=zeros(GDof,1);
force=zeros(GDof,1);
stiffness=zeros(GDof,GDof);
%fuerza de vector
force(1)=-10-0.061;
force(3)=15+0.061;
% matriz de rigidez
[stiffness]=...
formStiffness3Dframe(GDof,numberElements,...
elementNodes,numberNodes,nodeCoordinates,E,A,Iz,Iy,G,J);
% condiciones de contorno y solución
prescribedDof=[7:24];
% solucion
displacements=solution(GDof,prescribedDof,stiffness,force)
% desplazamiento
disp(’Displacements’)
jj=1:GDof; format long
f=[jj; displacements’];
fprintf(’node U\n’)
fprintf(’%3d %12.8f\n’,f)
function
[stiffness]=formStiffness3Dframe(GDof,numberElements,elementNodes,numb
erNodes,nodeCoordinates,E,A,Iz,Iy,G,J);
stiffness=zeros(GDof);
% cálculo de la matriz de rigidez del sistema
for e=1:numberElements;
% elementDof: grados de libertad del elemento (Dof)
indice=elementNodes(e,:) ;
elementDof=[6*indice(1)-5 6*indice(1)-4 6*indice(1)-3 ...
6*indice(1)-2 6*indice(1)-1 6*indice(1)...
6*indice(2)-5 6*indice(2)-4 6*indice(2)-3 ...
6*indice(2)-2 6*indice(2)-1 6*indice(2)] ;
x1=nodeCoordinates(indice(1),1);
y1=nodeCoordinates(indice(1),2);
z1=nodeCoordinates(indice(1),3);
x2=nodeCoordinates(indice(2),1);
y2=nodeCoordinates(indice(2),2);
z2=nodeCoordinates(indice(2),3);
L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) +...
(z2-z1)*(z2-z1));
k1 = E*A/L;
k2 = 12*E*Iz/(L*L*L);
k3 = 6*E*Iz/(L*L);
k4 = 4*E*Iz/L;
k5 = 2*E*Iz/L;
k6 = 12*E*Iy/(L*L*L);
k7 = 6*E*Iy/(L*L);
k8 = 4*E*Iy/L;
k9 = 2*E*Iy/L;
k10 = G*J/L;
a=[k1 0 0; 0 k2 0; 0 0 k6];
b=[ 0 0 0;0 0 k3; 0 -k7 0];
c=[k10 0 0;0 k8 0; 0 0 k4];
d=[-k10 0 0;0 k9 0;0 0 k5];
k = [a b -a b;b’ c b d; (-a)’ b’ a -b;b’ d’ (-b)’ c];
if x1 == x2 & y1 == y2
if z2 > z1
Lambda = [0 0 1 ; 0 1 0 ; -1 0 0];
else
Lambda = [0 0 -1 ; 0 1 0 ; 1 0 0];
end
else
CXx = (x2-x1)/L;
CYx = (y2-y1)/L;
CZx = (z2-z1)/L;
D = sqrt(CXx*CXx + CYx*CYx);
CXy = -CYx/D;
CYy = CXx/D;
CZy = 0;
CXz = -CXx*CZx/D;
CYz = -CYx*CZx/D;
CZz = D;
Lambda = [CXx CYx CZx ;CXy CYy CZy ;CXz CYz CZz];
end
R = [Lambda zeros(3,9); zeros(3) Lambda zeros(3,6);
zeros(3,6) Lambda zeros(3);zeros(3,9) Lambda];
stiffness(elementDof,elementDof)=...
stiffness(elementDof,elementDof)+R’*k*R;
end

Das könnte Ihnen auch gefallen