KINEMATICS AND DYNAMICS OF PLANAR MACHINERY
Burton Paul, 1979

PART 2, ANALYTICAL KINEMATICS
PROGRAM DKINAL-C
Esimerkki : Fig 10.30-1, Quick-return mechanism

Tässä on tarkoitus opetella kinemaattista analyysiä. Lähteenä on yllä mainittu jo hiukkasen iäkäs opus joka esittää tarkoitukseen mm. FORTRAN-ohjelmia. Tämä vaatimaton JavaScript-ohjelma pyrkii matkimaan kirjassa annetun ohjelman testiajoa ym. tapauksessa joka on yksinkertainen nopean paluuliikkeen tekevä mekanismi.

Esimerkki perustuu kirjan kuvassa 10.30-1 esitetyn mekanismin ratkaisuun. Kuva 9.22-1 esittää saman mekanismin perusrakenteen ehkä selvemmin.

Kuten kinematiikassa yleensäkin, tässä haetaan mekanismin osien sijainteja, nopeuksia ja kiihtyvyyksiä erilaisilla lähtöarvoilla. Ajava linkki on tässä pisteessä D (kulma θ2).

Tästä harjoituksesta huomattakoon mm. se että nivel D on kiinni seinässä, B liukuu x-suunnassa katossa korkeutensa säilyttäen ja C liukuu y-suunnassa pitkin seinää. A sisältää nivelen joka liukuu pitkin tankoa. Tankojen pituudet ovat vakioita. Tangot eivät taivu, nivelet eivät hölsky eivätkä ne myöskään kulu.

Ei pidä erehtyä ajattelemaan ettäkö tällä olisi jotakin gravitaation kanssa tekemistä. Mekanismin osat ovat periaatteessa massattomia ja liikkeet ovat kitkattomia. Kyse ei ole voimista, vaan ainoastaan liikkeistä, ajavan kulman θ2 mekanismin osiin aiheuttamista liikkeistä. Myöskään massan hitaudesta johtuvia massavoimia ei siis ole.

Analyyttisen ratkaisun idea on mm. siinä että epälineaarinen ongelma pystytään ratkaisemaan algebrallisesti iteroimalla. Iterointikierroksia ei pitäisi tarvittaman kovin montaa (max. 10 kpl). Alussa tarvitaan jonkinlaiset älykkäät arvaukset oikeille lähtöarvoille, mutta eivät lie erittäin kriittisiä.

Lähteen vanha FORTRAN-koodi on enimmäkseen yleiskäyttöisyyteen pyrkivää, mutta eräät toiminnot on toteutettava tapauskohtaisesti. Tässä en pyri noudattamaan FORTRAN-koodia orjallisesti, vaan etsin nykyaikaiseen ympäristöön paremmin sopivia rakenteellisia toteutustapoja.

FORTRAN on melko takkuista luettavaa, mutta aikaa voittaen uskon löytäväni luontevampia aliohjelmien toteutuksia. Luokkien käyttöön en kuitenkaan JavaScriptissä pyri vaan proseduraalinen koodi koostuu globaaleista funktioista. Muuttujen käsittely - herra paratkoon - toki on erilaista kuin FORTRANissa.

Yleiskäyttöistä tässä on mm. lineaaristen algebrallisten yhtälöryhmien ratkaisu Gauss eliminointimenetelmällä (lähteen aliohjelma DGELG) ja epälineaaristen yhtälöiden ratkaisu Newton-Raphson iterointimenetelmällä (lähteen aliohjelma NEWTR).

Toiveena pitemmällä tähtäimellä on pystyä kehittämään tältä pohjalta yleiskäyttöisempi ohjelma jolle ei tarvitse kirjoittaa tapauskohtaisia aliohjelmia.

Alkuperäisen ohjelman numeerinen tuloste on melko karua luettavaa, ei todellakaan mikään ergonomian ihme. Kulmat ovat siinä radiaaneina ja luvut ovat eksponenttimuodossa. Se on kuitenkin aluksi ohjelman toiminnan tarkistuksen kannalta hyödyllinen. Kulma Q käy läpi koko kierroksen vastapäivään aloittaen positiivisen x-akselin suunnasta. Esimerkiksi listauksen viimeinen arvo "0.628319D 01" tarkoittaa 0.628319·101 eli 6,28319 radiaania ( joka on yhtä kuin 2·π ).

En vielä tiedä millaisen tulostuksen tähän koettaisin itse "lopulta" tuottaa. En pistäisi pahakseni vaikka tuloksille löytyisi jokin havainnollisempi ja helppolukuisempi esitystapa. Ohjelman käpistely on vielä rutkasti kesken...



Takaisin