PATRONI ROBOTYKI:
 

TEORIA ROBOTYKI

6.4. Dynamika odwrotna

W zadanie odwrotnym dynamiki należy wyznaczyć parametry związane z ruchem manipulatora będącego pod działaniem sił i momentów napędowych, tzn. dany jest wektor t, a należy wyznaczyć położenie, prędkości i przyspieszenia.

Przykład 6.3

Rozwiązać zadanie odwrotne dynamiki, czyli wyznaczyć przemieszczenia, prędkości i przyspieszenia poszczególnych członów występujące na dwuczłonowym manipulatorze z przykładu 6.1, mając następujące dane:masa członu I m1=3 [kg], długość członu I l1=0.2[m],moment bezwładności I członu J1=0.38 [kg×m2], masa członu II m2=1.5 [kg], moment bezwładności II członu J2=0.1 [kg×m2] oraz przyspieszenie ziemskie g=9.81 [m/s2]. W chwili początkowej  człon II znajdował się w odległości l0=0.4 [m] od środka obrotu manipulatora. Znane są przebiegi czasowe momentu występującego na członie I oraz siły na członie II, zilustrowane na rys. 6.7.

http://www.robotyka.com/teoria/grafika/image498.gif

Rysunek 6.7 Przebiegi czasowe momentu dla członu I i siły dla członu II.

Rozwiązanie:

W celu rozwiązania zadania odwrotnego dynamiki wykorzystano dynamiczne równania ruchu wyznaczone dla przykładu 6.1, traktując analizowany układ jako zachowawczy,  w postaci przekształconej względem drugich pochodnych:

http://www.robotyka.com/teoria/grafika/image500.gif

http://www.robotyka.com/teoria/grafika/image501.gif

Do obliczeń wykorzystano program  MapleTM, w którym podstawiono dane liczbowe do równań i przygotowano je do symulacji w środowisku programu MatlabTM-Simulink. Poniżej przedstawiono zapis funkcji w programie MapleTM umożliwiający rozwiązanie zadania prostego dynamiki.

>          restart:

>          Digits:=2;

>          r1:=2*d(theta[1])*m[2]*lambda[2]*d(lambda[2])+(J[1]+m[1]*l[1]^2+J[2]+

m[2]*lambda[2]^2)*d(d(theta[1]))+m[1]*g*l[1]*cos(theta[1])+m[2]*g*lambda[2]*cos(theta[1])=tau[1];

>          r2:=m[2]*d(d(lambda[2]))-m[2]*lambda[2]*d(theta[1])^2 +m[2]*g*sin(theta[1])=tau[2];

>          m[1]:=3;l[1]:=0.2;J[1]:=0.38;m[2]:=1.5;J[2]:=0.1;g:=9.81;

>          g:=9.81;

>          norma4:={tau[1]=u[1],tau[2]=u[2],theta[1]=u[3],d(theta[1])=u[4],lambda[2]=u[5],d(lambda[2])=u[6]};

>          solve(r1,d(d(theta[1])));

>          solve(r2,d(d(lambda[2])));

>          subs(norma4,solve(r1,d(d(theta[1]))));

>          subs(norma4,solve(r2,d(d(lambda[2])))); 

Wykorzystując program Matlab-Simulink przygotowano układ rozwiązujący zadanie odwrotne dynamiki, przedstawiony na rys.2 Ponieważ poniższy układ rozwiązuje układ dwóch równań różniczkowych II rzędu należy odpowiednio przyjąć warunki początkowe; na rys. 6.8 przedstawiono sposób przyjęcia tych warunków na podstawie danych do zadania. Parametry symulacji zostały przyjęte w sposób analogiczny jak dla przykładu 1 dla dynamiki prostej.

http://www.robotyka.com/teoria/grafika/image502.jpg

http://www.robotyka.com/teoria/grafika/image503.jpg

 

Rysunek 6.8 Układ rozwiązujący zadanie odwrotne dynamiki dla przykładu 6.3

 

W wyniku przeprowadzonej symulacji komputerowej rozwiązano zadanie odwrotne dynamiki dla analizowanego dwuczłonowego manipulatora, a rezultat obliczeń zamieszczono na rys. 6..9. W podobny sposób można rozwiązywać zadanie odwrotne dynamiki dla bardziej złożonych struktur manipulatorów.

 Rysunek 6.9 Rezultat obliczeń dla przykładu 6.3