Algorithmisches Differenzieren

Bei vielen technischen Problemstellungen benötigt man für eine differenzierbare Funktion nicht nur die Funktionswerte, sondern auch Werte ihrer Ableitungen. Ein typisches Anwendungsbeispiel sind Optimierungsaufgaben. In vielen Fällen kann man die gewünschten Ableitung mit Computer-Algebra-Software symbolisch berechnen. Benötigt man höhere Ableitungen, dann wächst die Größe der entstehenden Ausdrücke in der Regel exponentiell an. Alternativ kann man Ableitungen numerisch mit Differenzenquotienten berechnen. Die Genauigkeit der Ableitung hängt maßgeblich von der gewählten Schrittweite ab. Selbst bei einer optimalen Schrittweite verliert die so gewählte Ableitung gegenüber dem Funktionswert an Genauigkeit.

Beim algorithmischen oder automatischen Differenzieren (AD) muss die zu differenzierende Funktion als Algorithmus in einer geeigneten Programmiersprache vorliegen. Die Ableitung wird ähnlich wie beim symbolischen Differenzieren durch systematisches Anwenden der Ableitungsregeln bestimmt. Allerdings werden die Zwischenergebnisse nicht als symbolischer Teilausdruck weitergereicht, sondern als Gleitkommazahl. Im Programmpaket ADOL-C wird das algorithmische Differenzieren mit Hilfe von Operatorüberladung implementiert.

Übersicht:

Buchveröffentlichungen:

Lie-Ableitungen

Allgemein sind Lie-Ableitungen für Tensorfelder definiert und können als Ableitungen entlang der Lösung dynamischer Systeme interpretiert werden. In der nichtlinearen Regelungstechnik benötigt man je nach Anwendung Lie-Ableitungen von Skalar-, Vektor- und Kovektorfeldern. mehr

Verschiedene Arten von Lie-Ableitungen

Veröffentlichungen:

Reglerentwurf mit Automatischem Differenzieren

Beim Reglerentwurf mittels exakter Eingangs-Ausgangs-Linearisierung benötigt man mehrfache und eine gemischte Lie-Ableitung eines Skalarfeldes. Die zugehörigen Funktionswerte dieser Lie-Ableitungen lassen sich sehr leicht mit Hilfe des algorithmischen Differenzierens bestimmen.

Exakte Linearisierung durch Rückführung

Veröffentlichungen:

Beobachterentwurf mit Automatischem Differenzieren

Die Beobachtbarkeitsmatrix nichtlinearer Systeme besteht aus Gradienten von Lie-Ableitungen des Skalarfeldes der Ausgangsabbildung. Alternativ kann man die Zeilen der Beobachtbarkeitsmatrix auch als Lie-Ableitungen eines speziellen Kovektorfeldes, nämlich des Gradienten der Ausgangsabbildung, auffassen. Diese (nichtlineare) Beobachtbarkeitsmatrix wird bei bestimmten Formen eines High-Gain-Beobachters benötigt. Beim erweiterten Luenberger-Beobachter sind zusätzlich mehrfache Lie-Klammern erforderlich. Erfahrungsgemäß treten dabei deutlich kompliziertere Ausdrücke als beim Reglerentwurf auf. Tatsächlich ist bereits bei moderat komplizierten Systemen die symbolische Berechnung der Beobachterverstärkung zu aufwendig, die Berechnung mit algorithmischem Differenzieren dagegen ohne Probleme durchführbar.

Veröffentlichungen:

Steuerungsentwurf mit Automatischem Differenzieren

Die Berechnung eines Eingangssignals zu einem vorgegebenen Ausgangsverhalten ist eine wesentliche Teilaufgabe beim Entwurf von Trajektorienfolgeregelungen. Ist das Prozeßmodell nichtlinear, dann ist dieses Problem in der Regel nur mit großem Rechenaufwand bzw. nur näherungsweise lösbar. Die Autoren stellen ein neues Verfahren vor zur Systeminversion vor. Anstelle symbolischer Umformung wird dabei die Methode des Automatischen Differenzierens eingesetzt.

Veröffentlichungen:

Direkte Simulation mechanischer Systeme mit Automischem Differenzieren

Ausgehend von der Lagrange-Funktion eines mechanischen Systems kann man die Euler-Lagrangeschen Bewegungsgleichungen aufstellen. Dazu sind sind partielle und totale Ableitungen zu bilden. Mit der Kettenregel lässt sich die totale Zeitableitung in partielle Ableitungen zweiter Ordnung auflösen. Wir beschäftigen uns mit der Simulation der Bewegungsgleichungen, ohne diese explizit symbolisch angeben zu müssen. Die Lagrange-Funktion sei in lokalen Koordinaten gegeben und als C++-Code implementiert. ADOL-C stellt eine Reihe von Treibern für die effiziente Berechnung der benötigten ersten und zweiten Ableitungen bereit. Desweiteren steht eine Schnittstelle zu MATLAB zur Verfügung, so dass entsprechende Regelungsaufgaben leicht mit Hilfe von Simulink-Blöcken implementiert werden können. In diesem Rahmen kann das (ggf. eingangsabhängige) Vektorfeld berechnet werden, so dass eine Simulation des Systems unter MATLAB/SIMULINK bequem möglich ist.

Hinweis: In ählicher Weise lassen sich mecnaische Systeme auch auf der Basis des Hamilton-Formalismus beschreiben und mit algorithmischen Differenzieren simulieren (siehe Palis, S.; Palis, F, 2010).

Veröffentlichungen: