Hallo zusammen
Ich versuche gerade den Amplitudenrand und die Phasenreserve selbst zu
berechnen und versuche dies mit dem Bodeplot aus Matlab zu vergleichen.
Dies habe ich getan und dies funktioniert auch soweit, jedoch erhalte
ich bei der Berechnung nicht direkt die Phasenverschiebung, sondern
eigentlich den Phasenrand direkt, was ja schon komisch ist.
Ich müsste doch erst die Phasenverschiebung erhalten und den Phasenrand
dann mit folgender Formel berechnen.
Phasenrand = 180 - Phasenverschiebung
Wieso erhalte ich nicht erst die Phasenverschiebung? Was mache ich im
folgenden Code verkehrt? Ich wäre euch für einen kurzen Input sehr
dankbar.
Werte für
w=105
Phasenverschiebung = 4.8947
Phasenverschiebung_b = 4.8947
Phasenrand = 175.1053
Phasenrand_b = 175.1053
w=10.2
Phasenverschiebung = 38.8334
Phasenverschiebung_b = 38.8334
Phasenrand = 141.1666
Phasenrand_b = 141.1666
Code:
clear all
clc
zo=[1 1]; % Zählerpolynom 1*s + 2 als Zeilenvektor
no=[0.1 1 0 0]; % Nennerpolynom 1*s^2 + 2*s + 1 als Zeilenvektor
Go1=tf(zo,no) % Definition der Übertragungsfunktion
Gw= Go1/(1+Go1)
w=105;
zaehler = 1+j*w
nenner1 = 0.1*(j*w)^3
nenner2 = (j*w)^2
Go= zaehler / (nenner1 + nenner2)
re=-(1+0.1*w^2)/(w^2+0.1^2*w^3)
im=-0.9*w/(w^2+0.1^2*w^3)
realt=real(Go)
ima=imag(Go)
betrag = sqrt(1+w^2)/sqrt(w^4 * (1+(0.1*w)^2));
AR=1/betrag
AR=mag2db(AR)
Phasenverschiebung=atan(im/re)*180/pi
Phasenverschiebung_b=atan(ima/realt)*180/pi
Phasenrand=180-Phasenverschiebung
Phasenrand_b=180-Phasenverschiebung_b
bode(Go1)
% legend('open loop', 'closed loop')
% pzmap(Gw); %
grid on
Den schrieb: > Ich müsste doch erst die Phasenverschiebung erhalten und den Phasenrand > dann mit folgender Formel berechnen. > > Phasenrand = 180 - Phasenverschiebung > > Wieso erhalte ich nicht erst die Phasenverschiebung? Im Rechengang wird doch zuerst die Phasenverschiebung errechnet. Erst danach wird der Phasenrand ausgewiesen. Warum stört Dich die Reihenfolge? Sobald einer der Werte bekannt ist kannst Du ganz simpel mit einer bekannten Konstate den anderen berechnen. mfg klaus
Klaus R. schrieb: > Den schrieb: >> Ich müsste doch erst die Phasenverschiebung erhalten und den Phasenrand >> dann mit folgender Formel berechnen. >> >> Phasenrand = 180 - Phasenverschiebung >> >> Wieso erhalte ich nicht erst die Phasenverschiebung? > > Im Rechengang wird doch zuerst die Phasenverschiebung errechnet. Erst > danach wird der Phasenrand ausgewiesen. Warum stört Dich die > Reihenfolge? Sobald einer der Werte bekannt ist kannst Du ganz simpel > mit einer bekannten Konstate den anderen berechnen. > mfg klaus Hallo Klaus Vielen Dank für deinen Beitrag. Das was du schreibst ist mir eigentlich schon klar, aber mit der Formel Phasenverschiebung=atan(im/re)*180/pi oder Phasenverschiebung_b=atan(ima/realt)*180/pi berechne ich doch stets die Phasenverschiebung. Also aus dem Real und Imaginärteil der Übertragungsfunktion. Hier also von Go Nun wenn ich die Formel anwende hätte ich erwartet, dass ich zuerst die 175° als Ergebnis erhalte und nicht 4.8947, was ja der Phasenrand gemäss Plot ist. Verstehst du was ich meine?
Frage: Ist hier wirklich Betrag und Phase der OFFENEN Kreisverstärkung (loop gain) aufgetragen? Nur damit kann man ja die Stabilitätsreserve ermittelt werden
Lutz V. schrieb: > Frage: Ist hier wirklich Betrag und Phase der OFFENEN Kreisverstärkung > (loop gain) aufgetragen? Nur damit kann man ja die Stabilitätsreserve > ermittelt werden Klar doch: Befehl im Code oben -> bode(Go1) Go1 = s + 1 ------------- 0.1 s^3 + s^2 Nullstelle: s=-1 Polstelle zweifach bei s=0 und einfach bei s=-10 Aber das hilft ja bei dem Problem nicht direkt weiter oder?
Wo ist jetzt aber Dein Problem? Es handelt sich hier ja um ein idealisiertes und nicht realisierbares System- Ich kann jetzt nicht beurteilen, was Matlab damit anfängt - zumal keine Amplitudenreserve bestimmt werden kann, da die Phasendrehung ja nie den kritischen Wert erreicht. Die theoretische Phasenreserve kann man ja aber direkt ablesen. Da die Phase bei Null Hertz -180 Grad beträgt, darf bei Rückkopplung an der Vergleichsstelle nicht subtrahiert werden, sondern es werden Eingangs- und Rückkopplungssignal addiert. Damit muss die Phasenreserve als Differenz zu 360 Grad (bzw. 0 Grad) ermittelt werden. Bei der Frequenz mit 0dB-Betrag (Frequenz kann nicht abgelesen werden) ergibt das dann eine Reserve von 360-140=220 Grad. Wegen des ansteigenden Phasenverlaufs bei dieser Frequenz kann man auch die Differenz zu Null Grad als Reserve interpretieren - also 140 Grad. Beides sind aber fiktive Werte ohne praktische Bedeutung bei diesem unrealistischen System.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
