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:
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:
Dann habe ich mit der Ziegler-Nichol-Tabelle zum Abstimmen den folgenden PI-Controller erhalten:
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:
Das bekomme ich stattdessen:
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.
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.
Kp für PI-Regler mit Ziegler-Nichols First Method ist in der Tat
Da die Verstärkung eines Einheitsschritts 1 ist, ist dies der Fall
Nur wenn die Sprungantwort gegen 1 tendiert, ist ihre Gesamtverstärkung K0 auch gleich 1, was schließlich auch wird
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:
(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:
Bei diesen ist die Sprungantwort eine stabilisierende unterdämpfte Schwingung.
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)
Chu
Hypergeometrie
Hypergeometrie
Marko Buršič
Hypergeometrie