Forum: Digitale Signalverarbeitung / DSP / Machine Learning IIR Filter mit Anti-Windup


von Dominik B. (dspfriend)


Lesenswert?

Hallo Community,

ich brauche eure Hilfe. Ich versuche derweil einen IIR Filter oder 
besser Kompensator/Controller zu implementieren. Auf Grund der etwas 
komplexeren Struktur soll dieser auch in IIR Form implementiert werden. 
Meine Frage ist: Wie implementiere ich den Anti-Windup, denn mit einem 
herkoemmlichen Regler ware der Anti-Winup in der Anwendung notwendig. 
Alles was ich braeuchte waere ein Hinweis/Idee dazu.
In paralleler standart Form ist das viel zu Aufwendig auf Grund der 
Koeffizienten Ueberlagerung. Ich brauche eine Moeglichkeit die quasi aus 
einer Blackbox den I-Anteil wegschaltet.
Eine andere Idee die ich noch habe, wobei mir das aber sehr merkwuerdig 
vorkommt, ist einfach die Rueckkoppelzweige abzutrennen. Soweit ich 
weiss sind die Polstellen in den Rueckwaertskoeffizienten enthalten 
(Integrale) und die Nullstellen in den Vorwaertskoeffizienten, aber so 
einfach kann das doch nicht sein?!

Schoene Gruesse und schonmal Danke fuer ein paar Antworten

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das sind Betrachtungsweisen der Regelungstechnik, IIR-Filter kennt man 
dagegen aus der digitalen Signalverarbeitung. Den Begriff Wind-up kannte 
ich nicht:
http://de.wikipedia.org/wiki/Regelkreis#Einfluss_nichtlinearer_.C3.9Cbertragungssysteme_auf_den_Regelkreis
Fehler beim IIR stammen doch entweder von Überschreitungen des 
Aussteuerbereichs (bei Festkommazahlen) oder durch Schwingneigung, wenn 
die Pole ausserhalb oder zu dicht am Einheitskreis liegen, sodass sie 
z.B. durch Rundungsfehler aus dem Kreis herauswandern.

Wenn man die "Rückkoppelzweige" weglässt, heisst das, dass das IIR zum 
Spezialfall FIR-Filter wird, das kann nicht schwingen, wie der Name 
schon sagt. Übersteuerungen sind trotzdem möglich.

von Dominik B. (dspfriend)


Angehängte Dateien:

Lesenswert?

Hmm, genau hier wird es ja kompliziert. Es ist moeglich Regler als 
FIR/IIR Filter zu entwerfen und diese dann in die herkoemmlichen 
Reglerstrukturen zu ueberfuehren. Bei einer gewissen Anzahl von 
Pol/Nullstellen wird dies jedoch recht kompliziert, da die P,I,D Anteile 
sich ueberlagern und seperiert werden muessen. Der Vorteil einer 
herkoemmlichen Struktur ist das die P,I,D Parameter gut ersichtlich sind 
und gezielt veraendert werden koennen, was bei einem IIR Filter zum 
Beispiel nicht so einfach geht. Jedoch ist ein Regler/Kompensator vom 
Prizip doch nichts anderes wie ein Filter?!
Das ein FIR Filter uebersteuern kann wundert mich nicht, da ja der 
D-Anteil in den Vorwaertszweigen steckt, wobei man digitale Filter 
eigentlich nicht wirklich mit Reglerausdruecken beschreiben sollte, also 
schonmal Entschuldigung.
Um mein Anliegen ein wenig zu verdeutlichen, habe ich mal eben ein Bild 
erstellt. Dargestellt sind drei Reglerstrukturen (PI-Regler). Zwei als 
IIR, Koeffizienten waeren in der Implementierung gleich, es werden 
lediglich Register gespart, wenn man den Filter in der zweiten Form 
implementiert und eine als herkoemmliche parallele Reglerstruktur. Dort 
sind die Koeffizienten gut ersichtlich und der I-Anteil kann gezielt 
abgeschaltet (I-clamping anti-windup) werden bzw. reduziert werden (back 
tracking anti-windup). Gibt auch noch andere Verfahren, tut hier aber 
jetzt nichts zur Sache. Verwendet werden hier ein Pol und eine 
Nullstelle, daher ist das ganze sehr simpel und kann einfach von der IIR 
in die parallele Form ueberfuehrt werden. Hat man nun aber einen PID 
Regler mit der Bilinearen Transformation entworfen (2 Pole, 2 
Nullstellen) wird das schon komplizierter, aber immernoch machbar. Jetzt 
ist das bei mir allerdings noch etwas komplexer und letzendlich suche 
ich einen neuen Loesungsweg ohne Seitenlange Berechnungen.
Ich bin weiterhin fuer jede Hilfe dankbar.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.