Método de Rigidez en Estructuras

100% encontró este documento útil (1 voto)
162 vistas6 páginas
Este documento presenta el método de la matriz de rigidez para resolver viga y pórtico mediante MATLAB. Explica el código para calcular la matriz de rigidez global considerando los grados de…

METODO DE RIGIDEZ

UNIDAD III
METODO DE LA MATRIZ DE RIGIDEZ
RESOLVER LA VIGA

MEDIANTE EL METODO DE LA RIGIDEZ USANDO MATLAB


DATOS DE INGRESO:
I1=1
I2=1
LL1=3
LL2=5
W=20
P=40

CODIGO:
%% METODO DE MATRIZ DE RIGIDEZ
% ANALISIS ESTRUCTURAL II - UNIVERSIDAD CONTINENTAL
clc;
clear;
%NN=input('Ingrese el numero de tramos \n');
I1=input('Ingrese el EI del miembro AB (KNxM^2)\n');
I2=input('Ingrese el EI del miembro BC (KNxM^2)\n');
LL1=input('Ingrese la longitud del elemento AB (m)\n');
LL2=input('Ingrese la longitud del elemento BC (m)\n');
W=input('Ingrese la carga distribuida AB (kN/m)\n');
P=input('Ingrese la carga puntual BC (kN)\n');
n = 2;% Numero de elementos
I=[I1 I2];% MOMENTO DE INERCIA EN M4
L=[LL1 LL2];% LONGITUD EN M
% GRADOS DE LIBERTAD GENERAL
uu=2; % NUMERO DE GRADOS DE LIBERTAD LIBERADOS
ur=4; % NUMERO DE GRADOS DE LIBERTAD RESTRINGIDOS
uul=[1 2]; % NUMERACION DE GRADOS DE LIBERTAD LIBERADOS
url=[3 4 5 6]; % NUMERACION DE GRADOS DE LIBERTAD RESTRINGIDO
% GRADOS DE LIBERTAD POR ELEMENTO
l1=[3 1 4 5]; % GRADOS DE LIBERTAD GENERALES PARA MIEMBRO 1
l2=[1 2 5 6]; % GRADOS DE LIBERTAD GENERALES PARA MIEMBRO 2
l=[l1;l2];
dof=uu+ur;
Ktotal=zeros(dof);
MEP1=[W*LL1^2/12 -W*LL1^2/12 W*LL1/2 W*LL1/2]; % MEP MIEMBRO 1
MEP2=[P*LL2/8 -P*LL2/8 P/2 P/2]; % MEP MIEMBRO 2
% LAS REACCIONES EN LOS APOYOS

ANALISIS ESTRUCTURAL II
METODO DE RIGIDEZ

jl=[-(W*LL1^2/12-P*LL2/8);P*LL2/8;-W*LL1^2/12;-W*LL1/2;-W*LL1/2-P/2;-P/2]; %
REACCIONES EN kN o kN.m
jlu=[(W*LL1^2/12-P*LL2/8);P*LL2/8]; %VECTOR CARGAS EN GDL LIBERADOS
%% COEFICIENTES DE RIGIDEZ EN CADAD ELEMENTO
rc1 = 4.*I./L;
rc2 = 2.*I./L;
%% MATRIZ DE RGIDIEZ 4 X 4 (SIN DEFORMACION AXIAL)
for i = 1:n
Knew = zeros (dof);
k1 = [rc1(i); rc2(i); (rc1(i)+rc2(i))/L(i);
(-(rc1(i)+rc2(i))/L(i))];
k2 = [rc2(i); rc1(i); (rc1(i)+rc2(i))/L(i);
(-(rc1(i)+rc2(i))/L(i))];
k3 = [(rc1(i)+rc2(i))/L(i); (rc1(i)+rc2(i))/L(i);
(2*(rc1(i)+rc2(i))/(L(i)^2)); (-2*(rc1(i)+rc2(i))/(L(i)^2))];
k4 = -k3;
K = [k1 k2 k3 k4];
fprintf ('NUMERO DE MIEMBRO =');
disp (i);
fprintf ('MATRIZ DE RIGIDEZ POR ELEMENTO, [K] = \n');
disp (K);
for p = 1:4
for q = 1:4
Knew((l(i,p)),(l(i,q))) =K(p,q);
end
end
Ktotal = Ktotal + Knew;
if i == 1
Kg1=K;
else
Kg2 = K;
end
end

fprintf ('MATRIZ DE RIGIDEZ COMPLETA DE LA ESTRUCTURA,[Ktotal]=\n');


disp (Ktotal);
Kunr = zeros(uu);
for x=1:uu
for y=1:uu
Kunr(x,y)= Ktotal(x,y);
end
end
fprintf ('SUBMATRIZ DE RIGIDEZ LIBERADO,[Kuu]=\n');
disp (Kunr);
KuuInv= inv(Kunr);
fprintf('INVERSA DE SUBMATRIZ DE RIGIDEZ LIBERADO,[KuuInversa]=\n');
disp (KuuInv);
%% CALCULAR LOS DESPLAZAMIENTOS
delu = KuuInv*jlu;
fprintf ('VECTOR DE REACCION EN NUDOS, [Jl] = \n');
disp (jl');
fprintf ('DESPLAZAMIENTOS NO LIBERADOS, [DelU] = \n');
disp (delu');
delr = zeros (ur,1);
del = [delu; delr];
deli= zeros (4,1);
for i = 1:n
for p = 1:4
deli(p,1) = del((l(i,p)),1) ;

ANALISIS ESTRUCTURAL II
METODO DE RIGIDEZ

end
if i == 1
delbar1 = deli;
mbar1= (Kg1 * delbar1)+MEP1';
fprintf ('ELEMENTO AB');
disp (i);
fprintf ('MATRIZ DESPLAZAMIENTO GLOBAL [DeltaBar] =\n');
disp (delbar1');
fprintf ('MATRIZ DE MOMENTOS EN EXTREMOS [MBar] = \n');
disp (mbar1');
else
delbar2 = deli;
mbar2= (Kg2 * delbar2)+MEP2';
fprintf ('MIEMBRO BC');
disp (i);
fprintf ('DESPLAZAMIENTO GLOBAL ESTRUCTURA [DeltaBar] =\n');
disp (delbar2');
fprintf ('MATRIZ DE MOMENTOS GLOBALES [MBar] = \n');
disp (mbar2');
end
end

%% VERIFICACIONES
mbar = [mbar1'; mbar2'];
jf = zeros(dof,1);
for a=1:n
for b=1:4 % tamaño de la matriz
d = l(a,b);
jfnew = zeros(dof,1);
jfnew(d,1)=mbar(a,b);
jf=jf+jfnew;
end
end
fprintf ('FUERZAS EN ELEMENTOS = \n');
disp (jf');

ANALISIS ESTRUCTURAL II
METODO DE RIGIDEZ

RESOLVER EL PORTICO

MEDIANTE EL METODO DE LA RIGIDEZ USANDO MATLAB

CODIGO:
%% UNIDAD III - METODO DE MATRIZ DE RIGIDEZ
% ANALISIS ESTRUCTURAL II - UNIVERSIDAD CONTINENTAL
% INGRESO DE DATOS
clc;
clear;
n=3;% numero de elementos
I=[2 1 2]; %Momentos de inercia en m4
L=[6 4 6]; %Longitud en m
uu=2; %Numero de GDL con desplazamiento
ur=7; %Numero de GDL sin deplezamiento
uul=[1 2];% GDL con desplazamiento
url=[3 4 5 6 7 8 9];% GDL restringidos
l1=[1 3 9 4];% GDL totales para el elemento 1
l2=[1 2 5 8];% GDL totales para el elemento 2
l3=[2 6 9 7];% GDL totales para el elemento 3
l=[l1;l2;l3];
dof=uu+ur; %GDL TOTAL
Ktotal=zeros(dof);
fem1=[-36 36 -36 -36]; %MEP para el elemento 1
fem2=[25 -25 25 25]; %MEP para el elemento 2

ANALISIS ESTRUCTURAL II
METODO DE RIGIDEZ

fem3=[-31.111 -35.556 -23.333 -26.667]; %MEP para el elemento 3


%% COEFICIENTES DE ROTACION PARA CADA MIEMBRO
rc1 = 4.*I./L;
rc2 = 2.*I./L;
%% MATRIZ DE RIGIDEZ 4 X 4 (IGNORO AXIAL) POR ELEMENTO
for i = 1:n
Knew = zeros (dof);
k1 = [rc1(i); rc2(i); (rc1(i)+rc2(i))/L(i);
(-(rc1(i)+rc2(i))/L(i))];
k2 = [rc2(i); rc1(i); (rc1(i)+rc2(i))/L(i);
(-(rc1(i)+rc2(i))/L(i))];
k3 = [(rc1(i)+rc2(i))/L(i); (rc1(i)+rc2(i))/L(i);
(2*(rc1(i)+rc2(i))/(L(i)^2)); (-2*(rc1(i)+rc2(i))/(L(i)^2))];
k4 = -k3;
K = [k1 k2 k3 k4];
fprintf ('MIEMBRO :');
disp (i);
fprintf ('MATRIZ DE RIGIDEZ LOCAL POR MIEMBRO, [K] = \n');
disp (K);
for p = 1:4
for q = 1:4
Knew((l(i,p)),(l(i,q))) =K(p,q);
end
end
Ktotal = Ktotal + Knew;
if i == 1
Kg1=K;
elseif i == 2
Kg2 = K;
else
Kg3=K;
end
end
%% MATRIZ DE RIGIDIZ TOTAL
fprintf ('MATRIZ DE RIGIDEZ COMPLETA DE LA ESTRUCTURA, [Ktotal] = \n');
disp (Ktotal);
Kunr = zeros(uu);
for x=1:uu
for y=1:uu
Kunr(x,y)= Ktotal(x,y);
end
end
%% OBTENGO LOS DEPLAZAMIENTOS
fprintf ('SUBMATRIZ DE LOS GDL CON DEPLAZAMIENTO, [Kuu] = \n');
disp (Kunr);
KuuInv= inv(Kunr);
fprintf ('INVERSA DE LA MATRIZ DE RIGIDEZ CON DESPLAZAMIENTOS,[KuuInverse]
= \n');
disp (KuuInv);

%% CREACION DEL VECTOR DE REACCION EN NUDOS


jl= [31; 86.111; -36; 36; -25; -35.556; 26.665; -25; 59.333]; % VALORES EN kN
o KN*m
jlu = [31; 86.111]; % VECTOR DE REACCION DE GDL CON DESPLAZAMIENTO
delu = KuuInv*jlu;
fprintf ('VECTOR DE REACCION EN NUDOS, [Jl] = \n');
disp (jl');
fprintf ('DESPLAZAMIENTOS TOTALES DE GDL , [DelU] = \n');
disp (delu');

ANALISIS ESTRUCTURAL II
METODO DE RIGIDEZ

delr = zeros (ur,1);


del = [delu; delr];
deli= zeros (4,1);
for i = 1:n
for p = 1:4
deli(p,1) = del((l(i,p)),1) ;
end
if i == 1
delbar1 = deli;
mbar1= (Kg1 * delbar1)+fem1';
fprintf ('ELEMENTO AB =');
disp (i);
fprintf ('MATRIZ DESPLAZAMIENTO GLOBAL [DeltaBar] = \n');
disp (delbar1');
fprintf ('MATRIZ DE REACCIONES GLOBALES EN EXTREMOS [MBar] = \n');
disp (mbar1');
elseif i == 2
delbar2 = deli;
mbar2= (Kg2 * delbar2)+fem2';
fprintf ('ELEMENTO BC=');
disp (i);
fprintf ('MATRIZ DESPLAZAMIENTO GLOBAL [DeltaBar] = \n');
disp (delbar2');
fprintf ('MATRIZ DE REACCIONES GLOBALES EN EXTREMOS [MBar] = \n');
disp (mbar2');
else
delbar3 = deli;
mbar3= (Kg3 * delbar3)+fem3';
fprintf ('ELEMENTO CD =');
disp (i);
fprintf ('MATRIZ DESPLAZAMIENTO GLOBAL [DeltaBar] = \n');
disp (delbar3');
fprintf ('MATRIZ DE REACCIONES GLOBALES EN EXTREMOS [MBar] = \n');
disp (mbar3');
end
end

%% VERIFICAMOS
mbar = [mbar1'; mbar2'; mbar3'];
jf = zeros(dof,1);
for a=1:n
for b=1:4 % TAMAÑO DE LA MATRIZ
d = l(a,b);
jfnew = zeros(dof,1);
jfnew(d,1)=mbar(a,b);
jf=jf+jfnew;
end
end
fprintf ('FUERZAS EN NUDOS = \n');
disp (jf');

ANALISIS ESTRUCTURAL II

También podría gustarte