Projekt 24: Wasserstandsregelung: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Projekte]] [[Datei:Wasserstandsregelung.jpg|300px|thumb|right|Wasserstandsreglung]] | [[Kategorie:Projekte]] | ||
[[Kategorie: ProjekteET MTR BSE WS2017]] | |||
[[Datei:Wasserstandsregelung.jpg|300px|thumb|right|Wasserstandsreglung]] | |||
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen des [[:Kategorie:ProjekteET_MTR_BSE_WS2017|WS 17/18: Fachpraktikum Elektrotechnik (MTR)]] im 5. Semester [https://www.hshl.de/studieren/studiengaenge/bachelorstudiengaenge/mechatronik/ Mechatronik] absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht. | Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen des [[:Kategorie:ProjekteET_MTR_BSE_WS2017|WS 17/18: Fachpraktikum Elektrotechnik (MTR)]] im 5. Semester [https://www.hshl.de/studieren/studiengaenge/bachelorstudiengaenge/mechatronik/ Mechatronik] absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht. | ||
Zeile 237: | Zeile 239: | ||
*Berechnung des gesamten Regelsystems (zum Beispiel die Übertragungsfunktion der Regelstrecke Ks) | *Berechnung des gesamten Regelsystems (zum Beispiel die Übertragungsfunktion der Regelstrecke Ks) | ||
*Testen des Systems mit einem Einheitssprung | *Testen des Systems mit einem Einheitssprung | ||
[https://youtu.be/6oZYCd5_1sU Youtube-Video] | |||
==Weblinks== | ==Weblinks== | ||
Zeile 244: | Zeile 248: | ||
*[http://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-tutorial-l298n-pwm-h-bridge/ Anschluss und Programmierung des Motortreibers] | *[http://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-tutorial-l298n-pwm-h-bridge/ Anschluss und Programmierung des Motortreibers] | ||
*[https://playground.arduino.cc/Code/PIDLibrary PID Library Arduino] | *[https://playground.arduino.cc/Code/PIDLibrary PID Library Arduino] | ||
==Literatur== | ==Literatur== |
Aktuelle Version vom 12. März 2018, 12:25 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen des WS 17/18: Fachpraktikum Elektrotechnik (MTR) im 5. Semester Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren: Brandt, Eidhoff
Betreuer: Prof. Dr. Göbel
Aufgabe
Das Projekt „Wasserstandsregelung“ befasst sich mit einer selbständigen und kontinuierlichen Regelegung der Höhe des Wasserstandes in einem Behälter. Die Aufgabe besteht darin, bei einer beliebigen Ausflussmenge des Mediums den Wasserstand möglichst konstant zu halten. Es handelt sich hier um eine klassischee Anwendung aus der Regelungstechnik.
Erwartungen an Ihre Projektlösung
- Planung eines mechanischen Aufbaus
- Planung eines elektrischen Aufbaus
- Erstellen einer "Bill of Material" (BOM)
- Entwurf eines Regelkreises
- Recherche zu bestehenden Lösungen
- Programmieren eines Arduino Uno (Programmiersprache: C)
- Testen der Regelung
- Erstellung einer wissenschaftlichen Dokumentation
- Live Vorführung während der Abschlusspräsentation
Einleitung
Der Aufbau ist zu Präsentationszwecken folgendermaßen gewählt worden: In einer handelsüblichen 3 Liter Sonnenblumenöl Flasche ist das zu fördernde Medium Wasser. Durch einen Absperrhahn wird ein Auslass an der Unterseite simuliert, welcher als Störgröße der Regelung fungiert. Das Wasser läuft über einen Schlauch in eine Wasserwanne, aus welcher das Medium mittels einer Pumpe wieder oben in die Sonnenblumenölflasche gepumpt werden soll.
Nach abwägen verschiedenster Möglichkeiten der Regelung wurde folgender Ansatz zur Lösung der Problemstellung gewählt:
- Druckmessung mit einem Drucksensor
- Sollwertbestimmung mit einem Potentiometer
- Regelung mittels Software des Arduino Uno
- Pumpen des Wasser mit einer Tauchpumpe je nach Bedarf
Anforderungen
- Regeln des Wasserstandes auf eine einstellbare Höhe
- Einstellen der Höhe
- Kein Überlauf des Behälters
- stetige Regelung
Regelkreis
Regelkreis:
Auswahl der Elektronikkomponenten
Auswahl der Reglerkomponente: Arduino Uno
- Bereits im Praktikum verwendet
- sehr bedienerfreundlich
- günstig
- Programmiersprache C (bereits bekannt)
- umfangreiche Dokumentationen vorhanden
Auswahl des Motortreibers und der Pumpe:
- Spannungsregler auf Motortreiber sorgt für eine 5V Versorgungsspannung für den Arduino
- einfache PWM-Ansteuerung der Pumpe
- Förderleistung der Pumpe von 12L/min
- kostengünstig
Auswahl des Drucksensors: Differenzdrucksensor
- unempflindlich gegen Wasser
- Auflösung: 450mV pro kPa --> 45mV pro Zentimeteränderung der Wassersäule
Materialliste
Artikel | Anzahl | Lieferant | Artikelnr. |
---|---|---|---|
12V Pumpe | 1 | Conrad | 539082 - 62 |
Differenzdrucksensor | 1 | Reichelt | MPX 5010DP |
Stiftleiste | 1 | Reichelt | SL 1X32G |
Potentiometer | 1 | Conrad | 452867 - 62 |
Arduino Uno | 1 | Conrad | 191789 - 62 |
Motortreiber | 1 | Conrad | 1573541 - 62 |
Rohrnippel 3/4" 100mm | 1 | Globus | GLO782144626 |
Floraworld Kugelhahn 3/4" | 1 | Globus | GLO782140012 |
Rohrnippel 3/4" 40mm | 1 | Globus | GLO782144630 |
Temperguss Reduzierstück 3/4" 1" | 4 | Globus | GLO782144607 |
Teflonband | 1 | Globus | GLO782145948 |
Sonnenblumenöl Flasche | 1 | Lidl | |
Multiplexplatte | 2x1m | Eigenbestand | |
Systembox | 1 | Globus | GLO655700394 |
PVC-Schlauch 4mm | 1m | Globus | GLO680453095 |
1/2" Schlauch | 1m | Eigenbestand | |
13mm Rohr | 20mm | Eigenbestand | |
Stahlrohr 40mm | 70cm | Eigenbestand |
Aufbau
Mechanik
Arbeitsschritte:
- Sägen und Zusammenbau der Wände und Zwischenlagen des Präsentationstisches
- Durchbohren der Tischplatte mit anschließender Befestigung der Rohrleitungen
- Installation des Sonnenblumenöltanks über dem Kugelhahn
- Schweißen einer Befestigungsplatte an das Halterohr
- Befestigung des Halters an der Tischplatte
- Schlauchdurchführung zur Befüllung des Tanks
- Anbringen des Differentialdrucksensors und der Elektronik auf der Tischplatte
Elektronik
Die Elektronik wurde nach folgendem Schaltplan aufgebaut:
Auslegung des Regelkreises
Implementierung
Zuerst wurde die angeschlossene Peripherie (Drucksensor, Pumpe, Potentiometer) mit einem seriellen Monitor getestet.
Implementierung mit Arduino:
Bedienung
Die Sollgröße des Wasserstandes kann mit einem Potentiometer eingestellt werden. Ist das Potentiometer voll aufgedreht, wird die Sollgröße auf den maximalen Wasserstand (Kein Überlauf!) gestellt. Die Sollhöhe der Wassersäule ist proportional zu dem Potentiometer.
Durch Öffnen des Kugelhahns wird eine Störgröße simuliert. Ist der Kugelhahn voll aufgedreht reicht allerdings die Förderleistung der Pumpe nicht aus, um den Verlust der Höhe direkt zu kompensieren. Zum testen der Regelung sollte daher der Kugelhahn nicht maximal aufgedreht werden.
Projekterkenntnisse
- Zeitliche Planung eines komplexeren Projekts
- Planung / Auslegung von Bauteilen (BOM)
- Schnittstellen zwischen Hardware und Software
- Eigenständige Recherche von Datenblättern
- Orientierung in technischen Datenblättern
- Implementierung eines PID-Reglers
- Funktionstests und Optimierung
Fazit/Reflexion
Sowohl der mechanische als auch der elektrische Aufbau haben auf Anhieb einwandfrei funktioniert. Bei der Bauteilauswahl wären folgende Änderungen für weitere Aufbauten sinnvoll:
- kleinerer Querschnitt des Kugelhahns, damit bei vollem Aufdrehen Vzu > Vab ist
- Rückschlagventil direkt an der Pumpe (verhindert die Totzeit)
- Wassereinlass verlängern, sodass es durch "plätschern" keine verfälschten Messwerte des Drucksensors gibt
Durch die bereits gemachten Erfahrungen mit dem Arduino Uno stellte die Implementierung keine größeren Probleme dar.
Es gibt verschiedene Möglichkeiten das Projekt weiterzuführen:
- Optimierung des mechanischen Aufbaus (Rückschlagventil, anderer Kugelhahn, Verlängerung des Wassereinlasses)
- Berechnung des gesamten Regelsystems (zum Beispiel die Übertragungsfunktion der Regelstrecke Ks)
- Testen des Systems mit einem Einheitssprung
Weblinks
- Datenblatt Motortreiber
- Datenblatt Pumpe
- Datenblatt Differenzdrucksensor
- Anschluss und Programmierung des Motortreibers
- PID Library Arduino
Literatur
→ zurück zum Hauptartikel: WS 17/18: Fachpraktikum Elektrotechnik (MTR)