Eigensystem Realisierungsalgorithmus
# Eigensystem Realisierungsalgorithmus

Der Eigensystem Realisierungsalgorithmus, wenn man ihn wörtlich aus dem Englischen von Eigensystem Realization Algorithm, kurz ERA, übersetzt, ist ein Verfahren der Systemidentifikation zur Bestimmung eines linearen, zeitdiskreten Systems auf Basis von Eingangs-Ausgangsmessdaten. Der Algorithmus bietet sich dann an, wenn kein analytisches Modell auf Grundlagen physikalischer Zusammenhänge formuliert werden kann. Der ERA wurde erstmals 1985 von J. N. Juang und R. S. Pappa vorgestellt.

## Theoretischer Hintergrund

Ein allgemeines lineares, zeitdiskretes System

${\begin{aligned}{\underline {x}}_{k+1}&=A{\underline {x}}_{k}+B{\underline {u}}_{k}\\{\underline {y}}_{k}&=C{\underline {x}}_{k}+D{\underline {u}}_{k}\end{aligned}}$

mit den Zuständen ${\underline {x}}\in \mathbb {R} ^{n}$, dem Eingang ${\underline {u}}\in \mathbb {R} ^{p}$ und dem Ausgang ${\underline {y}}\in \mathbb {R} ^{q}$, zeigt auf eine impulsförmige Anregung mit der Anfangsbedingung ${\underline {x}}_{0}={\underline {0}}$, die folgende zeitliche Evolution

${\begin{array}{l l l l}&{\underline {u}}&{\underline {x}}&{\underline {y}}\\k=0&I&{\underline {0}}&D\\k=1&0&B&CB\\k=2&0&AB&CAB\\k=3&0&A^{2}B&CA^{2}B\\\vdots &\vdots &\vdots &\vdots \\k=i&0&A^{(i-1)}B&CA^{(i-1)}B\\\vdots &\vdots &\vdots &\vdots \\k=(N-1)&0&A^{(N-2)}B&CA^{(N-2)}B\\\end{array}}$

wobei $I$ den Dirac-Impuls im jeweiligen Eingang symbolisiert, $k$ den jeweiligen Zeitschritt bedeutet und $N$ die Anzahl der Samples darstellt. In der Impulsantwort ${\underline {y}}$ sind inhärent die Informationen über die Systemmatrizen $A$, $B$, $C$ und $D$ enthalten, was die einzigen Daten sind, die nach der Messung am System vorliegen. Mit dem ERA können diese Matrizen aus den Messdaten extrahiert werden. Das damit realisierte lineare und zeitdiskrete Modell ist ähnlich der Methode der balancierten Modellreduktion (Balanced Truncation) balanciert. Das bedeutet, dass die Zustände des realisierten Systems die am besten und gleichermaßen beobachtbaren und steuerbaren Zustände des identifizierten Systems sind. Letztlich ist also das realisierte Modell eine balancierte Modellreduktion des physikalischen Systems an dem die Messungen gemacht wurden. An dieser Stelle sei noch darauf hingewiesen, dass es nur sehr schwer, bis unmöglich ist, den Dirac-Impuls physikalisch zu erzeugen, weil er eine mathematische Idealfunktion darstellt und bestenfalls approximiert werden kann. Es gibt jedoch Möglichkeiten aus zufälligen Ein-Ausgangsmessdaten die Impulsantwort herauszufiltern. Dies kann beispielsweise mit der Observer Kalman Filter Identification erreicht werden. Außerdem sind die realisierten Zustände in der Regel nicht physikalisch interpretierbar. Es besteht jedoch die Möglichkeiten, bei einer vollständigen Zustandsmessung des Systems, die Steuerbarkeitsmatrix zu bilden und damit auf eine Unterraumtransformation rückzuschließen, mit der schließlich die realisierten Zustände interpretiert werden können. Dies ist verwandt mit der Ordnungsreduktionsmethode Balanced Proper Orthogonal Decomposition.

## Der Algorithmus

Der erste Schritt ist offensichtlich das Sammeln von Messdaten. Im Folgenden wird von einem MIMO-System ausgegangen, um keine Unterscheidung zum SISO-Fall machen zu müssen. Ein SISO-System stellt insofern den Sonderfall dar, dass $p=1$ und $q=1$. Für die Messung wird jeder Eingang $u_{i}$ $(i=1,2,...,p)$ impulsartig angeregt und jeder Ausgang $y_{j}$ $(j=1,2,...,q)$ gemessen. Daraus folgen $(p\times q)$ Ausgangsvektoren ${\underline {y}}^{ij}$ mit jeweils $N$ Samples $y_{k}^{ij}$ in der Zeit. Exemplarische erhält man die Messdaten von Eingang $u_{2}$ zum Ausgang $y_{3}$ zu ${\underline {y}}^{23}={\begin{bmatrix}y_{0}^{23}&y_{1}^{23}&\dots &y_{N-1}^{23}\end{bmatrix}}.$

Der zweite Schritt ist das Arrangieren der Messdaten in einem Array ${\underline {\textbf {Y}}}\in \mathbb {R} ^{q\times p\times N}$. Dieses Array entspricht der eingangs eingeführten Evolution des Ausgangs ${\underline {y}}$. Die $N$ Blöcke ${\tilde {y}}_{k}\in \mathbb {R} ^{q\times p}$werden als Markov Parameter bezeichnet. Es folgt unmittelbar, dass $D={\tilde {y}}_{0}$.

Der dritte Schritt ist das Stapeln der Markov Parameter in eine Block Hankelmatrix ${\textbf {H}}\in \mathbb {R} ^{[bq]\times [sp]}$

${\textbf {H}}(k=1)={\textbf {H}}={\begin{bmatrix}{\tilde {y}}_{1}&{\tilde {y}}_{2}&\cdots &{\tilde {y}}_{s}\\{\tilde {y}}_{2}&{\tilde {y}}_{3}&\cdots &{\tilde {y}}_{s+1}\\\vdots &\vdots &&\vdots \\{\tilde {y}}_{b}&{\tilde {y}}_{b+1}&\cdots &{\tilde {y}}_{b+s-1}\\\end{bmatrix}}$

und einer verschobenen Block Hankelmatrix ${\textbf {H}}'\in \mathbb {R} ^{[bq]\times [sp]}$

${\textbf {H}}(k=2)={\textbf {H}}'={\begin{bmatrix}{\tilde {y}}_{2}&{\tilde {y}}_{3}&\cdots &{\tilde {y}}_{s+1}\\{\tilde {y}}_{3}&{\tilde {y}}_{4}&\cdots &{\tilde {y}}_{s+2}\\\vdots &\vdots &&\vdots \\{\tilde {y}}_{b+1}&{\tilde {y}}_{b+2}&\cdots &{\tilde {y}}_{b+s}\\\end{bmatrix}}$.

Die Bedeutung der Parameter $s,b\in \mathbb {N} \backslash \lbrace 0\rbrace$ wird im Folgenden noch geklärt. Die beiden Block Hankelmatrizen können nun durch die Beobachtbarkeitsmatrix $Q_{B}$ und die Steuerbarkeitsmatrix $Q_{S}$ausgedrückt werden. Es gilt schließlich für die Block Hankelmatrix und die verschobene Block Hankelmatrix

$Q_{B}Q_{S}={\begin{bmatrix}C\\CA\\\vdots \\CA^{b-1}\end{bmatrix}}{\begin{bmatrix}B&AB&\cdots &A^{s-1}B\end{bmatrix}}={\begin{bmatrix}CB&CAB&\cdots &CA^{s-1}B\\CAB&CA^{2}B&\cdots &CA^{s}B\\\vdots &\vdots &&\vdots \\CA^{b-1}B&CA^{b}B&\cdots &CA^{s+b-2}B\end{bmatrix}}={\textbf {H}}$

und $Q_{B}AQ_{S}={\textbf {H}}'$respektive.

An dieser Stelle wird deutlich, dass $s$ und $b$ die Größe der Steuerbarkeitsmatrix und der Beobachtbarkeitsmatrix respektive festlegen und somit die maximal realisierbare Systemordnung $r$ des zu realisierende Systems begrenzen. Sie können frei gewählt werden und sind lediglich durch die Anzahl $N$ der Samples begrenzt, da gelten muss $b+s=N-1$. Eine mögliche Wahl ist

$s=b=\left\lfloor {\frac {N-1}{2}}\right\rfloor$,

was der maximalen Größe für $s$ und $b$ entspricht und die Block Hankelmatrizen quadratisch macht. Mit anderen Worten begrenzt $N$ die Größe der Hankelmatrizen und somit letztendlich die Güte der Realisierung.

Der 4. Schritt ist die (ökonomische) Singulärwertzerlegung von ${\textbf {H}}$

${\textbf {H}}=U\Sigma V^{\top }={\begin{bmatrix}{\tilde {U}}&U_{t}\end{bmatrix}}{\begin{bmatrix}{\tilde {\Sigma }}&{\underline {0}}\\{\underline {0}}&\Sigma _{t}\end{bmatrix}}{\begin{bmatrix}{\tilde {V}}^{\top }\\V_{t}^{\top }\end{bmatrix}}$,

mit ${\tilde {U}}\in \mathbb {R} ^{[bq]\times r}$, ${\tilde {\Sigma }}\in \mathbb {R} ^{r\times r}$und ${\tilde {V}}^{\top }\in \mathbb {R} ^{r\times [sp]}$, wobei Tilde den Teil bezeichnet, der für die Realisierung verwendet wird und $t$ den Teil, der abgetrennt (truncated) wird. An dieser Stelle muss also eine Entscheidung über die Systemordnung $r$ des zu realisierenden Systems getroffen werden. Die Entscheidung wird auf Grundlage der Hankelsingulärwerte $\sigma$, die in $\Sigma$ enthalten sind getroffen. Die Hankelsingulärwerte sind dabei ein Maß für die transportierte Energie von Eingang zu Ausgang des jeweiligen Zustands. Wie bereits erwähnt sind die Zustände balanciert. Dadurch gehören die größten $r$ Hankelsingulärtwerte $\sigma _{i}$ zu den am besten und in gleichen Maßen beobachtbaren und steuerbaren Zuständen. In der Regel lässt sich eine markante Position finden, ab der die Singulärwerte deutlich kleiner werden.

$\sigma _{1}>\sigma _{2}>\dots >\sigma _{r}>>\sigma _{r+1}>\dots$

Ist dies nicht gegeben, kann die kumulierte Energie der Singulärwerte bestimmt werden und über eine Vorgabe der mindestens berücksichtigten Energie die Anzahl $r$ der dafür benötigten Zustände bestimmt werden.

Der fünfte Schritt ist die Bestimmung des realisierten Systems. Betrachtet man zunächst

${\begin{aligned}{\textbf {H}}&=U\Sigma V^{\top }\\&=U\Sigma ^{1/2}\Sigma ^{1/2}V^{\top }\\&=Q_{B}Q_{S}\end{aligned}}$

folgt

${\begin{aligned}Q_{B}&=U\Sigma ^{1/2}\\Q_{S}&=\Sigma ^{1/2}V^{\top }.\end{aligned}}$

Mit dem Zusammenhang

${\textbf {H}}'=Q_{B}AQ_{S}$

folgt schließlich für die Systemmatrix $A$

${\begin{aligned}A&=Q_{B}^{-1}{\textbf {H}}'Q_{S}^{-1}\\&=\Sigma ^{-1/2}U^{\top }{\textbf {H}}'V\Sigma ^{-1/2}.\end{aligned}}$

Beachte, für die unitären Matrizen $U$ und $V$ gilt $U^{-1}=U^{\top }$ und $V^{-1}=V^{\top }$.

Außerdem folgen aus ${\textbf {H}}=Q_{B}Q_{S}$ die Zusammenhänge

${\begin{aligned}Q_{B}&={\textbf {H}}Q_{S}^{-1}={\textbf {H}}V\Sigma ^{-1/2}={\begin{bmatrix}\mathbf {H} _{q,sb}\\\mathbf {H} _{(b-1)q,sb}\end{bmatrix}}{\begin{bmatrix}{\tilde {V}}&V_{t}\end{bmatrix}}{\begin{bmatrix}{\tilde {\Sigma }}^{-1/2}&\\&\Sigma _{t}^{-1/2}\end{bmatrix}}={\begin{bmatrix}C\\CA\\\vdots \\CA^{b-1}\end{bmatrix}}\\Q_{S}&=Q_{B}^{-1}{\textbf {H}}=\Sigma ^{-1/2}U^{\top }{\textbf {H}}={\begin{bmatrix}{\tilde {\Sigma }}^{-1/2}&\\&\Sigma _{t}^{-1/2}\end{bmatrix}}{\begin{bmatrix}{\tilde {U}}^{\top }\\U_{t}^{\top }\end{bmatrix}}{\begin{bmatrix}\mathbf {H} _{bq,p}&\mathbf {H} _{bq,(s-1)b}\end{bmatrix}}={\begin{bmatrix}B&AB&\dots &A^{s-1}B\end{bmatrix}},\end{aligned}}$

in denen die Ausgangsmatrix $C$ und die Eingangsmatrix $B$ enthalten sind. An dieser Stelle wurde die Hankelmatrix entsprechend partitioniert, um später auf die Matrizen $B$ und $C$ zu kommen. Schließlich und endlich folgt das realisierte System,

${\begin{aligned}{\underline {\tilde {x}}}_{k+1}&={\tilde {A}}{\underline {\tilde {x}}}_{k}+{\tilde {B}}{\underline {u}}_{k}\\{\underline {\hat {y}}}_{k}&={\tilde {C}}{\underline {\tilde {x}}}_{k}+{\tilde {D}}{\underline {u}}_{k}\end{aligned}}$

mit den Zuständen ${\underline {\tilde {x}}}\in \mathbb {R} ^{r}$, dem Eingang ${\underline {u}}\in \mathbb {R} ^{p}$ und dem approximierten Ausgang ${\underline {\hat {y}}}\in \mathbb {R} ^{q}$, sowie den Systemmatrizen

${\begin{aligned}{\tilde {A}}&={\tilde {\Sigma }}^{-1/2}{\tilde {U}}^{\top }{\textbf {H}}'{\tilde {V}}{\tilde {\Sigma }}^{-1/2}\\{\tilde {B}}&={\tilde {\Sigma }}^{-1/2}{\tilde {U}}^{\top }{\textbf {H}}_{bq,p}\\{\tilde {C}}&={\textbf {H}}_{q,sp}{\tilde {V}}{\tilde {\Sigma }}^{-1/2}\\{\tilde {D}}&={\tilde {y}}_{0},\end{aligned}}$

mit ${\tilde {A}}\in \mathbb {R} ^{r\times r}$, ${\tilde {B}}\in \mathbb {R} ^{r\times p}$, ${\tilde {C}}\in \mathbb {R} ^{q\times r}$ und ${\tilde {D}}\in \mathbb {R} ^{q\times p}$.

