Atwood-en makinaren oszilazioak

prev.gif (1231 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

Oszilazioak

Osziladoreak (II)
Posizio-, abiadura- eta azelerazio-bektoreak koordenatu polarretan

Higiduraren ekuazioak

Energiaren kontserbazioaren printzipioa

Saiakuntza

Erreferentzia

Programazio kodea

 

Orri honetan Atwood-en makinaren bertsio bat aztertzen da (ikus ezazu irudia). Makina honetan, bi esfera soka batez lotuta daude poleen bitartez, m eta M masadunak. Bi esferetako batek (gorriak) plano bertikalean oszila dezake, eta besteak (urdinak) gora eta behera soilik. Higidura-ekuazioa numerikoki ebatzi behar da baina hainbat higidura mota agertzen dira.

Poleen masak arbuiagarriak dira, ez dute marruskadurarik eta soka zurruna da, luzaezina, baina oso luzea, bi pisuek polearekin joko ote duten ez arduratzeko bezain luzeak. Sokak beti dauka tentsioa eta, beraz, bi esferen energia kontserbatzen da.

 

Posizio-, abiadura- eta azelerazio-bektoreak koordenatu polarretan

Eskumako esfera aztertzeko, ezar ditzagun erreferentzia sistemaren ardatzak, bata norabide erradialean eta bestea, horrekiko perpendikularra, alegia, ortorradiala. Horiek dira koordenatu polarrak. Eskumako irudiak erakusten ditu bektore unitarioak .

Posizio bektorea

Esfera oszilatzailearen posizio-bektorea koordenatu polarretan hau da:

Abiadura bektorea

Esferaren abiadura-bektorea ibilbidearekiko tangentea da, baina ibilbidea ez da zirkularra.

Adieraz dezagun abiadura koordenatu polarretan:

Bektore unitarioen osagai cartesiarrak horrela adierazten dira:

Kalkula ditzagun bektore unitarioen deribatuak denborarekiko:

Orduan, abiadura-bektorearen osagaiak koordenatu polarretan:

Azelerazio bektorea

Deriba dezagun abiadura denborarekiko:

Orduan, azelerazio-bektorearen osagaiak koordenatu polarretan:

 

Higiduraren ekuazioak

Eskumako esferak jasaten dituen indarrak bi dira:

  • Sokaren tentsioa, T

  • Pisua, mg

Higidura-ekuazioa norabide erradialean:

mgcosθ -T= m·ar

Higidura-ekuazioa norabide ortorradialean:

-mgsinθ=m·aθ

Ezkerreko esferak ere bi indar jasaten ditu:

  • Sokaren tentsioa, T

  • Pisua, Mg

Dei diezaiogun esfera horren posizioari, y. Orduan, bere higiduraren ekuazioa:

Izan ere, ezkerreko esfera dy altuera igotzen bada, eskumakoa dr distantzia urrunduko da, eta alderantziz, beraz, y  koordenatua eta r koordenatua erlazionatuta daude: dy = - dr

Hiru ekuazio lortu ditugu; lehena eta hirugarrena hartuz T elimina daiteke eta ekuazio bakarra geratzen da. Bigarren ekuazioarekin, bigarren ordenako bi ekuazio diferentzialeko sistema akoplatu bat geratzen zaigu:

Dei diezaiogun masa-erlazioari  μ=M/m

 

Energiaren kontserbazio-printzipioa

Har dezagun energia potentzialaren jatorria (zero maila) poleen altueran. Orduan, bi esferen energia potentzialen batura hau da:

Ep= -Mgy -mg·rcosθ

Eta energia zinetikoa:

y eta r erlazionatuta daudela kontutan izanda (dy= -dr), defini dezagun y+r=L=kte, eta honela berridatz daiteke:

Ekuazio horretan MgL termino konstantea elimina dezakegu, energia potentzialaren zero-maila birplanteatuz. Ondoren ekuazio osoa zati m eginez:

Aurreko atalean lortutako bigarren ordenako bi ekuazio diferentzialen sistema akoplatua ebatziko dugu, prozedura numerikoak erabiliz, baina hasierako baldintzak finkatu behar dira. Demagun t=0 aldiunean, r=r0, θ=θ0, eta hasierako abiaduraren osagai polarrak: (dr/dt)0 eta r0(dθ/dt)0

Uneoro kalkulatuko dugu e energia totala eta hasierako e0 energiarekin konparatuko dugu. Defini dezagun energiaren errorea, ehunekotan adierazita:

Emaitza zehatzean, errore hori nulua izan behar da, baina kalkulu numerikoak erroreak pilatu egin ditzake eta emaitza zehatzetik desbideratzen joan daiteke. Errore hori 1 baino handiagoa izatera iristen bada (%1) orduan programa interaktiboa gelditu egingo da. Kasu horretan, integrazio-urratsa laburtzea komeni da.

 

Saiakuntza

Aukeran idatz daitezke:

  • Bi esferen masen erlazioa, μ=M/m , desplazamendu-barrari saguaz eragiten.

  • Eskumako esferaren hasierako posizioa: r0 distantzia eta θ0 angelua, bertikalarekiko eta gradutan. Kontroletan idatziz.

  • Eskumako esferaren hasierako abiadura: osagai erradiala: (dr/dt)0, eta abiadura angeluarra: (dθ/dt)0 . Kontroletan idatziz.

Hasi botoia sakatu.

Leihatilan, esfera gorriaren ibilbidea irudikatzen da. Ikus bedi zelako ibilbide bitxiak ateratzen diren.

Hala behar izanez gero, honako doiketak ere egin daitezke:

  • Ekuazio diferentzial akoplatuak numerikoki integratzeko erabiltzen den integrazio-urratsa alda daiteke. Esaterako, 1/2 aukeratzen bada, urratsaren luzera erdia izango da (Dt denbora tartekia). Kontutan izan, zenbat eta urrats txikiagoa ipini programak denbora gehiago behar duela kalkulua burutzeko.

  • Irudiaren eskala bertikala alda daiteke, alegia, irudiaren tamaina, esfera oszilatzailearen ibilbidea zehatzago ikuskatzeko.

Programa interaktiboak hainbat ibilbide mota irudikatzen ditu: adibidez, M>m bada (edo μ>1), esferak oreka-posizioaren inguruan oszilazio bitxiak edo kiribilak burutuko ditu, baina M<m bada, beherantz ihes egingo du.

Aukera bitez betiere μ>1 balioak.

Ohiko hasierako posizioa θ0=90º da (esfera gorria X ardatzaren gainean) eta r0>0 (0 eta 2 artean). r0=0 aukeratzen bada bigarren ekuazio diferentzialak singularitate bat dauka, eta kalkuluak errorea ematen du.

Ohiko hasierako abiadura nulua da, (dr/dt)0=0, eta  (dθ/dt)0=0,  baina r0≈0 posiziotik hurbil abiatzea nahi bada, abiadura erradialari balio bat emanda, (dr/dt)0 , ez du errorerik ematen.

Programa interaktiboa gelditu egiten da esfera r=0 posiziora iristen bada, edota prozedura numerikoa erroreak pilatzen joan bada eta aldiune bateko energia, hasierako energiarekin konparatuta, %1 errorea izatera iristen bada.

Egiazta bitez honako kasu hauek:

  • r0=1  eta θ0=90º, hasierako abiadura nulua eta  μ=1.4, 1.5, 1.665, 2.2, 2.812, 4.8, 5.1, 7.7, 8.3, 9.8

  • r0= 0.01,  θ0=90º, (dr/dt)0= 4, (dθ/dt)0=0, μ=1.182, 1.299, 3.0, 5.829

Esferaren ibilbidea oso zehazki aztertu nahi bada,

Programaren integrazio-urratsa oso txikia aukeratzen bada (1/10), kalkuluak oso zehatzak dira baina astunak eta geldoak. Hobe litzateke programak integrazio urrats aldakorra hartuko balu, horrela, esfera jatorritik hurbil dagoenean (r=0) integrazio-urrats laburrarekin ez luke errore handirik pilatuko, baina urrunago dabilenean urrats luzearekin ez litzateke geldoegi izango.

LibresApplet aparecerá en un explorador compatible con JDK 1.1.

 

Erreferentzia

Tufillaro N. B., Abott T. A. Griffiths D. J. Swinging Atwood’s machine. Am. J. Phys. 52 (10) October 1984, pp. 895-903

 

Programazio kodea

 

public abstract class RungeKutta {
	double h;
RungeKutta(double h){
	this.h=h;
}
void setPaso(double dt){
	this.h=dt;
}
public void resolver(Estado e){
//variables auxiliares
	double k1, k2, k3, k4;
	double l1, l2, l3, l4;
	double q1, q2, q3, q4;
	double m1, m2, m3, m4;
//estado inicial
	double x=e.x;
	double y=e.y;
	double vx=e.vx;
	double vy=e.vy;
	double t=e.t;

	k1=h*vx;
	l1=h*f(x, y, vx, vy, t);
	q1=h*vy;
	m1=h*g(x, y, vx, vy, t);

	k2=h*(vx+l1/2);
	l2=h*f(x+k1/2, y+q1/2, vx+l1/2, vy+m1/2, t+h/2);
	q2=h*(vy+m1/2);
	m2=h*g(x+k1/2, y+q1/2, vx+l1/2, vy+m1/2, t+h/2);

	k3=h*(vx+l2/2);
	l3=h*f(x+k2/2, y+q2/2, vx+l2/2, vy+m2/2, t+h/2);
	q3=h*(vy+m2/2);
	m3=h*g(x+k2/2, y+q2/2, vx+l2/2, vy+m2/2, t+h/2);

	k4=h*(vx+l3);
	l4=h*f(x+k3, y+q3, vx+l3, vy+m3, t+h);
	q4=h*(vy+m3);
	m4=h*g(x+k3, y+q3, vx+l3, vy+m3, t+h);

	x+=(k1+2*k2+2*k3+k4)/6;
	vx+=(l1+2*l2+2*l3+l4)/6;
	y+=(q1+2*q2+2*q3+q4)/6;
	vy+=(m1+2*m2+2*m3+m4)/6;
	t+=h;

//estado final
	e.x=x;
	e.y=y;
	e.vx=vx;
	e.vy=vy;
	e.t=t;
}
abstract public double f(double x, double y, double vx, double vy, double t);
abstract public double g(double x, double y, double vx, double vy, double t);
}
public class Oscilador extends RungeKutta{
	double mu; // longitud péndulo/radio tierra
Oscilador(double mu, double h){
	super(h);
	this.mu=mu;
}
public double f(double x, double y, double vx, double vy, double t){
	double z=(x*vy*vy+9.8*(Math.cos(y)-mu))/(1+mu);
	return z;
}
public double g(double x, double y, double vx, double vy, double t){
	double z=-(2*vx*vy+9.8*Math.sin(y))/x;
	return z;
}
public double energia(double x, double y, double vx, double vy){
	double z=mu*vx*vx/2+(vx*vx+x*x*vy*vy)/2+9.8*x*(mu-Math.cos(y));
	return z;
}
}
public class Estado {
	public double t;
	public double x;
	public double y;
	public double vx;
	public double vy;
public Estado(double t, double x, double y, double vx, double vy) {
	this.t=t;
	this.x=x;
	this.y=y;
	this.vx=vx;
	this.vy=vy;
}
}
//objetos
	Estado estado=new Estado(0.0, x0, y0, V0x, V0y);
	Oscilador oscilador=new Oscilador(mu, 0.005);
//resolución numérica
	oscilador.resolver(estado);
	double energia=oscilador.energia(estado.x, estado.y, estado.vx, estado.vy);
	error=Math.abs((energia-eInicial)*100/eInicial);
	if(error>1.0 || estado.x<0.0){
		//detiene el movimiento
	}