Anfang Präsentation 17. November, 2004 Modellierung von Mehrkörpersystemen In dieser Vorlesung werden einige spezielle Probleme behandelt, die die Modellierung.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Prof. Dr. W. Conen 15. November 2004
Suche in Texten (Stringsuche )
Die Beschreibung von Bewegungen
Graphische Datenverarbeitung IV Dr. Markus Heitz.
Gravitationskraft Für die Anziehung zwischen zwei relativ kleinen Massen (Raumschiff, Komet) variiert das Ergebnis nur noch vom Abstand r. Ergebnis: F~1/r2.
Drehmoment Drehmomentschlüssel r=0,4m F=50N r=0,2m F=100N Achtung:
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION
Computerkurs: Quantitative Auswertung biochemischer Experimente Tag 8 Einführung in die numerische Integration Aufgabe 18: Simulation einer Assoziationskinetik.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Kreiselgleichungen Annette Eicker 12. Januar
Das Cranking Modell Drehungen senkrecht zur Symmetrieachse
Minimum Spanning Tree: MST
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
Mathematische Grundlagen und Rechnen mit algebraischen Zahlen
§9 Der affine Raum – Teil 2: Geraden
§9 Der affine Raum – Teil 2: Geraden
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Starrkörpereigenschaften
Variationsformalismus für das freie Teilchen
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Übersicht Motivation Konzeption Umsetzung/ Implementierung
§24 Affine Koordinatensysteme
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Fragen Kraft (Boden) im Einbeinstand
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Proseminar: How to make a PIXAR movie?
das d‘Alembert Prinzip
Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten II Wir wollen uns heute nochmals mit der Modellierung von Unstetigkeiten befassen. Zunächst.
Anfang Präsentation 1. Dezember, 2004 Dymolas Bondgraphenbibliothek In dieser Vorlesung wollen wir uns mit einigen Aspekten der Konstruktion einer Bondgraphen-
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Modellierung Elektrischer Schaltkreise
Modellierung Elektrischer Schaltkreise II
Dynamische Datentypen
Planar Mechanical Systems
Anfang Präsentation 27. Oktober, 2004 Objektorientierte Modellierung Diese Vorlesung hat zum Ziel, die Anforderungen an eine objektorientierte Modellierung.
Bondgraphen I Bis anhin haben wir uns mit der symbolischen Manipulation von differentialalgebraischen Gleichungssystemen befasst. Die Frage, wo die Gleichungen.
Anfang Präsentation 20. Oktober, 2004 Elektrische Schaltungen I Diese Vorlesung diskutiert die mathematische Modellierung einfacher elektrischer linearer.
Algebraische Schleifen und Strukturelle Singularitäten
Lösung nichtlinear Gleichungssysteme
Anfang Präsentation 10. November, 2004 Effiziente Lösung von Gleichungssystemen In dieser Vorlesung wird die effiziente gemischt symbolisch/numerische.
Anfang Präsentation 8. Dezember, 2004 Modellierung Bipolarer Transistoren In dieser Vorlesung befassen wir uns mit einer Anwendung gemischt elektrischer.
Das Entfernen struktureller Singularitäten mittels Pantelides Algorithmus Diese Vorlesung stellt ein Verfahren vor, welches dazu verwendet werden kann,
Anfang Präsentation 24. November, 2004 Bondgraphen II In dieser Vorlesung befassen wir uns mit den Auswirkungen algebraischer Schleifen und struktu- reller.
ProSeminar WS 2007/08 Leo Hackstein
Algorithmen und Datenstrukturen Übungsmodul 8
Ausgewählte Kapitel der Physik
PART V CONTACT PHYSICS Chapter Aufbaumodul 3: Visuelle Programmierung II Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Zwangskraft Prinzip der Statik Gewichtskraft.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Wind fields can e.g. be calculated using the so-called momentum equations which are based on the Navier Stokes equations. But this is complicated mathematics.
Was ist mechanische Leistung?
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION.
Algorithmen und Datenstrukturen 1 SS 2002
Theorie, Anwendungen, Verallgemeinerungen
Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,
Kapitel 3: Erhaltungssätze
Die theoretischen Grundlagen der Bondgraphen-Methodik
Kapitel 3: Erhaltungssätze
Lager.
iem.kug.ac.at Konzepte für virtuelle Akustik Theoretische Betrachtungen Alois Sontacchi Institute of Electronic Music and Acoustics at the University.
Die gleichförmige Kreisbewegung
 Präsentation transkript:

Anfang Präsentation 17. November, 2004 Modellierung von Mehrkörpersystemen In dieser Vorlesung werden einige spezielle Probleme behandelt, die die Modellierung komplexer mechanischer Systeme begleiten. Es wird erklärt, wie diese Probleme in Dymola angegangen worden sind. Insbesondere wird die Wahl der Zustandsvariablen und der Konnektoren erläutert. Es wird aufgezeigt, wie Matrizenkalkül es ermöglicht, die Definitionen äusserst kompakt zu halten.

Anfang Präsentation 17. November, 2004 Übersicht Mehrkörpersysteme Wahl der ZustandsvariabelnWahl der Zustandsvariabeln Kinematische SchleifenKinematische Schleifen Mechanische KonnektorenMechanische Konnektoren Mechanische KörperMechanische Körper Mechanische GelenkeMechanische Gelenke Beispiel

Anfang Präsentation 17. November, 2004 Was ist ein Mehrkörpersystem? Ein Mehrkörpersystem besteht aus einer Kombination mechanischer Teile, die miteinander verbunden sind und sich im dreidimensionalen Raum bewegen. Hmm! Vielleicht noch nicht das allerschnittigste Modell… aber Abstraktion ist ja schliesslich alles.

Anfang Präsentation 17. November, 2004 Die Wahl der Zustandsvariablen Bisher wurden bei den mechanischen Systemen, die wir betrachtet haben, die Differentialgleichungen immer mit den Massen gekoppelt. Dies schien sinnvoll zu sein, da das DAlembertsche Prinzip ja für die einzelnen Massen definiert werden muss. Eine Masse, die fest mit der Erde (d.h. mit dem Inertialsystem) verankert ist, führt aber nicht zu Differentialgleichungen. Differentialgleichungen gibt es erst, wenn sich die Masse relativ zum Inertialsystem bewegt. Somit mag es sinnvoller sein, die Integratoren mit den Relativbewegungen zwischen Körpern zu identifizieren. Dies wurde in der Mehrkörpersystembibliothek (MKS Bibliothek) von Dymola auch so implementiert. In der MKS Bibliothek werden die Relativpositionen und Relativgeschwindigkeiten zwischen miteinander verbundenen Körpern als Zustandsvariabeln definiert.

Anfang Präsentation 17. November, 2004 Strukturelle Singularitäten I Bei der getroffenen Wahl der Zustandsvariablen ergeben sich keine strukturellen Singularitäten bei Mehrkörper- systemen in Baumstruktur. Bei kinematisch geschlossenen Schleifen ergeben sich strukturelle Singularitäten, da solche Strukturen weniger Freiheitsgrade aufweisen als Verbindungen zwischen benachbarten Körpern. Man denke zum Beispiel ans Scherengitter, welches nur einen Freiheitsgrad aufweist. Kinematisch geschlossene Schleifen x y

Anfang Präsentation 17. November, 2004 Strukturelle Singularitäten II Um die strukturellen Singularitäten zu vermeiden, wird eines der Gelenke bei jeder kinematisch geschlossenen Schleife als Schneidegelenk (cut joint) definiert. Schneidegelenke definieren keine Integratoren und vermeiden dadurch die Einführung struktureller Singularitäten. Dies ist effizienter, als sich auf den Pantelides Algorithmus zu verlassen. x y Schneidegelenke

Anfang Präsentation 17. November, 2004 Algebraische Schleifen Geschlossene kinematische Schleifen führen unweigerlich auch zu bösen algebraischen Schleifen in den resultierenden Gleichungssystemen. Diese sind normalerweise sehr gross, da sie sich über alle Variablen der kinematischen Schleife erstrecken. Das automatische Auffinden geeigneter Schneide- variablen ist teuer und ineffizient. Die Schneidegelenke von Dymola enthalten An- weisungen, die es dem Schneidealgorithmus er- möglichen, schnell geeignete Schneidevariablen zu ermitteln. constrain(q, qd, qdd)

Anfang Präsentation 17. November, 2004 Wahl der Potential- und Flussgrössen Die MKS Bibliothek stellt sich auf den Standpunkt, dass die Position eines Körpers (und damit auch dessen Geschwindigkeit und Beschleunigung) ein Potential darstellt, während die Kräfte, die auf den Körper einwirken, als Flussgrössen angesehen werden. Das Inertialsystem definiert somit die Potentialgrössen und setzt sie zu null (entsprechend dem elektrischen Potential beim elektrischen Erdknoten). x y z q = x y z q = 0 qd = der(q) = 0 qdd = der(qd) = 0

Anfang Präsentation 17. November, 2004 Mechanische Konnektoren connector Frame Position r0[3]"Abstand des Frames vom Inertialsystem"; Real S[3, 3]"Transformationsmatrix des Frames zum Inertialsystem"; Velocity v[3] "Absolute Geschwindigkeit des Frames"; AngularVelocity w[3] "Absolute Winkelgeschwindigkeit des Frames"; Acceleration a[3] "Absolute Beschleunigung des Frames"; AngularAcceleration z[3]"Absolute Winkelbeschleunigung des Frames"; flow Force f[3]"Am Frame angreifende Kraft"; flow Torque t[3]"Am Frame angreifendes Drehmoment"; end Frame; Wegen der Vorzeichenkonventionen muss immer ein ungefülltes Ausgangsframe ( ) zu einem gefüllten Eingangsframe ( ) ver- bunden werden.

Anfang Präsentation 17. November, 2004 Mechanische Körper I Mechanische Körper definieren das DAlembert Prinzip für die angreifenden Kräfte und Drehmomente. model BodyBase "Inertia and mass properties of a rigid body"; extends Frame a; Mass m; Position rCM[3] "Distance from frame to center of gravity"; Inertia I[3, 3]; equation f = m*(a + cross(z, rCM) + cross(w, cross(w, rCM))); t = I*z + cross(w, I*w) + cross(rCM, f); end BodyBase; Frame Schwerpunkt rCM Die Koordinaten des Frames werden zunächst auf den Schwerpunkt umgerechnet. Das DAlembertsche Prinzip wird sodann für den Schwerpunkt formuliert. Die resultierenden Kräfte f und Drehmomente t werden schliesslich mittels Relativbewegung unter Einführung der dazugehörigen Zentripetal- und Corioliskräfte auf den Frame zurücktransformiert.

Anfang Präsentation 17. November, 2004 Mechanische Körper II model Body "Rigid body with one cut"; extends Frame_a; parameter Position rCM[3]={0,0,0} "Vector from frame_a to center of mass, resolved in frame_a; parameter Mass m=0 "Mass of body [kg]"; parameter Inertia I11=0 "(1,1) element of inertia tensor"; parameter Inertia I22=0 "(2,2) element of inertia tensor"; parameter Inertia I33=0 "(3,3) element of inertia tensor"; parameter Inertia I21=0 "(2,1) element of inertia tensor"; parameter Inertia I31=0 "(3,1) element of inertia tensor"; parameter Inertia I32=0 "(3,2) element of inertia tensor"; BodyBase body; equation connect (frame_a, body.frame_a); body.m = m; body.rCM = rCM; body.I = [I11, I21, I31; I21, I22, I32; I31, I32, I33]; end Body

Anfang Präsentation 17. November, 2004 Mechanische Körper III model Body "Rigid body with one cut"; extends Frame_a; parameter Position rCM[3]={0,0,0} "Vector from frame_a to center of mass, resolved in frame_a; parameter Mass m=0 "Mass of body [kg]"; parameter Inertia I11=0 "(1,1) element of inertia tensor"; parameter Inertia I22=0 "(2,2) element of inertia tensor"; parameter Inertia I33=0 "(3,3) element of inertia tensor"; parameter Inertia I21=0 "(2,1) element of inertia tensor"; parameter Inertia I31=0 "(3,1) element of inertia tensor"; parameter Inertia I32=0 "(3,2) element of inertia tensor"; BodyBase body; equation connect (frame_a, body.frame_a); body.m = m; body.rCM = rCM; body.I = [I11, I21, I31; I21, I22, I32; I31, I32, I33]; end Body Information übernommen von Typendeklaration

Anfang Präsentation 17. November, 2004 Mechanische Körper IV Koordinaten- transformation Frame a Frame b Körper berechnet relativ zu Frame a Körper mit mehr als zwei Gelenken müssen mit zusätzlichen Frame Translationen selbst gebaut werden. Solche Elemente sind in der MKS Bibliothek nicht als Festbausteine vorhanden.

Anfang Präsentation 17. November, 2004 Mechanische Körper V Geometrie für die Animation. Geometrie für die Berechnung von Masse und Trägheitsmomenten (nicht graphisch dargestellt, da mittels Gleichungen erfasst).

Anfang Präsentation 17. November, 2004 Mechanische Körper VI model BoxBody "Rigid body with box shape (also used for animation)" extends MultiBody.Interfaces.TwoTreeFrames; parameter SIunits.Position r[3]={0.1,0,0} "Vector from frame_a to frame_b, resolved in frame_a"; parameter SIunits.Position r0[3]={0,0,0} "Vector from frame_a to left box plane, resolved in frame_a"; parameter SIunits.Position LengthDirection[3]=r - r0 "Vector in length direction, resolved in frame_a"; parameter SIunits.Position WidthDirection[3]={0,1,0} "Vector in width direction, resolved in frame_a"; parameter SIunits.Length Length=(sqrt((r - r0)*(r - r0))) "Length of box"; parameter SIunits.Length Width=0.1 "Width of box"; parameter SIunits.Length Height=0.1 "Height of box"; parameter SIunits.Length InnerWidth=0 "Width of inner box surface"; parameter SIunits.Length InnerHeight=0 "Height of inner box surface"; parameter Real rho=7.7 "Density of box material [g/cm^3]"; parameter Real Material[4]={1,0,0,0.5} "Color and specular coefficient"; SIunits.Mass mo, mi; Real Sbox[3, 3]; SIunits.Length l, w, h, wi, hi; FrameTranslation frameTranslation(r=r); MultiBody.Interfaces.BodyBase body; VisualShape box (Shape="box", r0=r0, LengthDirection=LengthDirection, WidthDirection=WidthDirection, Length=Length, Width=Width, Height=Height, Material=Material);

Anfang Präsentation 17. November, 2004 Mechanische Körper VII equation connect (body.frame_a, frame_a); connect (frame_a, frameTranslation.frame_a); connect (frameTranslation.frame_b, frame_b); box.S = Sa; box.r = r0a; box.Sshape = Sbox; l = Length; w = Width; h = Height; wi = InnerWidth; hi = InnerHeight; /*Mass properties of box*/ mo = 1000*rho*l*w*h; mi = 1000*rho*l*wi*hi; body.m = mo - mi; body.rCM = r0 + l/2*box.nLength; body.I = Sbox*diagonal({mo*(w*w + h*h) - mi*(wi*wi + hi*hi),mo*(l*l + h*h) - mi*(l*l + hi*hi),mo*(l*l + w*w) - mi*(l*l + wi*wi)}/12)*transpose(Sbox); end BoxBody

Anfang Präsentation 17. November, 2004 Mechanische Gelenke I Frame aFrame b Anschlüsse für Dämpfer model Prismatic "Prismatic joint (1 degree-of-freedom, used in spanning tree)" extends MultiBody.Interfaces.TreeJoint; parameter Real n[3]={1,0,0} "Axis of translation resolved in frame_a (= same as in frame_b)"; parameter SIunits.Position q0=0 "Relative distance offset(see info)"; parameter Boolean startValueFixed=false "true, if start values of q, qd are fixed"; SIunits.Position q(final fixed=startValueFixed); SIunits.Velocity qd(final fixed=startValueFixed); SIunits.Acceleration qdd; SIunits.Position qq; Real nn[3]; SIunits.Velocity vaux[3]; Modelica.Mechanics.Translational.Interfaces.Flange_a axis; Modelica.Mechanics.Translational.Interfaces.Flange_b bearing; connector Modelica.Mechanics.Translational.Interfaces.Flange_b SIunits.Position s "absolute position of flange"; flow SIunits.Force f "cut force directed into flange"; end Flange_b;

Anfang Präsentation 17. November, 2004 Mechanische Gelenke II equation axis.s = q; bearing.s = 0; // define states qd = der(q); qdd = der(qd); /*normalize axis vector*/ nn = n/sqrt(n*n); /*kinematic quantities*/ S_rel = identity(3); qq = q - q0; r_rela = nn*qq; v_rela = nn*qd; a_rela = nn*qdd; w_rela = zeros(3); z_rela = zeros(3); /* Transform the kinematic quantities from frame_a to frame_b and the force and torque acting at frame_b to frame_a (= general equations of a "TreeJoint" specialized to this class). */ Sb = Sa; r0b = r0a + Sa*r_rela; vaux = cross(wa, r_rela); vb = va + v_rela + vaux; wb = wa; ab = aa + a_rela + cross(za, r_rela) + cross(wa, vaux + 2*v_rela); zb = za; fa = fb; ta = tb + cross(r_rela, fa); // d'Alemberts principle axis.f = nn*fb; end Prismatic

Anfang Präsentation 17. November, 2004 Kausalitäten I Die Kausalität der Gleichungen hängt ab vom gestellten Problem. Beim direkten Problem (dem Simulationsproblem) sind die Kräfte und Drehmomente gegeben, während die Bewegung gesucht wird. Beim inversen Problem (dem Planungsproblem) sind die gewünschten Bewegungen vorbestimmt, während die Kräfte und Drehmomente, die eingesetzt werden müssen, um die gewünschten Bewegungen zu erzielen, gesucht sind.

Anfang Präsentation 17. November, 2004 Kausalitäten II Die Effizienz des erzeugten Codes hängt sehr stark von der Formulierung der Gleichungen ab. Kleine Änderungen der Formulierung können die Effizienz so verändern, dass die Anzahl resultierender Gleichungen am Ende entweder linear mit der Anzahl Körper steigt oder mit deren vierter Potenz. Aus diesem Grund verlässt sich die MKS Bibliothek nicht auf die automatische Umwandlung der Gleichungen unter Verwendung des Pantelides Algorithmus und der Heuristiken zur Ermittlung kleiner Sätze von Schnitt- variablen.

Anfang Präsentation 17. November, 2004 Kausalitäten III Die Matrizenschreibweise, die bisher verwendet wurde, ist zwar sehr elegant und kompakt und darum gut geeignet für den Unterhalt der MBS Bibliothek, sie eignet sich aber nicht für das automatische Umformen der Gleichungen. Aus diesem Grund werden in Modelica alle Matrizengleichungen vor der Ermittlung der Kausalität symbolisch expandiert.

Anfang Präsentation 17. November, 2004 Ein Beispiel I

Anfang Präsentation 17. November, 2004 Ein Beispiel II

Anfang Präsentation 17. November, 2004 Ein Beispiel III Schneidegelenk Kinematische Schleife

Anfang Präsentation 17. November, 2004 Ein Beispiel IV Gleichungen nach Explosion der Matrizenausdrücke Elimination von Trivialgleichungen der Art: a = b Gleichungen, die nach der Umformung übrig bleiben.

Anfang Präsentation 17. November, 2004 Ein Beispiel V

Anfang Präsentation 17. November, 2004 Referenzen Otter, M., H. Elmqvist, and F.E. Cellier (1996),Modeling of Multibody Systems with the Object- Oriented Modeling Language Dymola, J. Nonlinear Dynamics, 9(1), pp Modeling of Multibody Systems with the Object- Oriented Modeling Language Dymola