Ich bin etwas vertraut mit der Verwendung von LTspice zur Phasenrandanalyse für eine klassische, dh offensichtliche Operationsverstärkerschaltung mit negativem Rückkopplungspfad . Tatsächlich habe ich diese Analyse erfolgreich durchgeführt, um echte Operationsverstärkerschaltungen zu reparieren. Aber ich bin verwirrt, wie man das für die Art von Schaltung richtig macht, die der Kern eines PMOS-LDO ist. Die Schaltung basiert eigentlich auf einer anderen EE.SE-Frage , die ich mit etwas Kochbuchwissen darüber, was für solche Schaltungen funktioniert, beantworten/reparieren könnte. Aber ich versuche jetzt besser zu verstehen, wie der Fix funktioniert hat. (Außerdem gibt es in dieser Schaltung keinen Spannungsteiler für die Referenzspannung, es handelt sich also nur um einen Folger, der sich von einem tatsächlichen LDO unterscheidet.)
Bei dieser Art von Schaltung erhält der positive Rückkopplungsstift des Operationsverstärkers die offensichtliche Rückkopplung, aber diese ist bereits phasenverschoben, also ist es eine negative positive Rückkopplung, LOL. Es scheint mir, dass ich es am positiven tun sollte, da ich die Rückkopplungsschleife nicht sinnvoll abschneiden kann, wo ich es normalerweise tue, dh am negativen Eingangspin des Operationsverstärkers. Also habe ich das getan und einen Stimulus von 0 V DC, aber 1 V AC gemäß dem üblichen Verfahren hinzugefügt. Aber das Ergebnis, das ich bekomme, scheint überhaupt keine Instabilität anzuzeigen ...
... was ganz im Gegensatz zur transienten Simulation steht (und dem realen [unkompensierten] Schaltungsverhalten aus der anderen Frage).
Ein paar zusätzliche Anmerkungen: Ich habe versucht, V2 auf Null zu setzen, macht aber kaum einen Unterschied, und wenn möglich, würde ich es vorziehen, den DC-Punkt so nah wie möglich am realen Stromkreis zu halten. Auch die Fix-/Kompensationskappe und ihr ESR-Widerstand werden absichtlich oben getrennt [damit ich den schlechten Phasenabstand der instabilen Schaltung sehen kann], obwohl ich beim Anschließen keinen erstaunlichen Unterschied sehen kann, aber die Phase bleibt länger höher.
Was mache ich hier in Bezug auf die Phasenrandanalyse falsch?
Noch ein paar Anmerkungen:
Ich denke, die obere Grafik zeigt genau an, wo Instabilität auftritt: -
Der Phasenwinkel beträgt null Grad und die Verstärkung immer noch +45 dB. Mit anderen Worten, es ist die „Gewinnspanne“, die hier für Schwingungen sorgt.
Das transiente Diagramm scheint anzuzeigen, dass es bei 250 kHz oszilliert, während das AC-Diagramm mir sagt, dass es bei 100 kHz oszillieren könnte. Angesichts der Höhe der Verstärkungsspanne (45 dB) überrascht mich das nicht.
Die kompensierte Reaktion ist im Talbereich grenzwertig instabil, aber nicht ganz vollständig instabil. Ich würde mir vorstellen, dass es ein ziemliches Maß an Überschwingen / Klingeln geben würde, wenn es vorübergehenden Versorgungs- oder Laständerungen ausgesetzt wäre: -
Um meine Verwirrung mit einigen Diagrammen weiter zu erklären / zu beheben, zeichnet die hier verwendete Injektionsmethode den tatsächlichen Phasenrand und nicht die absolute Phase. Wenn also die Phasenreserve über 0 Grad (bei 0 dB) liegt, ist das die absolute Stabilitätsschwelle; dieser Phasenabstand von null Grad entspricht einer absoluten Phase von –180 Grad. Einige andere Veröffentlichungen und Software zeichnen die Stabilität in Bezug auf die absolute Phase, nicht die Marge, also war ich verwirrt ...
Hier sind zwei Diagramme, die offensichtlich eine erste offensichtliche Instabilität/Oszillation (minus 40 Grad Phasenabstand) und Stabilität (plus 60 Grad Phasenabstand; ich habe den ESR dafür auf 1 Ohm erhöht, verglichen mit meiner anfänglichen Postfixierung) zeigen. Diese Diagramme entsprechen größtenteils dem, was Andy gesagt hat, aber sie verwenden dasselbe Kriterium (Phasenabstand), sodass sie einfacher zu vergleichen sind.
Obwohl Sie Ihre Antwort gefunden haben, dachte ich, ich teile dies:
Ich habe im letzten LT-Spice-Seminar einen anderen Ansatz zur AC-Analyse kennengelernt, der auf mehreren Transientensimulationen und der Berechnung der Phase und Verstärkung mit Messaussagen basiert. Dies ist nützlich für Switchmode-Versorgungen (die LT-Switcher sind Zeitbereichsmodelle), und ich habe versucht, es auch auf Ihre Schaltung anzuwenden.
Es lief nicht ganz so gut, aber es könnte für andere Anwendungen hilfreich sein.
Anstelle einer Kleinsignal-Wechselspannungsquelle verwenden Sie also eine "normale" transiente Sinusspannungsquelle mit einer parametrisierten Frequenz.
Es wurde empfohlen, den alternativen Solver (einstellbar in den Optionen) zu verwenden, um die Genauigkeit der Ergebnisse zu erhöhen.
Dann müssen Sie einige Spice-Anweisungen platzieren, damit es funktioniert:
.param Freq=125K ; iterate to 0dB gain or use the .step statement below
.step dec param freq 1 10meg 5
.save V(a) V(b)
.option plotwinsize=0 numdgt=15
Die .save
Anweisung teilt LT-Spice mit, welche Knoten gespeichert werden sollen, sodass es nur auf die interessanten Knoten A und B reduziert wird. Die .option
Anweisung erhöht die Genauigkeit und schaltet die verlustbehaftete Komprimierung der Ergebnisse aus. .step
Da Sie eine Reihe von Simulationen durchführen werden, wählen Sie in Ihrer Aussage nicht zu viele Punkte aus . Für eine einfache Schaltung wie diese funktioniert die obige in Ordnung, aber in einer Switchmode-Schaltung verbrauchen Sie wahrscheinlich weniger.
Als nächstes folgen Maßangaben:
.measure Aavg avg V(a)
.measure Bavg avg V(b)
.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)
.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)
.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)
.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)
.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))
.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
Grundsätzlich werden Betrag und Phase berechnet. Beachten Sie die Verwendung von ...Mag
und ...Phi
, LT-Spice erkennt diese als komplexe Daten und zeichnet sie entsprechend auf.
Zuletzt der Simulationsbefehl:
.param t0=.2m
.tran 0 {t0+25/freq} {t0}
Der Parameter t0
dient dazu, der Schaltung etwas Zeit zum Einschwingen (oder Hochfahren) zu geben, bevor die Daten gespeichert werden. Die Simulationszeit ist abhängig von der Frequenz, so dass 25 Perioden simuliert werden.
Nach der Simulation stehen die interessanten Ergebnisse im Spice-Log (Strg+L). Wenn Sie mit der rechten Maustaste klicken und "Plot .step'ed .meas data" auswählen, werden Sie gefragt, ob Mag und Phi als komplexe Daten interpretiert werden sollen, was Sie natürlich möchten.
Das Ergebnis sieht dann so aus:
Was ziemlich nahe an dem liegt, was Sie mit der AC-Analyse erhalten haben.
Wenn Sie den Ausgangskondensator trennen, beginnen die Dinge schief zu gehen. Ich denke, dieser Ansatz hat Probleme, wenn Ihr System nicht stabil ist:
Arsenal
Fizz
Arsenal
Fizz
Fizz
Arsenal
Kevin
Arsenal
Kevin