Howto AC-Analyse zu einer singulären Festfrequenz, erläutert an einem Notchfilter zumEntfernen von Netzbrumm

RudiS

Absoluter Profi
Member
Landesflagge
Normalerweise macht man eine AC-Analyse, um den Frequenzverlauf einer Schaltung zu beurteilen.
Das ist vor allem bei der Entwicklung von Filtern angebracht, denn ich habe schon oft erlebt,
dass die per Formel berechnete Frequenz nicht mit der Simulation übereinstimmte und Bauteilwerte angepasst werden musste.

Hier kann die AC-Simulation zu einer einzelnen Festfrequenz eine Hilfe sein. Leider ist diese Funktion nicht sehr ausführlich in der LTspice-Hilfe dokumentiert,
sie soll nachfolgend an einem Beispiel erläutert werden. Wir gehen dabei in drei Schritten vor.

- In Schritt 1 machen wir eine normwertgestützte, "normale" AC-Analyse zum
Frequenzgang des Filters
. Da die Netzfrequenz im Allgemeinen sehr konstant ist (+/- 200mHz),
können wir diesbezügliche Schwankungen unbeachtet lassen.
- In Schritt 2 folgt die AC-Analyse zur Festfrequenz (= der Filterfrequenz), in der wir versuchen,
optimale Filterwerte zu finden.
- In Schritt 3 geht es um die Verifizierung der Parameter mittels TRAN-Analyse, auf solch eine Weise
wäre auch eine konkret mit realen Bauteilen aufgebaute Schaltung zu prüfen.

Für diese Vorgehensweise werden nur die für den Schritt notwendigen Anweisungen eingeschaltet, die anderen bleiben aus.
Zum Ein- bzw. Ausschalten: Rechtsklick im Schaltplan auf "Step x", Netlist Kontext oben links "Comment" zum Ausschalten,
"SPICE directive" zum Einschalten anklicken.

Die Syntax einer AC-Simulation zu einer bestimmten Festfrequenz ist super-einfach:

.ac list {zu untersuchende Frequenz}

Allein, nur mit dieser Anweisung wird nur eine Liste der in der Schaltung auftretenden Spannungen und Ströme ausgegeben,
was einem meistens nicht viel weiter hilft.
Der Trick: man muss obige Anweisung zusammen mit einer .step-Direktive benutzen!
Denn: mit dem Steppen eines Bauteilwertes kann man so den optimalen Wert eines Bauteils z.B. in einem Filter bestimmen.

Nachfolgend ein Gyrator-Notchfilter zum Entfernen von Netzbrumm.
[Wer sich über die Netzfrequenz von 60Hz wundert: in Westjapan, wo ich lebe, beträgt die Netzfrequenz 60Hz,
in Ostjapan (Tokyo) jedoch 50Hz. Wer wissen möchte, warum das so ist, kann sich bei Wikipedia schlau machen.]

01__G-notch_schema.png


Die frequenzbestimmenden Bauteile sind Rf und Cf, die Frequenz berechnet sich nach der Formel:

f = 1 / (2*pi*Rf*Cf)

Da man meist mit einem einzigen Standard-Bauteilwert nicht hinkommt, gibt man am besten den Kondensator vor
und berechnet den entsprechenden Widerstandswert.
Für 60Hz sind das bei einem Kondensator von 220nF 12k057 für den Widerstand.
Wir nehmen erst mal den Normwert 12k und sehen, wie weit wir damit kommen.

02__G-notch_Plot1.png

Wenn wir die berechneten Messwerte in der LOG-Datei mit dem Plot vergleichen, so sehen wir:
selbst eine so scheinbar kleine Abweichung von 56 Ohm verringert die Reduktion von möglichen -50dB auf magere -15dB,
weil nun die Filterfrequenz nicht 60Hz, sondern 60.273Hz beträgt!

03__G-notch_Plot2.png

04__G-notch_Log.png

Wenden wir uns nun dem eigentlichen Thema zu, der AC-Analyse bei einer Festfrequenz.
Wir schalten "Step 1" aus und "Step 2" ein.
Die Frequenz ist natürlich die angestrebte Filterfrequenz von 60Hz (Parameter f).
Der berechnete Filterwiderstand beträgt 12k plus 57 Ohm,
wir steppen diesen Widerstand plus-minus 20 Ohm mit einem möglichst kleinen Step (0.25 Ohm) um diesen Wert herum:

.ac list {f}
.step param Rf 12k040 12k080 0.25


und erhalten folgenden Plot:

05a__G-notch_Plot3.png

Wir sehen hier den Verlauf der Ausgangsspannung in Bezug auf den gesteppten Filterwiderstand Rf.
Durch Linksklick auf den Schriftzug "V(out)" im Plotfenster schalten wir den Cursor ein,
durch erneuten Linksklick ins Plotfenster machen wir es wieder aktiv
und können jetzt den Cursor mit den Cursortasten "links" und "rechts" bewegen.
Auf der X-Achse finden wir den Wert des Filterwiderstandes, auf der Y-Achse den zugehörigen Wert der Ausgangsspannung in dB.
Diese Werte werden in dem kleinen Cursor-Fenster angezeigt.
Es ist nützlich, das Cursor-Fenster ins Plotfenster zu verschieben, dann hat man Cursor und Cursor-Fenster gleichermassen im Blick.

Wir bewegen den Cursor auf den berechneten Wert von 12.057k.
Der liegt rechts vom Minimum, ist also in diesem Plot nicht das Minimum selbst! Magnitude ist hier -51.8dB.

05b__G-notch_Plot3b.png

Wir bewegen den Cursor auf das Minimum: Widerstand 12.0555k, Magnitude -58.8dB.
Das sind 55.5 Ohm, die wir dem Normwert 12k hinzufügen müssten.
Normwert 56 Ohm ist ganz in der Nähe, wir bewegen den Cursor auf den Wert 12.056k: Magnitude -57.1dB.
Das sind knapp 2dB weniger als im Minimum, aber damit kann man leben,
einen Widerstand 55.5 Ohm zusammenzustückeln lohnt die Mühe nicht. Wir entscheiden uns für 12 kOhm + 56 Ohm.

--- Intermezzo - für Fortgeschrittene ---
Per Messanweisung kann man anscheinend nicht direkt auf die gestep'ten Widerstandswerte zugreifen.
Wenn man jedoch im Plotfenster "File/Export data as text" ausführt, kann man in der gespeicherten Textdatei das Minimum
leicht entdecken, weil die Phase das Vorzeichen wechselt. Obwohl man zum Export "V(out)" gewählt hat, sind die Widerstandswerte
in der ersten Kolumne aufgeführt, daneben Ausgangsspannung in dB und Phase.
06a__G-notch_ExpData.png
--- Ende Intermezzo ---

Wir gehen noch einmal zurück zu "Step 1", schalten also "Step 2" aus und "Step 1" wieder ein.
Im Schaltplan selbst ändern wir nun den Parameter Rf in 12k+56R (.param=12k+56R).
Dann starten wir die Simulation und vergleichen den Plot mit den Werten in der LOG-Datei.

06b__G-notch_Plot4.png

Nun liegt die Kerbe ziemlich genau auf 60Hz, das Minimum der Kerbe liegt bei -50.3dB. Zufrieden? - Aber ja doch!

Halt, mein(e) Freund(in)! Wir sind noch nicht am Ziel! Was ist, wenn wir die Schaltung mit realen Bauteilen erstellen?
Die Simulation war mit idealen Werten, Abweichung 0%. Einflüsse des Opamps gar nicht betrachtet.

Was gilt es dabei zu beachten?
Zuerst einmal müssen für eine Kerbe grösser 40dB die Bauteile auf möglichst identische Werte ausgemessen werden,
da führt kein Weg dran vorbei!
Das gilt für die Kondensatoren ebenso wie für die Widerstände.

Wenn man das nicht kann oder nicht will, muss man damit rechnen, dass die Kerbe nicht voll zum Tragen kommt
,
nicht etwa, weil die Kerbe nicht so tief geht - sie hatte selbst bei 12k Normwert eine Tiefe von 50dB! -,
sondern weil die Frequenz des Kerbminimums sich nicht mit der gewünschten Filterfrequenz deckt!
Auch die beiden 10k-Widerstände im Gyrator sollten gleich sein.

Um zu testen, ob alles in Ordnung ist, manchen wir eine TRAN-Simulation.
Wir schalten "Step 1" aus und "Step 3" ein, und starten die Simulation mit unserem Soll-Widerstand 12k+56R.
Wir messen die Eingangsspitzenspannung (500mV) und die Ausgangsspitzenspannung (1.4mV)
und berechnen die resultierende Abschwächung: -51.1dB.

07__G-notch_Plot5.png

Jetzt wiederholen wir den Test mit nur 12k.
Jetzt ist die Ausgangsspitzenspannung ca. 81mV, die berechnete Abschwächung beträgt -15.7dB.

08__G-notch_Plot6.png

In einer realen Schaltung gehen wir genauso vor:
mittels Trafo und Spannungsteiler (+ evtl. Puffer/Voltage Follower) schaffen wir eine Eingangsspannung von 500mV,
messen die Ausgangsspannung und berechnen die Abschwächung in dB.
Und wenn die nicht genug ist, muss man eben fummeln (mit Multiturn-Trimmer oder, wer Geld hat,
kann sich selbstverständlich Präzisionswiderstände kaufen, das geht natürlich auch. . . ;-)

Viel Erfolg für brummfreies Messen,

RudiS

P.S.: Die AC-Analyse arbeitet mit komplexen Daten.
Daher ist in Messanweisungen mit .measure unbedingt die Funktion mag()
(magnitude) zu benutzen
, sonst erhält man falsche Ergebnisse!
 

Anhänge

  • Gyrator-Notch.asc
    2,7 KB · Aufrufe: 0
  • Gyrator-Notch.plt
    259 Bytes · Aufrufe: 0
  • dPSU.sub
    163 Bytes · Aufrufe: 0
  • dPSU.asy
    441 Bytes · Aufrufe: 0
  • AC-Analyse zu einer einzigen Festfrequenz.pdf
    50,1 KB · Aufrufe: 0
Zuletzt bearbeitet:

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Wer hat diesen Thread gelesen

Zurück
Oben