Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0.4
0.2
Resistencia de Materiales I 0
1 2
1
0
0
-1
-1
y-axis x-axis
-2 -2
Ventana de apertura de MATLAB
Editor de script
Directorio actual Área de trabajo
Ventana de comandos
2 [Moore, 2012]
Definiendo variables
Área de trabajo
Ventana de comandos
3
Operaciones escalares (calcular la masa de aire en un túnel
de viento)
Entrada
Volumen V = 1000 m3
Temperatura T = 300 K
Presión P = 100 kPa
Peso molecular MW = 29 kg/kmol
Constante de gas R = 8.314 kPa m3/kmol K
5
Cálculos matriciales con escalares (cree una tabla que
convierta libras fuerza (lbf) a newtons (N)
Entrada
Valor inicial en la tabla 0 lbf
Valor final en la tabla 1000 lbf
Incremento entre valores 100 lbf
6
Cálculos matriciales con escalares
7
Archivos-m script (cálculo del arrastre de una aeronave)
Entrada
Arrastre (drag) 20,000 N
Densidad del aire ρ 1 x 10-6 kg/m3
Rapidez V 100 mph
Área de la superficie A 1 m2
8
Archivos-m script (escribir en el editor de script)
clear, clc table =
% A Script M-file to find Drag
% First define the variables 1.0e+04 *
drag = 20000; %Define drag in Newtons
density= 0.000001; %Define air density in 0 0
kg/m^3 0.0009 0.0800
velocity = 100*0.4470; %Define velocity in 0.0018 0.3200
m/s 0.0027 0.7200
area = 1; %Define area in m^2 0.0036 1.2800
% Calculate coefficient of drag 0.0045 2.0000
cd = drag *2/(density*velocity^2*area) 0.0054 2.8800
% Find the drag for a variety of velocities 0.0063 3.9200
velocity = 0:20:200; %Redefine velocity 0.0072 5.1200
velocity = velocity*.4470 %Change velocity 0.0080 6.4800
to m/s 0.0089 8.0000
drag = cd*density*velocity.^2*area/2;
%Calculate drag
>>
table = [velocity',drag'] %Create a table
of results
9
Funciones matemáticas comunes
10
Graficas bidimensionales (títulos, etiquetas y retículas)
clear, clc
x = [0:2:18];
y = [0, 0.33, 4.13, 6.29, 6.85, 11.19, 13.19,
13.96, 16.33, 18.17];
plot(x,y)
title('Laboratory Experiment') Laboratory Experiment
20
xlabel('Time, sec' )
ylabel('Distance, ft') 18
grid 16
14
12
Distance, ft
10
0
0 2 4 6 8 10 12 14 16 18
11 Time, sec
Graficas bidimensionales (gráficas con más de una línea)
clear, clc
x = 0:pi/100:2*pi;
y1 = cos(x*4);
plot(x,y1)
y2 = sin(x); 1
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
112
Graficas bidimensionales (gráficas con más de una línea)
clear, clc
X = 0:pi/100:2*pi;
Y1 = cos(X)*2;
Y2 = cos(X)*3;
Y3 = cos(X)*4; 5
Y4 = cos(X)*5; 4
Z = [Y1; Y2; Y3; Y4];
3
plot(X, Y1, X, Y2, X,
Y3, X, Y4) 2
-1
-2
-3
-4
-5
0 1 2 3 4 5 6 7
13
Graficas bidimensionales (línea, color y estilo de marca)
clear, clc
x = [1:10];
y = [58.5, 63.8, 64.2, 67.3, 71.5, 88.3, 90.1,
90.6, 89.5,90.4];
plot(x,y,':ok')
95
90
85
80
75
70
65
60
55
1 2 3 4 5 6 7 8 9 10
14
Opciones de línea, marca y color
15
Graficas bidimensionales (línea, color y estilo de marca)
clear, clc
x = [1:10];
y = [58.5, 63.8, 64.2, 67.3, 71.5, 88.3, 90.1,
90.6, 89.5,90.4];
plot(x,y,':ok',x,y*2,'--xr',x,y/2,'-b')
200
180
160
140
120
100
80
60
40
20
1 2 3 4 5 6 7 8 9 10
16
Graficas bidimensionales (escalamiento de ejes y
anotaciones en gráficas)
clear, clc
Example graph
x = [1:10]; 200
line 1
y = [58.5, 63.8, 64.2, 67.3, 180 line 2
89.5,90.4];
140
plot(x,y,':ok',x,y*2,'--
120
xr',x,y/2,'-b')
My y label
100 Label plots with the text command
legend('line 1', 'line 2',
'line3') 80
17
Graficas bidimensionales (subgráficas )
clear, clc
x = 0:0.5:50;
y = 5*x.^2;
subplot(2,2,1)
plot(x,y)
Orden de gráficas
title('Polynomial - linear/linear')
ylabel('y'), grid 15000
Polynomial - linear/linear
15000
Polynomial - log/linear
subplot(2,2,2)
semilogx(x,y) 10000 10000
y
title('Polynomial - log/linear') 5000 5000
ylabel('y'), grid
subplot(2,2,3) 0
0 10 20 30 40 50
0
10-1 10 0 101 10 2
y
loglog(x,y)
title('Polynomial - log/log') 10
0
0
10 20 30 40 50
10 0
10-1 10 0 101 10 2
x
xlabel('x'), ylabel('y'), grid x
18
Graficas bidimensionales (gráficas x-y con dos ejes y)
clear, clc
x = 0:pi/20:2*pi;
600
y1 = sin(x);
y2 = exp(x); 400
subplot(2,1,1) 200
plot(x,y1,x,y2)
0
subplot(2,1,2)
plotyy(x,y1,x,y2) -200
0 1 2 3 4 5 6 7
1 1000
0 500
-1 0
0 1 2 3 4 5 6 7
19
Graficas tridimensionales (gráfica lineal)
clear, clc
x = linspace(0,10*pi,1000);
y = cos(x);
z = sin(x);
plot3(x,y,z)
grid A Spring
xlabel('angle')
ylabel('cos(x)') 1
zlabel('sin(x)')
0.5
title('A Spring')
sin(x)
-0.5
-1
1
0.5 40
0 30
20
-0.5
10
cos(x) -1 0 angle
200
Graficas tridimensionales (gráficas de superficie)
clear, clc
x= [-2:0.2:2]; y= [-2:0.2:2];
[X,Y] = meshgrid(x,y); Z = X.*exp(-X.^2 - Y.^2);
subplot(2,2,1)
mesh(X,Y,Z)
title('Mesh Plot'), xlabel('x-axis'), ylabel('y-axis'),
zlabel('z-axis')
subplot(2,2,2)
surf(X,Y,Z)
title('Surface Plot'), xlabel('x-axis'), ylabel('y-axis'),
zlabel('z-axis')
subplot(2,2,3)
contour(X,Y,Z)
xlabel('x-axis'), ylabel('y-axis'), title('Contour Plot')
subplot(2,2,4)
surfc(X,Y,Z)
xlabel('x-axis'), ylabel('y-axis')
title('Combination Surface and Contour Plot')
211
Graficas tridimensionales (gráficas de superficie)
0.5 0.5
z-axis
z-axis
0 0
-0.5 -0.5
2 2
2 2
0 0 0 0
-2 -2 -2 -2
y-axis x-axis y-axis x-axis
Contour Plot Combination Surface and Contour Plot
2
0.4
1
y-axis
0
0
-0.4
-1
2
2
0 0
-2
-2 -1 0 1 2 -2 -2
y-axis x-axis
x-axis
222
Funciones (find)
clear, clc
height = [63,67,65,72,69,78,75];
accept = find(height>=66)
height(accept)
accept =
2 4 5 6 7
ans =
67 72 69 78 75
>>
233
Funciones (for-if-else-elseif)
clear; clc; close all;
A =
nrows = 4;
ncols = 6;
1 1 1 1 1 1
A = ones(nrows,ncols)
1 1 1 1 1 1
for c = 1:ncols
1 1 1 1 1 1
for r = 1:nrows
1 1 1 1 1 1
if r == c
A(r,c) = 2;
elseif abs(r-c) == 1
A =
A(r,c) = -1;
else
2 -1 0 0 0 0
A(r,c) = 0;
-1 2 -1 0 0 0
end
0 -1 2 -1 0 0
end
0 0 -1 2 -1 0
end
A
>>
244
Funciones (for-if-else-elseif)
clear; clc; close all;
x = 10;
minVal = 2;
maxVal = 6;
255
Aplicación 1 : Fuerza cortante y momento flector de una
viga simplemente apoyada
266
Principio de superposición
Fuerza cortante
Verdadero
Ingresar «L» Contador
i=1
Ingresar «n»
RAi = Pi·(L – xi) / L
Contador RBi = Pi·xi / L
i=1
Ingresar «n»
RAi = Pi·(L – xi) / L
Contador RBi = Pi·xi / L
i=1
%% INGRESO DE DATOS
clear; clc; close all; % limpia variables, limpia pantalla y
cierra figuras
display('Ingresar 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)','Ubicación Xi de la fuerza Pi (i=1..n) [m]',...
'Fuerza Aplicada Pi [kN]'};
def = {'4.5', '1.8 3.6', '-60 -60'};
resp = inputdlg(prompt,tit,[1 50],def);
L=1000*sscanf(resp{1},'%f'); %Longitud total de la viga
X=1000*sscanf(resp{2},'%f'); %Ubicación 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
%Respuestas serán en m y N. Y las gráficas se escalarán para kN y kN*m
%***********************************************************************
299
Código en Matlab: Fuerzas_viga.m (continuación 2/4)
%% CÁLCULOS PRELIMINARES
n=size(X,1); %Número de cargas aplicadas en el sistema
Xr=L-X; %Longitud complementaria a la ubicación de
cada carga
for i=1:n;
Rb(i)=-P(i)*X(i)/L; %Reacción en B.
Ra(i)=-P(i)*Xr(i)/L; %Reaccion en A.
end
%**************************************************************************
40
20
-20
-40
-60
-10
-20
-40
-50
-60
-70
-80
34
Código en Matlab: CD_VigaSA.m
%% Solución de la PC1
clear; clc; close all; % Limpia variables, limpia pantalla y cierra figuras
35
Código en Matlab: CD_VigaSA.m (continuación 2/4)
36
Código en Matlab: CD_VigaSA.m (continuación 3/4)
% Para cada caso de carga distribuida
cort1 = Ra(k);
cort2 = -w(j) * ( ejex -xm(i-1) );
cort3 = +w(j) * ( ejex - xm(i) );
cortot = cort1 + cort2 .* (ejex > xm(i-1)) + cort3 .* (ejex > xm(i));
DFC = DFC + cortot;
bbb=find(DFC==max(DFC));
x2=ejex(bbb);
y2=DFC(bbb);
figure;
stem(ejex, DMF,'k','LineWidth',.01); grid on;
hold on
text(x1,y1+y1/20,
['(',num2str(x1),',',num2str(y1),')'],'HorizontalAlignment','left','FontSize',10,'color','red
','FontWeight','bold');
title('DIAGRAMA DE MOMENTO FLECTOR','FontSize',14,'color','blue'); %Título del gráfico
set(gca,'yDir','reverse')
36
Ejecución del script: MI_CircElipTubo.m
DIAGRAMA DE FUERZA CORTANTE
30 (0,26.35)
20
10
-10
-20
-30
0 1 2 3 4 5 6 7 8 9 10
10
20
30
40
50
60
70
80
0 1 2 3 4 5 6(6,78.6)7 8 9 10
37
Aplicación 3 : Fuerza cortante y momento flector para un
tren de cargas
38
Código en Matlab: Diagr_Tren_cargas.m
clear; clc; close all; % limpia todo
%Solicite entrada del usuario
wp=input('Peso propio del puente (kN/m)=')
W=input('Contrapeso (kN)=')
L=input('Longitud del puente (m)=')
a=input('Ángulo del cable (°)=')
xd=input('Ubicación del punto D (m)=')
n=L/.1;%numero de veces que se mueve el tren de cargas
x(1)=0;
T(1)=(132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));%Tensión total de cables
t(1)=T(1)/2;%Tensión en un cable
RA(1)=W+220+wp*4*L/3-T(1)*sin(a*pi/180);%Reacción en A
m=xd/0.1;
39
Código en Matlab: Diagr_Tren_cargas.m (continuación 2/2)
%Graficando las variaciones de la reacción en A, el momento flector en D y
%la tensión en los cables
if (0 <= xd) & (xd <= 1.2)
Md(1)=RA(1)*xd-110*xd-W*(L/3+xd);%Momento en D
for i=1:12
x(i+1)=x(i)+0.1;
T(i+1)=(22*x(i+1)/0.1+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
t(i+1)=T(i+1)/2;
RA(i+1)=W+220+wp*4*L/3-T(i+1)*sin(a*pi/180);
Md(i+1)=RA(i+1)*xd-110*(xd-0.10*x(i+1)/0.1)-W*(L/3+xd);
end
for i=13:n
x(i+1)=x(i)+0.1;
T(i+1)=(22*x(i+1)/0.1+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
t(i+1)=T(i+1)/2;
RA(i+1)=W+220+wp*4*L/3-T(i+1)*sin(a*pi/180);
Md(i+1)=RA(i+1)*xd-W*(L/3+xd);
end
40
Código en Matlab: MI_CircElipTubo.m (continuación 2/5)
else
Md(1)=RA(1)*xd-110*xd-W*(L/3+xd)-110*(xd-1.2);
for i=1:m
x(i+1)=x(i)+0.1;
T(i+1)=(22*x(i+1)/0.1+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
t(i+1)=T(i+1)/2;
RA(i+1)=W+220+wp*4*L/3-T(i+1)*sin(a*pi/180);
Md(i+1)=RA(i+1)*xd-W*(L/3+xd)-110*(xd-0.10*x(i+1)/0.1)-110*(xd-0.10*x(i+1)/0.1-1.2);
end
for i=m+1:m+12
x(i+1)=x(i)+0.1;
T(i+1)=(22*x(i+1)/0.1+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
t(i+1)=T(i+1)/2;
RA(i+1)=W+220+wp*4*L/3-T(i+1)*sin(a*pi/180);
Md(i+1)=RA(i+1)*xd-W*(L/3+xd)-110*(xd-0.10*x(i+1)/0.1);
end
for i=m+13:n
x(i+1)=x(i)+0.1;
T(i+1)=(22*x(i+1)/0.1+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
t(i+1)=T(i+1)/2;
RA(i+1)=W+220+wp*4*L/3-T(i+1)*sin(a*pi/180);
Md(i+1)=RA(i+1)*xd-W*(L/3+xd);
end
end
41
Código en Matlab: Diagr_Tren_cargas.m (continuación 3/5)
end
subplot(2,3,1)
plot(x,RA)
title('Variación de la reacción en A')
xlabel('Posición de la carga vehicular desde A'),ylabel('Reacción en A'),grid
subplot(2,3,2)
plot(x,-Md)
title('Variación del momento flector en D')
xlabel('Posición de la carga vehicular desde A'),ylabel('Momento en D'),grid
subplot(2,3,3)
plot(x,t)
title('Variación de la tensión en un cable')
xlabel('Posición de la carga vehicular desde A'),ylabel('Tensión en un cable'),grid
42
Código en Matlab: Diagr_Tren_cargas.m (continuación 4/5)
%Graficando las envolventes
for k=1:n-12 % Variación del tren de cargas
p=4*L/3/0.10;
xp(1)=0;
T(k)=(22*k+132+wp*4*L*L/9-W*L/3)/(L*sin(a*pi/180));
RA(k)=W+220+wp*4*L/3-T(k)*sin(a*pi/180);
for j=1:p %variación de la fuerza normal, fuerza cortante, y momento flector
N(1)=0;
V(1)=-W-wp*xp(1);
M(1)=-W*xp(1)-wp*xp(1)*xp(1)/2;
xp(j+1)=xp(j)+0.10;
if (0 <= xp(j+1)) & (xp(j+1) < L/3)
N(j+1)=0;
V(j+1)=-W-wp*xp(j+1);
M(j+1)=-W*xp(j+1)-wp*xp(j+1)*xp(j+1)/2;
elseif (L/3 <= xp(j+1)) & (xp(j+1) < L/3+0.10*k)
N(j+1)=-T(k)*cos(a*pi/180);
V(j+1)=RA(k)-W-wp*xp(j+1);
M(j+1)=RA(k)*(xp(j+1)-L/3)-W*xp(j+1)-wp*xp(j+1)*xp(j+1)/2;
elseif (L/3+0.10*k <= xp(j+1)) & (xp(j+1) < L/3+0.10*k+1.2)
N(j+1)=-T(k)*cos(a*pi/180);
V(j+1)=RA(k)-W-wp*xp(j+1)-110;
M(j+1)=RA(k)*(xp(j+1)-L/3)-W*xp(j+1)-wp*xp(j+1)*xp(j+1)/2-110*(xp(j+1)-L/3-0.10*k);
43
Código en Matlab: Diagr_Tren_cargas.m (continuación 5/5)
else
N(j+1)=-T(k)*cos(a*pi/180);
V(j+1)=RA(k)-W-wp*xp(j+1)-220;
M(j+1)=RA(k)*(xp(j+1)-L/3)-W*xp(j+1)-wp*xp(j+1)*xp(j+1)/2-110*(xp(j+1)-L/3-0.10*k)-
110*(xp(j+1)-L/3-0.10*k-1.2);
end
end
subplot(2,3,4)
plot(xp,N)
hold on
title('Envolvente de fuerza normal')
xlabel('x'),ylabel('Fuerza normal'),grid on
subplot(2,3,5)
plot(xp,V)
hold on
title('Envolvente de fuerza cortante')
xlabel('x'),ylabel('Fuerza cortante'),grid on
subplot(2,3,6)
plot(xp,-M)
hold on
title('Envolvente del momento flector')
xlabel('x'),ylabel('Momento flector'),grid on
end
44
Ejecución del script: Diagr_Tren_cargas.m
45
Ejecución del script: Diagr_Tren_cargas.m (continuación
2/2)
Variación de la reacción en A Variación del momento flector en D Variación de la tensión en un cable
2000 -5200 250
1950 -5400
Tensión en un cable
200
Momento en D
Reacción en A
1900 -5600
150
1850 -5800
100
1800 -6000
1750 -6200 50
0 5 10 15 0 5 10 15 0 5 10 15
Posición de la carga vehicular desde A Posición de la carga vehicular desde A Posición de la carga vehicular desde A
Envolvente de fuerza normal Envolvente de fuerza cortante Envolvente del momento flector
0 1000 1000
-50 0
500
Momento flector
Fuerza cortante
Fuerza normal
-100 -1000
0
-150 -2000
-500
-200 -3000
-1000
-250 -4000
46
Aplicación 4 : DFC y DMF
SOLUCIÓN:
• Tratar a la viga entera como un
cuerpo rígido, determine las fuerzas
de reacción.
• Seccione la viga a una distancia del
extremo final.
Dibuje los diagramas de cortante y • Aplicar análisis de equilibrio sobre
momento flector para una viga AB en
el diagrama de cuerpo libre para
voladizo con un claro L que soporta una
determinar la fuerza cortante y el
carga uniformemente distribuida w.
momento flector.
47
Aplicación 4 : DFC y DMF
SOLUCIÓN:
• Se corta la viga en un punto C entre A y B y
se dibuja el diagrama de cuerpo libre de AC
- Fuerza cortante,
V wx
- Momento flector,
1
M wx 2
2
48
Aplicación 4 : DFC y DMF
- Fuerza cortante
- Momento flector
49
Aplicación 5 : Deformación de un elemento truncado
47