Gewichtsgeregelte Flüssigkeitsdosierung: Unterschied zwischen den Versionen
Zeile 259: | Zeile 259: | ||
EINFÜGEN Screenshots | EINFÜGEN Screenshots | ||
=== | == Sensor- & Messtechnik == | ||
=== Primärsensor & Signalanpassung === | |||
Als Primärsensor kommt ein Dehnungsmessstreifen (kurz: DMS) zum Einsatz. Dieser beruht auf dem dehnungsresistiven Effekt. Hierbei kommt es in Folge mechanischer Ausdehnung zu einer Änderung des elektrischen Widerstands eines Leiters durch Einwirken der zu messenden mechanischen Größe. Letztere ist in unserem Fall eine Gewichtskraft. Im Hook’schen Bereich des Leitermaterials gilt für die Steigung k der Hook’schen Geraden: <br><br> | |||
<math>k=\frac{\Delta R/R}{\Delta l/l}</math><br><br> | |||
Für die Widerstandsänderung in Folge einer Dehnung ergibt sich demnach:<br><br> | |||
<math>\Delta R=k\cdot \frac{\Delta l}{l}\cdot R=k\cdot \epsilon \cdot R</math><br><br> | |||
Hierbei ist k ein Dehnfaktor, der materialabhängig und einem Datenblatt zu entnehmen ist. R ist der Basiswiderstand des DMS im ungedehnten Zustand. l ist die Gesamtlänge des Leiters und Δl die Änderung der Leiterlänge in Folge der Dehnung ϵ. Die Widerstandsänderungen ΔR sind im Verhältnis zum Basiswiderstand des DMS sehr gering, weshalb auch die Spannungsänderungen an den DMS gering sind. Daher ist die Verschaltung eines/mehrere DMS in Brückenschaltung notwendig. Die Schaltung an der in diesem Projekt verwendeten Wägezelle besteht aus vier DMS, die zu einer Vollbrücke aufgebaut sind. Die DMS sind paarweise so angeordnet, dass sich ihre Empfindlichkeitsrichtungen gegenüberstehen. Auf der Wägezelle sieht das wie in Abbildung XY dargestellt aus. | |||
HIER BILD EINFÜGEN | |||
Gemessen wird die Potentialdifferenz zwischen Knoten 2 und 3 aus Abbildung XY, welche sich mit der Formel<br><br> | |||
<math>U_a=\left( \frac{R_2}{R_1+R_2}-\:\frac{R_4}{R_3+R_4}\right)\cdot U_e</math><br><br> | |||
berechnet, Wobei die Brückenspeisespannung <math>U_e</math> konstant ist. Wie bereits beschrieben, sollen sich die Empfindlichkeitsausrichtungen gegenüberstehen, was im Falle der Vollbrücke bedeutet<br><br> | |||
<math>R_1=R_4=R-\Delta R</math> und <math>R_2=R_3=R+\Delta R</math><br><br> | |||
Werden diese Zusammenhänge in die obige Gleichung eingesetzt, so vereinfacht sich diese zu<br><br> | |||
<math>U_a(\Delta R)=\frac{\Delta R}{R}\cdot U_e=\frac{U_e}{R}\cdot \Delta R</math><br><br> | |||
Es handelt sich also um einen linearen Zusammenhang zwischen der Ausgangsspannung und der Widerstandsänderung. Weil das ΔR weiterhin klein ist, wird eine Verstärkerschaltung benötigt. Ein HX711 Breakout-Board ist speziell für Wägezellen entwickelt worden und beinhaltet einen programmierbaren Verstärker, einen 24 Bit Analog-Digital-Wandler, eine Digitalschnittstelle und weitere Komponenten (siehe Abbildung XY). | |||
HIER BILD EINFÜGEN | |||
Mit dem Verstärker lassen sich Verstärkungen von 128 (für Eingangsspannungsdifferenzen von ±20 mV) oder 64 (für Eingangsspannungsdifferenzen von ±40 mV) einstellen. Für die Eingangsspannungsdifferenzen unserer Wägezelle wird eine Verstärkung von 128 gewählt. Die verstärkte Spannung wird vom A/D-Wandler digitalisiert. Die nachgeschaltete Digitalschnittstelle übernimmt die Kommunikation nach außen zu unserem Mikrocontroller. | |||
=== Serielle Schnittstelle === | |||
Wenn am Daten-Pin „DOUT“ ein HIGH-Pegel anliegt, so ist die A/D-Wandlung noch nicht abgeschlossen. In dieser Zeit muss der Clock-Pin „PD_SCK“ auf LOW gesetzt sein. Wenn DOUT seinen Pegel von HIGH auf LOW wechselt, ist eine A/D-Wandlung abgeschlossen und es kann der Messwert ausgelesen werden. Dazu müssen 25 Pulse vom Arduino an PD_SCK geschickt werden. Ein Puls ist dabei ein HIGH-Pegel, gefolgt von einem LOW-Pegel, welche beide ca. 1µs gehalten werden sollen. Mit jedem Puls wird ein Bit an den Daten-Pin DOUT weiter geshiftet, welches vom Arduino eingelesen wird. Nach dem 25. Puls wird DOUT wieder auf HIGH gezogen, bis die nächste Wandlung abgeschlossen ist. Das 24-Bit Datum wird als Zweierkomplementzahl, angefangen beim höchstwertigsten Bit, übertragen. Softwareseitig muss der Wert also in einem 32-Bit Integer gespeichert werden. Die Timing-Tabelle zeigt Abbildung XY. | |||
HIER BILD EINFÜGEN | |||
Der Sensor liefert also einen 24-Bit Wert. Da es sich wie beschrieben um lineare Zusammenhänge handelt, kann eine Sensorkalibrierung mit zwei Messpunkten erfolgen. Die erste Messung stellt das „Nullen“ der Rohwerte (Offsetkompensation) dar, sodass sich eine Ursprungsgerade ergibt. Alle Rohdatenmessungen müssen nachfolgend offsetkompensiert genutzt werden. Mit der zweiten Messung lässt sich die Steigung der Geraden berechnen. Eingangswerte sind die offsetkompensierten Rohdaten (x-Achse), Funktionswerte sind die Gewichte in Gramm (y-Achse). Gegeben sind also die Punkte<br><br> | |||
<math>P_1(0|0)</math> und <math>P_2(r_{kal}|m_{kal})</math><br><br> | |||
<math>r_{kal}</math>: Offsetkompensierter Rohwert bei Auflegen eines bekannten Kalibriergewichts<br> | |||
<math>m_{kal}</math>: Aufgelegtes, bekanntes Kalibriergewicht in Gramm | |||
Die Steigung (hier mit <math>a</math> gekennzeichnet) berechnet sich dann zu<br><br> | |||
<math>a=\frac{\Delta y}{\Delta x}=\frac{m_{kal}}{r_{kal}}=\frac{\text{Kalibriergewicht}}{\text{Rohwert - Offset}}</math>,<br><br> | |||
sodass die Geradengleichung folgendermaßen aussieht:<br><br> | |||
<math>f(x)=m(\text{Rohwert})=a\cdot (\text{Rohwert - Offset})</math> | |||
=== Messkette === | |||
Auf Basis der erläuterten Zusammenhänge ergibt sich die Messkette in Abbildung XY. | |||
HIER BILD EINFÜGEN | |||
Die Dehnung <math>\epsilon</math> wird von den Dehnungsmessstreifen in Widerstände <math>R_{\text{DMS}}</math> proportional übersetzt. Als Messschaltung liegt die Vollbrückenschaltung vor, dessen Ausgangsspannung <math>U_a</math> von der Verstärkereinheit mit dem Faktor 128 verstärkt wird. Diese Spannung wird dann analog-digital-gewandelt. Die analoge Spannung liegt also jetzt in digitaler Form <math>U_D</math> als 32-Bit Ganzzahl im Speicher des Mikrocontrollers vor. Die Signalverarbeitung zieht von dem Wert den Kalibrieroffset ab und multipliziert ihn mit der Steigung <math>a</math>. Das Ergebnis, welches zunächst digital vorliegt, ist die Masse <math>m_D</math> des vermessenden Objekts, also das Gewicht. Zum Schluss erfolgt die Ausgabe des Ergebnisses <math>m</math> z.B. auf dem verwendeten Touchdisplay. | |||
<br> | <br> | ||
<div><ul> | <div><ul> |
Version vom 11. Januar 2024, 23:02 Uhr
Autor: Asmaa Kachout Aarourou & Daniel Gosedopp & Florian Pichmann
Betreuer: Marc Ebmeyer
Einleitung
Im Studiengang Business and Systems Engineering wird im Rahmen des Fachpraktikums "Angewandte Elektrotechnik" ein Gruppenprojekt entwickelt.
Dieses Projekt befasst sich mit einer gewichtsgeregelten Flüssigkeitsdosierung, die für Anwendungen mit grammgenauen Gewichtsanforderungen verwendet werden kann. Als Beispiel kann hier die Chemieindustrie bei der Abfüllung von Reinigungs-/Pflegeprodukten oder das Mixen von Nährstofflösungen für Pflanzen genannt werden. Auch der Einsatz in Schulen zur Durchführung von Experimenten mit Flüssigkeiten ist möglich.
Der Automat soll eine gewünschte Flüssigkeitsmenge mittels einer Pumpe und Schlauchverbindungen aus einem Tank in ein bereitstehendes Gefäß einfüllen. Die Sollmengenvorgabe wird mit einem Touchscreen realisiert. Hier kann entweder direkt das Gewicht oder die bekannte Dichte der Flüssigkeit zusammen mit dem gewünschten Volumen in z.B. Milliliter vorgegeben werden. Der Regelkreis wird mithilfe einer Wägezelle als Sensor, auf der das Zielbehältnis platziert wird, und einer Peristaltikpumpe (Schlauchpumpe) als Aktuator realisiert. Die Software (Signalverarbeitung, Regler) läuft auf einem Mikrocontroller. Die Vorgehensweise bei der Bearbeitung des Projekts orientiert sich am V-Modell, weshalb auch dieser Wiki-Artikel in die Phasen des V-Modells bis zum Komponententest gegliedert ist.
Insgesamt besteht das Projekt aus den drei Hauptteilen Hardwareaufbau, Software für Signalverarbeitung und Regler sowie Software für das Touchdisplay. Die Arbeitsaufteilung innerhalb der Gruppe erfolgt an diesen Teilen.
Anforderungen
ID | Typ (I = Info, A = Anforderung) | Kapitel | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|---|---|
001 | I | 1 | Hardware | ||||
002 | A | Es muss eine Wägezelle verbaut werden, welche in der Lage ist, die Flüssigkeitsmenge mit einer Genauigkeit von +/- 1g zu messen. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
003 | A | Es wird eine regelbare Peristaltikpumpe (Schlauchpumpe) verbaut. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
004 | A | Zur Sollwertvorgabe wird ein Touchdisplay verwendet (HMI). Hier kann entweder ein gewünschtes Gewicht oder die Dichte der Flüssigkeit zusammen mit dem gewünschten Volumen angegeben werden. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
005 | A | Für die Daten- und Signalverarbeitung, die Regelung und die Anbindung des Touchdisplays wird ein Arduino Mikrocontroller genutzt. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
006 | A | Es müssen zwei Behälter (z.B. Becherglas) vorhanden sein. Einer dient als Vorrat, der Andere als Zielgefäß. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
007 | A | Der Transport der Flüssigkeit zwischen den Behältern erfolgt durch Kunststoffschlauchverbindungen. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
008 | A | Die Energieversorgung wird von einem externen Netzteil übernommen. Dieses muss genug Leistung haben, um die gesamte Elektronik zu betreiben. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
009 | I | 2 | Software | ||||
010 | A | Für die Erstellung der Software wird Matlab/Simulink verwendet. Ggf. wird aus dem Modell C-Code generiert, welcher auf den Arduino geflasht wird. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
011 | A | Die Software muss die Eingabe auf dem Touchdisplay zu einem Sollwert für die Regelung verarbeiten. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
012 | A | Es muss ein Kalibriermodus für die Wägezelle vorhanden sein. Die Kalibrierung wird ebenfalls mit Hilfe des Touchscreens vorgenommen. Hierzu ist ein Kalibriergewicht notwendig. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
013 | A | Das gemessene Ist-Gewicht wird mit dem Sollwert zu einer Regeldifferenz verrechnet, sodass der Regler eine Stellgröße zur Ansteuerung der Pumpe berechnen kann. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
014 | A | Es wird ein stetiger Regler verwendet. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
015 | I | 3 | Dokumentation | ||||
016 | A | Alle Projektdateien werden in SVN hinterlegt. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 | |
017 | A | Das gesamte Projekt wird im Wiki dokumentiert. | Pichmann | 05.10.2023 | Kachout, Gosedopp | 06.10.2023 |
Anzahl | Komponente | Preis |
---|---|---|
1 | Kamoer KCM Peristaltikpumpe | 50,38€ |
1 | Arduino Mega 2560 | 15,95€ |
1 | Wägezelle RBS15855 | 1,95€ |
1 | HX711 24 Bit ADU | 0,89€ |
1 | Touchdisplay | € |
1m | Kunststoffschlauch 6mm | 9,49€ |
Funktionaler Systementwurf/Technischer Systementwurf
Komponentenspezifikation
Die erforderlichen Komponenten und ihre spezifischen Anforderungen sind in diesem Abschnitt detailliert beschrieben. Der Schwerpunkt liegt auf der Implementierung komplexer Projektmethoden zur gewichtsgeregelten Flüssigkeitsdosierung. Um eine präzise und benutzerfreundliche Dosierung sicherzustellen, wurden während dieser Untersuchungen mehrere wesentliche Schlüsselkomponenten und Funktionen sorgfältig implementiert.
Wägezelle
Die Wägezelle ist für die präzise Messung des Gewichts der zu dosierenden Flüssigkeit verantwortlich. Die Wägezelle verstärkt und digitalisiert das Signal mit kalibrierter Genauigkeit und dem HX711 24-Bit Analog-Digital-Wandler. Diese Kombination bildet das Fundament für eine äußerst präzise Dosierung, da sie eine beeindruckende Genauigkeit von +/- 1g bei der Messung der Flüssigkeitsmenge ermöglicht.
Kamoer Peristaltikpumpe
Die Peristaltikpumpe ist sehr präzise darin, Flüssigkeit zu dosieren. Diese Schlauchpumpe ermöglicht nicht nur eine präzise Steuerung des Flüssigkeitsflusses, sondern hilft auch, die zu dosierenden Substanzen schonend zu handhaben, indem sie peristaltische Bewegungen verwendet.
Eingänge
- Wartezeit [s]
- Regeldifferenz
Ausgänge
- STEP An Motortreiber: Puls löst Motorbewegung um einen Schritt aus
- DIR An Motortreiber: Drehrichtung des Motors
- ENABLE An Motortreiber: Motorbewegung zulassen oder nicht
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | 1 | Sobald die Regeldifferenz Null bzw. fast Null ist, wird keine Motorbewegung zugelassen, d.h. ENABLE ist auf LOW. | Kachout, Gosedopp | 13.11.2023 |
2 | 1 | ENABLE wird auf HIGH gesetzt, solange geregelt wird. | Kachout, Gosedopp | 13.11.2023 |
3 | 1 | Am DIR-Pin liegt immer der Pegel für die korrekte Pumprichtung an. Da nur in eine Richtung gepumpt wird, ist dieser Pegel konstant und hängt von der Einbaurichtung ab. | Kachout, Gosedopp | 13.11.2023 |
4 | 1 | Der STEP Pin erzeugt immer einen HIGH-Puls, geht dann wieder auf LOW und wartet die vom Regler vorgegebene Wartezeit ab ehe erneut ein HIGH-Puls ausgegeben wird. | Kachout, Gosedopp | 13.11.2023 |
Touchdisplay
Ein innovatives Touchdisplay ermöglicht eine einfache Sollwertvorgabe. Hier kann der Benutzer nicht nur das gewünschte Gewicht, sondern auch die Dichte und das Volumen der Flüssigkeit einstellen. Um eine einfache Interaktion zu ermöglichen, bietet dieses interaktive Human-Machine-Interface (HMI) eine angemessene Displaygröße, eine ansprechende Oberfläche und die Kompatibilität mit dem Arduino.
Eingänge
- Clock (erzeugt in jedem Sample eine Flanke, ohne funktioniert Simulinkmodell nicht)
Ausgänge
- Sollgewicht [g]
- Istgewicht [g]
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | 2 | Das Sollgewicht (Sollwert der Regelung) wird über das Touchdisplay entweder direkt eingegeben oder über die Formel Sollgewicht = Dichte * Volumen berechnet. | Kachout | 10.11.2023 |
2 | 2 | Es gibt einen "Löschen" Button, um falsche Eingaben zu korrigieren. | Kachout | 10.11.2023 |
3 | 2 | Im Kalibriermodus wird mit einem bekannten 500g Gewicht kalibriert. Dazu wird zunächst der empfangene Digitalwert ohne Gewicht gespeichert . Danach wird das bekannte Gewicht aufgelegt und der Digitalwert erneut gespeichert (kalWert). Dieser Wert wird im EEPROM des Arduino gespeichert. | Gosedopp | 10.11.2023 |
4 | 2 | Mit den Kalibrierwerten berechnet sich das gemessene Gewicht zu: Istgewicht = (500g / kalWert) * Digitalwert | Gosedopp | 10.11.2023 |
5 | 2 | Es wird bei Eingaben auf dem Touchdisplay jeweils vorher angezeigt, in welchen Einheiten die Eingaben zu tätigen sind. | Gosedopp | 10.11.2023 |
6 | 2 | Das Gewicht wird in Gramm eingegeben. Die Dichte wird in kg/m³ und das Volumen in Milliliter. | Gosedopp | 10.11.2023 |
7 | 2 | Läuft die Messung, dann wird das Sollgewicht sowie das Istgewicht auf dem Display angezeigt. | Gosedopp | 10.11.2023 |
8 | 2 | Eine laufende Messung kann abgebrochen werden ("Abbruch"-Button). | Gosedopp | 10.11.2023 |
9 | 2 | Ist die Messung abgeschlossen, kann durch einen "Fertig"-Button auf die Startseite zurückgekehrt werden. | Gosedopp | 10.11.2023 |
Regler
Eingänge
- Sollgewicht [g]
- Istgewicht [g]
Ausgänge
- Wartezeit (zwischen zwei Step-Pulsen)
Parameter
- Kp
- Ki
- Kd
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | 3 | Ein stetiger Regler berechnet aus der Regeldifferenz eine Stellgröße. Diese ist konkret eine Wartezeit zwischen zwei HIGH-Pulsen. Ein HIGH-Puls erzeugt mittels Schrittmotortreiber eine Drehung um einen Schritt. | Kachout, Gosedopp | 13.11.2023 |
2 | 3 | Negative Regeldifferenzen werden durch einen "Saturation"-Block eliminiert (zu Null gesetzt), da die Pumpe die Flüssigkeit nicht zurückpumpt. | Kachout, Gosedopp | 13.11.2023 |
3 | 3 | Die Regelgröße darf nicht überschwingen, ebenfalls aus dem Grund, dass die Pumpe nicht zurückpumpt. | Kachout, Gosedopp | 13.11.2023 |
3 | 3 | Der Regler besitzt gutes Führungsübertragungsverhalten, da keine Störungen in Form von Abflüssen vorliegen. | Kachout, Gosedopp | 13.11.2023 |
4 | 3 | Der Regler muss in der Lage sein, die Sollgröße stationär zu erreichen. | Kachout, Gosedopp | 13.11.2023 |
Signalverarbeitung
Eingänge
- Istgewicht [g]
Ausgänge
- Istgewicht_filt [g]
Parameter
- T (Filterzeitkonstante)
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | 4 | Je nach Güte des Sensorsignals wird ggf. ein Tiefpassfilter zur Glättung eingesetzt. | Kachout, Gosedopp | 13.11.2023 |
Umsetzung (HW/SW)
Hardware
Die Umsetzung der Hardware umfasst die Verkabelung und Verlötung der elektrischen Komponenten, sowie die Entwicklung eines Gehäuses, worin die Komponenten untergebracht werden können.
Für das Gehäuse wurde zunächst mittels CAD-Software ein 3D-Modell entworfen, worin auch die einzelnen Komponenten mit deren Abmessungen berücksichtigt wurden. Dadurch konnten die Anordnung der Komponenten und entsprechende Größen einzelner Bauteile bestimmt werden. Durch den benötigten Bauraum stellte sich heraus, dass ein Gehäuse aus Holz sehr gut Umsetzbar ist. In diesem befinden sich dann die Peristaltikpumpe, der ArduinoMega, ein Netzteil zur Spannungsversorgung, ein Spannungswandler, ein Treibermodul für die Pumpe und ein 24bit-Analog-Digital-Umwandler, welcher das Messsignal der Wägezelle verarbeitet. Die Wägezelle selbst wird vor dem Gehäuse montiert. Diese benötigt Abstand zum festen Untergrund und zu dem "Wiegeteller", auf dem das Gefäß, in dem die Flüssigkeit gewogen wird, abgestellt werden kann. Durch diese Montageweise ist gewährleistet, dass sich die Wägezelle durch die erzeugte Gewichtskraft verformen kann und die Dehnungsmessstreifen eine elektrische Spannung erzeugen. Das HMI zur Eingabe der Flüssigkeitsdosierung wird, entgegen der ursprünglichen Idee, auf dem Gehäuse montiert, um es einfacher bedienen zu können.
Neben dem Gehäuse aus Holz wurden weitere Bauteile aus Kunststoff mittels dem Fused Deposition Modelling (FDM) Verfahren gefertigt, welche hauptsächlich die Funktion haben, einzelne Komponenten in Position zu halten.
Folgende Bauteile wurden per FDM gefertigt und verbaut:
- Aufnahme für das HMI (Deckel des Gehäuses)
- 2 Ausgüsse mit Schlauchdurchführung, inkl. 2 Halter für die Ausgüsse
- Halterung für das Netzteil
- Halterung für die Peristaltikpumpe
- Wiegeteller
In den folgenden Abbildungen ist links das 3D-Modell und rechts die Umsetzung dessen in die Realität zu sehen:
EINFÜGEN
Die elektrische Verbindung von HMI zu dem ArduinoMega erfolgt über ein Flachbandkabel. Der Arduino selbst ist so im Gehäuse montiert, dass seine USB-Schnittstelle für eventuelle Änderungen gut zugänglich ist. Alle Verkabelungen, welche vom Arduino abgehen, sowie die Verbindungen am Spannungswandler sind fest verlötet. Die restlichen Verbindungen sind steckbar.
In folgender Abbildung ist der Verdrahtungsplan zu sehen:
EINFÜGEN
Software
Die Umsetzung der Software wird auf dem Mikrocontroller ArduinoMega mittels der Mathworks Software Simulink realisiert. Sie besteht aus vier wesentlichen Bestandteilen:
- Darstellung und Funktionen des Touchdisplays
- Messsignalverarbeitung
- Regler
- Pumpenansteuerung
Für die Programmierung des Displays sind verschiedene Bibliotheken erforderlich, welche zum Beispiel Funktionen für Buttons und deren Darstellung beinhalten, worüber dann unter Anderem Sollwerte vorgegeben und eine Kalibrierung durchgeführt werden können.
Das Messsignal wird als Digitalwert empfangen. Nach korrekter Kalibrierung des Gewichtssensors, kann aus dem Digitalwert ein Gewicht abgeleitet werden.
Der verwendete P-Regler regelt den Füllvorgang des Behälters, indem er das Fördervolumen der Pumpe steuert. Das Füllen des Behälters entspricht einem System mit I-Verhalten und bildet unsere Regelstrecke.
Bei der Peristaltikpumpe handelt es sich um einen Stepmotor, welcher mittels Pulsweitenmodulation (kurz: PWM) angesteuert wird.
Aus diesen Komponenten lässt sich dann folgender Regelkreis zur Regelung des Gesamtsystems erstellen und umsetzen:
EINFÜGEN Screenshots
Sensor- & Messtechnik
Primärsensor & Signalanpassung
Als Primärsensor kommt ein Dehnungsmessstreifen (kurz: DMS) zum Einsatz. Dieser beruht auf dem dehnungsresistiven Effekt. Hierbei kommt es in Folge mechanischer Ausdehnung zu einer Änderung des elektrischen Widerstands eines Leiters durch Einwirken der zu messenden mechanischen Größe. Letztere ist in unserem Fall eine Gewichtskraft. Im Hook’schen Bereich des Leitermaterials gilt für die Steigung k der Hook’schen Geraden:
Für die Widerstandsänderung in Folge einer Dehnung ergibt sich demnach:
Hierbei ist k ein Dehnfaktor, der materialabhängig und einem Datenblatt zu entnehmen ist. R ist der Basiswiderstand des DMS im ungedehnten Zustand. l ist die Gesamtlänge des Leiters und Δl die Änderung der Leiterlänge in Folge der Dehnung ϵ. Die Widerstandsänderungen ΔR sind im Verhältnis zum Basiswiderstand des DMS sehr gering, weshalb auch die Spannungsänderungen an den DMS gering sind. Daher ist die Verschaltung eines/mehrere DMS in Brückenschaltung notwendig. Die Schaltung an der in diesem Projekt verwendeten Wägezelle besteht aus vier DMS, die zu einer Vollbrücke aufgebaut sind. Die DMS sind paarweise so angeordnet, dass sich ihre Empfindlichkeitsrichtungen gegenüberstehen. Auf der Wägezelle sieht das wie in Abbildung XY dargestellt aus.
HIER BILD EINFÜGEN
Gemessen wird die Potentialdifferenz zwischen Knoten 2 und 3 aus Abbildung XY, welche sich mit der Formel
berechnet, Wobei die Brückenspeisespannung konstant ist. Wie bereits beschrieben, sollen sich die Empfindlichkeitsausrichtungen gegenüberstehen, was im Falle der Vollbrücke bedeutet
und
Werden diese Zusammenhänge in die obige Gleichung eingesetzt, so vereinfacht sich diese zu
Es handelt sich also um einen linearen Zusammenhang zwischen der Ausgangsspannung und der Widerstandsänderung. Weil das ΔR weiterhin klein ist, wird eine Verstärkerschaltung benötigt. Ein HX711 Breakout-Board ist speziell für Wägezellen entwickelt worden und beinhaltet einen programmierbaren Verstärker, einen 24 Bit Analog-Digital-Wandler, eine Digitalschnittstelle und weitere Komponenten (siehe Abbildung XY).
HIER BILD EINFÜGEN
Mit dem Verstärker lassen sich Verstärkungen von 128 (für Eingangsspannungsdifferenzen von ±20 mV) oder 64 (für Eingangsspannungsdifferenzen von ±40 mV) einstellen. Für die Eingangsspannungsdifferenzen unserer Wägezelle wird eine Verstärkung von 128 gewählt. Die verstärkte Spannung wird vom A/D-Wandler digitalisiert. Die nachgeschaltete Digitalschnittstelle übernimmt die Kommunikation nach außen zu unserem Mikrocontroller.
Serielle Schnittstelle
Wenn am Daten-Pin „DOUT“ ein HIGH-Pegel anliegt, so ist die A/D-Wandlung noch nicht abgeschlossen. In dieser Zeit muss der Clock-Pin „PD_SCK“ auf LOW gesetzt sein. Wenn DOUT seinen Pegel von HIGH auf LOW wechselt, ist eine A/D-Wandlung abgeschlossen und es kann der Messwert ausgelesen werden. Dazu müssen 25 Pulse vom Arduino an PD_SCK geschickt werden. Ein Puls ist dabei ein HIGH-Pegel, gefolgt von einem LOW-Pegel, welche beide ca. 1µs gehalten werden sollen. Mit jedem Puls wird ein Bit an den Daten-Pin DOUT weiter geshiftet, welches vom Arduino eingelesen wird. Nach dem 25. Puls wird DOUT wieder auf HIGH gezogen, bis die nächste Wandlung abgeschlossen ist. Das 24-Bit Datum wird als Zweierkomplementzahl, angefangen beim höchstwertigsten Bit, übertragen. Softwareseitig muss der Wert also in einem 32-Bit Integer gespeichert werden. Die Timing-Tabelle zeigt Abbildung XY.
HIER BILD EINFÜGEN
Der Sensor liefert also einen 24-Bit Wert. Da es sich wie beschrieben um lineare Zusammenhänge handelt, kann eine Sensorkalibrierung mit zwei Messpunkten erfolgen. Die erste Messung stellt das „Nullen“ der Rohwerte (Offsetkompensation) dar, sodass sich eine Ursprungsgerade ergibt. Alle Rohdatenmessungen müssen nachfolgend offsetkompensiert genutzt werden. Mit der zweiten Messung lässt sich die Steigung der Geraden berechnen. Eingangswerte sind die offsetkompensierten Rohdaten (x-Achse), Funktionswerte sind die Gewichte in Gramm (y-Achse). Gegeben sind also die Punkte
und
: Offsetkompensierter Rohwert bei Auflegen eines bekannten Kalibriergewichts
: Aufgelegtes, bekanntes Kalibriergewicht in Gramm
Die Steigung (hier mit gekennzeichnet) berechnet sich dann zu
,
sodass die Geradengleichung folgendermaßen aussieht:
Messkette
Auf Basis der erläuterten Zusammenhänge ergibt sich die Messkette in Abbildung XY.
HIER BILD EINFÜGEN
Die Dehnung wird von den Dehnungsmessstreifen in Widerstände proportional übersetzt. Als Messschaltung liegt die Vollbrückenschaltung vor, dessen Ausgangsspannung von der Verstärkereinheit mit dem Faktor 128 verstärkt wird. Diese Spannung wird dann analog-digital-gewandelt. Die analoge Spannung liegt also jetzt in digitaler Form als 32-Bit Ganzzahl im Speicher des Mikrocontrollers vor. Die Signalverarbeitung zieht von dem Wert den Kalibrieroffset ab und multipliziert ihn mit der Steigung . Das Ergebnis, welches zunächst digital vorliegt, ist die Masse des vermessenden Objekts, also das Gewicht. Zum Schluss erfolgt die Ausgabe des Ergebnisses z.B. auf dem verwendeten Touchdisplay.
Wägezellen sind Sensoren, die Kraft oder Druck in elektrische Energie umwandeln. Die Größe dieser elektrischen Leistung ist direkt proportional zur ausgeübten Kraft. Die Wägezelle verfügt über einen Dehnungsmessstreifen, der sich bei Druckeinwirkung verformt. Bei einer Verformung erzeugt der Dehnungsmessstreifen dann ein elektrisches Signal, da sich sein effektiver Widerstand verformt. Eine Wägezelle besteht normalerweise aus vier Dehnungsmessstreifen in einer Wheatstone-Brückenkonfiguration. Die von der Wägezelle erzeugten elektrischen Signale bewegen sich im Bereich von wenigen Millivolt. Da diese Signale einer weiteren Verstärkung bedürfen, kommt der HX711-Wägesensor ins Spiel. Das HX711-Wägesensormodul integriert einen HX711-Chip, einen hochpräzisen 24-Bit-Analog-Digital-Wandler (ADC). Der HX711 verfügt über zwei analoge Eingangskanäle, die durch Programmierung eine Verstärkung von bis zu 128 ermöglichen. Das HX711-Modul amplifiziert somit die geringe elektrische Leistung der Wägezelle und konvertiert dieses verstärkte Signal in digitale Werte. Diese digitalen Werte werden daraufhin in ein Arduino-Mikrocontroller-System eingespeist, um das Gewicht präzise abzuleiten.
Komponententest
Ergebnis
Zusammenfassung
Lessons Learned
Projektunterlagen
Projektplan
Projektdurchführung
YouTube Video
Weblinks
Literatur
→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)