Wie man die gemessene Sprungantwort verwendet, um das Steuersystem abzustimmen


17

Wie verwendet man eine gemessene Sprungantwort, um entweder ein PID- oder ein Faltungssteuerschema abzustimmen?

Inspiriert von dieser Antwort * interessiere ich mich für eine detailliertere Erläuterung der Implementierung eines Steuerungssystems basierend auf der gemessenen Sprungantwort.

Ich würde nicht versuchen, alle Effekte zu erraten. Es sind wahrscheinlich einige nicht offensichtliche Dinge im Gange, und Sie können nicht alle Parameter kennen.

Ich würde die Sprungantwort messen. Finden Sie zwei Pumpeneinstellungen, die beide dazu führen, dass sich die Kugel innerhalb des messbaren Bereichs innerhalb des Röhrchens befindet. Lassen Sie dann die Steuerung plötzlich von einer Einstellung in die andere umschalten. In der Zwischenzeit messen Sie, was der Ball im Laufe der Zeit macht. Das ist die Sprungantwort. Sie können die Ableitung davon nehmen und die Impulsantwort erhalten. Anhand der Impulsantwort können Sie die Bewegung der Kugel für jede Vorgeschichte von Pumpeneinstellungen vorhersagen, vorausgesetzt, dies ist ein lineares System. Sie ist wahrscheinlich über den kleinen Einstellbereich linear genug, um den Ball in seinem normalen Bereich zu halten.

Sie können dies als Simulationsbasis verwenden, um die Parameter für eine altmodische PID-Regelung zu finden. Oder Sie können die Impulsantwort direkt verwenden, um eine Faltungssteuerung durchzuführen. Sie müssen den Steuereingang so tief filtern, dass der Faltungskern nicht negativ wird, es sei denn, Ihre Pumpe ist tatsächlich reversibel und kann den Ball wieder nach unten saugen.

Wie genau funktioniert das? Die PID-Abstimmung ist schwierig . Ich gehe davon aus, dass "Convolution Control" die Verwendung der Pol-Null- oder Übertragungsfunktion ist, verstehe aber nicht genau, wie die Parameter ermittelt werden.

VERBINDUNG: Systemmodellierung für Steuerungssysteme
* Modellierung der Übertragungsfunktion der Ping-Pong-Kugel-Levitation in einem Rohr als Dämpfer

Antworten:


23

Einführung

Zunächst müssen wir uns überlegen, was genau dieses Ding als Impulsantwort eines Systems bezeichnet und was es bedeutet. Dies ist ein abstraktes Konzept, dessen Visualisierung ein wenig Nachdenken erfordert. Ich werde mich nicht auf strenge Mathematik einlassen. Mein Ziel ist es, eine gewisse Intuition darüber zu entwickeln, was dieses Ding ist, was dann dazu führt, wie Sie es nutzen können.

Beispiel für ein Steuerungsproblem

Stellen Sie sich vor, Sie hätten einen großen fetten Leistungswiderstand mit einem darauf montierten Temperatursensor. Alles beginnt bei Umgebungstemperatur. Wenn Sie den Strom einschalten, wissen Sie, dass die Temperatur am Sensor irgendwann ansteigt und sich stabilisiert, aber die genaue Gleichung ist sehr schwer vorherzusagen. Nehmen wir an, das System hat eine Zeitkonstante von etwa 1 Minute, obwohl "Zeitkonstante" nicht vollständig anwendbar ist, da die Temperatur nicht in einem schönen Exponential ansteigt, wie es in einem System mit einem einzelnen Pol und daher einer einzelnen Zeitkonstante der Fall wäre . Nehmen wir an, Sie möchten die Temperatur genau regeln und auf ein neues Niveau bringen und deutlich schneller dort bleiben, als dies der Fall wäre, wenn Sie nur die entsprechende Leistungsstufe einschalten und warten würden.

Grundsätzlich haben Sie Steuerungsprobleme. Die Antwort auf eine offene Schleife ist einigermaßen wiederholbar, und es gibt irgendwo eine Gleichung, die sie gut genug modelliert. Das Problem ist jedoch, dass es zu viele Unbekannte gibt, um diese Gleichung abzuleiten.

PID-Regelung

Ein klassischer Weg, dies zu lösen, ist ein PID-Regler. Als dies im Pleistozän in der analogen Elektronik getan werden musste, wurden die Leute schlau und entwickelten ein Schema, das mit den vorhandenen analogen Fähigkeiten gut funktionierte. Dieses Schema wurde "PID" für Proportional , Integral und Derivativ genannt .

P-Begriff

Sie fangen an, den Fehler zu messen. Dies ist nur das gemessene Systemverhalten (in unserem Fall die vom Sensor gemeldete Temperatur) abzüglich des Steuereingangs (der gewünschten Temperatureinstellung). Normalerweise könnten diese als Spannungssignale zur Verfügung stehen, so dass das Auffinden des Fehlers nur eine analoge Differenz darstellt, die einfach genug ist. Du denkst vielleicht, das ist einfach. Sie müssen lediglich den Widerstand mit höherer Leistung ansteuern, je höher der Fehler ist. Dadurch wird es automatisch heißer, wenn es zu kalt ist, und kälter, wenn es zu heiß ist. Das funktioniert irgendwie. Beachten Sie, dass dieses Schema einen Fehler benötigt, um einen Steuerausgang ungleich Null zu verursachen (Leistung, die den Widerstand antreibt). Tatsächlich bedeutet dies, dass der Fehler umso größer ist, je höher die benötigte Leistung ist, da nur so die hohe Leistung erzielt werden kann. Jetzt könnten Sie sagen, Sie müssen nur die Verstärkung hochdrehen, damit der Fehler auch bei hohem Stromausfall akzeptabel ist. Schließlich ist das so ziemlich die Basis dafür, wie Opamps in vielen Schaltungen verwendet werden. Sie haben Recht, aber die reale Welt lässt Sie normalerweise nicht davonkommen. Dies mag für einige einfache Steuerungssysteme funktionieren, aber wenn die Reaktion allerlei subtile Falten aufweist und wenn es einige Zeit in Anspruch nehmen kann, ergibt sich etwas, das schwingt, wenn die Verstärkung zu hoch ist. Anders ausgedrückt, das System wird instabil. Aber wenn die Antwort alle möglichen subtilen Falten aufweist und wenn es eine beträchtliche Zeit in Anspruch nehmen kann, entsteht etwas, das schwingt, wenn die Verstärkung zu hoch ist. Anders ausgedrückt, das System wird instabil. Aber wenn die Antwort alle möglichen subtilen Falten aufweist und wenn es eine beträchtliche Zeit in Anspruch nehmen kann, entsteht etwas, das schwingt, wenn die Verstärkung zu hoch ist. Anders ausgedrückt, das System wird instabil.

Was ich oben beschrieben habe, war der P-Anteil (Proportionalanteil) von PID. So wie Sie den Ausgang proportional zum Fehlersignal machen können, können Sie auch Terme proportional zur Zeitableitung und zum Integral des Fehlers hinzufügen. Jedes dieser P-, I- und D-Signale hat eine eigene Verstärkung, bevor es summiert wird, um das Steuerausgangssignal zu erzeugen.

Ich bezeichne

Mit dem I-Term kann der Fehler im Laufe der Zeit auf Null gesetzt werden. Solange ein positiver Fehler vorliegt, akkumuliert der I-Term weiter und erhöht schließlich den Steuerausgang bis zu dem Punkt, an dem der Gesamtfehler verschwindet. Wenn in unserem Beispiel die Temperatur konstant niedrig ist, wird die Leistung im Widerstand ständig erhöht, bis die Ausgangstemperatur endlich nicht mehr niedrig ist. Hoffentlich können Sie sehen, dass dies noch schneller instabil wird als es nur ein hoher P-Term kann. Ein Begriff für sich allein kann leicht zu Überschwingungen führen, die leicht zu Schwingungen werden.

D Begriff

Der D-Term wird manchmal weggelassen. Die grundlegende Verwendung des D-Terms besteht darin, ein wenig Stabilität hinzuzufügen, damit die P- und I-Terme aggressiver sein können. Der D-Begriff sagt im Grunde: Wenn ich schon in die richtige Richtung gehe, dann gib ein bisschen Gas, denn das, was ich jetzt habe, scheint uns dorthin zu bringen .

PID einstellen

Die Grundlagen der PID-Regelung sind recht einfach, aber die richtigen P-, I- und D-Terme zu erhalten, ist dies nicht. Dies geschieht normalerweise mit viel Experimentieren und Optimieren. Das ultimative Ziel ist es, ein Gesamtsystem zu schaffen, bei dem der Ausgang so schnell wie möglich, jedoch ohne übermäßiges Überschwingen oder Klingeln, reagiert und natürlich stabil sein muss (nicht von selbst oszillieren). Es gibt viele Bücher über die PID-Regelung, wie man den Gleichungen kleine Falten hinzufügt, aber insbesondere wie man sie "abstimmt". Das Stimmen bezieht sich auf das Ermitteln der optimalen P-, I- und D-Verstärkungen.

PID-Regelungssysteme funktionieren, und es gibt mit Sicherheit eine Menge Überlieferungen und Tricks, damit sie gut funktionieren. Die PID-Regelung ist jedoch nicht die einzig richtige Antwort für ein Steuersystem. Die Leute scheinen vergessen zu haben, warum PID an erster Stelle gewählt wurde, was mehr mit Einschränkungen der analogen Elektronik zu tun hatte als mit einer Art universellem optimalen Regelungsschema. Leider setzen heutzutage zu viele Ingenieure das "Steuerungssystem" mit PID gleich, was nichts weiter als eine klein denkende Knie-Ruck-Reaktion ist. Das macht die PID-Regelung in der heutigen Welt nicht falsch, sondern nur eine von vielen Möglichkeiten, ein Regelungsproblem in Angriff zu nehmen.

Jenseits von PID

In einem Mikrocontroller würde heute eine Regelung für so etwas wie das Temperaturbeispiel erfolgen. Diese können viel mehr als nur die Ableitung und das Integral eines Fehlerwerts. In einem Prozessor können Sie Dividieren, Quadratwurzeln, Aufzeichnen der letzten Werte und vieles mehr. Viele andere Regelungsschemata als PID sind möglich.

Impulsive Reaktion

Vergessen Sie also die Grenzen der analogen Elektronik und machen Sie einen Schritt zurück und überlegen Sie, wie wir ein System steuern können, das auf die ersten Prinzipien zurückgeht. Was wäre, wenn wir für jedes kleine Kontrollelement wüssten, was das System tun würde? Der kontinuierliche Kontrollausgang ist dann nur die Summe vieler kleiner Teile. Da wir wissen, was das Ergebnis eines jeden Stücks ist, können wir wissen, was das Ergebnis einer vorherigen Historie von Steuerausgaben ist. Beachten Sie nun, dass "ein kleines Stück" des Steuerausgangs gut zur digitalen Steuerung passt. Sie werden berechnen, wie der Steuerausgang sein soll, und ihn darauf einstellen, dann zurückgehen und die Eingänge erneut messen, den neuen Steuerausgang daraus berechnen und ihn erneut einstellen usw. Sie führen den Steueralgorithmus in einer Schleife aus, und es mißt die Eingänge und setzt den Steuerausgang bei jeder Schleifeniteration neu. Die Eingänge werden zu diskreten Zeiten "abgetastet", und der Ausgang wird ebenfalls in einem festen Intervall auf neue Werte gesetzt. Solange Sie dies schnell genug tun können, können Sie sich vorstellen, dass dies in einem kontinuierlichen Prozess geschieht. Im Fall einer Widerstandsheizung, die normalerweise einige Minuten dauert, um sich zu beruhigen, ist die Geschwindigkeit einiger Male pro Sekunde so hoch, dass die Aktualisierung des Ausgangs mit beispielsweise 4 Hz für das System kontinuierlich aussieht. Dies ist genau das Gleiche wie bei digital aufgenommener Musik, bei der der Ausgangswert in diskreten Schritten im Bereich von 40 bis 50 kHz geändert wird und die so schnell ist, dass unsere Ohren sie nicht hören können und sie wie das Original kontinuierlich klingt. Sie können sich vorstellen, dass dies in einem kontinuierlichen Prozess geschieht. Im Fall einer Widerstandsheizung, die normalerweise einige Minuten dauert, um sich zu beruhigen, ist die Geschwindigkeit einiger Male pro Sekunde so hoch, dass die Aktualisierung des Ausgangs mit beispielsweise 4 Hz für das System kontinuierlich aussieht. Dies ist genau das Gleiche wie bei digital aufgenommener Musik, bei der der Ausgangswert in diskreten Schritten im Bereich von 40 bis 50 kHz geändert wird und die so schnell ist, dass unsere Ohren sie nicht hören können und sie wie das Original kontinuierlich klingt. Sie können sich vorstellen, dass dies in einem kontinuierlichen Prozess geschieht. Im Fall einer Widerstandsheizung, die normalerweise einige Minuten dauert, um sich zu beruhigen, ist die Geschwindigkeit einiger Male pro Sekunde so hoch, dass die Aktualisierung des Ausgangs mit beispielsweise 4 Hz für das System kontinuierlich aussieht. Dies ist genau das Gleiche wie bei digital aufgenommener Musik, bei der der Ausgangswert in diskreten Schritten im Bereich von 40 bis 50 kHz geändert wird und die so schnell ist, dass unsere Ohren sie nicht hören können und sie wie das Original kontinuierlich klingt. Zweifellos sind mehrere Male pro Sekunde so viel schneller, als das System von Natur aus auf sinnvolle Weise reagiert, dass die Aktualisierung der Ausgabe mit beispielsweise 4 Hz für das System kontinuierlich aussieht. Dies ist genau das Gleiche wie bei digital aufgenommener Musik, bei der der Ausgangswert in diskreten Schritten im Bereich von 40 bis 50 kHz geändert wird und die so schnell ist, dass unsere Ohren sie nicht hören können und sie wie das Original kontinuierlich klingt. Zweifellos sind mehrere Male pro Sekunde so viel schneller, als das System von Natur aus auf sinnvolle Weise reagiert, dass die Aktualisierung der Ausgabe mit beispielsweise 4 Hz für das System kontinuierlich aussieht. Dies ist genau das Gleiche wie bei digital aufgenommener Musik, bei der der Ausgangswert in diskreten Schritten im Bereich von 40 bis 50 kHz geändert wird und die so schnell ist, dass unsere Ohren sie nicht hören können und sie wie das Original kontinuierlich klingt.

Was könnten wir also tun, wenn wir auf diese magische Weise wüssten, was das System aufgrund einer Kontrollausgangsprobe im Laufe der Zeit tun wird? Da es sich bei der tatsächlichen Kontrollantwort nur um eine Folge von Stichproben handelt, können wir die Antwort aller Stichproben addieren und die resultierende Systemantwort ermitteln. Mit anderen Worten, wir können die Systemantwort für jede beliebige Steuerantwort-Wellenform vorhersagen.

Das ist cool, aber das bloße Vorhersagen der Systemreaktion löst das Problem nicht. Hier ist jedoch der Aha-Moment, in dem Sie diese Option umdrehen können, um den Steuerausgang zu finden, den Sie benötigt hätten, um eine gewünschte Systemantwort zu erhalten. Beachten Sie, dass dies genau das Steuerproblem löst, aber nur, wenn wir die Systemreaktion auf ein einzelnes beliebiges Steuerausgabebeispiel irgendwie kennen.

Sie denken also wahrscheinlich, das ist einfach, geben Sie einfach einen großen Impuls und sehen Sie, was es tut. Ja, das würde theoretisch funktionieren, aber in der Praxis normalerweise nicht. Das liegt daran, dass jede Kontrollprobe, auch eine große, im Gesamtschema so klein ist, dass das System kaum messbare Reaktionen hat. Und denken Sie daran, dass jede Kontrollprobe im Schema der Dinge klein sein muss , damit sich die Sequenz der Kontrollproben für das System kontinuierlich anfühlt. Es ist also nicht so, dass diese Idee nicht funktioniert, sondern dass die Systemreaktion in der Praxis so gering ist, dass sie im Messrauschen begraben ist. Wenn Sie im Widerstandsbeispiel 100 ms lang auf den Widerstand mit 100 W schlagen, wird die zu messende Temperaturänderung nicht ausreichen.

Sprungantwort

Aber es gibt immer noch einen Weg. Wenn eine einzelne Kontrollprobe in das System eingegeben worden wäre, hätte dies eine direkte Reaktion auf einzelne Proben zur Folge gehabt. Wir können jedoch daraus schließen, dass eine bekannte und kontrollierte Folge von Kontrollreaktionen in das System eingegeben und deren Reaktion auf diese gemessen wird. Üblicherweise wird dies , indem sie eine Steuer getan SchrittWas wir wirklich wollen, ist die Reaktion auf einen kleinen Fehler, aber die Reaktion auf einen einzelnen Schritt ist nur das Integral davon. Im Widerstandsbeispiel können wir sicherstellen, dass sich bei 0 W alles im eingeschwungenen Zustand befindet. Schalten Sie dann plötzlich die Stromversorgung ein und stecken Sie 10 W in den Widerstand. Dies führt schließlich zu einer gut messbaren Temperaturänderung am Ausgang. Die Ableitung davon mit der richtigen Skalierung gibt Aufschluss über die Reaktion auf eine einzelne Kontrollprobe, auch wenn wir dies nicht direkt messen konnten.

Zusammenfassend können wir also einen Step-Control-Eingang in ein unbekanntes System einfügen und den resultierenden Ausgang messen. Das nennt man die Sprungantwort . Dann nehmen wir die zeitliche Ableitung davon, die als Impulsantwort bezeichnet wird . Die Systemausgabe, die sich aus einer Kontrolleingabemusterung ergibt, ist einfach die Impulsantwort, die entsprechend der Stärke dieser Kontrolleingabemusterung skaliert ist. Die Systemreaktion auf eine ganze Historie von Kontrollproben ist eine ganze Reihe von Impulsreaktionen, die für jede Kontrolleingabe zeitlich addiert, skaliert und verzerrt werden. Diese letzte Operation kommt häufig vor und hat den besonderen Namen Faltung .

Faltungskontrolle

Nun sollten Sie sich vorstellen können, dass Sie für jeden gewünschten Satz von Systemausgängen die Sequenz der Steuereingänge festlegen können, die diese Ausgabe bewirkt. Es gibt jedoch ein gotcha. Wenn Sie mit dem, was Sie vom System erwarten, zu aggressiv werden, müssen die Steuereingänge, um dies zu erreichen, bei hohen und niedrigen Werten unerreicht sein. Grundsätzlich gilt: Je schneller das System anspricht, desto größer müssen die Steuerwerte in beide Richtungen sein. Im Widerstandsbeispiel können Sie rechnerisch sagen, dass sofort eine neue Temperatur erreicht werden soll, für deren Erreichung jedoch ein unendliches Steuersignal erforderlich wäre. Je langsamer Sie die Temperatur auf den neuen Wert einstellen lassen, desto geringer ist die maximale Leistung, die Sie benötigen, um in den Widerstand abzuleiten. Eine andere Falte ist, dass die Leistung in den Widerstand manchmal auch sinken muss. Du kannst'

Eine Möglichkeit, damit umzugehen, besteht darin, dass das Steuerungssystem die Benutzereingaben vor der internen Verwendung tiefpasst. Abbildung Benutzer tun, was Benutzer tun möchten. Lassen Sie sie die Eingabe schnell zuschlagen. Intern verwenden Sie einen Tiefpassfilter, mit dem Sie ihn glätten und so schnell wie möglich verlangsamen können, wenn Sie die maximale und minimale Leistung in den Widerstand einbringen.

Beispiel aus der realen Welt

Hier ist ein Teilbeispiel mit realen Daten. Dies stammt aus einem eingebetteten System in einem realen Produkt, das unter anderem ein paar Dutzend Heizungen steuern muss, um verschiedene Chemikalienbehälter auf bestimmten Temperaturen zu halten. In diesem Fall entschied sich der Kunde für die PID-Regelung (damit fühlten sie sich vertraut), aber das System selbst existiert immer noch und kann gemessen werden. Hier sind die Rohdaten vom Antrieb eines der Heizgeräte mit Stufeneingang. Die Schleifeniterationszeit betrug 500 ms, was eindeutig eine sehr kurze Zeit ist, wenn man bedenkt, dass sich das System nach 2 Stunden immer noch sichtbar auf diesem Skalendiagramm einstellt.

In diesem Fall sehen Sie, dass die Heizung mit einer Schrittweite von ca. 0,35 (dem Wert "Out") angetrieben wurde. Wenn Sie über einen längeren Zeitraum einen vollen 1,0-Schritt ausführen, würde dies zu einer zu hohen Temperatur führen. Der anfängliche Versatz kann entfernt und das Ergebnis skaliert werden, um den kleinen Eingabeschritt zu berücksichtigen, um auf die Einheitsschrittantwort zu schließen:

Man könnte davon ausgehen, dass nur aufeinanderfolgende Sprungantwortwerte abgezogen werden, um die Impulsantwort zu erhalten. Theoretisch stimmt das, aber in der Praxis tritt meistens das Mess- und Quantisierungsrauschen auf, da sich das System in 500 ms so wenig ändert:

Beachten Sie auch den kleinen Maßstab der Werte. Die Impulsantwort ist mit 10 6 skaliert dargestellt .

Offensichtlich sind große Abweichungen zwischen einzelnen oder sogar wenigen Messwerten nur ein Rauschen. Daher können wir diese tiefpassfiltern, um die hohen Frequenzen (das zufällige Rauschen) zu beseitigen, wodurch wir hoffentlich die langsamere zugrunde liegende Reaktion erkennen können. Hier ist ein Versuch:

Das ist besser und zeigt, dass es wirklich aussagekräftige Daten zu haben gibt, aber immer noch zu viel Rauschen. Hier ist ein nützlicheres Ergebnis, das mit einer stärkeren Tiefpassfilterung der Impulsrohdaten erzielt wird:

Nun, damit können wir tatsächlich arbeiten. Das verbleibende Rauschen ist im Vergleich zum Gesamtsignal gering, sollte also nicht stören. Das Signal scheint noch ziemlich intakt zu sein. Eine Möglichkeit, dies zu sehen, besteht darin, zu bemerken, dass die Spitze von 240 ungefähr gleich nach einer schnellen visuellen Überprüfung und einer Augapfel-Filterung der vorherigen Darstellung ist.

Also hören Sie jetzt auf und überlegen Sie, was diese Impulsantwort tatsächlich bedeutet. Beachten Sie zunächst, dass es mal 1M angezeigt wird, so dass der Peak wirklich 0,000240 des Vollausschlags beträgt. Dies bedeutet, dass theoretisch, wenn das System nur für einen der 500-ms-Zeitschlitze mit einem einzelnen Vollpuls betrieben würde, dies die resultierende Temperatur wäre, die sich daraus ergibt, dass es in Ruhe gelassen wurde. Der Beitrag von einer Periode von 500 ms ist sehr gering, was intuitiv sinnvoll ist. Dies ist auch der Grund, warum die direkte Messung der Impulsantwort nicht funktioniert, da 0,000240 der vollen Skala (etwa 1 Teil von 4000) unter unserem Geräuschpegel liegt.

Jetzt können Sie die Systemreaktion für jedes Steuereingangssignal einfach berechnen. Fügen Sie für jede 500-ms-Kontrollausgangsprobe eine dieser Impulsantworten hinzu, die durch die Größe dieser Kontrollprobe skaliert ist. Der Zeitpunkt 0 dieses Impulsantwortbeitrags zum endgültigen Systemausgangssignal liegt zum Zeitpunkt seiner Kontrollprobe. Daher ist das Systemausgangssignal eine Folge dieser Impulsantworten, die um 500 ms voneinander versetzt sind und jeweils auf den Kontrollprobenpegel zu diesem Zeitpunkt skaliert sind.

Die Systemantwort ist die Faltung des Steuereingangs mit dieser Impulsantwort, die für jede Kontrollprobe berechnet wird, in diesem Beispiel also alle 500 ms. Um daraus ein Steuerungssystem zu machen, arbeiten Sie es rückwärts, um die Steuereingabe zu bestimmen, die zur gewünschten Systemausgabe führt.

Diese Impulsantwort ist immer noch sehr nützlich, auch wenn Sie einen klassischen PID-Regler verwenden möchten. Das Einstellen eines PID-Reglers erfordert viel Experimentieren. Jede Iteration würde auf dem realen System ein oder zwei Stunden dauern, was die iterative Optimierung sehr sehr langsam machen würde. Mit der Impulsantwort können Sie die Systemantwort auf einem Computer in Bruchteilen von Sekunden simulieren. Sie können jetzt neue PID-Werte ausprobieren, so schnell Sie sie ändern können, und müssen nicht ein oder zwei Stunden warten, bis das reale System die Antwort anzeigt. Endwerte sollten natürlich immer auf dem realen System überprüft werden, aber die meiste Arbeit kann mit Simulation in Bruchteilen der Zeit erledigt werden. Dies ist, was ich mit "Sie können dies als eine Simulationsbasis verwenden, um die Parameter für eine altmodische PID-Regelung zu finden" in der Passage, die Sie in Ihrer Frage zitiert haben.


4
Nicht. auch. schäbig.
NickHalden

4
Ich denke, einige Abschnittsüberschriften könnten hier wirklich wertvoll sein. Aber es ist großartig.
Kortuk

Ich bin zu spät zur Party, aber trotzdem: Beeindruckende Antwort, Olin! :)
bitsmack

7

FIR- und IIR-Filter, wie Jon erwähnt, sind digitale Filter, die direkt die Faltung der Impulsantwort implementieren, wie der Name schon sagt (Finite \ Infinite Impulse Response).

Das Falten der Impulsantwort auf ein Signal (im Zeitbereich) entspricht genau dem Multiplizieren der Übertragungsfunktion mit der Transformation des Signals (im Frequenzbereich). und im Grunde besteht es darin, die Impulsantwort des Filters mit der übersetzten Version des Signals zu multiplizieren (denken Sie daran, dass die Filterantwort zeitlich festgelegt ist, während sich das Signal zeitlich kontinuierlich ändert).

In digitalen Filtern wird die Impulsantwort auf eine feste Anzahl von Koeffizienten reduziert, die das Signal an einem bestimmten Punkt multiplizieren. Die Punkte werden durch Verzögerungen voneinander getrennt, so dass a 0 den Momentanwert des Signals multipliziert , während a k das gleiche Signal nach k Verzögerungseinheiten multipliziert .

Bildbeschreibung hier eingeben

Die Abbildung zeigt die Impulsantwort eines generischen Filters (in diesem Fall Tiefpass), bei dem die Koeffizienten für ein FIR-Filter mit 13 Abgriffen (Anzahl der Verzögerungen) erhalten werden.

Um einige Übertragungsfunktionen zu erhalten, würde ein FIR-Filter eine unendliche Anzahl von Koeffizienten erfordern. In diesen Fällen wird eine Rückkopplung verwendet, um IIR-Filter (Infinite Impulse Response) zu erhalten. Diese Filter ermöglichen bessere Übertragungsfunktionen (z. B. einen engeren Übergang zwischen Durchlassband und unterdrücktem Band in Filtern), können jedoch Instabilität erzeugen, während FIR-Filter konstruktionsstabil sind.

Diese Art von Filtern kann mit analogen Schaltkreisen entworfen werden, erfordert jedoch genaue Verstärker, die auf die Koeffizienten abgestimmt sind, und genaue Verzögerungsschaltungen und hat eine enorme Zunahme der Hardware, wenn die Anzahl der Abgriffe erhöht wird. Häufiger werden diese Filter in DSPs implementiert, wo die Operationen an digitalen Signalen auf viel einfachere Weise ausgeführt werden.

Also, um direkt Ihre Frage zu beantworten : die Abstimmung von digitalen Filtern erfolgt nur die Koeffizienten der diskretisierten Impulsantwort zu setzen.

Aktualisieren

OP fragte nach Schritt- und Impulsantwort; Nun, wie Olin und Jon sagten, ist die Impulsantwort die Ableitung der Sprungantwort, und offensichtlich ist die Sprungantwort das Integral der Impulsantwort.

Die Sprungantwort ist in Steuerungssystemen weit verbreitet, da sie das Wichtigste zeigt: wie schnell sie auf schnelle Änderungen der Eingabe reagieren und ob sie stabil sind und den Fehler über die Zeit minimieren können.

Die Impulsantwort ist jedoch sehr wichtig, da mit ihr berechnet werden kann, was das Eingangssignal zu einem bestimmten Zeitpunkt am Ausgang verursacht, sodass das vollständige Ausgangssignal erhalten werden kann, indem das Ergebnis der Impulsantwort multipliziert mit dem Eingangssignal gestapelt wird ist die Faltung, und hier geschieht deine Magie. Ja, denn die Impulsantwort ist nichts anderes als die Fourier-Antitransformation der Übertragungsfunktion des Reglers.

Das ist also die Stärke digitaler Filter: Sie implementieren direkt die Impulsantwort und ob wir eine Sprungantwort (im Fall eines Steuerungssystems) oder eine Übertragungsfunktion (im Fall eines Filters) reproduzieren möchten, müssen wir nur leiten Sie die Impulsantwort ab und extrahieren Sie die Koeffizienten für die FIR.


Gute Antwort! Können Sie zum Abschluss angeben, wie die Impulsantwort vom Schritt abgerufen werden soll? (Ich sehe es in @ JonWattes Antwort.)
Tyblu

4

Die Faltung ist in der Regel ein FIR-Filter und kein IIR, wie Sie es bei einem herkömmlichen rekursiven Filter mit Polen und Nullen erhalten. Wenn Sie nun die Sprungantwort haben, können Sie diese invertieren und Ihr Antwortsignal damit vorfalten. Das Endergebnis ist, dass das gesamte System genau eine Sprungantwort aufweist. Im allgemeinen Fall führt dies jedoch zu einer Gruppenverzögerung, da Sie die inverse Antwort "vorladen" müssen. In einem Steuerungssystem kann dies zu unerwünschter Latenz führen.


@JohWatte, ein Beispiel?
Kortuk

1
Oder was ich getan habe, ist ein Tiefpassfilter auf das Steuersignal anzuwenden. Im Idealfall führt ein Step-In zu einem Step-Out, was jedoch physikalisch nicht möglich ist, da die Ausgabe unendlich werden müsste. Sie filtern den Steuereingang so, dass aus einem Stufeneingang etwas wird, das Sie realisieren können, dh die Faltungswerte überschreiten nie das, was Ihr Ausgangslaufwerk erzeugen kann. Insbesondere sind negative Werte oft nicht möglich. Wenn Sie beispielsweise die Temperatur mit einer Widerstandsheizung regeln, können Sie keine negative Wärme erzeugen (mit einem Peltier könnten Sie negative Werte erzielen).
Olin Lathrop

Wie invertiert man die Sprungantwort? Ist das "Antwortsignal" der gewünschte Ausgang?
Tyblu

Kurz, wenn ich mich richtig erinnere: Sie wandeln die Sprungantwort in Impulsantwort um. Dann subtrahieren Sie die Impulsantwort (mit dem herausgenommenen Impuls), die mit dem Eingangssignal verknüpft ist, vom Ausgangssignal. Es ist diese Faltung, die die Gruppenverzögerung (Latenz) erhöht. Ich erinnere mich, dass ich vor einem Dutzend Jahren gute Referenzen in Bezug auf Mikrofon- und Raummodellierung in Audio-DSP gesehen habe.
Jon Watte

2

Ich würde das umkehren und sagen, wenn Sie die Fähigkeit haben, die Sprungantwort Ihres Systems zu messen, können Sie einen Großteil der Theorie verkürzen und einfach mit der Optimierung Ihrer Steuerparameter fortfahren. Anstatt die Reaktion im offenen Regelkreis zu messen und die idealen Regelparameter zu berechnen (obwohl dies hilfreich ist, um einen guten Ausgangspunkt für die Optimierung zu finden), können Sie Ihr System durch Messen der Reaktion im geschlossenen Regelkreis optimieren.

Die Hauptidee ist, dass Sie durch Messen der Sprungantwort (grob) sehen können, ob das Steuersystem unter- oder überdämpft oder kritisch gedämpft ist (idealerweise).

Wenn Sie die Sprungantwort messen und ein Klingeln feststellen, wissen Sie, dass Sie unterdämpft sind. Wenn Sie die Sprungantwort messen und der Ausgang nur langsam auf den Endwert kommt, wissen Sie, dass Sie unterdämpft sind. Wenn Sie den Regler abstimmen können, während Sie wiederholt die Sprungantwort messen, können Sie sie einfach einstellen, um die schnellste Antwort zu erhalten, ohne zu klingeln, und wissen, dass Sie sich in der Nähe der besten Antwort befinden.

Sie können mit dem Begriff P beginnen. Wenn die Ergebnisse nicht zufriedenstellend sind, fügen Sie die I- und D-Terme hinzu. Der I-Term hilft dabei, lange Schwänze in der Antwort oder in Fällen, in denen die Ausgabe den gewünschten Wert nie ganz erreicht , loszuwerden . Der D-Term ist hilfreich, um die Antwort zu beschleunigen, indem "vorhergesagt" wird, wohin die Eingabe als Nächstes gehen wird. (Obwohl ich kein Steuerungsexperte bin, kann der P-Term zwar absolut optimiert werden, aber die beste Auswahl an I- und D-Terms hängt nicht nur von der Reaktion Ihres kontrollierten Systems ab, sondern auch von die Merkmale, wie Frequenzinhalt und Amplitude des Eingangssignals)

Sobald Sie die schnellste Reaktion erhalten haben, die Sie ohne Klingeln erhalten können, stellen Sie sie auf etwas überdämpft ein, damit bei einer Temperaturänderung oder was auch immer das System nicht in Schwingung versetzt wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.