6.1 Równania Lagrange'a II rodzaju
Pierwszym krokiem w kierunku
zapisu równań dynamiki jest przyjęcie współrzędnych uogólnionych q1..qn,
które w pełni określają położenie układu, a E i V
określono jako całkowitą energię kinetyczną i potencjalną układu. Następnie
wprowadzono pojęcie funkcji Lagrange'a (potencjału kinetycznego) w postaci:
(6.1)
Postać dynamicznych równań ruchu zapisano następująco:
(6.2)
gdzie Qi to uogólniona siła
odpowiadająca uogólnionemu przemieszczeniu qi. Siła ta może
być określona przez wyznaczenie pracy przygotowanej wykonanej przez
siły
czynne (niezachowawcze) działające na układ.
Energię kinetyczną członu "i" opisano następującym
wyrażeniem:
(6.3)
gdzie mi - masa członu, vi
- prędkość liniowa członu, wi - prędkość kątowa członu, Ji
- moment bezwładności, określony względem prostej przechodzącej przez środek
masy i wyrażony w układzie podstawy. Pierwszy składnik wzoru (6.3) oznacza
energię kinetyczną ruchu postępowego z prędkością środka masy, a drugi -
energię kinetyczną ruchu obrotowego. Wzór (6.3) obowiązuje gdy człon i
wykonuje ruch postępowy i obrotowy w innym przypadku należy go odpowiednio
zmodyfikować.
Całkowita energia kinetyczna
manipulatora jest sumą energii kinetycznych poszczególnych członów:
(6.4)
Energię potencjalną członu "i" zapisano
następująco:
(6.5)
gdzie g
- przyspieszenie ziemskie, hi - wysokość od zerowego
poziomu odniesienia energii potencjalnej.
Analogicznie całkowita energia potencjalna manipulatora
jest sumą energii potencjalnej poszczególnych członów:
(6.6)
Do sił uogólnionych Qi
zalicza się wszystkie siły i momenty działające na człony, z wyjątkiem sił
ciężkości i bezwładności. Przyjęto, że w połączeniach ruchowych działają siły i
momenty napędowe t=t1..tn, a zewnętrzne siły czynne
działają na człon roboczy. Siła uogólniona może być wyznaczona przez obliczenia
pracy przygotowanej wykonanej przez te siły.
|
Przykład
6.1
|

|
|
|
Wyznaczyć dynamiczne równania ruchu dla manipulatora o
dwóch stopniach swobody zilustrowanego na rys.6.1 jeżeli dane są momenty
bezwładności J1 i J2 względem osi
przechodzącej przez środek ciężkości poszczególnych elementów, masy m1,
m2 elementów oraz stała odległość pomiędzy punktami A
i D (oznaczona jako l1).
|
|
|
Rys.6.1
Manipulator dwuczłonowy
|
|
Rozwiązanie:
Pierwszym krokiem w zapisie dynamicznych równań ruchu jest
przyjęcie współrzędnych jednorodnych, ponieważ analizowany manipulator może się
obracać względem punktu A tak wiec pierwszą współrzędną będzie kąt
obrotu q1. Manipulator może również
wysuwać drugi człon (ruch postępowy) na odległość l2 (odległość pomiędzy punktami A
i E na rys.6.1). Odległość ta jest zmienna w czasie, co oznacza iż drugą
współrzędną uogólnioną będzie właśnie l2.
Wyznaczenie
energii kinetycznej członu I:

Wyznaczenie energii kinetycznej członu II:

gdzie J1z
i J2z to zastępcze momenty bezwładności liczone względem osi
obrotu manipulatora.
Całkowita
energia kinetyczna:

Wyznaczenie energii potencjalnej członu I:

Wyznaczenie energii potencjalnej członu II:

gdzie g
to przyspieszenie ziemskie.
Całkowita
energia potencjalna:

Zapisanie
funkcji Lagrange'a zgodnie ze wzorem (6.1):

Wyznaczenie
odpowiednich pochodnych zgodnie ze wzorem (6.2):






Zapisanie
równań Lagrange'a dla analizowanego manipulatora zgodnie ze wzorem (6.2):


Powyższe dynamiczne równania ruchu umożliwiają analizę
zadania prostego i odwrotnego dynamiki. Należy zauważyć, iż z pierwszego
równania otrzymano matematyczny opis momentu jaki należy przyłożyć do członu I,
natomiast z drugiego równania otrzymano opis siły jaką należy zastosować dla
członu II.
Poniżej w tabeli 6.1 przedstawiono
zapis funkcji w programie MapleTM umożliwiający rozwiązanie
powyższego zadania.
|
>
|
restart:
|
|
>
|
with(linalg):with(difforms):
|
|
>
|
defform(theta[1]=scalar,d_theta1=scalar,d_lambda2=scalar,lambda[2]=scalar,J[1]=const,J[2]=const,m[1]=const,m[2]=const,l[1]=const,g=const):
|
|
>
|
norma1:=d(theta[1])=d_theta1,d(lambda[2])=d_lambda2;
|
|
>
|
norma2:=d_theta1=d(theta[1]),d_lambda2=d(lambda[2]);
|
|
>
|
J[z1]:=J[1]+m[1]*l[1]^2;
|
|
>
|
E[1]:=combine(1/2*J[z1]*d(theta[1])^2,radical);
|
|
>
|
J[z2]:=J[2]+m[2]*lambda[2]^2;
|
|
>
|
E[2]:=combine(1/2*J[z2]*d(theta[1])^2+1/2*m[2]*d(lambda[2])^2,radical);
|
|
>
|
E:=E[1]+E[2];
|
|
>
|
V[1]:=m[1]*g*l[1]*sin(theta[1]);
|
|
>
|
V[2]:=m[2]*g*lambda[2]*sin(theta[1]);
|
|
>
|
V:=V[1]+V[2];
|
|
>
|
L:=subs(norma1,E-V);
|
|
>
|
dL_d_theta1:=diff(L,theta[1]);
|
|
>
|
dL_d_lambda2:=subs(norma2,diff(L,lambda[2]));
|
|
>
|
dL_d_dtheta1:=diff(L,d_theta1);
|
|
>
|
dL_d_dlambda2:=diff(L,d_lambda2);
|
|
>
|
d_dt_dL_d_dtheta1:=d(dL_d_dtheta1);
|
|
>
|
d_dt_dL_d_dlambda2:=d(dL_d_dlambda2);
|
|
>
|
r1:=subs(norma2,d_dt_dL_d_dtheta1-dL_d_theta1=tau[1]);
|
|
>
|
r2:=subs(norma2,d_dt_dL_d_dlambda2-dL_d_lambda2=tau[2]);
|
Tabela
6.1 Zapis funkcji w programie MapleTM dla przykładu 6.1.
|