Bola batek erreboteak egiten ditu pistoi oszilatzaile batean

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

Oszilazioak

Kaos erregimenaren 
oinarriak
Bidebanatzeak
Txurrua tantaka
Osziladore kaotikoa
Fermi-ren osziladorea
marca.gif (847 bytes)Bola batek errebotea
pistoi baten gainean
Higiduraren ekuazioak

Sinkronizazioa

Kaoserako bidea

Erreferentziak

Programazio-kodea

 

Orri honetan aztertzen da, bola bat erortzen dela eta pistoi baten gainean erreboteak egiten dituela, behin eta berriz, baina pistoia Higidura Harmoniko Sinpleaz mugitzen ari da norabide bertikalean, A anplitudeaz eta ω maiztasun angeluarraz. Saiakuntza batean, bolaren erreboteak eta pistoiaren oszilazioak sinkronizatzen saiatu behar da.

Adibide honek erakusten du sinkrotroi motako partikula-azeleragailuen ezaugarri bat, fasearen egonkortasuna deritzona, eta erreferentzietan aipatutako artikulu batean sakontzen dena.

Adibide honen beste ezaugarri interesgarri bat da, bolaren higidura mota nola aldatzen den, hasierako baldintzen arabera.

Higiduraren ekuazioak

  • Pistoiaren higidura

Pistoia Higidura Harmoniko Sinplea deskribatzen ari da, A anplitudearekin eta ω maiztasunaz. Hasierako aldiunean, t=0, pistoia jatorririk abiatzen da, hortaz, hauek dira bere posizioa eta abiadura denboraren menpe:

yp=A·sin(ωt)
vp
= A·ω·cos(ωt)

  • Bolaren higidura

Bola erortzen uzten da h altueratik eta pausagunetik, t0 aldiunean. Bere posizioa eta abiadura t aldiunean honela adierazten dira denboraren menpe:

yb=h -g(t-t0)2/2
vb= -g
(t-t0)

  • Bolaren eta pistoiaren arteko lehen talka

Talka

Bolak eta pistoiak elkar topo egiten dutenean, lehen aldiz (yb=yp). Dei diezaiegun  y1 posizioari eta t1 aldiuneari. Aldiune hori kalkulatzeko, honako ekuazioa ebatzi behar da:

h-g(t-t0)2/2=sin(ωt)

Baina ekuazio hori transzendentea da, eta prozedura numerikoez ebatzi behar da.

Talkaren aldiunean hau da bolaren abiadura:

u1= -g(t1-t0)

Pistoiaren abiadura, suposatuko dugu, ez dela aldatzen bolarekin talka egiterakoan, hortaz, bere abiadura talka baino lehen eta ondoren hau da:

vp= A·ω·cos(ωt1)

Bolaren abiadura, v1, justu talkaren ondoren, itzultze koefizienteaz kalkula daiteke. Hona hemen e itzultze-koefizientearen definizioa:

v1-vp= -e(u1-vp)

Beraz, bolaren abiadura justu talkaren ondoren:

v1=(1+e)·A·ω·cos(ωt1)+eg(t1-t0)

Abiadura hori izango da hasierako abiadura bolak izango duen ondorengo higiduran, alegia, igoera eta jaitsiera askea, berriz ere pistoiaren kontra talka egin arte.

Talkaren ondoren

Lehen talkaren ondoren, eta bigarren talka baino lehen (t1<t<t2), bolaren posizioa eta abiadura honela adierazten dira denboraren menpe:

yb=y1+v1(t-t1) -g(t-t1)2/2
vb=v1 -
g(t-t1)

  • Bolaren eta pistoiaren arteko bigarren talka

Talka

Bolak eta pistoiak bigarren aldiz elkar topo egiten dutenean, yb=yp. Dei diezaiegun  y2 posizioari eta t2 aldiuneari. Aldiune hori kalkulatzeko, honako ekuazioa ebatzi behar da:

y1+v1(t-t1)-g(t-t1)2/2=sin(ωt)

Baina ekuazio hori ere transzendentea da, eta prozedura numerikoez ebatzi behar da.

Pistoiaren abiadura, suposatzen da, ez dela aldatzen bolarekin talka egiterakoan, hortaz, bere abiadura talka baino lehen eta ondoren hau da:

vp= A·ω·cos(ωt2)

Talkaren aldiunean hau da bolaren abiadura:

u2= v1-g(t2-t1)

Eta bolaren abiadura talkaren ondoren:

v2=(1+e)·A·ω·cos(ωt2) -e(v1-g(t2-t1))

Talkaren ondoren

Bigarren talkaren ondoren, eta hirugarren talka baino lehen (t2<t<t3), bolaren posizioa eta abiadura honela adierazten dira denboraren menpe:

yb=y2+v2(t-t2)-g(t-t2)2/2
vb=v2-g(t-t2)

  • Bolaren eta pistoiaren arteko n-garren talka

Bolaren posizioa n-garren talkaren ondoren:

yb=yn+vn(t-tn)-g(t-tn)2/2

Talka

Bolak eta pistoiak n-garren aldiz elkar topo egiten dutenean, yb=yp. Dei diezaiegun  yn+1 posizioari eta tn+1 aldiuneari. Aldiune hori kalkulatzeko, honako ekuazioa ebatzi behar da:

yn+vn(t-tn)-g(t-tn)2/2=sin(ωt)

Baina ekuazio hori transzendentea da, eta prozedura numerikoez ebatzi behar da.

Pistoiaren abiadura, suposatzen da, ez dela aldatzen bolarekin talka egiterakoan, hortaz, bere abiadura talka baino lehen eta ondoren hau da:

vp= A·ω·cos(ω·tn+1)

Talkaren aldiunean hau da bolaren abiadura:

un+1= vn-g(tn+1-tn)

Eta bolaren abiadura talkaren ondoren:

vn+1=(1+e)·A·ω·cos(ωtn+1)-e(vn-g(tn+1-tn))

Talkaren ondoren

(n+1)-garren talkaren ondoren, eta (n+2)-garren talka baino lehen (tn+1<t<tn+2), bolaren posizioa eta abiadura honela adierazten dira denboraren menpe:

yb=yn+1+vn+1(t-tn+1)-g(t-tn+1)2/2 
vb=v
n+1-
g(t-tn+1)

Prozesu honek, etengabe, iterazioak kalkulatzen ditu, baina talka kontsekutibo biren arteko denbora-tartea (tn+1-tn) oso-oso txikia bada, alegia, programaren dt denbora-urratsa baino txikiagoa bada, orduan programak bolaren eta pistoiaren posizioak oker kalkulatzen ditu.

Bolak etengabe jarrai dezake pistoiaren gainean errebotatzen edo, itzultze koefizientea "unitatea" ez bada, bola pistoiaren gainean etzanda gera daiteke, dinamikako kapitulu batean erakutsi den bezala: Erorketa askea eta ondorengo erreboteak". Bertan frogatzen da bolak, errebote-kopuru finitu bat burutu ondoren, pausagunean geratzen dela.

Baina pistoiaren azelerazioa honela adierazten da:

-2·sin(ωt)

Eta azelerazio hori grabitatearena baino handiagoa bada, bola ez da pistoiaren gainean etzanda geratuko, eta berriro errebotatuko du, baina baliteke errebotatu ondoren, berriz ere pausagunean geratzea pistoiaren gainean, oszilazioen periodoa baino denbora-tarte laburragoan.

Sinkronizazioa

Ondoren planteatzen den kuestioa da, zein altueran askatu behar den bolatxoa (y0=h) eta zein aldiunetan askatu behar den (t0), errebote kontsekutiboen periodoa (P=tn+1-tn ) eta pistoiaren oszilazioena (P=2π/ω) berdinak izan daitezen (irudian marra urdinaz erakusten da).

Horretarako, talka guztiak posizio berean gertatu behar dira: ye=yb=yp,

Bolaren ub abiadura, pistoiaren kontra talka egin aurretik eta ondoren, berdina izan behar da, baina zeinua aldatuta.

Bestela esanda, bolak talkaren eraginez galtzen duen energia (talka inelastikoa delako) eta talkaren bidez irabazitako energia zinetikoa justu berdinak izan behar dira.

ub -vp= -e(-ub-vp)

Eta, kasu honetan, bola toki beretik irteten eta iristen denez, behin eta berriz, eta horretarako P denbora behar duenez, orduan talkaren aurreko eta ondorengo abiadura hau izango da:

Abiadura hori atzemateko, bolak h altueratik eta pausagunetik abiatuta eta ye posizioraino iristeko, P/2 denbora behar du:

Eta pistoia jatorritik abiatzen denez, t=0 aldiunean, eta aldiune horretan honako abiadura duenez, vp= A·ω·cos(ωte). Orduan, hona hemen talkaren te aldiunea:

Eta talkaren posizioa hau da: ye=yb=yp=A·sin(ωte)

Beraz, bola askatu behar da pausagunetik eta honako altueratik:

Eta t0 aldiunea kalkulatzeko, honako erlazioa bete behar da: te-t0=P/2. Beraz,

Eta k<1 izan behar denez, A anplitudeak honako baldintza bete beharra dauka:

Bestela sinkronizazioa ezinezkoa da.

Saiakuntza

Aukeran idatz daitezke:

  • Talkaren itzultze-koefizientea, e, dagokion en kontrolean ¡idatziz.

  • Pistoiaren H.H.S-aren periodoa (s), P=2π/ω, dagokion kontrolean idatziz.

  • Bolaren hasierako altuera (m), h, dagokion kontrolean idatziz.

  • Pistoiaren anplitudea finkotzat hartzen da, A=0.1 m=10 cm

Berria botoia sakatu, datuak onartzeko.

Pistoia oszilatzen hasten da, –A eta +A posizioen artean, baina bolak hasierako altueran kokatuta (h) segitzen du, geldi.

Hasi botoia sakatu. Justu bola askatzen da (t0 aldiunean) eta leihatilaren goiko eta eskumako aldean idatzita adierazten da.

Ondoren, bola behin eta berriz erortzen da pistoiaren gainean. Leihatilaren eskumako aldean grafikoak bolaren eta pistoiaren posizioa adierazten ditu denboraren menpe.

Adibidea

Froga bitez honako datuak:

  • Itzultze-koefizientea, e=0.9.

  • Hasierako altuera, h=1.32 m.

  • Periodoa, P=1.0 s.

Berria botoia sakatu.

Pistoia mugitzen hasten da baina bola ez, bola bere hasierako posizioan dago.

Denborak t0=0.69 s balio duenean, Hasi botoia sakatu.

  • Bola erori eta pistoiarekin talka egiten du honako aldiunean: t1=1.19 s

  • Talkaren posizioa, y1=0.1·sin(2π·t1)=0.09 m, edota  y1=1.32-4.9·(1.186-0.69)2=0.09 m

  • Bolak talka baino lehen duen abiadura: u1= -9.8·(1.19-0.69)= -4.9 m/s

  • Pistoiaren abiadura, vp=0.1·2π·cos(2π·t1)=0.23 m/s.

  • Bolaren abiadura talkaren ondoren, itzultze koefizientearen bitartez kalkulatzen da: v1-vp= -e(u1-vp)  

v1=(1+0.9)·0.23+0.9·4.9=4.85 m/s

  • Bolak altuera maximoa atzematen duenean, bere abiadura nulua da:

0=4.85-9.8·(t-1.19)    t=1.68 s

h=1.29 m

Prozesu osoa berriro errepikatzen da, eta bigarren talkaren aldiunea kalkulatzen da, eta horrela behin eta berriz.

Sinkronizazioa

Honako datuekin:

  • Itzultze-koefizientea, e=0.9

  • Periodoa, P=1.0  s

Kalkula ditzagun zein h altueratik eta zein t0 aldiunetan askatu behar den bola:

Pistoiaren maiztasun angeluarra: ω=2π/P=2π rad/s

Eta k parametroa:

Bola pausagunetik askatzen da, honako altueratik:

Eta askatzeko aldiunea, t0:

Emaitza hori negatiboa atera denez, berdin emango du t0+n·P aldiunetan askatzea, esaterako, t0=1-0.31=0.69, 1.69 s, etc.

Sinkronizazioa lortzeko honako datuak sar itzazu:

  • Itzultze koefizientea, e=0.90

  • Periodoa, P=1.0 s

  • Hasierako altuera, h=1.32 m

Berria botoia sakatu.

Pistoia mugitzen hasten da, gora eta behera, +10 eta -10 cm. posizioen artean.

Leihatilaren goiko eta eskumako erpinean, denbora idatziz adierazten da, segundotan. t0=0.69 s. aldiunera hurbiltzen ari denean, gelditu botoia sakatu eta ondoren pausoka zenbait aldiz. Justu t0=0.69 s-raino iristean, Hasi botoia sakatu eta jarraitu. Ikusiko duzu, justu sinkronizazioa lortzen dela, alegia, bolaren errebote kontsekutiboen arteko periodoa eta pistoiarena berdinak dira.

stokesApplet aparecerá en un explorador compatible con JDK 1.1.
                                 
 

Kaoserako bidea

Azter dezagun bolaren portaera, pistoiaren kontra N talka egin ondoren. Lehenik, hasierako baldintzak finkatuko ditugu (ez dugu aske utziko hasierako h altuera eta jaurtiketaren t0 aldiunea) eta lehen talkaren aldiunean zenbatzen hasiko gara: une horretan, bolaren hasierako abiadura (u1) eta pistoiaren hasierako fasea (φ) datutzat hartuko ditugu.

Aurreko atalean, higidura hasten zen bola askatzen zen aldiunean, ondoren, bolak pistoiaren kontra lehen talka egiten zuen t1 aldiunean, u1 abiaduraz eta pistoia honako posizioan zegoen: yp=A·sin(ωt1).

Oraingoan hori aldatu egingo dugu, hasierako baldintzak izango dira: t=0 aldiunean, bolaren hasierako abiadura u1 da eta pistoiaren fasea φ=ωt1.

  • Pistoiaren higidura

Pistoiak HHS deskribatzen du, A anplitudekoa eta ω maiztasun angeluarrekoa. Pistoiaren posizioa honela adierazten da denboraren menpe:

yp=A·sin(ωt)
vp
= A·ω·cos(ωt)

eta φ da, pistoiaren higiduraren hasierako fasea.

  • Bolaren higidura

 

Bolak pistoiaren kontra talka egiten du t1=0  aldiunean, -v0 abiaduraz (beherantz) eta honako posizioan:

 y1=A·sen(φ). Hau da bolaren abiadura talkaren ondoren:

v1=(1+e)·A·ω·cos(φ)+e·v0

Talkaren ondoren

Talkaren ondoren, bolaren posizioa eta abiadura erorketa askearenak dira: (t1<t<t2)

yb=y1+v1(t-t1)-g(t-t1)2/2
vb=v1-
g(t-t1)

Gainontzeko kalkuluak aurreko ataleko berdinak dira: "Higiduraren ekuazioak"

Saiakuntza

Aukeran idatz daitezke:

  • Bolak eta pistoiak duten talkaren itzultze koefizientea, e, desplazamendu barrari saguaz eragiten.

  • Pistoiaren HHS-aren ω maiztasun angeluarra (rad/s), dagokion kontrolean idatziz.

  • Pistoaren hasierako φ fasea (0-360), gradutan, dagokion kontrolean idatziz.

  • Bolaren hasierako abiadura lehen talkan, v0 m/s-tan (beherantz) dagokion kontrolean idatziz.

  • Pistoiaren anplitudea finkotzat hartu da: A=0.1 m=10 cm

Hasi botoia sakatu.

Leihatilaren ezkerraldean ikusten da, justu lehen errebotean hasita, pistoiaren higidura oszilakorra eta bolaren erreboteak, denak bertikal berean. Leihatilaren eskumako aldean, grafikoki adierazten da, bolaren eta pistoiaren posizioak denboraren menpe (gorria eta urdina hurrenez hurren).

Froga bedi programa interaktiboa, esaterako, finkatuz maiztasuna, itzultze-koefizientea eta hasierako abiadura, eta fasea aldatuz. Ondoren, alda bedi pixkatxo bat itzultze-koefizientea, gainontzeko parametroak finko mantenduz eta errepika bedi prozesu osoa zenbait alditan.

stokesApplet aparecerá en un explorador compatible con JDK 1.1.
                                      
 

Bolaren portaera ω maiztasun angeluarra aldatuz

Oso interesgarria izaten da, bolaren higidura denboraren menpe aztertu beharrean, bolaren portaera aztertzea pistoiaren maiztasunaren menpe edo pistoiaren anplitudearen menpe, edo itzultze-koefizientearen menpe, etab.

Oraingo honetan, bolaren portaera aztertuko dugu pistoiaren oszilazioen ω maiztasun angeluarraren menpe. Utz diezaiogun bolari 100 errebote burutzen pistoiaren gainean eta, ondoren, neur dezagun zenbat denbora behar duen bolak bi talka kontsekutiboren artean (Δt=tn+1-tn) beste 100 errebotetan.

Ardatz horizontalean, pistoiaren ω maiztasuna adierazten da eta, ardatz bertikalean, bi talken arteko Δt denbora-tartea.

Hona hemen C lengoaian idatzitako errutina bat horixe egiteko: http://chaos.phy.ohiou.edu/~thomas/download/bball.c. Orri honen autoreak programa hori Java lengoaiara egokitu du hemen applet-en bitartez landu ahal izateko.

Datuak:

  • Maiztasunen tartea: 35-tik 37-raino (rad/s)
  • Anplitudea: A=0.012
  • Itzultze koefizientea: e=0.5

Goiko irudian bidebanatzeak ikusten dira eta, azkenean, kaos egoerara iristen dela.

Autoreak egin duen programa interaktiboak ez ditu irudiko emaitza berdinak ematen. Orri honen azken aldean programazio-kodea erakusten da, inork hobetu nahiko balu.

Aukeran idatz daitezke:

  • Itzultze-koefizientea, e, desplazamendu-barrari saguaz eragiten.

  • Maiztasunen tartearen hasierako maiztasuna eta amaierako maiztasuna (rad/s-tan), dagozkien kontrolean idatziz.

  • Pistoiaren hasierako φ fasea (0-360), gradutan, desplazamendu-barrari saguaz eragiten.

  • Bolaren hasierako abiadura lehen talkan, v0 m/s-tan (beherantz) dagokion kontrolean idatziz.

  • Pistoiaren HHS-aren anplitudea finkotzat hartu da: A=0.1 m=10 cm.

Hasi botoia sakatu.

stokesApplet aparecerá en un explorador compatible con JDK 1.1.

 

Erreferentziak

"Higiduraren ekuazioak" eta "Sinkronizazioa" atalentzat:

Alvarez, Luis W., Senecal G. Mechanical analog of the synchrotron, illustrating phase stability and two-dimensional focusing. Am. J. Phys. 43 (4) April 1972, pp. 293-296

"Kaoserako bidea" atalarentzat:

Tufillaro N. B., Mello T. M., Choi Y. M. Albano A. M. Period doubling of a bouncing ball, J. Physique 47 Septembre (1986) pp. 1477-1482

http://chaos.phy.ohiou.edu/~thomas/chaos/bouncing_ball.html

 

Programazio-kodea

Ondoko programa honek bolaren ibilbidea kalkulatzen du, pistoian behin eta berriz errebotatuz:

public class Impacto {
	double wf;
	double fase;
	double resti;
	double amplitud=0.1;
	double yIni;
	double vbIni, vb;
	double t, t0;
	final double dt=0.01;

	double yPiston;
	double yb;
	int nChoques;
//RAÍZ DE UNA ECUACIÓN TRASCENDENTE
	final double CERO=1e-10;
	final double ERROR=0.00001;
	final int MAXITER=200;
	int tipo=1;

public Impacto(double wf, double fase, double resti, double v0) {
	this.wf=wf;
	this.fase=fase;
	this.resti=resti;
//primer choque en el instante t=0;
	t=0.0;
	t0=0.0;
	nChoques=0;
	yPiston=yb=yIni=amplitud*Math.sin(fase);
	//v0 es una velocidad negativa para que choque con la plataforma
	vb=vbIni=(1+resti)*amplitud*wf*Math.cos(fase)+v0*resti;
	tipo=1;
}
void mover(){
	t+=dt;
	yPiston=amplitud*Math.sin(wf*t+fase);
	switch(tipo){
		case 1:
			yb=yIni+vbIni*(t-t0)-4.9*(t-t0)*(t-t0);
			vb=vbIni-9.8*(t-t0);
			if(yb<yPiston){ //choque
				double tChoque=puntoMedio((t-dt), t);
				yPiston=amplitud*Math.sin(wf*tChoque+fase);
				yb=yIni+vbIni*(tChoque-t0)-4.9*(tChoque-t0)*(tChoque-t0);
				yIni=yb;
			//velocidad después del choque
				vbIni=(1+resti)*amplitud*wf*Math.cos(wf*tChoque+fase)-
				(vbIni-9.8*(tChoque-t0))*resti;
				nChoques++;
				if((tChoque-t0)<dt){
					tipo=2;
				}
				t0=tChoque;
			}
			break;
		case 2: //la bola pegada al pistón
			yb=yPiston;
			vb=amplitud*wf*Math.cos(wf*t+fase);
			break;
		default:
			break;
	}

}

//procedimiento del punto medio
double puntoMedio(double a, double b) {
	double m, ym;
	int iter=0;
	do{
		m=(a+b)/2;
		ym=f(m);
		if(Math.abs(ym)<CERO) break;
		if(Math.abs((a-b)/m)<ERROR) break;

		if((f(a)*ym)<0) b=m;
		else a=m;
		iter++;
	}while(iter<MAXITER);
	return m;
}

double f(double tt){
	double y=-amplitud*Math.sin(wf*tt+fase)+yIni+vbIni*(tt-t0)-4.9*(tt-t0)*(tt-t0);
	return y;
}
}

Honako programa honek bi talka kontsekutiboren arteko denbora-tartea kalkulatzen du

public class Impacto {
	double wf;
	double fase;
	double resti;
	double amplitud=0.1;
	double yIni;
	double vbIni, vb, v0;
	double t, t0;
	final double dt=0.01;

	double yPiston;
	double yb;
	int nChoques;
//RAÍZ DE UNA ECUACIÓN TRASCENDENTE
	final double CERO=1e-10;
	final double ERROR=0.00001;
	final int MAXITER=200;

public Impacto(double wf, double fase, double resti, double v0) {
	this.wf=wf;
	this.fase=fase;
	this.resti=resti;
	this.v0=v0;
//primer choque en el instante t=0;
	t=0.0;
	t0=0.0;
	nChoques=0;
	yPiston=yb=yIni=amplitud*Math.sin(fase);
//v0 es una velocidad negativa para que choque con la plataforma
	vb=vbIni=(1+resti)*amplitud*wf*Math.cos(fase)+v0*resti;
}
void setFrecuencia(double wf){
	this.wf=wf;
//situación inicial de partida con otra frecuencia
	t=0.0;
	t0=0.0;
	nChoques=0;
	yPiston=yb=yIni=amplitud*Math.sin(fase);
	vb=vbIni=(1+resti)*amplitud*wf*Math.cos(fase)+v0*resti;
}

double mover(){
	while(true){
		t+=dt;
		yPiston=amplitud*Math.sin(wf*t+fase);
		yb=yIni+vbIni*(t-t0)-4.9*(t-t0)*(t-t0);
		vb=vbIni-9.8*(t-t0);
		if(yb<yPiston){ //choque
			double tChoque=puntoMedio((t-dt), t);
			yPiston=amplitud*Math.sin(wf*tChoque+fase);
			yb=yIni+vbIni*(tChoque-t0)-4.9*(tChoque-t0)*(tChoque-t0);
			yIni=yb;
	//velocidad después del choque
			vbIni=(1+resti)*amplitud*wf*Math.cos(wf*tChoque+fase)-
				(vbIni-9.8*(tChoque-t0))*resti;
			nChoques++;
			if((tChoque-t0)<dt){
				return -1;  //la bola y el pistón están pegadas
			}
			double difTiempo=tChoque-t0;
			t0=tChoque;
			return difTiempo;
		}
	}
}


//procedimiento del punto medio
double puntoMedio(double a, double b) {
	double m, ym;
	int iter=0;
	do{
		m=(a+b)/2;
		ym=f(m);
		if(Math.abs(ym)<CERO) break;
		if(Math.abs((a-b)/m)<ERROR) break;

		if((f(a)*ym)<0) b=m;
		else a=m;
		iter++;
	}while(iter<MAXITER);
	return m;
}

double f(double tt){
	double y=-amplitud*Math.sin(wf*tt+fase)+yIni+vbIni*(tt-t0)-4.9*(tt-t0)*(tt-t0);
	return y;
}
}