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!
Lade mal deine aktuelle Schaltung hoch. Am besten gleich als ASC. Dich stört der Einschwinger?
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
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!
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); |
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.
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?
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!
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.
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.
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).
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!
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.
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.