Skip to content
Snippets Groups Projects
Commit 83c2f2a3 authored by Jan Falkenhain's avatar Jan Falkenhain
Browse files

3rd commit

parent a9c1e756
No related branches found
No related tags found
No related merge requests found
...@@ -59,8 +59,10 @@ Die Abbildung $z=e^{-sT}$ aus der $s$-Ebene in die $z$-Ebene ist in Bild \ref{fi ...@@ -59,8 +59,10 @@ Die Abbildung $z=e^{-sT}$ aus der $s$-Ebene in die $z$-Ebene ist in Bild \ref{fi
\draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$}; \draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$};
\draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$}; \draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$};
%\draw[fill=red!20] (-2.5,0)--(2.5,5); %\draw[fill=red!20] (-2.5,0)--(2.5,5);
\fill [fill=red!20, fill opacity=0.2] (0,-2.5) rectangle (2.5,2.5); \fill [fill=red!20, fill opacity=0.5] (0,-2.5) rectangle (2.5,2.5);
\fill [fill=red!20, fill opacity=0.2] (8.5,0) circle[radius=1]; \fill [dashed, fill=red!20, fill opacity=0.5] (8.5,0) circle[radius=1];
\draw [dashed] (8.5,0) circle[radius=1];
\draw (9.5,-0.1) -- (9.5,0.1) node[below]{1}; \draw (9.5,-0.1) -- (9.5,0.1) node[below]{1};
\end{tikzpicture} \end{tikzpicture}
...@@ -73,12 +75,31 @@ Im Zeitbereich entstehen Modelle aus Differenzialgleichungen, welche im linearen ...@@ -73,12 +75,31 @@ Im Zeitbereich entstehen Modelle aus Differenzialgleichungen, welche im linearen
\dot{\jv x}(t) &= \jv A_k \jv x(t) + \jv B_k \jv u(t),~~\jv x(0)=\jv x_0\\ \dot{\jv x}(t) &= \jv A_k \jv x(t) + \jv B_k \jv u(t),~~\jv x(0)=\jv x_0\\
\jv y(t) &= \jv C_k \jv x(t) + \jv D_k \jv u(t)\nonumber \jv y(t) &= \jv C_k \jv x(t) + \jv D_k \jv u(t)\nonumber
\end{align} \end{align}
Darin bezeichnet $\jv x$ den Zustandsvektor. Über die Matrix $\jv A_k$ wird ein System von Differenzialgleichungen erster Ordnung formuliert. $\jv D_k$ wird als Durchgriff bezeichnet, da es die direkte Wirkung eines Eingangssignals $\jv u(t)$ (z. B. P-Anteil beim Regler) auf den Ausgang ohne Integration beschreibt. Analog dazu ist Darin bezeichnet $\jv x$ den Zustandsvektor. Über die Matrix $\jv A_k$ wird ein System von Differenzialgleichungen erster Ordnung formuliert. $\jv D_k$ wird als Durchgriff bezeichnet, da es die direkte Wirkung eines Eingangssignals $\jv u(t)$ (z. B. P-Anteil beim Regler) auf den Ausgang ohne Integration beschreibt.
Die Laplace-Transformierte der Zustandsgleichung lautet
\begin{align*}
s{\jv X}(s) &= \jv A_k \jv X(s) + \jv B_k \jv U(s)~~.
\end{align*}
Aufgelöst nach $\jv X(s)$ und eingesetzt in die Ausganbegleichung ermöglicht die Angabe der Übertragungsfunktion in Abhängigkeit von den Matrizen des ZRMs
\begin{align*}
{\jv G}(s) &= \jv C(s\jv I - A_k)^{-1} \jv B_k +\jv D;~~\jv K_s=\jv G(0) = -\jv C \jv A^{-1} \jv B +D
\end{align*}
Für $s=0$ ergibt sich die statische Verstärkung.
Analog dazu ist
\begin{align}\label{ZRM_disk} \begin{align}\label{ZRM_disk}
\jv x(k+1)&=\jv A_d \jv x(k)+\jv B_d \jv u(k),~~\jv x(0)=\jv x_0\\ \jv x(k+1)&=\jv A_d \jv x(k)+\jv B_d \jv u(k),~~\jv x(0)=\jv x_0\\
\jv y(k) &= \jv C_d \jv x(k) + \jv D_d \jv u(k)\nonumber \jv y(k) &= \jv C_d \jv x(k) + \jv D_d \jv u(k)\nonumber
\end{align} \end{align}
ein diskretes ZRM mit Zustandsübergangs- und Ausgabegleichung . Die Auswertung erfordert immer die Kenntnis des Anfangszustands $\jv x_0$. Die hier verwendete Schreibweise wird für Mehrgrößensysteme verwendet. Im Eingrößenfall wird der Durchgriff $d$ skalar und anstelle von Matrizen bleibt ein Eingangsvektor $\jv b$ und ein Ausgangsvektor $\jv c^T$. ein diskretes ZRM mit Zustandsübergangs- und Ausgabegleichung . Die Auswertung erfordert immer die Kenntnis des Anfangszustands $\jv x_0$. Die hier verwendete Schreibweise wird für Mehrgrößensysteme verwendet. Im Eingrößenfall wird der Durchgriff $d$ skalar und anstelle von Matrizen bleibt ein Eingangsvektor $\jv b$ und ein Ausgangsvektor $\jv c^T$. Mit dem Verzögerungsoperator $z$ kann die entsprechende Transformation der Zustandsgleichung mit
\begin{align*}
x(x+1) \laplace zX(z)
\end{align*}
analog zum kontinuierlichen ZRM durchgeführt werden, um die Übertragungsfunktion und die statische Verstärkung
\begin{align*}
{\jv G}(z) &= \jv C(z\jv I - A_k)^{-1} \jv B_k +\jv D;~~\jv K_s=\jv G(1) = -\jv C \jv (\jv I - A)^{-1} \jv B +D
\end{align*}
zu ermitteln. Diese ergibt sich im diskreten Fall für $z=e^{0\cdot T}=1$. Übertragungs- oder Gewichtsfunktionen können im Mehrgrößenfall einfach als Matrizen geschrieben werden.
%\subsection{Wissenschaftliches Schreiben% %\subsection{Wissenschaftliches Schreiben%
% \label{sec:Grundlagen-Schreiben}} % \label{sec:Grundlagen-Schreiben}}
...@@ -24,23 +24,23 @@ Y(z) = \frac{zU(z)- U(z)}{T} ~~\Leftrightarrow~~ \frac{Y(z)}{U(z)}=\frac{z-1}{T ...@@ -24,23 +24,23 @@ Y(z) = \frac{zU(z)- U(z)}{T} ~~\Leftrightarrow~~ \frac{Y(z)}{U(z)}=\frac{z-1}{T
und führt auf den Zusammenhang $sT+1 \equiv z$. und führt auf den Zusammenhang $sT+1 \equiv z$.
Bei der Euler-Diskretisierung ersetzt man jede elementare Differenziation entsprechend bzw. jede Integration, welche z. B. im Signalflussgraphen der Differenzialgleichungen auftritt. Als Umkehroperation zur Bildung des Differenzenquotienten leiten wir die diskrete Integration bzw. Akkumulation wie folgt ab. Wir vertauschen Ein- und Ausgang und bilden den Differenzenquotienten des Ausgangssignals: Bei der Euler-Diskretisierung ersetzt man jede elementare Differenziation entsprechend bzw. jede Integration, welche z. B. im Signalflussgraphen der Differenzialgleichungen auftritt. Als Umkehroperation zur Bildung des Differenzenquotienten leiten wir die diskrete Integration bzw. Akkumulation wie folgt ab. Wir vertauschen Ein- und Ausgang und bilden den Differenzenquotienten des Ausgangssignals:
\[u(k)= \frac{y(k+1)-y(k)}{T}\]
Umstellen nach $y(k)$ liefert die die Differenzengleichung für den Akkumulator
\begin{align*}
y(k+1)&=y(k)+T u(k)\\
\end{align*}
\begin{tikzpicture}[node distance=2.5cm,auto,>=latex', scale=3] \begin{tikzpicture}[node distance=2.5cm,auto,>=latex', scale=3]
\node [int] (a) {$\text{A}_{EF}$}; %\node [int, pin={[init]above:$v_0$}] (a) {$\int$}; \node [int] (a) {$\text{A}_{EF}$}; %\node [int, pin={[init]above:$v_0$}] (a) {$\int$};
\node (b) [left of=a,node distance=2cm, coordinate] {a}; \node (b) [left of=a,node distance=2cm, coordinate] {a};
\node (c) [right of=a] {$$}; %\node [int, pin={[init]above:$p_0$}] (c) [right of=a] {$\int$}; \node (c) [right of=a] {$$}; %\node [int, pin={[init]above:$p_0$}] (c) [right of=a] {$\int$};
\node (d) [right of=c] {$u(k)= \frac{y(k+1)-y(k)}{T}$}; \node (d) [right of=c] {$\text{A}_{EF}:~y(k)=y(k-1)+T u(k-1)$};
\node (e) [right of=d] {$$}; \node (e) [right of=d] {$$};
\node [coordinate] (end) [right of=c, node distance=2cm]{}; \node [coordinate] (end) [right of=c, node distance=2cm]{};
\path[->] (b) edge node {$u(k)$} (a); \path[->] (b) edge node {$u(k)$} (a);
\path[->] (a) edge node {$y(k)$} (c); \path[->] (a) edge node {$y(k)$} (c);
\end{tikzpicture} \end{tikzpicture}
Umstellen nach $y(k)$ liefert die die Differenzengleichung für den Akkumulator
\begin{align*}
y(k+1)&=y(k)+T u(k)\\
\text{A}_{EF}:~y(k)&=y(k-1)+T u(k-1)\\
\end{align*}
Unter Anwendung der z-Transformation erhält man Unter Anwendung der z-Transformation erhält man
\begin{align*} \begin{align*}
...@@ -67,8 +67,9 @@ Eine Eigenschaft des Ansatzes ist damit, dass eine eindeutige $s-z$-Transfornati ...@@ -67,8 +67,9 @@ Eine Eigenschaft des Ansatzes ist damit, dass eine eindeutige $s-z$-Transfornati
\draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$}; \draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$};
\draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$}; \draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$};
%\draw[fill=red!20] (-2.5,0)--(2.5,5); %\draw[fill=red!20] (-2.5,0)--(2.5,5);
\fill [fill=red!20, fill opacity=0.2] (0,-2.5) rectangle (2.5,2.5); \fill [fill=red!20, fill opacity=0.5] (0,-2.5) rectangle (2.5,2.5);
\fill [fill=red!20, fill opacity=0.2] (6,-2.5) rectangle (9.5,2.5); \fill [fill=red!20, fill opacity=0.5] (6,-2.5) rectangle (9.5,2.5);
\draw [dashed] (8.5,0) circle[radius=1];
%\fill [fill=red!20, fill opacity=0.2] (9.5,0) circle[radius=1]; %\fill [fill=red!20, fill opacity=0.2] (9.5,0) circle[radius=1];
%\draw [black] (9.5,0) circle[radius=1]; %\draw [black] (9.5,0) circle[radius=1];
\draw (9.5,-0.1) -- (9.5,0.1) node[below]{1}; \draw (9.5,-0.1) -- (9.5,0.1) node[below]{1};
...@@ -105,7 +106,7 @@ Die Art der Polverschiebung zeigt sich auch bei Diskretisierung der Zustandsglei ...@@ -105,7 +106,7 @@ Die Art der Polverschiebung zeigt sich auch bei Diskretisierung der Zustandsglei
\end{align*} \end{align*}
Auch hier wird die Skalierung und Verschiebung der Systemeigenwerte deutlich, welche in der Regel die Pole des Systems bilden. Auch hier wird die Skalierung und Verschiebung der Systemeigenwerte deutlich, welche in der Regel die Pole des Systems bilden.
step-ForwardEuler
\begin{figure}[H] \begin{figure}[H]
\begin{center} \begin{center}
\includegraphics[width=0.8\textwidth]{bilder/step-ForwardEuler} \includegraphics[width=0.8\textwidth]{bilder/step-ForwardEuler}
...@@ -164,10 +165,11 @@ Auch dieser Ansatzes stellt eine eindeutige Pol-Transformation dar. Die Transfor ...@@ -164,10 +165,11 @@ Auch dieser Ansatzes stellt eine eindeutige Pol-Transformation dar. Die Transfor
\draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$}; \draw[->] (0,0) -- (5,0) node[below] {$Re$}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[above] {s-Ebene}; \draw[->] (2.5,-2.5) -- (2.5,2.5) node[right] {$Im$};
\draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$}; \draw[->] (6,0) -- (11,0) node[below] {$Re$}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[above] {z-Ebene}; \draw[->] (8.5,-2.5) -- (8.5,2.5) node[right] {$Im$};
%\draw[fill=red!20] (-2.5,0)--(2.5,5); %\draw[fill=red!20] (-2.5,0)--(2.5,5);
\fill [fill=red!20, fill opacity=0.2] (0,-2.5) rectangle (2.5,2.5); \fill [fill=red!20, fill opacity=0.5] (0,-2.5) rectangle (2.5,2.5);
\fill [fill=red!20, fill opacity=0.2] (9.5,0) circle[radius=1]; \fill [fill=red!20, fill opacity=0.5] (9.5,0) circle[radius=1];
\draw [dashed] (8.5,0) circle[radius=2];
\draw [black] (9.5,0) circle[radius=1]; \draw [black] (9.5,0) circle[radius=1];
\draw (9.5,-0.1) -- (9.5,0.1) node[below]{1}; \draw (9.5,-0.1) -- (9.5,0.1) node[below]{};
\draw[fill = red] (2.5,0) circle[radius=0.1]; \draw[fill = red] (2.5,0) circle[radius=0.1];
\draw[fill = red] (10.5,0) circle[radius=0.1]; \draw[fill = red] (10.5,0) circle[radius=0.1];
...@@ -195,11 +197,24 @@ Durch Einsetzen des Differenzenquotienten auf der linken Seite diskretisiert man ...@@ -195,11 +197,24 @@ Durch Einsetzen des Differenzenquotienten auf der linken Seite diskretisiert man
\end{align} \end{align}
\begin{itemize} \begin{itemize}
\item Die Umformung von Gl. \ref{ZRM:kompliziert} in ein ZRM ist etwas aufwendiger, weil hier die vermeindliche Zustandsgröße $\jv x(k+1)$ vom Eingang $\jv u(k+1)$ zum gleichen Zeitpunkt abhängt. Mit einem modifizierten zustand gelingt die Darstellung und wird (irgendwann) in Anhang A nachgereicht. \item Die Umformung von Gl. \ref{ZRM:kompliziert} in ein ZRM ist etwas aufwendiger, weil hier die vermeindliche Zustandsgröße $\jv x(k+1)$ vom Eingang $\jv u(k+1)$ zum gleichen Zeitpunkt abhängt. Mit einem modifizierten Zustand sollte die Darstellung gelingen (Anhang A).
\item Es lässt sich aber erkennen, dass die Zustandsübergangsmatrix $[\jv I-T\jv A_k]^{-1}$ lautet. \item Es lässt sich aber erkennen, dass die Zustandsübergangsmatrix $[\jv I-T\jv A_k]^{-1}$ lautet.
\item Plausibilisiert man sich die Eigenwerttransformation anhand der stabilen Eigenwerte auf der reellen Achse, so kann das mit der speziellen Form der Diagonalmatrix für $\jv A_k$ gelingen. Die reellen $\hat{\lambda}_i(\jv I_T\jv A_k)>1$ und damit für die inverse Matrix $0>\lambda_i(\jv A_d)>1$, also im angedeuteten Bildbereich auf der positiven reellen Achse im Einheitskreis. \item Plausibilisiert man sich die Eigenwerttransformation anhand der stabilen Eigenwerte auf der reellen Achse, so kann das mit der speziellen Form der Diagonalmatrix für $\jv A_k$ gelingen. Die reellen $\hat{\lambda}_i(\jv I_T\jv A_k)>1$ und damit für die inverse Matrix $0>\lambda_i(\jv A_d)>1$, also im angedeuteten Bildbereich auf der positiven reellen Achse im Einheitskreis.
\end{itemize} \end{itemize}
Bei beiden Methoden erhält man das diskrete System durch entsprechendes Ersetzen von $s$ in $G(s)$, wie hier mit Hilfe der Symbolic Toolbox \texttrademark in Matlab\texttrademark durchgeführt. Die statische Verstärkung bleibt erhalten.
\href{https://gitlab.cvh-server.de/jfalkenhain/diskretisierung-linearer-systeme/-/blob/master/Matlab/Diskretisierung_Euler.m}{Matlab\texttrademark(R2021a) file on Git: Diskretisierung\_Euler.m}
\begin{figure}[H]
\begin{center}
\includegraphics[width=0.8\textwidth]{bilder/step-bothEuler}
\caption{Sprungantwort eines Systems 2. Ordnung für Euler-Forward und Euler-Backward-Diskretisierung für verschiedene Abtastzeiten %\citep{yawpitchroll2013}%
\label{fig:stepEuler}}
\end{center}
\end{figure}
Wie Bild \ref{fig:stepEuler} zeigt, nähert sich die beiden Ansätze quasi für kleinere Abtastzeiten von verschiedenen Seiten an.
%\citep[S. 25]{mathworks2013} %\citep[S. 25]{mathworks2013}
%\begin{eqnarray} %\begin{eqnarray}
......
...@@ -46,29 +46,20 @@ y^*(k) &= \sum_{j=0}^{\infty} \rho(k) \underbrace{(h_d([k-j]T-h_d([k-j-1]T))}_{g ...@@ -46,29 +46,20 @@ y^*(k) &= \sum_{j=0}^{\infty} \rho(k) \underbrace{(h_d([k-j]T-h_d([k-j-1]T))}_{g
\end{align*} \end{align*}
Bildet man die Faltungsumme also mit dem ZOH-diskretisierten System, basierend auf der Bedingung \ref{ZOH:bed} dann liegen die diskreten Werte $y^*(k)$ auf dem kontinuierlichen Signal $y^*_k(t)$. Bildet man die Faltungsumme also mit dem ZOH-diskretisierten System, basierend auf der Bedingung \ref{ZOH:bed} dann liegen die diskreten Werte $y^*(k)$ auf dem kontinuierlichen Signal $y^*_k(t)$.
\textbf{Zustandsraummodell.} In \cite{Lunze16b} wird ein diskretes System als Abtastsystem \textbf{Zustandsraummodell.} In \cite{Lunze16b} wird ein diskretes System als Abtastsystem "`unter Beachtung der Eigenschaften des Abtasters und des Halteglieds"' aus dem kontinuierlichen ZRM hergeleitet. In \cite{BINGULAC1992293} erhält man die fast identische Darstellung mit dem Hinweis darauf, dass es sich um eine ZOH-Diskretisierung handelt. Für regulär $\jv A_k$ entsteht das diskrete Zustandsraummodell \eqref{ZRM_disk} mit den Matrizen:
Für regulär $\jv A_k$ entsteht das diskrete Zustandsraummodell \eqref{ZRM_disk} mit den Matrizen
%\boxed{
\begin{empheq}[box=\fbox]{align*}
%\boxed{
\jv A_d &=e^{\jv A_k T} ~~&~~ \jv B_d &= {\jv A_k}^{-1}(e^{\jv A_k T}-\jv I)\jv B_k=(e^{\jv A_k T}-\jv I){\jv A_k}^{-1}\jv B_k \\
%&&= (e{\jv A_k T}-\jv I){\jv A_k}^{-1}\jv B_k\\^
\jv C_d &=\jv C_k ~~&~~ \jv D_d &= \jv D_k
%}
\end{empheq}
%}
Darin stellt $\e^{\jv A}$ eine Matrixexponetialfunktion. Ihre numerische Berechnung ist die Hauptaufgabe bei der Ermittlung des diskreten Modells.
%\begin{eqnarray}
% P_\text{Welle} &=& 2 \pi M n \label{eq:drehmoment-1} \\
% \Leftrightarrow\quad M &=& \frac{P_\text{Welle}}{ 2 \pi n} \label{eq:drehmoment-2}
%\end{eqnarray}
%\subsection{Compilieren%
% \label{sec:Compilieren}}
%
%\begin{figure}[H]
% \begin{center}
% \includegraphics[width=0.3\textwidth]{bilder/roll_pitch_yaw}
% % Einbinden einer Pixelgrafik.
% % Die Endung „.png“ darf weggelassen werden.
% \caption{Ein Beispielbild mit Quellenangabe \citep{yawpitchroll2013}%
% \label{fig:roll_pitch_yaw}}
% \end{center}
%\end{figure}
%
%\begin{minipage}[b]{7cm} %\begin{minipage}[b]{7cm}
% \centering % \centering
% \includegraphics[width=7cm]{bilder/quadrocopter} % \includegraphics[width=7cm]{bilder/quadrocopter}
...@@ -86,39 +77,3 @@ Für regulär $\jv A_k$ entsteht das diskrete Zustandsraummodell \eqref{ZRM_disk ...@@ -86,39 +77,3 @@ Für regulär $\jv A_k$ entsteht das diskrete Zustandsraummodell \eqref{ZRM_disk
% \label{fig:ka32S}} % \label{fig:ka32S}}
%\end{minipage} %\end{minipage}
\ No newline at end of file
%\begin{table}[H]
% \caption{Masse des anzuhebenden Trägers%
% \label{table:massen}}
% \medskip
% \begin{center}
% \begin{tabular}{l|r}
% %
% % Die Leerzeichen im Quelltext haben keinen Einfluß auf die
% % Anordnung innerhalb der Tabelle. Diese wird durch die o.a.
% % Angabe „{l|r}“ gesteuert: linksbündiges Feld, senkrechter
% % Strich, rechtsbündiges Feld.
% %
% Bauteil & Masse[g] \\
% \hline
% Trägerrohr & 35 \\
% Linearlager & 7 \\
% Lagerblock Linearlager & 5 \\
% Kabel und Schrauben & 20 \\
% Motoren & 50 \\
% Propeller & 10 \\
% Propeller Eingriffschutz & 80 \\
% Holzplatte & 14 \\
% Drehzahlsensoren & 5 \\
% \hline
% Gesamtmasse & 226 \\
% % @@@ PG: Stimmt nicht: Die Summe der Zahlen ist 194!
% \end{tabular}
% \end{center}
%\end{table}
%
%\glqq{}{Boris ermöglicht die blockorientierte Simulation
% dynamischer Systeme nahezu beliebiger Art}\grqq{}
% \citep[S. 25]{boris2009}.
\section{Tustin-Approximation / Trapez-Regel \section{Tustin-Approximation / Trapez-Regel
\label{sec:Tustin-Approximation}} \label{sec:Tustin-Approximation}}
Die Tustin-Approximation kann mit der Integration nach der Trapez-Regel identifiziert werden. Betrachtet man die bisherigen Integrationsansätze, drängt sich ein verbesserter Ansatz für die Flächenberechnung zwischen zwei Zeitpunkten mit Hilfe der Trapez-Regel auf. Darüber wird aus dem Wert $I(k)$ rekursiv der nächste Wert wie folgt berechnet: \textbf{Integrationsmethode.} Die Tustin-Approximation kann mit der Integration nach der Trapez-Regel identifiziert werden. Betrachtet man die bisherigen Integrationsansätze, drängt sich ein verbesserter Ansatz für die Flächenberechnung zwischen zwei Zeitpunkten mit Hilfe der Trapez-Regel auf. Darüber wird aus dem Wert $I(k)$ rekursiv der nächste Wert wie folgt berechnet:
\begin{align*} \begin{align*}
I(k+1)=T \frac{x(k+1)+x(k)}{2} + I(k) I(k+1)=T \frac{x(k+1)+x(k)}{2} + I(k)
\end{align*} \end{align*}
...@@ -11,13 +11,44 @@ Y(k+1)=T \frac{U(k+1)+U(k)}{2} + Y(k)~~\text{und} ...@@ -11,13 +11,44 @@ Y(k+1)=T \frac{U(k+1)+U(k)}{2} + Y(k)~~\text{und}
\end{align*} \end{align*}
\begin{align*} \begin{align*}
zY(z)&=Y(z)+ \frac{T}{2} (zU(z)+U(z))\\ zY(z)&=Y(z)+ \frac{T}{2} (zU(z)+U(z))\\
\frac{Y(z)}{U(z)}= \frac{T}{2} \frac{z+1}{z-1} \frac{Y(z)}{U(z)}= \frac{T}{2} \frac{z+1}{z-1} =G_A(z)
\end{align*} \end{align*}
als Übertragungsfunktion, woraus die Entsprechung als Übertragungsfunktion für den Akkumulator.
\begin{tikzpicture}[node distance=2.5cm,auto,>=latex', scale=3]
\node [int] (a) {$\text{A}_\text{Tustin}$}; %\node [int, pin={[init]above:$v_0$}] (a) {$\int$};
\node (b) [left of=a,node distance=2cm, coordinate] {a};
\node (c) [right of=a] {$$}; %\node [int, pin={[init]above:$p_0$}] (c) [right of=a] {$\int$};
\node (d) [right of=c] {$u(k)= \frac{y(k+1)-y(k)}{T}$};
\node (e) [right of=d] {$$};
\node [coordinate] (end) [right of=c, node distance=2cm]{};
\path[->] (b) edge node {$u(k)$} (a);
\path[->] (a) edge node {$y(k)$} (c);
\end{tikzpicture}
Es gilt die Entsprechung
\begin{align*} \begin{align*}
s= \frac{2}{T} \frac{z-1}{z+1}~~~\text{bzw.}~~~z= \frac{s+2/T}{2/T-s} s= \frac{2}{T} \frac{z-1}{z+1}~~~\text{bzw.}~~~z= \frac{s+2/T}{2/T-s}
\end{align*} \end{align*}
folgt
\textbf{Differenziation.} Die beiden Euler-Methoden aus Kap. \ref{sec:Euler-Diskretisierung} wurden dardurch motiviert, dass der Differzenquotient die Ableitung genau an den Abtastzeitpunkten approximiert. Versuchen wir stattdessen die Approximation genau zwischen zwei Abtastzeitpunkten also für die Ableitung
\begin{align*}
\dot x_k((k-\frac{1}{2}) T) \approx \frac{x(k)-x(k-1)}{T}
\end{align*}
wo auch der Signalwert
\begin{align*}
x_k((k-\frac{1}{2}) T) \approx \frac{x(k)+x(k-1)}{2}
\end{align*}
approximiert wird, dann gitl für den den Differenziator $y=\dot u$ die Diskretisierung
\begin{align*}
\frac{y(k)+y(k-1)}{2} = \frac{u(k)-u(k-1)}{T}
\end{align*}
Der kausale Differenzierer ist also durch
\begin{align*}
y(k=)\frac{2}{T}(x(k)-x(k-1))-y(k-1);~~G_D(z) = \frac{2}{T} \frac{z-1}{z+1}
\end{align*}
gegeben.
%\begin{eqnarray} %\begin{eqnarray}
......
No preview for this file type
% Diskretisierung linearer Systeme nach Euler
clear all; close all
% System zweiter Ordnung ohne Durchgriff, stabil, komplexe Eigenwerte -> überschwingend
sys = tf([1,1],[1 1 1]);
figure(3);pzmap(sys)
% Pole auslesen, statische Verstärkung auslesen
[p_sys, z_sys]=pzmap(sys); gain_sys = dcgain(sys);
% in State-space modell transformieren
stsp_sys = ss(sys)
% Vergleich anhand der Sprungantworten
figure(1), step(sys), hold on
% Diskretisierung mit Abtastzeit T, mit zwei Forw/Back Methoden über ZRM
Tvec=[0.5, 0.1];
for T = Tvec
%% Euler Forward System aus ZRM bilden
sys_EF = ss(T*stsp_sys.A +eye(size(stsp_sys.A,1)), T*stsp_sys.B, stsp_sys.C, stsp_sys.D, T)
%% Euler Forward aus Pol/Nullstellentransformation bilden
[num, den] = tfdata(sys)
% symbolische Funktion aus Zähler und Nennerpolynom
syms s z;
sym_syms = poly2sym(cell2mat(num),s) / poly2sym(cell2mat(den),s)
sym_symz = subs(sym_syms, (z-1)/T)
[num_d, den_d]=numden(sym_symz)
sys_EF2 = tf(flip(double(coeffs(num_d))),double(flip(coeffs(den_d))),T)
% sys_EF2 identisch zu sys_EF,
%% Euler Backward aus ZRM bilden
% % A_d = inv(eye(size(stsp_sys.A,1)) - T * stsp_sys.A)
% % B_d = A_d^2 * T * stsp_sys.B
% % C_d = stsp_sys.C
% % D_d = T * stsp_sys.C * stsp_sys.A * stsp_sys.B + stsp_sys.D
% %
% % sys_EB = ss(A_d, B_d, C_d, D_d, T);
% % Im Beispiel tritt eine zweite Nullstelle bei z=0 auf, obwohl die
% anderen Pole und Nullstellen dem der symbolischen Methode entsprechen.
%% Euler Backward aus Übertragungsfunktion symbolich bilden
syms s z;
sym_syms = poly2sym(cell2mat(num),s) / poly2sym(cell2mat(den),s)
sym_symz = subs(sym_syms, (z-1)/(T*z))
[num_d, den_d]=numden(sym_symz)
sys_EB2 = tf(flip(double(coeffs(num_d))),double(flip(coeffs(den_d))),T)
[y,t]=step(sys_EF); plot(t, y ,'*','color', 'magenta')
[y,t]=step(sys_EF); plot(t, y ,'--','color', 'magenta')
%pause
%[y,t]=step(sys_EF2); plot(t, y ,'*','color', 'red')
[y,t]=step(sys_EB2); plot(t, y ,'*','color', 'cyan')
[y,t]=step(sys_EB2); plot(t, y ,'--','color', 'cyan')
% % [y,t]=step(sys_EB2); plot(t, y ,'*','color', 'magenta')
% % pause
end
% Bild speichern
% saveas(gcf,'../bilder/step-bothEuler.png')
%% Jetzt Impuls-Antworten berechnen und vergleichen
figure(2), impulse(sys), hold on
[y,t]=impulse(sys_EF); plot(t, y ,'*','color', 'magenta')
[y,t]=impulse(sys_EB2); plot(t, y ,'*','color', 'cyan')
%legend({'','ZOH','FOH','Impulse','Tustin'},'Location','North')
% Bild speichern
%saveas(gcf,'../bilder/impulse-bothEuler.png')
% Anhang A % Anhang A
\section{Fertigungszeichnungen} \section{Euler-Backward in ZRM-Darstellung}
\label{anh:fertigungszeichnungen} \label{anh:ZRM_Euler-Backward}
%Der Anhang ist gut geeignet um \glqq{}der Vollständigkeit halber\grqq{} Informationen zur Verfügung zu stellen, die aber für das eigentliche Verständnis des im Dokument vermittelten %ingenieurwissenschaftlichen Verständnis nicht notwendig oder dafür unwesentlich sind. \textit{Die folgenden Schritte sollen zeigen, wie man ein diskretes Zustandsraummodell direkt numerisch aus dem kontiuierlichen System ableitet. Im Beispiel liefert die Implementierung auch die korrekten Polstellen, allerdings eine weitere Nullstelle, was die Dynamik verändert. Fehler in der Darstellugn oder Implementierung?}
Der Ansatz des Euler-Backward besteht in der Beschreibung der Signale an den Abtastzeitpunkten, z. B. $x(k)$, und Approximation des Differenzenquotienten wie folgt:
\begin{align*}%\label{Forward_diffq}
\dot{x}\approx \frac{x(k)-x(k-1)}{T}~~.
\end{align*}
Die Zustandsgleichung des des kontinuierlichen Modells \eqref{ZRM_kont} wird dann ersetzt durch
\begin{align*}
\jv x(k)-\jv x(k-1)&=T \jv A_k \jv x(k) + T \jv B_k \jv u(k)\\
\Leftrightarrow (\jv I-T\jv A_k)\jv x(k)&= \jv x(k-1) + T\jv B_k \jv u(k)\\
\Leftrightarrow \jv x(k+1)&= \underbrace{(\jv I-T\jv A_k)^{-1}}_{\jv A_d} \jv x(k) + (\jv I-T\jv A_k)^{-1} T\jv B_k \jv u(k+1)
\end{align*}
wobei eine Indexverschiebung dazu führt, dass der Eingang zum Zeitpunkt $k+1$ in der Zustandsgleichung auftritt. Es gilt also
\begin{align*}\label{ZRM_diskEB}
\jv x(k+1)&=\jv A_d \jv x(k)+\jv A_d T \jv B_k\jv u(k+1),~~\jv x(0)=\jv x_0\\
\jv y(k) &= \jv C_k \jv x(k) + \jv D_k \jv u(k)\nonumber
\end{align*}
in die Form \eqref{ZRM_disk} zu überführen. Dazu teilen wir den Zustandsvektor
\begin{align*}
\jv x(k)=\jv x_1(k) + \jv x_2(k)
\end{align*}
so auf, dass $\jv x_1$ nicht direkt vom Eingang abhängt und $\jv x_2$ nicht aus dem Zustand ermittelt wird:
\begin{align*}%\label{ZRM_disk}
\jv x_1(k+1) &=\jv A_d \jv x(k)\\
\jv x_2(k+1) &= \jv A_d T \jv B_k\jv u(k+1) \Leftrightarrow \jv x_2(k) = \jv A_d T \jv B_k\jv u(k)
\end{align*}
und Gl. \eqref{ZRM_diskEB} erfüllt ist. Für $\jv x_2$ liegt eine Indexverschiebung nahe. Das Ergebnis kann in die Zustandsgleichung für den neuen Zustand $\jv x_1$ und in die Ausgabegleichung eingesetzt werden:
\begin{align*}%\label{ZRM_disk}
\jv x_1(k+1) &=\jv A_d \jv (x_1(k) + \jv A_d T \jv B_k\jv u(k))\\
\jv y(k) &= \jv C_d (\jv x_1(k) + \jv A_d T \jv B_k\jv u(k)) + \jv D_k \jv u(k)\\
&\Leftrightarrow\\
\jv x_1(k+1) &=\jv A_d \jv x_1(k) + \jv A_d^2 T \jv B_k\jv u(k))\\
\jv y(k) &= \jv C_k \jv x_1(k) + \jv C_k\jv A_d T \jv B_k\jv u(k)) + \jv D_k \jv u(k)\\
\end{align*}
Benennt man jetzt den Zustand $\jv x_1 = \tilde{\jv x}$ um, kann man die Matrizen des diskreten ZRM identifizieren:
\begin{align*}%\label{ZRM_disk}
\tilde{\jv x}(k+1) &=\jv A_d \tilde{\jv x}(k) + \underbrace{\jv A_d^2 T \jv B_k}_{=\jv B_d}\jv u(k))\\
\jv y(k) &= \underbrace{\jv C_k}_{=\jv C_d} \jv x_1(k) + \underbrace{\jv C_k\jv A_d T \jv B_k + \jv D_k}_{=\jv D_d} \jv u(k)
\end{align*}
% Anhang B % Anhang B
\section{Layouts} \section{Expliziter und impliziter Charakter der Euler-Methoden}
\label{anh:layouts} \label{anh:layouts}
\includepdf[pages=-]{bilder/Explizit_und_Implizit}\label{ref:pdfuebersicht}
% Anhang C % Anhang C
\section{Datenblätter und Zeichnungen} \section{Datenblätter und Zeichnungen}
......
File added
bilder/step-bothEuler.png

43.2 KiB

...@@ -56,3 +56,18 @@ year = {2011}, ...@@ -56,3 +56,18 @@ year = {2011},
note = {\url{http://www.microcopters.de/photos/98/dsc-1577.jpg}} note = {\url{http://www.microcopters.de/photos/98/dsc-1577.jpg}}
} }
@article{BINGULAC1992293,
title = {Identification of First-Order Hold Continuous-Time Systems},
journal = {IFAC Proceedings Volumes},
volume = {25},
number = {15},
pages = {293-298},
year = {1992},
note = {9th IFAC/IFORS Symposium on Identification and System Parameter Estimation 1991 , Budapest, Hungary, 8-12 July 1991},
issn = {1474-6670},
doi = {https://doi.org/10.1016/S1474-6670(17)50648-5},
url = {https://www.sciencedirect.com/science/article/pii/S1474667017506485},
author = {S. Bingulac and D.L. Cooper},
abstract = {A general procedure for calculating an equivalent ramp invariant (FOH) continuous-time model corresponding to a given discrete-time model is derived. Previously, only SISO and ΜΙΜΟ systems having distinct non-zero continuous eigenvalues have been treated. In this respect, the presented procedure represents a generalization of published results. An illustrative computational example is included.}
}
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{amssymb} \usepackage{amssymb}
\usepackage{dsfont} \usepackage{dsfont}
\usepackage{empheq}
% erzeugt Inhaltsverzeichnis mit Querverweisen zu den Kapiteln (PDF Version) % erzeugt Inhaltsverzeichnis mit Querverweisen zu den Kapiteln (PDF Version)
\usepackage[bookmarksnumbered,hyperfootnotes=false]{hyperref} \usepackage[bookmarksnumbered,hyperfootnotes=false]{hyperref}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment