Está en la página 1de 3

% Solucin

% Se procedera a sustentar el anlisis para cada carga de manera independiente. por


lo consiguiente,
% asumimos por superposicin se procedera a sumar las respuestas para obtener la
respuesta
% total. El grfico de dichos diagramas se realiza de manera moderada.
% Nota: El programa no procedera a calcular las reacciones de cargas puntuales
ubicadas sobre los apoyos

%% INGRESO DE DATOS

clear; clc; close all; % limpia variables, limpia pantalla y cierra


figuras
display('Ingresamos las ubicaciones y el valor de las cargas correspondientes
dejando un espacio.')
display('El signo negativo de las cargas indican el sentido de la gravedad')
tit = 'Viga sometida a Cargas Puntuales';
prompt = {'Long. Viga (m)','Ubicacin Xi de la fuerza Pi (i=1..n) [m]','Fuerza
Aplicada Pi [kN]','Cargas Distribudas aplicadas Wi [kN/m]'};
def = {'6', '2.5 3.5', '-40 -20','40 10'};
resp = inputdlg(prompt,tit,[1 50],def);
L=1000*sscanf(resp{1},'%f'); %Longitud total de la viga
X=1000*sscanf(resp{2},'%f'); %Ubicacin Xi de las cargas aplicadas
P=sscanf(resp{3},'%f')*10^3; %Valor de las cargas aplicadas [N]
%Signo negativo = sentido de gravedad
%Signo positivo = sentido hacia arriba
w=sscanf(resp{4},'%f'); %Valor de la cargas distribuda [KN/m o N/mm]

%Las respuestas sern en m y N. Y las grficas se escalarn para kN y kN*m

%-------------------------------------------------------------------------------

%% CLCULOS PREVIOS

n=size(X,1); %Nmero de cargas aplicadas en el sistema


Xr=L-X; %Longitud complementaria a la ubicacin de cada
carga

%La creacin de Vectores para almacenar las respuestas


Ra=zeros(n,1); %Reaccin en A
Rb=zeros(n,1); %Reaccin en B
%--------------------------------------------------------------------------------

%% Clculamos las reacciones en A y B para cada carga independiente.

for i=1:n;
Rb(i)=-P(i)*X(i)/L; %Reaccin en B.
Ra(i)=-P(i)*Xr(i)/L; %Reaccion en A.
end

%--------------------------------------------------------------------------------

%% Crearemos los vectores para almacenar respuestas para las grficas

%Se discretizar la viga para su anlisis y respuesta

Xgraf=0:1:L; %Posicin en X para cada punto graficado


igraf=max(size(Xgraf)); %Discretizado de la viga
VgrafP=zeros(size(Xgraf)); %Fuerza cortante por Cargas Puntuales para la
grfica
VgrafW=zeros(size(Xgraf)); %Fuerza cortante por Carga Distribuda para la
grfica
MgrafP=zeros(size(Xgraf)); %Momento flector para la grfica por P
MgrafW=zeros(size(Xgraf)); %Momento flector para la grfica por W

%Cada valor pertenecer a cada punto de la discretizacin

%-------------------------------------------------------------------------------

%% Fuerza Cortante V

%(sentido positivo hacia abajo)

%Aporte de las cargas puntuales P

for i=1:n
Vizq=Ra(i); %Fuerza cortante a la izquierda de la carga
Vder=Ra(i)+P(i); %Fuerza cortante a la derecha de la carga
for j=1:X(i)
VgrafP(j)=VgrafP(j)+Vizq;
%Sumamos todas las fuerzas cortantes generadas a la izquierda de las cargas
aplicadas y almacenadas en Vgraf
end
for j=X(i)+1:L+1
VgrafP(j)=VgrafP(j)+Vder;
%Sumamos todas las fuerzas cortantes generadas a la derecha de las cargas
aplicadas y almacenadas en Vgraf
end
end

RaP=sum(Ra); %Reaccin total en el apoyo A [N]


RbP=sum(Rb); %Reaccin total en el apoyo B [N]

%Aporte de la carga distribuida W


VgrafW(1)=w(1)*X(1)/2;
VgrafW(X(1)+1)=VgrafP(X(1)+1)-w(1)*X(1)/2;
VgrafW(L+1)=VgrafP(X(2)+1)-w(2)*X(2)/2;
RbW=(w(1)*X(1)*X(1)/2+((X(2)-X(1))/2+X(1))*(X(2)-X(1))*w(2))/L;
RaW=w(1)*X(1)+(X(2)-X(1))*w(2)-RbW;

for k=1:1:X(1)
VgrafW(k+1)=RaW-w(1)*k;
end
for k=(X(1)+1):1:L
VgrafW(k+1)=RaW-w(2)*k;
end

Vgraf=VgrafW+VgrafP;
RA=RaP+RaW;
RB=RbP+RbW;

% Grfica de la Fuerza Cortante [kN]


figure('Color',[1 1 1]);
stem(Xgraf/1000,Vgraf/1000,'MarkerFaceColor',[0 0 0],'MarkerEdgeColor',...
[0 0 0],'MarkerSize',4,'Marker','.')
axis([-inf,L/1000,-inf,inf])
title('Grfica de la Fuerza Cortante de la Viga')
xlabel('Eje longitudinal[m]') % x-axis label
ylabel('Fuerza Cortante [kN]') % y-axis label

%----------------------------------------------------------------------------------
----------

%% Momento Flector M
%(valor positivo cuando genere tensiones debajo de la viga)

%Aporte de las cargas puntuales P

for i=1:n
for j=1:X(i)
Mizq=Ra(i)*Xgraf(j)-w(1)*Xgraf(j)*Xgraf(j)/2; MgrafP(j)=MgrafP(j)+Mizq;
%Sumamos todos los momentos flectores generadas a la izquierda de las
cargas aplicadas y almacenadas en Mgraf
end

for j=X(i)+1:L+1
Mder=Rb(i)*(L-Xgraf(j))-((L-Xgraf(j))*(L-Xgraf(j))/2)*w(2);
MgrafP(j)=MgrafP(j)+Mder;
%Sumamos todos los momentos flectores generadas a la derecha de las cargas
aplicadas y almacenadas en Mgraf
end
end

%Aporte de la carga distribuida W

%Mmaxw=w*L^2/8;
%for k=1:1:L
%MgrafW(k+1)=RaW*k-w*k^2/2;
%end
Mgraf=MgrafP;
Mgraf=Mgraf/1000;
%[Mmax, LocationJ] = max(Mgraf(:)); %Extraccin del valor mximo
%Mmax; %Momento Flector mximo de la viga
%Xmax=Xgraf(LocationJ)/1000; %Ubicacin del Momento Flector mximo

% Grfica del Momento Flector [kN-m]


figure('Color',[1 1 1]);
stem(Xgraf/1000,-Mgraf/1000,'MarkerFaceColor',[0 0 0],'MarkerEdgeColor',[0 0
0],'MarkerSize',4,'Marker','.')
axis([-inf,L/1000,-inf,inf])
title('Grfica del Momento Flector de la Viga')
xlabel('Eje longitudinal[m]') %x-axis label
ylabel('Momento Flector [kN-m]') %y-axis label

%----------------------------------------------
%FINALIZAMOS EL ANALISIS DE VIGA
%-----------------------------------------------------------