Entwicklung eines geregelten Wasserstandssystems für die Hochschullehre: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Denim-mike.hilz@stud.hshl.de (Diskussion | Beiträge)
Denim-mike.hilz@stud.hshl.de (Diskussion | Beiträge)
 
(73 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{| class="wikitable"
{| class="wikitable"
|-
|-
|'''Autor:''' || [[Benutzer: Denim-Mike Hilz| Denim Hilz]]
|'''Autor:''' || [[Benutzer: Denim-Mike Hilz| Denim Hilz]]
|-
|-
| '''Erstprüfer:''' || [[Benutzer:Prof._Mirek_Göbel| Prof. Göbel]]
| '''Erstprüfer:''' || [[Benutzer:Prof._Mirek_Göbel| Prof. Göbel]]
|-
|-
| '''Zweitprüfer:''' || Prof. Tikhomirov
| '''Zweitprüfer:''' || Prof. Tikhomirov
|-
|-
| '''Wissenschaftliche Unterstützung:''' || [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]]
| '''Wissenschaftliche Unterstützung:''' || [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]]
|-
|-
|}
|}


<div style="font-size: 20pt; font-weight: bold; color: black; margin-top: 10px; margin-left: 0; margin-right: 20px; text-align: center;">
[[Datei:Rahmenaufbau Plexiglas-Gehäuse.jpg|500px|thumb|right|'''Abbildung 1''': Wasserstandssystem <ref name="e.D.">eigene Darstellung</ref>]] 
work in progress
 
</div>
== '''Einleitung''' == 
Dieser Wiki-Artikel stellt die Masterarbeit 
 
<div style="font-size: 11pt; font-weight: bold; color: black; margin-top: 10px; margin-left: 0; margin-right: 20px; text-align: center;">
Modellierung, Simulation und Echtzeit-Implementierung eines geregelten Wasserstandssystems mit MATLAB/Simulink und Mikrocontrollertechnik<br> 
für praxisorientierte Hochschuldemonstrationen im Rahmen der regelungstechnischen Lehre 
</div> 
 
vor. Dabei werden Planung, Entwicklung und Umsetzung aufgezeigt sowie die erzielten Ergebnisse dokumentiert. 
 
Die '''Regelungstechnik''' ist eine Kernkompetenz für Ingenieurinnen und Ingenieure, da sie Steuerung und Regelung technischer Prozesse vermittelt. Um die oft abstrakte Theorie greifbarer zu machen, eignen sich praxisnahe Werkzeuge wie '''MATLAB/Simulink''' und '''Mikrocontrollertechnik'''. 
 
Ziel der Masterarbeit war die Entwicklung eines didaktisch einsetzbaren Wasserstandssystems für die '''regelungstechnische Lehre''' an der '''Hochschule Hamm-Lippstadt (HSHL)''', um Theorie und Praxis zu verknüpfen. 
 
Die entwickelten Regelungskonzepte basieren auf einem grundlegenden Schema der '''Füllstandsregelung''' (Level Control, LC), wie in der folgenden Abbildung dargestellt. Ziel ist es, den Wasserstand eines Behälters auf eine Sollhöhe 𝑤 (z. B. 1 m) zu bringen und dort zu halten. Die Stellgröße 𝑢 beeinflusst den Zufluss, ein Sensor misst die Ist-Höhe 𝑦. Externe Einflüsse wie Wasserentnahme wirken als Störung 𝑑 und müssen ausgeglichen werden. 
 
Solche Systeme sind nicht nur für Lehrzwecke relevant, sondern auch in der Industrie – etwa zur Vermeidung von Überlauf, Trockenlauf oder unerwünschten Schwankungen. Die Planung und Entwicklung orientiert sich an diesem Grundschema. <ref name="lunze2020">Lunze, J.: Regelungstechnik 1: Systemtheoretische Grundlagen, Analyse und Entwurf einschleifiger Regelungen. Springer-Verlag, 2020. – ISBN 978-3-662-60746-6</ref> 
 
<div style="text-align: center;"> 
[[Datei:Beispielhafter Aufbau eines Wasserstandssystems.png|500px|thumb|center|'''Abbildung 2''': Beispielhafter Aufbau eines Wasserstandssystems <ref name="lunze2020"/>]] 
</div
 
Die Masterarbeit umfasst: 
 
* die '''Modellierung''' des Tanksystems, 
* die '''Simulation''' des physikalischen Verhaltens und der Reglerauslegung mit MATLAB/Simulink, 
* sowie die '''Echtzeit-Implementierung''' des Reglers auf einem Mikrocontroller. 
 
Durch die Integration von '''MATLAB/Simulink''' und '''Mikrocontrollertechnik''' wird eine enge Verbindung zu den im Studium vermittelten Lehrinhalten geschaffen. 
 
== '''Theoretische Grundlagen''' ==
 
In diesem Abschnitt wird das grundlegende mathematische Modell und die Übertragungsfunktion des Wasserstandssystems dargestellt. Die Herleitung der Übertragungsfunktion des zylindrischen Wassertanks sowie die Auswahl des geeigneten Reglers bilden die Basis für die Simulation und Regelung des Systems. Das Vorgehen orientiert sich an der Formelsammlung aus der Lehrveranstaltung Mess- und Regelungstechnik.
 
=== '''Übertragungsfunktion des Wassertanks''' ===
 
Für die Regler-Auswahl und die Simulation ist es wichtig, das Verhältnis vom Ausgangssignal zum Eingangssignal des Systems, also die Übertragungsfunktion, zu kennen <ref name="lunze2020"/>. Der für die Umsetzung gewählte Wassertank besitzt eine zylindrische Form. Der Wasserstand im Tank wird direkt vom Volumenstrom der Pumpe beeinflusst. Die Übertragungsfunktion lässt sich somit aus der geometrischen Berechnung des Volumens des Wassertanks herleiten.
 
Das Vorgehen zur Bestimmung der Übertragungsfunktion orientiert sich an der Vorlesung Systemtheorie, siehe <ref name="Goebel2023_ST">Göbel, M.: ''Systemtheorie: Vorlesung.'' Hochschule Hamm-Lippstadt, 2023.</ref>.
 
Die Volumenberechnung erfolgt gemäß <ref name="Kersten2017">Kersten, P.: ''Mechanik – smart gelöst: Einstieg in die Physik mit Wolfram/Alpha, MATLAB und Excel.'' Springer-Verlag, 2017. – ISBN 978-3-662-53706-0</ref> nach folgender Formel:
 
<math>
V = A \cdot h
</math>
 
Mit:
 
* \(V\): Volumen des Wassers im Tank in \(\mathrm{m}^3\) 
* \(A\): Querschnittsfläche des Tanks in \(\mathrm{m}^2\) 
* \(h(t)\): Wasserstand im Tank in \(\mathrm{m}\)
 
Da sich der Wasserstand durch den Zu- bzw. Abfluss verändert, ergibt sich durch Ableitung der Formel nach der Zeit folgende Differentialgleichung (DGL):
 
<math>
\frac{dV}{dt} = A \cdot \frac{dh}{dt}
</math>
 
Mit:
 
* <math>\dot{V}</math>: zeitliche Änderung des Volumens in \(\mathrm{m}^3\,\mathrm{s}^{-1}\) 
* <math>\dot{h}</math>: zeitliche Änderung des Wasserstands in \(\mathrm{m}\,\mathrm{s}^{-1}\)
 
Mittels Laplace-Transformation ergibt sich die Gleichung:
 
<math>
\dot{V}(s) = A \cdot s \cdot h(s)
</math>
 
Da <math>\dot{V}</math> (andere Bezeichnung für den Volumenstrom \(Q\)) bereits eine Flussgröße ist, bleibt <math>\dot{V}</math> im Laplace-Bereich stehen und wird nicht mit \(s\) multipliziert.
 
Die Übertragungsfunktion kann aus obiger Gleichung hergeleitet werden und ergibt sich aus dem Verhältnis von Ausgang zu Eingang:
 
<math>
G(s) = \frac{h(s)}{\dot{V}(s)} = \frac{1}{A \cdot s}
</math>.
 
=== '''Regler-Auswahl''' ===
 
Die Regelung mittels PID-Regler findet in der Praxis sowie in der regelungstechnischen Lehre an der HSHL häufig Anwendung. Aufgrund dieser Relevanz wurde für das vorliegende Projekt eine Regelung mit dem PID-Regler ausgewählt.
 
Im Folgenden ist für die PID-Anteile die Berechnung des stationären Endwertes \(x_{stat}\) der Führungsübertragungsfunktion \(G_W\) und der Störübertragungsfunktion \(G_Z\) bei einem Einheitssprung aufgezeigt.
 
Ziel der Untersuchung ist es herauszufinden, bei welcher Kombination der Regelanteile die Regelgröße im stationären Zustand exakt der Führungsgröße entspricht und äußere Störungen kompensiert werden. Das bedeutet:
 
* Für \(G_W\) sollte im Idealfall \(x_{stat} = 1\) gelten
* Für \(G_Z\) sollte im Idealfall \(x_{stat} = 0\) gelten <ref name="Zacher2024">Zacher, S.; Reuter, M.: ''Regelungstechnik für Ingenieure: Analyse, Simulation und Entwurf von Regelkreisen.'' Springer-Verlag, 2024. – ISBN 978-3-658-45897-3</ref>
 
Die Berechnungen für P, PI, PD und PID zeigen, dass nur PI und PID bei einem Einheitssprung die beiden Bedingungen erfüllen.
 
Die Herleitung der Führungs- und Störübertragungsfunktion für den PI-Regler ist an dieser Stelle aufgezeigt und orientiert sich an dem Vorgehen aus der Lehrveranstaltung Regelungstechnische Systeme, siehe <ref name="Goebel2023_RS">Göbel, M.: ''Regelungstechnische Systeme: Vorlesung.'' Hochschule Hamm-Lippstadt, 2023.</ref>.
 
==== ''Führungsübertragungsfunktion'' ====
 
<math>
G_W = x_w = \frac{G_R \cdot G_S}{1 + G_M \cdot G_R \cdot G_S}
</math>


== Einleitung ==
wobei
Dieser Wiki-Artikel stellt die Masterarbeit


<div style="font-size: 11pt; font-weight: bold; color: black; margin-top: 10px; margin-left: 0; margin-right: 20px; text-align: center;">
* \(G_M = 1\)
Modellierung, Simulation und Echtzeit-Implementierung eines geregelten Wasserstandssystems mit MATLAB/Simulink und Mikrocontrollertechnik<br>
* \(G_S = \frac{1}{A \cdot s}\)
für praxisorientierte Hochschuldemonstrationen im Rahmen der regelungstechnischen Lehre
* \(G_R = K_P + \frac{K_I}{s}\)
</div>


vor. Dabei werden Planung, Entwicklung und Umsetzung aufgezeigt und die erzielten Ergebnisse dokumentiert.
Es gilt:


Die '''Regelungstechnik''' ist eine zentrale Kernkompetenz für angehende Ingenieurinnen und Ingenieure, da sie die Steuerung und Regelung technischer Prozesse vermittelt. Um die oft abstrakte Theorie greifbarer zu machen, eignet sich der Einsatz praxisnaher Werkzeuge wie '''MATLAB/Simulink''' und '''Mikrocontrollertechnik'''.
<math>
G_{WPI} = \frac{\left(K_P + \frac{K_I}{s}\right) \cdot \frac{1}{A \cdot s}}{1 + 1 \cdot \left(K_P + \frac{K_I}{s}\right) \cdot \frac{1}{A \cdot s}}
= \frac{K_P \cdot \frac{1}{A \cdot s} + K_I \cdot \frac{1}{A \cdot s^2}}{1 + K_P \cdot \frac{1}{A \cdot s} + K_I \cdot \frac{1}{A \cdot s^2}} \cdot \frac{A \cdot s^2}{A \cdot s^2}
= \frac{K_P s + K_I}{A s^2 + K_P s + K_I}
</math>


Ziel der Masterarbeit war die Entwicklung eines didaktisch einsetzbaren Wasserstandssystems für die '''regelungstechnische Lehre''' an der '''Hochschule Hamm-Lippstadt (HSHL)''', um Theorie und Praxis miteinander zu verknüpfen.
Der stationäre Endwert ergibt sich zu:


Die entwickelten Regelungskonzepte basieren auf einem grundlegenden Schema der '''Füllstandsregelung''' (Level Control, LC), wie es in Abbildung '''??''' dargestellt ist. Ziel der Regelung ist es, den Wasserstand eines Behälters auf eine vorgegebene Sollhöhe 𝑤 (z. B. 1 m) zu bringen und dort zu halten. Die Stellgröße 𝑢 beeinflusst den Zufluss, während ein Sensor die aktuelle Ist-Höhe 𝑦 misst. Externe Einflüsse wie eine Wasserentnahme wirken als Störung 𝑑 auf das System und müssen durch die Regelung ausgeglichen werden.
<math>
x_{stat} = \lim_{t \to \infty} x(t) = \lim_{s \to 0} G_{WPI}(s) = \frac{K_P \cdot 0 + K_I}{A \cdot 0^2 + K_P \cdot 0 + K_I} = 1
</math>


Solche Regelungssysteme sind nicht nur für Lehrzwecke relevant, sondern auch in der Industrie weit verbreitet – etwa zur Vermeidung von Überlauf, Trockenlauf oder unerwünschten Füllstandsschwankungen. Die Planung und Entwicklung des Systems orientiert sich an diesem Grundschema. '''Quelle??''' ''Keine Ahnung''
Zur Vereinfachung der Regler-Auslegung wurde sich im weiteren Verlauf für den PI-Regler entschieden. Die PI-Regeleinrichtung ermöglicht die Erreichung des vorgegebenen Sollwertes bei gleichzeitiger Kompensationsfähigkeit von auftretenden Störungen <ref name="Zacher2024"/>.


Das Masterarbeit umfasst:
==== ''Störübertragungsfunktion'' ====


* die '''Modellierung''' des Tanksystems,
<math>
* die '''Simulation''' des physikalischen Verhaltens und der Auslegung des Reglers mit MATLAB/Simulink,
G_Z = x_z = \frac{G_S}{1 + G_M \cdot G_R \cdot G_S}
* sowie die '''Echtzeit-Implementierung''' des Reglers auf einem Mikrocontroller.
</math>


Durch die Integration von '''MATLAB/Simulink''' und '''Mikrocontrollertechnik''' wird eine enge Verbindung zu den im Studium vermittelten Lehrinhalten geschaffen.
wobei die gleichen Werte für \(G_M, G_S, G_R\) gelten wie oben.


== Theoretische Grundlagen ==
<math>
G_{ZPI} = \frac{\frac{1}{A \cdot s}}{1 + 1 \cdot \left(K_P + \frac{K_I}{s}\right) \cdot \frac{1}{A \cdot s}}
= \frac{\frac{1}{A \cdot s}}{1 + K_P \cdot \frac{1}{A \cdot s} + K_I \cdot \frac{1}{A \cdot s^2}} \cdot \frac{A \cdot s^2}{A \cdot s^2}
= \frac{s}{A s^2 + K_P s + K_I}
</math>


== Systementwurf und Umsetzung ==
Der stationäre Endwert ergibt sich zu:


Basierend auf den dargelegten theoretischen Grundlagen wird in diesem Kapitel die Modellierung, Simulation und Umsetzung des geregelten Wasserstandssystems beschrieben.
<math>
x_{stat} = \lim_{t \to \infty} x(t) = \lim_{s \to 0} G_{ZPI}(s) = \frac{0}{A \cdot 0^2 + K_P \cdot 0 + K_I} = 0
</math>


=== Regelkreis ===
==== ''Systemverhalten bei geschlossenem Regelkreis'' ====


Zur Veranschaulichung des grundsätzlichen Funktionsprinzips dient der schematische Aufbau eines geschlossenen Regelkreises. Die Regelung verfolgt das Ziel, den Wasserstand eines Primärtanks auf eine vom Benutzer vorgegebene Sollhöhe 𝒉ₛₒₗₗ einzustellen und auch bei externen Störungen konstant zu halten.
Das Systemverhalten bei geschlossenem Regelkreis kann anhand der Führungsübertragungsfunktion des P-Reglers aufgezeigt werden. Der P-Regler verstärkt lediglich und fügt keine eigene Dynamik hinzu <ref name="Goebel2023_ST"/>. Die Funktion ergibt sich zu:


<math>
G_{WP} = \frac{K_P \cdot \frac{1}{A \cdot s}}{1 + 1 \cdot K_P \cdot \frac{1}{A \cdot s}} \cdot \frac{A \cdot s}{A \cdot s} = \frac{K_P}{A \cdot s + K_P}
</math>


'''ABBILDUNG REGELKREIS'''
Es zeigt sich, dass das Verhalten dem eines PT1-Systems <ref name="Goebel2023_ST"/> gleicht mit


<math>
K_P \approx K_P; \quad T \cdot s \approx A \cdot s; \quad 1 \approx K_P
</math>.


* Der Benutzer gibt über ein Potentiometer die gewünschte '''Sollhöhe 𝒉ₛₒₗₗ''' vor (Führungsgröße).
== '''Systementwurf und Umsetzung''' == 
* Die Differenz zur gemessenen '''Ist-Höhe 𝒉ₘₑₛₛ''' (Messgröße) ergibt den '''Regelfehler Δ𝒉''', welcher vom Mikrocontroller (Arduino) ausgewertet wird.
* Ein '''PI-Regler''' berechnet auf dieser Basis ein Ausgangssignal, mit dem zwei Pumpen angesteuert werden für den geregelten Zu- und Abfluss.
* Die Ansteuerung erfolgt über '''PWM-Signale''', die über H-Brücken an die Pumpen weitergegeben werden (Stellgröße 1).
* Daraus ergibt sich ein resultierender '''Volumenstrom 𝑽ₛₜₑₗₗ''' (Stellgröße 2), welcher den Wasserstand im Tank verändert.
* Eine gezielt einstellbare '''Störung 𝑽ₛₜₒₑᵣ''', die über ein zweites Potentiometer den Abfluss ermöglicht.


Der Wasserstand wird kontinuierlich gemessen und mit dem Sollwert verglichen. Ziel ist es, die '''Regelgröße 𝒉_ᵢₛₜ''' trotz Störeinflüssen stabil bei '''𝒉ₛₒₗₗ''' zu halten.
Dieses Kapitel beschreibt Modellierung, Simulation und Umsetzung des geregelten Wasserstandssystems basierend auf den theoretischen Grundlagen.


=== Konzeptskizze ===
=== '''Regelkreis''' ===


Zur strukturierten Auswahl und Bewertung möglicher Systemkomponenten wurde ein '''morphologischer Kasten''' verwendet (siehe Anhang '''Masterarbeit'''). Dabei wurden verschiedene Optionen je Systemfunktion gegenübergestellt und anhand von Kriterien wie Kompatibilität, Kosten, Verfügbarkeit und Benutzerfreundlichkeit bewertet.
Zur Veranschaulichung dient der schematische Aufbau eines geschlossenen Regelkreises (Abbildung 3). Ziel ist, den Wasserstand eines Primärtanks auf eine vorgegebene Sollhöhe 𝒉ₛₒₗₗ einzustellen und bei Störungen konstant zu halten.


Ausgewählte Kriterien waren unter anderem:
Der Regelkreis zeigt folgende Funktionen:
* Der Benutzer gibt über ein Potentiometer die Sollhöhe 𝒉ₛₒₗₗ (Führungsgröße) vor. 
* Die Differenz zur gemessenen Ist-Höhe 𝒉ₘₑₛₛ (Messgröße) ergibt den Regelfehler Δ𝒉, der vom Mikrocontroller (Arduino) ausgewertet wird. 
* Ein '''PI-Regler''' berechnet ein Ausgangssignal zur Ansteuerung von zwei Pumpen für geregelten Zu- und Abfluss. 
* Die Ansteuerung erfolgt über '''PWM-Signale''', die über H-Brücken an die Pumpen weitergegeben werden (Stellgröße 1). 
* Daraus entsteht ein resultierender Volumenstrom 𝑽ₛₜₑₗₗ (Stellgröße 2), der den Wasserstand verändert. 
* Eine einstellbare '''Störung 𝑽ₛₜₒₑᵣ''', über ein zweites Potentiometer gesteuert, ermöglicht den Abfluss. 


* Kompatibilität (Anbindung über Arduino und MATLAB),
<div style="text-align:center;">[[Datei:Schematischer Regelkreis des Wasserstandssystems.png|700px|thumb|center|'''Abbildung 3:''' Schematischer Regelkreis des Wasserstandssystems i.A.a. <ref name="lunze2020"/>]]</div> 
* Verfügbarkeit,
* Kosten,
* sowie Anwenderfreundlichkeit (z. B. für Besucher des MINT-Erlebnistag).


Die folgende Abbildung zeigt die daraus resultierende '''Konzeptskizze'''.
=== '''Konzeptskizze''' === 


Zur Auswahl und Bewertung möglicher Systemkomponenten wurde ein '''morphologischer Kasten''' verwendet (siehe Anhang '''Masterarbeit'''). Verschiedene Optionen wurden nach Kriterien wie Kompatibilität, Kosten, Verfügbarkeit und Benutzerfreundlichkeit bewertet. 


'''ABBILDUNG Konzeptskizze'''
Ausgewählte Kriterien waren Kompatibilität (Arduino/MATLAB-Anbindung), Verfügbarkeit, Kosten und Anwenderfreundlichkeit (z. B. für Besucher des MINT-Erlebnistags). 


Abbildung 4 zeigt die Konzeptskizze. Der Aufbau: 


* Zwei Glaszylinder aus Borosilikatglas für '''Primärtank''' und '''Sekundärtank''' , verbunden über Silikonschläuche,
* Zwei Glaszylinder aus Borosilikatglas als Primär- und Sekundärtank, verbunden durch Silikonschläuche,
* '''Pumpe 1''': geregelter Zufluss (blau)<br>
* '''Pumpe 1''': geregelter Zufluss (blau)
* '''Pumpe 2''': geregelter Abfluss (rot)<br>
* '''Pumpe 2''': geregelter Abfluss (rot)
* '''Pumpe 3''': manuelle Störung (orange)<br>
* '''Pumpe 3''': manuelle Störung (orange)
* '''Drucksensor''' zur Wasserstandsmessung,
* Drucksensor zur Wasserstandsmessung,
* '''Zwei Drehpotentiometer''' zur Eingabe von Sollwert und Störung (grün/rot),
* Zwei Drehpotentiometer zur Eingabe von Sollwert und Störung (grün/rot),
* '''LCD-Anzeige''' zur Darstellung von Sollwert, Istwert und Störung,
* LCD-Anzeige zur Darstellung von Sollwert, Istwert und Störung,
* '''Arduino-Controller''' mit H-Brücken zur Ansteuerung der Pumpen,
* Arduino-Controller mit H-Brücken zur Pumpensteuerung,
* '''Montage''' auf einem Aluminiumrahmen mit Plexiglas-Gehäuse.
* Montage auf Aluminiumrahmen mit Plexiglas-Gehäuse.


Der Wasserzufluss erfolgt von oben, der Abfluss über den Tankboden. Die Struktur erlaubt eine gute Sichtbarkeit und leichte Zugänglichkeit aller Komponenten, was insbesondere im Hochschulkontext von Vorteil ist.
<div style="text-align:center;">[[Datei:Konzeptskizze des Wasserstandssystems.png|400px|thumb|center|'''Abbildung 4:''' Konzeptskizze des Wasserstandssystems <ref name="e.D."/>]]</div> 


Aufbauend auf dem Entwurf wurde das System für eine strukturierte Umsetzung in die Komponenten '''''Rahmenkonstruktion''''', '''''Wassertanksystem''''', '''''Benutzereingabe_Hoehe''''', '''''Benutzereingabe_Stoerung''''', '''''Pumpe_Regelung''''', '''''Pumpe_Stoerung''''', '''''Regelung''''', '''''Sensor''''' und '''''I2C_LCD_20x4''''' unterteilt.
Der Wasserzufluss erfolgt von oben, der Abfluss über den Tankboden. Die Konstruktion ermöglicht gute Sichtbarkeit und leichte Zugänglichkeit – besonders vorteilhaft im Hochschulkontext.


=== Simulation ===
Das System ist in folgende Komponenten unterteilt:
Die Simulation des Wasserstandssystems wurde in MATLAB/Simulink durchgeführt und diente als Grundlage für die '''Auslegung des Reglers''', das '''Systemverständnis''' und die '''Bewertung des dynamischen Verhaltens''' bei Sollwertänderungen und Störungen.
1. '''Wassertanksystem'''
2. '''Benutzereingabe_Hoehe'''
3. '''Benutzereingabe_Stoerung'''
4. '''Pumpe_Regelung'''
5. '''Pumpe_Stoerung'''
6. '''Regelung'''
7. '''Sensor'''
8. '''I2C_LCD_20x4'''.


==== Anti-Windup ====
=== '''Simulation''' ===
Die Simulation erfolgte in MATLAB/Simulink und diente der Reglerauslegung, dem Systemverständnis und der Bewertung des dynamischen Verhaltens bei Sollwertänderungen und Störungen. 


Da die PWM im System auf '''255''' begrenzt ist und die Regelung einen I-Anteil beinhaltet, wurde eine '''Anti-Windup-Maßnahme''' implementiert, um den Integratorausgang in der Simulation auf den zulässigen Bereich von −255 bis +255 zu beschränken. Diese Maßnahme verhindert, dass sich der I-Anteil unkontrolliert aufintegriert.
==== ''Anti-Windup'' ==== 


Zum besseren Verständnis der Windup Problematik wurde eine 120 s lange Simulation ohne und mit Anti-Windup-Maßnahme durchgeführt.
Da die PWM auf '''255''' begrenzt ist und die Regelung einen I-Anteil enthält, wurde eine '''Anti-Windup-Maßnahme''' implementiert. Sie beschränkt den Integratorausgang auf −255 bis +255, um eine unkontrollierte Aufintegrierung zu verhindern.


Abbildung ?? vergleicht den kumulierten Regelfehler beider Simulationen und zeigt, dass mit Anti-Windup der Fehler um den Faktor '''fünf''' reduziert werden konnte.
Zur Veranschaulichung wurde eine 120 s lange Simulation ohne und mit Anti-Windup durchgeführt.


Abbildung 5 vergleicht den kumulierten Regelfehler beider Simulationen und zeigt, dass der Fehler mit Anti-Windup um den Faktor '''fünf''' reduziert wurde. 


'''ABBILDUNG Simulation - Auswirkung von Anti-Windup auf den Regelfehler'''
<div style="text-align:center;"> 
[[Datei:Simulation - Auswirkung von Anti-Windup auf den Regelfehler.png|500px|thumb|center|'''Abbildung 5:''' Simulation - Auswirkung von Anti-Windup auf den Regelfehler <ref name="e.D."/>]] 
</div> 


==== Auswahl geeigneter Reglerparameter ====
==== ''Auswahl geeigneter Reglerparameter'' ====


Für die finale Reglerauslegung wurden mehrere Kombinationen von '''Kₚ''' und '''Kᵢ''' mit aktiviertem Anti-Windup getestet.
Für die finale Reglerauslegung wurden mehrere Kombinationen von '''Kₚ''' und '''Kᵢ''' mit aktiviertem Anti-Windup getestet. Abbildung 6 zeigt Sollhöhe, Ist-Höhe und Regelfehler. 


'''ABBILDUNG Simulation - Reglerauslegung'''
Ergebnisse: 


Der Vergleich der Simulationen zeigt folgendes Ergebnis:
* '''Kₚ = 100, Kᵢ = 100''': langsame Regelung, starkes Überschwingen, unzureichende Störkompensation 
* '''Kₚ = 10000, Kᵢ = 10000''': schnelle Regelung, aber starkes Nachschwingen 
* '''Kₚ = 10000, Kᵢ = 5000''': bestes Führungs- und Störverhalten 


* '''Kₚ = 100, Kᵢ = 100''': langsame Regelung, starkes Überschwingen, unzureichende Störkompensation
<div style="text-align:center;"> 
* '''Kₚ = 10000, Kᵢ = 10000''': schnelle Regelung, aber sehr starkes Nachschwingen
[[Datei:Simulation - Reglerauslegung.png|700px|thumb|center|'''Abbildung 6:''' Simulation – Reglerauslegung <ref name="e.D."/>]] 
* '''Kₚ = 10000, Kᵢ = 10000''': schnelle Regelung, aber Nachschwingen
</div> 
* '''Kₚ = 10000, Kᵢ = 5000''': bestes Führungs- und Störverhalten


Trotz eines leicht höheren absoluten Regelfehlers, zeigt die Kombination '''Kₚ = 10000, Kᵢ = 5000''' ein '''geringeres Schwingen''' und '''bessere Stabilität'''. Da reale Einflüssen (Pumpen- und Sensordynamik) weitere Dynamik hinzufügen, wurden die Parameter '''Kₚ = 10000, Kᵢ = 5000''' für die Echtzeitumsetzung gewählt.
Trotz leicht höherem Regelfehler zeigt '''Kₚ = 10000, Kᵢ = 5000''' geringeres Schwingen und bessere Stabilität. Da reale Einflüsse (Pumpen-/Sensordynamik) weitere Dynamik hinzufügen, wurden diese Parameter für die Echtzeitumsetzung gewählt.


==== Zusammenfassung ====
==== ''Zusammenfassung'' ====


Die durchgeführten Simulationen zeigten deutlich:
Die Simulationen zeigen deutlich:


* Der '''Anti-Windup-Mechanismus''' ist essenziell zur Erfüllung der Systemanforderungen.
* Der '''Anti-Windup-Maßnahme''' ist essenziell für die Systemanforderungen.
* Die finale Auswahl von '''Kₚ = 10000''' und '''Kᵢ = 5000''' erfüllt die Anforderungen an Geschwindigkeit, Genauigkeit und Störunterdrückung.
* Die finale Auswahl '''Kₚ = 10000''' und '''Kᵢ = 5000''' erfüllt Anforderungen an Geschwindigkeit, Genauigkeit und Störunterdrückung.
* Die Modellierung ermöglichte eine fundierte Entscheidung, bevor die Implementierung auf Hardware erfolgte.
* Die Modellierung ermöglichte fundierte Entscheidungen vor der Hardwareimplementierung.


=== '''Systemumsetzung''' ===
=== '''Systemumsetzung''' ===


Das System wurde in einzelne '''Komponenten''' unterteilt, um die Umsetzung sowohl hardware- als auch softwareseitig strukturiert durchzuführen. In diesem Kapitel werden die wichtigsten '''Softwarefunktionen''' für jede Komponente vorgestellt.
Das System wurde in einzelne '''Komponenten''' unterteilt, um die Umsetzung sowohl hardware- als auch softwareseitig strukturiert durchzuführen. In diesem Kapitel werden die wichtigsten '''Funktionen und Eigenschaften''' für jede Komponente vorgestellt.


==== Wassertanksystem ====
==== ''Wassertanksystem'' ====


Das Wassertanksystem besteht aus einem Primär- und einem Sekundärtank.
Die Umsetzung des Wassertanksystems ist ausschließlich hardwareseitig erfolgt. Die wichtigsten Punkte sind:


* Der '''Wasserstand''' im Primärtank wird kontinuierlich überwacht und geregelt.
* Der '''Wasserstand''' im Primärtank wird kontinuierlich überwacht und geregelt.
* Durch eingesetzte '''Distanzstücke''' am Boden wird verhindert, dass sich die Abflussschläuche festsaugen.
* '''Die optimale Menge an destilliertem Wasser beträgt 1,6 l'''. Damit ist ein Über- oder Trockenlaufen der Glaszylinder nicht möglich.
* Die maximale Füllmenge der '''Glaszylinder''' beträgt '''1,6 l''', was einem Wasserstand in einem der Tanks von maximal ca. '''0,35 m''' entspricht.
* Die maximale Füllhöhe in einem der Tanks liegt bei maximal ca. '''0,35 m''', was ein leichtes Überschwingen über die maximale Sollhöhe ermöglicht.


==== Benutzereingabe_Hoehe ====
==== ''Benutzereingabe_Hoehe'' ====


Diese Komponente erlaubt dem Benutzer die Vorgabe einer '''Sollhöhe''' des Wasserstands über ein Potentiometer.
Diese Komponente erlaubt dem Benutzer die Vorgabe einer '''Sollhöhe''' des Wasserstands über ein Potentiometer. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.


* Die Werte werden über A1 des Arduinos in Simulink eingelesen.
* Die Werte werden über A1 des Arduinos in Simulink eingelesen.
* Ein '''100 nF Kondensator''' stabilisiert die analogen Werte.
* Ein '''100 nF Kondensator''' stabilisiert die analogen Werte.
* Eine '''Mittelwertfilterung''' über fünf Messwerte wird mit einem '''MATLAB-Function-Block''' umgesetzt (Blockname: '''Benutzereingabe_Hoehe_Mittelwert_Berechnung''').
* Eine '''Mittelwertfilterung''' über fünf Messwerte wird mit dem MATLAB-Function-Block '''Benutzereingabe_Hoehe_Mittelwert_Berechnung''' umgesetzt.
* Die gefilterten Digitalwerte werden in einem '''1-D Lookup Table''' in Meter umgerechnet.
* Die gefilterten Digitalwerte werden in einem '''1-D Lookup Table''' in Meter umgerechnet.
* Der Digitalwertbereich ist wie folgt definiert:
  '''Digitalwert ≤ 5''' entspricht '''0,05 m'''
  '''Digitalwert ≥ 1018''' entspricht '''0,30 m'''


==== Benutzereingabe_Stoerung ====
<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente Benutzereingabe Hoehe.png|900px|thumb|center|'''Abbildung 7:''' Softwareumsetzung der Komponente Benutzereingabe_Hoehe <ref name="e.D."/>]]
</div>


Über ein zweites Potentiometer kann der Benutzer eine '''Störung''' in Prozent vorgeben.
==== ''Benutzereingabe_Stoerung'' ====
 
Über ein zweites Potentiometer kann der Benutzer eine '''Störung''' in Prozent vorgeben. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.


* Auch hier erfolgt die Einlesung über einen Arduino-Analogkanal in Simulink.
* Auch hier erfolgt die Einlesung über einen Arduino-Analogkanal in Simulink.
Zeile 161: Zeile 292:
* Die Umrechnung von Digitalwert auf Störgröße in Prozent erfolgt in einem '''1-D Lookup Table'''.
* Die Umrechnung von Digitalwert auf Störgröße in Prozent erfolgt in einem '''1-D Lookup Table'''.
* Die Ausgabe wird durch einen '''Round-Block''' auf ganze Prozent gerundet.
* Die Ausgabe wird durch einen '''Round-Block''' auf ganze Prozent gerundet.
* Der '''Digitalwertbereich''' ist wie folgt festgelegt:
  '''Digitalwert ≤ 5''' entspricht '''0 % Störung'''
  '''Digitalwert ≥ 1018''' entspricht '''100 % Störung'''
<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente Benutzereingabe Stoerung.png|900px|thumb|center|'''Abbildung 8:''' Softwareumsetzung der Komponente Benutzereingabe_Stoerung <ref name="e.D."/>]]
</div>
==== ''Pumpe_Regelung'' ====


==== Pumpe_Regelung ====
Die Komponente '''Pumpe_Regelung''' besteht aus einer Zufluss- und einer Abflusspumpe, die über die Software mit einer PWM angesteuert werden. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.


* Das Regelsignal '''Regelung_PWM''' wird zunächst über einen '''Round-Block''' gerundet und anschließend durch einen '''Abs-Block''' geleitet, um eine positive, ganzzahlige PWM zu erzeugen.
* Das Regelsignal '''Regelung_PWM''' wird zunächst über einen '''Round-Block''' gerundet und anschließend durch einen '''Abs-Block''' geleitet, um eine positive, ganzzahlige PWM zu erzeugen.
* Da die Pumpen erst ab einem PWM-Wert von '''71''' anlaufen, wird dieser Wert über den '''Lookup Table Regelung_PWM-Offset''' als Offset hinterlegt: '''0 % ≙ 0 PWM'''   /    '''1 % ≙ 71 PWM'''   /    '''100 % ≙ 255 PWM'''
* Da die Pumpen erst ab einem PWM-Wert von '''71''' anlaufen, wird dieser Wert über den '''Lookup Table Regelung_PWM-Offset''' als Offset hinterlegt:
  0 % ≙ 0 PWM
   1 % ≙ 71 PWM
   100 % ≙ 255 PWM
* Das Offset-Signal wird über zwei '''Switch-Blöcke''' weitergeleitet:
* Das Offset-Signal wird über zwei '''Switch-Blöcke''' weitergeleitet:
   '''PR_PWM_>_0''' steuert die Zuflusspumpe bei positiver PWM,
   '''PR_PWM_>_0''' steuert die Zuflusspumpe bei positiver PWM,
Zeile 176: Zeile 319:
   Bei positiver PWM: Ansteuerung von '''Regelung_PWM_Zufluss''' (Pins 3 und 4)
   Bei positiver PWM: Ansteuerung von '''Regelung_PWM_Zufluss''' (Pins 3 und 4)
   Bei negativer PWM: Ansteuerung von '''Regelung_PWM_Abfluss''' (Pins 6 und 7)
   Bei negativer PWM: Ansteuerung von '''Regelung_PWM_Abfluss''' (Pins 6 und 7)
* Da der Arduino PWM-Block nur ganzzahlige Werte verarbeiten kann, werden alle PWM-Signale in '''16-Bit-Ganzzahlen''' umgewandelt.


Da der Arduino PWM-Block nur ganzzahlige Werte verarbeiten kann, werden alle PWM-Signale in '''16-Bit-Ganzzahlen''' umgewandelt.
<div style="text-align:center;">
==== Pumpe_Stoerung ====
[[Datei:Softwareumsetzung der Komponente Pumpe Regelung.png|900px|thumb|center|'''Abbildung 9:''' Softwareumsetzung der Komponente Pumpe_Regelung <ref name="e.D."/>]]
</div>


Die Ansteuerung der Membranpumpe für die Störung, erfolgt in der Komponente '''Pumpe_Stoerung'''.
==== ''Pumpe_Stoerung'' ====


* In Simulink wird das Signal '''BES_Stoerung_Prozent''' über einen '''1-D Lookup Table''' ('''Stoerung_Prozent-PWM_Offset''') einem PWM-Wert zugeordnet.
Die Komponente '''Pumpe_Stoerung''' ermöglicht die gezielte Aktivierung der Membranpumpe zur Erzeugung einer Störung im Wasserstandssystem. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.
* Es gilt: '''0 % ≙ 0 PWM'''   /    '''1 % ≙ 71 PWM'''   /    '''100 % ≙ 255 PWM'''
 
* In Simulink wird das Signal '''BES_Stoerung_Prozent''' über einen '''1-D Lookup Table''' ('''Stoerung_Prozent-PWM_Offset''') einem PWM-Wert zugeordnet. Es gilt:
  0 % ≙ 0 PWM
   1 % ≙ 71 PWM
   100 % ≙ 255 PWM
* Der Offset von '''71''' sorgt dafür, dass die Pumpe bereits bei geringen Störprozentwerten anläuft.
* Der Offset von '''71''' sorgt dafür, dass die Pumpe bereits bei geringen Störprozentwerten anläuft.
* Das berechnete Signal '''Stoerung_PWM''' wird in eine '''16-Bit-Ganzzahl''' umgewandelt.
* Das berechnete Signal '''Stoerung_PWM''' wird in eine '''16-Bit-Ganzzahl''' umgewandelt.
* Anschließend erfolgt die Ausgabe über '''PS_Pumpe_Stoerung_PWM''' und '''PS_Pumpe_Stoerung_Drehrichtung''' an die PWM-Pins 8 und 9 des Arduino.
* Anschließend erfolgt die Ausgabe über '''PS_Pumpe_Stoerung_PWM''' und '''PS_Pumpe_Stoerung_Drehrichtung''' an die PWM-Pins 8 und 9 des Arduino.


<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente Pumpe Stoerung .png|900px|thumb|center|'''Abbildung 10:''' Softwareumsetzung der Komponente Pumpe_Stoerung <ref name="e.D."/>]]
</div>


==== Regelung ====
==== ''Regelung'' ====


Die Komponente '''Regelung''' bildet das Herzstück des Systems. Sie verarbeitet den Regelfehler und gibt ein PWM-Signal zur Ansteuerung der '''Zulaufpumpe''' aus.
Die Komponente '''Regelung''' bildet das Herzstück des Systems. Sie verarbeitet den Regelfehler und gibt ein PWM-Signal zur Ansteuerung der '''Zulaufpumpe''' aus. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.


* In Simulink wird kontinuierlich die Differenz '''d_h''' zwischen '''h_soll''' und '''h_mess''' berechnet.
* In Simulink wird kontinuierlich die Differenz '''d_h''' zwischen '''h_soll''' und '''h_mess''' berechnet.
Zeile 201: Zeile 353:
* Dieses Signal wird direkt an die Komponente '''Pumpe_Regelung''' übergeben.
* Dieses Signal wird direkt an die Komponente '''Pumpe_Regelung''' übergeben.


ABBILDUNG Softwareumsetzung der Komponente Regelung
<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente Regelung.png|900px|thumb|center|'''Abbildung 11:''' Softwareumsetzung der Komponente Regelung <ref name="e.D."/>]]
</div>
 
==== ''Sensor'' ====
 
Diese Komponente misst den aktuellen Wasserstand über den '''Differenzdrucksensor MPX5010DP'''. Um die Qualität der Messwerte zu erhöhen, wurden sowohl '''Hardware- als auch Softwarefilterungen''' umgesetzt. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.
 
* Die Versorgungsspannung des Sensors ist über ein '''Power Supply Module (PSM)''' vom Arduino entkoppelt, um die Spannung zu stabilisieren.
* Die analoge Ausgangsspannung wird über A0 eingelesen.
* Eine '''zusätzliche Ausgangsfilterung''' gemäß '''AN1646''' wurde zur Dämpfung des Sensorrauschens auf einer Lochrasterplatine umgesetzt.
* Die Software verwendet einen '''PT1-Filter''' nach Prof. Dr.-Ing. Mirek Göbel zur Signalglättung.
* Die Filterausgabe wird gerundet, um zusätzliche Schwankungen zu reduzieren.
* Die Zuordnung des Digitalwerts zur Höhe erfolgt mit einem '''1D-Lookup Table'''.
* Die Kalibrierung ergab ein '''Bestimmtheitsmaß R² = 0,9994''' und eine Messgenauigkeit von ±'''5 mm'''.
 
<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente Sensor.png|900px|thumb|center|'''Abbildung 12:''' Softwareumsetzung der Komponente Sensor <ref name="e.D."/>]]
</div>
 
==== ''I2C_LCD_20x4'' ====
 
Diese Komponente stellt die '''aktuellen Mess- und Sollwerte''' des Wasserstands auf einem LCD-Display dar. Die Anzeige erfolgt in '''Millimetern''' zur besseren Lesbarkeit. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.
 
* Die Werte für '''h_soll''' und '''h_mess''' werden mit dem Faktor '''1000''' multipliziert, um von Metern in Millimeter umzuwandeln ('''PAR_LCD_Millimeter''').
* Die Signale werden über den '''Data-Type Conversion Block''' in '''int16''' konvertiert, da Werte über 128 korrekt dargestellt werden sollen.
* Die Kommunikation mit dem Display erfolgt über die '''I2C-Schnittstelle'''.
* Verwendet wird die '''LiquidCrystal_I2C Library''' von Frank de Brabander.
* Die Erstellung des IO-Device-Blocks erfolgte anhand des MATLAB-Tutorials „Get Started with IO Device Builder“. <ref name="iodevicebuilder">MathWorks: Get Started with IO Device Builder – MATLAB & Simulink. – URL: https://de.mathworks.com/help/simulink/supportpkg/arduino_ug/io-devicebuilder.html</ref>
 
<div style="text-align:center;">
[[Datei:Softwareumsetzung der Komponente I2C LCD 20x4.png|900px|thumb|center|'''Abbildung 13:''' Softwareumsetzung der Komponente I2C_LCD_20x4 <ref name="e.D."/>]]
</div>
 
== '''Systemtest und Ergebnisse''' ==
Dieses Kapitel dokumentiert die Tests des realen Systems sowie die wichtigsten Ergebnisse.
 
=== '''Systemverhalten bei Sollwertansteuerung und Störungseinfluss''' ===
 
Die Tests wurden mit den Reglerparametern '''𝐾𝑃 = 10000''', '''𝐾𝐼 = 5000''' bei einer Frequenz von '''1 Hz''' durchgeführt.
Im ersten Versuch (Abbildung 14) wurde eine '''Sollhöhe von 0,30 m''' bei Sekunde 15 eingestellt. Die '''Ist-Höhe''' folgte verzögert und schwang zunächst über, bevor sie sich nach etwa '''70 s''' im Toleranzbereich von '''±5 mm''' einpendelte.
 
Trotz implementierter '''Anti-Windup-Maßnahme''' musste sich der '''I-Anteil''' des Reglers abbauen, wodurch eine träge Reaktion entstand.
Die Filterung reduzierte zwar das Sensorsignalrauschen, verursachte jedoch ein '''Delay von bis zu 2 s'''.
Die '''PWM-Werte''' zeigen den erwarteten Ablauf und steuern je nach Bedarf die passende Pumpe für den Zu- oder Abfluss an


== Systemtest und Ergebnisse ==
<div style="text-align:center;">
=== Systemtest ===
[[Datei:1. Systemtest mit Anfahren der Soll-Höhe.png|700px|thumb|center|'''Abbildung 14:''' 1. Systemtest mit Anfahren der Soll-Höhe <ref name="e.D."/>]]
==== ''Regelung'' ====
</div>
==== ''Störung'' ====
 
Im zweiten Versuch (Abbildung 15) wurde bei Sekunde 70 eine '''Störung mit 90 % Intensität''' zugeschaltet.
Die Folge war ein kurzzeitiger Abfall der Wasserhöhe, welcher ab Sekunde 81 durch das System kontrolliert kompensiert wurde. Die vollständige Störkompensation wurde nach etwa '''70 s''' erreicht. Die Störkompensation mit PI-Regler ist somit möglich.
 
Die Reaktion auf die Störung zeigte jedoch auch eine Sensorverzögerung infolge Messkette und Filterung, sowie eine erkennbare Asymmetrie der '''PWM-Werte''' bei Zufluss- und Störungspumpe, was auf '''unterschiedliche reale Fördermengen''' hindeutet.
 
<div style="text-align:center;">
[[Datei:2. Systemtest mit Störung.png|700px|thumb|center|'''Abbildung 15:''' 2. Systemtest mit Störung <ref name="e.D."/>]]
</div>
 
=== '''Ergebnisse''' ===
 
Das System erreicht die gewünschte '''Sollhöhe zuverlässig''', zeigt jedoch '''Überschwinger''' und reagiert '''verzögert''', verursacht durch Filterung, Messkettenträgheit und physikalische Totzeiten. Die implementierte '''Anti-Windup-Funktion''' arbeitet wie gewünscht und verhindert eine unkontrollierte Aufintegration des Reglers.
 
Die '''Störkompensation mit 90 % Intensität''' ist grundsätzlich möglich, benötigte im Test jedoch rund '''70 s'''. Dabei zeigte sich, dass der '''P-Anteil allein nicht ausreicht''', um die Abweichung auszugleichen – erst der '''I-Anteil''' sorgt für eine vollständige Kompensation. Die '''PWM-Steuerung''' der Pumpen reagiert verzögert, was vermutlich auf Unterschiede in der Förderleistung und auf Druckeinflüsse in den Leitungen zurückzuführen ist. Trotz erreichter Sollhöhe bleiben '''kleine Schwankungen im Wasserstand''' bestehen; der Regelfehler geht nie exakt auf null. Um übermäßige Dynamik zu vermeiden, wurde der '''Regelfehler softwareseitig auf 1 mm (drei Nachkommastellen) gerundet'''.
 
Weitere Experimente zeigten:
* Eine '''Frequenz von 5 Hz''' in Kombination mit einem höheren '''I-Anteil von 10000''' ein '''besseres Regelverhalten''' ermöglicht.
* Dass '''Störungen bis 90 % zuverlässig kompensiert''' werden können. Bei '''100 % Störung''' sinkt der Wasserstand ab – der '''Abfluss übersteigt hier den maximalen Zufluss'''.
Die '''Störkompensation mit 90 % Intensität''' ist somit möglich, benötigt im Test jedoch rund '''70 s'''.
* Bei längeren Laufzeiten treten '''Probleme mit einer Leckage''' auf, welche die '''Langzeitstabilität und Störkompensation''' beeinträchtigten. Obwohl der reale Wasserstand optisch konstant blieb, sank der gemessene Wasserstand über die Zeit erheblich.
* Eine eingeschränkte '''Not-Aus-Funktion''': Zwar wird die '''12 V-Leitung zuverlässig getrennt''', jedoch bleiben '''5 V über den Arduino aktiv''', wodurch die Pumpen bei bestimmten PWM-Werten weiterlaufen können.
 
Die folgende Abbildung zeigt das finale System mit den umgesetzten Erkenntnissen aus den Experimenten. Dabei wurden folgende Parameter angepasst:
 
* die Filter-Frequenz wurde auf '''5 Hz''' gesetzt.
* die Reglerparameter wurden auf '''𝐾ₚ = 10000''' und '''𝐾ᵢ = 10000''' eingestellt.
* der '''Regelfehler''' wurde auf '''drei Nachkommastellen''' begrenzt.


=== Ergebnisse ===
<div style="text-align:center;">
[[Datei:Abschließender Systemtest.png|700px|thumb|center|'''Abbildung 16:''' Abschließender Systemtest <ref name="e.D."/>]]
</div>


== Fazit und Ausblick ==
== '''Fazit und Ausblick''' ==


Abschließend werden die zentralen Erkenntnisse dieser Arbeit zusammengefasst, ihre Bedeutung für die praxisorientierte Hochschullehre reflektiert und mögliche Erweiterungen im Rahmen eines Ausblicks vorgestellt.
Diese Arbeit zeigt die erfolgreiche Entwicklung und Umsetzung eines '''geregelten Wasserstandssystems''' für die praxisorientierte Hochschullehre.


=== Zusammenfassung der Ergebnisse ===
=== '''Zusammenfassung der Ergebnisse''' ===


Im Rahmen dieser Arbeit wurde ein '''geregeltes Wasserstandssystem entworfen, aufgebaut und erfolgreich getestet'''. Dabei wurden unter anderem
Das System erreicht die Sollhöhe mit einer Genauigkeit von ±5 mm, '''kompensiert Störungen bis 90 %''' zuverlässig und zeigt ein insgesamt stabiles Regelverhalten. Der eingesetzte '''PI-Regler''' arbeitet wie erwartet, auch wenn Totzeiten, Verzögerungen und '''ungleiche Pumpenleistungen''' zu Abweichungen führen.


* Sensor und Potentiometer kalibriert und stabilisiert,
Bei 100 % Störung sinkt der Wasserstand, da der maximale Zufluss nicht ausreicht. Zudem wurde eine '''Leckage in der Messkette''' festgestellt, wodurch der Wasserstand fälschlich als fallend angezeigt wurde.
* Messwerte analysiert und gefiltert,
* sowie eine Benutzerkonsole zur manuellen Einflussnahme und Visualisierung entwickelt.


Die Systemtests zeigten, dass das Regelverhalten insgesamt stabil ist: 
=== '''Didaktischer Nutzen''' ===
Die Sollhöhe wird mit einer '''Genauigkeit von ±5 mm''' erreicht, '''Störungen bis zu 90 %''' können erfolgreich kompensiert werden. Das Regelverhalten des eingesetzten PI-Reglers entsprach weitgehend den Erwartungen aus der Simulation, wobei Effekte wie '''Totzeiten''', '''Verzögerungen''' und '''schwankende Pumpenleistungen''' zu leichten Abweichungen führten.


Ein Schwachpunkt liegt in der ungleichmäßigen Förderleistung der Pumpen, wodurch bei einer 100 %-Störung ein '''dauerhafter Wasserstandsabfall''' auftreten kann. Langzeittests deckten zusätzlich eine '''Leckage bei der Wasserstandsmessung''' auf – der gemessene Wasserstand sank über Zeit, obwohl der reale Stand konstant blieb.
Das System eignet sich ideal als '''Demonstrator''' für Regelungstechnik: 


=== Praktische Relevanz und Anwendung ===
* Anschauliche Vermittlung von PI-Regelung und Störverhalten 
* Intuitive Bedienung über Konsole und Display 
* Transparenter, modularer Aufbau mit gut sichtbaren Komponenten 


Das entwickelte System eignet sich hervorragend als '''anschauliches Demonstrationsobjekt''' in der Hochschullehre. Es bietet:
=== '''Optimierung und Ausblick''' ===


* eine '''interaktive Vermittlung von Regelungstechnik''' (z. B. PI-Regelung, Überschwingen, Störkompensation),
Verbesserungspotenzial besteht unter anderem in:
* eine '''intuitive Benutzerführung''' durch Display und Konsole,
* sowie einen '''modularen, offenen Aufbau''' mit gut einsehbaren Komponenten wie Pumpen, Sensorik und Steuerung.


Die robuste Konstruktion und das transparente Gehäuse fördern Sicherheit, einfache Wartung und einen direkten Einblick in die Wirkzusammenhänge eines geregelten technischen Systems.
* Erweiterung des Reglers zur '''Echtzeit-Anpassung von Parametern''' 
* Realistischere Modellierung von Totzeiten in der Simulation 
* Überarbeitung der '''Not-Aus-Schaltung''' (auch 5 V trennen) 
* Abdichtung der '''Messleitung''' für verlässliche Langzeitwerte 
* Verbesserte Zuflussführung mit Rückschlagventil zur Reduktion von Wellen 


=== Verbesserungspotential und Ausblick ===
'''Das System bildet eine robuste, erweiterbare Basis für Lehre und Weiterentwicklung.'''


Trotz des insgesamt erfolgreichen Projektverlaufs bestehen folgende Optimierungsmöglichkeiten:
== '''Anhang''' ==
=== '''Masterarbeit''' ===
[[:Datei:Masterarbeit Hilz Denim 2180518.pdf|Masterarbeit Hilz Denim]]


* '''Regler-Interface erweitern:''' Eine Benutzerfunktion zur Änderung der Reglerparameter (z. B. P- und I-Anteil) oder zur temporären Deaktivierung des Reglers erhöht die Flexibilität im Lehrbetrieb.
=== '''SVN''' ===
* '''Totzeiten realistisch abbilden:''' Eine Berücksichtigung von Verzögerungen und Totzeiten in der Simulation verbessert die Genauigkeit der Modellierung und Parametrierung.
[https://svn.hshl.de/svn/HSHL_Projekte/trunk/Regelung_WassertanksH%C3%B6henstand SVN]
* '''Elektrik überarbeiten:''' Die Not-Aus-Schaltung sollte überarbeitet werden, um die Pumpen nicht über die 5 V-Versorgung des Arduino zu betreiben.
* '''Messkette abdichten:''' Undichtigkeiten in der Messleitung müssen behoben werden, um langfristig zuverlässige Messergebnisse zu gewährleisten.
* '''Zuflussführung optimieren:''' Die Wasserzufuhr sollte direkt zum Tankboden geleitet und mit einem Rückschlagventil ausgestattet werden, um Totzeiten und Messwertverfälschungen durch Wellenbewegungen zu minimieren.


'''Das System bietet eine solide Grundlage für zukünftige Demonstrationen und kann dank seines modularen Aufbaus und der Nutzung von 3D-Druck mit geringem Aufwand erweitert oder angepasst werden.'''
=== '''Poster''' ===
[[:Datei:Masterarbeit Poster Hilz Denim.pptx| Masterarbeit Poster Hilz Denim]]


== Anhang ==
== '''Literatur''' ==
=== Masterarbeit ===
<references />
=== SVN ===
=== Poster ===


<!-- Fügen Sie diesen Footer hinzu.  -->
<!-- Fügen Sie diesen Footer hinzu.  -->
----
----
→ zurück zum Profil: [https://wiki.hshl.de/wiki/index.php/Benutzer:Denim-Mike_Hilz Denim Mike Hilz]
→ zurück zum Profil: [https://wiki.hshl.de/wiki/index.php/Benutzer:Denim-Mike_Hilz Denim Mike Hilz]

Aktuelle Version vom 29. Juli 2025, 13:12 Uhr

Autor: Denim Hilz
Erstprüfer: Prof. Göbel
Zweitprüfer: Prof. Tikhomirov
Wissenschaftliche Unterstützung: Marc Ebmeyer
Abbildung 1: Wasserstandssystem [1]

Einleitung

Dieser Wiki-Artikel stellt die Masterarbeit

Modellierung, Simulation und Echtzeit-Implementierung eines geregelten Wasserstandssystems mit MATLAB/Simulink und Mikrocontrollertechnik
für praxisorientierte Hochschuldemonstrationen im Rahmen der regelungstechnischen Lehre

vor. Dabei werden Planung, Entwicklung und Umsetzung aufgezeigt sowie die erzielten Ergebnisse dokumentiert.

Die Regelungstechnik ist eine Kernkompetenz für Ingenieurinnen und Ingenieure, da sie Steuerung und Regelung technischer Prozesse vermittelt. Um die oft abstrakte Theorie greifbarer zu machen, eignen sich praxisnahe Werkzeuge wie MATLAB/Simulink und Mikrocontrollertechnik.

Ziel der Masterarbeit war die Entwicklung eines didaktisch einsetzbaren Wasserstandssystems für die regelungstechnische Lehre an der Hochschule Hamm-Lippstadt (HSHL), um Theorie und Praxis zu verknüpfen.

Die entwickelten Regelungskonzepte basieren auf einem grundlegenden Schema der Füllstandsregelung (Level Control, LC), wie in der folgenden Abbildung dargestellt. Ziel ist es, den Wasserstand eines Behälters auf eine Sollhöhe 𝑤 (z. B. 1 m) zu bringen und dort zu halten. Die Stellgröße 𝑢 beeinflusst den Zufluss, ein Sensor misst die Ist-Höhe 𝑦. Externe Einflüsse wie Wasserentnahme wirken als Störung 𝑑 und müssen ausgeglichen werden.

Solche Systeme sind nicht nur für Lehrzwecke relevant, sondern auch in der Industrie – etwa zur Vermeidung von Überlauf, Trockenlauf oder unerwünschten Schwankungen. Die Planung und Entwicklung orientiert sich an diesem Grundschema. [2]

Abbildung 2: Beispielhafter Aufbau eines Wasserstandssystems [2]

Die Masterarbeit umfasst:

  • die Modellierung des Tanksystems,
  • die Simulation des physikalischen Verhaltens und der Reglerauslegung mit MATLAB/Simulink,
  • sowie die Echtzeit-Implementierung des Reglers auf einem Mikrocontroller.

Durch die Integration von MATLAB/Simulink und Mikrocontrollertechnik wird eine enge Verbindung zu den im Studium vermittelten Lehrinhalten geschaffen.

Theoretische Grundlagen

In diesem Abschnitt wird das grundlegende mathematische Modell und die Übertragungsfunktion des Wasserstandssystems dargestellt. Die Herleitung der Übertragungsfunktion des zylindrischen Wassertanks sowie die Auswahl des geeigneten Reglers bilden die Basis für die Simulation und Regelung des Systems. Das Vorgehen orientiert sich an der Formelsammlung aus der Lehrveranstaltung Mess- und Regelungstechnik.

Übertragungsfunktion des Wassertanks

Für die Regler-Auswahl und die Simulation ist es wichtig, das Verhältnis vom Ausgangssignal zum Eingangssignal des Systems, also die Übertragungsfunktion, zu kennen [2]. Der für die Umsetzung gewählte Wassertank besitzt eine zylindrische Form. Der Wasserstand im Tank wird direkt vom Volumenstrom der Pumpe beeinflusst. Die Übertragungsfunktion lässt sich somit aus der geometrischen Berechnung des Volumens des Wassertanks herleiten.

Das Vorgehen zur Bestimmung der Übertragungsfunktion orientiert sich an der Vorlesung Systemtheorie, siehe [3].

Die Volumenberechnung erfolgt gemäß [4] nach folgender Formel:

V=Ah

Mit:

  • \(V\): Volumen des Wassers im Tank in \(\mathrm{m}^3\)
  • \(A\): Querschnittsfläche des Tanks in \(\mathrm{m}^2\)
  • \(h(t)\): Wasserstand im Tank in \(\mathrm{m}\)

Da sich der Wasserstand durch den Zu- bzw. Abfluss verändert, ergibt sich durch Ableitung der Formel nach der Zeit folgende Differentialgleichung (DGL):

dVdt=Adhdt

Mit:

  • V˙: zeitliche Änderung des Volumens in \(\mathrm{m}^3\,\mathrm{s}^{-1}\)
  • h˙: zeitliche Änderung des Wasserstands in \(\mathrm{m}\,\mathrm{s}^{-1}\)

Mittels Laplace-Transformation ergibt sich die Gleichung:

V˙(s)=Ash(s)

Da V˙ (andere Bezeichnung für den Volumenstrom \(Q\)) bereits eine Flussgröße ist, bleibt V˙ im Laplace-Bereich stehen und wird nicht mit \(s\) multipliziert.

Die Übertragungsfunktion kann aus obiger Gleichung hergeleitet werden und ergibt sich aus dem Verhältnis von Ausgang zu Eingang:

G(s)=h(s)V˙(s)=1As.

Regler-Auswahl

Die Regelung mittels PID-Regler findet in der Praxis sowie in der regelungstechnischen Lehre an der HSHL häufig Anwendung. Aufgrund dieser Relevanz wurde für das vorliegende Projekt eine Regelung mit dem PID-Regler ausgewählt.

Im Folgenden ist für die PID-Anteile die Berechnung des stationären Endwertes \(x_{stat}\) der Führungsübertragungsfunktion \(G_W\) und der Störübertragungsfunktion \(G_Z\) bei einem Einheitssprung aufgezeigt.

Ziel der Untersuchung ist es herauszufinden, bei welcher Kombination der Regelanteile die Regelgröße im stationären Zustand exakt der Führungsgröße entspricht und äußere Störungen kompensiert werden. Das bedeutet:

  • Für \(G_W\) sollte im Idealfall \(x_{stat} = 1\) gelten
  • Für \(G_Z\) sollte im Idealfall \(x_{stat} = 0\) gelten [5]

Die Berechnungen für P, PI, PD und PID zeigen, dass nur PI und PID bei einem Einheitssprung die beiden Bedingungen erfüllen.

Die Herleitung der Führungs- und Störübertragungsfunktion für den PI-Regler ist an dieser Stelle aufgezeigt und orientiert sich an dem Vorgehen aus der Lehrveranstaltung Regelungstechnische Systeme, siehe [6].

Führungsübertragungsfunktion

GW=xw=GRGS1+GMGRGS

wobei

  • \(G_M = 1\)
  • \(G_S = \frac{1}{A \cdot s}\)
  • \(G_R = K_P + \frac{K_I}{s}\)

Es gilt:

GWPI=(KP+KIs)1As1+1(KP+KIs)1As=KP1As+KI1As21+KP1As+KI1As2As2As2=KPs+KIAs2+KPs+KI

Der stationäre Endwert ergibt sich zu:

xstat=limtx(t)=lims0GWPI(s)=KP0+KIA02+KP0+KI=1

Zur Vereinfachung der Regler-Auslegung wurde sich im weiteren Verlauf für den PI-Regler entschieden. Die PI-Regeleinrichtung ermöglicht die Erreichung des vorgegebenen Sollwertes bei gleichzeitiger Kompensationsfähigkeit von auftretenden Störungen [5].

Störübertragungsfunktion

GZ=xz=GS1+GMGRGS

wobei die gleichen Werte für \(G_M, G_S, G_R\) gelten wie oben.

GZPI=1As1+1(KP+KIs)1As=1As1+KP1As+KI1As2As2As2=sAs2+KPs+KI

Der stationäre Endwert ergibt sich zu:

xstat=limtx(t)=lims0GZPI(s)=0A02+KP0+KI=0

Systemverhalten bei geschlossenem Regelkreis

Das Systemverhalten bei geschlossenem Regelkreis kann anhand der Führungsübertragungsfunktion des P-Reglers aufgezeigt werden. Der P-Regler verstärkt lediglich und fügt keine eigene Dynamik hinzu [3]. Die Funktion ergibt sich zu:

GWP=KP1As1+1KP1AsAsAs=KPAs+KP

Es zeigt sich, dass das Verhalten dem eines PT1-Systems [3] gleicht mit

KPKP;TsAs;1KP.

Systementwurf und Umsetzung

Dieses Kapitel beschreibt Modellierung, Simulation und Umsetzung des geregelten Wasserstandssystems basierend auf den theoretischen Grundlagen.

Regelkreis

Zur Veranschaulichung dient der schematische Aufbau eines geschlossenen Regelkreises (Abbildung 3). Ziel ist, den Wasserstand eines Primärtanks auf eine vorgegebene Sollhöhe 𝒉ₛₒₗₗ einzustellen und bei Störungen konstant zu halten.

Der Regelkreis zeigt folgende Funktionen:

  • Der Benutzer gibt über ein Potentiometer die Sollhöhe 𝒉ₛₒₗₗ (Führungsgröße) vor.
  • Die Differenz zur gemessenen Ist-Höhe 𝒉ₘₑₛₛ (Messgröße) ergibt den Regelfehler Δ𝒉, der vom Mikrocontroller (Arduino) ausgewertet wird.
  • Ein PI-Regler berechnet ein Ausgangssignal zur Ansteuerung von zwei Pumpen für geregelten Zu- und Abfluss.
  • Die Ansteuerung erfolgt über PWM-Signale, die über H-Brücken an die Pumpen weitergegeben werden (Stellgröße 1).
  • Daraus entsteht ein resultierender Volumenstrom 𝑽ₛₜₑₗₗ (Stellgröße 2), der den Wasserstand verändert.
  • Eine einstellbare Störung 𝑽ₛₜₒₑᵣ, über ein zweites Potentiometer gesteuert, ermöglicht den Abfluss.
Abbildung 3: Schematischer Regelkreis des Wasserstandssystems i.A.a. [2]

Konzeptskizze

Zur Auswahl und Bewertung möglicher Systemkomponenten wurde ein morphologischer Kasten verwendet (siehe Anhang Masterarbeit). Verschiedene Optionen wurden nach Kriterien wie Kompatibilität, Kosten, Verfügbarkeit und Benutzerfreundlichkeit bewertet.

Ausgewählte Kriterien waren Kompatibilität (Arduino/MATLAB-Anbindung), Verfügbarkeit, Kosten und Anwenderfreundlichkeit (z. B. für Besucher des MINT-Erlebnistags).

Abbildung 4 zeigt die Konzeptskizze. Der Aufbau:

  • Zwei Glaszylinder aus Borosilikatglas als Primär- und Sekundärtank, verbunden durch Silikonschläuche,
  • Pumpe 1: geregelter Zufluss (blau),
  • Pumpe 2: geregelter Abfluss (rot),
  • Pumpe 3: manuelle Störung (orange),
  • Drucksensor zur Wasserstandsmessung,
  • Zwei Drehpotentiometer zur Eingabe von Sollwert und Störung (grün/rot),
  • LCD-Anzeige zur Darstellung von Sollwert, Istwert und Störung,
  • Arduino-Controller mit H-Brücken zur Pumpensteuerung,
  • Montage auf Aluminiumrahmen mit Plexiglas-Gehäuse.
Abbildung 4: Konzeptskizze des Wasserstandssystems [1]

Der Wasserzufluss erfolgt von oben, der Abfluss über den Tankboden. Die Konstruktion ermöglicht gute Sichtbarkeit und leichte Zugänglichkeit – besonders vorteilhaft im Hochschulkontext.

Das System ist in folgende Komponenten unterteilt:

1. Wassertanksystem
2. Benutzereingabe_Hoehe
3. Benutzereingabe_Stoerung
4. Pumpe_Regelung
5. Pumpe_Stoerung
6. Regelung
7. Sensor
8. I2C_LCD_20x4.

Simulation

Die Simulation erfolgte in MATLAB/Simulink und diente der Reglerauslegung, dem Systemverständnis und der Bewertung des dynamischen Verhaltens bei Sollwertänderungen und Störungen.

Anti-Windup

Da die PWM auf 255 begrenzt ist und die Regelung einen I-Anteil enthält, wurde eine Anti-Windup-Maßnahme implementiert. Sie beschränkt den Integratorausgang auf −255 bis +255, um eine unkontrollierte Aufintegrierung zu verhindern.

Zur Veranschaulichung wurde eine 120 s lange Simulation ohne und mit Anti-Windup durchgeführt.

Abbildung 5 vergleicht den kumulierten Regelfehler beider Simulationen und zeigt, dass der Fehler mit Anti-Windup um den Faktor fünf reduziert wurde.

Abbildung 5: Simulation - Auswirkung von Anti-Windup auf den Regelfehler [1]

Auswahl geeigneter Reglerparameter

Für die finale Reglerauslegung wurden mehrere Kombinationen von Kₚ und Kᵢ mit aktiviertem Anti-Windup getestet. Abbildung 6 zeigt Sollhöhe, Ist-Höhe und Regelfehler.

Ergebnisse:

  • Kₚ = 100, Kᵢ = 100: langsame Regelung, starkes Überschwingen, unzureichende Störkompensation
  • Kₚ = 10000, Kᵢ = 10000: schnelle Regelung, aber starkes Nachschwingen
  • Kₚ = 10000, Kᵢ = 5000: bestes Führungs- und Störverhalten
Abbildung 6: Simulation – Reglerauslegung [1]

Trotz leicht höherem Regelfehler zeigt Kₚ = 10000, Kᵢ = 5000 geringeres Schwingen und bessere Stabilität. Da reale Einflüsse (Pumpen-/Sensordynamik) weitere Dynamik hinzufügen, wurden diese Parameter für die Echtzeitumsetzung gewählt.

Zusammenfassung

Die Simulationen zeigen deutlich:

  • Der Anti-Windup-Maßnahme ist essenziell für die Systemanforderungen.
  • Die finale Auswahl Kₚ = 10000 und Kᵢ = 5000 erfüllt Anforderungen an Geschwindigkeit, Genauigkeit und Störunterdrückung.
  • Die Modellierung ermöglichte fundierte Entscheidungen vor der Hardwareimplementierung.

Systemumsetzung

Das System wurde in einzelne Komponenten unterteilt, um die Umsetzung sowohl hardware- als auch softwareseitig strukturiert durchzuführen. In diesem Kapitel werden die wichtigsten Funktionen und Eigenschaften für jede Komponente vorgestellt.

Wassertanksystem

Die Umsetzung des Wassertanksystems ist ausschließlich hardwareseitig erfolgt. Die wichtigsten Punkte sind:

  • Der Wasserstand im Primärtank wird kontinuierlich überwacht und geregelt.
  • Die optimale Menge an destilliertem Wasser beträgt 1,6 l. Damit ist ein Über- oder Trockenlaufen der Glaszylinder nicht möglich.
  • Die maximale Füllhöhe in einem der Tanks liegt bei maximal ca. 0,35 m, was ein leichtes Überschwingen über die maximale Sollhöhe ermöglicht.

Benutzereingabe_Hoehe

Diese Komponente erlaubt dem Benutzer die Vorgabe einer Sollhöhe des Wasserstands über ein Potentiometer. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • Die Werte werden über A1 des Arduinos in Simulink eingelesen.
  • Ein 100 nF Kondensator stabilisiert die analogen Werte.
  • Eine Mittelwertfilterung über fünf Messwerte wird mit dem MATLAB-Function-Block Benutzereingabe_Hoehe_Mittelwert_Berechnung umgesetzt.
  • Die gefilterten Digitalwerte werden in einem 1-D Lookup Table in Meter umgerechnet.
  • Der Digitalwertbereich ist wie folgt definiert:
 Digitalwert ≤ 5 entspricht 0,05 m
 Digitalwert ≥ 1018 entspricht 0,30 m
Abbildung 7: Softwareumsetzung der Komponente Benutzereingabe_Hoehe [1]

Benutzereingabe_Stoerung

Über ein zweites Potentiometer kann der Benutzer eine Störung in Prozent vorgeben. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • Auch hier erfolgt die Einlesung über einen Arduino-Analogkanal in Simulink.
  • Der Aufbau ist identisch zur Benutzereingabe_Hoehe, inklusive 100 nF Kondensator und Mittelwertfilterung über fünf Werte.
  • Die Umrechnung von Digitalwert auf Störgröße in Prozent erfolgt in einem 1-D Lookup Table.
  • Die Ausgabe wird durch einen Round-Block auf ganze Prozent gerundet.
  • Der Digitalwertbereich ist wie folgt festgelegt:
 Digitalwert ≤ 5 entspricht 0 % Störung
 Digitalwert ≥ 1018 entspricht 100 % Störung
Abbildung 8: Softwareumsetzung der Komponente Benutzereingabe_Stoerung [1]

Pumpe_Regelung

Die Komponente Pumpe_Regelung besteht aus einer Zufluss- und einer Abflusspumpe, die über die Software mit einer PWM angesteuert werden. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • Das Regelsignal Regelung_PWM wird zunächst über einen Round-Block gerundet und anschließend durch einen Abs-Block geleitet, um eine positive, ganzzahlige PWM zu erzeugen.
  • Da die Pumpen erst ab einem PWM-Wert von 71 anlaufen, wird dieser Wert über den Lookup Table Regelung_PWM-Offset als Offset hinterlegt:
 0 % ≙ 0 PWM
 1 % ≙ 71 PWM
 100 % ≙ 255 PWM
  • Das Offset-Signal wird über zwei Switch-Blöcke weitergeleitet:
 PR_PWM_>_0 steuert die Zuflusspumpe bei positiver PWM,
 PR_PWM_<=_0 steuert die Abflusspumpe bei negativer PWM.
  • Das Vergleichssignal PWM_Vergleich entscheidet über die Umschaltung:
 Wenn PWM > 0: PWM_Vergleich = 0
 Wenn PWM ≤ 0: PWM_Vergleich = 1
 Steuerung erfolgt über PAR_PR_Vergleich_Switch = 0
  • Zur Entscheidungsfindung wird das Signal Regelung_PWM_round vor dem Abs-Block abgezweigt und dem Vergleichsoperator PR_Vergleichsoperator zugeführt.
 Bei positiver PWM: Ansteuerung von Regelung_PWM_Zufluss (Pins 3 und 4)
 Bei negativer PWM: Ansteuerung von Regelung_PWM_Abfluss (Pins 6 und 7)
  • Da der Arduino PWM-Block nur ganzzahlige Werte verarbeiten kann, werden alle PWM-Signale in 16-Bit-Ganzzahlen umgewandelt.
Abbildung 9: Softwareumsetzung der Komponente Pumpe_Regelung [1]

Pumpe_Stoerung

Die Komponente Pumpe_Stoerung ermöglicht die gezielte Aktivierung der Membranpumpe zur Erzeugung einer Störung im Wasserstandssystem. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • In Simulink wird das Signal BES_Stoerung_Prozent über einen 1-D Lookup Table (Stoerung_Prozent-PWM_Offset) einem PWM-Wert zugeordnet. Es gilt:
 0 % ≙ 0 PWM
 1 % ≙ 71 PWM
 100 % ≙ 255 PWM
  • Der Offset von 71 sorgt dafür, dass die Pumpe bereits bei geringen Störprozentwerten anläuft.
  • Das berechnete Signal Stoerung_PWM wird in eine 16-Bit-Ganzzahl umgewandelt.
  • Anschließend erfolgt die Ausgabe über PS_Pumpe_Stoerung_PWM und PS_Pumpe_Stoerung_Drehrichtung an die PWM-Pins 8 und 9 des Arduino.
Abbildung 10: Softwareumsetzung der Komponente Pumpe_Stoerung [1]

Regelung

Die Komponente Regelung bildet das Herzstück des Systems. Sie verarbeitet den Regelfehler und gibt ein PWM-Signal zur Ansteuerung der Zulaufpumpe aus. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • In Simulink wird kontinuierlich die Differenz d_h zwischen h_soll und h_mess berechnet.
  • Der Fehler wird in einen P-Anteil und einen I-Anteil aufgeteilt.
  • Die Verstärkungen erfolgen über die Parameter PAR_RG_KP (P-Anteil) und PAR_RG_KI (I-Anteil).
  • Der I-Anteil wird über einen Integrator mit Anti-Windup-Grenzen (−255 bis 255) summiert.
  • Beide Anteile werden anschließend im Sum-Block addiert.
  • Das Ergebnis wird im Saturation-Block von −255 bis 255 begrenzt, um die Stellgröße Reglung_PWM zu erzeugen.
  • Dieses Signal wird direkt an die Komponente Pumpe_Regelung übergeben.
Abbildung 11: Softwareumsetzung der Komponente Regelung [1]

Sensor

Diese Komponente misst den aktuellen Wasserstand über den Differenzdrucksensor MPX5010DP. Um die Qualität der Messwerte zu erhöhen, wurden sowohl Hardware- als auch Softwarefilterungen umgesetzt. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • Die Versorgungsspannung des Sensors ist über ein Power Supply Module (PSM) vom Arduino entkoppelt, um die Spannung zu stabilisieren.
  • Die analoge Ausgangsspannung wird über A0 eingelesen.
  • Eine zusätzliche Ausgangsfilterung gemäß AN1646 wurde zur Dämpfung des Sensorrauschens auf einer Lochrasterplatine umgesetzt.
  • Die Software verwendet einen PT1-Filter nach Prof. Dr.-Ing. Mirek Göbel zur Signalglättung.
  • Die Filterausgabe wird gerundet, um zusätzliche Schwankungen zu reduzieren.
  • Die Zuordnung des Digitalwerts zur Höhe erfolgt mit einem 1D-Lookup Table.
  • Die Kalibrierung ergab ein Bestimmtheitsmaß R² = 0,9994 und eine Messgenauigkeit von ±5 mm.
Abbildung 12: Softwareumsetzung der Komponente Sensor [1]

I2C_LCD_20x4

Diese Komponente stellt die aktuellen Mess- und Sollwerte des Wasserstands auf einem LCD-Display dar. Die Anzeige erfolgt in Millimetern zur besseren Lesbarkeit. Die Softwareumsetzung ist in der folgenden Abbildung aufgezeigt.

  • Die Werte für h_soll und h_mess werden mit dem Faktor 1000 multipliziert, um von Metern in Millimeter umzuwandeln (PAR_LCD_Millimeter).
  • Die Signale werden über den Data-Type Conversion Block in int16 konvertiert, da Werte über 128 korrekt dargestellt werden sollen.
  • Die Kommunikation mit dem Display erfolgt über die I2C-Schnittstelle.
  • Verwendet wird die LiquidCrystal_I2C Library von Frank de Brabander.
  • Die Erstellung des IO-Device-Blocks erfolgte anhand des MATLAB-Tutorials „Get Started with IO Device Builder“. [7]
Abbildung 13: Softwareumsetzung der Komponente I2C_LCD_20x4 [1]

Systemtest und Ergebnisse

Dieses Kapitel dokumentiert die Tests des realen Systems sowie die wichtigsten Ergebnisse.

Systemverhalten bei Sollwertansteuerung und Störungseinfluss

Die Tests wurden mit den Reglerparametern 𝐾𝑃 = 10000, 𝐾𝐼 = 5000 bei einer Frequenz von 1 Hz durchgeführt. Im ersten Versuch (Abbildung 14) wurde eine Sollhöhe von 0,30 m bei Sekunde 15 eingestellt. Die Ist-Höhe folgte verzögert und schwang zunächst über, bevor sie sich nach etwa 70 s im Toleranzbereich von ±5 mm einpendelte.

Trotz implementierter Anti-Windup-Maßnahme musste sich der I-Anteil des Reglers abbauen, wodurch eine träge Reaktion entstand. Die Filterung reduzierte zwar das Sensorsignalrauschen, verursachte jedoch ein Delay von bis zu 2 s. Die PWM-Werte zeigen den erwarteten Ablauf und steuern je nach Bedarf die passende Pumpe für den Zu- oder Abfluss an

Abbildung 14: 1. Systemtest mit Anfahren der Soll-Höhe [1]

Im zweiten Versuch (Abbildung 15) wurde bei Sekunde 70 eine Störung mit 90 % Intensität zugeschaltet. Die Folge war ein kurzzeitiger Abfall der Wasserhöhe, welcher ab Sekunde 81 durch das System kontrolliert kompensiert wurde. Die vollständige Störkompensation wurde nach etwa 70 s erreicht. Die Störkompensation mit PI-Regler ist somit möglich.

Die Reaktion auf die Störung zeigte jedoch auch eine Sensorverzögerung infolge Messkette und Filterung, sowie eine erkennbare Asymmetrie der PWM-Werte bei Zufluss- und Störungspumpe, was auf unterschiedliche reale Fördermengen hindeutet.

Abbildung 15: 2. Systemtest mit Störung [1]

Ergebnisse

Das System erreicht die gewünschte Sollhöhe zuverlässig, zeigt jedoch Überschwinger und reagiert verzögert, verursacht durch Filterung, Messkettenträgheit und physikalische Totzeiten. Die implementierte Anti-Windup-Funktion arbeitet wie gewünscht und verhindert eine unkontrollierte Aufintegration des Reglers.

Die Störkompensation mit 90 % Intensität ist grundsätzlich möglich, benötigte im Test jedoch rund 70 s. Dabei zeigte sich, dass der P-Anteil allein nicht ausreicht, um die Abweichung auszugleichen – erst der I-Anteil sorgt für eine vollständige Kompensation. Die PWM-Steuerung der Pumpen reagiert verzögert, was vermutlich auf Unterschiede in der Förderleistung und auf Druckeinflüsse in den Leitungen zurückzuführen ist. Trotz erreichter Sollhöhe bleiben kleine Schwankungen im Wasserstand bestehen; der Regelfehler geht nie exakt auf null. Um übermäßige Dynamik zu vermeiden, wurde der Regelfehler softwareseitig auf 1 mm (drei Nachkommastellen) gerundet.

Weitere Experimente zeigten:

  • Eine Frequenz von 5 Hz in Kombination mit einem höheren I-Anteil von 10000 ein besseres Regelverhalten ermöglicht.
  • Dass Störungen bis 90 % zuverlässig kompensiert werden können. Bei 100 % Störung sinkt der Wasserstand ab – der Abfluss übersteigt hier den maximalen Zufluss.

Die Störkompensation mit 90 % Intensität ist somit möglich, benötigt im Test jedoch rund 70 s.

  • Bei längeren Laufzeiten treten Probleme mit einer Leckage auf, welche die Langzeitstabilität und Störkompensation beeinträchtigten. Obwohl der reale Wasserstand optisch konstant blieb, sank der gemessene Wasserstand über die Zeit erheblich.
  • Eine eingeschränkte Not-Aus-Funktion: Zwar wird die 12 V-Leitung zuverlässig getrennt, jedoch bleiben 5 V über den Arduino aktiv, wodurch die Pumpen bei bestimmten PWM-Werten weiterlaufen können.

Die folgende Abbildung zeigt das finale System mit den umgesetzten Erkenntnissen aus den Experimenten. Dabei wurden folgende Parameter angepasst:

  • die Filter-Frequenz wurde auf 5 Hz gesetzt.
  • die Reglerparameter wurden auf 𝐾ₚ = 10000 und 𝐾ᵢ = 10000 eingestellt.
  • der Regelfehler wurde auf drei Nachkommastellen begrenzt.
Abbildung 16: Abschließender Systemtest [1]

Fazit und Ausblick

Diese Arbeit zeigt die erfolgreiche Entwicklung und Umsetzung eines geregelten Wasserstandssystems für die praxisorientierte Hochschullehre.

Zusammenfassung der Ergebnisse

Das System erreicht die Sollhöhe mit einer Genauigkeit von ±5 mm, kompensiert Störungen bis 90 % zuverlässig und zeigt ein insgesamt stabiles Regelverhalten. Der eingesetzte PI-Regler arbeitet wie erwartet, auch wenn Totzeiten, Verzögerungen und ungleiche Pumpenleistungen zu Abweichungen führen.

Bei 100 % Störung sinkt der Wasserstand, da der maximale Zufluss nicht ausreicht. Zudem wurde eine Leckage in der Messkette festgestellt, wodurch der Wasserstand fälschlich als fallend angezeigt wurde.

Didaktischer Nutzen

Das System eignet sich ideal als Demonstrator für Regelungstechnik:

  • Anschauliche Vermittlung von PI-Regelung und Störverhalten
  • Intuitive Bedienung über Konsole und Display
  • Transparenter, modularer Aufbau mit gut sichtbaren Komponenten

Optimierung und Ausblick

Verbesserungspotenzial besteht unter anderem in:

  • Erweiterung des Reglers zur Echtzeit-Anpassung von Parametern
  • Realistischere Modellierung von Totzeiten in der Simulation
  • Überarbeitung der Not-Aus-Schaltung (auch 5 V trennen)
  • Abdichtung der Messleitung für verlässliche Langzeitwerte
  • Verbesserte Zuflussführung mit Rückschlagventil zur Reduktion von Wellen

Das System bildet eine robuste, erweiterbare Basis für Lehre und Weiterentwicklung.

Anhang

Masterarbeit

Masterarbeit Hilz Denim

SVN

SVN

Poster

Masterarbeit Poster Hilz Denim

Literatur

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 eigene Darstellung
  2. 2,0 2,1 2,2 2,3 Lunze, J.: Regelungstechnik 1: Systemtheoretische Grundlagen, Analyse und Entwurf einschleifiger Regelungen. Springer-Verlag, 2020. – ISBN 978-3-662-60746-6
  3. 3,0 3,1 3,2 Göbel, M.: Systemtheorie: Vorlesung. Hochschule Hamm-Lippstadt, 2023.
  4. Kersten, P.: Mechanik – smart gelöst: Einstieg in die Physik mit Wolfram/Alpha, MATLAB und Excel. Springer-Verlag, 2017. – ISBN 978-3-662-53706-0
  5. 5,0 5,1 Zacher, S.; Reuter, M.: Regelungstechnik für Ingenieure: Analyse, Simulation und Entwurf von Regelkreisen. Springer-Verlag, 2024. – ISBN 978-3-658-45897-3
  6. Göbel, M.: Regelungstechnische Systeme: Vorlesung. Hochschule Hamm-Lippstadt, 2023.
  7. MathWorks: Get Started with IO Device Builder – MATLAB & Simulink. – URL: https://de.mathworks.com/help/simulink/supportpkg/arduino_ug/io-devicebuilder.html

→ zurück zum Profil: Denim Mike Hilz