3D Model v Pro/Engineer

Zjednodušená kinematická struktura

Tabulka parametrů (Denavit-Hartenberg)


theta d a alfa

0 0 0.554 0 0

1 q1 0 0 0

2 0 q2 0.065 Pi/2

3 0 q3 0 0

Výchozí poloha - pro výchozí polohu a výpočet inverzní úlohy jsou na místě kloubových proměnných použity proměnné s1, s2, a s3. Kloubové proměnné q1, q2 a q3 jsou použity pro kontrolu správnosti výpočtu

Žádaná poloha je pro účely kontroly výpočtu poněkud ošizená - je vypočtená předem, ze známých hodnot kloubových proměnných je vypočtena celková transformační matice Tb3 a hodnoty x, y, z z posledního sloupce této matice jsou použity v dalším výpočtu jako žádané hodnoty. Je to jen pro kontrolu, k těmto hodnotám kloubových proměnných se má dojít výpočtem.

Žádané hodnoty polohy koncového bodu jsou tedy

V transformační matici v žádané poloze známe pouze poslední sloupec, protože ale mechanismus má jen tři stupně volnosti, tak to stačí na sestavení soustavy rovnic. Zde v Matcadu musíme ale doplnit tuto matici např. nulami, abychom s ní mohli pracovat

Řešení soustavy transcendentních rovnic je provedeno jako kontrolní řešení správnosti výpočtu pomocí Taylorova rozvoje transformační matice

Definice inverzní funkce

Řešení metodou Taylorova rozvoje transformační matice

Diferenciální operátory

rotační kloub

Translační kloub

První iterační krok

Výchozí poloha

Je vypočtena transformační matice Tb3 ve výchozí poloze a je uložena jako matice TV, matice TD - žádaná poloha zústává konstantní

Jednotlivé parciální derivace do rozvoje transformační matice

Sestavená soustava rovnic (obrázek z učebního textu) bude řešena maticově

Matice koeficientů u proměnných

Inverze matice koeficientů

Matice pravých stran

Řešením soustavy rovnic je matice D

Krok, který je potřeba udělat z výchozí polohy směrem k řešení je tedy

Vypočtení nové výchozí polohy

Pro kontrolu porovnání s již předem vypočtenými referenčními hodnotami

Při pohledu na vypočtené kloubové proměnné vidíme, že s1 se liší o 29 tisícin radiánu, s2 je již vypočtena přesně ( je nastaveno zobrazování na 5 desetinných míst), s3 se liší zhruba o 7 mm. Je tedy nutná další iterace. Je to způsobeno poměrně velkým rozdílem mezi výchozí a žádanou polohou. Pokud bude tento rozdíl malý, řešení je nalezeno již po jedné iteraci.

Druhá iterace - výrazy jsou zkopírovány z předchozí iterace

Matice v nové výchozí poloze

Je vypočtena transformační matice Tb3 ve výchozí poloze a je uložena jako matice TV, matice TD - žádaná poloha zústává konstantní

Jednotlivé parciální derivace do rozvoje transformační matice

Matice koeficientů u proměnných

Inverze matice koeficientů

Matice pravých stran

Řešením soustavy rovnic je matice D

Krok, který je potřeba udělat z výchozí polohy směrem k řešení je tedy

Vypočtení nové výchozí polohy

Pro kontrolu porovnání s již předem vypočtenými referenčními hodnotami

Při pohledu na vypočtené kloubové proměnné vidíme, že s1 se liší o necelou tisícinu radiánu, s2 je vypočtena přesně ( je nastaveno zobrazování na 5 desetinných míst), s3 se liší zhruba o 4 desetitisíciny mm. To by pro běžnou přesnost v robotice již stačilo. Pro ještě přesnější výpočet je provedena ještě další iterace.

Třetí iterace - výrazy jsou zkopírovány z předchozí iterace

Je vypočtena transformační matice Tb3 ve výchozí poloze a je uložena jako matice TV, matice TD - žádaná poloha zústává konstantní

Jednotlivé parciální derivace do rozvoje transformační matice

Matice koeficientů u proměnných

Inverze matice koeficientů

Matice pravých stran

Řešením soustavy rovnic je matice D

Krok, který je potřeba udělat z výchozí polohy směrem k řešení je tedy

Vypočtení nové výchozí polohy

Pro kontrolu porovnání s již předem vypočtenými referenčními hodnotami

Po třetí iteraci jsou již hodnoty hledaných kloubových proměnných vypočteny naprosto správně (zobrazení výsledku je nastaveno na pět desetinných míst), odpovídají referenčním hodnotám a výpočet může skončit

Programování v prostředí Mathcad

Výchozí poloha, pro kterou jsou v programu vyčísleny transformační matice

Žádaná poloha

Program v Mathcadu definuje funkci inverze(ε), kde ε je požadovaná přesnost výpočtu - zde součet kroků

Použití definované funkce pro vlastní výpočet

Příklad použití programování