Forum: Analoge Elektronik und Schaltungstechnik Frequenzgang


von Den (neugieriger)


Angehängte Dateien:

Lesenswert?

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

von Klaus R. (klara)


Lesenswert?

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

von Den (neugieriger)


Lesenswert?

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?

von Lutz V. (lvw)


Lesenswert?

Frage: Ist hier wirklich Betrag und Phase der OFFENEN Kreisverstärkung 
(loop gain) aufgetragen? Nur damit kann man ja die Stabilitätsreserve 
ermittelt werden

von Den (neugieriger)


Lesenswert?

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?

: Bearbeitet durch User
von Lutz V. (lvw)


Lesenswert?

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
Noch kein Account? Hier anmelden.