DynaLab dynamika ramene

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Dopředná dynamika: pustit rameno

Až sem šla rovnice jedním směrem: znám pohyb, chci moment. Teď ji obrátíme. Znám momenty a chci vědět, jak se rameno bude hýbat. Není na to potřeba nic nového — jen vyřešit soustavu lineárních rovnic:

q̈ = M(q)⁻¹ · [τ − c(q,q̇) − g(q) − tření]a M je vždycky invertovatelná, jak víme z páté kapitoly

Když se tohle udělá v každém kroku a výsledek se zintegruje v čase, vznikne simulace. Solver na to používá klasické RK4 s pevným krokem.

žádný moment, žádné třenía přesto se to hýbe složitěto je celá dopředná dynamika:q̈ = M⁻¹(τ − c − g)
Rameno pustí a nechá se být. Žádný moment, žádné tření — a přesto se hýbe způsobem, který nikdo netrefí odhadem. Dvojité kyvadlo je učebnicový chaotický systém a tohle je jeho poctivá verze s reálnými hmotami.

Energie jako kontrola

Simulace vypadá pravdivě, i když pravdivá není — křivka se hýbe a člověk jí uvěří. Existuje ale jedna veličina, která lže neochotně: celková energie. Bez momentu a bez tření se nesmí měnit vůbec. Když se mění, není to fyzika, ale chyba integrace.

0.02.04.06.0-200.02040čas [s]Jkinetická Tpotenciální Ucelková E = T + U
Bez tření se celková energie za 6 s změnila o 0,000009 J (0,00003 %). To není fyzika, to je chyba integrace — a je to nejcitlivější kontrola, jakou na simulaci máš.
Zelená čára je součet kinetické a potenciální energie. Bez tření musí být vodorovná; červená a modrá si přitom mezi sebou házejí energii sem a tam, jak rameno padá a zase se zvedá. Přidej viskózní tření a zelená začne klesat — přesně o práci, kterou tření odvedlo.

Kontrola řádu. RK4 je čtvrtého řádu, takže dvakrát menší krok musí zmenšit chybu zhruba šestnáctkrát. Když to vyjde na dvanáct nebo na osm, je někde v integrátoru chyba prvního řádu, kterou by žádný jiný test nenašel — křivka by pořád vypadala věrohodně. Testy DynaLabu tenhle poměr měří.

Model se vždycky mýlí

Dopředná dynamika je zároveň nejlepší způsob, jak si uvědomit, proč se rameno neřídí bez zpětné vazby. Spočítej momenty pro plánovaný pohyb, pošli je do ramene a nedívej se — když je model přesný, dojede rameno přesně tam, kam mělo. Když se model o něco mýlí, chyba se nikde neopraví a naroste.

0.00.30.50.81.00.01.02.0čas [s]q [rad]plánskutečné q₁skutečné q₂
Konec pohybu minul cíl o 0,3° — a to je jen chyba integrace: s přesným modelem jde dopředná dynamika přesně po plánu.
Přidej modelu chybu v hmotnosti druhého článku. Momenty se spočítají podle špatného modelu, ale rameno na ně reaguje podle skutečného — a nikdo ten rozdíl nesleduje. Deset procent chyby v hmotnosti stačí na to, aby rameno minulo cíl o několik stupňů.

Právě tenhle obrázek vysvětluje, proč se v praxi kombinuje obojí: dopředný výpočet momentu z modelu (feedforward) plus zpětnovazební regulátor, který dorovná to, co model netrefil. Model udělá devadesát procent práce a regulátor nemusí být agresivní; regulátor pokryje zbytek a model nemusí být dokonalý. Tomu se říká řízení s výpočtem momentu a je to nejběžnější způsob řízení průmyslových ramen.

Nezaměňuj to za to, že by dopředná dynamika byla „přesnější". Je to táž rovnice. Rozdíl je v tom, co je vstup a co výstup — a v tom, že chyby vstupu se v dopředném směru hromadí v čase, zatímco v inverzním zůstanou tam, kde vznikly.

Vzorce v této kapitole

q̈ — dopředná dynamika
q̈ = M⁻¹(τ − c − g − τ_f) [rad/s²] důsledek
E — celková energie
E = ½q̇ᵀM(q)q̇ + U(q) [J] De Luca, EL, slide 29
Ė — bilance energie
Ė = q̇ᵀ·u [W] De Luca, EL, slide 29