Oszilazioak |
Kaos erregimenaren oinarriak
|
Higiduraren ekuazioak | |||
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
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)
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
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: -Aω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. SinkronizazioaOndoren 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,
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. SaiakuntzaAukeran idatz daitezke:
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:
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.
Prozesu osoa berriro errepikatzen da, eta bigarren talkaren aldiunea kalkulatzen da, eta horrela behin eta berriz. Sinkronizazioa Honako datuekin:
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:
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. |
Kaoserako bideaAzter 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.
Pistoiak HHS deskribatzen du, A anplitudekoa eta ω maiztasun angeluarrekoa. Pistoiaren posizioa honela adierazten da denboraren menpe: yp=A·sin(ωt+φ) eta φ da, pistoiaren higiduraren hasierako fasea.
Talkaren ondoren Talkaren ondoren, bolaren posizioa eta abiadura erorketa askearenak dira: (t1<t<t2) yb=y1+v1(t-t1)-g(t-t1)2/2 Gainontzeko kalkuluak aurreko ataleko berdinak dira: "Higiduraren ekuazioak" SaiakuntzaAukeran idatz daitezke:
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. |
Bolaren portaera ω maiztasun angeluarra aldatuzOso 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:
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:
Hasi botoia sakatu. |
"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
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; } } |