Inovace výuky předmětu Robotika v lékařství
Přednáška 6 Paradigmata kinematického řízení a ovládání otevřených kinematických řetězců. Kinematickým zákonem řízení rozumíme předpis, který na základě direktiv pohybu w (žádaná poloha koncového bodu řetězce v kartézských souřadnicích, nebo poloha řetězce v zobecněných souřadnicích), a jejich derivací, vytváří kinematické řídící veličiny u pro pohony v jednotlivých kinematických dvojicích řetězce ruky, za účelem dosažení stavu kde direktivy pohybu jsou totožné se skutečnými kinematickými veličinami ruky, viz obr.6.1.
u
Obr. 6.1: Blokové schéma kinematického řízení pomocí transponovaného jakobiánu Kde veličiny mají následující význam : x d je žádaná poloha koncového bodu paže v kart. souřadnicích (direktiva pohybu), ∆x = x d − x je regulační odchylka mezi žádanou a skutečnou polohou koncového bodu paže, u je řídící veličina představující akční zásah pohonů a v našem paradigmatu řízení má rozměr zobecněných rychlostí, které pohony musí na reálném řetězci odpracovat, viz. vztah (6.2), q je vektor aktuálních zobecněných souřadnic (polohy jednotlivých kinematických dvojic) který je možno měřit na reálné soustavě pomocí inkrementálních snímačů na osách pohonů, blok k (⋅) realizuje podle vztahu (6.3) úlohu přímé kinematiky a transformuje zobezněné souřadnice na jim odpovídající polohu koncového bodu paže v kartézských souřadnicích.
(6.2)
r1M = Tn1 ⋅ rnM
(6.3)
Toto schéma je obecné schéma zpětnovazebního řízení. Nezaručuje stabilitu a přesnost sledování trajektorie, protože kinematické řízení nenastavuje parametry regulátoru ze znalosti dynamického popisu regulované soustavy. Proto se kinematické řízení používá pouze v případech, kdy rychlosti soustavy jsou malé a hmotnosti elementů soustavy zanedbaletné.
Stránka 1 z 7
Inovace výuky předmětu Robotika v lékařství
Experimentální ověření kinematického řízení pomocí transponovaného jakobiánu v prostředí Matlab/Simulink. Na základě paradigmatu kinematického řízení (obr.6.1) sestavíme v prostředí Matlab/Simulink regulační obvod, kde regulovanou soustavu můžeme nahradit integrátorem za předpokladu, že zobecněné rychlosti představující akční zásah regulátoru budou skutečnými pohony odpracovány, pokud ne zmenšíme hodnoty zisků Kp v diagonální matici proporcionálního regulátoru.
Obr. 6.2 : Kinematické řízení paže v prostředí Matlab/Simulink. Bloky realizující vztahy (6.2) a (6.3) tedy úlohu transformace rychlostí na zobecněné rychlosti a úlohu přímé kinematiky, tj. zobrazení polohy paže v zobecněných souřadnicích na polohu koncového bodu paže v kartézských souřadnicích v Simulinku realizujeme pomocí bloků „Matlab function“. V nich máme možnost uživatelsky definovat funkci (m-fail), která se bude volat z prostředí Simulink. Jak je patrné z obr.6.2 každá uživatelsky naprogramovaná fce přijímá na vstupu proměnné se kterými se volá a na výstup posílá výsledky, viz. následující kód (m-fail) realizující přímou úlohu kinematiky:
Stránka 2 z 7
Inovace výuky předmětu Robotika v lékařství function kartpoloha=transformace(zobecnene); % konstanty y54 = 0.31; y76 = 0.29; y7M = 0.11; % zobecněné promennne (aktuální polohy v kin. dvojicích) fi21 = zobecnene(1); fi32 = zobecnene(2); fi43 = zobecnene(3); fi54 = zobecnene(4); fi65 = zobecnene(5); fi76 = zobecnene(6); % pruvodice mezi kinem dvojicemi r54=[0; y54; 0; 1]; r76=[0; y76; 0; 1]; r7M=[0; y7M; 0; 1]; % transformacni matice TT21 = [cos(fi21) 0 sin(fi21) 0;0 1 0 0;-sin(fi21) 0 cos(fi21) 0;0 0 % rotace v y-ove ose o fi21 TT32 = [1 0 0 0;0 cos(fi32) -sin(fi32) 0;0 sin(fi32) cos(fi32) 0;0 0 % rotace kolem x-ove osy o fi32 TT43 = [cos(fi43) -sin(fi43) 0 0;sin(fi43) cos(fi43) 0 0;0 0 1 0;0 0 % rotace kolem z-ove osy o fi43 TT54 = [1 0 0 0;0 cos(fi54) -sin(fi54) y54;0 sin(fi54) cos(fi54) 0;0 1]; % rotace kolem x-ove osy o fi54 TT65 = [cos(fi65) 0 sin(fi65) 0;0 1 0 0;-sin(fi65) 0 cos(fi65) 0;0 0 % rotace kolem y-ove osy o fi65 TT76 = [1 0 0 0;0 cos(fi76) -sin(fi76) y76;0 sin(fi76) cos(fi76) 0;0 1]; % rotace kolem x-ove osy o fi76
0 1]; 0 1]; 0 1]; 0 0 0 1]; 0 0
% výsledná transformacni matice z prostoru telesa 7 do prostoru telesa 1 TT71=TT21*TT32*TT43*TT54*TT65*TT76; % poloha koncového bodu paže vůči rámu v kartézských souřadnicích pol=TT71*r7M; kartpoloha=[pol(1:3)]; end
tedy fce načítá vektor šesti zobecněných souřadnic „zobecněne(1…6)“ a vrací vypočtenou polohu koncového bodu v kartézských souřednicích „kartpoloha(1…3)“. Stejným způsobem realizujeme další uživatelsky definované funkce v prostředí Simulink. Parametry proporcionálního maticového regulátoru volíme s ohledem na dobu regulace a charakter regulačního děje (kmitavý, aperiodický), a také s ohledem zda generované řízení regulátorem mající význam rychlosti v pohonech jsou těmito pohony realizovatelné. Dále si ukážeme vliv velikosti zisků na průběh regulačního děje a průběh akční veličiny pro dvě varianty nastavení zisků proporcionálního regulátoru.
Stránka 3 z 7
Inovace výuky předmětu Robotika v lékařství
⎡5 0 0 ⎤ Varianta 1: zisk proporcionálního regulátoru K p = ⎢⎢0 5 0⎥⎥ , žádaná hodnota v kart. ⎢⎣0 0 5⎥⎦ ⎡ 0.15 ⎤ souřadnicích w = ⎢⎢− 0.2⎥⎥ . ⎢⎣ 0.3 ⎥⎦ Odpovídající průběhy regulované veličiny (poloha konc. bodu řetězce), akční veličiny (zobecněná rychlost pohonů), a regulační odchylky.
Stránka 4 z 7
Inovace výuky předmětu Robotika v lékařství
⎡30 0 0 ⎤ Varianta 2: zisk proporcionálního regulátoru K p = ⎢⎢ 0 30 0 ⎥⎥ , žádaná hodnota v kart. ⎢⎣ 0 0 30⎥⎦
⎡ 0.15 ⎤ souřadnicích w = ⎢⎢− 0.2⎥⎥ . ⎢⎣ 0.3 ⎥⎦
Stránka 5 z 7
Inovace výuky předmětu Robotika v lékařství
Stránka 6 z 7
Inovace výuky předmětu Robotika v lékařství
Vidíme, že čím větší zisk tím kratší doba regulace a větší hodnota akční veličiny.
Stránka 7 z 7