Está en la página 1de 16

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA CIVIL Y AMBIENTAL

HORMIGÓN III

Tarea Grupal
Desarrollo de programas para la evaluación de capacidad a
flexo-compresión uniaxial en columnas de hormigón armado
Sección Rectangular

Fecha de entrega:
23/07/2020

Perı́odo 2020-A
Miembros que conforman el equipo
Los siguientes miembros del equipo han contribuı́do en esta tarea (Orden Alfábetico):

Averos Vanessa.

Bermeo Carlos.

Castro Andrea.

López Gabriela.

Quel Alexis.

Zapata Jhoselin.

1. Descripción del Programa


Para la funcionalidad del programa para columnas de secciones rectangulares, con acero de refuerzo distri-
buido en varias capas de varillas de diámetros variables, se usó el código de lenguaje de Matlab, en donde se
trabajó conjuntamente con Interfaz (GUIDE). Para la ejecución del programa se hizo diferentes cálculos necesa-
rios para la realización de la gráfica del diagrama , en donde se utilizó lazos for para calcular la contribución del
acero desde la primera capa de varillas hasta n-capas de cada iteración, de igual manera esto ayudó a obtener
los resultados de las diferentes cargas axiales, reducidas y probables con sus respectivos momentos necesarios
para la gráfica, del mismo modo el lazo for ayudó en la obtención de los resultados de la contribución del
hormigón, también se usó la condicionante If, para hallar los valores de β1 factor de reducción φ corrección del
esfuerzo de la capa de varilla (fsi), plot para imprimir la gráfica anteriormente mencionada señalando también
el Po, To y (Pb,Mb), todo esto siendo posible con los botones, cuadros, tabla, axes de GUIDE. En otro punto
se puede manifestar que el respectivo programa toma en cuenta los perfiles de deformaciones de la sección en
la condición balanceada, por lo que intervienen las deformaciones máximas del acero y el hormigón que se dan
simultáneamente.

2. Algoritmo Propuesto (Diagrama de Flujo)

1
2
3. Código
function varargout = InterfazRectangular(varargin)
gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, ...
’gui_Singleton’, gui_Singleton, ...
’gui_OpeningFcn’, @InterfazRectangular_OpeningFcn, ...
’gui_OutputFcn’, @InterfazRectangular_OutputFcn, ...
’gui_LayoutFcn’, [] , ...
’gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%Inicio de la interfaz.
function InterfazRectangular_OpeningFcn(hObject, eventdata, handles, varargin)
%Contribución del acero.
%Variables ’datos’ se asignan en la tabla_acero en la Interfaz.
datos=get(handles.tabla_acero,’Data’);
%Asignar valores a la variable ’datos’ en la tabla_acero.
set(handles.tabla_acero,’Data’, datos);
handles.output=hObject;
guidata(hObject,handles);
%Contribución del acero.
function tabla_acero_CellEditCallback(hObject, eventdata, handles)
%Variables ’datos’ se asignan en la tabla_acero en la Interfaz.
datos=get(handles.tabla_acero,’Data’);
datos(:,:)=[]; %Tabla inicia vacı́a.
%Asignar valores a la variable ’datos’ en la tabla_acero.
set(handles.tabla_acero,’Data’, datos);
handles.output=hObject;
guidata(hObject,handles);

function edit_varillas_Callback(hObject, eventdata, handles)

function edit_varillas_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function edit_diametro_Callback(hObject, eventdata, handles)


handles.output = hObject;
guidata(hObject, handles);

function edit_diametro_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function varargout = InterfazRectangular_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

function fchormigon_Callback(hObject, eventdata, handles)

3
function fchormigon_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function fyacero_Callback(hObject, eventdata, handles)

function fyacero_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function recubrimiento_Callback(hObject, eventdata, handles)

function recubrimiento_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function base_Callback(hObject, eventdata, handles)

function base_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function altura_Callback(hObject, eventdata, handles)

function altura_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function capas_Callback(hObject, eventdata, handles)

function capas_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function factorp_Callback(hObject, eventdata, handles)

function factorp_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function estribo_Callback(hObject, eventdata, handles)

function estribo_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Ponum_Callback(hObject, eventdata, handles)

function Ponum_CreateFcn(hObject, eventdata, handles)

4
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Tonum_Callback(hObject, eventdata, handles)

function Tonum_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Pbnum_Callback(hObject, eventdata, handles)

function Pbnum_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Mbnum_Callback(hObject, eventdata, handles)

function Mbnum_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

%Botón A~
nadir Capas
function anadir_Callback(hObject, eventdata, handles)
datos=get(handles.tabla_acero,’Data’); %Variable ’datos’ se asignan en la tabla_acero.
ncapas1=get(handles.capas,’string’); %Se obtiene el valor del botón ’capas’ como variable string.
ncapas=str2double(ncapas1); %Conversión del valor de capas de string a double.
if isempty(datos) %Verificar que la tabla este vacı́a.
%Lazo for para mostrar los datos del número de capas en la primera columna de la tabla_acero.
for i=1:ncapas
capas=i;
datos{i,1}=capas; %Ubicación de la capa en la fila i columna 1.
end
else
datos{end+i,1}=capas; %Ubicación de las capas en la columna 1.
end
set(handles.tabla_acero,’Data’,datos); %Asiganar valores a la variable ’datos’ en la tabla_acero.

%Boton A~
nadir.
function pb_add_Callback(hObject, eventdata, handles)
% Declaración e ingreso de variables.
datos=get(handles.tabla_acero,’Data’); %Variable ’datos’ se asignan en la tabla_acero.
%Variable ’varillas1’ se asigna en el recuadro de edit_varillas para
varillas1=get(handles.edit_varillas,’string’); a~ nadir a la tabla_acero.
%Variable ’diametro1’ se asigna en el recuadro de edit_diametro para a~ nadir a la tabla_acero.
diametro1=get(handles.edit_diametro,’string’);
%Variable ’ncapas1’ se asignan en el recuadro de capas para a~ nadir a la tabla_acero.
ncapas1=get(handles.capas,’string’);
%Conversión del tipo de variable string a double.
varillas=str2double(varillas1);
diametro=str2double(diametro1);
ncapas=str2double(ncapas1);

%Para a~
nadir datos particulares de cada capa.
if isempty(datos) %Verificar que la tabla este vacia.

5
%Especifı́ca la ubicación de los valores.
datos{1,2}=varillas; %Ubicación del valor del número de varillas en la fila 1, columna 2.
datos{1,3}=diametro; %Ubicación del valor de diámetro de varilla en la fila 1, columna 2.
else
for i=1:ncapas
%Verificar que la tabla este vacı́a para la columna del diámetro y el número de varillas.
if(isempty(datos{i,3})&& isempty(datos{i,2}))
datos{i,2}=varillas; %Ubicación del valor del número de varillas en la fila i, columna 2.
datos{i,3}=diametro; %Ubicación del valor del diámetro de varilla en la fila i, columna 3.
break %Ingreso de datos por fila.
end
end
end
set(handles.tabla_acero,’Data’,datos); %Asiganar valores a la variable ’datos’ en la tabla_acero.

%Botón Calcular
function Calcular_Callback(hObject, eventdata, handles)
datos=get(handles.tabla_acero,’Data’); %Variable ’datos’ se asignan en la tabla_acero.
%Asignación de variables en su respectivo recuadro para a~
nadir a la tabla_acero.
varillas1=get(handles.edit_varillas,’string’);
diametro1=get(handles.edit_diametro,’string’);
ncapas1=get(handles.capas,’string’);
estribo1=get(handles.estribo,’string’);
rec1=get(handles.recubrimiento,’string’);
h1=get(handles.altura,’string’);
b1=get(handles.base,’string’);
fc1=get(handles.fchormigon,’string’);
fy1=get(handles.fyacero,’string’);
factorp1=get(handles.factorp,’string’);

%Conversión del tipo de variable string a double.


varillas=str2double(varillas1); %Número de varillas en cada capa.
diametro=str2double(diametro1); %Diámetro de las varillas de cada capa.
ncapas=str2double(ncapas1); %Número de capas.
estribo=str2double(estribo1); %Diámetro del estribo.
rec=str2double(rec1); %Recubrimiento.
h=str2double(h1); %Altura de la sección transversal de la columna.
b=str2double(b1); %Base de la sección transversal de la columna.
fc=str2double(fc1); %Resistencia a compresión del hotmigón (f´c).
fy=str2double(fy1); %Esfuerzo de fluencia del acero.
factorp=str2double(factorp1); %Factor de mayoración para la capacidad probable.

datos=get(handles.tabla_acero,’Data’); %Variable ’datos’ se asignan en la tabla_acero.


Es=0.002; %Deformación máxima del acero.
E=fy/Es; %Módulo de elasticidad del acero [kg/cm2].
%Cálculo del peralte efectivo, datos{ncapas,3} se considera la varilla de la última capa.
d=h-rec-(estribo/10)-datos{ncapas,3}/(2*10);
c=0.6*d; %Cálculo de la distancia desde la fibra extrema al eje neutro, en la condición balanceada.
%Condición Balanceada
%Lazo for para guardar los valores en su respectiva fila y columna de la tabla_aceros.
for i=1:ncapas
As1=datos{i,2}*pi()*(datos{i,3}/10)^2/4; %Cálculo del área del acero de cada capa de varillas.
datos{i,4}=As1; %Asi guardado en la fila i columna 4.
%Distancia desde el centroide de la varilla anterior al centroide de la varilla siguiente.
espa=(h-2*rec-2*(estribo/10)-datos{i,3}/(10))/(ncapas-1);
dstotal=rec+(estribo/10)+datos{i,3}/(2*10)+espa*(i-1);%Valor de dsi total a cada capa de varillas.
datos{i,5}=dstotal;
Esi=((0.003*(c-datos{i,5}))/(c)); %Cálculo de la deformación unitaria del acero de cada capa.

6
datos{i,6}=Esi;
fsi=E*datos{i,6}; %Cálculo del esfuerzo de cada capa de varillas.
datos{i,7}=fsi;
%Correción del esfuerzo de cada capa de varillas.
if datos{i,7}>fy
datos{i,8}=fy;
elseif datos{i,7}<-fy
datos{i,8}=-fy;
else
datos{i,8}=datos{i,7};
end
Fsi=(datos{i,8}*datos{i,4})/1000; %Cálculo de la fuerza interna de cada capa de acero.
datos{i,9}=Fsi;
Zsi=h/2-datos{i,5}; %Cálculo del brazo de palanca.
datos{i,10}=Zsi;
%Cálculo del momento resistente de cada cada de acero en torno
%al centroide de la sección transversal.
Msi=(datos{i,9}*datos{i,10})/100;
datos{i,11}=Msi;
end
%Se inicializa las variables en cero.
sumaArea_1=0;
sumaFsi_1=0;
sumaMsi_1=0;
%Lazo for para obtener las sumatoria total.
for i=1:ncapas
sumaArea_1=sumaArea_1+datos{i,4}; %Sumatoria total de las areas de cada capa de acero.
%Conversión de double a string para que se muestre en el recuadro de la interfaz.
sumaArea=num2str(sumaArea_1);
sumaFsi_1=sumaFsi_1+datos{i,9};%Sumatoria total de las Fuerzas internas de cada capa de acero.
sumaFsi=num2str(sumaFsi_1);
sumaMsi_1=sumaMsi_1+datos{i,11};%Sumatoria total de los Momentos resistentes de cada capa de acero.
sumaMsi=num2str(sumaMsi_1);
end

cuantia_1=(sumaArea_1/(b*h))*100; %Cálculo de la cuantia.


Cuantia=num2str(cuantia_1);%Conversión de double a string para que se muestre
%en el recuadro de la interfaz.

%Condición para encontrar Beta 1 (B) en funcion de f´c.


if fc<=280
B=0.85;
elseif (280<fc)&&(fc<=560)
B=0.85-0.05*(fc-280)/70;
else
B=0.65;
end

%Contribución del hormigón.


a_1=B*c; %Cálculo de la profundidad del bloque de compresión de Whitney.
a=num2str(a_1); %Conversión de double a string para que se muestre en el recuadro de la interfaz.
Fc_1=(a_1*b*0.85*fc)/1000; %Cálculo de la Fuerza interna del bloque de compresión.
Fc=num2str(Fc_1);
Zc_1=h/2-a_1/2; %Cálculo del brazo de palanca.
Zc=num2str(Zc_1);
%Cálculo del Momento resistente del bloque de compresión en torno al centroide de
%la sección transversal.
Mc_1=Fc_1*Zc_1/100;

7
Mc=num2str(Mc_1);

Po_1=(sumaArea_1*fy+0.85*fc*(b*h-sumaArea_1))/1000; %Cálculo de la carga axial máxima.


Po=num2str(Po_1);
To_1=(-sumaArea_1*fy)/1000; %Cálculo de la tensión máxima.
To=num2str(To_1);
Mb_1=sumaMsi_1+Mc_1; %Cálculo del Momento nominal en la condición balanceada.
Mb=num2str(Mb_1);
Pb_1=sumaFsi_1+Fc_1; %Cálculo de la Carga nominal en la condición balanceada.
Pb=num2str(Pb_1);

%Iteraciones
cmax=4*h; %c va a variar hasta 4 veces la altura de la sección.
c1=0; %Se inicializa la variable en cero.
incr=1; %c varia de acuerdo al incremento que en este caso es de 1 en 1.
iteraciones=round((cmax-c1)/incr); %Número de ciclos a iterar, round = redondea a entero.

%Datos de axial, Momento nominal y Cargas reducidas.


Pn=zeros(iteraciones,1); %Crea un vector de ceros para guardar la carga axial de cada iteración.
Mn=zeros(iteraciones,1); %Crea un vector de ceros para guardar el momento de cada iteración.

Pnr=zeros(iteraciones,1);%Crea un vector de ceros, guarda la carga axial reducida de cada iteración.


Mnr=zeros(iteraciones,1);%Crea un vector de ceros para guardar el momento reducido de cada iteración.

Pnp=zeros(iteraciones,1);%Crea un vector de ceros, guarda la carga axial probable de cada iteración.


Mnp=zeros(iteraciones,1);%Crea un vector de ceros para guardar el momento probable de cada iteración.
C=zeros(iteraciones,1);%Crea un vector de ceros para guardar el valor de c de cada iteración.

R1=zeros(iteraciones,4); %Matriz para guardar los datos de las fuerzas axiales.


R2=zeros(iteraciones,4); %Matriz para guardar los datos de momentos.

%Lazo for para variar los valores de acuerdo a las iteraciones.


for k=1:iteraciones
%Condicional para calcular el valor de c.
if k==1
c1=0;
elseif k==iteraciones
c1=c; %Último punto se almacena condición balanceada.
else
c1=c1+incr; %c varia segun el incremento.
end
C(k,1)=c1; %Vector para guardar los valores de c.
a_1=B*c1; %Cálculo de la profundidad del bloque de compresión de Whitney.
a=num2str(a_1); %Conversión de double a string para que se muestre en el recuadro de la interfaz.
Fc_1=(a_1*b*0.85*fc)/1000; %Cálculo de la Fuerza interna del bloque de compresión.
Fc=num2str(Fc_1);
Zc_1=h/2-a_1/2; %Cálculo del brazo de palanca.
Zc=num2str(Zc_1);
%Cálculo del Momento resistente del bloque de compresión en torno al centroide
% de la sección transversal.
Mc_1=Fc_1*Zc_1/100;
Mc=num2str(Mc_1);
%Contribución del acero
%Lazo for para guardar los valores de cada iteracion para la obtención de la gráfica.
for i=1:ncapas
As1=datos{i,2}*pi()*(datos{i,3}/10)^2/4; %Cálculo del area del acero de cada capa de varillas.
datos{i,4}=As1; %Asi guardado en la fila i columna 4.
%Distancia desde el centroide de la varilla anterior al centroide de la varilla siguiente.

8
espa=(h-2*rec-2*(estribo/10)-datos{i,3}/(10))/(ncapas-1);
%Valor de dsi total a cada capa de varillas.
dstotal=rec+(estribo/10)+datos{i,3}/(2*10)+espa*(i-1);
datos{i,5}=dstotal;
%Cálculo de la deformación unitaria del acero de cada iteración.
Esi=((0.003*(c1-datos{i,5}))/(c1));
datos{i,6}=Esi;
fsi=E*datos{i,6}; %Cálculo del esfuerzo de cada capa de varillas.
datos{i,7}=fsi;
%Correción del esfuerzo de cada capa de varillas.
if datos{i,7}>fy
datos{i,8}=fy;
elseif datos{i,7}<-fy
datos{i,8}=-fy;
else
datos{i,8}=datos{i,7};
end
Fsi=(datos{i,8}*datos{i,4})/1000; %Cálculo de la fuerza interna de cada capa de acero.
datos{i,9}=Fsi;
Zsi=h/2-datos{i,5}; %Cálculo del brazo de palanca.
datos{i,10}=Zsi;
%Cálculo del momento resistente de cada cada de acero en torno al centroide
%de la sección transversal.
Msi=(datos{i,9}*datos{i,10})/100;
datos{i,11}=Msi;
end
%Condición para hallar el factor de reducción en función de la deformación.
%ACI 318-19 Tabla 21.2.2 Factor de Reducción para momento, fuerza axial,
o combinación de momentos.
%Deformación unitaria de la última capa <= 0.002, abs = valor absoluto.
if abs(datos{ncapas,6})<=0.002
phid=0.65; % Factor de reducción - Controlada por compresión.
%Deformación unitaria de la última capa de ser mayor a 0.002 y menor a 0.005
elseif 0.002<abs(datos{ncapas,6})&& abs(datos{ncapas,6})<0.005
phid=0.25*(abs(datos{ncapas,6})-0.002)/(0.005-0.002)+0.65;%Factor de reducción - Transición.
else
phid=0.9; %Factor de reducción - Controlada por tracción.
end
%Se inicializa las variables en cero.
sumaArea_1=0;
sumaFsi_1=0;
sumaMsi_1=0;
%Lazo for para obtener el valor de la sumatoria de Area, Fuerza y Momento del acero
que dependen del valor de c en cada iteración.
for i=1:ncapas
sumaArea_1=sumaArea_1+datos{i,4};
sumaFsi_1=sumaFsi_1+datos{i,9};
sumaMsi_1=sumaMsi_1+datos{i,11};
end
%Contribución del hormigón
Fc_1=(a_1*b*0.85*fc)/1000; %Cálculo de la fuerza interna del bloque de compresión.
Mc_1=Fc_1*Zc_1/100; %Cálculo del momento resistente del bloque de compresión.
P=sumaFsi_1+Fc_1; %Fuerza interna total.
M=sumaMsi_1+Mc_1; %Momento resistente total.
%Condicional para que el último punto se almacene la condición balanceada.
if k==iteraciones
Pb_n=P;
Mb_n=M;

9
end
%Se guardan los resultados en vectores, cargas reducidas y cargas probables.
Pn(k,1)=P; % Carga Axial
Mn(k,1)=M; % Momentos
Pnr(k,1)=P*phid; %Carga axial reducido por deformación del acero.
Mnr(k,1)=M*phid; %Momento reducido por deformación del acero.
Pnp(k,1)=P*factorp; %Carga probable.
Mnp(k,1)=M*factorp; %Momento probable.

%Matriz que almacena los puntos de la carga axial (R1) y momentos (R2) para la gráfica.
R1(k,1)=C(k,1); %Columna 1 valores de c.
R1(k,2)=Pn(k,1); %Columna 2 carga axial.
R1(k,3)=Pnr(k,1); %Columna 3 carga reducida.
R1(k,4)=Pnp(k,1); %Columna 4 carga probable.

R2(k,1)=C(k,1); %Columa 1 valores de c.


R2(k,2)=Mn(k,1); %Columa 2 valores de momentos.
R2(k,3)=Mnr(k,1); %Columna 3 valores de momentos reducidos.
R2(k,4)=Mnp(k,1); %Columna 4 valores de momentos probable.
end

%Diagrama de Interacción de la Sección Rectangular


%Lı́nea constante de la condición balanceada.
MnX=[0,Mb_n];
PnY=[Pb_n,Pb_n];

Pn080X=[0,0.55*Mb_n]; %Lı́nea constante de la resistencia axial máxima


Pn080Y=[0.8*Po_1,0.8*Po_1]; %Lı́nea constante de la resistencia axial máxima
- ACI 318-19 Tabla 22.4.2.1

hold on %Superpone las gráficas.


plot(Mn(1:k-1,1),Pn(1:k-1,1), ’linestyle’,’-’,’color’,’b’) %Gráfica Mn,Pn.
plot(Mnr(1:k-1,1),Pnr(1:k-1,1), ’linestyle’,’--’,’color’,’g’) %Gráfica Mnr,Pnr.
plot(Mnp(1:k-1,1),Pnp(1:k-1,1), ’linestyle’,’-.’,’color’,’r’) %Gráfica Mnp,Pnp.
plot(Pn080X,Pn080Y, ’linestyle’,’--’,’color’,’black’) %Gráfica la resistencia axial máxima.
plot(MnX,PnY, ’linestyle’,’-’,’color’,’m’) %Gráfica la linea de condición balanceada.
plot(0,Po_1,’k.’,’MarkerSize’,20) %Pto Po.
plot(0,To_1,’k.’,’MarkerSize’,20) %Pto To.
plot(Mb_n,Pb_n,’k.’,’MarkerSize’,20) %Pto (Mb,Pn).

% Tı́tulos y etiquetas de cada eje


legend(’Capacidad Nominal’,’Capacidad reducida’,’Capacidad probable’,’Resistencia axial máx=0.8Po’)
title(’DIAGRAMA DE INTERACCIÓN-COLUMNA SECCIÓN CUADRANGULAR’)
xlabel(’Momentos (T.m)’)
ylabel(’Carga axial (T)’)
text(0,Pb_n+Pb_n*0.1,’Condicion balanceada c=0.6d’)
text(1.03*Mb_n,1.05*Pb_n,’(Mb,Pb)’)
text(0.7,1.08*Po_1,’Po’)
text(0.7,1.15*To_1,’To’)
axis([0,Mb_n+0.50*Mb_n,1.50*To_1-20,1.20*Po_1+200])
grid on %Muestra la cuadrı́culas
grid minor

%Asiganar valores a las variables en la Interfaz.


set(handles.tabla_acero,’Data’,datos);
set(handles.suma_As,’String’,sumaArea);
set(handles.cuantia,’String’,Cuantia);
set(handles.suma_Fsi,’String’,sumaFsi);

10
set(handles.suma_Msi,’String’,sumaMsi);
set(handles.a_c,’String’,a);
set(handles.Fc_c,’String’,Fc);
set(handles.Zc_c,’String’,Zc);
set(handles.Mc_c,’String’,Mc);
set(handles.Ponum,’String’,Po);
set(handles.Tonum,’String’,To);
set(handles.Mbnum,’String’,Mb);
set(handles.Pbnum,’String’,Pb);

function cuantia_Callback(hObject, eventdata, handles)

function cuantia_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function suma_Fsi_Callback(hObject, eventdata, handles)

function suma_Fsi_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function suma_Msi_Callback(hObject, eventdata, handles)

function suma_Msi_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function suma_As_Callback(hObject, eventdata, handles)

function suma_As_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function a_c_Callback(hObject, eventdata, handles)

function a_c_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Fc_c_Callback(hObject, eventdata, handles)

function Fc_c_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function Zc_c_Callback(hObject, eventdata, handles)

function Zc_c_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

11
function Mc_c_Callback(hObject, eventdata, handles)

function Mc_c_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end

function axes1_CreateFcn(hObject, eventdata, handles)

4. Ejemplo de Aplicación
4.1. Datos y Gráficas de la sección

Figura 1: Datos Ingresados

Figura 2: Ejemplo de sección

12
4.2. Resultados Tabulados para Cb

Figura 3: Resultados-Contribución del Acero

Figura 4: Resultados-Contribución del Hormigón-Total

4.3. Diagrama de Interacción Cn, Cp y Cr

Figura 5: Diagrama de Interacción

13
5. Reflexión Crı́tica
El programa hecho en Matlab para la realización de los diagramas de Interacción para secciones rectangu-
lares, es de gran utilidad debido a que es una representación matemática que define en su borde la capacidad
nominal máxima que puede tener una sección de hormigón armado, el cual está sometido a acciones combinadas
simultáneas de flexión y compresión, además se puede apreciar la carga axial reducida con su respectivo mo-
mento reducido, de igual forma la carga axial probable con su momento probable, que ayudan a tener una idea
de la capacidad que la sección puede llegar a desarrollar ante un sismo real, ya que la columna es un elemento
muy crı́tico de la estructura.

6. Evaluación del Equipo

Figura 6: Evaluación del Equipo

14
Figura 7: Asistencia

15

También podría gustarte