Nehmen wir an, dass die Open-Loop-Übertragungsfunktion meines Systems ist:
Außerdem hat das System Einheitsrückkopplung, was bedeutet, dass die Übertragungsfunktion des geschlossenen Regelkreises ist
seit Und
Dann ist der Nyquist-Plot folgender:
Es sind 2 RHP-Pole vorhanden und das Diagramm umkreist den (-1,0)-Punkt 2 Mal gegen den Uhrzeigersinn. Wo Und So => Stabiles System.
Und die Sprungantwort der Einheit ist dies (für die geschlossene Schleife):
Es sieht stabil aus, aber wenn ich auf "mehr Zeit" drücke, sieht es ziemlich instabil aus:
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.
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.
s = tf('s')
l = 10(s+1)(s+2)/((s−3)(s−4))
pzmap(l/(1+l))
step(l/(1+l),40)
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}]
Wenn Sie den gesamten Bereich zeichnen, werden Sie sehen, dass die Ausgabe tatsächlich explodiert.
Plot[or, {t, 0, 20}, PlotRange -> All]
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]
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]
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]
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.
Sub Thomas
Daniel Torke
Sub Thomas
Daniel Torke
Sub Thomas