Fachartikel und Newsletter

Proper Generalized Decomposition in MATLAB für Echtzeit-3D-Anwendungen

Von Dr. David González, Universität Zaragoza (UniZar)


Die meisten Wissenschaftler, Forscher und Ingenieure, die Strukturanalysen durchführen, stoßen irgendwann auf den Fluch der Dimensionalität. Das ist die Unfähigkeit, Algorithmen in Echtzeitanwendungen zu integrieren, die auf der Finite-Elemente-Methode basieren, da die Dimensionalität der Berechnung und damit die Leistungsanforderungen zu hoch sind. Techniken zur Modellordnungsreduktion (MOR), wie die Proper Orthogonal Decomposition (POD), sollen das Problem durch Reduzierung der Modellkomplexität lösen. Diese Techniken sind jedoch nicht für Echtzeitanwendungen geeignet, da sie sehr rechenintensiv sind.

Gemeinsam mit Professor Elías Cueto, Professor David González und Professorin Icíar Alfaro wurde am Aragon Institute of Engineering Research an der Universität Zaragoza (UniZar) daran gearbeitet, einen neuartigen Ansatz zur Modellordnungsreduktion zu entwickeln, der auf der Proper Generalized Decomposition (PGD)1 basiert. Dieser in MATLAB® implementierte Ansatz umfasst zwei Phasen. In einer Offline-Phase wird eine multiparametrische Lösung für das Problem berechnet. In einer Online-Phase wird die in der ersten Phase berechnete Lösung verwendet, um Ergebnisse in Echtzeit zu erhalten.

Die PGD hat zahlreiche Anwendungen in vielen verschiedenen Bereichen. So kann beispielsweise die Oberflächenverformung als Reaktion auf eine sich bewegende Last berechnet werden – ein Problem, von dem lange angenommen wurde, dass es nicht für Echtzeitanwendungen reduziert werden kann. Um unsere Implementierung der PGD zu demonstrieren, haben wir mehrere Beispielanwendungen entwickelt. Darunter ist eine iPad-App, die die Verformung eines Balkens bei Belastung in Echtzeit simuliert. Außerdem gibt es einen chirurgischen Echtzeit-Simulator mit haptischem Feedback, der es dem Bediener ermöglicht, die Reaktion einer virtuellen Leber auf verschiedene simulierte Berührungen zu sehen und zu fühlen, die mithilfe eines Eingabestifts erfolgen (Abbildung 1).

Abbildung 1: Echtzeit-Simulation einer Leberpalpation mithilfe einer MATLAB-basierten PGD-Implementierung.

Abbildung 1: Echtzeit-Simulation einer Leberpalpation mithilfe einer MATLAB-basierten PGD-Implementierung.

Implementierung eines PGD-Frameworks in MATLAB

Forscher im Bereich Computer Aided Engineering (CAE) arbeiten seit Jahrzehnten an der Modellordnungsreduktion. Die Geschichte der PGD begann mit der Multiskalen-Berechnungsmethode LATIN. In den letzten 10 Jahren haben Prof. Francisco Chinesta und sein Team die PGD und MATLAB verwendet, um Modelle von nicht-newtonschen Flüssigkeiten zu entwickeln. Als das Team um David González seine Arbeiten mit der PGD begann, hatten sie auf vielen der von ihm entwickelten Konzepte und Techniken aufgebaut und MATLAB für die Implementierung ihres PGD-Frameworks für dynamische Probleme gewählt.

González hatte für seine Doktorarbeit viel in C++ programmiert, wechselte aber für dieses Projekt zu MATLAB, da die PGD zahlreiche Vektor- und Matrixmanipulationen erfordert und er mit MATLAB effizienten, vektorisierten Code für diese Operationen schreiben kann. Eine weitgehende Vermeidung von for-Schleifen führt dazu, dass der Code schneller läuft und leichter zu schreiben und zu pflegen ist. Die Leistung des Codes hatte hohe Priorität, da für die anfängliche multiparametrische Lösung eine rechenintensive Vorverarbeitung erforderlich ist, die mehrere Stunden dauern kann.

Die Ergebnisse der ersten Phase der PGD-Berechnungen werden als großes, multidimensionales Array im MATLAB-Workspace gespeichert (Abbildung 2). Anschließend werden entweder die Nachverarbeitung und Visualisierung der Daten direkt in MATLAB durchgeführt oder in eines von mehreren möglichen Formaten exportiert, um sie in 3D-Visualisierungssoftware und anderen benutzerdefinierten Anwendungen zu nutzen.

Abbildung 2: MATLAB-Workspace mit Ergebnissen von PGD-Berechnungen. (4 Bilder)

Eine der entwickelten benutzerdefinierten Apps war eine iPad-App, die die Verformung eines Balkens bei Belastung in Echtzeit simuliert (Abbildung 3). Diese App ergänzt den theoretischen Maschinenbauunterricht, indem sie den Studenten hilft, die Grundlagen durch Experimente zu verstehen.

Abbildung 3: Interaktive iPad-App, die eine Biegung eines Balkens  als Reaktion auf eine Belastung an der Stelle simuliert, an der der Finger des Benutzers den Bildschirm berührt.

Abbildung 3: Interaktive iPad-App, die eine Biegung eines Balkens  als Reaktion auf eine Belastung an der Stelle simuliert, an der der Finger des Benutzers den Bildschirm berührt.

Paketieren der PGD als MATLAB-App

Damit Studenten und Forscher das PGD-Framework leichter nutzen und mit ihm experimentieren können, wurde eine MATLAB-App zum Verteilen entwickelt (Abbildung 4). Der Student oder Forscher beginnt mit der Auswahl eines vordefinierten Anwendungsfalls, wie z. B. des Balkens, der Leber oder ähnlicher Beispiele für Bauchspeicheldrüse und Gallenblase. Der Benutzer kann angeben, ob das zugrunde liegende Materialverhalten als elastisch oder hyperelastisch behandelt werden soll und ob das Problem mit einem statischen Ansatz gelöst werden soll oder mit einem dynamischen Ansatz, bei dem die Reaktion des Materials zu jedem Zeitpunkt teilweise durch seine Reaktion im vorherigen Zeitschritt bestimmt wird.

Abbildung 4: Die PGD-basierte MATLAB-App.

Abbildung 4: Die PGD-basierte MATLAB-App.

Die App berechnet mithilfe der PGD die Lösung und macht sie im MATLAB-Workspace verfügbar. Die Lösung für jedes Problem muss nur einmal berechnet werden: Die Ergebnisse der Anfangsphase können als MAT-Datei gespeichert und zur Nachverarbeitung oder Visualisierung abgerufen werden (Abbildung 5).

Abbildung 5: Mit der PGD berechnete 3D-Renderings einer Leberoberfläche.

Abbildung 5: Mit der PGD berechnete 3D-Renderings einer Leberoberfläche.

Mit der MATLAB-App vermittelt González seinen Studenten PGD-Konzepte in zwei Kursen im Masterstudiengang: Numerische Methoden im Bioengineering und Berechnungsmethoden für Ingenieure. Da die Studenten im Rahmen beider Lehrveranstaltungen MATLAB verwenden, beginnt González jeweils mit einem kurzen Überblick über die Grundlagen von MATLAB. In diesen Kursen lernen die Studenten nicht nur, numerische und rechnerische Methoden zu entwickeln und an andere Personen weiterzugeben, sondern sie erwerben auch Kenntnisse der PGD und ihrer Anwendung mit MATLAB.

Fallstudie: Erstellung einer Echtzeitsimulation mit haptischem Feedback für die Leberpalpation

Eines der Hauptforschungsgebiete von González ist die Anwendung von Berechnungen, Simulationen und Bildgebung für chirurgische Verfahren. Der in Abbildung 1 gezeigte Chirurgiesimulator ist nur ein Beispiel für den Nutzen der PGD in diesem Bereich. Um ihn zu erstellen, haben wir mit unserem PGD-Framework in MATLAB eine multiparametrische Lösung mit drei Eingabeparametern berechnet: eine 3D-Gitternetzdarstellung der Leber, eine Menge aller möglichen Belastungspositionen (also der Punkte, an denen ein Chirurg Druck auf die Leber ausüben kann) und die Aktivierung der Belastung von 0% (keine Last) bis 100% (Volllast). Anschließend integrierte  das Team um González mit einem Team von Programmierern die berechnete Ergebnismatrix in einen Simulator mit Echtzeitvisualisierung und haptischem Feedback.

Während einer Simulation bewirkt jede Bewegung des mit der Hand gesteuerten Eingabestifts eine entsprechende Bewegung des virtuellen Stifts auf dem Bildschirm. Wenn der Bediener eine Taste auf dem Eingabestift drückt, wird der virtuelle Stift gegen die simulierte Leber gedrückt. Die Reaktion der Leberoberfläche auf diesen Druck wird anhand der berechneten PGD-Ergebnisse ermittelt. Da diese Berechnung nur einfache Vektormultiplikationen erfordert, kann sie hunderte Male pro Sekunde durchgeführt werden, um die Echtzeitleistung zu unterstützen. Die ermittelte Verformung der Leber wird auf dem Bildschirm angezeigt und ein entsprechendes Signal an die Haptik-Vorrichtung gesendet, sodass der Bediener in Echtzeit einen Widerstand im Eingabestift spüren kann.

Nach der Kalibrierung und Optimierung des Simulators wurde er von erfahrenen Chirurgen getestet. Sie berichteten, dass das Gefühl, das sie durch die Haptikvorrichtung empfanden, das Gefühl bei der Arbeit an einem tatsächlichen Patienten authentisch wiedergibt.

Kürzlich wurde der Simulator aktualisiert, um patientenspezifische Lebergeometrien zu unterstützen. In dieser Version des Simulators wird zunächst die Leber des Patienten durch ein 3D-Modell abgebildet. Das Modell wird dann mit einer Bibliothek von Lebergeometrien mit bereits berechneten PGD-Lösungen verglichen. Die berechnete Lösung für das Modell aus der Bibliothek, das dem des Patienten am ähnlichsten ist, wird dann in der Simulation verwendet.

Mit dieser Funktionalität sowie einer geplanten Erweiterung, die Reiß- und Schneidevorgänge unterstützt, können wir einen realistischen Simulator für die chirurgische Ausbildung schaffen. Dieser Simulator wird es Medizinstudenten ermöglichen, sicher zu üben, und er wird es erfahrenen Chirurgen ermöglichen, chirurgische Eingriffe an naturgetreuen virtuellen Organen zu proben, bevor sie die eigentlichen Eingriffe im Operationssaal durchführen.

1 Im Vergleich zur Dynamiksimulation mit einer Finite-Elemente-Analyse (FEA) reduziert die PGD den Freiheitsgrad (Degree of Freedom, DOF), indem sie im anfänglichen Verschiebungsfeld die nichtlinearen Elementbasisgleichungen auf einen Satz parametrisch reduzierter Basisgleichungen projiziert und in jedem Zeitschritt erneut eine solche Projektion berechnet.

Über die Autorin

Dr. David González ist Professor im Fachbereich Maschinenbau der Universität Zaragoza (UniZar). Dr. González hat an der UniZar in angewandter Mathematik promoviert. Zu seinen Forschungsinteressen gehören die numerische Mechanik, die Verringerung der Dimensionalität von Modellen, die Echtzeitsimulation und die rechnergestützte Chirurgie. Sein Arbeitsort ist am Aragon Institute of Engineering Research an der Universität Zaragoza.

Veröffentlicht 2018

Artikel für ähnliche Einsatzgebiete anzeigen

Artikel für verwandte Branchen anzeigen