Select Git revision
1_Einleitung.tex

Jan Falkenhain authored
1_Einleitung.tex 9.12 KiB
\section{Einleitung%
\label{sec:Einleitung}}
Diskrete Systeme werden im Rahmen der digitalen Signalverarbeitung und der Regelungstechnik entworfen, in letzterer zumeist mit Bezug zu kontiuierlichen, physikalischen Modellen. Zwei wesentliche Motive können vorliegen, um kontinuierliche System zu diskretisieren, also sie durch ein mit fester Abtastzeit arbeitendes diskretes System zu approximieren.
\begin{enumerate}
\item Hat man mit klassischen Methoden einen kontinuierlichen Regler entworfen, z. B. anhand eines Streckenmodells, dann erfordert die Realisierung auf einem Rechner (einer echtzeitfähigen Hardware beliebiger Art) eine diskrete Approximation, also ein unter Beachtung der Abtastzeit das kontinuierliche System möglichst gut nachbildendes diskretes Modell. Dies ist immer erforderlich, wenn nicht Bibliotheken für die Übersetzung kontinuierlicher Parameter, z. B. für PID-Regler, oder andere Software zur Verfügung steht, welche eine automatische Diskretisierung vornehmen (wie z. B. MATLAB Coder).
\item Eine etwas andere Vorgehensweise des Reglerentwurfs besteht darin, den diskreten Regler direkt anhand eines diskreten Streckenmodells zu entwerfen. Dafür ist jetzt also die Strecke zu diskretisieren. Anschließend steht eine eigene Welt von Methoden für den diskreten Regler zur Verfügung, welche oft Ähnlichkeiten mit klassischen kontinuierlichen Methoden aufweisen, aber letztlich doch eigenständige Methoden darstellen.
\end{enumerate}
Der Verdacht liegt nahe, dass man in beiden Fällen anstrebt, das kontinuierliche System möglichst gut zu approximieren. Allerdings gilt für den zweiten Fall der Streckendiskretisierung, dass man aus Sicht des zu entwerfenden Reglers tatsächlich das Verhalten des kontinuierliche Modells in Reihe geschaltet mit zwei Haltegliedern erster Ordnung nachbilden will. Dies erzwingt die Eigenschaft des diskreten Systems, pro Abtastzeit nur einen Wert zu verarbeiten und am Ausgang einen Wert für eine Abtastzeit zu halten.
Einige hier Benutze Begriffe der Regelungstechnik und der Systemtheorie werden im Grundlagenkapitel eingeführt. Dann wird die Euler-Approximation behandelt, bei der Ableitungen durch einen simplen Differenzenquotienten ersetzt werden. Mit MATLAB\texttrademark (R2021a) lassen sich Systeme erzeugen, Darstellungen ineinander überführen und auch diskrete Systeme ableiten, wie das folgende Skript zeigt:\\
\url{ https://gitlab.cvh-server.de/jfalkenhain/diskretisierung-linearer-systeme/-/blob/master/Matlab/Diskretisierung_mit_MATLAB.m}
Hier wird ein System zweiter Ordnung (ohne Durchgriff, mit komplexen Eigenwerten) diskretisiert nach den Methoden ZOH (Zero-Order Hold), FOH (First-Order Hold), Impulse und Tustin, welche in den folgenden Kapiteln behandelt werden. Bild \ref{fig:Sprungantwort} ..
\begin{figure}[H]
\begin{center}
\includegraphics[width=0.8\textwidth]{bilder/Sprungantwort_Vergleich}
\caption{Sprungantwort eines Systems 2. Ordnung und daraus abgeleiteter diskreter Systeme %\citep{yawpitchroll2013}%
\label{fig:Sprungantwort}}
\end{center}
\end{figure}
\begin{landscape}
\begin{table}[H]
\caption{Diskretisierungsansätz und deren Eigenschaften%
\label{table:massen}}
\medskip
\begin{center}
\begin{tabular}{l|c|c|c|c}
Verfahren & $s\mapsto z$ ? & Integrator& Differenziator& Zeitfunktion\\
\hline
Forward-Euler & Ja & & &\\
Backward-Euler & Ja & & &\\
ZOH & Nein & & & 5 \\
FOH & & & &20 \\
Impuls & &50 & &\\
Tustin & 10 &&&\\
Mathched Filter &Nein & -&-& 80 \\
%Holzplatte & 14 \\
%Drehzahlsensoren & 5 \\
\hline
%Gesamtmasse & 226 \\
\end{tabular}
\end{center}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{landscape}
%% Quertabelle Ende
%\input{prefix}
\begin{tikzpicture}[auto, node distance=2cm]
\draw [dashed] (.5,-1.6) rectangle (3.5,0.5);
\end{tikzpicture}
\tikzstyle{int}=[draw, fill=white!20, minimum size=3em]
%\tikzstyle{init} = [pin edge={to-,thin,black}]
\begin{tikzpicture}[node distance=2.5cm,auto,>=latex', scale=3]
\node [int] (a) {$\int$}; %\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] {};
\node (e) [right of=d] {$y(t)=\int u(t)dt;~~G_I(s)=\frac{Y(s)}{U(s)} = \frac{1}{s}$};
\node [coordinate] (end) [right of=c, node distance=2cm]{};
\path[->] (b) edge node {$u(t)$} (a);
\path[->] (a) edge node {$y(t)$} (c);
%\draw[->] (c) edge node {$p$} (end) ;
\end{tikzpicture}
Wir labern
\begin{figure}[H]
\begin{tikzpicture}[node distance=2.5cm,auto,>=latex']
\draw (0,0) -- (1.5, 0); \draw (0,0) -- ( 0,1.5);
% \node [int] (a) {$\int$}; %\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] {};
% \node (e) [right of=d] {$y(t)=\int u(t)dt;~~G_I(s)=\frac{Y(s)}{U(s)} = \frac{1}{s}$};
%
%
% \node [coordinate] (end) [right of=c, node distance=2cm]{};
% \path[->] (b) edge node {$u(t)$} (a);
% \path[->] (a) edge node {$y(t)$} (c);
% %\draw[->] (c) edge node {$p$} (end) ;
\end{tikzpicture}
\end{figure}
was
\begin{filecontents}{data.dat}
n xn
-2 0
-1 0
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
\end{filecontents}
%\begin{tikzpicture}[scale=0.8]
%\begin{axis}
%[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %axis x line=middle,
% %axis y line=middle,
% %every axis x label={at={(current axis.right of origin)},anchor=north west},
% %every axis y label={at={(current axis.above origin)},anchor= north west},
% %every axis plot post/.style={mark options={fill=black}},
% xlabel={$k$},
% ylabel={$\sigma(k)$},
% xtick={-7, -6,-5,-4,-3, -2, -1, 0, 1, 2, 3, 4},
% ymin=0,
% ymax=1.5,
% xmin=-2,
% xmax=4.5,
%]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\addplot+[ycomb,black,thick] table [x={n}, y={xn}] {data.dat};
%\end{axis}
%\end{tikzpicture}
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Original Signal
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%\begin{filecontents}{data.dat}
% n xn
%-5 0.0
%-4 0.0
%-3 3.0
%-2 2.0
%-1 1.0
% 0 0.0
% 1 1.0
% 2 2.0
% 3 3.0
% 4 0.0
% 5 0.0
%\end{filecontents}
%\begin{tikzpicture}
%\begin{axis}
%[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% axis x line=middle,
% axis y line=middle,
% every axis x label={at={(current axis.right of origin)},anchor=north west},
% every axis y label={at={(current axis.above origin)},anchor= north west},
% every axis plot post/.style={mark options={fill=black}},
% xlabel={$n$},
% ylabel={$\boldsymbol{x[n]}$},
% xtick={-7, -6,-5,-4,-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8},
% ymin=0,
% ymax=5.5,
%]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\addplot+[ycomb,black,thick] table [x={n}, y={xn}] {data.dat};
%\end{axis}
%\end{tikzpicture}
%
%
%\clearpage
%\begin{tikzpicture}[domain=0:4]
%%\draw[very thin,color=gray] (-0.1,-1.1) grid (6,1.0);
%\draw[-] (-0.1, 1) node[left] {1} -- (0.1,1);
%%\draw[-] (-0.1, -1) node[left] {-1} -- (0.1,-1);
%
%\draw[-] (-2, -0.1) node[below] {-2} -- (-2,0.1);
%\draw[-] (-1, -0.1) node[below] {-1} -- (-1,0.1);
%\draw[-] (1, -0.1) node[below ] {1} -- (1,0.1);
%\draw[-] (2, -0.1) node[below] {2} -- (2,0.1);
%\draw[-] (3, -0.1) node[below] {3} -- (3,0.1);
%
%
%
%\draw[->] (-2,0) -- (3.5,0) node[below] {$t$}; \draw[->] (0,-1.2) -- (0,1.2) node[above] {%$f_1 :
%Sprungfunktion
%};
% \draw[color=blue, domain=0:3, samples=50] plot (\x,{1}) %node[right] {$f(x) = \sin (2\pi x)$} ;
%
%\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tikzpicture}
%%%\draw[very thin,color=gray] (-0.1,-1.1) grid (6,1.0);
%%\draw[-] (-0.1, 1) node[left] {1} -- (0.1,1);
%%%\draw[-] (-0.1, -1) node[left] {-1} -- (0.1,-1);
%%
%%\draw[-] (-2, -0.1) node[below] {-2} -- (-2,0.1);
%%\draw[-] (-1, -0.1) node[below] {-1} -- (-1,0.1);
%%\draw[-] (1, -0.1) node[below ] {1} -- (1,0.1);
%%\draw[-] (2, -0.1) node[below] {2} -- (2,0.1);
%%\draw[-] (3, -0.1) node[below] {3} -- (3,0.1);
%
%
%
%
\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[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.2] (8.5,0) circle[radius=1];
\draw (9.5,-0.1) -- (9.5,0.1) node[below]{1};
%[draw, fill=white!20, minimum size=3em]
%% \draw[color=blue, domain=0:3, samples=50] plot (\x,{1}) %node[right] {$f(x) = \sin (2\pi x)$} ;
%
\end{tikzpicture}