Mathematican version 8 mukainen.   (29.10.2012 SKK)

Värähtelevä jousi

Jousen puristumista ja venymistä voidaan kuvata varsin yksinkertaisella matemaattisella mallilla. Kun jousi poikkeutetaan tasapainoasemastaan, se pyrkii palautumaan tasapainoasemaan jousivoiman vaikutuksesta. Tälle ns. harmoniselle voimalle pätee

F(x)=-k x,

missä x on jousen poikkeama tasapainoasemasta ja k jouselle tyypillinen jousivakio. Jos toisaalta huomioidaan voiman jousisysteemiin aiheuttama kiihtyvyys, saadaan Newtonin lain avulla

F(x)=m (((d^2)x)/(d (t^2)))=-k x,

missä m on jouseen kiinnitetty massa. Näin on saatu jousen diffferentiaaliyhtälö.

Yhtälö pätee myös esimerkiksi katosta jousen varassa ripustetulle kappaleelle. Tulee kuitenkin huomata, että kyseinen malli pätee vain pienille poikkeamille x eikä se lainkaan mallinna poikittaista liikettä tai jousessa syntyvää kiertymää.

Otetaan tarkastelun kohteeksi oheisen kuvion mukainen systeemi, jossa kapale massaltaan m on liitetty kattoon jousella, jonka jousivakio on k. Jousi voi liikkua vain pystysuorassa sunnassa.

Laskujen aluksi on syytä hävittää mahdollisista aiemmista laskuista jääneet muuttujat.

Remove["Global`*"]

Kappaleen pystysuora paikkakoordinaatti x ilmoitetaan poikkeamana lepotilasta, ylöspäin positiivisena ja alaspäin negatiivisena. Systeemin liikeyhtälö on Newtonin lain mukainen toisen kertaluvun differentiaaliyhtälö:

yht= m x''[t]+k x[t]==0

Systeemiä tarkastellaan siten, että kappale sysätään hetkellä t=0 liikkeelle lepotilasta antamalla sille alkunopeus.

alkuehdot= {x[0]==0,x'[0]==10}

Saatu differentiaaliyhtälö ratkaistaan Mathematican DSolve-komennolla ja sievennetään.

rtk=DSolve[Flatten[{yht,alkuehdot}],x[t],t]

liike= x[t]/.First[rtk]

Massa joutuu sinimuotoiseen värähtelyliikkeeseen. Piirretään kuvaaja sijoittamalla ensin arvot massalle ja jousivakiolle.

rata1=liike/.{k->1,m->1}

Plot[rata1,{t,0,4Pi}]

Tehdään animaatio värähtelylle. Seuraava koodi määrittelee kappaleeen liikkeen animoinnissa tarvittavat työkalut. Kyseessä on Mathematicalla kirjoitettu ohjelmakoodi.

kappale[hor_,ver_,lev_,kork_]:={{GrayLevel[0.5],Rectangle[{hor-0.5*lev,ver-0.5*kork},{hor+0.5*lev,ver+0.5*kork}]}};
jousi[hor_,ala_,yla_,paa_,jaksot_,ampl_]:=Module[{jakso},jakso=(yla-ala-2*paa)/jaksot;
kierre=ParametricPlot[{hor+ampl*Sin[2*Pi*t/jakso],t+ala+paa},{t,0,jaksot*jakso}];
{Line[{{hor,ala},{hor,ala+paa}}],Line[{{hor,yla},{hor,yla-paa}}],kierre[[1]]}];
kuva[x1_,x2_,x3_,t0_,nro_]:=Module[{x10=x1/.t->t0,lepo1=50.0,a=20.0,h=10.0,s=5.0,ampl=3.0},grafiikka=Graphics[{{GrayLevel[0.5],Rectangle[{-50,0},{50,5}]},Line[{{-50,0},{50,0}}],Text[Style[nro,16,Bold,FontFamily->"Helvetica"],{70,-5}],kappale[0,-lepo1+x10,a,h],jousi[0,-lepo1+x10+h/2,0,s,5,ampl]}];
Show[grafiikka,AspectRatio->Automatic,PlotRange->{{-80,80},{-80,10}}]];

Ja sitten animointi:

anim= Animate[kuva[rata1,0,0,N[k (2Pi)/30],ToString[k]],{k,0,29,1},SaveDefinitions->True]

Tehtävä

Tarkastele erisuuruisten massojen käyttäytymistä jousen varassa. Millä tavalla massan muuttaminen vaikuttaa syntyvään värähtelyyn? Entä jos muutetaan myös alkunopeutta siten, että värähtelyn energia pysyy vakiona?

JP & SKK 03.05.2001