Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
j
j
i
i
i
2
2
q
p
q
p
u
cs
c
cs
c
L
EA
( Ec. 5 )
Este procedimiento se puede aplicar sucesivamente a los desplazamientos nodales restantes, y si todos los
desplazamientos nodales pueden ser simultneamente no nulos, superponiendo los resultados, se obtiene:
j
j
i
i
j
j
i
1
2 2
2 2
2 2
2 2
q
p
q
p
v
u
v
u
s cs s cs
cs c cs c
s cs s cs
cs c cs c
L
EA
( Ec. 6 )
3.2.- ENSAMBLAJE DE ELEMENTOS
Aunque estemos considerando el caso del anlisis de estructuras planas de barras articuladas, el procedimiento
de ensamblado depende muy poco del tipo de elemento considerado, con lo cual el procedimiento es general.
Consideraremos el caso ms simple en cuanto a fuerzas exteriores aplicadas. Supondremos que las nicas
fuerzas exteriores que actan estn aplicadas directamente en los nodos. Buscamos definir las ecuaciones de
comportamiento globales de la estructura sobre la base de las ecuaciones de comportamiento de cada elemento.
Tendremos pues que considerar en este proceso las condiciones de equilibrio esttico y las de compatibilidad de
desplazamientos.
Para definir el proceso de ensamblado es conveniente considerar conceptualmente la expansin de las matrices
de elemento al tamao global del problema. Para ello definimos {U} como el vector cuyas componentes son los
desplazamientos nodales de todos los gdl (Grados de Libertad) de la estructura. De esta forma, la matriz de
rigidez expandida del elemento , [ ]
e
K , se formar a partir de los elementos de la matriz [ ]
e
k , posicionndolos
segn la numeracin global de los gdl de la estructura. De la misma forma se expandir el vector {
e
f } a {
e
F }.
Para que todos los nodos de la estructura estn en equilibrio esttico es necesario que el conjunto de fuerzas que
inciden en cada uno de ellos sea igual a la fuerza exterior aplicada. Las fuerzas que actan en cada elemento
estn definidas por el vector {
e
F }, que segn la ecuacin 2 es igual a: [ ]
e
K {
e
U }.Definiendo {F}como el
vector (tamao de la estructura global) que contiene todas las fuerzas externas aplicadas
[ ] [ ] } U { F } F { F } F {
ne
1 e
e
ne
1 e
e
= =
= =
( Ec. 6 )
donde ne es el nmero de elementos que componen la estructura. Si definimos
[ ] [ ]
ne
1 e
e
K K
=
= ( Ec. 7 )
se obtiene la ecuacin matricial de comportamiento global de la estructura.
[ ] } F { } U { K = ( Ec. 8 )
En el proceso de ensamblado no es necesario expandir realmente la matriz de rigidez de cada elemento. Se puede
entender el proceso de ensamblado partiendo de una matriz [K] nula de NxN a la que se va aadiendo la
contribucin de cada elemento, considerando las posiciones definidas por sus gdl globales. Para formar [K]
hemos considerado que se debe satisfacer el equilibrio de fuerzas. Las condiciones de compatibilidad se
satisfacen automticamente en cada nodo ya que los desplazamientos del mismo son comunes para todos los
elementos que inciden en l.
La matriz de rigidez global [K] es singular y en consecuencia no existe una nica solucin de la ecuacin
[K]{U} = {F}. Ser por lo tanto necesario simular las condiciones de contorno reales de la estructura, con lo que
en general eliminaremos la singularidad. Existen diversos tipos de condiciones de contorno a aplicar, aunque en
este apartado nicamente consideraremos la ms sencilla que consiste en suponer que ciertos desplazamientos
nodales son nulos (soportes). Para considerar tal tipo de condiciones de contorno supongamos que subdividimos
los grados de libertad globales de la estructura en dos grupos: los que estn restringidos, {
r
U } (desplazamiento
nulo), y los libres, {
1
U }. De esta forma
{ }
=
r
1
U
U
U ( Ec. 9 )
Subdividiendo la matriz de rigidez global [K] y el vector de fuerzas aplicadas { F } de forma anloga.
)
`
=
)
`
r
1
r
1
rr rl
r 1 11
F
F
U
U
K K
K K
( Ec. 10 )
La primera de las dos ecuaciones matriciales descritas por la ecuacin 10 es
[ ]{ } [ ]{ } { }
1 r r 1 1 11
F U K U K = + ( Ec. 11 )
y si consideramos que { } 0 U
r
= , resulta un sistema de ecuaciones lineales del que es posible obtener el vector
de desplazamientos libres { }
1
U . La matriz de coeficientes de tal sistema de ecuaciones es la correspondiente
global del sistema en la que no se han ensamblado las rigideces asociadas a los grados de libertad con
desplazamiento nulo. De la segunda ecuacin se obtiene
[ ]{ } [ ]{ } { }
r r rr 1 1 r
F U K U K = + ( Ec. 12 )
Calculados los desplazamientos libres { }
1
U con la ecuacin 11, mediante la ecuacin 12 es posible calcular las
fuerzas que aparecen en los desplazamientos de los gdl restringidos (reacciones {Fr} ), de forma que se satisfaga
el equilibrio.
3.3.- PROCEDIMIENTO DE ANLISIS
Las fases computacionales fundamentales de un anlisis lineal esttico mediante el mtodo de los elementos
finitos se pueden resumir en las siguientes:
1) Entrada de datos e inicializacin. Se entran los datos de nmero de nodos y elementos, coordenadas
nodales, definicin de los elementos mediante los nodos que conecta, propiedades de material, fuerzas
actuantes, condiciones de contorno, etc. Se define el tamao global del problema y se reserva e
inicializa el almacenamiento para los diferentes vectores y matrices.
2) Clculo de ecuaciones de comportamiento de todos los elementos. Para cada elemento se calcula su
matriz de rigidez [
e
k ] y el vector de fuerzas equivalentes en los nodos de las directamente aplicadas
sobre el elemento {
e
f }, si es que existen.
3) Ensamblado de la estructura. Se ensambla la matriz global de la estructura a partir de las matrices de
rigidez de los elementos [
e
k ]. Tambin se ensambla el vector de fuerzas externas aplicadas {F} a partir
de la contribucin de las fuerzas actuantes en los elementos {
e
f } y las directamente aplicadas en los
nodos. Se aplican las condiciones de contorno, si stas no se han aplicado directamente en el proceso de
ensamblado.
4) Resolver el sistema de ecuaciones [K]{ U } ={ F } para calcular { U }.
5) Clculo de tensiones. Para cada elemento se extrae de { U } el vector de desplazamientos nodales de
cada elemento {
e
u }. A partir de este vector de desplazamientos se pueden calcular las tensiones que
aparecen en cada elemento.
Las fases anteriores describen el procedimiento bsico a seguirse en el programa en cuestin bajo MatLab, sin
pre-procesadores o post-procesadores, numeracin automtica de nodos, y otras facilidades de utilizacin.
Tambin es posible modificar ligeramente el proceso para mejorar su eficiencia computacional.
4.- RUTINAS EN MATLAB PARA EL CALCULO DE ARMADURAS
Los programas han sido desarrollados en la Facultad de Ingeniera por los autores del presente documento, bajo
la poltica de cdigo abierto, la informacin de la versin se encuentra por la ruta Ayuda/ Acerca de... que
desplegar la ventana que indica la figura 4.1.
Figura 4.1.- Ventana Acerca de... Programa Armaduras.m
El programa principal que controla todas las subrutinas realizadas en MatLab presenta un ambiente amigable
para el usuario como se ilustra en la figura 4.2. Los sub-programas en Matlab que resuelven los problemas
bidimensionales y tridimensionales son:
C2D.- Celosas en 2 Dimensiones, clculos en el Plano.
C3D.- Celosas en 3 Dimensiones, clculos en el Espacio.
C2DTXT.- Celosas en 2 Dimensiones , clculos en el Plano e ingreso por TeXTo.
C3DTXT.- Celosas en 3 Dimensiones, clculos en el Espacio e ingreso por TeXTo.
Los programas antes descritos no han sido compilados (*.exe), para que futuros usuarios puedan hacer las
modificaciones que crean convenientes, y que se ajusten a sus necesidades; las rutinas se incluyen en el Anexo 1
y Anexo 2 de este documento.
Figura 4.2 Pantalla Principal del Programa Armaduras
El programa permite utilizar las rutinas por la barra de herramientas o por los botones de acceso rpido para la
ejecucin de comandos come se ilustra en la figura 4.3
Figura 4.3 Ejecucin del Programa
Permite adems el ingreso de Datos en forma grfica, como se indica en la figura 4.4
Figura 4.4 Ejecucin del Programa
4.1.- EJEMPLOS DE APLICACIN
Se resuelven dos ejemplos de armaduras en el plano y en el espacio, para la comprobacin de los resultados del
anlisis se utiliz el programa SAP2000
4.2.- EJEMPLOS DE APLICACIN EN EL PLANO
Ejemplo 4.1: Determinacin de fuerzas en los miembros desarrollados en la celosa en el plano que se muestra,
los datos se presentan a continuacin:
Mdulo Elstico = 2109208.90 kg/cm
Miembro
Seccion (cm
2
)
1
38.710
2 3
51.613
4 - 5
64.516
Nudo
x (m)
z (m)
1
6.00
6.096
2
4.572
6.096
3
0
0
4
4.572
0
Nudo
Carga x (Kg.)
Carga z (Kg.)
1
9071.85
0
?? Utilizando la Rutina C2D (Matlab) los resultados que se muestran en pantalla son:
Desplazamientos en los Nudos ( cm )
N U D O dxx dzz
1.0000 0.1272 0.0372
2.0000 0.1043 -0.0305
3.0000 0 0
4.0000 0 0
Reacciones en los Nudos ( Kg )
N U D O Fuerza X Fuerza Z
1.0e+004 *
0.0001 0.9072 0
0.0002 -0.0000 -0.0000
0.0003 -0.4087 -1.2096
0.0004 -0.4985 1.2096
Fuerzas en los Elementos ( Kg - cm )
MIEMBRO Nudo I. Nudo F. Axial Esfuerzo
1.0e+003 *
0.0010 0.0010 0.0020 -4.0873 -0.1056
0.0020 0.0030 0.0010 6.6460 0.1288
0.0030 0.0040 0.0020 -5.4498 -0.1056
0.0040 0.0010 0.0040 -8.3075 -0.1288
0.0050 0.0030 0.0020 6.8122 0.1056
?? Comprobacin del anlisis en SAP2000
Element Forces - Frames
Frame Station OutputCase CaseType P
Text cm Text Text Kgf
1 457.200 Carga LinStatic -4087.32
2 609.600 Carga LinStatic 6646.04
3 609.600 Carga LinStatic -5449.75
4 762.000 Carga LinStatic -8307.56
5 762.000 Carga LinStatic 6812.19
Joint Displacements
Joint OutputCase CaseType U1 U2 U3
Text Text Text cm cm cm
1 Carga LinStatic 0.127155 0.000000 0.037216
2 Carga LinStatic 0.104267 0.000000 -0.030517
3 Carga LinStatic 0.000000 0.000000 0.000000
4 Carga LinStatic 0.000000 0.000000 0.000000
Joint Reactions
Joint OutputCase CaseType U1 U2 U3
Text Text Text Kgf Kgf Kgf
3 Carga LinStatic -4087.32 0.00 -12095.80
4 Carga LinStatic -4984.53 0.00 12095.80
4.3.- EJEMPLO DE APLICACIN EN EL ESPACIO
Ejemplo 4.2: Determinacin de fuerzas en los miembros desarrollados en la celosa espacial que se muestra, los
datos se presentan a continuacin:
Mdulo Elstico = 2109208.90 kg/cm
Miembro
Seccion (cm
2
)
2, 4, 5
32.258
1, 3, 6
25.806
7, 8 , 9
19.355
10, 11, 12
12.903
903
Nudo
x (m)
y (m)
z (m)
1
0
0
0
2
9.144
0
0
3
4.572
7.919
0
4
2.286
1.320
12.192
5
6.858
1.320
12.192
6
4.572
5.280
12.192
7
4.572
2.640
24.384
Nudo
Carga x (Kg.)
Carga y (Kg.)
Carga z (Kg.)
1
0
22679.62
9071.85
?? Utilizando: C3D (Matlab)
Desplazamientos en los Nudos ( cm )
N U D O dxx dyy dzz
1.0000 0 0 0
2.0000 0 0 0
3.0000 0 0 0
4.0000 1.0203 2.1023 0.3463
5.0000 1.0203 1.7672 0.7652
6.0000 1.3105 1.9347 -1.3292
7.0000 -0.0000 18.0572 -0.1693
Reacciones en los Nudos ( Kg )
N U D O Fuerza X Fuerza Y Fuerza Z
1.0e+004 *
0.0001 -0.5980 -0.3453 -3.1894
0.0002 0.5980 -0.3453 -3.1894
0.0003 0.0000 -1.5774 7.2859
0.0004 -0.0000 0.0000 0.0000
0.0005 -0.0000 0.0000 -0.0000
0.0006 -0.0000 0.0000 0.0000
0.0007 -0.0000 2.2680 -0.9072
Fuerzas en los Elementos ( Kg )
MIEMBRO Nudo I. Nudo F. Axial Esfuerzo
1.0e+004 *
0.0001 0.0001 0.0004 3.2633 0.1265
0.0002 0.0002 0.0004 -0.0000 -0.0000
0.0003 0.0002 0.0005 3.2633 0.1265
0.0004 0.0001 0.0006 0.0000 0.0000
0.0005 0.0003 0.0005 -0.0000 -0.0000
0.0006 0.0003 0.0006 -7.4547 -0.2889
0.0007 0.0004 0.0005 -0.0000 -0.0000
0.0008 0.0004 0.0006 0.0000 0.0000
0.0009 0.0005 0.0006 0.0000 0.0000
0.0010 0.0004 0.0007 3.2633 0.1686
0.0011 0.0005 0.0007 3.2633 0.1686
0.0012 0.0006 0.0007 -7.4547 -0.3852
?? Utilizando: SAP2000
J O I N T D I S P L A C E M E N T S
JOINT LOAD U1 U2 U3 R1 R2 R3
1 COMB1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
2 COMB1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
3 COMB1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
4 COMB1 1.0203 2.1022 0.3463 0.0000 0.0000 0.0000
5 COMB1 1.0203 1.7671 0.7652 0.0000 0.0000 0.0000
6 COMB1 1.3105 1.9347 -1.3292 0.0000 0.0000 0.0000
7 COMB1 0.0000 18.0569 -0.1693 0.0000 0.0000 0.0000
J O I N T R E A C T I O N S
JOINT LOAD F1 F2 F3 M1 M2 M3
1 COMB1 -5980.0541 -3452.5873 -31893.6153 0.0000 0.0000 0.0000
2 COMB1 5980.0527 -3452.5848 -31893.6153 0.0000 0.0000 0.0000
3 COMB1 1.424E-03 -15774.4483 72859.0789 0.0000 0.0000 0.0000
F R A M E E L E M E N T F O R C E S
FRAME LOAD LOC P V2 V3 T M2 M3
1 COMB1 1247.45 32632.55 0.00 0.00 0.00 0.00 0.00
2 COMB1 1405.06 0.00 0.00 0.00 0.00 0.00 0.00
3 COMB1 1247.45 32632.56 0.00 0.00 0.00 0.00 0.00
4 COMB1 1405.06 8.750E-03 0.00 0.00 0.00 0.00 0.00
5 COMB1 1405.06 -8.750E-03 0.00 0.00 0.00 0.00 0.00
6 COMB1 1247.45 -74547.15 0.00 0.00 0.00 0.00 0.00
7 COMB1 457.20 -1.534E-03 0.00 0.00 0.00 0.00 0.00
8 COMB1 457.20 3.069E-03 0.00 0.00 0.00 0.00 0.00
9 COMB1 457.20 8.764E-03 0.00 0.00 0.00 0.00 0.00
10 COMB1 1247.45 32632.55 0.00 0.00 0.00 0.00 0.00
11 COMB1 1247.45 32632.55 0.00 0.00 0.00 0.00 0.00
12 COMB1 1247.45 -74547.15 0.00 0.00 0.00 0.00 0.00
4.4.- EJEMPLO DE APLICACIN UTILIZANDO UN ARCHIVO DE TEXTO
?? Resolucin del ejemplo Utilizando: C2DTXT (Matlab)
Ejemplo 4.3: Determinacin de fuerzas en los miembros desarrollados en la celosa del ejemplo 4.1
Para emplear esta opci programa se necesit a una base de datos contenida en una matriz de NxM realizada en un
archivo de excel, luego debe ser copiado a un archivo de texto, y finalmente ser cargada a Matlab.
El archivo de carga tiene el nombre: 2D-datos.txt, y es el siguiente:
% mbr i j A(cm) E (kg/cm) n x (m) z (m) Px (kg) Pz (kg)
1 1 2 38.7096 2109208.9 1 0 6.096 9071.85 0
2 3 1 51.6128 2109208.9 2 4.572 6.096 0 0
3 4 2 51.6128 2109208.9 3 0 0 0 0
4 1 4 64.5269 2109208.9 4 4.572 0 0 0
5 3 2 64.5269 2109208.9 0 0 0 0 0
Ejecutada esta opcin el programa verifica los datos y los carga un mensaje como se indica en la figura
4.5 es mostrado:
Figura 4.5.- Mensaje previo la Carga de Datos de un Archivo de Texto
Los resultados son los obtenidos anteriormente, con el sub-programa: C2D. De igual manera podemos
cargar un archivo de datos para las estructuras de tres dimensiones, en ese caso unicamente
agregaremos las coordenadas Y en el archivo de texto.
5.- CONCLUSIONES
1. Realizar programas de Ingeniera con poderosas herramientas de computacin como es Matlab,
proyecta a los profesionales a desarrollar software propio, que con trabajo constante puede ser mejorado
y ubicarse en los niveles de los programas comerciales de la actualidad.
2. Es necesario para quienes estamos inmersos en el estudio desarrollo de programas, que utilizan
procedimientos de clculo como MEF, para la resolucin a problemas de ingeniera; modelar ejemplos
que permitan la comprensin del mtodo, as como su comparacin con los resultados obtenidos
analticamente y con otros programas.
6.- REFERENCIAS
1. Beaufait Fred W.
COMPUTER METHODS OF STRUCTURAL ANALYSIS
Vanderbilt University
2. Tirupathi R. Chandrupatla, Ashok D. Belegundu
INTRODUCCIN AL ESTUDIO DEL ELEMENTO FINITO EN INGENIERA
Glassboro, New Jersey University Park, Pennsylvania
3. MATLAB, Release: 5.2, 6.1
MATLAB Reference Guide
The Math Works, Inc.
ANEXOS
ANEXO 1.- CALCULO DE CELOSAS EN DOS DIMENSIONES: C2D
% CALCULO DE CELOSAS EN DOS DIMENSIONES
clc;
clear;
disp(' C L C U L O D E C E L O S A S B I - D I M E N S I O N
A L E S');
disp(' ');disp(' ');
nm = input('Materiales a utilizar = ');
for i=1:nm;
disp(' ');disp(' ');
disp(' Propiedades del Material ( Kg - cm )');disp(i);
mm(i,1)=input(' Mdulo de Elstico = ');
mm(i,1)=mm(i,1)/100;
end;
disp(' ');disp(' ');
nod=input(' Nmero Total de Nudos = ');disp(' ');
nnr=input(' Nmero de Nudos Restrigidos = ');disp(' ')
CG=ones(nod,2);
for i=1:nnr
disp(' ');disp(' ');
nr=input(' Nmero del Nudo Restringido # ');disp(' ');
disp(' Permitido ( 1 ) Restringido ( 0 ) ');disp(' ');
CG(nr,1)=input(' Desplazamiento en X = ');
CG(nr,2)=input(' Desplazamiento en Z = ');
end;
ngl=0;
for i=1:nod
for j=1:2
if (CG(i,j)) == 1
ngl=ngl+1;
CG(i,j)=ngl;
end
end
end
disp(' ');disp(' ');
ns=input(' Nmero de Secciones Tipo = ');
for i=1:ns;
disp(' ');disp('Seccion Tipo ');disp(i);
disp(' Seccin Tranversal (cm)')
ar(i,1)=input(' rea = ');
end;
disp(' ');disp(' ');disp(' ');
mbr=input(' Nmero de Miembros de la Estructura = ');
for i=1:mbr
disp(' ');disp(' ');disp ('M I E M B R O');disp(i);
ni(i)=input(' Nudo Inicial = ');
nir(i)=ni(i);
nf(i)=input(' Nudo Final = ');
nfr(i)=nf(i);
if nm==1
me(i)=mm(1,1);
else
mt=input(' Material Tipo = ');
me(i)=mm(mt,1);
end
if ns==1
a(i)=ar(1,1);
else
st=input(' Seccin Tipo = ');
a(i)=ar(st,1);
end
end
for i=1:mbr
for k=1:2;
VC(i,k)=CG(ni(i),k);
VC(i,k+2)=CG(nf(i),k);
end
end
disp(' ');disp(' ');disp('Coordenadas de los Nudos ( m )');disp(' ');
for i=1:nod;
disp(' ');disp (' N U D O');disp(i);
x(i)=input(' Coordenada en X = ');
z(i)=input(' Coordenada en Z = ');
end;
for i=1:mbr
dx(i)=x(nf(i))-x(ni(i));
dz(i)=z(nf(i))-z(ni(i));
long(i)=sqrt((dx(i))^2+(dz(i))^2);
cosx(i)=(dx(i))/(long(i));
cosz(i)=(dz(i))/(long(i));
nm(i)=i;
end;
ALM=[nm',ni',nf',long',cosx',cosz',me',a'];
KG=zeros((nod)*2);
for k=1:mbr
FF(k)=a(k)*me(k)/long(k);
km(1,1)=cosx(k)^2;
km(1,2)=cosx(k)*cosz(k);
km(1,3)=-cosx(k)^2;
km(1,4)=-cosx(k)*cosz(k);
km(2,1)=cosx(k)*cosz(k);
km(2,2)=cosz(k)^2;
km(2,3)=-cosx(k)*cosz(k);
km(2,4)=-cosz(k)^2;
km(3,1)=-cosx(k)^2;
km(3,2)=-cosx(k)*cosz(k);
km(3,3)=cosx(k)^2;
km(3,4)=cosx(k)*cosz(k);
km(4,1)=-cosx(k)*cosz(k);
km(4,2)=-cosz(k)^2;
km(4,3)=cosx(k)*cosz(k);
km(4,4)=cosz(k)^2;
km=km*FF(k);
ni=2*ALM(k,2);
nf=2*ALM(k,3);
for j=1:2,
for i=1:2,
KG(ni+j-2,ni+i-2)=km(j,i)+KG(ni+j-2,ni+i-2);
KG(nf+j-2,nf+i-2)=km(j+2,i+2)+KG(nf+j-2,nf+i-2);
KG(nf+j-2,ni+i-2)=km(j,i+2);
KG(ni+j-2,nf+i-2)=km(j+2,i);
end
end
end
MKG=KG;
p=0;
for i=1:nod,
for j=1:2,
if CG(i,j)> 0,
else
MKG(:,2*(i-1)+j-p)=[];
MKG(2*(i-1)+j-p,:)=[];
p=p+1;
end
end
end
disp(MKG);
for i=1:ngl
Q(i)=0;
end
disp(' ');disp(' Cargas en la Estructura ( Kg )');
disp(' ');njc=input(' Nudos Cargados = ');
if njc>=0
for i=1:njc
disp(' ');jc=input(' Nmero del Nudo Cargado # ');disp(' ');
fx=input(' Fuerza Sentido X = ');
fz=input(' Fuerza Sentido Z = ');disp(' ');
aux1=CG(jc,1);Q(aux1)=fx;
aux2=CG(jc,2);Q(aux2)=fz;
QQ=Q';disp(QQ);
end;
des=inv(MKG)*QQ;
DS=zeros(2*nod,1);
p=0;
for i=1:nod
for j=1:2
if CG(i,j)>0
p=CG(i,j);
DS(2*(i-1)+j,1)=des(p,1);
end
end
end
FN=KG*DS;
t=zeros(1,4,mbr);
d2=zeros(4,1,mbr);
for i=1:mbr,
t(1,1,i)=-ALM(i,5);
t(1,2,i)=-ALM(i,6);
t(1,3,i)=ALM(i,5);
t(1,4,i)=ALM(i,6);
ni=ALM(i,2);
nf=ALM(i,3);
d2(1,1,i)=DS(2*ni-1);
d2(2,1,i)=DS(2*ni);
d2(3,1,i)=DS(2*nf-1);
d2(4,1,i)=DS(2*nf);
end
esf=zeros(1,1,mbr);
for i=1:mbr,
esf(:,:,i)=t(:,:,i)*d2(:,:,i);
esf(:,:,i)=FF(i)*esf(:,:,i)/ALM(i,8);
esz(i)=esf(:,:,i);
axi(i)=esz(i)*ALM(i,8);
end
end
for i=1:nod
xx(i)=DS(1+((i-1)*2),1);
zz(i)=DS(2+((i-1)*2),1);
nu(i)=i;
end
for i=1:nod
fx(i)=FN(1+((i-1)*2),1);
fz(i)=FN(2+((i-1)*2),1);
end
clc
disp(' ');
disp(' R e p o r t e d e l C l c u l o');
disp(' ');disp('Datos y Propiedades de los Elementos');disp(' ');
disp(' Miembro Nudo I Nudo F. Longitud Cos X Cos Z Modulo E.
Area ')
disp(' ');disp(ALM);
disp(' ');disp(' ');
RDN=[nu',xx',zz'];
disp(' ')
disp('Desplazamientos en los Nudos ( cm )');
disp(' ')
disp(' N U D O dxx dzz');
disp(' ');disp(RDN);
RDR=[nu',fx',fz'];
disp(' ');disp(' ')
disp('Reacciones en los Nudos ( Kg )');
disp(' ')
disp(' N U D O Fuerza X Fuerza Z');
disp(' ');disp(RDR);
RDM=[nm',nir',nfr',axi',esz'];
disp(' ');disp(' ')
disp('Fuerzas en los Elementos ( Kg - cm )');
disp(' ')
disp(' MIEMBRO Nudo I. Nudo F. Axial Esfuerzo');
disp(' ');disp(RDM);
disp(' ');disp(' ');
disp(' F i n d e l C l c u l o ')
ANEXO 2.- CALCULO DE CELOSAS EN TRES DIMENSIONES: C3D
% CALCULO DE CELOSAS EN TRES DIMENSIONES
clc;
clear;
disp(' C L C U L O D E C E L O S A S T R I - D I M E N S I O N
A L E S');
disp(' ');disp(' ');
nm = input('Materiales a utilizar = ');
for i=1:nm;
disp(' ');disp(' ');
disp(' Propiedades del Material ( Kg - cm )');disp(i);
mm(i,1)=input(' Mdulo de Elstico = ');
mm(i,1)=mm(i,1)/100;
end;
disp(' ');disp(' ');
nod=input(' Nmero Total de Nudos = ');disp(' ')
nnr=input(' Nmero de Nudos Restrigidos = ');disp(' ')
CG=ones(nod,3);
for i=1:nnr
disp(' ');disp(' ');
nr=input(' Nmero del Nudo Restringido # ');disp(' ');
disp(' Permitido ( 1 ) Restringido ( 0 ) ');disp(' ');
CG(nr,1)=input(' Desplazamiento en X = ');
CG(nr,2)=input(' Desplazamiento en Y = ');
CG(nr,3)=input(' Desplazamiento en Z = ');
end;
ngl=0;
for i=1:nod
for j=1:3
if (CG(i,j)) == 1
ngl=ngl+1;
CG(i,j)=ngl;
end
end
end
disp(' ');disp(' ')
ns=input(' Nmero de Secciones Tipo = ');
for i=1:ns;
disp(' ');disp('Seccion Tipo ');disp(i);
disp(' Seccin Tranversal (cm)')
ar(i,1)=input(' rea = ');
end;
disp(' ');disp(' ');disp(' ');
mbr=input(' Nmero de Miembros de la Estructura = ');
for i=1:mbr
disp(' ');disp(' ');disp ('M I E M B R O');disp(i);
ni(i)=input(' Nudo Inicial = ');
nir(i)=ni(i);
nf(i)=input(' Nudo Final = ');
nfr(i)=nf(i);
if nm==1
me(i)=mm(1,1);
else
mt=input(' Material Tipo = ');
me(i)=mm(mt,1);
end
if ns==1
a(i)=ar(1,1);
else
st=input(' Seccin Tipo = ');
a(i)=ar(st,1);
end
end
for i=1:mbr
for k=1:3
VC(i,k)=CG(ni(i),k);
VC(i,k+3)=CG(nf(i),k);
end
end
disp(' ');disp(' ');disp('Coordenadas de los Nudos ( m )');disp(' ')
for i=1:nod;
disp(' ');
disp (' N U D O');disp(i);
x(i)=input(' Coordenada en X = ');
y(i)=input(' Coordenada en Y = ');
z(i)=input(' Coordenada en Z = ');
end;
for i=1:mbr
dx(i)=x(nf(i))-x(ni(i));
dy(i)=y(nf(i))-y(ni(i));
dz(i)=z(nf(i))-z(ni(i));
long(i)=sqrt((dx(i))^2+(dy(i))^2+(dz(i))^2);
cosx(i)=(dx(i))/(long(i));
cosy(i)=(dy(i))/(long(i));
cosz(i)=(dz(i))/(long(i));
nm(i)=i;
end;
ALM=[nm',ni',nf',long',cosx',cosy',cosz',me',a'];
KG=zeros((nod)*3);
for k=1:mbr
FF(k)=a(k)*me(k)/long(k);
km(1,1)=cosx(k)^2;
km(1,2)=cosx(k)*cosy(k);
km(1,3)=cosx(k)*cosz(k);
km(1,4)=-cosx(k)^2;
km(1,5)=-cosx(k)*cosy(k);
km(1,6)=-cosx(k)*cosz(k);
km(2,1)=cosx(k)*cosy(k);
km(2,2)=cosy(k)^2;
km(2,3)=cosy(k)*cosz(k);
km(2,4)=-cosx(k)*cosy(k);
km(2,5)=-cosy(k)^2;
km(2,6)=-cosy(k)*cosz(k);
km(3,1)=cosx(k)*cosz(k);
km(3,2)=cosy(k)*cosz(k);
km(3,3)=cosz(k)^2;
km(3,4)=-cosx(k)*cosz(k);
km(3,5)=-cosy(k)*cosz(k);
km(3,6)=-cosz(k)^2;
km(4,1)=-cosx(k)^2;
km(4,2)=-cosx(k)*cosy(k);
km(4,3)=-cosx(k)*cosz(k);
km(4,4)=cosx(k)^2;
km(4,5)=cosx(k)*cosy(k);
km(4,6)=cosx(k)*cosz(k);
km(5,1)=-cosx(k)*cosy(k);
km(5,2)=-cosy(k)^2;
km(5,3)=-cosy(k)*cosz(k);
km(5,4)=cosx(k)*cosy(k);
km(5,5)=cosy(k)^2;
km(5,6)=cosy(k)*cosz(k);
km(6,1)=-cosx(k)*cosz(k);
km(6,2)=-cosy(k)*cosz(k);
km(6,3)=-cosz(k)^2;
km(6,4)=cosx(k)*cosz(k);
km(6,5)=cosy(k)*cosz(k);
km(6,6)=cosz(k)^2;
ni=3*ALM(k,2);
nf=3*ALM(k,3);
for j=1:3,
for i=1:3,
KG(ni+j-3,ni+i-3)=km(j,i)+KG(ni+j-3,ni+i-3);
KG(nf+j-3,nf+i-3)=km(j+3,i+3)+KG(nf+j-3,nf+i-3);
KG(nf+j-3,ni+i-3)=km(j,i+3);
KG(ni+j-3,nf+i-3)=km(j+3,i);
end
end
end
MKG=KG;
p=0;
for i=1:nod,
for j=1:3,
if CG(i,j)> 0,
else
MKG(:,3*(i-1)+j-p)=[];
MKG(3*(i-1)+j-p,:)=[];
p=p+1;
end
end
end
for i=1:ngl
Q(i)=0;
end
disp(' ');
disp(' Cargas en la Estructura ( Kg )');
disp(' ');
njc=input(' Nudos Cargados = ');
if njc>=0
for i=1:njc
disp(' ');
jc=input(' Nmero del Nudo Cargado # ');
disp(' ')
fx=input(' Fuerza Sentido X = ');
fy=input(' Fuerza Sentido Y = ');
fz=input(' Fuerza Sentido Z = ');disp(' ')
aux1=CG(jc,1);Q(aux1)=fx;
aux2=CG(jc,2);Q(aux2)=fy;
aux3=CG(jc,3);Q(aux3)=fz;
QQ=Q';
end;
des=inv(MKG)*QQ;
DS=zeros(3*nod,1);
p=0;
for i=1:nod
for j=1:3
if CG(i,j)>0
p=CG(i,j);
DS(3*(i-1)+j,1)=des(p,1);
end
end
end
FN=KG*DS;
t=zeros(1,6,mbr);
d2=zeros(6,1,mbr);
for i=1:mbr,
t(1,1,i)=-ALM(i,5);
t(1,2,i)=-ALM(i,6);
t(1,3,i)=-ALM(i,7);
t(1,4,i)=ALM(i,5);
t(1,5,i)=ALM(i,6);
t(1,6,i)=ALM(i,7);
ni=ALM(i,2);
nf=ALM(i,3);
d2(1,1,i)=DS(3*ni-2);
d2(2,1,i)=DS(3*ni-1);
d2(3,1,i)=DS(3*ni);
d2(4,1,i)=DS(3*nf-2);
d2(5,1,i)=DS(3*nf-1);
d2(6,1,i)=DS(3*nf);
end
esf=zeros(1,1,mbr);
for i=1:mbr,
esf(:,:,i)=t(:,:,i)*d2(:,:,i);
esf(:,:,i)=FF(i)*esf(:,:,i)/ALM(i,9);
esz(i)=esf(:,:,i);
axi(i)=esz(i)*ALM(i,9);
end
end
for i=1:nod
xx(i)=DS(1+((i-1)*3),1);
yy(i)=DS(2+((i-1)*3),1);
zz(i)=DS(3+((i-1)*3),1);
nu(i)=i;
end
for i=1:nod
fx(i)=FN(1+((i-1)*3),1);
fy(i)=FN(2+((i-1)*3),1);
fz(i)=FN(3+((i-1)*3),1);
end
clc
disp(' ');
disp(' R e p o r t e d e l C l c u l o');
disp(' ');
disp('Datos y Propiedades de los Elementos');disp(' ')
disp(' Miembro Nudo I Nudo F. Longitud Cos X Cos Y Cos Z Modulo E.
Area ');
disp(' ');disp(ALM)
disp(' ');RDN=[nu',xx',yy',zz'];disp(' ')
disp('Desplazamientos en los Nudos ( cm )');disp(' ')
disp(' N U D O dxx dyy dzz');
disp(' ');disp(RDN)
RDR=[nu',fx',fy',fz'];disp(' ');disp(' ')
disp('Reacciones en los Nudos ( Kg )');disp(' ')
disp(' N U D O Fuerza X Fuerza Y Fuerza Z');
disp(' ');disp(RDR);
RDM=[nm',nir',nfr',axi',esz'];disp(' ');disp(' ')
disp('Fuerzas en los Elementos ( Kg - cm )');disp(' ')
disp(' MIEMBRO Nudo I. Nudo F. Axial Esfuerzo');
disp(' ');disp(RDM);disp(' ');
disp(' ');
disp(' F i n d e l C l c u l o');