diff --git a/1_Einleitung.tex b/1_Einleitung.tex index c516b14af34658f8d052926e959ffca21a7e3c88..a8318de11a271be3b18b3c970aeb62f877ee8c73 100644 --- a/1_Einleitung.tex +++ b/1_Einleitung.tex @@ -5,20 +5,20 @@ \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 \textbf{den kontinuierlichen Regler} \textit{möglichst gut} nachbildendes diskretes Modell. Dies ist immer erforderlich, wenn nicht Bibliotheken für die automatisierte Übersetzung kontinuierlicher Parameter, z. B. für PID-Regler, oder andere Software zur Verfügung stehen, welche eine numerische Lösung bieten (wie z. B. MATLAB-Coder\texttrademark). -\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 \textbf{Strecke bzw. das kontinuierliche Streckenmodell} zu diskretisieren. Anschließend steht eine eigene Welt von Methoden für den diskreten Reglerentwurf zur Verfügung, welche oft Ähnlichkeiten mit klassischen kontinuierlichen Methoden aufweisen, aber letztlich eigenständige Methoden darstellen. +\item Eine etwas andere Vorgehensweise des Reglerentwurfs besteht darin, den diskreten Regler direkt anhand eines diskreten Streckenmodells zu entwerfen. Dafür ist jetzt zuerst die \textbf{Strecke bzw. das kontinuierliche Streckenmodell} zu diskretisieren. Anschließend steht eine eigene Welt von Methoden für den diskreten Reglerentwurf zur Verfügung, welche oft Ähnlichkeiten mit klassischen kontinuierlichen Methoden aufweisen, aber letztlich eigenständige Methoden darstellen. \end{enumerate} Der Verdacht liegt nahe, dass man in beiden Fällen anstrebt, das kontinuierliche System \textit{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 kontinuierlichen Modells in Reihe geschaltet mit einem Halteglied erster Ordnung (ZOH, Zero-Order-Hold) nachbilden will. Das resultierende System heißt Abtastsystem, worauf in Kapitel \ref{sec:Regelung} eingegangen wird. Man erhält es durch ZOH-Diskretisierung (Kap. \ref{sec:ZOH-Diskretisierung}) der kontinuierlichen Strecke. Das so erzeugte diskrete System liefert Werte am Ausgang, welche exakt auf der kontinuierlichen Antwort des Streckenmodells liegen, wenn dieses durch ein Halteglied erster Ordnung (ZOH) erzeugte, mit der Periode der Abtastzeit stufenförmige Eingangssignale erhält. Diese Forderung der Exaktheit aus Perspektive des Reglers unterscheidet sich fundamental von der Aufgabe, den Regler \textit{möglichst gut} zu approximieren. Dazu werden in der Praxis die Tustin-Diskretisierung (Kap. \ref{sec:Tustin-Approximation}) oder Matched-Filter-Diskretisierung (Kap. \ref{sec:FOH-Diskretisierung}) verwendet, %oder FOH-Diskretisierung (Kap. \ref{sec:FOH-Diskretisierung}) verwendet welche auf "`schnellere"' diskrete Systeme führen, was auch für FOH-Diskretisierung (Kap. \ref{sec:FOH-Diskretisierung}) gelten müsste (so das Fazit des Autors). Der gesamte Bereich der Diskretisierung in der Regelungstechnik wird in der Videoserie \cite{BrianDouglas} sehr geeignet dargestellt. -In der digitalen Signalverarbeitung approximiert man analoge Filter u. a. aus den selben Motiven wie in der Regelungstechnik. Die klassischen Entwurfsverfahren im Kontinuierlichen können so eingesetzt werden, bevor zum Schluss die Transformation erfolgt. Andererseits wurden in beiden Disziplinen Methoden für den direkten Systementwurf diskreter Systeme aus dafür formulierten Anforderungen entwickelt. Die Approximation kontinuierlicher Systeme zielt typischerweise je nach Anwendung auf unterschiedliche Eigenschaften, wie den Frequenzgang oder die Impulsantwort bei der Impuls-Diskretisierung (Kap. \ref{sec:Impulse-Diskretisierung}) ab. Auch der Matched-Filter Ansatz, bei welchem Pole und Nullstellen des diskreten Systems gezielt gesetzt werden, spielt in der digitalen Signalverarbeitung eine größere Rolle. +In der digitalen Signalverarbeitung approximiert man analoge Filter u. a. aus den selben Motiven wie in der Regelungstechnik. Die klassischen Entwurfsverfahren im Kontinuierlichen können so eingesetzt werden, bevor zum Schluss die Transformation erfolgt. Andererseits wurden in beiden Disziplinen Methoden für den direkten Systementwurf diskreter Systeme aus dafür formulierten Anforderungen entwickelt. Die Approximation kontinuierlicher Systeme konzentriert sich je nach Ansatz auf unterschiedliche Eigenschaften, wie den Frequenzgang oder die Impulsantwort bei der Impuls-Diskretisierung (Kap. \ref{sec:Impulse-Diskretisierung}). Auch der Matched-Filter Ansatz, bei welchem Pole und Nullstellen des diskreten Systems gezielt gesetzt werden, spielt in der digitalen Signalverarbeitung eine größere Rolle. Weitere Motive zur Ermittlung diskreter Systeme können in der Analyse, Simulation, oder modellbasierten Diagnose technischer Systeme liege. Die Ermittlung eines Modells aus Messungen an einem realen System wird als Identifikation bezeichnet. So kann z. B. näherungsweise eine Impulsantwort gemessen werden oder der Eingang als stückweise konstant (ZOH-Modell) oder als lineare interpolierende Rampe (FOH-Modell) interpretiert werden. Ein diskretes Modell aus den Messwerten zu ermitteln, ist oft am Rechner der einfachere Weg, so dass bei Bedarf in einem zweiten Schritt in ein kontinuierliches Modell transformiert werden kann. -Besonders einfach sind die Ansätze der Euler-Diskretisierung Kap. \ref{sec:Euler-Diskretisierung} welche schnell auch auf nicht-lineare Modelle angewendet werden können. Nach Rekapitulation einiger wichtige Begriffe der Systemtheorie im Grundlagenkapitel \ref{sec:Grundlagen} sollen in Kapitel \ref{sec:Diskretisierungsmethoden} alle genannten Ansätze auch aus verschiedenen Blickwinkeln betrachtet werden, um einen systematischen Überblick zu ermöglichen. +Besonders einfach sind die Ansätze der Euler-Diskretisierung (Kap. \ref{sec:Euler-Diskretisierung}), welche schnell auch auf nicht-lineare Modelle angewendet werden können. Nach Rekapitulation einiger wichtige Begriffe der Systemtheorie im Grundlagenkapitel \ref{sec:Grundlagen} sollen in Kapitel \ref{sec:Diskretisierungsmethoden} alle genannten Ansätze auch aus verschiedenen Blickwinkeln betrachtet werden, um einen systematischen Überblick zu ermöglichen. -Die Ansätze können, für die hier behandelten lineare Systeme, sowohl im Zeit- als auch im Frequenzbereich betrachtet werden. Generell ist von Interesse, wie letztlich jede Methode die Integration im diskreten numerisch umsetzt. Nur einige Methoden lassen sich durch Ersetzen aller Integratoren durch diskrete Akkumulatoren umsetzten. Damit ist gemeint, dass in der jeweiligen Darstellung der Differenzialgleichung, z. B. als Signalflussgraph, jeder Integrator durch den entsprechenden Akkumulator ersetzt wird. Ob ein stabiles kontinuierliches System in ein stabiles diskretes transformiert wird, hängt von der Abbildung der Polstellen ab. Das diskrete System hat immer die selbe Anzahl an Polstellen. Für dynamische Eigenschaften sind aber auch die Nullstellen relevant. Diese können abgebildet werden oder neu bei der Diskretisierung entstehen. Diese und weitere wichtige Eigenschaften werden in Tabelle \ref{table:massen} aufgeführt. Ihre Bedeutung soll in den einzelnen Kapitel näher erläutert werden. Neben der Übertragungsfunktion (als Transformationspaar mit der z-Übertragungsfunktion) sollen auch Zustandsraummodelle betrachtet werden. +Die Ansätze können, für die hier behandelten lineare Systeme, sowohl im Zeit- als auch im Frequenzbereich betrachtet werden. Generell ist von Interesse, wie letztlich jede Methode die Integration im diskreten numerisch umsetzt. Nur einige Methoden lassen sich durch Ersetzen aller Integratoren durch diskrete Akkumulatoren der jeweiligen Art umsetzten. Damit ist gemeint, dass in der Darstellung der Differenzialgleichung, z. B. als Signalflussgraph, jeder Integrator durch den entsprechenden Akkumulator ersetzt wird. Ob ein stabiles kontinuierliches System in ein stabiles diskretes transformiert wird, hängt von der Abbildung der Polstellen ab. Das diskrete System hat immer die selbe Anzahl an Polstellen wie das kontinuierliche. Für dynamische Eigenschaften sind aber auch die Nullstellen relevant. Diese können abgebildet werden oder neu bei der Diskretisierung entstehen. Diese und weitere wichtige Eigenschaften werden in Tabelle \ref{table:massen} aufgeführt. Ihre Bedeutung soll in den einzelnen Kapitel näher erläutert werden. Neben der Übertragungsfunktion (als Transformationspaar mit der z-Übertragungsfunktion) sollen auch Zustandsraummodelle betrachtet werden. \begin{landscape} @@ -48,7 +48,12 @@ Die Ansätze können, für die hier behandelten lineare Systeme, sowohl im Zeit- \hline FOH & Nein &- & $\displaystyle \frac{T}{2} \frac{z+1}{z-1}$ &Rampe $r(kT)=r(t)$ &$z_i=e^{s_i T}$& &$=G_k(0)$\\ \hline - Mathched Filter & Nein & -&-&- &$z_i=e^{s_i T}$& $z_{i0}=e^{s_{i0} T}$ & setze $=G_k(0)$\\ + Mathched Filter & Nein & -&-&- &$z_i=e^{s_i T}$& + + \begin{tabular}{@{}c@{}} $z_{i0}=e^{s_{i0} T}~\&~ m-n-1$ \\Nullstellen bei $z_{i0}=-1$\end{tabular} + + + & setze $=G_k(0)$\\ %Holzplatte & 14 \\ %Drehzahlsensoren & 5 \\ \hline @@ -90,7 +95,11 @@ Damit lassen sich Systeme erzeugen, Darstellungen ineinander überführen und di \href{https://gitlab.cvh-server.de/jfalkenhain/diskretisierung-linearer-systeme/-/blob/master/Matlab/Diskretisierung_mit_MATLAB.m}{File on Git: 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), Impuls und Tustin. Bild \ref{fig:Sprungantwort} vergleicht die Sprungantworten der diskreten Systeme mit der des Originalsystems. +Hier wird ein System zweiter Ordnung (ohne Durchgriff, mit komplexen Eigenwerten) diskretisiert nach den Methoden ZOH (Zero-Order Hold), FOH (First-Order Hold), Impuls und Tustin. +\begin{verbatim} +sys_Tustin = c2d(sys,T,'Tustin') +\end{verbatim} +Bild \ref{fig:Sprungantwort} vergleicht die Sprungantworten der diskreten Systeme mit der des Originalsystems. Der Verlauf für das ZOH-approximierte System liegt zu den Zeitpunkten $kT$ exakt auf der kontinuierlichen Sprungantwort, da dieses Verfahren gerade so konzipiert ist. Tustin- und FOH-approximiertes System liefern eine ähnliche Sprungantwort, ohne exakt die kontinuierliche Kurve zu treffen. Da sie die gleiche statische Verstärkung (hier $k_{DC}=1$) wie das Originalsystem haben, verschwinden die Abweichungen nach Abklingen des Übergang. Dass dies für die Impuls-approximierte Sprungantwort nicht gilt, kann zu dem Schluss führen, dass Impuls-Approximation wenig geeignet ist, das kontinuierliche System zu approximieren. \begin{figure}[H] @@ -102,6 +111,7 @@ Der Verlauf für das ZOH-approximierte System liegt zu den Zeitpunkten $kT$ exak \end{figure} Aus einer anderen Perspektive wird aber lediglich ein anderer Aspekt, nämlich die Impulsantwort exakt nachgebildet, bzw. bei einer Identifikation aus Messdaten "`möglichst gut"' approximiert. Ein Vergleich der diskreten mit der kontinuierliche Impulsantwort zeigt Bild \ref{fig:Impulseantwort}. +Mit der Option 'least-squares' wird der Frequenzgang des diskreten Systems bis zur Nyquist-Frequenz möglichst gut an das kontinuierliche System angepasst. Diese Methode wird hier nicht weiter betrachtet. \textbf{Digitale Regelung.} Für die digitale Regelung ist zunächst ein Verständnis der Bedeutung der Abtastzeit fundamental. Klar ist, dass eine konstante Abtastzeit $T$ kleiner als die dominanten Zeitkonstanten des zu regelnden Prozesses sein muss. Der Regler muss schneller sein als der Prozess. Zur Realisierung benötigt man eine echtzeitfähige Hardware, welche sicherstellt, dass $T$ bis auf tolerierbare Schwankungen (Jitter) eingehalten wird. Eine zu langsame Hardware ist prinzipiell nicht einsetzbar, während die Echtzeitfähigkeit auch fordert, dass der Regel-Algorithmus nicht in zu kurzen Abständen aufgerufen wird. Echtzeitfähige Hardware kann z. B. durch einen priorisierten Interrupt realisiert werden, welcher mittels eines Timers (Uhr) mit der Periode $T$ durchgeführt wird, um den Regel-Algorithmus auszuführen. Der Algorithmus muss natürlich in der Zeit $T$ ausführbar sein, was bei den hier ermittelten diskreten Filtern mit konstanter Anzahl von Operationen leicht sichergestellt werden kann. Aufwendige Algorithmen wie numerische Optimierungen in der modellprädiktiven Regelung erfordern eine genauere Betrachtung. diff --git a/3_Euler-Diskretisierung.tex b/3_Euler-Diskretisierung.tex index fa7934cdaa9829d7534e109a206316800851ff03..08799223e275563b9717451b43a5c3f1b9eec9a9 100644 --- a/3_Euler-Diskretisierung.tex +++ b/3_Euler-Diskretisierung.tex @@ -32,6 +32,11 @@ Umstellen nach $y$ liefert die die Differenzengleichung für den Akkumulator: \begin{align*} y(k+1)&=y(k)+T u(k)\\ \end{align*} +Diskrete Integration wird manchmal auch nicht-rekursiv angegeben. Die Darstellung +\begin{align*} +y(k)=T \sum_{j=1}^k u(k-1) +\end{align*} +eignet sich aber wenig zur Implementierung und entspricht nur für den Anfangswert $y(0)=0$ der Differenzengleichung. \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$}; @@ -194,7 +199,10 @@ Durch Umkehrung der E/A-Signale des Differenziators oder durch Transformation de \path[->] (b) edge node {$u(k)$} (a); \path[->] (a) edge node {$y(k)$} (c); \end{tikzpicture} - +Für $y(0)=0$ entspricht das der nicht-rekursiven Darstellung +\begin{align*} +y(k)=T \sum_{j=1}^k u(k) +\end{align*} \textbf{Pol-/Nullstellentransformation.} Auch dieser Ansatzes stellt eine eindeutige Pol-Transformation dar. Die Transformation stabiler Pole aus der linken s-Halbebene führt in einen Kreis um $0.5$ im Einheitskreis, siehe Bild \ref{fig:s-zEuler2}. Das ist bezüglich der dynamischen Eigenschaften des Systems konservativ, soll heißen bestimmt dynamische Eigenschaften stabiler diskreter System können nicht aus stabilen kontinuierlichen Systemen abgeleitet werden. @@ -257,6 +265,8 @@ K\frac{\Pi_{i=1}^q (-s_{0i}T)}{\Pi_{i=1}^n (-s_iT)}\cdot (T)^{n-q} = G_d(1) \che \item Plausibilisiert man sich die Eigenwerttransformation anhand der stabilen Eigenwerte $\lambda_i(jv A_k)<0$ auf der reellen Achse, so kann das mit der speziellen Form der Diagonalmatrix für $\jv A_k$ gelingen. Es gilt dann $\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} +Mit der vorgeschlagenen Umformung erhält man\\ + ZRM-EB: \begin{empheq}[box=\fbox]{align*} %\boxed{ @@ -266,7 +276,12 @@ ZRM-EB: %} \end{empheq} %} - +alternativ ohne Term quadratischer Ordnung können +auch die Matrizen +\[ +\tilde{\jv B}_d = (\jv I-T\jv A_k)^{-1}T\jv B_k ~~~~~ \tilde{\jv C}_d =\jv C_k(\jv I-T\jv A_k)^{-1}\\ +\] +verwendet werden. \textbf{Beispiel.} Bei beiden Methoden (EF, EB) 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. diff --git a/5_Impulse-Diskretisierung.tex b/5_Impulse-Diskretisierung.tex index f4909502bcbf37feea1eddd599724d9964cac14f..fcf7973db28825efef3234465d20dca67d239a2f 100644 --- a/5_Impulse-Diskretisierung.tex +++ b/5_Impulse-Diskretisierung.tex @@ -14,13 +14,13 @@ In %\url{https://www.eit.hs-karlsruhe.de/mesysto/fileadmin/downloads/teilB/PDFs/Musterloesungen/Skript_TDS_Musterloesungen_Kapitel_6.pdf} %\url{https://www.eit.hs-karlsruhe.de/mesysto/quicklink/startseite.html} wird in der konkreten Beispielaufgabe darauf hingewiesen, dass die statische Verstärkung $K_S=G_{Impuls}(1)$ nicht der des kontinuierlichen Systems entspricht. -Allerdings nimmt die Diskrepanz mit auch mit größerer Auflösung, also kleinerem $T$ nicht ab. +Allerdings nimmt die Diskrepanz auch mit größerer Auflösung, also kleinerem $T$ nicht ab. Die Diskretisierung eines Durchgriffs oder statischen Anteils auf diese Weise ist wenig sinnvoll. Die Impulsantwort eines kontinuierlichen Systems erhält durch diesen den Anteil $g(t)=d\cdot \rho(0)+\tilde g(t)$. Bis auf diesen Impuls bei $t=0$ ist sie identisch mit $\tilde g(t)$, der Impulsantwort mit verschwindendem Durchgriff. Der (pseudo-) kontinuierliche Dirac-Impuls lässt sich wie eingangs erwähnt nicht sinnvoll abtasten. Bei Impuls-Diskretisierung könnte man den statischen Anteil einfach vom kontinuierlichen System übernehmen ($d_{d,1}=d_k$). Gilt $d_k =0$, so benötigt man den diskreten Durchgriff ($d_{d2}$) aber, um den Sprung der kontinuierlichen Impulsantwort bei $t=0$ im Diskreten abzubilden: \[ -g_d(0) = d_d \stackrel{!}{=} c^T_k b_k = g_k(0)~~\text{bei} d_k=0 +g_d(0) = d_d \stackrel{!}{=} c^T_k b_k = g_k(0)~~\text{bei}~ d_k=0 \] -Bei Ermittlung der ZRM-Parameter werden beide Anteile (entsprechen MATLAB\texttrademark-Implementierung) berücksichtigt, siehe später. +Bei Ermittlung der ZRM-Parameter werden beide Anteile (entsprechend MATLAB\texttrademark-Implementierung) berücksichtigt, siehe später. Die theoretische Ermittlung korrespondierender diskreter Systeme aus der kontinuierlichen Übertragungsfunktion kann zumeist direkt anhand von Korrespondenztabellen erfolgen: @@ -50,6 +50,12 @@ Die vierte Zeile von Tabelle \ref{table:impuls} entspricht dem PT$_{1}$-Glied, w \href{https://gitlab.cvh-server.de/jfalkenhain/diskretisierung-linearer-systeme/-/blob/master/Matlab/Diskretisierung_Impulse.m}{File on Git: Diskretisierung\_Impulse.m} +\textbf{In MATLAB\texttrademark~ ist zu beachten, dass der diskrete Impuls anders definiert ist. Mit +\[\rho_{MATLAB}(k) = \frac{1}{T} \rho(k) +\] +würde eine Impulsbreite von $T$ auf eine Einheitsfläche führen. In diesem Sinne erfolgt die Simulation mit} \verb!impulse! \textbf{und auch die Diskretisierung mit} \verb!c2d!, \textbf{wenn Impuls-Diskretisierung gewählt wird. Als Ergebnis erhält man +\[g_{d, MATLAB}(k) = T\cdot g_{d, Impulse}(k)~~.\] +Die Vorfaktoren heben sich bei Diskretisierung und Simulation auf, aber der Unterschied des diskreten Systems bei der theoretischen Betrachtung muss beachtet werden.} %\glqq{}{Boris ermöglicht die blockorientierte Simulation % dynamischer Systeme nahezu beliebiger Art}\grqq{} diff --git a/7_Tustin-Diskretisierung.tex b/7_Tustin-Diskretisierung.tex index e387debed55706bfc7c6250ba915c09396d9b4c6..2ce65fe054e154897df770465db09dfb5c298e2c 100644 --- a/7_Tustin-Diskretisierung.tex +++ b/7_Tustin-Diskretisierung.tex @@ -151,6 +151,14 @@ ZRM-Tustin: %} \end{empheq} %} +Alternativ können +auch die Matrizen +\[ +\tilde{\jv B}_d = (\jv I-T\jv A_k)^{-1}T\jv B_k ~~~~~ \tilde{\jv C}_d =\jv C_k(\jv I-T\jv A_k)^{-1}\\ +\] +verwendet werden. + + Diese Darstellung wird scheinbar nicht im MATLAB\texttrademark-Algorithmus verwendet, da sich jenseits der Systemmatrix unterschiedliche Transformationsergebnisse ergeben. Im Skript diff --git a/FB_Diskretisierung.pdf b/FB_Diskretisierung.pdf index 9cc554ed8bc7d6fae51efe0448aadd3db6954b86..539a1443b21877f7def943d1b5cfb8cc3105eb63 100644 Binary files a/FB_Diskretisierung.pdf and b/FB_Diskretisierung.pdf differ diff --git a/Matlab/Diskretisierung_Euler.m b/Matlab/Diskretisierung_Euler.m index b385f2ec140a773adb7acfe37f39dceb5f2de74d..d62463bc45ec3b02414113e12f02dc97827b4801 100644 --- a/Matlab/Diskretisierung_Euler.m +++ b/Matlab/Diskretisierung_Euler.m @@ -13,7 +13,7 @@ stsp_sys = ss(sys) figure(1), step(sys), hold on % Diskretisierung mit Abtastzeit T, mit zwei Forw/Back Methoden über ZRM -Tvec=[0.5, 0.1]; +Tvec=[1, 0.5, 0.25, 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) @@ -37,6 +37,14 @@ for T = Tvec sys_EB = ss(A_d, B_d, C_d, D_d, T); + %% ZRM-Variante2 + A_d2 = inv(eye(size(stsp_sys.A,1)) - T * stsp_sys.A) + B_d2 = A_d2 * T * stsp_sys.B + C_d2 = stsp_sys.C* A_d2 + D_d2 = T * stsp_sys.C * A_d2 * stsp_sys.B + stsp_sys.D + + sys_EBx = ss(A_d2, B_d2, C_d2, D_d2, T); + %% Euler Backward aus Übertragungsfunktion symbolich bilden syms s z; sym_syms = poly2sym(cell2mat(num),s) / poly2sym(cell2mat(den),s) @@ -52,7 +60,7 @@ for T = Tvec [y,t]=step(sys_EB); plot(t, y ,'*','color', 'cyan') [y,t]=step(sys_EB2); plot(t, y ,'--','color', 'blue') % % [y,t]=step(sys_EB2); plot(t, y ,'*','color', 'magenta') - pause + %pause end % Bild speichern diff --git a/Regelungstechnik.tex b/Regelungstechnik.tex index b9dd560241122186142ea0382bb0fa67bedbbea0..e9a584b39c41b31a073230226381cc00482ea397 100644 --- a/Regelungstechnik.tex +++ b/Regelungstechnik.tex @@ -2,18 +2,26 @@ \subsection{PID und PID-T1-Regler \label{sec:PID}} -\textbf{Kontinuierlicher Regler.} Regler ermitteln in der Regel die Stellgröße, weshalb $u(t)$ jetzt Ausgangssignal des Reglers ist, in Abhängigkeit vom Regelfehler \[e(t)=w(t)-y_m(t)~~.\] +\textbf{Kontinuierlicher Regler.} Regler ermitteln für gewöhnlich die Stellgröße, weshalb $u(t)$ jetzt Ausgangssignal des Reglers ist, in Abhängigkeit vom Regelfehler \[e(t)=w(t)-y_m(t)~~.\] Daraus folgt für den PID-Regler die Darstellung \begin{align} u_{PID}(t) = k_p \left(e(t)+\frac{1}{T_I} \int_0^t e(\tau) d \tau + T_D \dot e(t)\right) \end{align} \begin{align} -G_{PID}(s) = \frac{U(s)}{E(s)} = k_p(1+\frac{1}{T_Is}+T_D s) +G_{PID}(s) = \frac{U(s)}{E(s)} = k_p(1+\frac{1}{T_Is}+T_D s)~~. \end{align} Anstelle des nicht-kausalen Differenzierers wird auch die Reihenschaltung aus Differenzierer und Verzögerungsglied erster Ordnung (PT1) verwendet \begin{align} G_{PI-DT_1}(s) = \frac{U(s)}{E(s)} = k_p\left(1+\frac{1}{T_Is}+\frac{T_Ds}{1+T_Vs}\right)~~, \end{align} +bzw. +\begin{align} +u_{PI-DT1}(t) = k_p \left(e(t)+\frac{1}{T_I} \int_0^t e(\tau) d \tau\right) + u_D (t) +\end{align} +mit dem D-Anteil nach +\[ +u_D (t) + T_V \dot u_D (t) = k_p T_D \dot e(t)~~, +\] womit ein vierter Parameter $T_V$ festzulegen ist. Die Anteile P, I und D (bzw. DT1) können im diskreten wie im kontinuierlichen unabhängig voneinander in einer Parallelschaltung realisiert werden. Ändert sich die Führungsgröße $w(t)$ möglicherweise sprunghaft, z. B. durch manuelle Vorgabe, so bietet es sich an, diese nicht über den D-Anteil zu führen. In der parallelen Darstellung der Anteile lässt sich dies leicht berücksichtigen \begin{align} u_{PID*}(t) = k_p \left(e(t)+\frac{1}{T_I} \int_0^t e(\tau) d \tau + T_D (- \dot y_m(t))\right)~~, @@ -30,13 +38,13 @@ so dass hier nur die Messgröße über den D-Anteil geführt wird, siehe Bild \r \textbf{Diskretisierter Regler.} Unterschiedliche Diskretisierungsansätze führen auch bei identischer Struktur auf verschiedene Darstellungen des diskreten PID-Reglers in der Literatur. Schlägt man in \cite{lutz:2005} nach, findet man die Angabe zweier Typen von PID-Reglern, welche sich in der Integration unterscheiden: -\begin{align} -\text{Typ I:}~~ &G_I(z)=\frac{k_p}{T_I}\frac{T}{z-1}\\\label{eq:TypI} +\begin{align}\label{eq:TypI} +\text{Typ I:}~~ &G_I(z)=\frac{k_p}{T_I}\frac{T}{z-1} ~\Laplace~ u^I_k = u^I_{k-1} + k_p\frac{T}{T_I} e_{k-1}\\\label{eq:TypII} \text{Typ II:}~~ &G_I(z)=\frac{k_p}{T_I}\frac{Tz}{z-1} ~\Laplace~ u^I_k = u^I_{k-1} + k_p\frac{T}{T_I} e_k \end{align} Die verzögerte Integration des Typ I entspricht der Integration bei Forward-Euler-Diskretisierung oder ZOH-Diskretisierung. Ob diese hier geeignet ist, ist fraglich und der Fokus soll auf der Variante Typ II liegen, welche der schnelleren Integration bei Backward-Euler-Diskretisierung entspricht. Der D-Anteil wird in beiden Fällen über den Differenzenquotienten \begin{align} -u_k^D = k_P T_d\frac{e_k-e_{k-1}}{T} +u_k^D = k_P T_D\frac{e_k-e_{k-1}}{T} \end{align} gebildet (entsprechend Backward-Euler-Diskretisierung) und mit dem P-Anteil komplettiert: \begin{align} @@ -45,7 +53,7 @@ u_k^P = k_P e_k womit sich der angegebene Regler (Typ II) zu \begin{align} u_k &=u_k^P + u_k^I + u_k^D\\ - &=k_p(e_k + T_d\frac{e_k-e_{k-1}}{T} +\frac{T}{T_I}e_k) + \underbrace{u^I_{k-1}}_{=u_{k-1}-u^P_{k-1}-u^D_{k-1}}\\ + &=k_p(e_k + T_D\frac{e_k-e_{k-1}}{T} +\frac{T}{T_I}e_k) + \underbrace{u^I_{k-1}}_{=u_{k-1}-u^P_{k-1}-u^D_{k-1}}\\ &= u_{k-1} + k_p\left([1 +\frac{T}{T_I} + \frac{T_D}{T}]e_k -[1+2\frac{T_D}{T}]e_{k-1} + \frac{T_D}{T}e_{k-2}\right) \end{align} Tabelliert erhält man in \cite{lutz:2005} für beide Typen die Koeffizienten der Übertragungsfunktion für den \textit{Stellungsalgorithmus} des PID-Reglers sowie der Spezialfälle. @@ -60,15 +68,47 @@ s\equiv \frac{z-1}{zT}~~\text{(Backward-Euler)} \end{align} diskretisiert bleibt. -In \cite{unbehauen2000RT2} wird der PID-T1-Regler angegeben. Dabei sei es auch hier von Vorteil, das PT1 Glied mit der Entsprechung +In \cite{unbehauen2000RT2} wird der PI-DT1-Regler angegeben. Dabei sei es auch hier von Vorteil, das +DT1 Glied mit der Entsprechung nach Gl. \eqref{eq:BWE} zu diskretisieren: \begin{align}\label{eq:PIDT1} -G_{PI-DT1}(z) = kp\left(1 + \frac{T}{2T_I} \frac{z+1}{z-1} +\frac{T_D}{T} \frac{z-1}{z(1+T_V/T)-T_V/T} \right) +\text{Typ 1:}~~G_{PI-DT1}(z) = kp\left(1 + \frac{T}{2T_I} \frac{z+1}{z-1} +\frac{T_D}{T} \frac{z-1}{z(1+T_V/T)-T_V/T} \right) \end{align} Für $T_V\rightarrow 0$ geht der Regler in die PID-Variante Gl. \eqref{eq:PIDLunze} über. -In \cite{Isermann} wird beispielsweise zunächst der PID-Regler vom Typ I \eqref{eq:TypI} angegeben mit der als Rechteckintegration bezeichneten verzögerten Integration (S. 108). Anschließend wird die Trapezintegration vorgeschlagen und Regler Typ III angegeben (S. 110). Unter dem Title "`PID-Regelalgorithmus durch Z-Transformation"' (S. 122) wird der ZOH-diskretisierte PI-DT1-Regler angegeben mit dem Hinweis auf "`gültige Parameter"' bei großen Abtastzeiten. Welche besondere Eignung der Regler haben könnte, auch wenn er bei einem vorgeschalteten ZOH-Glied vor die kontinuierliche Version dessen kontinuierlichen Ausgang exakt trifft, bleibt unklar. Im Folgenden (S. 126) wird der PI-DT1-Regler ensprechend Tustin-Diskretisierung approximiert und die Koeffizienten der rekursiven Differenzengleichung angegeben. +In \cite{Isermann} wird beispielsweise zunächst der PID-Regler vom Typ I Gl. \eqref{eq:TypI} angegeben mit der als Rechteckintegration bezeichneten verzögerten Integration (S. 108). Anschließend wird die Trapezintegration vorgeschlagen und Regler Typ III angegeben (S. 110). Unter dem Title "`PID-Regelalgorithmus durch Z-Transformation"' (S. 122) wird der ZOH-diskretisierte PI-DT1-Regler (Typ 2) angegeben mit dem Hinweis auf "`gültige Parameter"' bei großen Abtastzeiten. Welche besondere Eignung der Regler haben könnte, auch wenn er bei einem vorgeschalteten ZOH-Glied vor die kontinuierliche Version dessen kontinuierlichen Ausgang exakt trifft, bleibt unklar. Im Folgenden (S. 126) wird der PI-DT1-Regler (Typ 3) entsprechend Tustin-Diskretisierung approximiert und die Koeffizienten der rekursiven Differenzengleichung angegeben. Tabelle \ref{table:PIDs} zeigt hier die Übertragungsfunktion. + + +\begin{table}[H] + \caption{Diskrete PID- und PI-DT1-Regler% + \label{table:PIDs}} + %\medskip + \begin{center} + \begin{tabular}{l|c|c|c|r} + & Quelle & $G(s)$ \\%& Integrator & D(T1)-Anteil \\ + \hline + Typ I & \cite{lutz:2005} & $k_p( 1+\frac{T}{T_I}\frac{1}{z-1} + \frac{T_D}{T}\frac{z-1}{z})$\\ % &FE bzw. ZOH & BE \\ + \hline + Typ II & \cite{lutz:2005} & $k_p( 1+\frac{T}{T_I}\frac{z}{z-1} + \frac{T_D}{T}\frac{z-1}{z})$\\ + \hline + Typ III & \cite{Lunze16b} & $k_p( 1+\frac{T}{2T_I}\frac{z+1}{z-1} + \frac{T_D}{T}\frac{z-1}{z})$ \\ + \hline + \hline + Typ 1 & \cite{unbehauen2000RT2} & $kp\left(1 + \frac{T}{2T_I} \frac{z+1}{z-1} +\frac{T_D}{T} \frac{z-1}{z(1+T_V/T)-T_V/T} \right) $ \\ + \hline + Typ 2 & \cite{Isermann} & $kp\left(1 + \frac{T}{T_I} \frac{1}{z-1} +\frac{T_D}{T} \frac{z-1}{z-e^{-T/T_V}} \right) $ \\ + \hline + Typ 3 & \cite{Isermann} & $kp\left(1 + \frac{T}{T_I} \frac{z+1}{2(z-1)} +\frac{2 T_D(z-1)}{(T+2T_V)z + (T-2T_V)} \right) $ \\ + \hline + Typ 4 & \cite{documentationsimulation} & $kp\left(1 +\frac{T}{T_I}\frac{1}{z-1} + \frac{T_D}{T} \frac{z-1}{1+{-T/T_V}(z-1)} \right) $ \\ + \hline + + \end{tabular} + \end{center} +\end{table} + +In \cite{documentationsimulation}\texttrademark~ steht der Block 'PID-Controller' zur Verfügung mit den Varianten kontinuierlich und diskret. Die kontinuierliche Simulation greift auf den jeweils eingestellten numerischen Solver zu, während die diskrete Variante sich nach der eingestellten (oder geerbten) Abtastzeit richtet und entsprechend der Übertragungsfunktion Typ 4 nach Tabelle \ref{table:PIDs} arbeitet. Die eingestellten kontinuierlichen Parameter $P=K_P$, $I=1/T_I$, $D= T_D$ und $N=1/T_V$ werden automatisch für den diskreten PI-DT1-Regler übernommen. Die Diskretisierung der dynamischen Anteile erfolgt jeweils nach dem FE-Ansatz (Forward Euler). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Diskretisierung und Implementierung allgemeiner Regler diff --git a/hauptdatei.bib b/hauptdatei.bib index 02b26bce9f87260832fbd1e54e8262cf7c257bae..f47342be9de4784a90c0ae0535a0fa24988e3983 100644 --- a/hauptdatei.bib +++ b/hauptdatei.bib @@ -124,3 +124,11 @@ note = {\url{https://en.wikipedia.org/wiki/Natural_logarithm}} title = {{Taschenbuch der Regelungstechnik}}, year = 2005 } + +@misc{documentationsimulation, + title={Simulation and Model-Based Design}, + author={MATLAB/Simulink, Documentation}, + publisher={MathWorks}, + year={2021}, + url={https://www.mathworks.com/products/simulink.html} +} \ No newline at end of file