You are on page 1of 15

1.

INTRODUCCION
En el presente informe se desarrolla la rutina de ensamblaje directo para una estructura en el espacio, el
cual consta de elementos marco plano y armadura, con los grados de libertad y restricciones los
presentados a continuacin:

Al trabajar con un marco plano y armadura en el espacio los sistemas de coordenadas globales y locales son
los siguientes:

En dicha rutina se utilizan distintas funciones que ayudan en el ensamblaje, las cuales se describen a
continuacin:

RUTINA PARA MATRIZ DE RIGIDEZ: Al tener elementos viga, columna y armadura se utilizaran dos
rutinas para matriz de rigidez, teniendo en cuenta que las vigas y columnas se trabajarn como
elemento Marco Espacial.
Para elemento armadura se utiliza la funcin [K]=M_KAEsp (A, L, E), que nos permitir determinar
la matriz de rigidez de la armadura en coordenadas locales de elemento, los datos necesarios son
el Modulo de elasticidad (E), la Longitud del elemento (L) y el rea de la seccin transversal (A).
% Matriz de rigidez para un elemeto Armadura Espacial
% [K]=M_KAEsp(A, L, E)
%
Datos a entrar de la seccin Transversal:
%
A = Area del elemento en m2
%
L = Longitud del elemento
%
E = Modulo de Elasticidad.

%Generacin de la Matriz de Rigidez


function[K]=M_KAEsp(A, L, E)
Ra=A*E/L;
K=[ Ra
0
0
-Ra
0
0
0
0
0
0
0
0
0
0
0
-Ra
0
0
Ra
0
0
0
0
0
0
0
0
0
0
0
end

0
0
0
0
0
0];

Para elemento Marco Plano se utiliza la funcin [K]=K_KMEsp(A, Ix, Iy, Iz, L, E, G) que nos
permitir determinar la matriz de rigidez del Marco Espacial en coordenadas locales de elemento,
los datos necesarios son el Mdulo de elasticidad (E), la Longitud del elemento (L), el rea de la
seccin transversal (A) y la Inercia de la seccin en el eje y (Iy) y en el eje z (Iz), el Mdulo de Corte
% Matriz de rigidez para un elemento marco espacial de seccion constante
% Datos a encontrar de la seccion transversal
% A=rea del elemento en m2
% Ix= Inercia torcional
% Iy= Inercia en el eje y
% Iz= Inercia en el eje z
% L= Longitud del elemento
% E= Mdulo de elasticidad
% G= Mdulo de corte
%Generacin de la matriz de rigidez
function [ K ] = M_KMEsp( A, Ix, Iy, Iz, L, E, G )
Ra= A*E/L; kz=4*E*Iz/L; az=2*E*Iz/L; bz=6*E*Iz/L^2; tz=12*E*Iz/L^3;
kt=G*Ix/L; ky=4*E*Iy/L; ay=2*E*Iy/L; by=6*E*Iy/L^2; ty=12*E*Iy/L^3;
K=[Ra
0
0
tz
0
0
0
0
0
0
0
bz
-Ra 0
0
-tz
0
0
0
0
0
0
0
bz
end

0
0
ty
0
-by
0
0
0
-ty
0
-by
0

0
0
0
kt
0
0
0
0
0
-kt
0
0

0
0
-by
0
ky
0
0
0
by
0
ay
0

0
bz
0
0
0
kz
0
-bz
0
0
0
az

-Ra
0
0
0
0
0
Ra
0
0
0
0
0

0
-tz
0
0
0
-bz
0
tz
0
0
0
-bz

0
0
-ty
0
by
0
0
0
ty
0
by
0

0
0
0
-kt
0
0
0
0
0
kt
0
0

0
0
-by
0
ay
0
0
0
by
0
ky
0

0
bz
0
0
0
az
0
-bz
0
0
0
kz];

RUTINA PARA MATRIZ DE TRANSFORMACIN: Al tener elementos viga, columna y armadura se


utilizaran dos rutinas para matriz de transformacin, teniendo en cuenta que las vigas y columnas se
trabajarn como elemento Marco Espacial.
Para elemento armadura se utiliza la funcin [TAEsp]=MT_AEsp(p1,p2), que nos permitir generar
la matriz de tranformacin de la armadura en coordenadas locales de elemento, los datos
necesarios son las coordenadas del nudo de salida y de llegada (x,y,z).
%Genera la matriz de transformacion para el elemento marco espacial
% [TAEsp]=MT_AEsp(p1,p2)
%Datos a entrar:
% p1= coordenadas del nudo de salida X,Y,Z
% p2= coordenadas del nudo de llegada X,Y,Z
function[TAEsp]=MT_AEsp(p1,p2)

dx=p2(1)-p1(1);
dy=p2(2)-p1(2);
dz=p2(3)-p1(3);
L=sqrt(dx^2+dy^2+dz^2);
cx=dx/L;
cy=dy/L;
cz=dz/L;
raiz=sqrt(cx^2+cy^2);
if raiz>0
%elemento inclinado en el espacio
C=[cx -cx*cz/raiz
cy/raiz
cy -cy*cz/raiz -cx/raiz
cz
raiz
0 ];
else
%elemento es vertical
C=[0 -cz
0
0
0 -1
cz
0
0];
end
%construccion de la matriz TAEsp
TAEsp= [
C
zeros(3,3)
zeros(3,3)
C];
end

Para elemento tipo marco plano se utiliza la siguiente funcin [ TMEsp ] = MT_MEsp( p1, p2, Fi),
para lo cual se necesita las coordenadas del nudo de salida y de llegada (x,y,z) y el ngulo de
rotacin de cada elemento con respecto a las posicin por default.
%Genera la matriz de transformacin para el elemento marco espacial
%Datos a ingresar:
% p1= coordenadas del nudo de salida: X,Y,Z
% p2= coordenadas del punto de llegada: X,Y,Z
% Fi= angulo de rotacion del elemento con relacion a la posicion por
default
function [TMEsp] = MT_MEsp( p1, p2, Fi)
dx=p2(1)-p1(1);
dy=p2(2)-p1(2);
dz=p2(3)-p1(3);
L=sqrt(dx^2+dy^2+dz^2);
cx=dx/L;
cy=dy/L;
cz=dz/L;
raiz=sqrt(cx^2+cy^2);
if raiz>0
% Elemento inclinado en el espacio
C=[cx
-cx*cz/raiz
cy/raiz
cy
-cy*cz/raiz
-cx/raiz
cz
raiz
0
];
else
% Elemento es vertical
C=[0
-cz
0
0
0
-1
cz
0
0];
end
% En caso de existir un ngulo de rotacin Fi alrededor del eje x
fi=Fi*pi/180;
if fi>0
Cfi=[1
0
0
0
cos(fi) -sin(fi)
0
sin(fi)
cos(fi)];
C=C*Cfi;
%Matriz final corregida
end
% Construccin de la matriz TME
TMEsp=[
C
zeros(3,3)
zeros(3,3)
zeros(3,3)

zeros(3,3)
zeros(3,3)
zeros(3,3)

C
zeros(3,3)
zeros(3,3)

zeros(3,3)
C
zeros(3,3)

zeros(3,3)
zeros(3,3)
C
];

end

RUTINA DE ENSAMBLE DIRECTO: Esta rutina nos permite el ensamblaje de la matriz de rigidez de un
elemento en la matriz de rigidez del sistema, para lo cual utilizamos la funcin [S]=Ens(lee,K,S,ngdl), los
datos necesarios para esta funcin son:
o Lee: Vector de ensamble, en el cual se encuentran las posiciones en las cuales se va a
colocar cada uno de los datos
o k: Matriz de rigidez del elemento
o S: Matriz de rigidez del sistema
o Ngdl: nmero de grados de libertad
%ENSAMBLAJE LA MATRIZ DE RIGIDEZ DE UN ELEMENTO EN LA MATRIZ DE RIGIDEZ DE
LA ESTRUCTURA
function [S]=Ens(lee,K,S,ngdl)
ng=length(lee)
for i=1:ng
ii=lee(i);
if ii>0
if ii<=ngdl
for j=1:ng
jj=lee(j);
if jj>0
if jj<=ngdl
S(ii,jj)=S(ii,jj)+K(i,j);
end
end
end
end
end
end

RUTINA ACUMULACIN DE ACCIONES DE EMPOTRAMIENTO: En esta rutina se utiliza la funcin


[SAEP]=Ens_SAEP(Lee, AEP, SAEP, ngdl), el cual permite acumular las acciones de empotramiento para
ensamblar SAEP, permitindonos realizar la comprobacin de equilibrio del sistema. En este caso en el
vector [PR] se acumularan las acciones de modo que si se tienen cargas en el lugar de los grados de
libertad debe dar ese valor caso contrario debe ser cero, en el lugar de las reacciones debe dar el valor
de estas, de este modo se comprobara el equilibrio.
%ENSAMBLA EL VECTOR AEP DE UN ELEMENTO EN EL VECTOR SAEP DEL SISTEMA.
%Ensambla el Vector de cargas equivalentes en nudos.
%
[SAEP]=Ens_SAEP(Lee, AEP, SAEP, ngdl)
%Los datos que requiere son:
%
Lee = Vector de ensamble.
%
AEP = Matriz de Acc. de empotramiento perfecto del elemento.
%
ngdl = Nmero de Grados de Libertad de la Estructura.
function [SAEP]=Ens_SAEP(Lee, AEP, SAEP, ngdl)
ng = length(Lee);
for i = 1:ng
ii = Lee(i);
if ii > 0
if ii <= ngdl
SAEP(ii) = SAEP(ii) + AEP(i);
end
end
end
end

2. DESARROLLO

RESOLUCIN ESTRUCTURA EN EL ESPACIO

clear all
clc
%%----------------------------------------------------------%%
%
ESCUELA POLITCNICA NACIONAL
%
%
ANLISIS MATRICIAL
%
%
RESOLUCIN DE ESTRUCTURA EN EL ESPACIO
%
% NOMBRE: Lorena Toro
27/Enero/2017 %
%%----------------------------------------------------------%%
%% MATERIALES
fc=240;
miu=0.2;
Ec=135000*fc^0.5; %t/m2
G=Ec/2/(1+miu);
Ea=2.04*10^7;
%% Propiedades de la viga T
Iz=0.094266667;
Iy=0.46440000;
Ix=0.05051200;
A=1.080;
P1=[20 0 5];
R=20;
P2=[R*cosd(30) R*sind(30)
5];
L=1/2*sqrt((P1(1)-P2(1))^2+(P1(2)-P2(2))^2+(P1(3)-P2(3))^2);
%% Propiedades de la columna circular
D=0.6; %m
Ac= (pi*D^2)/4;
Izc=(pi*D^4)/64;
Iyc=Izc;
Ixc=Izc+Iyc;
%% Propiedades del cable
At=(pi*0.025^2)/4;
R1=20;
P9=[R1*cosd(30) R1*sind(30)
10];
R2=R1/sind(90)*sind(75);
P2=[R2*cosd(15) R2*sind(15)
5];
Lt=sqrt((P9(1)-P2(1))^2+(P9(2)-P2(2))^2+(P9(3)-P2(3))^2);
%% Rigidez del elemento coordenadas locales
% Vigas
%[K]=M_KMEsp(A, Ix, Iy, Iz, L, E, G);
[kv]=M_KMEsp(A, Ix, Iy, Iz, L, Ec, G);
% Columnas
%[K]=M_KMEsp(A, Ix, Iy, Iz, L, E, G);
[kc]=M_KMEsp(Ac, Ixc, Iyc, Izc, 5, Ec, G);
% Tensores
%[K]=M_KAEsp(A, L, E);
[kt]=M_KAEsp(At, Lt, Ea);

%% MATRICES DE TRANSFORMACIN
R2=20;
R1=R2/sind(90)*sind(75);
P1=[R2*cosd(0) R2*sind(0)
5];
P2=[R1*cosd(15) R1*sind(15) 5];
P3=[R2*cosd(30) R2*sind(30) 5];
P4=[R1*cosd(45) R1*sind(45) 5];
P5=[R2*cosd(60) R2*sind(60) 5];
P6=[R1*cosd(75) R1*sind(75) 5];
P7=[R2*cosd(90) R2*sind(90) 5];
P8=[R2*cosd(30) R2*sind(30) 0];
P9=[R2*cosd(30) R2*sind(30) 10];
P10=[R2*cosd(60) R2*sind(60) 0];
P11=[R2*cosd(60) R2*sind(60) 10];
% Vigas
%[TMEsp]=MT_MEsp(p1,p2,Fi);
[T1]=MT_MEsp(P1,P2,0);
[T2]=MT_MEsp(P2,P3,0);
[T3]=MT_MEsp(P3,P4,0);
[T4]=MT_MEsp(P4,P5,0);
[T5]=MT_MEsp(P5,P6,0);
[T6]=MT_MEsp(P6,P7,0);
% Columnas
%[TMEsp]=MT_MEsp(P1,P2,Fi);
[T7]=MT_MEsp(P8,P3,0);
T8=T7;
T9=T7;
T10=T7;
% Tensores
%[TAEsp]=MT_AEsp(P1,P2);
[T11]=MT_AEsp(P2,P9);
[T12]=MT_AEsp(P9,P4);
[T13]=MT_AEsp(P4,P11);
[T14]=MT_AEsp(P11,P6);

lee9=[61:66 22:27];
lee10=[22:27 43:48];
lee11=[4:6 37:39];
lee12=[37:39 16:18];
lee13=[16:18 43:45];
lee14=[43:45 28:30];
%% Ensamble
%[S]=Ens(lee,K,S,ngdl)
ngdl=48;
S=zeros(ngdl);
[S]=Ens(lee1,K1,S,ngdl);
[S]=Ens(lee2,K2,S,ngdl);
[S]=Ens(lee3,K3,S,ngdl);
[S]=Ens(lee4,K4,S,ngdl);
[S]=Ens(lee5,K5,S,ngdl);
[S]=Ens(lee6,K6,S,ngdl);
[S]=Ens(lee7,K7,S,ngdl);
[S]=Ens(lee8,K8,S,ngdl);
[S]=Ens(lee9,K9,S,ngdl);
[S]=Ens(lee10,K10,S,ngdl);
[S]=Ens(lee11,K11,S,ngdl);
[S]=Ens(lee12,K12,S,ngdl);
[S]=Ens(lee13,K13,S,ngdl);
[S]=Ens(lee14,K14,S,ngdl);
%% Carga uniforme ww en toda la viga
w=4.25;
Fx=0;
Fy=w*L/2;
Fz=0;
Mx=0;
My=0;
Mz=w*L^2/12;
aep=[Fx Fy Fz Mx My Mz
My -Mz]';

Fx Fy Fz Mx

%% Rigideces en coordenadas globales


K1=T1*kv*T1';
K2=T2*kv*T2';
K3=T3*kv*T3';
K4=T4*kv*T4';
K5=T5*kv*T5';
K6=T6*kv*T6';
K7=T7*kc*T7';
K8=T8*kc*T8';
K9=T9*kc*T9';
K10=T10*kc*T10';
K11=T11*kt*T11';
K12=T12*kt*T12';
K13=T13*kt*T13';
K14=T14*kt*T14';

AEP1=T1*aep;
AEP2=T2*aep;
AEP3=T3*aep;
AEP4=T4*aep;
AEP5=T5*aep;
AEP6=T6*aep;

%% Vector de ensamble
lee1=[49:51 1:3 4:9];
lee2=[4:9 10:15];
lee3=[10:15 16:21];
lee4=[16:21 22:27];
lee5=[22:27 28:33];
lee6=[28:33 52:54 34:36];
lee7=[55:60 10:15];
lee8=[10:15 37:42];

%% Solucin del sistema de ecuaciones


Delta=S^-1*-SAEP;
Delta(66)=0;

%% Ensamblaje SAEP
SAEP=zeros(ngdl,1);
[SAEP]=Ens_SAEP(lee1,AEP1,SAEP,ngdl);
[SAEP]=Ens_SAEP(lee2,AEP2,SAEP,ngdl);
[SAEP]=Ens_SAEP(lee3,AEP3,SAEP,ngdl);
[SAEP]=Ens_SAEP(lee4,AEP4,SAEP,ngdl);
[SAEP]=Ens_SAEP(lee5,AEP5,SAEP,ngdl);
[SAEP]=Ens_SAEP(lee6,AEP6,SAEP,ngdl);

%% Desplazamiento en coordenadas
globales
D1=Delta(lee1);
D2=Delta(lee2);

D3=Delta(lee3);
D4=Delta(lee4);
D5=Delta(lee5);
D6=Delta(lee6);
D7=Delta(lee7);
D8=Delta(lee8);
D9=Delta(lee9);
D10=Delta(lee10);
D11=Delta(lee11);
D12=Delta(lee12);
D13=Delta(lee13);
D14=Delta(lee14);
%% Desplazamientos en coordenadas de
elemento
d1=T1'*D1;
d2=T2'*D2;
d3=T3'*D3;
d4=T4'*D4;
d5=T5'*D5;
d6=T6'*D6;
d7=T7'*D7;
d8=T8'*D8;
d9=T9'*D9;
d10=T10'*D10;
d11=T11'*D11;
d12=T12'*D12;
d13=T13'*D13;
d14=T14'*D14;
%% Acciones en coordenadas de
elemento
a1=kv*d1+aep;
a2=kv*d2+aep;
a3=kv*d3+aep;
a4=kv*d4+aep;
a5=kv*d5+aep;
a6=kv*d6+aep;
a7=kc*d7;
a8=kc*d8;
a9=kc*d9;
a10=kc*d10;
a11=kt*d11;

a12=kt*d12;
a13=kt*d13;
a14=kt*d14;
av=[a1 a2 a3 a4 a5 a6];
ac=[a7 a8 a9 a10];
at=[a11 a12 a13 a14];
%% Acciones en coordenadas globales
A1=T1*a1;
A2=T2*a2;
A3=T3*a3;
A4=T4*a4;
A5=T5*a5;
A6=T6*a6;
A7=T7*a7;
A8=T8*a8;
A9=T9*a9;
A10=T10*a10;
A11=T11*a11;
A12=T12*a12;
A13=T13*a13;
A14=T14*a14;
%% Comprobacin de equilibrio y
reacciones
PR=zeros(66,1);
[PR]=Ens_SAEP(lee1,A1,PR,66);
[PR]=Ens_SAEP(lee2,A2,PR,66);
[PR]=Ens_SAEP(lee3,A3,PR,66);
[PR]=Ens_SAEP(lee4,A4,PR,66);
[PR]=Ens_SAEP(lee5,A5,PR,66);
[PR]=Ens_SAEP(lee6,A6,PR,66);
[PR]=Ens_SAEP(lee7,A7,PR,66);
[PR]=Ens_SAEP(lee8,A8,PR,66);
[PR]=Ens_SAEP(lee9,A9,PR,66);
[PR]=Ens_SAEP(lee10,A10,PR,66);
[PR]=Ens_SAEP(lee11,A11,PR,66);
[PR]=Ens_SAEP(lee12,A12,PR,66);
[PR]=Ens_SAEP(lee13,A13,PR,66);
[PR]=Ens_SAEP(lee14,A14,PR,66);
PR

3. RESULTADOS

Al momento de realizar la comprobacin de equilibrio se puede notar que los valores que
salen en las ltimas posiciones corresponden a las redundantes, y en las posiciones iniciales
deben dar valores de cero, podemos comprobar con el programa SAP2000.

Las acciones tanto locales como globales de cada uno de los elementos son las siguientes:

Podemos observar que existe una pequea diferencia entre los valores calculados por SAP2000 y
los calculados en Matlab, esto depende mucho de los valores ingresados en cada unos de los
programas.

You might also like