Nyquist-Plot widerspricht der Einheitssprungantwort des geschlossenen Regelkreises

Nehmen wir an, dass die Open-Loop-Übertragungsfunktion meines Systems ist:

L ( S ) = 10 ( S + 1 ) ( S + 2 ) ( S 3 ) ( S 4 )

Außerdem hat das System Einheitsrückkopplung, was bedeutet, dass die Übertragungsfunktion des geschlossenen Regelkreises ist

T ( S ) = L ( S ) 1 + L ( S ) seit L ( S ) = G ( S ) H ( S ) Und H ( S ) = 1

Dann ist der Nyquist-Plot folgender:

Geben Sie hier die Bildbeschreibung ein

Es sind 2 RHP-Pole vorhanden und das Diagramm umkreist den (-1,0)-Punkt 2 Mal gegen den Uhrzeigersinn. Z = N P Wo N = 2 Und P = 2 So Z = 0 => Stabiles System.

Und die Sprungantwort der Einheit ist dies (für die geschlossene Schleife):

Geben Sie hier die Bildbeschreibung ein

Es sieht stabil aus, aber wenn ich auf "mehr Zeit" drücke, sieht es ziemlich instabil aus:

Geben Sie hier die Bildbeschreibung ein

Das Nyquist-Diagramm widerspricht also der Einheits-Sprungantwort. Was ist los?

Die Übertragungsfunktion ist theoretischer Natur und repräsentiert nicht notwendigerweise die Reaktion eines realen Systems. Ich habe darauf geachtet, dass die Einheits-Sprungantwort die der Übertragungsfunktion des geschlossenen Regelkreises ist (und nicht die des offenen Regelkreises, der eindeutig instabil ist). Ich habe WolframAlpha für alle meine Plots verwendet.

Ich sehe dieses Problem nicht in WolframAlpha.
@SubaThomas hast du versucht, dieselbe Closed-Loop-Funktion zu simulieren? Was hast du bekommen?
Ja, ich habe die Sprungantwort des Closed-Loop-Systems sowohl in Alpha als auch in Mathematica getestet und das Problem, das Sie haben, nicht gesehen.
@Suba Thomas, Sie haben einen gültigen Punkt angesprochen, die Art und Weise, wie ich meine Übertragungsfunktion einführe, wirkt sich auf das Einheitsschrittdiagramm aus. Wenn ich eine Übertragungsfunktion mit geschlossener Schleife in der Form ((s+7)/(s-3))/(1+(s+7)/(s-3)) nehme, erhalte ich das beschriebene laute und seltsame Verhalten. Wenn ich es jedoch zuerst zu (s+7)/(2*s+4) vereinfache und es dann einfüge, gibt es kein Problem.
Ich brauche mehr als einen Kommentar, um zu erklären, was los ist. Ich werde eine Antwort posten.

Antworten (2)

Bitte überprüfen Sie die Simulation/Plots. Dieses Verhalten scheint viel zu schnell ("zu laut") für die Dynamik Ihres Systems zu sein. Ich habe versucht, das Closed-Loop-System in Octave zu simulieren und konnte feststellen, dass es eine instabile Polauslöschung gibt, aber das führt nicht zu dem "instabilen" Verhalten in Octave.

Ich würde sagen, das ist ein Problem in WolframAlpha und nicht wirklich eine Sache der Kontrolltheorie.

Pol-Null-Karte des geschlossenen Regelkreises

Schrittsimulation des Systems


s = tf('s')
l = 10(s+1)(s+2)/((s−3)(s−4))
pzmap(l/(1+l))
step(l/(1+l),40)
Vielen Dank, dass Sie sich die Zeit genommen haben, meine Handlung zu überprüfen! Tatsächlich bestätigen andere Step-Response-Plots, dass es ein Problem mit Wolfram Alpha gibt.

Das System mit geschlossener Schleife hat einen RHP-Pol und eine Null. Wenn sie nicht aufgehoben werden, kann die instabile Dynamik manchmal in der Ausgabe erscheinen.

Dies ist das Ergebnis, das Sie von Wolfram Alpha sehen.

((s + 7)/(s - 3))/(1 + (s + 7)/(s - 3));
Grid[{{tfm = TransferFunctionModel[%, s], ssm = StateSpaceModel[tfm]}}]
or = OutputResponse[ssm, UnitStep[t], {t, 0, 20}];
Plot[or, {t, 0, 20}]

Geben Sie hier die Bildbeschreibung ein

Wenn Sie den gesamten Bereich zeichnen, werden Sie sehen, dass die Ausgabe tatsächlich explodiert.

Plot[or, {t, 0, 20}, PlotRange -> All]

Geben Sie hier die Bildbeschreibung ein

Werden Pol und Null aufgehoben, ist die Dynamik stabil.

Grid[{{tfm1 = TransferFunctionCancel[tfm], 
ssm1 = StateSpaceModel[tfm1]}}]
or1 = OutputResponse[ssm1, UnitStep[t], {t, 0, 20}];
Plot[or1, {t, 0, 20}, PlotRange -> All]

Geben Sie hier die Bildbeschreibung ein

Um ein klareres Bild zu erhalten, führen Sie die Analyse mit der kanonischen Realisierung von Jordan durch.

ssm2 = Last@JordanModelDecomposition@ssm
or2 = OutputResponse[ssm2, UnitStep[t], {t, 0, 20}];
Plot[or2, {t, 0, 20}, PlotRange -> All]

Geben Sie hier die Bildbeschreibung ein

Sie können sehen, dass die Ausgabe stabil ist und sich gut verhält, da sie nur vom ersten Zustand abhängt. Der zweite Zustand ist instabil und explodiert, manifestiert sich jedoch nicht in der Ausgabe. Sie können die einzelnen Zustandsantworten darstellen und sehen, dass die zweite tatsächlich explodiert.

sr2 = StateResponse[ssm2, UnitStep[t], {t, 0, 20}];
GraphicsRow[Plot[#, {t, 0, 20}, PlotRange -> All] & /@ sr2]

Geben Sie hier die Bildbeschreibung ein

Zusammenfassend kommt es darauf an, wie man diese Übertragungsfunktion realisiert. Wenn die instabile Dynamik nicht aufgehoben werden kann, werden sie irgendwo auftauchen. Sie sehen es vielleicht nicht am Ausgang, aber die Dinge explodieren intern.

Aber sieht diese Antwort für ein lineares System nicht seltsam aus? Es scheint eher mit numerischen Fehlern bei der Berechnung des Schritts/Impulses zu tun zu haben als mit dem tatsächlichen instabilen Modus, der angezeigt wird. Zumal beide Pole echt sind und nicht zu jenen Schwingungen führen sollten, die erst nach einem fast "eingeschwungenen" Ansprechverhalten auftreten.
@jDAQ Ja, es ist ein numerischer Fehler wegen des instabilen Begriffs e 3 T wird nicht als abgebrochen T erhöht sich. In Octave führen Sie vor der Simulation eine Pol-Null-Unterdrückung durch oder wird dies intern durchgeführt. Wenn nicht, bis zu wie hoch ein Wert von T Können Sie simulieren und trotzdem eine konstante Steady-State-Reaktion sehen?
Ich habe die Grenzen des Oktavmodells nicht getestet, aber ich gehe davon aus, dass es tatsächlich eine Modellreduktion und eine ordnungsgemäße Aufhebung des Pols vorgenommen hat. Und mit numerischem Fehler meine ich, dass der in den Diagrammen angezeigte instabile Modus nicht einmal ein ist e 3 T es ist alles wellig und hochfrequent, während es viel Zeit braucht, bis es angezeigt wird. Ich habe es in Octave noch nicht ausprobiert, aber ich frage mich, welche Art von Rundungsfehlern oder Simulationsfehlern zu diesem Verhalten führen und welcher Wert von pole das verursacht.
Sie sagen also, dass es klar ist, dass die Einheitssprungantwort des Ausgangs für alle t stabil sein sollte, aber innerhalb des Systems tatsächlich etwas instabil ist? Obwohl Wolfram es nicht in die Ausgabe einfügen sollte, ist es also richtig, darauf hinzuweisen, dass an anderer Stelle im System etwas instabil ist? (Anmerkung: Angesichts der Regelkreistransf. ist ((s+7)/(s-3))/(1+(s+7)/(s-3)))
Ob es in die Ausgabe eingefügt werden soll oder nicht, ist Ansichtssache. Wenn es nicht storniert wird, gibt es eine Reihe von Begriffen, die vereinfacht werden müssen e 3 T 2 und andere, die vereinfacht werden müssen e 3 T 2 . Als T erhöht, werden diese Terme größer und verursachen einen Genauigkeitsverlust, und sie passen nicht zusammen und heben sich gegenseitig bei Maschinenpräzision auf.
Nun, jedenfalls scheint Wolfram Alpha nicht in der Lage zu sein, dieselbe Übertragungsfunktion in verschiedenen Formen zu erkennen. Ich muss es zuerst vereinfachen, um die richtigen Plots zu bekommen.