Yks' pyöräilijä

Eli opetus≫

December 2, 2014
by Markku Leino
0 comments

Kellotaulusta 90 asteen kulmat

Kello 15.00 viisarit ovat 90 asteen kulmassa. Koska näin on seuraavaksi?

kellotaulu

Minuuttiviisari kulkee kierroksen tunnissa eli 60 minuutissa ja se aloittaa nollakulmasta. Sen (kierto)kulma ajanhetkellä $t$ on siis

$\frac{360^\circ}{60} t = 6t$,

Tuntiviisari taas painaa tunnissa vain 30 astetta, koska koko kierrokseen menee 12 tuntia. Sen kiertokulma on siten

$\frac{30}{60}t = \frac12 t$,

Tuntiviisari aloittaa kiertämisen 90 asteesta, joten tunti- ja minuuttiviisarin erotus on

$6t- \frac12t-90$

Tämän piti olla 90, eli

$6t- \frac12t-90=90$

josta saadaan

$t=\frac{360}{11}\approx32.7272…$ minuuttia

$72,7272$ sadasosaa minuuteista on sekunteina $0.727272\times60\approx43.6363…$
Eli pitää kulkea 32 minuuttia ja 44 sekuntia klo 15.00:sta eteenpäin, jotta viisarit ovat taas yhdeksänkymmenen asteen kulmassa. Koska on seuraava?

September 18, 2014
by Markku Leino
0 comments

Vaihtovirtapiirit

Kondensaattori $C$

Kondensaattorin läpi ei kulje tasavirta, mutta smg-kenttä selviää, kuten on opiskeltu. Vaihtojännite $u(t)$ siis kulkeutuu kondensaattorin läpi. Yleisesti ottaen virta kondensaattorin läpi on suoraan verrannollinen jännitteen muutosnopeuteen, eli

$i = C \frac{dU}{dT}$.

Yksinkertainen C-virtapiiri on

piiriC

Siinä kulkeva virta $i(t)$ on

$i(t) = C \frac{du}{dt} = C \frac{u_0\sin(2\pi ft + \phi_0)}{dt}$

$i(t) = Cu_0 2\pi f \cos(2\pi ft + \phi_0)$

Muutetaan kosini siniksi (muista matikka 9 -kurssista), saadaan

$i(t) = Cu_0 2\pi f \sin(2\pi ft + \phi_0 + \frac{\pi}2)$,

eli jännitteen ja virran välillä $\frac\pi2$ vaihe-ero. Virta $i(t)$ on edellä (koska $+$-merkki). Samalla nähdään, että jännitteen ja virran suhde on $\frac1{2\pi fC}$. Se on nimeltään reaktanssi, $X_C$:

$X_C = \frac1{2\pi f C}$

 

 

 Käämi eli kela $L$

Käämissä muuttuva sähkövirta aiheuttaa mg-kentän, joka puolestaan Lenzin lain mukaisesti vastustaa virran muutosta, eli

$u(t) = L \frac{di}{dt}$.

Yksinkertainen $L$-virtapiiri on


piiriL

Tässä käämin yli oleva jännite $u(t)$ on

$u(t) = L \frac{di}{dt} = L \frac{i_0 \sin(2\pi f t + \phi_0)}{dt}$

$u(t) = L i_0 2\pi f \sin(2\pi f t + \phi_0)$

Muutetaan taas kosini siniksi, saadaan

$u(t) = L i_0 2\pi f \sin(2\pi f t + \phi_0 + \frac\pi2)$

Eli jännitteen ja virran välillä taas $\pi/2$:n vaihe-ero. Nyt virta on jäljessä. Huomataan, että jännitteen ja virran suhde on $L2\pi f$, ja sitä kutsutaan reaktanssiksi $X_C$

$X_C = 2\pi f L$.

Ohmin laki

Ohmin laki $R = \frac UI$ pätee myös vaihtovirtapiireille. Resistanssin $R$ paikalle kirjoitetaan impedanssi $Z$, joka määritellään

$Z = \sqrt{R^2 + (X_L – X_C)^2}$, jossa

vaihekulma $\phi = \arctan\left( \frac{X}{R} \right)$

Tämän perustelu on helppoa kompleksiluvuilla; reaktanssi $X = X_C – X_L$ on imaginaarinen ja resistanssi $R$ reaaliluku. Ne ovat kohtisuorassa toisiaan vasten (kompleksilukujen kurssi), joten pituus lasketaan Pythagoraan lauseella.

Teho vaihtovirtapiirissä; tehollinen arvo.

Hetkellinen teho on $p = u\cdot i$. Vastuksen yli $u = Ri$, eli saadaan $p = u\cdot i = R i^2$, kuten tasavirtapiirille.

Sinimuotoinen teho on kuvaajasta katsottuna tällainen:

tehoSini

Yllä sinimuotoinen virta, alla sen neliö. Aktiivinen lukija huomaa, että $p_0 = Ri_0^2$. Teho siis vaihtelee vaihtovirtapiirissä ollen välillä jopa nolla. Keskimääräinen (ns. lämmittävä) teho saadaan integroimalla eli laskemalla vihreän käyrän alla oleva pinta-ala (ruskea) $A$ ajanhetkestä $0$ hetkeen $T=1/f $ [miksi?] jaettuna välin pituudella. Integrointi on helppo;

$ p_t = \frac AT = \frac1T \int_0^T p(t) $

$ p_t = \frac1T \int_0^T p(t) R (i_0 \sin(2\pi f t + \phi_0) )^ 2 dt$

Integroimalla ja sijoittamalla $T = 1/f$ paikalleen, saadaan

$p_t = \frac{R i_0^2}2= R \left( \frac{ i_0}{\sqrt2}\right)^2 $.

Siispä keskimääräistä tehoa vastaava keskimääräinen virta on $i_0/\sqrt2$, eli huippuarvo alle neliöjuuri kaksi. Sitä kutsutaan teholliseksi arvoksi.

Se vastaa siis suorakulmion, jonka pinta-ala on sama kuin sinikäyrän, korkeutta. Kuvassa katkoviivoitettu harmahtava laatikko.

Sama käsittely voidaan tehdä jännitteelle aivan vastaavasti. Siitä saadaan jännitteen teholliseksi arvoksi $i_t = i_0/\sqrt2$. Täysin vastaavasti.

Tehollinen teho on virran ja jännitteen huippuarvoista laskettuna

$P_t = u\cdot i = \frac{u_0 i_0}{\sqrt2 \sqrt2} = \frac{u_0 i_0}{2}$.

Näennäisteho, $S$

Yksikkö VA, volttiampeeri. Sisältää kompleksisessa mielessä pätö- ja loistehon. Siitä ei paljoa enempää.

Pätöteho, $P$

Yksikkö W, watti. Pätöteho kuluu piirissä.

Loisteho, $Q$

Yksikkö Var, vari. Loisteho ei kulu, “heilahtelee” edestakaisin. Yksinkertainen käsittely vaatii kompleksiaritmetiikan hallintaa.

Loistehoa aiheuttaa omgelmaa sähkönjakelussa, koska verkosta ei saada kaikkea mahdollista tehoa ulos; virta kasvaa liikaa. Suurasiakkaat joutuvat maksamaan loistehosta. Heillä on isoja sähkömoottoreita (käämejä), jotka “ottavat” loistehoa. Loisteho pyritään kompensoimaan, yleensä rinnakkaiskondensaattoreilla.

Tehokerroin

Tehokerroin $\cos\phi$ on pätötehon suhde loistehoon; täysin resistiivisellä kuormalla tehokerroin on $1$, muutoin pienempi.

Kuvassa on sinimuotoinen jännite ja virta piirrettynä vaihe-erolla $\phi_0 = \pi/4$.

tehoSiniTehoKerroin

Vihreä tehokäyrä, eli jännitteen ja virran tulo on välillä negatiivinen. Se palauttaa tehoa järjestelmään. Siksi loisteho “heilahtelee” edestakaisin.

$|P| = |S| \cos\phi_0$.

Eri tehokomponenteille pätee vastaa Pythagoraan yhtälö kuin reaktansseille, eli

$S^2 = P^2 + Q^2 $.

J a t k u u . Tai sitten ei.

September 4, 2014
by Markku Leino
0 comments

Bolt ja Python I

Datan sovitus

Aiemmin malli tehtiin olettamalla, että $v(0) = 0$, mutta nyt pitää vielä huomioida reaktioaika $t = 0.142 $s. Se onnistuu helpolla siirtämällä aika-akselia $t \to t – 0.142 s$. Sovitetaan vain mittauspisteisiin, ei lasernopeuteen/ paikkaan, kuten ap artikkelissa.

Ensin pieni kuvaajan piirto ja datan luku

import csv
import numpy as np #genfromtxt
import matplotlib.pyplot as plt

data = np.genfromtxt('100mBerlin.csv', skip_header=1)
xmitta=ajat[:,0]
tmitta=ajat[:,1]


plt.plot(xmitta, tmitta, 'o-', linewidth=3);
plt.xlabel('Paikka [m]', fontsize=20);
plt.ylabel('Aika [s]', fontsize=20);
"xlim(0,100);

plt.show();

Sovitus Pythonin lmfit-paketilla. Sitä varten piti asentaa scipy ja lmfit tuli helpolla

easy_install -U lmfit

Lmfit-paketti on melko yksinkertainen käyttää ja parametrit ja data kulkeutuvat kivasti. Määritetään virhe- eli minimoitava residuaalifunktio

from lmfit import minimize, Parameters
import numpy as np

def residual(params, t, data):
    A = params['A'].value
    B = params['B'].value
    k = params['k'].value
    t = t
    tr = 0.142

    model = A/k*np.log( (A+B*np.exp(-k*(t-tr)) )/(A+B)) + B/k*np.log( (A*np.exp(k*t) + B)/(A+B) )

    return (data-model)

params = Parameters()
params.add('A', value=100)
params.add('B', value=10)
params.add('k', value=1)

result = minimize(residual, params, args=(tmitta,xmitta))

report_fit(params)

September 4, 2014
by Markku Leino
0 comments

Usain Boltin nopea juoksu

Usain Bolt repäisi vuoden 2008 kesäolympialaisissa Beijingissä ja MM-kisoissa Berliinissä 2009. Molemmat kisat on analysoitu tarkkaan, ja niistä lyhyt tiivistelmä alla.

 

Kesäkuussa 1960 Zürichissä saksalainen Armin Harry juoksi ensimmäistä kertaa satasen kymmeneen sekuntiin. Vuonna -68 Jim Hines alitti haamurajan käyttämällä 9,9 sekuntia sadan metrin suoraan. Carl Lewiksen ennätys vuodelta 1991 paransi aikaa 0,14 sekuntia (9,86 s). Usain Bolt kirpaisi nykyisen maailmanennätyksen 9,58 s Berliinissä 2009.

Katso Wikipediasta lisää historiaa:

https://en.wikipedia.org/wiki/Men%27s_100_metres_world_record_progression

 

Usain Bolt -dataa, joka selvitetään alempana:

  • 1,95 m pitkä
  • 94 kg (josta paino 842,8 N)
  • 12,15 m/s keskinopeus loppumatkasta
  • 9,5 m/s$^2$ alkukiihdytys (0.97g)
  • 815,8 N keskimääräinen työntövoima 100m pinkaisussa (vrt. paino)
  • 2620 W huipputeho lähdössä (nopeus 6,24 m/s)
  • 6,36 kJ juoksuun kulutettu energia
  • 8% energiasta liikkumiseen; loput ilmanvastukseen

Berliinin Biomekaniikkaprojekti mittasi 100m finaalin väliajat 10 m:n välein sekä nopeuden poliisienkin käyttämällä laser- (LAVEG)-mittauksella. Data löytyy osoitteesta

nopeus

http://berlin.iaaf.org/mm/document/development/research/05/31/54/20090817073528_httppostedfile_analysis100mmenfinal_bolt_13666.pdf

Lasertutka (Doppler-) antaa sinisen käyrän, jossa on hieman vaihtelua. Samasta paperista löytyy 10 metrin väliajat taulukkomuodossa.

 

Boltin nopeusfunktio

Käytännössä oikeaa pikajuoksun nopeusmallia ei ole olemassa, siksi siihen sovitetaan jokin kohtuullisen oikean näköinen käyrä. Vihjettä saadaan Newtonin II laista, joka sanoo, että

$\sum F = ma = m \frac{\d v}{\d t}$ eli

$m \frac{\d v}{\d t} = F_0 – \alpha v$

ja voimien summa $\sum F$ on työntövoima $F_0$ ja ilmanvastus $\alpha v$. Oikeasti ilmanvastus ei ole suoraan verrannollinen nopeuteen, koska se ei ole laminaarista, vaan turbulenttista. Turbulenttinen ilmanvastus on muotoa $\alpha v^2$.

Laminaariselle ilmanvastukselle ($\alpha v$) voidaan Newtonin II laista ratkaista nopeus tavallisin menetelmin. Se on

$v(t) = \frac{F_0}{\alpha}(1 – e^{-\alpha t /m})$,

kunhan työntövoima $F_0$ on vakio. Ilmanvastuskerroin $\alpha$ voidaan olettaa vakioksi ongelmitta. Ylläolevaa tulosta ei ole juuri käytetty, vaan jotain, mikä muistuttaa tuota. Helene ja kaverit käyttävät muotoa

$v(t) = \left( \frac{F_0}\alpha + \frac{m\beta}{\alpha^2}\right) \left( 1 – e^{-\alpha t/m}\right) – \frac{\beta t}{\alpha}$.

Ilmanvastus oletetaan yhä laminaariseksi. Yhtälössä näkyvät parametrit $F_0/\alpha+m\beta/\alpha^2$, $\alpha /m$ ja $\beta/\alpha$ ratkaistaan sovittamalla nopeusfunktio $v(t)$ yllä näkyvään punaiseen käyrään. Se onnistuu helpolla.

 

Ilmanvastus

Gomez & Gomez tarkensivat muutamaa vuotta myöhemmin mallifunktiotaan approksimoimalla ilmanvastusta. Ilmanvastus olkoon juoksunopeudesta $v$ riippuva funktio $D(v)$, jonka tarkka muoto on epäselvä. Sitä voidaan kuitenkin approksimoida, tällä kertaa Taylorin polynomilla. Siis

$D(v) \approx D(0) + \frac{\d D(v)}{\d t}\Big|_0 v +\frac12 \frac{\d^2 D(v)}{\d t^2}\Big|_0 v^2 + O(v^3)$

Tässä $O(v^3)$ on virhetermi. Selvästi

  • Ensimmäiselle termille saadaan $D(0)=0$, koska ilmanvastusta ei ole levossa.
  • Toinen termi, verrannollinen nopeuteen $v$ on laminaarinen vastus. Merkitään $\alpha v$
  • Kolmas termi, verrannollinen nopeuden toiseen potenssiin $v^2$ on turbulentti-ilmiö, joka siis huomioi hydronaamiset ilmiöt. Merkitään $\beta v^ 2$

Siis Newtonin yhtälöksi saadaan

$m \frac{\d v}{\d t} = F_0 – \alpha v – \beta v^2$

eli lähes sama kuin ylläoleva. Tämä ratkeaa separoimalla eli

$\int_{t_0}^t \d t = m \int_{v_0}^v \frac{\d v'(t)}{ F_0 – \alpha v'(t) – \beta v'(t)^2} $

 josta

 

$v(t) = \frac{AB( 1 – e^{-kt})}{A+Be^{-kt}}$

 eli lähes samanmuotoinen funktio kuin yllä ollut. Vakiot ovat

  • $\alpha = \frac{km(A-B)}{A+B}$
  • $\beta = \frac{km}{A+B}$ ja
  • $F_0 = \frac{kmAB}{2A+2B}$

Kiihtyvyys, nopeus ja paikka

Nopeuden aikaderivaatta on kiihtyvyys ja nopeuden integraali ajan suhteen on paikka. Ne tulevat Sympyllä heittämällä.

$a(t) = \frac{AB(A+B)k( 1 – e^{-kt})}{(A+Be^{-kt})^2}$

$v(t) = \frac{AB( 1 – e^{-kt})}{A+Be^{-kt}}$

$x(t) = \frac AB \ln \frac{A+Be^{-kt}}{A+B} + \frac BK \ln \frac{Ae^{kt} + B}{A+B}$

Juoksu eli datan sovitus

Sovitetaan finaalista mitattu aika–paikka-data ylläolevaan paikan $x(t)$ yhtälöön.

 

 

 

Myötätuuli (2009) vaikutti 0,1 sekuntia. 

 

 

Videoanalyysi:

http://www.youtube.com/watch?v=SyY7RgNLCUk

joka on tehty Berliini 2009 Biomekaniikka-projektin avulla:

http://berlin.iaaf.org/news/kind=101/newsid=53084.html

 

The force, power and energy of the 100 meter sprint (Helene et al: 2010):

http://arxiv.org/abs/0911.1952

On the performance of Usain Bolt in the 100 m sprint (Gomez, Gomez: 2013):

http://iopscience.iop.org/0143-0807/34/5/1227/article

http://www.youtube.com/watch?v=xLXbLWiN1rQ

July 2, 2014
by Markku Leino
0 comments

Java: paketit

Edelliseen juttuun, http://www.blogi.luntti.net/eclim-hello-world/, jatkoa. Nyt tehdään paketti.

Paketin luominen

Paketit, Package, helpottavat isompien tiedostojen kanssa toimimista. Siispä kokeillaan tässäkin heti.

Pakettien nimeäminen on pienillä kirjaimilla ja yleensä tiedostot pakataan paketin nimiseen hakemistoon. Tehdään HelloWorld:stä paketti world. Se dumpataan org-hakemiston alle, tavallisen nimeämiskäytännön mukaisesti. Siispä tehdään hakemisto

src/java/org/world

ja siirretään tiedosto HelloWorld.java sinne. Paketin alkuun pitää kirjoittaa package, eli tiedosto pitää näyttää tältä

package org.world;

public class HelloWorld 
{
  public static final void main(String[] Args)
  {
    System.out.println("Hello World");
  }
}

Vain rivi 1 on lisätty, tiedoston sijainnin lisäksi. Rivillä 1 on sijainti pisteytettynä.

Kääntäminen terminaalista

StackOverFlow:n perusteella parasta on kääntää paketin ulkopuolelta, eli alihakemistosta. Mene alempaan hakemistoon src/java/ ja käännä

$javac org/world/HelloWorld.java

ja sen voi ajaa tarkalla nimellä

$java org.world.HelloWorld

Toimii.

Eclimistä kääntäminen

:Java %

kääntää koko tiedoston, mutta virallinen

:Java

ei pelitä. Ei löydä main-tiedostoa. Vielä.

Virheilmot

  • Error: Could not find or load main class HelloWorld
  • tulee käskyllä :Java