Hauptinhalt

Entwickeln eines Kaskaden-Regelungssystems mit PI-Reglern

In diesem Beispiel wird gezeigt, wie Sie mithilfe des Befehls pidtune ein Kaskaden-Regelungssystem mit zwei PI-Reglern entwickeln.

Einführung in die Kaskaden-Regelung

Eine Kaskaden-Regelung wird hauptsächlich zur schnellen Ablehnung von Störungen verwendet, bevor sich diese auf andere Teile der Regelstrecke ausbreiten. Das einfachste Kaskaden-Regelungssystem umfasst zwei Regelungsschleifen (innere und äußere), wie im folgenden Blockdiagramm dargestellt.

Der Regler C1 in der äußeren Schleife ist der primäre Regler, der die primär gesteuerte Variable y1 durch Festlegen des Sollwerts der inneren Schleife regelt. Der Regler C2 in der inneren Schleife ist der sekundäre Regler, der die Störung d2 lokal ablehnt, bevor sie sich auf P1 ausbreitet. Damit ein Kaskaden-Regelungssystem korrekt funktionieren kann, muss die innere Schleife erheblich schneller als die äußere Schleife reagieren.

In diesem Beispiel entwickeln Sie ein Regelungssystem mit einer Schleife mit einem PI-Regler und einem Kaskaden-Regelungsystem mit zwei PI-Reglern. Die Antworten der zwei Regelungssysteme werden sowohl für die Referenzverfolgung als auch die Ablehnung von Störungen verglichen.

Regelstrecke

In diesem Beispiel ist die innere Regelstrecken-Schleife P2

P2(s)=3s+2

Die äußere Regelstrecken-Schleife P1 ist

P1(s)=10(s+1)3

P2 = zpk([],-2,3);
P1 = zpk([],[-1 -1 -1],10);

Entwickeln eines Regelungssystems mit einer Schleife mit einem PI-Regler

Verwenden Sie den Befehl pidtune, um einen PI-Regler in Standardform für das gesamte Regelstreckenmodell P = P1 * P2 zu entwickeln.

Die gewünschte Bandbreite der offenen Schleife ist 0,2 rad/s, was etwa einer Antwortzeit von 10 Sekunden entspricht.

% The plant model is P = P1*P2
P = P1*P2; 
% Use a PID or PIDSTD object to define the desired controller structure
C = pidstd(1,1);
% Tune PI controller for target bandwidth is 0.2 rad/s
C = pidtune(P,C,0.2);
C
C =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.0119, Ti = 0.849
 
Continuous-time PI controller in standard form
Model Properties

Entwickeln eines Kaskaden-Regelungssystems mit zwei PI-Reglern

Die empfohlene Praxis ist, zunächst den inneren Schleifenregler C2 zu entwickeln, gefolgt vom äußeren Schleifenregler C1, wenn die innere Schleife geschlossen ist. In diesem Beispiel wählen wir für die Bandbreite der inneren Schleife 2 rad/s, zehnmal höher als die gewünschte Bandbreite der äußeren Schleife. Für ein effektives Kaskaden-Regelungssystem muss die innere Schleife erheblich schneller als die äußere Schleife reagieren.

Stimmen Sie den inneren Schleifenregler C2 mit einer Bandbreite der offenen Schleife von 2 rad/s ab.

C2 = pidtune(P2,pidstd(1,1),2);
C2
C2 =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.244, Ti = 0.134
 
Continuous-time PI controller in standard form
Model Properties

Stimmen Sie den äußeren Schleifenregler C1 mit derselben Bandbreite wie das Einschleifen-System ab.

% Inner loop system when the control loop is closed first
clsys = feedback(P2*C2,1); 
% Plant seen by the outer loop controller C1 is clsys*P1
C1 = pidtune(clsys*P1,pidstd(1,1),0.2);
C1
C1 =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.015, Ti = 0.716
 
Continuous-time PI controller in standard form
Model Properties

Leistungsvergleich

Plotten Sie zunächst die Stufen-Referenzverfolgungsantworten für beide Regelungssysteme.

% single loop system for reference tracking 
sys1 = feedback(P*C,1);
sys1.Name = 'Single Loop';
% cascade system for reference tracking
sys2 = feedback(clsys*P1*C1,1); 
sys2.Name = 'Cascade';
% plot step response
figure;
step(sys1,'r',sys2,'b')
legend('show','location','southeast')
title('Reference Tracking')

MATLAB figure

Plotten Sie daraufhin die Ablehnungsantworten der sprungartigen Störung d2 beider Regelungssysteme.

% single loop system for rejecting d2
sysd1 = feedback(P1,P2*C); 
sysd1.Name = 'Single Loop';
% cascade system for rejecting d2
sysd2 = P1/(1+P2*C2+P2*P1*C1*C2); 
sysd2.Name = 'Cascade';
% plot step response
figure;
step(sysd1,'r',sysd2,'b')
legend('show')
title('Disturbance Rejection')

MATLAB figure

Aus beiden Antwortdiagrammen können Sie schließen, dass das Kaskaden-Regelungssystem eine erheblich bessere Leistung bei der Ablehnung der Störung d2 aufweist, wenn die Sollwert-Nachverfolgungsleistungen nahezu identisch sind.

Siehe auch

|

Themen