Professional Documents
Culture Documents
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.
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];
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
2. DESARROLLO
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
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];
%% 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.