WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Lagrange Gleichung

 

nefastus
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.02.12
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 06.03.2012, 10:18     Titel: Lagrange Gleichung
  Antworten mit Zitat      
Hallo Leute ich bin mir sicher das Leute schon die selbe Frage gestellt haben. Aber ich habe im Forum noch nichts gefunden was ich eigentlich brauche.
Ich muss eine Bewegungsgleichung mit Lagrangsche 2 Art
(d/dt(dL/d(dq))- dL/dq=0) erstellen. Die Rechnung ist sogar für die L so kompliziert und aufwendig das sie nicht mehr analytisch berechnet werden kann! Weil mein System eigentlich nur 1 FHG hat und die Zusammenhänge von den Winkeln nicht einfach sind!

Die Frage ist wie kann matlab eine zeitliche Ableitung machen gibt es eine einfache form als wie ich hier im Bsp gemacht habe.

Mein nächstes Problem wie kann man später wenn von der Bewegungsgleichung die Übetragungsfunktion bilden wenn ich es nicht in Zustandsraumdarstellung habe!?



Code:


%Bewegungsgleichung
syms c rs t beta xp yp a r Jm Mm Js Ms Mp Jp lp g ly l2


beta= sym('betaa(t)');
%alpha1= sym ('alpha1(t)');

betadot= diff(beta,t)


%KS im Punkt M

b= sqrt(xp^2+ yp^2 +r^2 -2*r*(xp*cos(beta) + yp*sin(beta)));


 gamma = acos((-a^2 -b^2 +c^2)/(-2*a*b));
 

 alpha2 = atan((xp-r*cos(beta))/(yp-r*sin(beta)));

 beta2 = gamma - alpha2
 
 beta2dot=diff(beta2,t)



 alpha = acos(a^2-b^2-c^2/-2*b*c)

 alpha1=90-alpha-alpha2
 alpha1dot= diff(alpha1,t)
 
 

 
 
rx= rs*cos(beta)+c/2*cos(alpha1)
ry= rs*sin(beta)+c/2*sin(alpha1)
rxdot= diff(rx,t);
rydot= diff(ry,t);
v_stange2= rxdot^2+rydot^2





%~~~//// Kinetische Energie ////~~~


%Motorscheibe
Jm= 1/4 *Mm*rs^2        %rs= radius der Motorscheibe

Tm = 1/2* Jm*betadot^2

%Stange
Js = 1/12*Ms*c^2

Ts= 1/2*Ms*v_stange2+ 1/2*Js*alpha1dot^2

%Pedal
Jp= 1/3*Mp*lp^2

Tp = 1/6*Mp*lp^2*beta2dot^2

%Gesamt Kinetische Energie

Tges =simple(Tm+Ts+Tp)


%~~~//// Potentielle Energie ////~~  (Nullniveau am Boden)


%Motorscheibe

%Vm= Mm*g*ly;


% Stange

%Vs=Mp*g*(ly+r*sin(beta)+c/2*sin(alpha1));


%Pedal

%Vp=Mp*g*(l2-lp/2*cos(beta2)) + 1/2*c*beta2^2


%Gesamt Potentielle Energie


%Vges = Vm+Vs+Vp;


%~~~//// Potentielle Energie ////~~~   (Nullniveau am Punkt M)


%Motorscheibe

Vm=0


% Stange

Vs=Mp*g*(r*sin(beta)+c/2*sin(alpha1))


%Pedal

Vp=Mp*g*(r*sin(beta)+c*sin(alpha1)-lp/2*cos(beta2)) + 1/2*c*beta2^2



%Gesamt Potentielle Energie


Vges =simple (Vm+Vs+Vp)



%~~~//// Langragsche Gleichung ////~~~

% d/dt(dL/d(dq))- dL/dq=0

L = simple( Tges-Vges)

Q1= diff(L,betadot);
Q1=diff(Q1,t)
Q2= diff(L,beta)

 Gl= Q1-Q2
 
Private Nachricht senden Benutzer-Profile anzeigen


nefastus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.02.12
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 06.03.2012, 10:23     Titel: Neue Frage
  Antworten mit Zitat      
Wie kann man auch die Bewegungsgleichung danach vereinfachen damit es in diese Form dargestellt wird?
beta2dotdot*(........)+ beta2dot*(.......)+beta2(.......) = 0

Ist es auch normal das wenn man "simple" benutzt die Rechung zu viel Zeit dauert?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 11:13     Titel:
  Antworten mit Zitat      
Hallo,

du sagst, dass die Ausdrücke bei analytischen Berechnungen zu kompliziert werden. Warum rechnest du dann nicht numerisch?

Anmerkungen:

alpha, beta und gamma sind Funktionsnamen und sollten nicht als Variablennamen verwendet werden.

Code:
alpha = acos(a^2-b^2-c^2/-2*b*c)

Klammern setzen! Siehe Berechnung von gamma

Code:
alpha1=90-alpha-alpha2

MATLAB rechnet standardmäßig im Bogenmaß. Wenn du in Grad rechnen willst, solltest du acosd, sind etc. verwenden.

Wenn du das mal stückweise ausführst, merkst du, dass gerade SIMPLE recht lange braucht, weil es ja versuchen muss, komplexe Ausdrücke irgendwie zusammenzufassen. Bei deiner Vielzahl an Variablen denke ich nicht, dass das sinnvoll möglich ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
nefastus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 24.02.12
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 06.03.2012, 11:26     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:

Code:
alpha1=90-alpha-alpha2

MATLAB rechnet standardmäßig im Bogenmaß. Wenn du in Grad rechnen willst, solltest du acosd, sind etc. verwenden.


Stimmt aber wenn du Symobilsche Toolbox verwendest gibt dir Matlab eine Fehlermeldung!

Weißt du ob die Lagrange Gleichung richtig ist ?
Also mein Problem ist dass ich danach mit der Bewegungsgleichung die Laplacetransformation machen will um die Übetragungsfunktion zu kriegen!
Und weiß nicht wie es geht!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 11:43     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Stimmt aber wenn du Symobilsche Toolbox verwendest gibt dir Matlab eine Fehlermeldung!

Dann musst du entweder konsequent mit Bogenmaß rechnen oder den Winkel händisch konvertieren.

Zitat:
Weißt du ob die Lagrange Gleichung richtig ist ?

Nein, leider nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.