Forum: Analoge Elektronik und Schaltungstechnik Interpretation Bode Plot von Stromverstärker


von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

meine Frage hier schließt an einen anderen Thread an, in dem ich um 
Unterstützung bei der Kompensation einer einfachen spannungsgesteuerten 
Stromquelle gebeten hatte 
(Beitrag "Zeitverhalten von Stromverstärker optimieren"). Ich hatte meine 
Anschlussfrage da zwar schon mal angehängt, weil sie da aber ein wenig 
untergegangen ist, und thematisch eigentlich auch darüber hinaus geht, 
erlaube ich mir, hier einen neuen Thread dazu aufzumachen.

Für die in obigem Link genannte Stromquelle mit angeschlossener 
Induktivität (~4.5 Ohm / ~0.25 mH) habe ich aufsteigend sinusförmige 
Steuerspannungen von ca. 0.1 bis 50 kHz vorgegeben und mir Amplitude und 
Phasenlage der resultierenden Shunt-Spannung (also dem ausgegebenen 
Spulenstrom) angesehen (roter Graph in der unteren rechten Abbildung). 
Außerdem habe ich eine Sprungantwort aufgenommen (linker Plot), diese in 
Matlab in eine Transferfunktion umgerechnet (mit tfest) und dann daraus 
auch einen Bode-Plot gemacht (blaue Graphen, rechts).

Dabei fällt mir ins Auge, dass die Phasenverschiebung bei 10 kHz am 
größten ist, bei höheren Frequenzen dann aber wieder kleiner wird.

(1) Ist das ein Verhalten, dass bei realen Verstärkern vorkommt, oder 
spricht das für ein Artefakt/ einen Fehler in meiner Messung oder 
Auswertung?

(2) Ist das irgendwie interpretierbar, also mit irgendeiner konkreten 
technischen Eigenschaft des Verstärkers zu verbinden?

(3) Bei der mit Hilfe der Sprungantwort berechneten Phasenverschiebung 
(blauer Graph rechts unten) sieht es auffällig so aus, als würde der 
Graph für höhere Frequenzen auf genau 90° laufen. Warum ist das so?

Die Schaltung tut praktisch was sie soll, ich frage eher aus allgemeinem 
Interesse, und um das ganze System etwas besser zu verstehen - ich bin 
fachfremd ... :-)

Herzlichen Dank für jede Hilfe!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Lade mal deine aktuelle Schaltung hoch. Am besten gleich als ASC.

Dich stört der Einschwinger?

von Lutz V. (lvw)


Lesenswert?

Wenn Du Dir den Amplitudengang (Betrag) anschaust, siehst Du, dass der 
Abfall flacher wird mit steigender Frequenz (zunächst vermutlich 
-40dB/Dek und dann gehts auf -20dB/Dek).
Laut Bode gibt es einen direkten Zusammenhang zwischen Steigung bzw. 
Abfall des Betrages und dem Verlauf der Phase: Zunächst bewegt sich der 
Phasengang in Richtung -180 Grad (wegen -40dB/Dek), wird dann aber 
abgebremst und steigt in Richtung -90 Grad (typisch für System 1. 
Ordnung mit -20dB/Dek).

Warum nun Dein System sich so verhält (2 Pole und 1 Nullstelle), kann 
man erst begründen, wenn man das Innenleben kennt.

: Bearbeitet durch User
von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

Abdul K. schrieb:
> Dich stört der Einschwinger?

jein, besser bekomme ich das System nicht eingestellt. Wenn ich die 
Kompensation kleiner mache, wird das zu einem größeren Ripple, wenn ich 
sie größer mache, wird das ganze ziemlich lahm. Ich glaube, das ist 
soweit erwartungsgemäß ...

Abdul K. schrieb:
> Lade mal deine aktuelle Schaltung hoch. Am besten gleich als ASC.

Ich kann mit LTSpice lieder immer noch nicht vernünftig umgehen, habe 
die Schaltung deswegen direkt real aufgebaut. Das Schaltbild entspricht 
der Simulation, die Achim S. freundlicherweise in dem anderen Thread 
gemacht hatte (erlaube mir mal, es hier einzufügen). C2 ist bei mir 1nF, 
R4 ein 10k Trimmer, um die Kompensation einzustellen.

Mir geht es eigentlich nur darum zu verstehen, ob dieses Minimum im 
Phasengang etwas "Normales" ist und ob man es irgendwie interpretieren 
kann. Rein aus Interesse ...

Danke!

von Klaus (Gast)


Lesenswert?

Lutz V. schrieb:
> Warum nun Dein System sich so verhält (2 Pole und 1 Nullstelle), kann
> man erst begründen, wenn man das Innenleben kennt.

Wie erkennst du das so direkt aus den Graphen? Ich wundere mich nur 
insofern, als ich in Matlab für die Schätzung der Transferfunktion 3 
Pole und 2 Nullstellen vorgegeben habe
1
sys = tfest(data, 3, 2);

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Moderne OpAmps haben mindestens 2 Pole. Du kannst ja einen theoretischen 
OpAmp vergleichsweise einsetzen: LTspice hat da den universalopamp in 
diversen Abstufungen.

Mit C2 begrenzt du zusätzlich die Regelgeschwindigkeit.

von Lutz V. (lvw)


Lesenswert?

Klaus schrieb:
> Lutz V. schrieb:
>> Warum nun Dein System sich so verhält (2 Pole und 1 Nullstelle), kann
>> man erst begründen, wenn man das Innenleben kennt.
>
> Wie erkennst du das so direkt aus den Graphen? Ich wundere mich nur
> insofern, als ich in Matlab für die Schätzung der Transferfunktion 3
> Pole und 2 Nullstellen vorgegeben habe
1
sys = tfest(data, 3, 
2
> 2);

Also - wenn ich den max. Abfall des Betrages abschätze, dann sehe ich 
etwa -40dB/DEk. Das gehört zu einem 2-Pol-Modell. Es sei denn, das 
System beinhaltet eine Pol-Nullstellen-Kompensation, was ich nicht 
glaube (aber nicht weiß).
Frage: Ist den in dem von Dir eingegebenen Modell die eine Polfrequenz 
(fast) identisch zu der einen Nullstellen-Frequenz?

von Klaus (Gast)


Lesenswert?

Hallo!

Um Mißverständnissen vorzubeugen: Mein "theoretischer Hintergrund" zu 
dem, was ich da gerade tue, ist leider minimal ...

Ich habe den Verstärker selbst nicht simuliert sondern nur praktisch 
aufgebaut (wie in dem anderen Thread beschrieben). Dann habe ich 
einerseits den Output des Verstärkers (Amplitude und Phase) für 20 
Frequenzen von 0.1 Hz bis 50 kHz gemessen. Außerdem habe ich eine 
Sprungantwort aufgenommen (dementsprechend zeitdiskret) und mir in 
Matlab daraus eine Transferfunktion berechnen (oder besser: "schätzen") 
lassen. Pole und Nullstellen habe ich händisch angepasst, bis der aus 
der Transferfunktion ermittelte Phasengang gut auf dem gemessenen lag. 
Dabei ergaben sich zwanglos drei Pole und zwei Nullstellen. Matlab fasst 
die ermittelte Transferfunktion folgendermaßen zusammen:
1
np = 3;
2
nz = 2;
3
sys = tfest(data, np, nz);
4
5
sys =
6
 
7
  From input "u1" to output "y1":
8
      249.2 s^2 + 3.497e07 s - 1.289e09
9
  ------------------------------------------
10
  s^3 + 2.178e04 s^2 + 3.429e08 s + 1.278e10
11
 
12
Continuous-time identified transfer function.
13
14
Parameterization:
15
   Number of poles: 3   Number of zeros: 2
16
   Number of free coefficients: 6
17
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.
18
19
Status:                                          
20
Estimated using TFEST on time domain data "data".
21
Fit to estimation data: 89.63%                   
22
FPE: 0.0001575, MSE: 0.0001574
23
24
>> pole(sys)
25
26
ans =
27
28
   1.0e+04 *
29
30
  -1.0869 + 1.4966i
31
  -1.0869 - 1.4966i
32
  -0.0037 + 0.0000i
33
34
>> zero(sys)
35
36
ans =
37
38
   1.0e+05 *
39
40
   -1.4036
41
    0.0004

Mir ging es zunächst mal um die schlichte Frage, ob dieses 
Phasenverhalten etwas "übliches" ist, oder ob ich da in meiner 
Blindflug-Analyse vielleicht einen praktischen (methodischen) Fehler 
gemacht haben könnte.

Sorry wenn ich mich nicht klarer ausdrücken kann :-)

Vielen Dank auf jeden Fall für die Mühe mitzudenken!

von Wolfgang (Gast)


Lesenswert?

Klaus schrieb:
> sch.png

Was verstehst du im Zusammenhang mit LTSpice als ASC-Datei. Ich sehe da 
nur ".png"

Abdul K. schrieb:
> Lade mal deine aktuelle Schaltung hoch. Am besten gleich als ASC.

von Klaus (Gast)


Lesenswert?

Wolfgang schrieb:
> Was verstehst du im Zusammenhang mit LTSpice als ASC-Datei

Sorry, konnte/kann ich in diesem Kontext nicht einordnen. ASC ist ASCII? 
Was soll deren Inhalt sein? Hab's wirklich schlicht nicht verstanden. 
Wie gesagt, mir fehlt hier der Hintergrund, komme aus einer ganz anderen 
Ecke.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Die Schaltplan-Datei in LTspice heißt xy.asc .

von Lutz V. (lvw)


Lesenswert?

Klaus schrieb:
>
> Mir ging es zunächst mal um die schlichte Frage, ob dieses
> Phasenverhalten etwas "übliches" ist, oder ob ich da in meiner
> Blindflug-Analyse vielleicht einen praktischen (methodischen) Fehler
> gemacht haben könnte.

Doch, das Verhalten ist durchaus "üblich" - besser gesagt: Kann man 
anhand der Schaltung prinzipiell erklären:

* Verursacht durch den OPV (zunächst als Einpol-Modell) und das 
kapazitive  Rückkopplungs-Netzwerk gibt es zunächst einen Abfall des 
Amplitudengangs mit 40dB/Dek. (2-Pol-Abfall) und die Phase strebt gegen 
-180 Grad (erreicht den Wert aber nie).

* Durch die Induktivität wird dann bei steigender Frequenz das 
Gegenkopplungs-signal kleiner (Nullstelle in der s-Ebene) und damit wird 
der Amplitudengang wieder angehoben auf ein System 1. Ordnung (Phase 
geht auf -90 Grad hoch).

* Bei weiter steigender Frequenz würde die Amplitude - verursacht durch 
den OPV - wieder abnehmen (nicht im Bild zu sehen).

von Klaus (Gast)


Lesenswert?

Lutz V. schrieb:
> Doch, das Verhalten ist durchaus "üblich" - besser gesagt: Kann man
> anhand der Schaltung prinzipiell erklären:
>
> * Verursacht durch den OPV (zunächst als Einpol-Modell) und das
> kapazitive  Rückkopplungs-Netzwerk gibt es zunächst einen Abfall des
> Amplitudengangs mit 40dB/Dek. (2-Pol-Abfall) und die Phase strebt gegen
> -180 Grad (erreicht den Wert aber nie).
>
> * Durch die Induktivität wird dann bei steigender Frequenz das
> Gegenkopplungs-signal kleiner (Nullstelle in der s-Ebene) und damit wird
> der Amplitudengang wieder angehoben auf ein System 1. Ordnung (Phase
> geht auf -90 Grad hoch).
>
> * Bei weiter steigender Frequenz würde die Amplitude - verursacht durch
> den OPV - wieder abnehmen (nicht im Bild zu sehen).

Vielen Dank, sehr informativ!

von Josef C. (josefc)


Angehängte Dateien:

Lesenswert?

Mit einer symbolischen Analyse kommt man auf folgende Lösung:
siehe die Bilder.

O1 ist ein OPV mit einem Pol bei 31Hz und einer Verstärkung von 30k.
Das passt ganz gut mit dem Datenblatt des OPA548 mit einem
GBW von 1Mhz und einem Open Loop von 90dB.

Ausgang ist Vout2.

Im Bode Plot ist die blaue Kurve vollständig, die grüne Kurve ist die
Approximation der Formel.

Ich nehme an bei der Messung ist noch ein 1:10 Tastkopf im Spiel,
sonst passen dort die -20dB nicht.

von Klaus (Gast)


Lesenswert?

Hallo!

Josef C. schrieb:
> Mit einer symbolischen Analyse kommt man auf folgende Lösung:
> siehe die Bilder.

Wow! Vielen Dank für die Mühe! Das passt ja in der Tat ganz gut zu der 
Messung.

Josef C. schrieb:
> Im Bode Plot ist die blaue Kurve vollständig, die grüne Kurve ist die
> Approximation der Formel.

"Vollständig" heißt hier vollständig simuliert entspr. dem Modell 
(Schaltbild)?

Josef C. schrieb:
> Ich nehme an bei der Messung ist noch ein 1:10 Tastkopf im Spiel,
> sonst passen dort die -20dB nicht.

Jein, ich habe einen 1:10 Teiler im Steuereingang des Treibers. Sorry, 
habe ich vergessen zu erwähnen. Aber daher kommen die -20 dB.

Danke!

von Lutz V. (lvw)


Lesenswert?

Josef C. schrieb:
> Mit einer symbolischen Analyse kommt man auf folgende Lösung:
> siehe die Bilder.
>
Josef, darf ich mal fragen - welches Programm hast Du zur symbolischen 
Analyse genommen?
Ich kenne bisher nur SAPWIN, welches für eine Schaltung die 
Verstärkungsfunktion angeben kann.

von Josef C. (josefc)


Lesenswert?

Klaus schrieb:
> "Vollständig" heißt hier vollständig simuliert entspr. dem Modell
> (Schaltbild)?

Nicht simuliert sondern die vollständige Formel verwendet.

Zur Vollständigkeit, hier ist die vollständige Formel für Vout2:
1
tfv2 := ((R2*gain$O1*w1$O1*(1+(C1*R1*s)+(C1*R4*s)+(C1*L1*s^2)))/(+(R2*w1$O1)+(R2*gain$O1*w1$O1)+(R1*w1$O1)+(R2*s)+(R1*s)+(C1*R1*R2*gain$O1*s*w1$O1)+(C1*R1*R2*s*w1$O1)+(C1*R1*R4*gain$O1*s*w1$O1)+(C1*R1*R4*s*w1$O1)+(L1*s*w1$O1)+(C1*R2*R4*gain$O1*s*w1$O1)+(C1*R2*R4*s*w1$O1)+(C1*R1*R4*s^2)+(L1*s^2)+(C1*R2*R4*s^2)+(C1*L1*R2*gain$O1*s^2*w1$O1)+(C1*R1*R2*s^2)+(C1*L1*R4*s^2*w1$O1)+(C1*L1*R4*gain$O1*s^2*w1$O1)+(C1*L1*R2*s^2*w1$O1)+(C1*L1*R4*s^3)+(C1*L1*R2*s^3)))

gain$O1 = 31000 und w1$O1 = 200 entspricht dabei dem Pol und GBW des 
OPV.

Aber da ja eigentlich der Strom durch L1 interessiert hier noch die
vollständige Formel für I(L1)/Vin :
1
tfi := ((gain$O1*w1$O1*(1+(C1*R4*s)))/(+(R2*w1$O1)+(R2*gain$O1*w1$O1)+(R1*w1$O1)+(R2*s)+(R1*s)+(C1*R1*R2*gain$O1*s*w1$O1)+(C1*R1*R2*s*w1$O1)+(C1*R1*R4*gain$O1*s*w1$O1)+(C1*R1*R4*s*w1$O1)+(L1*s*w1$O1)+(C1*R2*R4*gain$O1*s*w1$O1)+(C1*R2*R4*s*w1$O1)+(C1*R1*R4*s^2)+(L1*s^2)+(C1*R2*R4*s^2)+(C1*L1*R2*gain$O1*s^2*w1$O1)+(C1*R1*R2*s^2)+(C1*L1*R4*s^2*w1$O1)+(C1*L1*R4*gain$O1*s^2*w1$O1)+(C1*L1*R2*s^2*w1$O1)+(C1*L1*R4*s^3)+(C1*L1*R2*s^3)))

Der Nenner ist bei tfv und tfi gleich. Nur der Zähler unterscheidet sich
und ist für den Strom einfacher.
Vielleicht kannst du ja mit den Formeln was anfangen.

Die approximierte Formel oben stimmt nur ungefähr mit den Werten in der
Schaltung oben. Die vollständigen Formeln gelten natürlich für alle
möglichen Werte.

Lutz V. schrieb:
> Josef, darf ich mal fragen - welches Programm hast Du zur symbolischen
> Analyse genommen?

Das Programm ist noch in der Entwicklung und wird hoffentlich bald ein
Kickstarter Projekt :-)

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.