Main Content

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Optimierung eines PID-Reglers zugunsten der Referenzverfolgung oder zugunsten der Störgrößenkompensation (Befehlszeile)

In diesem Beispiel wird gezeigt, wie die Befehlszeilenoptionen für die PID-Optimierung verwendet werden können, um das Überschwingen in der Referenzverfolgung zu verringern oder die Unterdrückung einer Störung am Regelstreckeneingang zu verbessern. Mit dem Befehl pidtune veranschaulicht dieses Beispiel den Kompromiss zwischen der Leistung der Referenzverfolgung und der Leistung der Störgrößenkompensation in PI- und PID-Regelungssystemen.

Betrachten Sie das Regelungssystem in der folgenden Abbildung.

Sollwertverfolgung ist die Antwort bei y auf Signale bei r. Kompensation von Eingangsstörgrößen ist die bei y stattfindende Unterdrückung von Signalen bei d.

Erstellen Sie ein Modell der Regelstrecke, die in diesem Beispiel wie folgt beschrieben wird:

$$G = \frac{{0.3}}{{{s^2} + 0.1s}}.$$

G = tf(0.3,[1 0.1 0]);

Entwerfen Sie für diese Regelstrecke einen PI-Regler mit einer Bandbreite von 0,03 rad/s.

wc = 0.03;
[C1,info] = pidtune(G,'PI',wc);

Untersuchen Sie die Sprung-Referenzverfolgung und Sprung-Störgrößenkompensation des Regelungssystems unter Verwendung des Standardreglers. Die Störgrößenantwort von d bis y entspricht der Antwort eines geschlossenen Regelkreises, die sich aus feedback(G,C1) ergibt.

T1 = feedback(G*C1,1);
GS1 = feedback(G,C1);

subplot(2,1,1);
stepplot(T1)
title('Reference Tracking')
subplot(2,1,2);
stepplot(GS1)
title('Disturbance Rejection')

Bei einer gegebenen Bandbreite optimiert pidtune standardmäßig den Regler so, dass ein Ausgleich zwischen Referenzverfolgung und Störgrößenkompensation erreicht wird. In diesem Fall ergibt sich im Regler ein gewisses Überschwingen in der Referenzverfolgungsantwort. Außerdem unterdrückt der Regler die Eingangsstörung nach einer ersten Spitze mit einer etwas längeren Einschwingzeit als bei der Referenzverfolgung.

Je nach Ihrer Anwendung können Sie den Ausgleich zwischen Referenzverfolgung und Störgrößenkompensation zugunsten der einen oder der anderen Funktion verändern. Für einen PI-Regler können Sie diesen Ausgleich durch Ändern des Phasenrandes des optimierten Systems verändern. Der durch pidtune zurückgegebene Standardregler hat einen Phasenrand von 60°.

info.PhaseMargin
ans =

   60.0000

Entwerfen Sie Regler für Phasenränder von 45° und 70° mit derselben Bandbreite und vergleichen Sie die resultierende Referenzverfolgung und Störgrößenkompensation.

opts2 = pidtuneOptions('PhaseMargin',45);
C2 = pidtune(G,'PI',wc,opts2);
T2 = feedback(G*C2,1);
GS2 = feedback(G,C2);

opts3 = pidtuneOptions('PhaseMargin',70);
C3 = pidtune(G,'PI',wc,opts3);
T3 = feedback(G*C3,1);
GS3 = feedback(G,C3);

subplot(2,1,1);
stepplot(T1,T2,T3)
legend('PM = 60','PM = 45','PM = 70')
title('Reference Tracking')
subplot(2,1,2);
stepplot(GS1,GS2,GS3)
title('Disturbance Rejection')

Bei Verringerung des Phasenrandes auf 45° wird zwar die Störgrößenkompensation beschleunigt, aber auch das Überschwingen in der Referenzverfolgungsantwort erhöht. Bei Erhöhung des Phasenrandes auf 70° wird zwar das Überschwingen vollständig eliminiert, gleichzeitig wird aber die Störgrößenkompensation extrem träge. Sie können so lange andere Werte für den Phasenrand ausprobieren, bis Sie einen Ausgleich zwischen Referenzverfolgung und Störgrößenkompensation finden, der für Ihre Anwendung geeignet ist. Welchen Effekt der Phasenrand auf diesen Ausgleich hat, hängt vom Regelstreckenmodell ab. Bei einigen Regelstreckenmodellen ist dieser Effekt nicht so groß, wie in diesem Beispiel dargestellt.

Wenn Sie sowohl die Bandbreite als auch den Phasenrand Ihres Regelungssystems fixieren möchten, können Sie dennoch mit der Option DesignFocus von pidtune den Ausgleich zwischen Referenzverfolgung und Störgrößenkompensation ändern. Sie können DesignFocus entweder auf 'disturbance-rejection' oder auf 'reference-tracking' festlegen, um einen Regler zugunsten der einen oder der anderen Funktion zu optimieren.

Die Option DesignFocus ist bei einem Regelungssystem mit mehr optimierbaren Parametern effektiver. Deshalb hat dies bei der Verwendung bei einem PI-Regler keinen großen Effekt. Um diesen Effekt zu sehen, entwerfen Sie mit jedem der Werte von DesignFocus einen PIDF-Regler für dieselbe Bandbreite und den Standard-Phasenrand (60°). Vergleichen Sie die Ergebnisse.

opts4 = pidtuneOptions('DesignFocus','balanced');   % default focus
C4 = pidtune(G,'PIDF',wc,opts4);
T4 = feedback(G*C4,1);
GS4 = feedback(G,C4);

opts5 = pidtuneOptions('DesignFocus','disturbance-rejection');
C5 = pidtune(G,'PIDF',wc,opts5);
T5 = feedback(G*C5,1);
GS5 = feedback(G,C5);

opts6 = pidtuneOptions('DesignFocus','reference-tracking');
C6 = pidtune(G,'PIDF',wc,opts6);
T6 = feedback(G*C6,1);
GS6 = feedback(G,C6);

subplot(2,1,1);
stepplot(T4,T5,T6)
legend('Balanced','Rejection','Tracking')
title('Reference Tracking')
subplot(2,1,2);
stepplot(GS4,GS5,GS6)
title('Disturbance Rejection')

Wenn Sie die Option DesignFocus verwenden, um das Regelungssystem zugunsten der Referenzverfolgung oder zugunsten der Störgrößenkompensation zu optimieren, können Sie trotzdem den Phasenrand anpassen, um eine weitere Feinabstimmung des Ausgleichs zwischen den zwei Leistungskennzahlen zu erreichen. Verwenden Sie DesignFocus und PhaseMargin gemeinsam, um den Leistungsausgleich zu erreichen, der Ihren Entwurfsanforderungen am besten gerecht wird.

Der Effekt beider Optionen auf die Leistung des Systems hängt stark von den Eigenschaften Ihrer Regelstrecke ab. Bei einigen Regelstrecken hat das Ändern der Option PhaseMargin oder der Option DesignFocus nur geringen oder gar keinen Effekt.

Verwandte Themen