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

3D-Doppelpendel, numerische Probleme?

 

Zoidberg
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2012, 09:19     Titel: 3D-Doppelpendel, numerische Probleme?
  Antworten mit Zitat      
Zum Modell:
Ich will ein Doppelpendel in 3D simulieren. Also ein sphärisches Doppelpendel. Als Koordinaten habe ich Kugelkoordinaten verwendet, also hat man pro Masse zwei Winkel als Freiheitsgrade. Theta1 und Theta2 sind dabei jeweils die „Pendelwinkel“ (Quasi Elevation) und Phi1 und Phi2 die Winkel, die die Drehung um die Hochachse beschreiben (Quasi Azimuth). Wenn das Pendel einfach nach unten hängt, sind die beiden Theta also = 0. Und eine reine Auslenkung von Phi ist also nicht möglich, bzw. bringt nicht, da die Stäbe und die Massen als dimensionslos angenommen werden (bzw. Stab nur Dimension in Längsrichtung). Die Bewegungsgleichungen sind mit ziemlicher Sicherheit richtig, meine Hand würde ich dafür allerdings nicht ins Feuer legen. Massenlose Stäbe, keine Dissipationen, Koordinatensysteme einmal am Aufhängepunkt des Pendels und der Ursprung des zweiten Koordinatenkreuzes ist die erste Masse (In diesem System wird dann der Ort der zweiten Masse beschrieben).

Insgesamt entsteht ein relativ kompliziertes, nichtlineares Gleichungssystem, aber damit müsste Simulink doch eigentlich umgehen können, wenn man es richtig umsetzt, oder?

Zur Simulation:
Um das Modell jetzt zu testen, habe ich zunächst als Anfangsbedingung die Theta-Winkel der beiden Pendel ausgelenkt um zu schauen, ob die Bewegung dem eines zweidimensionalen Doppelpendel entspricht -> Kein Problem. Die Massen pendeln dabei also praktisch von +X nach -X. Jetzt lenke ich als Anfangsbedingung zusätzlich die beiden Phi winkel um Pi/4 aus. Das bedeutet, er sollte ja eigentlich von der X+pi/4 zu –Y+pi/4 pendeln. Das geht auch einen Moment gut. Aber nach 4.7…. Sekunden kommt eine Fehlermeldung, dass ein Wert unendlich wird. Dabei Erreichen die Winkelgeschwindigkeit um die Hochachse irgendwann extreme hohe Werte. Der Witz ist ja, dass um die Hochachse überhaupt kein Moment auftritt. Es dürfte überhaupt keine Winkelgeschwindigkeit auftreten! Wenn ich mir die Winkelgeschwindigkeitswerte um die Hochachse im Simout angucke, habe ich die ersten 9 Zeitschritte exakt den Wert 0 und dann fängt das Drama an, auf einmal wird der Wert 0,3^-33 (Oder so ähnlich). Dieser Wert scheint sich dann wohl irgendwie aufzuaddieren.

Das Problem ist, dass ich später noch weiter modellieren will (bzw. schon habe…also mit Dissipation, Windeffekte, Reibung, etc.) und da eigenartiges Verhalten habe in gewissen Bereichen. Ich könnte mir vorstellen, dass das Fehlverhalten dann schon mit diesem Fehler zu tun hat. Das ist auch der Grund, warum ich in dem Modell nicht einfach sagen kann „Okay, wenn du extrem kleine Bschleunigungswerte um die Hochachse hast, dann nimm einfach an, dass die exakt 0 sind“

Nehme ich andere solver oder variiere die Toleranzen, bekomme andere Fehler: Singularitäten an den verschiedenen Stellen oder dynamisches Verhalten, dass offensichtlich WEIT von der Realität abweicht (Sprünge…und…ja, ich kann es teilweise gar nicht wiedergeben, was da für Schrott passiert)

Die Frage ist jetzt:
Kann man einigermaßen sicher sagen, dass die Fehler bzw. das eigenartige dynamische Verhalten mit den algebraic loops zusammen hängt? Wenn ja, dann müsste ich mich mal mit deren Eliminierung auseinander setzen (Unit Delays? IC-Blöcke?)

Matlabversion ist übrigens 7.10.0.499


Erläuterungen zum Anhang
Habe das Modell mal angehängt. Folgendermaßen ist es aufgebaut: Jeder Freiheitsgrad verfügt über zwei Integratoren für seine Ableitungen. All diese Größen (nullte, erste und zweite Ableitung) werden in einen MUX-Block geleitet, der dann diese Größen an FCN-Blöcke leitet, die sich daraus bedienen. In den FCN-Blöcken ist dann die Bewegungsgleichung für jeden einzelnen Freiheitsgrad. Die Bewegungsgleichung ist nach der höchsten Ableitung aufgelöst, so dass der Ausgang des FCN-Blocks in den jeweiligen ersten Integrator führt (also die zweite Ableitung des jeweiligen Winkels).

Lediglich ein paar Variablen müssten noch definiert werden (Einfach in Workspace kopieren und Enter drücken) g= 9.81, l =1

Der Const Block und seine drei Verzweigungen sind lediglich für weiterführende Modellierungen gedacht. Der Rest sind dann scopes und Simouts.

Das Modell sieht so „komisch“ aus, weil es automatisch aus einer Matlab-File generiert wird, was es mir ermöglicht, die Anzahl der Pendel zu variieren, also mal eben 5 oder 8 Pendel etc. aneinander hängen zu können. Speziell die Übersichtlichkeit der Verbindungen leidet darunter, ich hoffe, das Modell ist trotzdem halbwegs nachvollziehbar.

Ist es eigentlich extrem Amateurhaft, wie ich das Modell aufbaue, also alle Größen in einen Mux und Gleichungen in FCN Block und dann zwei Integratoren für Ableitungen?

Falles es jemanden interessiert, kann ich auch noch die Funktion raushauen, in er die Bewegungsgleichungen generiert werden (zumindest, wie de Lagrangefunktion zusammengestellt wird, die Ableitung der Lagrangefunktion übernimmt eine Funktion aus der Matlabcentral)

ExamplePendulumgoMatlab.mdl
 Beschreibung:

Download
 Dateiname:  ExamplePendulumgoMatlab.mdl
 Dateigröße:  37.3 KB
 Heruntergeladen:  468 mal
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 - 2024 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.