Füsssimull - Newtoni II seaduse simulatsioon

Sisukord

1. Sissejuhatus
2. Tehnilised andmed
    2.1. Kasutatud terkvara ja keeled
    2.2. Miinimumnõuded arvutile
    2.3. Juriidilised andmed
3. Põhiprogramm "Füsssimull"
    3.1. Programmi käivitamine
    3.2. Menüü
        3.2.1. Nupud
        3.2.2. Simulatsioonis kasutatavad parameetrid
            3.2.2.1. Muudetavad parameetrid
            3.2.2.2. Arvutatavad parameetrid
    3.3. Klaviatuuri klahvid
4. Komplekteerija
4.1. Komplektide fail

Sissejuhatus

Isaac Newton (1643-1727) oli inglise füüsik, astronoom, matemaatik. Lisaks kõigele muule ta sõnastas mehaanika 3 põhiseadust. Käesoleva tööga vaatleme lähemalt Newtoni II seadust ning kasutame selle näitlikustamiseks kaldpinnal olevat keha.
Vastavalt Newtoni II seadusele on keha kiirendus võrdeline temale mõjuva jõuga ja pöördvõrdeline tema massiga. Valemina oleks see siis , kus a on keha kiirendus [1 m/s²], F kehale mõjuv jõud [1 N] ning m keha mass [1 kg].
Jõuks nimetatakse lühidalt ühe keha mõju teisele, mis(jõud) ongi keha kiirenduse põhjustajaks. Jõud on vektoriaalne suurus (tal on suund ja moodul). Kui kehale mõjub mitu jõudu korraga, siis leitakse kehale mõjuvate jõudude resultant. Jõu ühikuks on SI süsteemis 1 N (njuuton). 1N on selline jõud, mis mõjudes 1 kg massiga kehale, põhjustab selle keha kiiruse muutuse 1s jooksul 1m/s võrra.

Käesoleva töö autorid on Urmas Kvell ja Riivo Talviste ning juhendajateks on Elmu Mägi (füüsika) ning Urmas Palmaru (informaatika). Projekt on mõeldud esitamiseks informaatika aastatööna Pärnu Koidula Gümnaasiumile.

Antud dokumentatsiooni uusim versioon on saadaval internetis aadressil http://riivo.talviste.pri.ee/projektid/fysssimull/doc/

Tehnilised andmed

Kasutatud tarkvara ja keeled

Põhiprogramm on kirjutatud keeles C ning graafika tegemiseks on kasutatud teeke SDL, SDL_gfx ja SDL_ttf.
Komplekteerija on kirjutatud keeles Java.

Miinimumnõuded arvutile

Juriidilised andmed

Nii põhiprogramm Füsssimull kui ka Komplekteerija on litsenseeritud GNU General Public License (GPL) all, mis annab igaühele õiguse antud programmi lähtekoodi muuta ja tulemust levitada, kuid seda ainult GNU GPL litsentsi all. GNU GPL litsents on kaasas failis gpl.txt.
Samas on soovitatav lugeda ka faili readme.txt (inglise keeles), kus on kirjas täpsem info nii põhiprogrammi, komplekteerija kui ka kasutatavate teekide litsentside kohta.

Põhiprogramm "Füssssimull"

Programmi käivitamine

Põhiprogramm käivitatakse failist fysssimull.exe. Ekraanile ilmub aken (Joonis 1) suurusega 800x600 pikselit (sinna sisse ei arvestata akna tiitelriba ja ääriseid). Aken on jaotatud kaheks osaks, millest ülemisel on kujutatud simulatsiooni ennast (kaldpind ja keha) ning alumises osas asub menüü.
Kui aken ei ilmu või see kaob koheselt ekraanilt, siis tasub vaadata tekkinud faili stderr.txt, kuhu programm peaks kirjutama oma veateated.
Joonis 1: Füsssimull

Menüü


Joonis 2: Menüü

Nupud

Menüü parempoolseim osa koosneb nuppudest, mis on ääristatud sinise joonega. Aktiivset menüü nuppu saab käivitada, kui vajutada sellel [ENTER]. Menüüs on järgmised elemendid:
START - Käivitab simulatsiooni
PAUS - Jätab simulatsiooni seisma ning taaskäivitab selle. Algselt saab sellega ka simulatsiooni käivitada (kiirklahv: [SPACE]).
ALGSEIS - Seiskab simulatsiooni ning paigutab keha (kasti) kaldpinna algusesse või lõppu vastavalt sellele, kas keha hakkab resultantjõu mõjul liikuma üles või alla (kiirklahv: [BACKSPACE]).
KOMPLEKT - Saab muuta ning taaslaadida komplekte. Vajutades vasakule-paremale nooli saab vahetada aktiivseid komplekte (loomulikult seisatakse selle peale ka simulatsioon) ning vajutades nuppu [ENTER] seisatakse simulatsioon ning taaslaetakse aktiivse komplekti parameetrid (juhul, kui neid on käsitsi vasakpoolsest tulbast muudetud).

Simulatsioonis kasutatavad parameetrid

Menüü kaks esimest tulpa (kollane ja roheline) näitavad simulatsioonis kasutatavaid parameetreid. Parameeter (x) esitatakse kümnendmurruna, kui |x| = (10^-4; 10^4) ning ülejäänud juhtudel standardarvuna. Vektoriaalsete suuruste ees on miinusmärk, kui vastav vektor on suunatud kaldpinnast üles.
Simulatsiooni mõõtkava on 1px = 1m, mis tähendab, et näiteks raskuskiirendus 9,8 m/s² on tegelikult 9,8 px/s². Ekstreemsemate kiirenduste saamiseks võib suurendada veojõudu ja vähendada keha massi või vastupidi.

Muudetavad parameetrid

Vasakpoolseima tulba elemendid on ääristatud kollase joonega ning nende väärtusi saab muuta nii enne simulatsiooni käivitamist kui ka selle ajal. Muudetavad parameetrid on järgmised (kantsulgdes on antud parameetri ühik):
Fv - veojõud [1 N]
m - keha mass [1 kg]
alfa - kaldpinna kaldenurk [1 deg]
µ - hõõrdetegur kaldpinna ja keha vahel [1]

Neid parameetreid saab muuta, kui liikuda üles-alla nooltega vastava parameetri peale (tagataust värvub halliks) ning vajutada vasakule-paremale nooli. Vajutades noolt vasakule, vähendatakse parameetri väärtust sammu võrra ning vajutades noolt paremale, suurendatakse parameetri väärtust sammu võrra. Parameetrite muutumispiirkonnad on järgmised (koos muutmissammudega):
Fv = [-5000; 5000], samm ±100
m = [10; 500], samm ±10
alfa = [0; 90], samm ±5
µ = [0; 1], samm ±0.1

Kui parameetritele on vaja anda täpsemaid väärtusi, kui seda võimaldavad sammud, siis saab seda teha komplekteerijas.
Kui muuta parameetrit simulatsiooni töötamise ajal, siis nullitakse aeg (t), kuna keha hakkab liikuma uue liikumisvõrrandi alusel ja vana aeg ei oma siinjuures enam praktilist tähtsust.

Arvutatavad parameetrid

Menüü keskmise tulba elemendid on ääristatud rohelise joonega ning nende väärtused muutuvad perioodiliselt (T = ~100 ms) simulatsiooni käigus. Arvutatavad parameetrid on järgmised (kantsulgdes on antud parameetri ühik):
t - simulatsiooni aeg [1 s] (muudetava parameetri muutumisel aeg nullitakse, vt. eelmist alajaotust)
F - resultantjõud [1 N] (raskusjõu (mg), toereaktsiooni (N), veojõu (Fv) ja hõõrdejõu (Fh) vektorite summa)
Fh - hõõrdejõud [1 N]
a - keha kiirendus [1 m/s²]

Erand: kui hõõrdejõud (Fh) on suunatud kaldpinnast üles ning tema absoluutväärtus on suurem kaldpinnast allapoole mõjuvast jõus, siis on resultantjõud null (F = 0 N), kuna keha ei saa hakata hõõrdejõu mõjul liikuma kaldpinnast üles.

Klaviatuuri klahvid

[ENTER] - Aktiveerib aktiivse nupu
[BACKSPACE] - Aktiveerib nupu "ALGSEIS"
[SPACE] - Aktiveerib nupu "PAUS"
[ESC] - Väljub programmist
[F1] - Vahetab akna ning täisekraani (800x600 pikselit) vahel
[üles-alla nooled] - Menüüs edasi-tagasi liikumine
[vasakule-paremale nooled] - Aktiivse parameetri väärtuse muutmine ning komplektide vahetamine

Komplekteerija

Komplekteerija (Joonis 3) on programm, mis on mõeldud andmekomplektide tegemiseks põhiprogrammi tarvis. Komplekteerija käivitatakse failist komplekteerija.bat. Soovitatav on tekkinud aken suurendada üle terve ekraani, kuna vastasel juhul ei pruugi olla nähtavad kõik tabeli päised.

Joonis 3: Komplekteerija

Rippmenüüst "Simulatsioon" (Joonis 4) saab valida simulatsiooni, mille jaoks hakatakse andmekomplekte tegema. Hetkel on seal ainuke valikuvõimalus "Kaldpind (KP)".

Nupp "Salvesta komplektid" (Joonis 4) salvestab tabelis olevad andmekomplektid faili ning nupp "Taasta algväärtused" (Joonis 4) loeb komplektide failist uuesti sinna eelnevalt salvestatud andmekomplektid. Prorgammist väljumisel küsitakse samuti, et kas salvestada andmekomplektide muudatused või mitte (Joonis 5).

Joonis 4: Simulatsiooni valimine, salvestamine ja algväärtuste taastamine


Joonis 5: Väljumise kinnitus

Allpool asub tabel (Joonis 6), milles on andmekomplektid. Tabeli päises on parameetrid (sulgudes nende ühikud) ning iga tabeli rida kujutab eraldiseisvat andmekomplekti. Tulpades "Veojõud", "Mass", "Kaldenurk" ning "Hõõrdetegur" olevad väärtused on muudetavad, tehes hiire topeltklõpsu vastava lahtri peal. Nende parameetrite muutumispiirkonnad on samad, mis põhiprogrammis samadel parameetritel, samuti kehtivad samad reeglid miinusmärgi kohta. Arvud võib sisestada kümnendmurru või standardarvudena. Ülejäänud tulpade väärtused arvutatakse vastavalt muudetevatele parameetritele.

Nupp "Lisa uus komplekt" (Joonis 6) lisab tabeli lõpp uue rea (andmekomplekti) ning nupp "Kustuta komplekt" (Joonis 6) eemaldab tabelist aktiivse rea.

Joonis 6: Andmekomplektide tabel, komplektide lisamine ja kustutamine

Komplektide fail

Kaldpinna andmekomplektid salvestatakse faili komplektid_kp.csv. Vajadusel võib seda faili ise käsitsi muuta, kuid sel juhul tuleb ise jälgida, et parameetrite väärtused oleks korrektsed.
Failis on read kujul (veojõud);(mass);(kaldenurk);(hõõrdetegur);(x-koordinaat);(y-koordinaat) (ilma sulgudeta) ning iga rida kujutab eraldiseisvat andmekomplekti. Viimased kaks parameetrit võib käsitsi muutes võrdsustada ka nulliga, sest need näitavad keha algkoordinaate ekraani suhtes ning arvutatakse põhiprogrammi käivitamisel uuesti.
Komplektide faili muutmiseks sobib näiteks ilma formaatimiseta tekstiredaktor, mis toetab UNIX-tüüpi realõppe (Notepad++; Joonis 7) või tabeltöötlusprogramm (MS Excel; Joonis 8), kuna fail on CSV formaadis.

Joonis 7: Komplektide muutmine programmis Notepad++


Joonis 8: Komplektide muutmine programmis MS Excel

© Urmas Kvell ja Riivo Talviste, 2006