Eksperimentai su reakcijos ratu (smagračiu)

Kas yra reakcijos ratas? Aš taip išverčiau “reaction wheel”. Kai kada jis vadinamas “fly wheel”. Lietuviškai tai būtų smagratis. Bet principe tai yra tas pats. Tai yra besisukantis masyvus ratas, kuris gali kaupti kinetinę energiją. Kartais dar vadinamas inercijos akumuliatoriumi. Kad suprasti geriau, vertėtų paskaityti ką apie tai sako Vikipedija.

Jis buvo sugalvotas kosminių palydovų orientacijos erdvėje valdymui. Tokie naudojami ir taptautinėje kosminėje stotyje. Veikimo principas paprastas. Sakykim yra variklis, ant jo ašies uždėtas inercinis ratas. Tai tiesiog ratas, turintis kažkokią masę. Pabandžius pasukti tokį ratą, pats variklis dėl inercijos bandys suktis į kitą pusę. Inercijos momentas priklausys nuo rato dydžio ir masės. Lygiai tas pats bus bandant sustabdyti besisukantį ratą, tik poveikis bus priešingas. Šis poveikis ir naudojamas palydovo padėties erdvėje keitimui.

Tokį inercijos ratą galima panaudoti ne tik kosmose. Galima naudoti pvz. pasvirimo stabilizacijai. Pirmus tokius bandymus dariau jau daugiau nei prieš 2 metus.

Ko tam reikia? Pirmiausiai tinkamo variklio. Kadangi reikia sukinėti sunkoką ratą, reikia atitinkamo galingumo. Didelių apsukų nereikia, reika jėgos. Reiškia tiktų variklis su reduktoriumi. Tačiau dauguma reduktorių turi laisvumo. Todėl nelabai tinka tokiam tikslui. Ebay nusipirkau BLDC (bekolektorinį) variklį su kontroleriu viduje. Veikia nuo 12V, greitis valdomas PWM. Nėra didelių apsukų, nėra reduktoriaus.

Atspausdinau tokį rėmą, kurio centre variklis, o apačioje ašis, ant kurios tas rėmas gali vartytis.

Atspausdinau reakcijos ratą. Nežinojau kokio svorio reikia, todėl padariau galimybę keisti tiesiog įsukant daugiau varžtų. Aplink yra padarytos skylės optiniam encoder’iui.

Visa konstrukcija atrodo taip:

Du optiniai davikliai, kad galima būtų nustatyti sukimosi greitį ir kryptį. Toks optinis encoder’is veikia visai neblogai. Tikslumas nedidelis, bet to ir nereikia, reikia žinoti sukimosi greitį.

Man pavyko pasiekti, kad toks daiktas balansuotų, jam netgi užtenka energijos staigiai pakeitus sukimosi kryptį pačiam pakilti… Čia reikia suprasti, kad kai ratas sukasi, poveikis sukimosi kryptimi yra gerokai mažesnis nei priešinga kryptimi. Todėl labai svarbu pasiekti, kad ratas kuo greičiau sustotų. Tada turim didžiausią poveikį, ir reikia nedaug sukinėti ratą, kad nenugriūti. Su tuo man nelabai pavyko susitvarkyti. Esmė tame, kad stabdant ratą taip pat gaunamas poveikis, kurio visai nereikia, bet jis stipriai destabilizuoja. Todėl stabdoma labai lėtai, bet ir tai nelabai kaip veikia. Idealiam variante ratas turėtų sukinėtis minimaliai. Masės didinimas nėra gerai, nes didėja visos sistemos svoris, reiškia balansuoti darosi sunkiau.

Žodžiu man ne visai pavyko pasiekti gerą stabilumą, todėl šitas daiktas pragulėjo numestas virš dviejų metų. Neseniai aš vėl jį prisiminiau ir nusprendžiau, kad reikėtų pabandyti patobulinti.

Geriau pagalvojęs aš atsisakiau encoder’io. Jis tokiam dalykui visiškai nereikalingas. Be to tai supaprastina konstrukciją. Vienas vargas su tokiu encoder’iu. Gerokai patobulinau algoritmą, čia jau veikia ne PID o LQR. Išmokau sustabdyti variklį.

Pabandžiau variklį pakelti aukščiau. Suderinti tokią konstrukciją daug sunkiau. Bet įmanoma.

Prisispausdinau įvairaus dydžio reakcijos ratų.

Rezultatas labai neblogas.

Sugalvojau padaryti dviratį, kuris negriūtų net stovėdamas. :) Dar šiek tiek spausdinimo. 3D spausdintuvas tokiems dalykams labai padeda.

Čia pabandžiau panaudoti kitokį variklį. Tokie varikliai naudomi kamerų stabilizacijai (gimbal). Bėda ta, kad tokiems varikliams reikalingas draiveris, todėl paprasčiausias sprendimas yra panaudoti gimbal’o kontrolerį. Ten tas pats atmega328 kontroleris ir draiveriai dviem varikliams. Variklis veikia taip pat kaip ir gimbal’o valdyme. Tai taip vadinamas FOC (field oriented control) metodas. Apie jį galima rasti daug informacijos internete. Šiuo būdų variklį galima sukinėti labai švelniai ir tiksliai, tačiau negalima naudoti maksimalaus galingumo. Variklis žiauriai kaista. Tiksliau naudoti galima tačiau tik trumpai, kai reikia didesnio galingumo. Todėl čia naudojamas encoder’is. Neseniai atradau, kad yra magnetinių encoder’ių, kurie veikia matuodami besisukantį magnetinį lauką. Jų tikslumas labai geras, bet jie ne visur tinka. Encoder’is šiuo atveju labai padeda variklio galingumo reguliavime. Galima tiksliai žinoti, ar variklis jau pasisuko tiek kiek užduota ir sumažinti srovę, kad nekaistų.

Konstrukcija paprasta – vairas valdomas servo mechanizmu.

Kad važiuotų – kitas servo mechanizmas. Tik perdarytas, kad nebūtų sukimosi apribojimo.

Reakcijos ratas neaukštai palyginus su anksčiau minėta konstrukcija.

Visgi tokio dalyko suderinimas nėra pats paprasčiausias dalykas. Kaip paaiškėjo, net nedidelis posūkis važiuojant labai destabilizuoja. Bet pavyko – važinėja visai neblogai. :)

Vėliau pabandžiau padaryti dar vieną tokį keistą daiktą. Dar šiek tiek spausdinimo.

Supratimo apie tai vis daugiau, todėl ir rezultatas gerėja.

This entry was posted in Elektronika, Programavimas, Robotai. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *