5 Harmoninen värähdysliike
Tehtävässä mallinnetaan harmoninen värähtelijä, kuten edellisessäkin tehtävässä, mutta laitetaan värähtelijä värähtelemään pystysuunnassa. Lisäksi tutkitaan tarkemmin amplitudia, jaksonaikaa ja värähtelijän paikan ja nopeuden kuvaajaa paikan funktiona.
Koodissa luodaan ensin muuttujat "tasapainoasema" (kuvaa painon tasapainoasemaa y-suunnassa) ja lisäksi "painon_paikka", joka kuvaa paikkaa y-suunnassa, josta paino lähtee liikkeelle. Seuraavaksi luodaan paino, katto ja niihin kiinnittynyt jousi. Käy nämä osat läpi, niin että ymmärrät, mitä niissä tapahtuu. Seuraavaksi luodaan muuttujat "jousivakio" ja "paino.m" (painon massa, tehtävässä jätetään kuitenkin painovoima huomiotta.) Seuraavaksi luodaan kaksi graafia ja kuvaajan pohjaa paikan ja nopeuden kuvaajien piirtämistä varten.
Tehtävät
- Luo while silmukka, jossa laitat painon värähtelemään jousivoiman avulla. Luo lisäksi silmukassa painon paikan ja nopeuden kuvaajat. (katso apua 4 Harmoninen voima ja 1 Ympyräliike ja kulmanopeus)
- Mikä värähdysliikkeen amplitudi? Miten näet sen paikan-kuvaajasta?
- Määritä paikan kuvaajasta värähdysliikkeen jaksonaika (\(T\)).
- Tee ennuste, miten jousivakio ja kappaleen massa vaikuttavat jaksonaikaan. (Tutki asiaa eri massoilla ja jousivakioilla.
- Tutki nopeuden ja paikan kuvaajaa. Milloin nopeus on suurin/pienin? Milloin nopeus on nolla? Pystytkö keksimään selityksen näille havainnoille?
while (t<10):
rate(500)
# Venymä - nollataso (7.5, 0 , 0)
x = paino.pos.y - tasapainoasema
# Jousivoima
F = -k * x
# -kx = ma
# a = -kx / m -> a = F/m
paino.nopeus = paino.nopeus + F/paino.m*dt
paino.pos = paino.pos + vector(0,paino.nopeus,0)*dt
jousi.axis = -(jousi.pos-paino.pos)
fx1.plot(t,paino.pos.y)
fx2.plot(t,paino.nopeus)
t = t + dt
Harmonisessa liikkeessä olevan, kevyen jousen päässä värähtelevän kappaleen jaksonaika lasketaan \(T=2\pi\sqrt{\frac{m}{k}}\). Tulosta ohjelman lopussa jaksonajan teoreettinen arvo
print("jaksonaika: ")
print(2*pi*sqrt(paino.m/k))