1. ESCUELA SUPERIOR POLITECNICA DEL
LITORAL
INSTITUTO DE CIENCIAS FISICAS
MAESTRIA DE ENSEÑANZA DE LA FISICA
FÍSICA COMPUTACIONAL
“PROYECTO: CÁLCULO DEL TRABAJO NETO EFECTUADO POR
DIVERSAS FUERZAS CONSTANTES SOBRE UN MISMO CUERPO”
GRUPO # 3
MANUEL ALVAREZ ALVARADO
FELIX BRAVO FAYTONG
PROFESOR:
M. SC. EDISON ISAIAS DEL ROSARIO CAMPOSANO
FECHA DE ENTREGA: SABADO 1 DICIEMBRE 2012
2. INDICE
I. INTRODUCCIÓN
II. PRESENTACIÓN DEL PROBLEMA
III. SOLUCIÓN DEL PROBLEMA UTILIZANDO MATLAB
IV. EJEMPLO DE PRUEBA
V. CONCLUSIÓN
VI. ANEXO
I. INTRODUCCIÓN
La palabra trabajo tiene diferentes significados en el lenguaje cotidiano, en física se le da un significado
específico como el resultado de la acción que ejerce una fuerza para que un objeto se mueva en cierta
distancia.
El trabajo que se puede efectuar puede ser realizado por una fuerza constante y por una fuerza variable,
para esta ocasión el presente proyecto esta enfocado en el trabajo neto que pueden causar diversas
fuerzas constantes actuando sobre un mismo cuerpo.
Se refiere a una fuerza constante, como aquella que no varía y el trabajo realizado por esta, sería
definida como el producto de una fuerza paralela al desplazamiento y la magnitud de este
desplazamiento. Una forma de decirlo científicamente ó en formula es: WORK= F*d * cosƟ
El cálculo para determinar el trabajo neto no resulta tan complicado, pero si nos planteamos la idea de
obtener el trabajo neto sobre un cuerpo en el cual actúan cinco, seis o porque no decir 100 fuerzas a la
vez… la verdad se llega a la conclusión de que el desarrollo para llegar a la solución se convierte
extensa.
Ante lo anteriormente planteado se presenta un programa realizado en MATLAB, el cual
independientemente de las fuerzas que actúen sobre el cuerpo permitirá:
1. Mostrar diagrama de cuerpo libre.
2. Determinar y mostrar fuerza resultante.
3. Mostrar gráficos de posición, velocidad y aceleración.
4. Determinar y mostrar el trabajo neto realizado.
3. II. PRESENTACIÓN DEL PROBLEMA
Supongamos que tenemos una caja sobre la cual actúan un número definido de fuerzas, y se desea
moverla por una superficie sin fricción, desde el reposo y por un tiempo determinado con se muestra en
la figura siguiente:
El objetivo del problema es poder determinar el trabajo neto realizado sobre la caja bajo las condiciones
ya establecidas.
III. SOLUCIÓN DEL PROBLEMA UTILIZANDO MATLAB
Antes de comenzar a buscar una solución al problema primeramente se tiene que pedir el ingreso de
datos que para esta ocasión serán:
o Masa del cuerpo
o Numero de fuerzas aplicadas
o Magnitud y ángulo (tomando como referencia el eje positivo de las x) de cada fuerza
Realizado esto, ya es posible comenzar con la programación que se detalla en el anexo del proyecto.
IV. EJEMPLO DE PRUEBA
Del siguiente sistema a continuación se desea calcular el trabajo neto efectuado.
A continuación se procederá a mostrar los datos de ingreso del problema:
4. A continuación se muestran las salidas del programa, dando así la solución del problema:
5.
6.
7. V. CONCLUSIÓN
Los resultados obtenidos del programa coinciden con los realizados de manera manual que se muestran
en el anexo, concluyendo que el programa elaborado es correcto.
8. V. ANEXO
Código elaborado en MATLAB
clc
clearall
disp('**CALCULO DEL TRABAJO NETO**')
disp(' ')
disp(' ')
disp(' =====')
disp(' ===== bloque')
disp('-----=====------------')
disp('Se considera que el cuerpo va iniciar su movimento producto de las
fuerzas aplicadas')
masa=input('Ingrese la masa del bloque en [kg]: ');
n=input('Ingrese el numero de fuerzas actuando sobre el bloque: ');
i=1;
fx=0;
fy=0;
while i<=n
fprintf('n Ingrese la magnitud de la fuerza %d en [N]: ',i)
mag(i)=input('');
fprintf('n Ingrese el angulo del vector %d con respecto al eje positivo de
las x en grados: ',i)
ang(i)=input('');
fxx(i)=mag(i)*cos(ang(i)*(pi/180)); %componenete x del vector f(i)
fyy(i)=mag(i)*sin(ang(i)*(pi/180)); %componenete y del vector f(i)
fx=fx+mag(i)*cos(ang(i)*(pi/180)); %fuerzaresultante en x
fy=fy+mag(i)*sin(ang(i)*(pi/180)); %fuerza resultante en y
i=i+1;
end
t=input('Ingrese por cuanto tiempo se va a desplazar el bloque en [s]: ');
mt=0:0.5:t; %matriz tiempo
ax=fx/masa; %aceleracion en x
iffy>masa*9.8
ay=fy/masa; %aceleracion en y solo existe si fuerza resultante es mayor
al peso
else
ay=0; %aceleracion no existe porque fuerza resultante es menor al
peso y no logra levantarlo
end
dx=0.5*ax*(mt.^2); %distancia recorrida en x
dy=0.5*ay*(mt.^2); %distancia recorrida en y
vx=ax*mt; %velocidad en x
vy=ay*mt; %velocidad en y
work=fx*dx(length(mt))+fy*dy(length(mt));
% menu
op=0;
while op~=5
disp(' ****MENU****')
disp('1. MOSTRAR DIAGRAMA DE CUERPO LIBRE')
disp('2. DETERMINAR Y MOSTRAR FUERZA RESULTANTE')
9. disp('3. MOSTRAR GRAFICOS DE POSICION, VELOCIDAD Y ACELERACION')
disp('4. DETERMINAR Y MOSTRAR EL TRABAJO NETO REALIZADO')
disp('5. Salir')
op=input('Ingrese una opcion del menu: ');
ifop>5||op<=0
fprintf('n la opcion ingresada no es valida...!!!')
fprintf('n Ingrese una OPCION VALIDA')
disp(' ****MENU****')
disp('1. MOSTRAR DIAGRAMA DE CUERPO LIBRE')
disp('2. DETERMINAR Y MOSTRAR FUERZA RESULTANTE')
disp('3. MOSTRAR GRAFICOS DE POSICION, VELOCIDAD Y ACELERACION')
disp('4. DETERMINAR Y MOSTRAR EL TRABAJO NETO REALIZADO')
disp('5. Salir')
op=input('Ingrese una opcion del menu: ');
end
%opcion uno Diagrama de cuerpo libre
if op==1
i=1;
whilei<=n
quiver(0,0,fxx(i),fyy(i),0)
gridon
xlabel('Fuerza x [N]')
ylabel('Fuerza y [N]')
title('Diagrama de cuerpo del bloque','FontSize',14)
legend('Fuerzas que actuan sobre el cuerpo')
holdon
i=i+1;
end
quiver(0,0,0,-masa*9.8,0)
holdon
iffy<masa*9.8
quiver(0,0,0,masa*9.8+fy,0)
end
end
%opcion 2 fuerzaresultante
if op==2
mf=((fx^2)+(fy^2))^0.5;
theta=(180/pi)*atan(fy/fx);
fprintf('n La fuerza resultante en coordenadas rectangulares: Fr= %d i+ %d
j',fx, fy)
fprintf('n La fuerza resultante en coordenadas polares: Fr= %d theta= %d
n',mf, theta)
input('')
quiver(0,0,fx,fy,0)
gridon
xlabel('Fuerza eje x [N]')
ylabel('Fuerza eje y [N]')
title('Fuerza resultante','FontSize',14)
end
%opcion 3 gRAFICOS de posicion, velocidad y aceleracion
if op==3
subplot(3,2,1);
plot(mt,dx);
10. gridon
xlabel('Distancia [m]')
ylabel('Tiempo [s]')
title('Grafica DISTANCIA recorrida en X VS TIEMPO','FontSize',14)
subplot(3,2,2);
plot(mt,dy);
gridon
xlabel('Distancia [m]')
ylabel('Tiempo [s]')
title('Grafica DISTANCIA recorrida en Y VS tiempo','FontSize',14)
subplot(3,2,3);
plot(mt,vx);
gridon
xlabel('Velocidad [m/s]')
ylabel('Tiempo [s]')
title('Grafica VELOCIDAD en X VS tiempo','FontSize',14)
subplot(3,2,4);
plot(mt,vy);
gridon
xlabel('Velocidad [m/s]')
ylabel('Tiempo [s]')
title('Grafica VELOCIDAD en Y VS tiempo','FontSize',14)
subplot(3,2,5);
axx=ax*ones(length(mt),1);
plot(mt,axx);
gridon
xlabel('Aceleracion [m/s^2]')
ylabel('Tiempo [s]')
title('Grafica ACELERACION en X VS tiempo','FontSize',14)
subplot(3,2,6);
ayy=ay*ones(length(mt),1);
plot(mt,ayy);
gridon
xlabel('Aceleracion [m/s^2]')
ylabel('Tiempo [s]')
title('Grafica ACELERACION en Y VS tiempo','FontSize',14)
end
%Calculo del trabajo efectuado
ifop==4
iffy>0
mf=((fx^2)+(fy^2))^0.5;
else
mf= fx;
end
dtotal=((dx.^2)+(dy.^2)).^0.5;
fprintf('n Fuerza neta que realiza trabajo: %d [N]',mf)
fprintf('n Distancia recorrida: %d [m]',dtotal(length(dtotal)))
fprintf('n El trabajo neto realizado es: %d [JOULES]',work)
input('')
plot(dtotal,mf*ones(length(mt),1));
gridon
11. axis([0, 1.2*dtotal(length(dtotal)), 0, 1.5*mf])
xlabel('Fuerza [N]')
ylabel('Desplazamiento [m]')
title('Diagrama Fuerza total VS Desplazamiento','FontSize',14)
end
end
disp('GOOD BYE =)')
%copyrigth Manuel Alvarez Alvarado - Felix Bravo Faytong MEF3-24/11/2012
12. PROBLEMA PROPUESTO
F1=30N
F4=50N F2=(25N; 200˚)
60˚
10kg F3=100N
Determinar el trabajo neto.
SOLUCIÒN DEL PROBLEMA:
DCL:
N
F1=30N
F3=100N
F2=25N F4=50N
W=10Kg
CÀLCULO DE LA FUERZA RESULTANTE:
Lo levanta si F1>F2y+W+F4y. Reemplazando se concluye que: F1<F2y+W+F4y (no lo levanta).
+W
13. CÀLCULO DE LA ACELERACIÒN:
CÀLCULO DE LA DISTANCIA:
CÀLCULO DEL TRABAJO:
Work=FR * d
Work=(101,5i + 0j)N*(20,3i + 0j)m
Work= 2060,605 J