Starrkörpersimulation

Starrkörpersimulation

Version vom 1. Januar 2015, 19:29 Uhr von imported>Alva2004 (Hauptartikel Starrkörper)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Unter der Starrkörpersimulation (engl. Rigid-Body Simulation) versteht man die zeitlich kontinuierliche oder diskrete Simulation der Bewegung von Starrkörpern (engl. Rigid-Body), welche eine physikalische Modellierung räumlich ausgedehnter Objekte darstellen.

Die Bewegung der Körper wird durch gewöhnliche Differentialgleichungen beschrieben, zu welchen im Zuge der Simulation eine Lösung eines Anfangswertproblems gefunden werden muss. Die Bewegung besteht aus Translation, Rotation und Spiegelung, wobei bei einer stetigen Bewegungsgleichung keine Spiegelung vorkommen kann.

Starrkörper

Ein Starrkörper besteht aus einer Menge von Partikeln (Massepunkten) die eine unveränderliche starre Beziehung zueinander haben. Der Zustand eines Starrkörpers wird beschrieben durch:

  • Position x(t) (Position des Schwerpunktes des starren Körpers im Raum)
  • Orientierung Q(t) (Meist als Quaternion angegeben)
  • Gesamtimpuls P(t)
  • Drehimpuls L(t)

Des Weiteren gehört die Gesamtmasse M und der Trägheitstensor $ I_{k} $ mit zu den unveränderlichen Eigenschaften des Körpers. Während der Simulation muss der von der Orientierung des Körpers abhängige Trägheitstensor $ I(t) $ noch berechnet werden. Dies geschieht durch folgende Gleichung:

$ I(t)=R(t)I_{k}R(t)^{T} $

Wobei die Rotationsmatrix R(t) aus der Orientierung Q(t) berechnet werden kann.

Starrkörperbewegung

Die Translations- und Rotationsbewegung des starren Körpers wird durch folgende Größen beeinflusst:

  • Geschwindigkeit v(t)
  • Rotationsgeschwindigkeit $ \omega (t) $
  • wirkende lineare Kräfte F(t) (Bewegungskräfte, die auf das Objekt wirken)
  • wirkendes Drehmoment $ \tau (t) $ (Rotationskräfte, die auf das Objekt wirken)

Dadurch kann folgende allgemeine Bewegungsgleichung definiert werden:

$ {\frac {d}{dt}}Y={\frac {d}{dt}}{\begin{pmatrix}x(t)\\R(t)\\P(t)\\L(t)\end{pmatrix}}={\begin{pmatrix}v(t)\\\omega (t)*R(t)\\F(t)\\\tau (t)\end{pmatrix}} $, wobei für $ \omega (t)*R(t)={\begin{pmatrix}\omega (t)\times {\begin{pmatrix}r_{xx}\\r_{xy}\\r_{xz}\end{pmatrix}}&\omega (t)\times {\begin{pmatrix}r_{yx}\\r_{yy}\\r_{yz}\end{pmatrix}}&\omega (t)\times {\begin{pmatrix}r_{zx}\\r_{zy}\\r_{zz}\end{pmatrix}}\end{pmatrix}} $ gilt.

Die Lösung des Anfangswertproblems dieser Differentialgleichung muss in der Computersimulation durch numerische Verfahren wie beispielsweise das Runge-Kutta-Verfahren gelöst werden.

Kollisionserkennung und -antwort

Die Kollisionserkennung ist Teil der Starrkörpersimulation um Kollisionen unter Starrkörpern orten zu können und die entsprechenden Kollisionsantworten einzuleiten. Kollisionsantworten sind in der Regel physikalische Reaktionen wie ein elastischer Stoß, die die Bewegung der Starrkörper verändern.

Engines

  • Open Dynamics Engine