Digitale Regelung

Aus Openadaptronik
Zur Navigation springen Zur Suche springen

Bei der Regelung handelt es sich um einen weiteren Baustein der Adaptronik. Im Regler werden die Zustände eines physikalischen Systems mit Hilfe von Sensoren erfasst und ein Ausgangssignal berechnet. Das Ausgangssignal wird dann zur Ansteuerung einer oder mehrerer Aktoren genutzt. Die Berechnung der Ausgangssignale geschieht dabei mit Hilfe von bestimmten Regelgesetzen. Während einfache Regelgesetze wie der aus zahlreichen technischen Anwendungen bekannte PID-Regler über elektronische Schaltungen auf Basis von Operationsverstärkern realisiert werden können, werden komplexere Digitale Regelungen mit Hilfe digitalen Signalprozessoren umgesetzt.

Beim Entwurf von Regelungen muss das Verhalten der Regelstrecke (d.h. das Übertragungsverhalten des Aktors bis zum Sensor) berücksichtigt werden. Hierfür wird das Verhalten der Regelstrecke meist im Rahmen einer Systemidentifikation ermittelt und fließt dann in die Berechnung der Regelgesetzte mit ein.

Digitale Regelung

Anders als bei analogen Reglern wird bei einer digitalen Regelung das Eingangssignal digitalisiert (https://de.wikipedia.org/wiki/Digitalisierung ), d.h. zu diskreten Zeitpunkten abgetastet(https://de.wikipedia.org/wiki/Abtastung_(Signalverarbeitung) ), quantisiert und verarbeitet. Das Signal wird anschließend als Digitalsignal (https://de.wikipedia.org/wiki/Digitalsignal ) ausgegeben. Der Vorteil einer digitalen Regelung gegenüber einer analogen ist, dass, sofern die Rechenkapazität ausreicht, die Parameter oder das Regelgesetz geändert werden können ohne die Hardwarekomponenten verändern zu müssen. Weiterhin ist die Entwicklung von analoger Hardware bei komplexen Regelgesetzen mit hohem Aufwand verbunden. Dafür sind analoge Regler in den meisten Fällen schneller und vermeiden die parasitären Effekte der digitalen Signalverarbeitung.

Hardwarekomponenten der Signalverarbeitung

Um eine digitale Regelung zu realisieren sind bestimmte Hardwarekomponenten notwendig. Das analoge Eingangssignal wird zunächst mit einem analogen Anti-aliasing-Filter (AAF) (https://de.wikipedia.org/wiki/Antialiasing_(Signalverarbeitung) ) bearbeitet. Um mit dem digitalen Signal eine eindeutige Abbildung des kontinuierlichen Eingangssignals (https://de.wikipedia.org/wiki/Analogsignal ) zu realisieren, muss das Nyquist-Shannon-Theorem(https://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem ) erfüllt sein, d.h. dass die Abtastfrequenz(https://de.wikipedia.org/wiki/Abtastrate ) mindestens zweimal so groß wie die größte auftretende Frequenz im Eingangssignal sein muss. Mit dem Anti-aliasing-Filter wird das Eingangssignal tiefpassgefiltert (https://de.wikipedia.org/wiki/Tiefpass) um hochfrequente Störungen oberhalb der größten auftretenden Frequenz zu entfernen. Das Signal wird anschließend über einen Analog-Digital-Wandler (A/D-Wandler)( https://de.wikipedia.org/wiki/Analog-Digital-Umsetzer ) in ein digitales Signal umgewandelt. Dort wird das Signal zu diskreten Zeitpunkten abgetastet und quantisiert. Die Quantisierung (https://de.wikipedia.org/wiki/Quantisierung_(Signalverarbeitung) ) entspricht der Aufteilung einer analogen Spannung in Abschnitte, entsprechend der Bit-Auflösung (https://de.wikipedia.org/wiki/Auflösung_(Digitaltechnik ) ) und des Eingangsspannungsbereichs des A/D-Wandlers. Am Ausgang des A/D-Wandlers ist das Signal digital vorhanden und kann auf dem digitalen Signalprozessor (DSP)( https://de.wikipedia.org/wiki/Digitaler_Signalprozessor) verarbeitet werden. Auf dem DSP werden das Regelgesetz und die entsprechenden Rechenschritte durchgeführt. Im Rahmen von OpenAdaptronik-Projekten wurden einige Modelle verwendet wie das Arduino due, das Adafruit Feather M0 Adalogger oder das BeaglBone Black. Bei diesen Modellen sind A/D-Wandler und Digital-Analog-Wandler (D/A-Wandler)( https://de.wikipedia.org/wiki/Digital-Analog-Umsetzer ) schon auf dem DSP-Brett enthalten. Der D/A-Wandler wandelt das geregelte Signal in ein kontinuierliches Signal um, in dem die diskreten Ausgangswerte konstant über eine Abtastperiode am Ausgang gehalten werden. Das erhaltene kontinuierliche Signal wird abschließend mit einem Rekonstruktionsfilter (RKF) (https://de.wikipedia.org/wiki/Rekonstruktionsfilter) gefiltert, um die hochfrequenten Artefakte der Digital-Analog-Wandlung aus dem Signal zu entfernen. Das Rekonstruktionsfilter ist ein analoges Tiefpassfilter mit den gleichen Eigenschaften wie das Anti-aliasing-Filter.


Digitaler Regler.png

Abbildung: Blockschaltbild der klassischen digitalen Signalverarbeitung


Beim Entwurf einer digitalen Regelung ist weiterhin auf mögliche parasitäre Effekte zu achten. Die Abtastfrequenz sowie die Eckfrequenz der Filter muss mit Bedacht gewählt werden um Aliasing-Fehler zu vermeiden. Zusätzlich muss die Auflösung des A/D-Wandlers in Bezug auf die Charakteristiken des Eingangssignals ebenfalls mit Bedacht gewählt werden. Durch die Quantisierung im A/D-Wandler entsteht ein Rundungsfehler (https://de.wikipedia.org/wiki/Quantisierungsfehler), dessen Fehlersignal mit einem Rauschsignal vergleichbar ist und sich negativ auf die Regelung auswirkt. Zu guter Letzt muss der DSP auf Echtzeitfähigkeit getestet werden. Echtzeitfähigkeit (https://de.wikipedia.org/wiki/Echtzeit) bedeutet, dass der Reglerausgangswert innerhalb eines Abtastschritts rechtzeitig berechnet wird und für den Ausgang bereit steht.

Reglerarten/Prinzipien

Analoge Regelgesetze, die oben eingeführt wurden, können prinzipiell auch digital implementiert werden. Somit sind Isolationsansätze mit verschiedenen Rückführungsgrößen sowie Neutralisation und Tilgung mit digitalen Reglern realisierbar. Zusätzlich gibt es noch zahlreiche weitere Regelgesetze. Sie werden oft anhand wichtiger Charakteristiken eingeteilt, beispielsweise modellbasierte oder nicht-modellbasierte Regler, adaptive oder nicht adaptive Regler. Nachfolgend werden zwei Regler vorgestellt, die oft für aktive Schwingungsminderungssysteme verwendet werden, und die in Projekten von OpenAdaptronik am Quadrocopter verwendet worden sind.

Broadband Feedforward FxLMS-Regelung

Der Feedforward FxLMS-Regler ermöglicht die aktive Unterdrückung der Anregungsauswirkung basierend auf dem Prinzip der destruktiven Interferenz (siehe Teil Regelungsarten)( https://de.wikipedia.org/wiki/Interferenz_(Physik)). Er ist ein modellbasierter, adaptiver Regler (https://de.wikipedia.org/wiki/Adaptive_Regelung ) und wird für Schwingungsminderungsanwendungen, aber auch für akustische Minderungsanwendungen eingesetzt.


LMS Blockschaltbild.png

Abbildung: Blockschaltbild eines aktiven Schwingungsminderungssystems mit Feedforward-FxLMS-Regelung


Die Adaption erzielt mit dem Filter Ŝ(z) die Annäherung ŷ(n) an das Signal y(n) zu generieren, indem der Ausgangsfehler e(n) bei breitbandiger Rauschanregung des digitalen Filters und des sekundären Pfads minimiert wird. Somit kann im Betrieb des oben dargestellten Kreises eine Konvergenz der Filterkoeffizienten gegen das optimale Filter beobachtet werden. Das erhaltene Filter bildet das dynamische Verhalten des sekundären Pfads nach. Ansonsten kann angelehnt an die Wiener-Filter-Theorie(https://de.wikipedia.org/wiki/Wiener-Filter) für den LMS-Algorithmus eine Berechnung des optimalen Filters zur Nachbildung des sekundären Pfads hergeleitet werden. Wenn das optimale Filter mit der Adaption erreicht wird, kann angenommen werden, dass y(n)= ŷ(n) gilt. Und somit kann in der Matrixschreibweise folgende Gleichung für die Anregung x und das digitale Filter Ŝ(z) aufgestellt werden:

y=X*ŝ

Mit folgenden Vektoren und der Matrix X für ein Filter der Ordnung N und ein Anregungssignal x der Länge n:

Matrix 1.PNG

Nach Inversenbildung erhält man folgenden Zusammenhang um das optimal identifizierte Filter zu berechnen:

𝒔̂=(𝑿𝑻∙𝑿)−1∙𝑿𝑇∙𝒚

Somit werden die Messung des Ausgangsignals y und die Messung des Anregungssignals x für die Berechnung benötigt.

LMS-Algorithmus-Erweiterung für den Feedforward FxLMs und den Internal model Control

Um die Adaption durch den LMS-Algorithmus zu verbessern oder zu stabilisieren gibt es Erweiterungen die zusätzlich implementiert werden können. Nachfolgend werden drei Varianten eingeführt, die oft eingesetzt werden.

Schrittweitensteuerung (Normalized-algorithm)

Der Normalized LMS-Algorithmus optimiert die Konvergenzgeschwindigkeit in Abhängigkeit von der aktuellen Leistung des Referenzsignals, sodass die Performance des Reglers auch bei Veränderungen der Anregung konstant bleibt. Dazu wird die Schrittweite des LMS-Algorithmus folgendermaßen berechnet: My.PNG

mit der normierten Schrittweite α (in der Implementierung festgelegt), der Filterordnung N von W(z) und der Schätzung der Leistung des Referenzsignals P̂x(n) zum Zeitpunkt n. Die Leistungsschätzung kann anhand folgender Methode mit einem exponentiellen Zeitfenster berechnet werden: 𝑃̂𝑥(𝑛)=(1−𝛽)∙𝑃̂𝑥(𝑛−1)+𝛽∙𝑥²(𝑛)

mit dem Glättungsparameter β, der als die entsprechende Zeitfensterlänge des exponentiellen Zeitfensters(https://de.wikipedia.org/wiki/Fensterfunktion) Mnorm=1/ β interpretiert werden kann. Das Zeitfenster wird über die vergangenen Werte des Signals x zur Schätzung der Leistung gelegt. Diese wird in der Implementierung festgelegt und hat folgenden Einfluss: Wenn Mnorm lang ist, erfolgt die Schätzung der mittleren Leistung über einen längeren Zeitraum und somit genauer, aber das Filter kann nicht auf schnelle Veränderungen der Leistung des Referenzsignals reagieren. Somit wird die Fensterlänge abhängig von der Art der Anregung gewählt (stationär oder instationär). Die Anfangsbedingung P̂x(0) muss definiert werden, sie hat dennoch keinen großen Einfluss auf die Funktionsweise des Reglers.

Begrenzung der Ausgangsenergie

Die Leaky-Variante verbessert die Stabilität indem die langfristige Divergenz der Filterkoeffizienten verhindert wird. Mit dieser Variante wird ein zusätzlicher Leakage-Faktor ν ∈ ]0;1] in die Adaptionsgleichung eingeführt: 𝒘(𝑛+1)=𝜈∙𝒘(𝑛)+𝜇∙𝒙′(𝑛)∙𝑒(𝑛) Durch den Leakage-Faktor ν ist der Regler robuster: bei stochastisch leistungsstarkem Referenzsignal beispielsweise, wird die Regelung nicht unbegrenzt hochgefahren, sondern „vergisst“ mit den Iterationen schneller die stochastisch hohe Anregung, da die in w(n) enthaltene Information über vergangene Zustände mit der Gewichtung ν<1 in die Berechnung der neuen Filterkoeffizienten einfließt. Allerdings wird die erreichbare Performance des Reglers verschlechtert: wenn die optimalen Koeffizienten erreicht werden, sollte im nächsten Schritt keine Adaption stattfinden. e(n) ist dann null und somit auch der rechte Teil der Addition in der Adaptionsgleichung. Durch den Leakage-Faktor werden die Filterkoeffizienten jedoch verändert und das aktive System selbst führt einen Fehler ins System ein. Somit bewegen sich die Filterkoeffizienten in einem Bereich um den optimalen Filter aber erreichen es nie langfristig.

Der Leakage-Faktor wird mit dem Gewichtungsfaktor γ∈[0;1] berechnet: 𝜈=1−𝜇∙𝛾

Somit wird der Leakage-Faktor zusätzlich an die Leistung des Referenzsignals (in der Schrittweite enthalten beim Normalized-Algorithmus) angepasst, um die oben genannte Einführung von Fehlern durch das aktive System zu reduzieren.

Fehlersignal-Gestaltung

In manchen Anwendungsfällen kann es von Nutzen sein, das Frequenzspektrum (https://de.wikipedia.org/wiki/Frequenzspektrum ) des Fehlersignals und des Referenzsignals gestalten zu können. Dafür werden beide Signale mit einer Gestaltungsfunktion C(z) gefiltert, bevor sie zur Adaption verwendet werden.

Fehlersignalgestaltungserweiterung Feedforward Blockschaltbild.PNG

In OpenAdaptronik wurde diese Variante am Quadrocopter implementiert. Dort wurde ein Hochpassfilter(https://de.wikipedia.org/wiki/Hochpass ) für C(z) verwendet um die Eigenfrequenz der Starrkörpermode (https://de.wikipedia.org/wiki/Moden ) aus den Signale x‘(n) und e(n) zu entfernen.

Quellen

Meyer, M. (2006): Signalverarbeitung. Springer Vieweg, Wiesbaden, 4. Auflg.

KUO, S. und Morgan, D. (1996): Active Noise Control Systems – Algorithms and DSp Implementations. John Wiley &Sons Inc., New York