Prozessmodellierung Lernende Regelung mit SPS

Experimente haben gezeigt, dass ein neuronales Netz einen mathematischen Zusammenhang wie zum Beispiel eine quadratische Sinusfunktion erlernen kann.

Bild: Hochschule Mannheim
07.09.2015

Einige Prozesse können mit Standard-PID-Reglern nur schlecht geregelt werden, da die Prozessmodellierung mathematisch aufwändig oder gar nicht möglich ist. Alternative Methoden zur mathematischen Reglerauslegung sind Fuzzy-Regler oder lernende Regler mit neuronalen Netzen. Damit lässt sich das Prozessverhalten modellieren und daraufhin ein modellbasierter Regler entwickeln.

Mit Aufkommen PC-basierter Steuerungen ist es möglich, neuronale Netze auch in SPSen ohne großen Aufwand zu implementieren. Im Gegensatz zur konventionellen Reglerauslegung, die ein mathematisches Modell der Regelstrecke erfordert, kann das Regelverhalten mit neuronalen Netzen durch Speichern statt durch Rechnen ermittelt werden. Dabei werden Soll-, Ist- und Stellwerte, die zu verschiedenen Zeitpunkten gemessen werden, in einem neuronalen Netz so abgespeichert, dass das inverse Prozessverhalten modelliert wird. Das so trainierte neuronale Netz wird als Steuerung vor den Prozess geschaltet. Zusätzlich wird der Prozess durch einen konventionellen PID-Regler geregelt, der kleine Abweichungen vom Arbeitspunkt ausgeregelt, während das neuronale Netz Arbeitspunktverschiebungen infolge von Nichtlinearitäten kompensiert. Die Erprobung dieses lernenden Regelkreises kann mit einer SPS durch Programmierung nach IEC 61131 relativ leicht vorgenommen werden.

Speichern statt Rechnen

Neuronale Netze sind in der Lage das Verhalten eines zu regelnden Prozesses zu lernen. Dabei werden die Ein- und Ausgangsgrößen gespeichert, während der Prozess läuft. In diesem sogenannten Training werden die Speicherzellen in mehreren Durchläufen auf die gemessenen Ein-/Ausgangswerte angepasst. Dadurch wird das Verhalten im Unterschied zu einem konventionellen Speicher verallgemeinernd abgespeichert.

Die Speicherzellen, die auch als Neuronen bezeichnet werden, lassen sich als Funktionsbausteine recht einfach in einer SPS programmieren und zusammensetzen. Für jeden Eingang x[i] wird eine Speicherzelle w[i] vorgesehen. Aus ihrem Skalarprodukt Alfa wird über eine sigmoide oder lineare Funktion die Ausgangsgröße y berechnet:

  • FOR j:=0 TO N DO

  • alpha := alpha + w[j]*x[j];

  • END_FOR

  • IF Sigmoid THEN

  • y:=1/(1+EXP((-alpha-b))); (*Sigmoide Aktivierungsfunktion*)

  • ELSE

  • y:=K*(alfa+b); (*Lineare Aktivierungsfunktion*)

  • END_IF

Die so erzeugte Ausgangsgröße y wird beim Training mit der echten, vom Prozess erzeugten Ausgangsgröße ySoll verglichen und die Abweichung bestimmt die Veränderung der Speicherzellen w[i]:

  • IF Train THEN

  • FOR i:=0 TO N DO

  • w[i]:=w[i]+eps*(ySoll-y)*x[i];

  • END_FOR

  • END_IF

Die Funktionsbausteine dieser Neuronen können nun zu einem neuronalen Netz zusammengeschaltet werden. Im nachfolgend abgebildeten Beispiel werden vier Neuronen in einer so genannten verdeckten Schicht vor das Ausgangsneuron geschaltet. Die Neuronen in der verdeckten Schicht arbeiten mit einer sigmoiden Aktivierungsfunktion, das der Ausgangsschicht mit einer linearen. Beim Training wird die Abweichung des vom neuronalen Netz geschätzten Ausgangswerts y und dem realen vom Prozess erzeugten Ausgangswert ySoll auf die Speicherzellen der Neuronen in der verdeckten Schicht durch einen Backpropagation-Algorithmus zurückberechnet. Experimente haben gezeigt, dass ein solches neuronales Netz einen mathematischen Zusammenhang, wie zum Beispiel eine quadratische Sinusfunktion, erlernen kann.

Lernen dynamischer Prozessmodelle

Neuronale Netze speichern wie oben beschrieben jedoch nur das statische Prozessverhalten ab. Um auch die Prozessdynamik zu erlernen, müssen die von der SPS zu einem diskreten Abtastzeitpunkt k gemessenen Stellwerte y und Istwerte x eines Prozesses in einem Kurzzeitgedächtnis gespeichert werden. Somit können nicht nur die aktuell auf den Prozess einwirkenden Größen, sondern auch ihre Vergangenheitswerte dem neuronalen Netz als Eingänge eingespeichert werden. Für einen PT1-Prozess mit Verzögerungsverhalten erster Ordnung, wie er etwa beim Aufheizen einer Flüssigkeit oder beim Ansteuern eines Motors auftritt, wird demzufolge zusätzlich zu den aktuell gemessenen Stell- und Istwerten y(k) beziehungsweise x(k) der um einen Abtastschritt zurückliegende Istwert x(k-1) als Prozessvergangenheit φ(k-1) vom neuronalen Netz eingelesen. Für Prozesse höherer Ordnung besteht die Prozessvergangenheit aus mehr als einem Vergangenheitswert.

Wenn das neuronale Netz damit ausreichend trainiert wurde, kann es nicht nur den aktuellen Istwert des Prozessausgangs schätzen, sondern auch den zukünftigen. Dazu werden die einen Abtastschritt aktuelleren Eingangssignale auf das neuro­nale Netz geschaltet, das somit einen Ausgangswert schätzt, der um einen Abtastschritt in der Zukunft liegt.

Außerdem ist es möglich, das inverse Prozessverhalten zu erlernen, indem der Bediener beim Training die Prozessausgangsgrößen auf den Eingang des neuronalen Netzes schaltet und die Prozesseingangsgröße, also den zukünftigen Stellwert, durch das neuronale Netz schätzen lässt.

Lernender Regelkreis

Die Struktur des in dieser Arbeit verwendeten, lernenden Regelkreises nach Miller umfasst ein künstliches neuronales Netz (KNN), das das inverse Prozessverhalten mit Hilfe der in einem Kurzzeitgedächtnis gespeicherten Prozessein- und -ausgangssignale lernt und zusammen mit einem konventionellen PI-Regler den Prozess regelt.

Das künstliche neuronale Netz (KNN) lernt das inverse Prozessverhalten, indem es am Eingang mit dem aktuellen Istwert des Prozessausgangs x(k) sowie den Prozessvergangenheitswerten φ(k-1) beschaltet mit dem am Prozesseingang wirkenden Stellwert y(k-1) trainiert wird. Das Training erfolgt, während der Prozess mit einem konventionellen PI-Regler geregelt wird. Auch wenn dieser zur Regelung ungeeignet ist, regt er doch den Prozess ausreichend an, um Stell- und Istwerte für das Training des neuronalen Netzes zu erzeugen.

Um den zukünftigen Stellwert zu schätzen, der den Prozess in der aktuellen Situation optimal ansteuert, wird das neuro­nale Netz nun mit Prozesswerten beschaltet, die einen Ab­tastschritt später gemessen wurden. Dabei wird der hierfür ­erforderliche, zukünftige Prozessausgang x(k+1) durch den aktuellen Sollwert w(k) angenähert. Nach dem Training arbeiten der konventionelle PI-Regler und das neuronale Netz zusammen, indem die jeweils erzeugten Stellwerte addiert auf den Prozess geschaltet werden. Kleine Änderungen um einen Arbeitspunkt regelt hauptsächlich der PI-Regler aus, während das neuro­nale Netz die meist nichtlinearen Arbeitspunktverschiebungen kompensiert.

Das Verhalten dieses lernenden Regelkreises wurde im Rahmen einer Studienarbeit für verschiedene Simulationsprozesse erprobt. Die SPS-Software kann der interessierte Leser kostenlos unter www.es.hs-mannheim.de/sps/AdvancedControl herunterladen und mit dem Programmiersystem Codesys ausprobieren. Die meisten zu regelnden Prozesse sind linear und benötigen keine lernende Regelung. Ein nichtlinearer Prozess, der mit einem konventionellen PI- oder PID-Regler nicht zufriedenstellend geregelt werden kann, ist die Befüllung eines konischen Behälters. Dynamisch zeigt der Befüllprozess integrierendes Verhalten. Der Stellwert wird durch den Zufluss Q beschrieben und hängt vom Quadrat der Regelgröße ab, also der Füllstandshöhe h. Dieses nichtlineare Verhalten wird vom neuronalen Netz erlernt, so dass der Füllstand dem vorgegebenen Sollwert zuverlässig folgt.

Eine alternative Regelungstechnik

Der Beitrag zeigt, dass lernende Regelungen auch mit speicherprogrammierbaren Steuerung ausgeführt werden können. Vor der Anschaffung teurer Advanced-Control-Pakete kann das Prinzip der lernenden Regelung in einer SPS mit Standard-Bausteinen ausprobiert werden. Der vorgestellte lernende Regelkreis bietet gerade bei nichtlinearen oder mathematisch schwer modellierbaren Prozessen eine Alternative zur konventionellen Regelungstechnik, wenn mit Standard-PID-Reglern nicht zufriedenstellende Ergebnisse erreicht werden können.

Bildergalerie

  • Das inverse Prozessverhalten kann erlernt werden, indem der Bediener beim Training die Prozessausgangsgrößen auf den Eingang des neuronalen Netzes schaltet und die Prozesseingangsgröße durch das neuronale Netz schätzen lässt.

    Das inverse Prozessverhalten kann erlernt werden, indem der Bediener beim Training die Prozessausgangsgrößen auf den Eingang des neuronalen Netzes schaltet und die Prozesseingangsgröße durch das neuronale Netz schätzen lässt.

    Bild: Hochschule Mannheim

  • Der Stellwert wird durch den Zufluss Q beschrieben und hängt von der Füllstandshöhe h ab. Dieses nichtlineare Verhalten beim Befüllen eines konischen Behälters wird vom neuronalen Netz erlernt, so dass der Füllstand dem vorgegebenen Sollwert folgt.

    Der Stellwert wird durch den Zufluss Q beschrieben und hängt von der Füllstandshöhe h ab. Dieses nichtlineare Verhalten beim Befüllen eines konischen Behälters wird vom neuronalen Netz erlernt, so dass der Füllstand dem vorgegebenen Sollwert folgt.

    Bild: HS Mannheim

Firmen zu diesem Artikel
Verwandte Artikel