Raspberry Pi Temperaturregelstrecke

Mehr
4 Jahre 11 Monate her - 4 Jahre 11 Monate her #47 von Jürgen Huber
Herr Johannes Unger, Teilnehmer unseres Raspberry Pi Gewinnspieles hat uns einen Zwischenbericht mit Fotos geliefert zu seiner Umsetzung einer Temperaturregelstrecke mit einem Raspberry Pi und unserem logi.CAD 3 inkl. logi.RTS.

- Der MPC (Model Predictive Control = Modellprädiktive Regelung) ist als C-Funktion in logi.CAD 3 compact eingebunden und greift über die in Version V1.14.0 implementierte I2C-Bibliothek auf die Analogwerte zu
- Die vorgegebenen Beschränkungen von maximalen Stellgrößen werden eingehalten, was einen wesentlichen Vorteil der MPC-Regelung darstellt.
- Über einen Flag (0 oder 1) kann man das Speichern der Messdaten in ein Textfile aktivieren/deaktivieren.
- Die Regelqualität entspricht aber noch nicht derjenigen die möglich ist. Das liegt an folgenden Gründen:
o Die Auflösung des Temperatursensors ist relativ schlecht und könnte noch etwas nachgebessert werden.
o Das verwendete Prädiktionsmodell im MPC ist aus Zeitgründen „quick&dirty“ umgesetzt und spiegelt die Realität nicht sehr genau wieder -> Regelqualität ist noch nicht optimal! (Das ist aber eine reine Software-Sache und hat keinen Effekt auf die Umsetzbarkeit des Reglers!!)
o Die C-Funktion müsste noch sauber ausprogrammiert werden.
o Die Programmierung über LC3c ist eigentlich sehr angenehm, auch mit der noch nicht offiziell unterstützten C-Funktionsintegration (es ist alles auf der letzten LC3c V1.14.0 Version aufgebaut)

Anbei habe ich Ihnen einige Fotos der fertigen Hardware angehängt: Zu sehen ist der Raspberry Pi mit der Erweiterungsplatine von Logi.cals (Entwickelt von Thomas Mayer).
Angeschlossen an diese Erweiterung ist eine Platine die ein analoges Steuersignal als PWM-Signal auf einen Widerstand umsetzt und so diesen heizen kann (Dafür ist eine Spannungsquelle nötig, z.B. Labornetzteil).










Das nachfolgende Bild zeigt im oberen Plot den Soll- (blau) und Ist-Verlauf (rot) der Temperatur und der untere Plot die Stellgröße, also die Spannung die an die PWM-Platine übergeben wird.




Schlussfolgernd kann man dabei sehen:
-> Die Stellgröße ist auf das Intervall zwischen 0 und 2 beschränkt und wird eingehalten
-> Der Sensor ist leider viel zu ungenau (+-3-4 Grad Celsius lt. Datenblatt), um die Temperatur fein einregeln zu können (auch das Ansprechverhalten ist teilweise nicht ganz nachvollziehbar -> Messfehler ist relativ groß, wenn man den Temperaturwert mit einem Multimeter vergleicht).
-> Die Prädiktionsmodellungenauigkeit ist bei ca. 200 Sekunden zu sehen, an der die Stellgröße angehoben wird, obwohl die Sollgröße noch nicht erreicht ist.
-> Da das Prädiktionsmodell noch zu ungenau ist, wird der Sollwert vorerst nur direkt übergeben -> Stellgröße schaltet um, wenn Sollwert sich ändert.
Letzte Änderung: 4 Jahre 11 Monate her von Jürgen Huber.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
3 Jahre 4 Monate her #186 von Johannes Unger
Liebe logi.cals Community,

Mittlerweile konnte ich das vor über einem Jahr angefangene Projekt, einen MPC auf den Raspberry Pi zu bringen, fertigstellen und kann Ihnen nun die Ergebnisse präsentieren.

Die Fertigstellung wurde im Zuge eines internen Projektes bei VOIGT+WIPP Engineers GmbH durchgeführt. Dabei wurde auf das durch logi.cals mit dem Gewinnspiel initiierten Ansätzen und Ergebnissen, die bereits im vorangegangenen Beitrag vorgestellt wurden, aufgebaut. Das Ergebnis ist eine einsatzfähige Implementierung eines MPC´s mit online Optimierung, der über die logi.cals Produkte logi.CAD 3 compact und logi.RTS eingesetzt werden kann.

Als Demonstrationsbeispiel wurde eine Temperaturregelstrecke aufgebaut, welche im Folgenden detailliert erläutert wird.

Aufbau der Temperaturregelstrecke
Der im vorigen Beitrag vorgestellte Aufbau wurde erweitert um die Auflösung der Sensoren zu verbessern, wobei immer auf die Portierbarkeit auf die „alte“ Hardware geachtet wurde. Das „neue“ System besteht aus einem Raspberry Pi 2 und Horter & Kalb SPS Komponenten, einem PWM Treiber, einem Widerstand und einem Temperatursensor mit 10-fach Verstärker. Schematisch ist der Aufbau in Abbildung 1 dargestellt.


Abbildung 1: Schematische Darstellung der Temperaturregelstrecke

Der Raspberry Pi kommuniziert über den i2c-Bus mit den SPS Komponenten, die analoge Spannungssignale einlesen und hinausschreiben können. Eine analoge Ausgangsspannung wird in weiterer Folge mit einem PWM Treiber auf ein PWM Signal umgewandelt, der einen Widerstand erhitzt. Die Temperatur des Widerstandes wird mit einem verstärkten Temperatursensor gemessen und steht über die analoge Eingangskarte dem Raspberry Pi zur Verfügung. Am Raspberry Pi läuft die echtzeitfähige Laufzeitumgebung logi.RTS, in der der MPC implementiert ist. Der dazu aufgebaute Versuchsstand ist in Abbildung 2 dargestellt.


Abbildung 2: Reale Aufbau der Temperaturregelstrecke (Versuchsstand: VOIGT+WIPP)

Parallel zur Ausführung mit den Horter & Kalb Komponenten, kann auch die von Thomas Mayer entwickelte Erweiterungsplatine ( Link ) verwendet werden. Dies wurde ebenfalls getestet.

Theorie der modellprädiktiven Regelung
Modellprädiktive Regelungen benutzen ein mathematisches Modell des realen Prozesses um die Regelgröße unter vorgegebenen Randbedingungen optimal zu regeln. Dazu wird das Modell laufend mit den aktuellen Prozessgrößen abgeglichen und für eine Prädiktion des zukünftigen Verhaltens des Prozesses herangezogen. Diese Prädiktion wird in einer in Echtzeit ausgeführten Optimierung weiterverwendet, um die optimale Stellgröße für den aktuellen Zeitschritt zu finden. Das Ergebnis, ist ein sehr schnelles und stabiles Regeln des Prozesses möglich, wodurch signifikante Verbesserungen im Vergleich zu PID-basierten Konzepten ermöglicht werden.

MPC basiert auf einem online Optimierungsproblem
  • Ein mathematisches Modell im MPC prädiziert die Regelgröße anhand der aktuellen Systemzustände sowie der zukünftigen Stellgrößen und (gemessenen) Störgrößen
  • Stellgrößen werden durch Optimierung einer Kostenfunktion unter Nebenbedingungen in jedem Zeitschritt für den Prädiktionshorizont neu berechnet
  • Zusätzliche Kostenfaktoren können in die Kostenfunktion integriert werden

MPC Vorteile:
  • Mehrgrößensysteme (MIMO) sind mit einem MPC regelbar
  • Störungen sind im Modell integrierbar
  • Minimierung des Regelfehlers
  • Reaktion auf bekannte zukünftige Sollwertänderungen
  • Optimierung des Prozesses in jedem Zeitschritt
  • Statische/Dynamische Beschränkungen sind direkt berücksichtigt
  • Nichtlinearitäten können berücksichtigt werden

MPC Nachteile:
  • Höherer Aufwand bei Design und Auslegung des Reglers
  • Mathematisches Modell ist erforderlich

Potentiale:
  • „Schwierige“ Prozesse können mit hoher Genauigkeit geregelt werden
  • Transiente Prozessänderungen können beschleunigt werden
  • Totzeiten können direkt kompensiert werden
  • Verluste durch Sollwertänderungen können minimiert werden

Implementierung des MPC mittels logi.cals
Die Implementierung des MPC wurde mit logi.CAD 3 compact (Version 1.60.0) und logi.RTS (Version 3.1.5) umgesetzt. Der MPC ist dabei als C-Funktion programmiert und über die gegebene Schnittstelle eingebunden. Messdaten, die durch Abspeichern der Messwerte gefunden wurden, wurde für die Identifikation des mathematischen Modells verwendet. Das Modell besteht dabei aus einem einfachen System erster Ordnung mit einer passend gewählten Totzeit von 5 Sekunden. Dadurch ergeben sich 10 Systemzustände die mit einer Abtastzeit von 500ms implementiert sind. Das bedeutet, dass alle 500ms ein Optimierungsproblem mit dem aktuellen Systemzustand (Temperatur) gelöst wird und jeweils nur die erste errechnete Stellgröße an das System geschrieben wird. Im folgenden Zeitschritt wird dieser Prozess wiederholt.

Zusätzlich kann über einen Flag (0 oder 1) das Speichern von Messdaten in ein Textfile aktivieren/deaktivieren werden.

Leistungsfähigkeit des MPC
Zum Vergleich des MPC und dessen Leistungsfähigkeit wurde ebenfalls ein PID Regler über Structured Text implementiert und für die Regelung verwendet.
In den Ergebnissen kann man den Vorteil des MPC gegenüber von PID Reglern, die keine direkte Totzeitkompensation zulassen deutlich sehen. In Abbildung 3 ist der direkte Vergleich dargestellt.


Abbildung 3: Direkter Vergleich zwischen PID und MPC.

Ersichtlich ist, dass der Fehler zwischen Soll- und Ist-Wert beim PID Regler signifikant größer ist. Weiters ist der MPC in der Lage, die Sollwertänderungen frühzeitig zu berücksichtigen. Dadurch ist der Regelfehler speziell um die Sollwertänderung wesentlich besser als beim konventionellen PID Ansatz. Die Schwingungen kommen hauptsächlich von der vorhandenen Totzeit in der Temperaturmessung.
Der PID Regler könnte zwar durch eine ruhigere Parametrierung verbessert werden, doch verliert man dadurch die Schnelligkeit der Regelung. Man muss also zwischen Regelgenauigkeit und Regelgeschwindigkeit entscheiden. Diese Entscheidung in dieser Form entfällt mit einem MPC.

Zusammenfassung
Zusammenfassend kann man festhalten, dass die Implementierung des MPC an einem Raspberry Pi möglich ist und durch die universell einsetzbare C-Funktion auch in andere Steuerungen implementiert werden kann. Logi.RTS bietet dazu die notwendige Laufzeitumgebung.
Anhänge:
Folgende Benutzer bedankten sich: Jürgen Huber

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

logi.cals Österreich

Adresse

Europaplatz 7/1,
3100 St. Pölten

logi.cals Deutschland

Adresse

Postfach 1306,
40738 Langenfeld

Benutzer

Registrieren
© 1987 - 2019 logi.cals GmbH