Sólido rígido |
Conservación del momento angular Discos que se acoplan (I) Discos que se acoplan (II) Conservación del momento angular Giros del patinador de hielo Analogía con choque frontal elástico Péndulo balístico (II) Caja que puede volcar Choque inelástico bala-disco en rotación Transferencia de la velocidad en un choque Conservación m. lineal y m. angular Choque disco-pared
Choque disco-disco(II) |
Choques frontales | |||
En el capítulo de dinámica hemos estudiado las colisiones unidimensionales elásticas e inelásticas tanto desde el punto de vista de un observador situado en el Sistema de Referencia del Laboratorio como del Sistema de Referencia del Centro de Masa. A continuación, procedimos con el estudio de las colisiones bidimensionales. En ambos casos, hemos aplicado el principio de conservación del momento lineal a un sistema aislado de dos partículas interactuantes y a continuación, hemos efectuado el balance energético de la colisión. En la figura, se muestra un esquema de la colisión de dos discos de masas m1 y m2, y radios r1 y r2 respectivamente. El segundo disco está en reposo u2=0, mientras que el primero lleva una velocidad u1 antes del choque. El choque está caracterizado por el denominado parámetro de impacto b, que es la distancia entre la dirección de la velocidad u1 del primer disco y el centro del segundo disco en reposo. Después del choque, el primer disco se mueve con velocidad v1 haciendo un ángulo φ1 con eje horizontal (dirección de la velocidad u1 del disco incidente) y a su vez, gira alrededor de un eje perpendicular al disco y que pasa por su centro con velocidad angular w1. El segundo disco, se mueve con velocidad v2 haciendo un ángulo φ2 con el eje horizontal y a su vez, gira alrededor de de un eje perpendicular al disco y que pasa por su centro con velocidad angular w2. Tenemos que despejar seis incógnitas del sistema de ecuaciones que describe el choque entre dos discos:
Para obtener las seis ecuaciones, aplicamos:
Choques frontalesLos choques frontales son las más fáciles de describir ya que solamente, precisan la aplicación del principio de conservación del momento lineal y la definición de coeficiente de restitución. m1u1 =m1v1+m2v2 (1) -e·u1=v1-v2 (2)
Choques oblicuosParámetro de impacto Se denomina parámetro de impacto b, a la distancia entre la dirección de la velocidad u1 del primer disco y el centro del segundo disco en reposo. La relación entre le parámetro de impacto b y el ángulo θ que forma la dirección de la velocidad u1 del primer disco y la recta que pasa por los centros de ambos discos, cuando entran en contacto en el momento del choque, se puede apreciar en la figura.
Conservación del momento lineal
Conservación del momento angular Las fuerzas de interacción entre los discos se aplican en el punto de contacto P. El momento de dichas fuerzas respecto de P es cero.
-m1·r1·u1senq= I1ω1- m1·r1·(v1xsenθ+ v1ycosθ) (3) 0=I2ω2 +m2·r2·(v2xsenθ+ v2ycosθ) (4) Balance energético. Coeficiente de restitución
La definición de coeficiente de restitución es
Cuando los discos están en contacto
Resolución del sistema de ecuacionesLlamamos M=m1/m2 El momento de inercia de un sólido rígido en rotación alrededor de un eje fijo es I=kmr2 con k=1/2 para un disco El sistema de seis ecuaciones con seis incógnitas se escribe.
Para resolver el sistema de ecuaciones lineales, cambiamos el orden de las ecuaciones para evitar que los elementos de la diagonal de la matriz cuadrada (más abajo) sean nulos
Se resuelve el sistema de ecuaciones se evalúa el primer y segundo miembro de la ecuación (6) caso "desliza" A=μ(v1ysenθ-v1xcosθ+u1cosθ) Si A>B se mantiene el resultado, en caso contrario se resuelve el sistema alternativo
(- μcosθ+senθ)v1x+(μsenθ
+cosθ) v1y=u1(senθ-
μcosθ) (6) En forma matricial escribimos el sistema Comprobamos que la solución es correcta en este caso, verificándose la ecuación μ(v2xcosθ-v2ysenθ)=v2xsenθ+v2ycosθ (7) Procedimiento de cálculoLlamamos M a la matriz, X al vector columna de las incógnitas y B al vector columna de los términos independientes M·X=B Despejamos el vector columna de las incógnitas X=M-1·B Para hallar los elementos del vector columna X de las incógnitas, calculamos la matriz inversa M-1 y a continuación, la multiplicamos por el vector columna B de los términos independientes. En el cuadro al final de la página se muestra el código Java que realiza estas operaciones. Ejemplo:Comprobaremos, la conservación del momento lineal y del momento angular de los discos, a partir de los datos suministrados por el programa interactivo. Datos relativos a los discos
Antes del choque
Después del choque
1.- Conservación del momento lineal
Ejemplo 2º Choques frontales Datos relativos a los discos
Antes del choque
Después del choque
ActividadesSe introduce
Se pulsa el botón titulado Empieza. Observamos el movimiento de los discos antes y después del choque en el Sistema de Referencia del Laboratorio El programa interactivo calcula:
Conocidos los radios de los discos r1 y r2 y el ángulo θ<90º, calculamos el parámetro de impacto b. Dado el parámetro de impacto b<(r1 + r2) calculamos el ángulo θ que introducimos en el control de edición titulado Ángulo b=(r1+r2)·senθ Con los datos introducidos y calculados por el programa interactivo, verificaremos los principios de conservación del momento lineal y angular tal como se ha efectuado en los ejemplos. |
public class Vector { public int n; //dimensión public double[] x; public Vector(int n) { this.n=n; x=new double[n]; for(int i=0; i<n; i++){ x[i]=0.0; } } public Vector(double[] x) { this.x=x; n=x.length; } } public class Matriz implements Cloneable{ public int n; //dimensión public double[][] x; public Matriz(int n) { this.n=n; x=new double[n][n]; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ x[i][j]=0.0; } } } public Matriz(double[][] x) { this.x=x; n=x.length; } public Object clone(){ Matriz obj=null; try{ obj=(Matriz)super.clone(); }catch(CloneNotSupportedException ex){ System.out.println(" no se puede duplicar"); } obj.x=(double[][])obj.x.clone(); for(int i=0; i<obj.x.length; i++){ obj.x[i]=(double[])obj.x[i].clone(); } return obj; } //producto de una matriz por un vector columna (nxn) (nx1)= (nx1) static Vector producto(Matriz a, Vector v){ int n=v.n; //dimensión Vector b=new Vector(n); for(int i=0; i<n; i++){ for(int k=0; k<n; k++){ b.x[i]+=a.x[i][k]*v.x[k]; } } return b; } //matriz inversa static Matriz inversa(Matriz d){ int n=d.n; //dimensión de la matriz Matriz a=(Matriz)d.clone(); Matriz b=new Matriz(n); //matriz de los términos independientes Matriz c=new Matriz(n); //matriz de las incógnitas //matriz unidad for(int i=0; i<n; i++){ b.x[i][i]=1.0; } //transformación de la matriz y de los términos independientes for(int k=0; k<n-1; k++){ for(int i=k+1; i<n; i++){ //términos independientes for(int s=0; s<n; s++){ b.x[i][s]-=a.x[i][k]*b.x[k][s]/a.x[k][k]; } //elementos de la matriz for(int j=k+1; j<n; j++){ a.x[i][j]-=a.x[i][k]*a.x[k][j]/a.x[k][k]; } } } //cálculo de las incógnitas, elementos de la matriz inversa for(int s=0; s<n; s++){ c.x[n-1][s]=b.x[n-1][s]/a.x[n-1][n-1]; for(int i=n-2; i>=0; i--){ c.x[i][s]=b.x[i][s]/a.x[i][i]; for(int k=n-1; k>i; k--){ c.x[i][s]-=a.x[i][k]*c.x[k][s]/a.x[i][i]; } } } return c; } } class Colision { public static void main(String[] args) { //datos double ang=0*Math.PI/180; double mu=0.1; double e=0.94; double u1=3.5; double M=0.5; double k=0.5; //discos //incógnitas double v1; double v2; double w1; double w2; double fi1; double fi2; double Q; if(ang==0){ //choques frontales v1=(M-e)*u1/(1+M); v2=M*(1+e)*u1/(1+M); fi1=.0; fi2=0.0; w1=0.0; w2=0.0; }else{ //choques oblicuos double[][] matriz={ {Math.sin(ang), Math.cos(ang), -Math.sin(ang), -Math.cos(ang), 1.0, 1.0}, {0.0, M, 0.0, 1.0, 0.0, 0.0}, {M, 0.0, 1.0, 0.0, 0.0, 0.0}, {-Math.cos(ang), Math.sin(ang), Math.cos(ang), -Math.sin(ang),0.0, 0.0}, {Math.sin(ang), Math.cos(ang), 0.0, 0.0, -k, 0.0}, {0.0, 0.0, Math.sin(ang), Math.cos(ang), 0.0, k} }; Matriz coef=new Matriz(matriz); double[] vector={ 0.0, 0.0, (M*u1), (e*u1*Math.cos(ang)), (u1*Math.sin(ang)), 0.0 }; Vector ter=new Vector(vector); Vector solucion=Matriz.producto(Matriz.inversa(coef), ter); System.out.println("No desliza "); //desliza o no desliza? double V1x=solucion.x[0]; double V1y=solucion.x[1]; double V2x=solucion.x[2]; double V2y=solucion.x[3]; w1=solucion.x[4]; w2=solucion.x[5]; double A=mu*(V1y*Math.sin(ang)-(V1x-u1)*Math.cos(ang)); double B=u1*Math.sin(ang)-V1x*Math.sin(ang)-V1y*Math.cos(ang); if(A<B){ //desliza coef.x[0][0]=Math.sin(ang)-mu*Math.cos(ang); coef.x[0][1]=Math.cos(ang)+mu*Math.sin(ang); coef.x[0][2]=0.0; coef.x[0][3]=0.0; coef.x[0][4]=0.0; coef.x[0][5]=0.0; ter.x[0]=-mu*u1*Math.cos(ang)+u1*Math.sin(ang); solucion=Matriz.producto(Matriz.inversa(coef), ter); V1x=solucion.x[0]; V1y=solucion.x[1]; V2x=solucion.x[2]; V2y=solucion.x[3]; w1=solucion.x[4]; w2=solucion.x[5]; double comprobar=V2y*Math.cos(ang)+V2x*Math.sin(ang)- mu*(-V2y*Math.sin(ang)+V2x*Math.cos(ang)); System.out.println("desliza - comprobar"+comprobar); } v1=Math.sqrt(V1x*V1x+V1y*V1y); fi1=Math.atan2(V1y,V1x); v2=Math.sqrt(V2x*V2x+V2y*V2y); fi2=Math.atan2(V2y,V2x); } //energía perdida en la colisión Q=M*v1*v1/2+M*k*w1*w1/2+v2*v2/2+k*w2*w2/2-M*u1*u1/2; //imprime los resultados System.out.println("primera partícula: v. c.m. "+v1+" dirección "+ (180*fi1/Math.PI)+" v. angular "+w1); System.out.println("segunda partícula: v. c.m. "+v2+" dirección "+ (180*fi2/Math.PI)+" v. angular "+w2); System.out.println("energía perdida en la colisión "+Q); } } |