0% encontró este documento útil (0 votos)
124 vistas3 páginas

Código Matlab para Armaduras 2D

Este documento presenta el código de Matlab para analizar armaduras 2D utilizando el método de rigideces. Primero importa los datos de nodos y barras de un archivo Excel, luego extrae la información relevante como coordenadas, uniones y grados de libertad. A continuación, calcula las matrices locales y transformadas de rigidez para cada barra y ensambla la matriz global de rigidez. Finalmente, determina los desplazamientos, reacciones y fuerzas internas. Incluye código adicional para considerar apoyos inclinados.

Cargado por

Bryan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
124 vistas3 páginas

Código Matlab para Armaduras 2D

Este documento presenta el código de Matlab para analizar armaduras 2D utilizando el método de rigideces. Primero importa los datos de nodos y barras de un archivo Excel, luego extrae la información relevante como coordenadas, uniones y grados de libertad. A continuación, calcula las matrices locales y transformadas de rigidez para cada barra y ensambla la matriz global de rigidez. Finalmente, determina los desplazamientos, reacciones y fuerzas internas. Incluye código adicional para considerar apoyos inclinados.

Cargado por

Bryan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Código de Matlab:

%% -----------------Armaduras 2D Por el Método de


Rigideces----------------
% _Programa Desarrollado con fines académicos_
%% Importación de Datos
% El programa se apoya en un formato universal de excel, de
donde se
% extraerá la mayoría de la información necesaria para la
solución del
% mismo.
format shortg
DATA=xlsread('[Link]',1); %Información de
BARRAS
DATA_Nodos=xlsread('[Link]',2); %Información de
NODOS
%% Extracción de Información
COORD=DATA_Nodos(:,[2 3]); %Ubicación de nodos
UNION_Barras=DATA(:,[2 3]); %Uniones de nodos
(barras)
GDL=DATA(:,10:13); %Grados de Libertad
por barra
Incl_rel=DATA(:,14); %Inclinaciones
relativas de apoyos inclinados
%% Inicio del Algortimo - Información Preliminar
%Información Básica
n_Barras=size(DATA,1);
n_GDL=size(COORD,1)*2;
%Inputs básicos
n_GDL_libres=input('Por favor ingrese el numero de grados de
libertad libres :');
Vfuerzas=input('Ingrese vector de fuerzas en los gdl libres :');
Settle=input('Ingrese el vector de asentamientos :');
%Asentamientos en GDL_rest
n_GDL_Rest=n_GDL-n_GDL_libres;
F_gld_rest=input('Ingrese el vector de fuerzas en los gdl
rest :');
%Prealocating Arrays
Kloc=zeros(4,4,n_Barras); %Matriz local x
barra
Ke=zeros(4,4,n_Barras); %Matriz transformada
x barra
T=zeros(4,4,n_Barras); %Transformada de
barra
K=zeros(n_GDL); %Matriz de rigidez
global
F_INT=zeros(4,1,n_Barras); %Matriz de Fuerzas
Internas
F=zeros(n_Barras,1); %Vector de F.
Internas
%% Desarrollo del algoritmo - Cálculo de Matriz de Rigidez
global

%X1=DATA(:,4);Y1=DATA(:,5);X2=DATA(:,6);Y2=DATA(:,7);E=DATA(:,8)
;A=DATA(:,9);ID=DATA(:,1);
%Desarrollo de matrices locales

INCL=input('Existen apoyos inclinados? (0:no 1:si):');


for i=1:n_Barras
[Ke(:,:,i),T(:,:,i),Kloc(:,:,i)] =
rigidez_barra(DATA(i,4),DATA(i,5),DATA(i,6), ...
DATA(i,7),DATA(i,8),DATA(i,9),DATA(i,1));
end
%%Para apoyo inclinado
if INCL==1
Dec1=input('Que barras desea corregir');
for i=Dec1
[Ke(:,:,i), T(:,:,i),
Kloc(:,:,i)]=rgz_ap_incl(DATA(i,4),DATA(i,5),DATA(i,6), ...
DATA(i,7),DATA(i,8),DATA(i,9),DATA(i,1),Incl_rel(i,1));
end
for i=1:n_Barras
K=agregar_barra(Ke(:,:,i),GDL(i,:),K);
end
%% Cálculos adicionales
% Determinación de Desplazamientos

D1=sol_desplazamientos(K,n_GDL,n_GDL_libres,Vfuerzas,Settle);
%GDL libres
D=[D1;zeros(n_GDL_Rest,1)+Settle'];
%General
% Determinación de las Reacciones en los GDL restringidos
R=reacciones(K,D1);
R=R+F_gld_rest;
%Considerando fuerzas en nodos
% Determinación de Fuerzas Internas
for i=1:n_Barras
F_INT(:,:,i)= Fuer_Int(Kloc(:,:,i),T(:,:,i),GDL(i,:),
D);
F(i)=F_INT(1,1,i);
%Vector de F_int
end
else %Para situaciones normales
for i=1:n_Barras
K=agregar_barra(Ke(:,:,i),GDL(i,:),K);
end
%% Cálculos adicionales
% Determinación de Desplazamientos
D1=sol_desplazamientos(K,n_GDL,n_GDL_libres,Vfuerzas,Settle);
%GDL libres
D=[D1;zeros(n_GDL_Rest,1)+Settle'];
%General
% Determinación de las Reacciones en los GDL restringidos
R=reacciones(K,D1);
R=R+F_gld_rest;
%Considerando fuerzas en nodos
% Determinación de Fuerzas Internas
for i=1:n_Barras
F_INT(:,:,i)= Fuer_Int(Kloc(:,:,i),T(:,:,i),GDL(i,:), D);
F(i)=F_INT(1,1,i);
%Vector de F_int
end
end

También podría gustarte