Ich möchte die PID-Regelung (Proportional-Integral-Differential) hauptsächlich für die Temperatur lernen.
Ich möchte am liebsten durch ein einfaches Projekt lernen.
Könnten Sie bitte etwas empfehlen, das ein paar Wochen dauern würde, um es zu lernen?
Bearbeiten: Ich möchte die Temperatur eines Wassertanks steuern. Die Erwärmung erfolgt über einen Widerstand.
Die Kontrolle der Temperatur (es hängt von Ihrem Medium ab) ist nicht besonders schwer. Das war mein erstes Projekt, als ich anfing. Entschuldigen Sie, wenn ich Dinge wiederhole, die Sie bereits wissen.
Ich nehme an, Sie haben bereits eine Möglichkeit, das System zu steuern (dh eine Heiz- oder Kühleinheit) und eine Möglichkeit, Feedback vom System zu erhalten (ein Temperatursensor wie ein Thermistor oder so). Sie benötigen beide, um eine PID-Schleife zu implementieren, die eine Art geschlossener Regelkreis ist. Alles, was Sie danach wirklich tun müssen, ist ein bisschen Software zu schreiben, um Steuerbefehle zu senden, Feedback zu lesen und Entscheidungen auf Grundlage dieses Feedbacks zu treffen.
Ich würde damit beginnen, PID ohne Doktortitel zu lesen . Es ist der Artikel, den ich verwendet habe, als ich zum ersten Mal in einem wissenschaftlichen Experiment die Temperatur regulieren musste. Es enthält einige leicht verständliche Bilder und einen schönen Beispielcode (eine einfache Schleife, die Sie optimieren können, benötigt nur 30 Zeilen), der erklärt, wie Sie Ihre „Anlage“ steuern – in diesem Fall das Ding, dessen Temperatur Sie steuern möchten .
Der Kern der PID-Steuerung (Proportional-Integral-Differential) besteht darin, die momentane, vergangene bzw. prognostizierte zukünftige Leistung des Systems zu verwenden, um zu bestimmen, wie ein System zu einem bestimmten Zeitpunkt zu steuern ist, um einen bestimmten Sollwert zu erreichen. In vielen Fällen müssen Sie die Verstärkungsfaktoren des Algorithmus anpassen, um die gewünschte Leistung zu erhalten – wie schnell die Temperatur ansteigt, wie stark Sie ein Überschwingen vermeiden möchten usw. Möglicherweise stellen Sie sogar fest, dass Sie das Differential nicht benötigen oder sogar integrale Steuerung, um dorthin zu gelangen, wo Sie sein möchten!
Ja. Holen Sie sich einen Thermistor und einen Widerstand. Wählen Sie einen Widerstand, der einen anständig großen Strom (> 100 mA) ziehen kann.
Verwenden Sie Wärmeleitpaste dazwischen und kleben Sie sie mit Klebeband zusammen. Schließen Sie die Thermistorschaltung über ADC an einen Mikrocontroller an. Verwenden Sie einen Transistor, um den Widerstand zu steuern, und steuern Sie diesen mit einem PWM.
Entwickeln Sie eine PID, mit der Sie die Temperatur mit einem Drehregler steuern können, und üben Sie, eine PID zu erstellen, die über die Temperatur hinausschießt und klingelt. Machen Sie es überdämpft und brauchen Sie ewig, um die Temperatur zu erreichen, und versuchen Sie, es kritisch zu dämpfen und mit maximaler Geschwindigkeit die Temperatur zu erreichen.
Lassen Sie mich wissen, ob weitere Details helfen würden.
Nachdem Sie dies erledigt haben, reduzieren Sie ihre Wärmeleitfähigkeit, versuchen Sie, eine Stufe hinzuzufügen, die die Temperaturausbreitung verzögert, und versuchen Sie, sie gut zu kontrollieren.
Dies kann auch mit einer LED und einem Fototransistor erfolgen.
Neben der offensichtlichen Temperaturregelungsanwendung ist hier ein schönes Projekt, das eine PID-Regelung erforderte. Machen Sie sich selbst einen zeilenfolgenden Bot: http://elm-chan.org/works/ltc/report.html
Für Scilab steht ein netter PID-Simulator zur Verfügung.
Ich füge den guten Antworten nur meine 2 Cent hinzu.
Die praktische Verwendung von PID zur Temperaturregelung weist häufig ein nichtlineares Verhalten auf, wenn die Erkennung von Temperaturfehlern begrenzt ist (Verstärkung des Operationsverstärkers sättigt den Ausgang) und die zur Regelung der Temperatur verfügbare Leistung festgelegt ist.
Betrachten Sie einen Ein-Aus-Controller. Das System hat eine Latenz ab dem Zeitpunkt, an dem Wärme zugeführt wird und eine Temperaturänderung erkannt wird. Wenn es keine PID-Schleife gibt, erzeugt diese Latenz eine instabile Schleifenschwingung, und wenn es Hystereis gibt, wechselt die Stromversorgung mit Rauschen (Ein-Aus-Ein). Eine sehr hohe Verstärkung (wie z. B. ein Komparator) führt jedoch zu einem kleinen Resttemperaturfehler. Die Latenz beeinflusst die Zykluszeit und das Überschwingen.
Wenn eine externe Störung wie eine Tanklampe vorhanden ist, die erhebliche Wärme hinzufügen kann, muss der Heizungsregler reagieren, sobald ein Temperaturanstieg durch die Lampenwärme festgestellt wird. Wenn Ihr Lampenschalter nicht Teil der PID-Schleife ist, kann er den Effekt nicht "vorwegnehmen" (Verstärkung der abgeleiteten Rückkopplung). Wenn die Lampen zu viel Wärme erzeugen, kann die Temperatur natürlich nicht reguliert werden und überschreitet den Sollwert.
Ihre Heizungssteuerung mit PID-Regelung muss möglicherweise einen Eingang für den Lampenschaltzustand und eine Ausgangssteuerung haben, um die Lichtleistung als sekundäre Wärmequelle zu regulieren, falls dies wiederum zu viel ist.
Das Definieren Ihrer Anforderungen für absolute Regelabweichung, prozentuales Überschwingen und Reaktionszeit sind einige Designeingaben, die zur Optimierung Ihres PID-Regelkreises erforderlich sind. Ebenso wichtig ist es, Ihre Systemstörungen zu definieren und sie in Ihr Steuerungssystem für Eingang und Ausgang einzubeziehen. z.B. Wärmeleistung der Lampe und Auswahl von Sensor(en) und Position.
Neben Erfahrung.
Meine erste Erfahrung mit einem Warmwasserbereiter war während der Wasserbett-Ära der 70er Jahre, als ich Student war. Ich entwarf meinen eigenen Temperaturregler mit einem Thermistor, einer Steuerschaltung und einem Nulldurchgangs-Triac-Schalter für die Heizung. Ich begann mit der Komparatorsteuerung und fand eine ungewöhnliche Reaktion beim Springen im Bett. Also habe ich eine proportionale Steuerung mit ungefiltertem Rauschen am Sensor hinzugefügt, um mir proportionale "fehlende Zyklen" zu geben, wenn der ZCS-Triac nahe der Schwelle eingeschaltet war. Ich konnte die Temperatur innerhalb von 0,1 ° C regulieren. Die Reaktion war weicher, aber das Ergebnis war dasselbe.
Ich fand, dass der größte Fehler in der Position und winzigen Änderungen des Wasserdrucks am Sensor lag. (Ich war damals winzig, nur 185 Pfund, aber auf einem 2000-Pfund-Wasserbett war eine Änderung des Wasserdrucks von <10% winzig)
Der Wärmewiderstand zwischen dem Sensor und dem Wasserbett erzeugte abhängig vom Wasserdruck gegen den Sensor einen winzigen Offset-Fehler. In Ihrem Wassertankszenario könnte der Sensorfehler durch die Größe des Tanks und den Abstand zwischen Sensor und Heizung oder Sensor und der am weitesten entfernten Wasseroberfläche oder die Wasserflussrate oder Blasen zwischen Sensor und Heizung verursacht werden.
In meinem Fall sank der Wärmewiderstand jedes Mal, wenn ich ins Bett sprang, durch zusätzlichen Druck leicht, und das Power-Licht leuchtete ein oder zwei Minuten lang schwächer, bis die Temperatur um ein Zehntel Grad fiel oder dem scheinbaren Temperaturanstieg durch zusätzliches Gewicht und Druck entsprach das Wasserbett gegen den Thermostat.
(Lektion gelernt. Störquellen und deren Auswirkungen auf Regelsystemfehler nicht vernachlässigen)
Es gibt eine großartige PID -Simulations-App, mit der Sie die Abstimmung von PID-Schleifen üben und das Live-Feedback sehen können. Es wird von PIDexplained.com erstellt und ist im Microsoft Store erhältlich.
PIDexplained.com hat auch eine großartige Beschreibung der Mathematik hinter einer PID-Schleife.
Kortuk
J. Pölfer
Rex Logan
Kortuk