Implementieren von Feedforward von einem Feedback-Kontrollsystem

In einem Standard-Feedback-Steuerungssystem haben Sie einen Sollwert, einen Controller, eine Anlage und einen Sensor, um Feedback zu ermöglichen. Der Sensor misst die Prozessvariable (oder mit anderen Worten das Argument, das Sie tatsächlich zu steuern versuchen).

Jetzt möchte ich eine Feedforward-Komponente hinzufügen. Unter Bezugnahme auf dieses MATLAB- Beispiel benötigen Sie bei der Implementierung einer Feedforward-Komponente ein zusätzliches Störungsmodell und einen Feedforward-Controller.

Hier benötige ich eine Klarstellung. Muss ich beim Hinzufügen einer Feedforward-Komponente die Störung getrennt von der Prozessvariablen messen? Oder ist die Störung gleich meiner Prozessvariablen selbst? Wenn ich vorher in meinem System nur einen Sensor habe, um die Prozessvariable zu messen, und ich habe keine Möglichkeit, die Störung zu messen. Ist es möglich, eine Feedforward-Komponente in mein Steuerungssystem zu implementieren?

Antworten (2)

Ja - ich unterstütze die Antwort von Marko Bursic; Darüber hinaus würde ich den Begriff "Feedforward-Schleife" nicht verwenden (weil es tatsächlich überhaupt keine Schleife ist). Meiner Meinung nach ist es besser, "Feedforward-Pfad" zu sagen.

Ein solcher Pfad existiert manchmal - je nach aktuellem System. Manchmal enthält es ein Störsignal, kann aber auch dafür verantwortlich sein, einen Teil des Eingangssignals durchzuschleifen.

Einfaches Beispiel: Ein Widerstand Rb zwischen Basis und Kollektor einer Verstärkerstufe in Emitterschaltung. Der Widerstand Rb hat die Aufgabe, DC- oder/und AC-Gegenkopplung zu liefern - ermöglicht aber gleichzeitig ein kleines Durchschleifsignal vom Eingang direkt zum Ausgang (Kollektorknoten). An diesem Knoten wird sie (mit 180 Grad Phasenverschiebung) zur "normalen" Ausgangsspannung (verursacht durch die Schwankungen des Kollektorstroms) hinzugefügt.

Daher gibt es zwei offene Fragen: (a) Warum "wollen" Sie einen Feedforward-Pfad hinzufügen und (b) warum glauben Sie, dass wir in diesem Fall "ein zusätzliches Störungsmodell benötigen würden"?

Richtig, es sollte nicht loop heißen, da ich ausdrücklich geschrieben habe, dass es nicht geschlossen, looped sein darf. Ich werde meine Antwort korrigieren, danke.
@LvW Hallo, (a) Ich möchte eine FF-Komponente hinzufügen, weil meine Störungsunterdrückung in meinem System schlecht ist. Die schlechte Leistung ist auf große Verzögerungen im Sensor zurückzuführen, mit dem ich feststecke. Meine Verstärkungsspanne ist bereits sehr gering und ich habe wenig Spielraum, um mit Stand-Closed-Loop-PID zu arbeiten. (b) Ich habe FF noch nie in ein System implementiert und lerne, was es ist/wie man es verwendet, indem ich das MATLAB- Beispiel verwende, das ich im OP verlinkt habe. Wenn Sie andere Quellen für die FF-Steuerung haben, würde ich mir diese gerne ansehen.
Danny G., ich denke, es wäre sehr hilfreich, ein Blockdiagramm mit allen relevanten Blöcken und Einträgen zu sehen. Vor allem, weil Sie das Problem der Verzögerung angesprochen haben.

Verstehe nicht, was du mit Störungsmessung meinst. Üblicherweise handelt es sich bei Störungen um unerwünschtes Rauschen, das natürlich nicht gemessen werden kann. Der Feedforward- Loop- Pfad ist eine Art vorteilhafte Störung, aber immer noch eine Störung.
Sie dürfen den Regelkreis nicht mit dem Feedforward schließen, weil es das Systemverhalten ändert: Ein Feedforward- Loop- Pfad ist eine Open-Loop-Steuerung, während der Controller in einem Closed-Loop arbeitet. Die Signalinjektion durch einen Feedforward- Loop- Pfad bedeutet eine Störung für den geschlossenen Regelkreis. Wenn also der Controller richtig abgestimmt ist, sodass er in einem sicheren Bereich von Schwingungen bleibt, können wir sagen, dass der Feedforward-Loop- Pfad keinen Einfluss auf die Stabilität hat. Die HF-Anregung wird von FF eingespeistLoop- Pfad wird von Closed-Loop verworfen.
Der FF ist eine Funktion des Sollwertparameters, MUSS OPEN LOOP SEIN.

Eine Störung kann zB eine messbare Änderung von Umgebungsbedingungen sein.
@Chu In diesem Fall können Sie, wie im Beispiel von OP, die Übertragungsfunktion der Störung schätzen und eine Gegenmaßnahmenstörung einspeisen, jedoch immer noch im offenen Regelkreis. j F F = F ( D ) . Normalerweise wird der FF-Pfad verwendet, um die Reaktion der gesamten Steuerung zu beschleunigen, indem ein bekannter Ausgangswert hinzugefügt wird j F F = F ( X S P ) bezogen auf den Sollwert.
Die klassische Struktur fügt die gemessene Störung nach dem Prozess hinzu, so dass sie sich innerhalb des Hauptregelkreises befindet und daher vom (PID-)Regler zurückgewiesen wird.
@MarkoBuršič Hallo Marco, ja ich verstehe, dass FF Open Loop ist. Ich habe nicht erwähnt, dass es sich um eine Schleife handelt. Ich entschuldige mich, wenn meine ursprüngliche Frage diesen Sinn ergibt. Lassen Sie mich versuchen, meine Verwirrung umzuformulieren. Ich versuche, meinem System eine Feedforward-Komponente hinzuzufügen. Die Prozessvariable (das Argument, das ich zu kontrollieren versuche) ist die Kraft, die von einem Dehnungsmessstreifen geliefert wird. Das ist das Einzige, was ich messe. Ein erforderliches Störungsmodell beschreibt den Zusammenhang zwischen einer Störung (Eingang) und der Prozessvariablen/Kraft (Ausgang). Muss ich die Störung nicht messen?
@DannyGelman Es wäre einfacher, wenn Sie das gesamte System beschreiben, insbesondere den Aktor - was betätigt der manipulierte Wert? Und wenn es eine bekannte Steady-State-Charakteristik gibt zwischen: manipulierter Wert VS. Gewalt. Vergiss jetzt den Störeingang, den hast du ja nicht. Sie können eine Regelung mit oder ohne FF vornehmen, auch ohne den Störeingang.
@MarkoBuršič Ich habe einen linearen Aktuator, der einen Endeffektor zieht / drückt, der auf eine sich bewegende Oberfläche übertragen wird. Ein Kraftsensor an der Spitze des Endeffektors liefert einen Kontaktkraftmesswert, der als Prozessvariable für die PID-Regelung verwendet wird. Das eingebettete Steuerungssystem läuft auf einem Arduino Due. Der Kraftsensor hat eine Zeitverzögerung – Standardabstimmungsverfahren führen zu einer schlechten Störungsunterdrückung. Ich habe ein Systemmodell, das auf Eingabe-/Ausgabedaten basiert. Sie erwähnen "Sie können eine Steuerung mit ... FF vornehmen, auch ohne den Störeingang." - Ich habe offensichtlich keine Ahnung, wie man FF implementiert, können Sie irgendwelche Ressourcen bereitstellen?
@MarkoBuršič Ich habe immer noch das Gefühl, dass das OP geklärt werden muss. Beachten Sie hier , dass der STÖRUNGS-Block von der Temperatur-T-Anzeige getrennt ist. Unterscheidet sich der Block STÖRUNG von der Temperatur T? In meiner Anwendung habe ich nur eine Kraftablesung, die die resultierende Kraftstörung aufgrund von Oberflächenbewegungen erfasst - und keine separate Methode zur Erkennung von Störungen. Kann erzwungenes Lesen meine STÖRUNG sein und FF als solches implementieren?
@DannyGelman Ich bin kein englischer Muttersprachler, daher werden Ihnen die Bücher über Kontrolltheorie, die ich gelesen habe, nicht helfen. Sie können von Hand darstellen, was genau dieser Endeffektor ist und wie der Aktuator gesteuert wird? Es ist schwierig, Ihr Setup zu verstehen: Es ist eine geschwindigkeitsgesteuerte Position, Kraft, ... Sensoren, die Sie haben, etc ... Ich kann Ihnen nicht helfen, ohne die Details zu kennen.
@DannyGelman Nein, das Kraftlesen ist keine Störung. Sie haben überhaupt keinen Störwert. Das Bild zeigt einen Fall, in dem eine bekannte Störung verwendet wird, um FF zu implementieren, aber ein FF kann implementiert werden, um die Reaktion des Systems zu beschleunigen, was Nachschlagetabellen und Modelle beinhaltet, für die der manipulierte Wert "a priori" bekannt ist ", noch bevor der Fehler zu wachsen beginnt.
@MarkoBuršič "aber ein FF kann implementiert werden, um die Reaktion des Systems zu beschleunigen, was das Nachschlagen von Tabellen und Modellen beinhaltet, für die der manipulierte Wert "a priori" bekannt ist" Genau das möchte ich implementieren - ich kann kein Material finden, um darüber zu lernen. In Bezug auf mein System-Setup würde ich gerne mit Ihnen darüber chatten, aber es wäre wahrscheinlich besser, diese Diskussion in den Chat zu verschieben.