PI Controller Design (Ziegler-Nichols) und Unit Step Response Graphing für System 4. Ordnung

Ich habe ein System, das einen PI-Controller erfordert, der mit den Ziegler-Nichols-Methoden entwickelt wurde. Ich würde auch gerne die Schrittantwort der Einheit in Matlab zeichnen, aber ich bekomme extrem seltsame Ergebnisse.

So sieht das System aus:

G ( S ) = 32 ( S + 2 ) 4

Ich habe die Kurve in Matlab gezeichnet und das Diagramm ausgedruckt, um die FOPDT-Näherung grafisch zu verwenden. Ich weiß, dass es wahrscheinlich mit Matlab möglich ist, aber ich komme aus der Mathematik und würde lieber grafische Methoden verwenden.

Das Finden der Mengen ist trivial, und dies ist mein Ergebnis:

F ( S ) = 2 2.519 S + 1 e 0,441 S
Ich habe meine grafischen Parameter eingegeben und in Matlab abgestimmt. Hätte die Annäherung durch Augenschein machen können, sollte aber zum besseren Verständnis beitragen. Wie auch immer, das sind die Parameter:
K 0 = 2
L = 0,441
T = 2,5188

Dann habe ich mit der Ziegler-Nichol-Tabelle zum Abstimmen den folgenden PI-Controller erhalten:

C ( S ) = 5.1451 ( 1 + 1 1.4687 S ) = 7.557 S + 5.145 1.469 S

Ich möchte nun die Schrittantwort im geschlossenen Regelkreis darstellen, die wie ein instabiles, unterdämpftes System aussehen sollte, das sich schließlich stabilisiert. Das System sollte drastisch oszillieren, wie zum Beispiel:

Geben Sie hier die Bildbeschreibung ein

Das bekomme ich stattdessen:

Geben Sie hier die Bildbeschreibung ein

Was total falsch ist.

Hier ist der (relevante) Matlab-Code:

%Unknown Transfer function

s=tf('s');

Gr=32/(s+2)^4;

% step(Gr)


% Approximation Taylor

K0=2; %Numerator gain factor

L=.4406; %Exponent power gain factor

t=2.5188; %Denominator gain factor

Go=(K0*exp(-L.*s)).*((t*s+1)^(-1));


%PI

Ti=L/.3; 

Td=0;

Kp=.9*t/L; %gain

% Ki=Kp/Ti;

% Kd=Td*Kp;

Cpi=Kp*(1+1/(Ti*s));

Css=5.1451*(1+1/(1.4687*s));

%Closed Loop, Real

Gs=feedback(Gr*Css,1);

step(Gs)

(Fühlen Sie sich frei, diese unordentliche Codeliste in etwas Erträglicheres zu ändern.)

Ich denke, mein Code ist irgendwie falsch, ich verstehe nur nicht, wie dieses Ergebnis Sinn macht.

Der Code erstellt im Grunde die 2 Blöcke und zeichnet dann für eine geschlossene Schleife über den Feedback-Befehl, Unity-Feedback-Konfiguration.

Jeder Tipp und jede Hilfe ist willkommen. Danke.

Bearbeiten: Nichols-Ziegler-Tabelle und InformationenGeben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Warum sind Sie von einem TF 4. Ordnung zu einem Pade-Näherungszeitverzögerungsmodell übergegangen?
Hallo, ich verwende eine Approximation erster Ordnung plus Totzeit, die für mich nur wie die Taylor-Approximation aussieht, nicht die Pade-Approximation. Ich habe Pade ausprobiert und es hat gut funktioniert. Im Wesentlichen möchte ich sehen, was passiert, wenn ich versuche, es mit einem System erster Ordnung zu modellieren und es zu kommentieren. Hoffe das klärt einiges auf. Danke!
Den Code zum Plotten weggelassen, ich habe ihn hinzugefügt.
Nach diesen Ziegler-Nichols-Tabellen hatte ich noch nie von der Ziegler-Methode gehört, die sich mit toter Zeit befasst.
@MarkoBuršič Sicher, ich habe den Beitrag mit der von mir verwendeten Tabelle aktualisiert.

Antworten (1)

Soweit ich sehen kann, sagt die Rezepttabelle nicht die ganze Wahrheit über Kp. Es fehlt die Verstärkung der Sprungantwort. Dieser Ausdruck ist gültig, solange die Sprungantwort zum gleichen Wert wie der Eingangsschritt tendiert, daher ist ihr Verstärkungsverhältnis 1. Aber System G reagiert auf einen Einheitsschritt, indem es auf 2 ansteigt. Also Schritt/Antwort-Verhältnis des gegebenen Systems ist 1/2.Die Sprungantwort von G hat eine Verstärkung von 2

Kp für PI-Regler mit Ziegler-Nichols First Method ist in der Tat

K P = 0,9 K S T e P K 0 T L

Da die Verstärkung eines Einheitsschritts 1 ist, ist dies der Fall

K P = 0,9 1 K 0 T L

Nur wenn die Sprungantwort gegen 1 tendiert, ist ihre Gesamtverstärkung K0 auch gleich 1, was schließlich auch wird

K P = 0,9 1 1 T L = 0,9 T L

wie in der Rezepttabelle zu sehen. Dies ist jedoch bei einem gegebenen System G nicht der Fall. Daher muss das Verstärkungsverhältnis sowie das Zeitverhältnis berücksichtigt werden, wenn Kp von G(t) erhalten wird:

K P = 0,9 1 K 0 T L = 0,9 1 2 2,5188 0,441 2.57

(Quelle: https://onlinelibrary.wiley.com/doi/pdf/10.1002/9780470029558.oth5 , Seite 292)

Auch die vorletzte Zeile des Matlab-Codes

Gs=feedback(Gr*Css,1);

Schleifen von 'Gr', was das gegebene System G(s) und 'Css' ist, was die FOPDT-Näherung für genau dieses System G(s) ist. Das Durchschleifen von G(s) und dem PI-Regler 'Cpi' sollte stattdessen zum Trick führen.

Gs=feedback(Gr*Cpi,1);

Dennoch ist diese geschlossene Schleife instabil, da sie zwei positiv konjugierte komplexe Pole hat:

pole(Gs)
ans =
  -4.0152 + 2.0976i
  -4.0152 - 2.0976i
   0.3426 + 2.0134i   % uh
   0.3426 - 2.0134i   % oh
  -0.6548 + 0.0000i

Die Verwendung von Photoshop für die grafische Annäherung (pixelgenaue Messung, warum nicht) Parameter der FOPDT-Annäherung sind eher wie folgt:

K 0 = 2
L = 0,7
T = 2.26

Bei diesen ist die Sprungantwort eine stabilisierende unterdämpfte Schwingung.

Sprungantwort ist eine unterdämpfte Schwingung, Überschwingen ~70 %, Einschwingzeit ~120 Sekunden

Neuer Matlab-Code:

s=tf('s');%Time Transfer function

Gr=32/(s+2)^4;%system G(s)

% Parameters of FOPDT approximant
K0=2; %step response gain
L=.7; %step response delay time
t=2.26; %step response time constant estimate

% Ziegler-Nichols First Method
% PI controller
Ti=L/.3; %integral time
Kp=.9/K0*t/L; %proportional gain


Cpi=Kp*(1+1/(Ti*s));%transfer function of PI


%closed loop of G(s) and PI
Gs=feedback(Gr*Cpi,1);

step(Gs)