Solido zurruna |
Momentu angeluarra kontserbatzen Disko bi akoplatzen (I) Disko bi akoplatzen (II) Indar zentral bat hagatxo batean Patinatzaile bat biraka Aurrez aurreko talka elastikoaren analogia Pendulu balistikoa (II) Kutxa bat irauli Talka inelastikoa bala-disko biratzailea Hagatxo batez abiadura transmititzen Kontserbazioak: momentu lineala eta momentu angeluarra Disko-horma talka
Diskoa-diskoa talka (II) |
Aurrez aurreko talkak | |||
Partikula-multzoen dinamikaren kapituluan, aurrez-aurreko talkak sakonki aztertu ditugu, bai elastikoak zein inelastikoak, bai ikuspegi inertzialetik (laborategiko erreferentzia-sistematik) zein masa-zentroaren ikuspegitik. Ondoren, bi dimentsiotako talkak ere aztertu ditugu. Bai dimentsio bakarrean zein bi dimentsiotan, talkan parte hartzen duten bi partikulek multzo isolatua osatzen badute, momentu linealaren kontserbazio-printzipioa aplikatu dugu, eta ondoren, talkaren energia-balantzea aztertu dugu. Baina kapitulu horretan, talkan parte hartzen duten gorputz guztiak partikulatzat hartzen dira, ez dute ez neurri ez tamainarik. Ondorengo irudiak erakusten du disko biren arteko talka: m1 eta m2 masadunak eta r1, r2 erradiodunak. Ikusten denez, gorputzen tamainak ere kontutan hartuko ditugu. Talka baino lehen, lehen diskoak u1 abiadura du eta bigarren diskoa geldi dago (u2=0). Talkarako parametro garrantzitsu bat talka-parametroa da, irudian b, bi diskoen zentroen norabideen arteko distantzia. Talkaren ondoren, lehen diskoaren abiadura v1 da eta φ1 angelua osatzen du norabide horizontalarekin (talka baino lehenagoko norabidearekin), baina gainera, biratu egiten du bere zentrotik pasatzen den ardatz perpendikular batekiko, w1 abiadura angeluarraz. Bigarren diskoa, aldiz, v2 abiaduraz mugitzen da φ2 angelua osatzen du norabide horizontalarekin eta biratu egiten du bere zentroaren inguruan, w2 abiadura angeluarraz. Ezagunak badira talka baino lehenagoko baldintzak, kalkulatu nahi ditugu talkaren ondorengoak:
Hortaz, sei ezezagun ditugu, baina bi diskoek osatzen duten multzoa isolatua da (kanpo-indarren erresultantea nulua da) beraz, momentu lineal totala kontserbatzen da. Gainera, disko bakoitzak jasaten duen indar totalaren momentua, P talka-puntuarekiko, ere nulua da, barne-indarrak puntu horretan bertan aplikatzen direlako, beraz, disko bakoitzaren momentu angeluarra P puntuarekiko ere konstantea izango da.
Aurrez-aurreko talkakAurrez-aurreko talkak dimentsio bakarrean gertatzen dira, alegia, ardatz bakar baten norabidean, eta horrexegatik dira matematikoki sinpleenak. Bi ekuaziorekin deskriba daitezke: momentu lineal totalaren kontserbazioa eta itzultze-koefizientearen definizioa: m1u1 =m1v1+m2v2 (1) -e·u1=v1-v2 (2) Hona hemen emaitzak:
Talka zeiharrakTalka-parametroa Ondorengo irudiak erakusten du talka-parametroa zeri deritzon, alegia, lehen diskoaren u1 abiaduraren norabidetik bigarren diskoaren zentrora dagoen b distantziari. Irudiak berak erakusten du zein erlazio dagoen talka-parametroaren eta θ angeluaren artean, alegia, talkaren unean, bi diskoen zentroak lotzen dituen norabideak eta u1 abiaduraren norabideak osatzen dutena:
Momentu lineal totalaren kontserbazioa
Momentu angeluar indibidualen kontserbazioak, P puntuarekiko
1 diskoaren momentu angeluarra kontserbatzen da, P puntuarekiko: -m1·r1·u1sinq= I1ω1- m1·r1·(v1xsinθ+ v1ycosθ) (3) 2. diskoaren momentu angeluarra kontserbatzen da, P puntuarekiko: 0=I2ω2 +m2·r2·(v2xsinθ+ v2ycosθ) (4) Energiaren balantzea. Itzultze-koefizientea
Itzultze-koefizientearen definizioa:
Bi diskoak ukitzen ari direnean:
Ekuazio-multzoa nola ebatziDei diezaiogun M=m1/m2 masen arteko erlazioari. Orokorrean, solido baten inertzia-momentua bere masa zentrotik pasatzen den ardatz batekiko: I=kmr2 eta disko baten kasuan: k=1/2 Idatz ditzagun sei ezezagunen menpeko sei ekuazioak:
Ekuaziook linealak dira, baina berrantola ditzagun matrize gisa idazteko eta matrize karratuaren diagonaleko elementuak nuluak izan ez daitezen:
Ekuazio-multzoa ebazten da, irristatzen ez duen kasurako, baina gogoan izan irristatzen dueneko kasua noiz hasten den, alegia kasu horretako (6) ekuazioko lehen eta bigarren atalak konpara ditzagun: A=μ(v1ysinθ-v1xcosθ+u1cosθ) Baldin A>B bada, orduan, emaitza hori baliozkoa da, baina aurkako kasuan irristatuko du, eta bestelako matrizea ebatzi behar da:
(- μcosθ+sinθ)v1x+(μsinθ
+cosθ) v1y=u1(sinθ-
μcosθ) (6) Idatz dezagun ekuazio-multzoa matrize gisa: Ekuazio-multzoa ebazten da, irristatzen duen kasurako, baina gogoan izan irristatzen ez dueneko kasua noiz hasten den, alegia honako ekuazioa noiz arte betetzen den: μ(v2xcosθ-v2ysinθ)=v2xsinθ+v2ycosθ (7) Kalkuluen prozeduraDei diezaiogun M matrize karratuari, X ezezagunen zutabe-bektoreari, eta B termino independenteen zutabe-bektoreari. M·X=B Ezezagunen bektore-zutabea bakan dezagun: X=M-1·B Beraz, sei ezezagunak kalkulatzeko, alegia, X zutabe-bektorea kalkulatzeko, lehenik, M matrize karratuaren alderantzizkoa kalkulatu behar da (M-1) eta ondoren matrize hori bidertu behar da termino independenteen B zutabe-bektoreaz. Orri honen amaieran erakusten da, eragiketa guzti horiek burutzen dituen Java kodea. Adibidea:Egiazta dezagun, programak burututako kalkuluekin, momentu lineal totala kontserbatzen dela eta disko bakoitzaren momentu angeluarra P puntuarekiko ere kontserbatzen dela: Diskoen datuak:
Talka baino lehen:
Talkaren ondoren:
1.- Momentu lineal totalaren kontserbazioa.
2. adibidea: Aurrez-aurreko talkak Diskoen datuak:
Talka baino lehen:
Talkaren ondoren:
SaiakuntzaAukeran idatz daitezke:
Hasi botoia sakatu. Diskoak ikusten dira talka baino lehen eta ondoren. Programak kalkulu guztiak burutzen ditu:
Bi diskoen erradioak ezagututa (r1 eta r2) talka-parametroa aukeran asma dezakegu, b<(r1 + r2). Ondoren, talkaren uneko θ angelua kalkula daiteke honako erlazioaz: b=(r1+r2)·sinθ Eta angelu horixe idatzi angelua kontrolean, desplazamendu-barrari saguaz eragiten. Programak kalkulu guztiak burutu ondoren, egiazta dezakegu, besteak beste, momentu lineal totalaren kontserbazioa, momentu angeluar partikularren kontserbazioa P puntuarekiko, edota momentu angeluar totalaren kontserbazioa, lehenagoko adibideetan egin den bezalaxe. |
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); } } |