SIMULACION EN MATLAB
-
Upload
orlandodiaz11 -
Category
Education
-
view
1.100 -
download
1
Transcript of SIMULACION EN MATLAB
1
INSTITUTO DE CIENCIAS FISICAS
MAESTRÍA EN ENSEÑANZA DE LA FÍSICA
FISICA COMPUTACIONAL
PROYECTO FINAL
David Anzules I. Jose diaz S.
2
CHOQUE ELASTICO UNIDIMENSIONAL
Es una colisión frontal, es decir, que todo el movimiento es a lo largo de una línea entre dos o más cuerpos en la que éstos no sufren deformaciones permanentes durante el impacto. En una colisión elástica se conservan tanto el momento lineal como la energía cinética del sistema, y no hay intercambio de masa entre los cuerpos, que se separan después del choque
Las dos partículas colisionan de
frente, y abandonan el punto de
colisión con velocidades diferentes
3
CHOQUE RECTILINEO ELASTICOUna canica de 10.0 g se desliza a la izquierda a 0.400 m/s sobre una acera horizontal deNueva York cubierta de hielo y sin fricción, y tiene un choque elástico de frente con unacanica de 30.0 g que se desliza a la derecha a 0.200 m/s (figura 8.38).
a) Determine la velocidad (magnitud y dirección) de cada canica después del choque.(Puesto que el choque es de frente, los movimientos son en una línea.)
b) Calcule el cambio en el momento lineal (es decir, el momento lineal después del choquemenos el momento lineal antes del choque) para cada canica. Compare los valoresobtenidos.
c) Calcule el cambio de energía cinética (es decir, la energía cinética después del choquemenos la energía cinética antes del choque) para cada canica.
Física Universitaria – Sears - Zemansky Vol 1. Capitulo 8. Ejercicio 8.43
4
¿Qué ocurre si la colisión tiene lugar a lo largo de una línea recta?
Ecuaciones
Conservación de la
cantidad de movimiento
(ecuación 1)
Necesitamos más ecuaciones para
resolver el problema
Si el choque es
perfectamente
inelástico
Casos intermedios
Coeficiente de restitución
Si el choque es elástico
Conservación energía. cinética
5
% Física Computacional 2012 ICF-ESPOL
% Física Universitaria Sears –Zemanski.
% Vol 1. Capitulo 8. Problema 8.43
% Choques frontales unidimensionales.
clear;
clc;
disp('Programa Colisiones frontales Elásticas');
%Ingreso de datos:(se deben ingresar los datos del problema)
disp('Ingreso de datos ');
disp('INGRESE:');
m1=input('- masa del cuerpo 1 m1(kg.): ');
v01=input('- velocidad inicial del cuerpo vo1(m/s): ');
d=input('- distancia entre los dos cuerpos d(m): ');
m2=input('- masa del cuerpo 2 m2(Kg.): ');
v02=input('- velocidad inicial del cuerpo 2 vo2(m/s): ');
disp('- coeficiente de restitución de los cuerpos');
e=input(' entre 0 y 1 e: ');
tramos=input('Cuantos tramos para el cálculo: ');
1. INICIO-INGRESO
DESARROLLO DEL PROBLEMA EN MATLAB
12/13/2012 6
%Proceso para encontrar las velocidades de salida
p0=m1*v01+m2*v02;
v0e=v02-v01;
ek=e*v0e;
ds=-m1-m2;
dv1=-p0-m2*ek;
dv2=m1*ek-p0;
if ds==0
disp('No tiene solución');
else
v1=dv1/ds;
v2=dv2/ds;
end
%Proceso para encontrar la cantidad de movimiento lineal
% y las perdidas de energía
pf=m1*v1+m2*v2;
eco=0.5*m1*v01^2+0.5*m2*v02^2;
ec=0.5*m1*v1^2+0.5*m2*v2^2;
ep=(ec-eco)*100/eco;
%Variaciones de cantidad de momento lineal y energía de cada partícula
cp1=m1*v1-m1*v01;
cp2=m2*v2-m2*v02;
ce1=0.5*m1*(v1^2)-0.5*m1*(v01^2);
ce2=0.5*m2*(v2^2)-0.5*m2*(v02^2);
xa=d*abs(v01)/(abs(v01)+abs(v02));
ta=abs(xa/v01);
2. PROCEDIMIENTO
7
%Procedimiento para datos de x1 y x2 de
recorrido
% Antes del choque
% Condiciones iniciales para el cuerpo 1 de
entrada
da=xa/tramos;
dt1=ta/tramos;
punto1=1;
t(punto1)=0;
x1(punto1)=0;
x2(punto1)=d;
y1(punto1)=5;
y2(punto1)=5;
while (x1(punto1)<x2(punto1))
punto1=punto1+1;
t(punto1)=t(punto1-1)+dt1;
x1(punto1)=v01*t(punto1);
x2(punto1)=d-abs(v02*t(punto1));
y1(punto1)=5;
y2(punto1)=5;
end
%Procedimiento para sacar los datos de x3 y x4
de salida
%Condiciones iniciales para el cuerpo 1 de salida
(después del choque)
t3=xa/v1;
dt3=dt1;
punto3=1;
x3(punto3)=xa;
x4(punto3)=xa;
y3(punto3)=5;
y4(punto3)=5;
tdc(punto3)=0;
while abs(x3(punto3)-xa)<(xa-da)
punto3=punto3+1;
tdc(punto3)=tdc(punto3-1)+dt3;
x3(punto3)=xa-abs(v1*tdc(punto3));
x4(punto3)=xa+v2*tdc(punto3);
y3(punto3)=5;
y4(punto3)=5;
end
12/13/2012 8
%Salida
%Menú de opciones
op=1;
while op<3
disp('MENU DE OPCIONES')
disp('1. Mostrar Resultados numéricos');
disp('2. Gráficas de posiciones antes y después del choque');
disp('3. Simulación del movimiento de los cuerpos');
disp('4. Salir');
op=input('escoja una opción 1 o 2 -> : ');
switch op
3. SALIDA-RESULTADOS
9
4.PRESENTACION RESULTADOS NUMERICOS
case 1
%Proceso salida
disp('***** RESULTADOS: *****');
disp('La Velocidad de salida del:');
fprintf('- cuerpo 1 es v1(m/s) :%6.4f\n',v1);
fprintf('- cuerpo 2 es v2(m/s) :%6.4f\n',v2);
disp('La cantidad de movimiento:');
fprintf('- inicial en kg.m/s es:%6.4f\n',p0);
fprintf('- final en kg.m/s es:%6.4f\n',pf);
disp('La Energia Cinética: ');
fprintf('- inicial en Joule es:%6.4f\n', eco);
fprintf('- final en Joule es:%6.4f\n', ec);
disp('La VARIACION de:');
fprintf('- energía perdida en J es:%6.4f\n', ep);
fprintf('- momento lineal del cuerpo 1 en Kg.m/s es:%6.4f\n',cp1);
fprintf('- momento lineal del cuerpo 2 en Kg.m/s es:%6.4f\n',cp2);
fprintf('- energía del cuerpo 1 en J es:%6.6f\n',ce1);
fprintf('- energía del cuerpo 2 en J es:%6.6f\n',ce2);
disp(' Recorridos de los cuerpos: ');
fprintf('- El cuerpo 1 recorre xa(m)= %6.4f en un tiempo ta(s)= %6.4f \n',xa,ta);
fprintf('- El cuerpo 2 recorre xb(m)= %6.4f en un tiempo tb(s)= %6.4f \n',d-xa,ta);
10
5.PRESENTACION DE GRAFICAScase 2
% Graficas
subplot(3,2,1);
plot(t,x1);
title('Posición cuerpo 1 vs tiempo x1=v01t');
ylabel('Posición x1 (m)');
grid on;
subplot(3,2,3);
plot(t,x2,'r');
title('Posición cuerpo 2 vs tiempo x2=v02t');
ylabel('Posición x2 (m)');
grid on;
subplot(3,2,5);
plot(t,x1,t,x2,'r');
title('Posición del cuerpo 1 y 2 vs tiempo');
xlabel('tiempo t(s)');
ylabel('Posición x1 x2 (m)');
grid on;
subplot(3,2,4);
plot(tdc,x4,'r');
title('Posición cuerpo 2 vs tiempo x4=v2t');
ylabel('Posición x4 (m)');
grid on;
subplot(3,2,2);
plot(tdc,x3);
title('Posición cuerpo 1 vs tiempo x3=v1t');
ylabel('Posición x3 (m)');
grid on;
subplot(3,2,6);
plot(tdc,x3,tdc,x4,'r');
title('Posición del cuerpo 1 y 2 vs tiempo');
xlabel('tiempo t(s)');
ylabel('Posición x3 x4 (m)');
grid on;
11
case 3
% Animación
plot(x1,y1,x2,y2,x3,y3,x4,y4);
axis([0 (1.3*d) 0 (2*max(y1))]);
xlabel('x');
ylabel('y');
hold on;
%salida animación cuerpo 1 y 2
n=length(x1);
z=length(x3);
%Antes del choque
punto1=1;
while punto1<=n
plot(x1(punto1),y1(punto1),'ro','LineWidth',18);
axis([0 max(x4) 0 (2*max(y1))]);
hold on;
plot(x2(punto1),y2(punto1),'go','LineWidth',12);
Foto2(punto1)=getframe;
hold off;
punto1=punto1+1;
end
punto3=1;
while punto3<=z
%Después del choque
plot(x3(punto3),y3(punto3),'ro','LineWidth',18);
axis([0 max(x4) 0 (2*max(y1))]);
hold on;
plot(x4(punto3),y4(punto3),'go','LineWidth',12);
Foto2(punto3+n)=getframe;
hold off;
punto3=punto3+1;
end
movie(Foto2);
case 4
disp(' **** Gracias por considerar esta simulación ****');
otherwise
disp('********* OPCION NO VALIDA, INTENTE DE
NUEVO*****');
end
end
6.PRESENTACION DE ANIMACION
12
FIN