lagrange.mws
Sovellukset : Heilurit

Lagrangen liikeyhtälöt kaksoisheilurille

[Maple Bitmap]

Kaksoisheilurin liikeyhtälöt voidaan helpoimmin johtaa Lagrangen teorian avulla. Tällöin systeemin tila ilmaistaan ensin yleisten koordinaattien avulla, minkä jälkeen systeemin kineettinen energia ja potentiaalienergia esitetään yleisten koordinaattien funktioina. Näiden erotus on Lagrangen funktio L . Liikeyhtälöt saadaan tämän jälkeen mekaanisilla derivoinneilla muodossa

[Maple Bitmap]

missä q tarkoittaa jokaista yleistettyä koordinaattia vuorollaan ja [Maple Bitmap] sen aikaderivaattaa.

Puhdistetaan työtila tarkastelun aluksi.

> restart;


Kaksoisheilurin tapauksessa yleistetyt koordinaatit ovat
theta[1] ja theta[2] , jotka riittävät määrittämään heilurin aseman. Kumpikin on ajan funktio. Heilurien suorakulmaiset koordinaatit myös ajan funktioina ovat tällöin

> x[1]:= l*sin(theta[1](t));

x[1] := l*sin(theta[1](t))

> y[1]:= l*cos(theta[1](t));

y[1] := l*cos(theta[1](t))

> x[2]:= l*sin(theta[1](t))+l*sin(theta[2](t));

x[2] := l*sin(theta[1](t))+l*sin(theta[2](t))

> y[2]:= -l*cos(theta[1](t))-l*cos(theta[2](t));

y[2] := -l*cos(theta[1](t))-l*cos(theta[2](t))

Näiden avulla voidaan muodostaa lausekkeet koko systeemin kineettiselle energialle ja potentiaalienergialle:

> T:= 1/2*m[1]*(diff(x[1], t)^2+diff(y[1], t)^2)+1/2*m[2]*(diff(x[2], t)^2+diff(y[2], t)^2):
simplify(%);

1/2*l^2*(m[1]*diff(theta[1](t),t)^2+2*m[2]*cos(thet...
1/2*l^2*(m[1]*diff(theta[1](t),t)^2+2*m[2]*cos(thet...
1/2*l^2*(m[1]*diff(theta[1](t),t)^2+2*m[2]*cos(thet...

> V:= m[1]*g*y[1]+m[2]*g*y[2]:
simplify(%);

g*l*(m[1]*cos(theta[1](t))-m[2]*cos(theta[1](t))-m[...

Systeemin Lagrangen funktio on näiden erotus:

> L:= T-V:
simplify(%);

-1/2*l*(-m[1]*l*diff(theta[1](t),t)^2-2*m[2]*l*cos(...
-1/2*l*(-m[1]*l*diff(theta[1](t),t)^2-2*m[2]*l*cos(...
-1/2*l*(-m[1]*l*diff(theta[1](t),t)^2-2*m[2]*l*cos(...
-1/2*l*(-m[1]*l*diff(theta[1](t),t)^2-2*m[2]*l*cos(...

Liikeyhtälöt saadaan tämän jälkeen mekaanisella derivoinnilla, jolloin kumpikin yleistetty koordinaatti on käsiteltävä erikseen.

Derivoitaessa Maple n diff -komennolla ei ole mahdollista derivoida funktioiden tai derivaattojen suhteen. Tämä voidaan ohittaa korvaamalla derivaatta- ja funktiomerkinnät väliaikaisilla muuttujilla.

> d2m:= diff(theta[1](t), t)=dt1,
diff(theta[2](t), t)=dt2:
m2d:= dt1=diff(theta[1](t), t), dt2=diff(theta[2](t), t):
t2m:= theta[1](t)=t1t, theta[2](t)=t2t:
m2t:= t1t=theta[1](t), t2t=theta[2](t):

> diff(subs({m2d}, diff(subs({d2m}, L), dt1)), t)-subs({m2d}, subs({m2t}, diff(subs({t2m}, subs({d2m}, L)), t1t)))=0:
factor(combine(%));

l*(l*diff(theta[1](t),`$`(t,2))*m[1]+m[2]*l*diff(th...
l*(l*diff(theta[1](t),`$`(t,2))*m[1]+m[2]*l*diff(th...

> diff(subs({m2d}, diff(subs({d2m}, L), dt2)), t)-subs({m2d}, subs({m2t}, diff(subs({t2m}, subs({d2m}, L)), t2t)))=0:
factor(combine(%));

m[2]*l*(l*diff(theta[1](t),t)^2*sin(theta[2](t)-the...
m[2]*l*(l*diff(theta[1](t),t)^2*sin(theta[2](t)-the...

Tehtävä

Vertaa saatuja liikeyhtälöitä kaksoisheiluriesimerkin lähtökohtana oleviin ja totea ne samoiksi.


Sovelluksia: kaksoisheiluri

SKK & MS 12.07.2001