EP Basics Wie man Regleralgorithmen selbst programmiert

Anbieter zum Thema

Entwickler können das Reglerverhalten in ihre Projekte selbst implementieren und die entsprechenden Regelalgorithmen selbst programmieren. Was dabei zu beachten ist, zeigt der Beitrag.

Algorithmen selbst programmiert: Regelalgorithmen können Entwickler mit den entsprchenden Werkzeugen erstellen.
Algorithmen selbst programmiert: Regelalgorithmen können Entwickler mit den entsprchenden Werkzeugen erstellen.
(Bild: © Kannapat - stock.adobe.com)

Die wichtigsten Reglertypen erklärt unser Autor Prof. Böttcher in seinem Beitrag „Prozessgrößen ausregeln: Reglerverhalten verständlich erklärt“.

Will man ein solches Reglerverhalten selbst implementieren, so erfolgt das üblicherweise durch Programmierung entsprechender Regelalgorithmen auf programmierbaren Plattformen. Das können beispielsweise Mikrocontroller (Embedded Controller) sein; möglich sind aber auch SPS- oder Industrie- sowie Büro-PCs.

Im Prinzip eignet sich jede programmierbare Plattform, wenn sie bestimmte für die Aufgabe benötigte Echtzeitbedingungen erfüllt und es erlaubt, Stell- und Messkomponenten anzusteuern.

Plattformunabhängige Grundregeln für einen Algorithmus

Auch ist es unerheblich, welches Entwicklungssystem und welche Programmiersprache der Anwender für seine Programmierung benutzt. Man sollte lediglich ein paar Grundlagen beachten, die weitestgehend mit der digitalen Implementierung geeigneter numerischer Verfahren zu tun haben.

Bild 1: Ein zyklisch ablaufender Regelalgorithmus.
Bild 1: Ein zyklisch ablaufender Regelalgorithmus.
(Bild: Prof. Böttcher)

Nachfolgend wollen wir auf diese Grundlagen eingehen, die plattformunabhängig gelten. Bild 1 zeigt einen Ausschnitt des Regelkreises. Der gestrichelte Rahmen soll dabei andeuten, dass die Bildung der Regeldifferenz e als Differenz von Sollwert und Istwert typisch innerhalb des Hardware- oder Softwaremoduls stattfindet, das sich Regler nennt.

Wird die Reglerfunktion programmiert, so muss man stets dafür sorgen, dass die genannten vier Schritte in streng zyklischer Form in einem Takt durchgeführt werden, der im Weiteren durch die Abtastzeit TA beschrieben werden soll. Es ist bei der üblichen Form der Implementierung zumindest bei stetigem Reglerverhalten, wie beispielsweise PID-Regler, absolut essentiell, dass die Abtastzeit TA auch exakt eingehalten wird und von seinem Wert her bekannt sein muss. Denn sie fließt für die Berechnung des Regelalgorithmus ein.

Aus der Praxis hat sich dabei folgende Vorgabe als sinnvoll erwiesen: Regeln wir eine proportionale Strecke wie PT1 oder PT2, sollte die Abtastzeit TA maximal ein Zehntel der bei der Sprungantwort der Strecke beobachteten Ausgleichszeitkonstanten oder Schwingperiode sein. In diesem Fall könnte der Regler genügend häufig, bezogen auf die eingebaute Änderungsgeschwindigkeit der Strecke, korrigierend eingreifen.

Wie sich die Abtastzeit dimensionieren lässt

Geht man am Beispiel der Raumtemperaturregelung von einer Zeitkonstante des Raums von 20 Minuten aus, so würde man TA auf maximal zwei Minuten dimensionieren. Viele Raumtemperaturregler arbeiten mit einer Minute. Schnelle Regelkreise, wie die im Rahmen von Stabilitätskontrollsystemen im Automobil, erfordern dagegen oftmals Abtastzeiten von wenigen Millisekunden oder darunter.

Regeln wir dagegen integrierende Strecken wie IT1, so können wir keine einfache Faustformel angeben. Wir können nur sagen, dass TA dann passend zur maximal möglichen Rampensteilheit der Sprungantwort bei voller Aussteuerung des Stellglieds und zur geforderten Regelgenauigkeit gewählt werden muss. Innerhalb der Abtastzeit kann die Strecke im Worst Case einen bestimmten Betrag wegintegrieren, den es hierbei zu begrenzen gilt.

Wir wollen uns jetzt mit dem Algorithmus beschäftigen, den wir in Schritt 3 aus Bild 1 im Regler implementieren müssen, um die Strecke mit dem sogenannten PID-Regelverhalten zu regeln. Dazu müssen wir wissen, dass von der Strecke aus gesehen Regler und Stellglied als eine Einheit arbeiten. Zunächst ist also gefordert, dass zwischen den Signalen e und y in Bild 1 ein PID-Verhalten herrscht, das als Superposition verstärkenden Proportionalverhaltens (P), integrativen Verhaltens (I) und differenzierenden Verhaltens (D) definiert ist in Formel 1:

Formel 1 (Bild: Formel 1)
Formel 1

Um die Formel zu programmieren, müssen wir sie numerisch formulieren. Dazu müssen wir die Abtastwerte einführen und anschließend den i-ten Abtastwert durch den Index i kennzeichnen. Weiterhin nähern wir die Integration durch die Summe aller Rechteckflächen seit dem ersten Abtastwert mit Index 0. Die Breite der Flächen ist jeweils TA, die Höhe entspricht dem jeweiligen Abtastwert. Außerdem ersetzen wir näherungsweise die Differentiation durch den Differenzenquotienten, also die Differenz von aktuellem und letzten Abtastwert, dividiert durch die seitdem vergangene Zeit, also TA. Das ergibt dann Formel 2:

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Formel 2 (Bild: Prof. Böttcher)
Formel 2

Um nicht in jedem Rechenschritt immer wieder die komplette Summe ab dem ersten Abtastschritt berechnen zu müssen, kann man das rekursiv formulieren. Dazu schreiben wir Formel 2 erneut an, jedoch mit dem Index i-1 statt i (Formel 3):

Formel 3 (Bild: Prof. Böttcher)
Formel 3

Ziehen wir Formel 3 auf beiden Seiten jeweils von Formel 2 ab, bringen yi-1 noch auf die rechte Seite und ordnen nach Indices von i um, so erhalten wir abschließend Formel 4:

Formel 4 (Bild: Prof. Böttcher)
Formel 4

Würde man diese Formel als Algorithmus auf einer beliebigen programmierbaren Plattform niederlegen und alle TA zyklisch aufrufen, wobei TA passend gewählt werden sollte, so hat man einen Funktionsblock implementiert, der das zeitliche Verhalten zwischen Ein- und Ausgangssignal gemäß Formel 1 realisiert. Und das ausschließlich mit den Grundrechenarten.

Das Stellgliedverhalten im Algorithmus

Nun müssen wir nur noch das Stellgliedverhalten selbst aus Formel 4 eliminieren. Arbeitet das Stellglied näherungsweise proportional mit einem Verstärkungsfaktor von kSt, so beschreibt Formel 4 den endgültigen Algorithmus, wenn man kR durch kR/kSt ersetzt. Die meisten der für Regelungszwecke eingesetzten Stellglieder gehören zu dieser Gruppe. Beispiele sind Proportionalventile, Elektromotoren, elektrische Heizmatten oder Heizkörper. Die Form des Algorithmus nennt man Stellungsalgorithmus, weil von der reinen Signalform her gesehen das letztlich auch vom Stellglied ausgegebene Signal berechnet wird.

Hat man dagegen ein integrativ mit dem Vorfaktor kSt wirkendes Stellglied, so erhält man stattdessen zur Implementierung im Regler den Geschwindigkeitsalgorithmus (Formel 5):

Formel 5 (Bild: Prof. Böttcher)
Formel 5

Bild 2: LabVIEW-Implementierung des PID-Algorithmus.
Bild 2: LabVIEW-Implementierung des PID-Algorithmus.
(Bild: Prof. Böttcher)

Berücksichtigt ist ein Teil der vom PID-Verhalten geforderten Aufgabe, das Integrieren, das im Stellglied selbst vorgenommen wird. Bild 2 zeigt, wie man den PID-Algorithmus in der Ausgangsform nach Formel 4 im Blockdiagramm von LabVIEW implementieren könnte. Zusätzlich wurde noch die bei realen Implementierungen vorhandene Stellgrößenbegrenzung eingefügt.

Ein PID-Regler mit LabVIEW implementieren

Bild 3: Eingangssprung und zugehöriges Ausgangssignal beim PID-Algorithmus (kR = 2, TN = 10 ms, TV = 5 ms, TA = 1 ms, Stellbereich -2 bis +2).
Bild 3: Eingangssprung und zugehöriges Ausgangssignal beim PID-Algorithmus (kR = 2, TN = 10 ms, TV = 5 ms, TA = 1 ms, Stellbereich -2 bis +2).
(Bild: Prof. Böttcher)

Speziell in LabVIEW gibt es einen fertigen Funktionsblock, den man alternativ heranziehen könnte. Präsentiert man dem Algorithmus in der Simulation testweise einen Eingangssprung, so ergibt sich die in Bild 3 rechts gezeigte und für einen PID-Regler typische Sprungantwort.

Bild 4: Regelkreis mit digitalem PID-Regler (kR = 1,2, TN = 2 ms, TV = 0,42 ms, TA = 0,1 ms, Stellbereich -2 bis +2) und PT1Tt-Strecke (kP = 5, T1 = 5 ms, T = 1 ms).
Bild 4: Regelkreis mit digitalem PID-Regler (kR = 1,2, TN = 2 ms, TV = 0,42 ms, TA = 0,1 ms, Stellbereich -2 bis +2) und PT1Tt-Strecke (kP = 5, T1 = 5 ms, T = 1 ms).
(Bild: Prof. Böttcher)

Die beiden Diagramme wurden so konfiguriert, dass die eigentlichen Abtastwerte als Punkte gezeichnet werden, zwischen denen mit waagrechten und senkrechten Linien interpoliert wurde. In Bild 4 ist das Simulationsergebnis gezeigt, wenn der PID-Algorithmus in modifizierter Parametrierung eine PT1Tt-Strecke (Proportionalstrecke mit Verzögerung und zusätzlicher Totzeit) regelt.

Zu sehen ist das bei gut eingestellten PID-Reglern meist hochwertige Regelverhalten, sowohl was die Reaktion auf Sollwert- wie auch Störgrößensprünge betrifft. Das Ergebnis unterscheidet sich aufgrund der sinnvoll gewählten Abtastzeit praktisch nicht vom als analog gedachten idealen PID-Regler, wie es in der Formel 1 beschrieben ist.

PID-Regler benötigen zunächst stetig arbeitende Stellglieder. Stehen nur unstetige Stellglieder zur Verfügung, so kann man mit diesen je nach ihren schaltdynamischen Möglichkeiten für ein näherungsweises PID-Verhalten sorgen. Das basiert auf einer Pulsweitenmodulation (PWM) der vom Regler an das Stellglied übermittelten Steuergröße u.

Bild 5: Steuergröße als PWM-Signal für unstetiges Stellglied.
Bild 5: Steuergröße als PWM-Signal für unstetiges Stellglied.
(Bild: Prof. Böttcher)

Im Bild 5 ist zu sehen, wie die Steuergröße u als ein PWM-Signal aussieht. Hierbei handelt es sich um ein periodisches Rechtecksignal, welches das Stellglied periodisch an- oder ausschaltet. Dabei wird die sinnvoll zu wählende Periodendauer TPWM konstant gehalten.

Die Einschaltdauer wird im Regelbetrieb jeweils so gewählt, dass sich der gewünschte Mittelwert ergibt und zwischen 0 und u0 liegen kann (Formel 6):

Formel 6 (Bild: Prof. Böttcher)
Formel 6

Die Steuergröße u ist damit zu einem quasi-stetigen Signal geworden. Im Stellglied und in den ersten Prozessstufen der Strecke wird das Rechtecksignal aufgrund der meist vorhandenen Trägheit (der sogenannten Tiefpasscharakteristik) so verschliffen, dass es quasi wie gemittelt wirkt. Das ist in etwa so, wie ein stetiges Stellgrößensignal wirken würde.

Der Autor des Beitrags ist Herausgeber eines Open-Access-Online-Kompendiums mit einem Multiple-Choice-Zertifikatstest

Quellen

Jörg Böttcher: Kompendium Simulation und Regelung technischer Prozesse. ISBN 9783752659528 (Paperback) bzw. ISBN 9783753447711 (E-Book), Verlag: Books on Demand (www.bod.de).

Jörg Böttcher: Kompendium Messtechnik und Sensorik (2. Auflage). ISBN 9783751932967 (Paperback) bzw. ISBN 9783752632491 (E-Book), Verlag: Books on Demand (www.bod.de).

(ID:48309268)