varaht1.mws
Sovellukset : Jouset

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 ) = - kx ,

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

F( x ) = m*diff(x,`$`(t,2)) = -k*x ,

missä m on jouseen kiinnitetty massa. Näin on saatu jousen differentiaaliyhtä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 kappale massaltaan m on liitetty kattoon jousella, jonka jousivakio on k . Jousi voi liikkua vain pystysuorassa sunnassa.

[Maple Bitmap]

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

> restart;

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*diff(x(t), t$2)+k*x(t)=0;

yht := m*diff(x(t),`$`(t,2))+k*x(t) = 0

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

> alkuehdot:= x(0)=0, D(x)(0)=10;

alkuehdot := x(0) = 0, D(x)(0) = 10

Saatu differentiaaliyhtälö ratkaistaan Maple n dsolve -komennolla.

> rtk:= dsolve({yht, alkuehdot}, x(t));

rtk := x(t) = 10*m*sin(sqrt(k*m)*t/m)/(sqrt(k*m))

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

> rata1:=subs({k=1, m=1}, rtk);

rata1 := x(t) = 10*sin(t)

> plot(rhs(rata1), t=0..4*Pi);

[Maple Plot]

Tehdään animaatio värähtelylle. Seuraava koodi määrittelee kappaleen liikkeen animoinnissa tarvittavat työkalut. Kysessä on Maple lla kirjoitettu ohjelmakoodi.

> with(plots): with(plottools):

Warning, the name changecoords has been redefined

> jousi:= proc(ala, yla, paa, jaksot)
local ampl, jakso;
ampl:= 3;
jakso:= (yla-ala-2*paa)/jaksot;
plot(
[[ampl*sin(2*Pi*r/jakso),
r+ala+paa, r=0..jaksot*jakso],
[0, ala+r, r=0..paa],
[0, yla-r, r=0..paa]], color=black);
end:

kappale:= proc(hor, lev, kor)
rectangle([-0.5*lev, hor+0.5*kor],
[0.5*lev, hor-0.5*kor], color=gray)
end:

varahtelija:= proc(y0, t0)
local lev, kor, paa, lepo, y1;
lev:= 20; kor:= 10; paa:= 5; lepo:= 50;
y1:= -lepo+subs(t=t0/(2*Pi), subs(y0,x(t)));
display(
rectangle([-50, 0], [50, 5], color=gray),
kappale(y1, lev, kor),
jousi(y1+kor/2, 0, 5, 5));
end:

Animaatio on lista peräkkäisiä kuvia, jotka on ensin laskettava. Animaatio käynnistyy viemällä hiiren osoitin kuvan päälle ja valitsemalla hiiren oikealla napilla esiin tulevasta valikosta A n imation -> P l ay . Animaatiosta saa jatkuvan valitsemalla em. valikosta A n imation -> C ontinuous .

> display(seq(varahtelija(rata1, u), u=0..39), insequence=true, axes=none, scaling=constrained);

Värähtely gif-animaationa.

Tehtävä

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


Sovelluksia: jousisysteemi
Ratkaiseminen: homogeeninen vakiokertoiminen lineaariyhtälö

JP & SKK & MS 12.07.2001