|
|
|
|
alaska/SimulationEngine
alaska/SimulationEngine ist eine Bibliothek zur Beschreibung von Simulationsmodellen für mechanische Systeme und
zur Simulation des dynamischen Verhaltens dieser Modelle in einer C++ Programmierumgebung.
Die Bibliothek bietet Modellelemente und Verfahren der Mehrkörperdynamik und der Finite-Elemente-Methode,
so dass die Möglichkeiten beider Methoden in einer Modellbeschreibung entsprechend der Fragestellung des
Anwenders genutzt werden können. Zur Modellierung stehen Komponenten wie starre Körper, flexible Körper, Knoten, Gelenke,
nichtlineare Kraftelemente der Mehrkörperdynamik, finite Elemente und Randbedingungen zur Verfügung.
Die Beschreibung des Modells wird durch Deklaration der Modellelemente in C++ erzeugt.
Eine zuschaltbare 3D-Grafikbibliothek ermöglicht die Visualisierung des Modells und die Animation seiner Bewegung.
Als Analyseverfahren beinhaltet die Bibliothek die Simulation der nichtlinearen Dynamik sowie die Ermittlung
quasi-statischer Gleichgewichtslagen. Beide Analysemethoden können in einem Modell je nach Bedarf
komponenten- und zustandsabhängig eingesetzt werden.
Typische Anwendungsgebiete der alaska/SimulationEngine sind Simulationsmodelle hoher
Rechenperformance z.B. für aktive Fahrwerke, Roboter und biomechanische Anwendungen sowie Simulatoren, die in andere
Anwendungen integriert werden.
Hauptmerkmale
- Entwicklungsumgebung für Simulationsmodelle mechanischer Systeme
- Simulation der Dynamik, Ermittlung quasi-statischer Gleichgewichtslagen
- robustes implizites Lösungsverfahren mit effizienter Berechnung der Jacobimatrix
- beispielabhängig konfigurierbarer Sparse-Matrix-Solver
- Standardinterface für Parameterdateien
- optionale Visualisierung des Modells
- Plattformunabhängigkeit
Modellierung mechanischer Systeme
Im Gegensatz zu herkömmlichen Simulationsumgebungen für mechanische Systeme, wie z.B. auch dem alaska/ModellerStudio,
ermöglicht die alaska/SimulationEngine durch die C++-basierte Modellierung einen wesentlich
flexibleren Umgang mit Modelldefinitionen. Große, parametrisierte Modelle, die eine Vielzahl von zum Teil
auch ähnlichen Modellelementen enthalten, können in C++ effizient beschrieben werden. Ebenso können Änderungen
des Modells in Abhängigkeit vom Zustand während der Laufzeit mit den Mitteln von C++ einfach realisiert werden.
Die komplette Programmierbarkeit der Modelle ermöglicht darüber hinaus wesentliche Verbesserungen bei der Verwendung und
Erweiterung von Schnittstellen zu anderen Entwurfs- und Analysewerkzeugen bis hin zur Einbindung der Modelle
direkt in andere Werkzeuge über Programmierschnittstellen
Die bereit gestellten Komponenten zur Modellbeschreibung basieren auf einem Baukastensystem,
das durch den objektorientierten Ansatz beliebig erweitert werden kann. Damit können Modellelemente entwickelt werden,
die hinsichtlich der Parametrisierung und der mechanischen Eigenschaften gezielt auf einen bestimmten Anwendungsfall
zugeschnitten sind. Beispiele dafür sind MKS-Kraftelemente mit speziellen nichtlinearen Charakteristiken.
Simulation und Bewertung mechanischer Bewegungen
Bei der Simulation eines mit der alaska/SimulationEngine definierten Modells können
Kräfte und Momente eingeprägt sowie wählbare Bewegungen kinematisch vorgeben werden. Der Solver berechnet
die daraus resultierenden Bewegungen sowie die damit verbundenen inneren und äußeren Kräfte.
Grundsätzlich werden unterschiedliche Modi zur Bewegungssimulation unterstützt:
- Vorwärtsdynamik: Berechnet die Bewegung des Gesamtsystems auf Grund der Wirkung eingeprägter Kräfte und Momente
- Inverse Dynamik: Berechnet die Kräfte und Momente, die von Aktoren ausgeübt
werden müssen, um geforderte Bewegungen zu erzeugen
- Kinematische Analyse: Ermittelt die Bewegung des Gesamtsystems bei Vorgabe der Bewegung
einzelner Komponenten
- Quasi-Statik: Ermittelt Gleichgewichtslagen
Zur Bewertung der Simulation erzeugt die alaska/SimulationEngine auf Anforderung automatisch eine dreidimensionale Visualisierung,
die synchron zur Berechnung das Bewegungsverhalten des Modells darstellt. Die zur Visualisierung verwendeten
Geometrien können unter Verwendung einer vorhandenen Bibliothek bzw. von eigenen Dateien im vrml-Format frei konfiguriert werden.
Dazu existiert ein Beschreibungssystem, mit dem ohne zu programmieren - also auch nachträglich für ein bereits fertig gestelltes Modell -
grafische Primitive oder eigene vrml-Dateien mit Koordinatensystemen oder Variablen des Modells verknüpft werden können.
Wozu 'programmierte' Modelle?
Die mit der alaska/SimulationEngine in C++ programmierten Modelle können unabhängig von einem
Modelliersystem in beliebigen Umgebungen oder als Stand-Alone-Simulatoren genutzt werden.
Stand-Alone-Simulatoren sind von Vorteil, wenn das Modell mit veränderten Parametern über einen langen Zeitraum hinweg ohne
prinzipielle Änderungen genutzt wird. Sie enthalten wie ein virtueller Prüfstand neben einem parametrisierbaren Modell
alle Funktionalitäten, die zur Simulation der Dynamik des enthaltenen Simulationsmodells erforderlich sind. Hinzu kommt eine
spezielle Benutzeroberfläche, so dass für die Benutzung keine Kenntnisse eines Modelliersystems benötigt werden.
Stand-Alone-Anwendungen können ausführbare Programme oder auch statische bzw. dynamische Bibliotheken sein.
In den programmierten Modellen können Kräfte, Momente und Bewegungen relativ leicht mit Hardwarekomponenten gekoppelt werden. Ist das Modell
echtzeitfähig, entsteht ein interaktiv bedienbarer Simulator.
Modelle, die in C++ vorliegen, können leicht in andere Anwendungen eingebettet werden. Da für das compilierte Modell
keine Zeit für das "Hochfahren" des Modells benötigt wird, liefern sie bei interaktiver Benutzung ein schnelles Feed-Back.
Programmierte Modelle lassen sich einfach mit Software-Werkzeugen koppeln, die eine offene Programmierschnittstelle (API)
anbieten oder über die Fähigkeit verfügen, Anwender-spezifische Erweiterungen als dynamische Bibliothek (DLL) zu
laden. Dazu zählen neben verschiedensten Entwurfs- und Entwicklungswerkzeugen auch moderne Office-Anwendungen.
|