Arduino PID Library - Helligkeitsregelung

Arduino PID Library - Helligkeitsregelung: 5 Schritte

PID-Definitionen:

Der Proportional- / Integral- / Differentialregler oder der PID-Regler oder nur der PID-Regler ist eine Prozesssteuerungstechnik, die Proportional-Integral- und Derivativ-Aktionen kombiniert. Dadurch wird das Fehlersignal durch Proportional-Integral-Aktion minimiert und durch eine mit dem Präemptiv-Regler erzielte Geschwindigkeit gelöscht abgeleitete Aktion.
Es basiert auf einer mathematischen Modellierung der Reaktion eines zu steuernden Schleifenprozesses.

In der Praxis befinden sich die PID-Regler in elektronischen Reglern, die als "Single-Loop" bezeichnet werden, häufig mit Mikroprozessoren, und auch über Software auf speicherprogrammierbaren Steuerungen (SPS) und anderen Steuergeräten.

In diesem Projekt simulieren wir eine Helligkeitsregelung mit Arduino.
Auf dem Arduino wird die PID-Bibliothek ausgeführt, die sich unter folgender Adresse befindet:

http://playground.arduino.cc/Code/PIDLibrary

Neben der PID-Bibliothek für Arduino wird auch das PID-Frontend für die Verarbeitung benötigt, das eine grafische Benutzeroberfläche ist, um die Steuerparameter wie P, I, D, Sollwert und Arbeitsweisen usw. zu konfigurieren. .; Durchführen einer benutzerfreundlichen Oberfläche mit Arduino.
Sie können das PID_FrontEnd auch über den obigen Link herunterladen.

Da wir mit Arduino und Processing arbeiten werden, müssen wir die IDE und Processing 1.0.1 2.0b8 von Arduino auf unserem Computer installieren.
Damit die Verarbeitungssoftware ordnungsgemäß mit PID_FrontEnd ausgeführt werden kann, muss auf unserem Computer auch die Bibliothek "ContorlP5" für die Verarbeitung installiert sein.
Sie können die Bibliothek "ControlP5" direkt über den unten stehenden Link herunterladen:

http://www.sojamo.de/libraries/controlP5/#installation

Für Details zu PID-Steuerungsprozessen empfehle ich Ihnen, die Ersteller-Website der PID_V1-Bibliothek zu besuchen.

http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

Besuchen Sie auch die "Control Guru" -Website, um weitere Informationen zu Automatisierung und Steuerung zu erhalten.

http://www.controlguru.com/pages/table.html

Details zu "Control Systems" finden Sie auf der Website:

http://www.facstaff.bucknell.edu/mastascu/econtrolhtml/CourseIndex.html









Zubehör:

Schritt 1: Konstruktive Aspekte - Teil Eins

Kommen wir nun zu den konstruktiven Aspekten unseres Projekts:

Wir werden zwei Tests durchführen, einen mit der simulierten Umgebung durch eine dunkle Röhre (diese Umgebung lässt keine Störungen von außen zu) und einen weiteren Test mit der offenen Umgebung, bei dem wir externe Störungen verursachen und so das Systemverhalten überprüfen können.


Test - 1
Die Umgebung wird durch eine dunkle Röhre (schwarz) simuliert.
An einem Ende der Röhre befindet sich eine weiße LED mit hoher Helligkeit (sie wird zur Beleuchtung der Umgebung verwendet). Am anderen Ende der Röhre werden wir einen LDR haben (der LDR wird verwendet, um die Lichtmenge in der Umgebung zu steuern, es wird das Feedback unseres Systems sein).

Die Verbindung mit dem Arduino ist sehr einfach:
Der Pin D3 (digital 3) des Arduino wird als Ausgang verwendet und mit der Anode der LED verbunden. Die LED hat einen Widerstand von 220 Ohm in Reihe mit der Anode (für die Polarisation der LED); Die Kathode der LED ist direkt mit GND verbunden.
Der Pin A0 (analog 0) des Arduino wird mit dem LDR verbunden und als Analogeingang verwendet. Das eine Bein des LDR ist direkt mit der +5 V-Versorgung verbunden, und das andere Bein des LDR ist mit einem Pulldown-Widerstandswert von 10 K verbunden (der Widerstand wird mit dem LDR in Reihe geschaltet und mit GND verbunden.) Als Schnittpunkt des LDR + -Widerstandes erhalten wir das Ausgangssignal des Lichtsensors, der an den Pin A0 des Arduino angeschlossen wird.

Schauen Sie sich die Bilder an, um zu wissen, wie die Schaltung von Sensoren und Aktoren mit Arduino zusammengeschaltet wird. Die Schaltung wurde mit Fritzing entwickelt.












Schritt 2: Konstruktive Aspekte - Teil Zwei

Test - 2
Jetzt kann das System äußeren Einwirkungen ausgesetzt sein, die als Störungen wie Abschattung oder übermäßiges Licht im Sensor oder in der Umgebung bezeichnet werden oder sogar den Sensor blockieren.

Die Störungen werden automatisch von der Arduino_PID gesteuert, dh:
Wenn das einfallende Licht auf dem LDR abnimmt (simuliert durch einen Schatten auf dem LDR), erhöht das System automatisch die Helligkeit der LED und versucht, eine konstante Umgebungsbeleuchtung aufrechtzuerhalten.
Wenn das einfallende Licht auf dem LDR zunimmt (eine Taschenlampe kann die Helligkeit für Simulationszwecke erhöhen), verringert das System die Helligkeit der LED, um eine konstante Umgebungsbeleuchtung aufrechtzuerhalten.

Ein weiteres Detail dieses speziellen Tests ist, dass der von einem Potentiometer gesteuerte Sollwert nicht mehr benötigt wird, um die Sollwertkonfiguration über PID_FrontEnd zu verwenden.

In den Bildern haben wir die Schaltung von Sensoren und Aktor der Verbindung mit Arduino.


Schritt 3: Programmieren von Aspekten



1 - Laden Sie die Bibliotheken herunter und entpacken Sie sie:
PID_V1 in das Bibliotheksverzeichnis der Arduino IDE;
Front-End-PID in einen Ordner auf Ihrem Computer;
ControlP5 in das Verzeichnis der Processing Libraries.

2 - Starten Sie die Arduino IDE und öffnen Sie die Datei "PID_FrontEnd_ArduinoSampleCode" aus dem Ordner "PID_FrontEnd".
Senden Sie diese Skizze für Arduino.

3 - Starten Sie die "Verarbeitung" und öffnen Sie die Datei "PID_FrontEnd_v03" aus dem Ordner PID_FrontEnd.
Führen Sie die Anwendung aus.

Schauen Sie sich einige Bilder an, die sich auf den oben beschriebenen Prozess beziehen:



Insbesondere für den zweiten Test; Wir müssen dem Arduino die folgende Skizze schicken:
(Diese Skizze wird anstelle der Datei "PID_FrontEnd_ArduinoSampleCode" verwendet.)
Sie können diese Skizze über den folgenden Link herunterladen.

http://www.4shared.com/file/Y5BIbUdR/LED_PIDcontroller_2.html

Beachten Sie, dass die Sollwertregelung über ein Potentiometer erfolgt.
Als Störquelle können wir eine Taschenlampe verwenden, um mehr Licht im LDR zu fokussieren, oder einen kleinen Bildschirm, um den LDR zu beschatten.
Wenn der Prozess gestört ist, erhöht / verringert der Regler die Helligkeit der LED, um den Ausgang unter Kontrolle zu halten, und zwar auf dem durch den Sollwert festgelegten Niveau (im Falle eines "Schattens" erhöht sich der Regler Lichtintensität der LED) können wir diese Änderungen in PID_FrontEnd grafisch sehen.

Schritt 4: PID FrontEnd GUI

Beim Ausführen der Anwendung wird das Fenster PID_FrontEnd geöffnet.

In diesem Fenster können wir folgende Funktionen notieren:
TOGGLE_AM - ändert den PID-Modus auf automatisch oder manuell;
SETPOINT - gewünschte Lichtmenge in der Umgebung (von 0 bis 1024);
EINGANG - der tatsächliche Wert der Umgebungshelligkeit (gemessen von LDR und als Rückmeldung zurückgegeben);
AUSGABE - der vom Arduino als PID-Regler zurückgegebene Steuerwert (Helligkeitsregelung der an Pin D3 angeschlossenen LED);
Kp - Konstante der Proportionalregelung;
Ki - Konstante der integralen Steuerung;
Kd - Konstante der Ableitung;
TOOGLE_DR - ändert die PID-Richtung (wenn die Ausgabe mit der Eingabe wächst oder umgekehrt);
SEND_TO_ARDUINO - Daten an den Arduino senden;

PID-Eingang / Sollwert - Grafikfenster für die Sollwert- (Sollwert für Helligkeit) und Eingabekurven (Helligkeitsmaß LDR).
PID-Ausgang - Grafikfenster für den Steuerausgang der LED.


In den Bildern sehen wir den auf 950 (grüne Linie) eingestellten Sollwert, die Eingangsvariable (rote Linie) und die Ausgangsvariable PID-Regelung (blaue Linie) zur Helligkeitsregelung.


Die beschriebenen Informationen können wir anhand eines Blockschaltbildes nachvollziehen (siehe Bilder).
Dabei ist zu beachten, dass der Fehler = SP - PV und der Fehler auf den PID-Regler angewendet werden, der das MV für die Prozesssteuerung generiert.
PV = Prozessvariable;
SP = Sollwert;
MV = Stellgröße.

Jeder Reglertyp: P, I und D kann unabhängig oder gemeinsam verwendet werden als:
P-Regler (sehr benutzt)
PI-Regler (sehr gebraucht)
PD-Controller (selten verwendet)
PID-Regler (am häufigsten verwendet)

Schauen Sie sich die Bilder an und Sie können eine Änderung des Sollwerts beobachten (von 950 auf 700 und dann wieder auf 950) und Sie können die Leistung der PID-Regelung an der Eingangsvariablen sehen.
Sie können beobachten, dass die Steuerung ein wenig schwankt (charakteristisch für jedes gesteuerte System, ob es sich um ein System erster oder zweiter Ordnung handelt usw.).







Schritt 5: Videos

Erklärende Videos auf Youtube:

Wieder entschuldige ich mich, aber die Videos sind in Portugiesisch. Bitte verwende die ins Englische übersetzte Youtube-Bildunterschrift.

http://youtu.be/dMdtjuw9Npo

http://youtu.be/Y267-qba12M







 
Zukünftige Studien:
http://controls.engin.umich.edu/wiki/index.php/Main_Page
http://en.wikipedia.org/wiki/Controller_ (control_theory)
http://en.wikipedia.org/wiki/Control_theory
http://en.wikipedia.org/wiki/PID_controller
http://en.wikipedia.org/wiki/Process_control
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction&section=SystemModeling