DyOS

Ansprechpartner

Name

Johannes Faust

Geschäftsführer

Telefon

work
+49 241 80 97013

E-Mail

E-Mail
 

DyOS ist eine Softwareframework zur Lösung von dynamischen Optimierungsproblemen. Eine Übersicht über DyOS mit Fallstudie geben wir in [Caspari et al., 2019b].

DyOS wurde an der AVT.PT entwickelt und wird inzwischen an der AVT.SVT kontinuierlich weiterentwickelt. Wir bedanken uns für die finanzielle Unterstützung der DFG, der EU, des BMBF, des BMWi, der Helmholtz-Gemeinschaft sowie verschiedener privater Unternehmen, welche direkt oder indirekt zu DyOS beigetragen hat. Das Tool wurde von AVT.PT unter der GNU General Public License GPL v3.0 veröffentlicht.

Der Quellcode ist hier verfügbar

Mit DyOS können mehrstufige, gemischt-ganzzahlige dynamische Optimierungsprobleme der folgenden Form gelöst werden.

\(\begin{align*} \min_{\mathbf{u},\mathbf{z},\mathbf{p},\mathbf{x},\mathbf{y}}\,\,\, &\sum\nolimits_{i=1}^N \Phi_i(\boldsymbol{x}(t_i^+)) \newline \newline \text{ s.t.,}\boldsymbol{M\dot{x}}(t)&= \boldsymbol{f}_i(\boldsymbol{x}(t),\boldsymbol{y}(t),\boldsymbol{u}(t),\boldsymbol{p},\boldsymbol{z}), \,\,\, &\forall t\in\mathcal{T}_i,1\le i\le N \newline \boldsymbol{0} &=\boldsymbol{g}_i(\boldsymbol{x}(t),\boldsymbol{y}(t),\boldsymbol{u}(t),\boldsymbol{p},\boldsymbol{z}), \,\,\, &\forall t\in\mathcal{T}_i,1\le i\le N \newline \boldsymbol{0} &=\boldsymbol{h}_i(\boldsymbol{x}(t_i^+),\boldsymbol{x}(t_i^-),\boldsymbol{y}(t_i^-),\boldsymbol{p},\boldsymbol{z}), \,\,\, &1\le i\le N-1 \newline \boldsymbol{0} &=\boldsymbol{c}_i(\boldsymbol{x}(t),\boldsymbol{y}(t),\boldsymbol{u}(t),\boldsymbol{p},\boldsymbol{z}), \,\,\, & t\in\mathcal{T}_i,1\le i\le N \end{align*} \)

 
 

mit dem Zeithorizont \(\mathcal{T}_=U^N_{i=1}\mathcal{T}_i\) wobei \(N\) die Anzahl der Stufen ist, \(T_i=[t_i,t_{i+1}]\) der Zeithorizont der Stufe \(i\), dem semi-explizites DAE mit differentiellem Index 1 \(\boldsymbol{f}_i:X \to R^{n_x},\boldsymbol{g}_i:X\to R^{n_y}\) und der invertierbaren Massematrix \(\boldsymbol{M} \in R^{n_x\times n_x}\), die Startwerte \(\boldsymbol{h}_i:R^{n_x}\times R^{n_x}\times R^{n_y}\times R^{n_p}\times R^{n_z}\to R^{n_x}\)und Nebenbedingung \(\boldsymbol{c}_i:X\to R^{n_c}\) mit \( X:=R^{n_x}\times R^{n_y}\times R^{n_u}\times R^{n_p}\times R^{n_z}\).

Durch die Lösung des Optimierungsproblems ( 1) können die optimalen Trajektorien der Kontrollvariablen \(\boldsymbol{u}:\mathcal{T}\to R^{n_u}\), der differentiellen und algebraischen Zustände \(\boldsymbol{x}:\mathcal{T}\to R^{n_x}\) und \(\boldsymbol{y}:\mathcal{T}\to R^{n_y}\), für die Paramterwerte \(\boldsymbol{p}\in R^{n_p}\) und ganzzahligen Variablen \(\boldsymbol{z}\in N^{n_z}\) gefunden werden, die Zielfunktionen vom Mayertyp \(\Phi_i:R^{n_x}\to R\) minimieren. Die Indizes \(+\) und \(-\) bezeichnen die rechts- und linksseitigen Grenzwerte von \(t_i\).

Die Algorithmen in DyOS basieren auf adaptiven Einfach- und Mehrfachschießverfahren [Schlegel et al., 2004, Assassa and Marquardt, 2014], wobei die Diskretisierung der Kontrollvariablen automatisch verändert werden kann. Zwei Adaptionsmethoden sind implementiert: die eine basiert auf Wavelet-Analyse zur Verbesserung der Zielfunktion [Schlegel et al., 2004] die andere auf den notwendigen Optimalitätskriterien des Optimierungsproblems [Assassa and Marquardt, 2016]. Die automatische Gitteranpassung und Strukturerkennung [Assassa and Marquardt, 2015] ermöglicht es dem Nutzer, die Optimierung mit einem groben Diskretisierungsgitter zu beginnen und am Ende der Optimierung ein hinreichend feines Gitter zu erhalten. Auf diese Weise kann die Gitteranpassung die Gesamt-CPU-Zeit reduzieren, indem eine unnötig feine Parametrisierung vermieden wird. Mit einem Branch-and-Bound-Algorithmus kann DyOS gemischt-ganzzahlige Optimierungsprobleme [Oldenburg et al., 2003] lösen. Eine Besonderheit von DyOS sind darüber hinaus die speziellen Ansätze, zur Berechnung der Jacobi- und Hessematrizen der Lagrangefunktion.

Die Architektur von DyOS ist in Abb. 1 dargestellt. Eine generische Modellschnittstelle ist implementiert, die es erlaubt, verschiedene Modelle an DyOS zu koppeln. Die Modellschnittstelle unterstützt derzeit den Functional Mock-Up Interface (FMI) Standard [ FMI, 2019 ], flache Modelica-Modelle und C++ Modelle. Derzeit existieren drei Benutzerschnittstellen, die den Zugriff auf DyOS von C++, Matlab und Python aus erlauben

Anwendungen

Tabelle 1 fasst ausgewählte Probleme und darin vorkommender DAEs zusammen, die mit DyOS gelösten wurden vor.

Tabelle 1: Publikationen, in denen DyOS verwendet wird.

Quelle

Problemtyp

DAE Größe

[Oldenburg et al., 2003]

MIDO

330 DAEs

32 binary variables

[Kadam et al., 2007]

DO

200 differential equations

2500 algebraic equations

[Hartwich et al., 2010]

DO

1752 differential equations

10779 algebraic equations

[Frankl et al., 2012]

Integrated Scheduling

and Control

1500 equations

9 binary variables

[Pontes et al., 2008]

Multistage DO

47 differential equations

1929 algebraic equations

[Pontes et al., 2015]

DRTO

148 differential equations

2435 algebraic equations

[Caspari et al., 2018]

eNMPC

127 differential equations

2940 algebraic equations

[Caspari et al., 2019d]

eNMPC

371 differential equations

14150 algebraic equations