Forum: Analoge Elektronik und Schaltungstechnik LTSpice, Oszillator Schaltung, mit .meas Befehlen im FFT plot messen (lassen)


von martin (Gast)


Angehängte Dateien:

Lesenswert?

Ich soll eine Oszillatorschaltung mit LTSpice durchsimulieren. Es ist 
eine gewöhnliche Pierce Schaltung vorgegeben: 
https://de.wikipedia.org/wiki/Pierce-Schaltung

Ich dachte, ich plotte die ersten paar Millisekunden im eingeschwungenen 
Zustand am Ausgang der Schaltung und erzeuge mir daraus die FFT. 
Anschließend lasse ich mir ein paar selbst definierte Parameter 
berechnen.

So etwa die "-n dB Bandbreite", also jene Bandbreite der 
Resonanzfrequenz welche das Signal n dB unterhalb des peaks hat. Je 
schmalbandiger desto höher die Güte der Schwingung und desto "stabiler" 
nun also die Schwingung selbst.
Mit dem .meas lässt sich das bequem realisieren:

.MEAS x1 max mag(V(out));
.MEAS 3dB_Bandwidth trig mag(V(out))=x1/sqrt(2) rise=1
+ targ mag(V(out))=x1/sqrt(2) fall=last;

V(out) ist die Spannung am Ausgang der Schaltung, das Label dort heißt 
also einfach out.

Ich möchte mir nun ganz einfach den Wert des Peaks ausgeben lassen, 
schaffs aber nicht.
Die Beispiele aus der LTSpice Hilfe beziehen sich zumeist auf 
Zeitsignale hier möchte ich aber im Frequenzbereich messen.
so sieht mein skript aus:

.MEAS x1 max mag(V(out));
.MEAS Bandwidth trig mag(V(out))=x1*0.25 rise=1
+ targ mag(V(out))=x1*0.25 fall=last;
.MEAS y1 FIND V(out) AT=10k;
.MEAS y2 FIND V(out) AT=x1;
.MEAS y3 FIND V(out) WHEN V(out)=x1

// Faktor 0,25 ist einfach willkührlich gewählt

die Ausgabe dazu:

x1: MAX(mag(V(out)))=(-6.08048dB,0°) FROM 0 TO 438365
Bandwidth=29.8039 FROM 22340.9 TO 22370.7
y1: V(out)=(-81.52dB,-108.221°) at 10000
y2: V(out)=(-7.47613dB,0.0652501°) at 0.496565
y3: V(out)=(-6.08048dB,0°) at 0


Der Wert bei 10kHz, also y1 stimmt soweit. y3, also der Wert bei x1, die 
Frequenz beim Peak stimmt nicht. Obwohl die Bandbreite richtig erkannt 
wurde.

Bitte um Rat.
Ist der Ansatz überhaupt brauchbar oder ist das sowieso bödsinn was ich 
da vorhabe?

Toll wäre ja die Änderung der absoluten Schwingfrequenz in abhängigkeit 
der Temperatur und der Widerstände.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Hallo Martin,

schau dir mal meine Simulation an.

Der Oszillator schwingt bei der Frequenz bei der die Phase der 
"loopgain" bei 0° ist.

Der Plot ganz rechts zeigt Abhängigkeit der Schwingfrequenz von der 
Größe der Kapazität von C1 und C2. Um den Plot zu bekommen musst du die 
Zeile ".step ..." aktivieren. Im log-file stehen dann die Ergebnisse. 
Die kann man aus dem log-file heraus plotten. Rechtsklick -> Plot ...

Um im Zeitbereich genauer die Frequenz zu bekommen, habe ich reltol=1e-5 
gesetzt. Dann passt auch die Frequenz aus der FFT besser zur 
AC-Simulation.

Als Güte für den Schwingkreis habe ich mal 100000 angenommen. 
Wahrscheinlich etwas zu hoch gegriffen. Wenn du 50000 nehmen willst, 
dann L halbieren und C verdoppeln. Siehe auch die Formeln in den 
Kommentaren.

Beachte auch diese Zeile.
.options meascplxfmt=polar
Damit bekommst im log-file diese verflixten dB weg.

Gruß
Helmut

Zum Nachlesen
http://www.axtal.com/Deutsch/TechnInfo/Quarzkochbuch/

: Bearbeitet durch User
von martin (Gast)


Lesenswert?

danke, das hat mir sehr weitergeholfen! :)
Das Buch ist übrigens Top! Habe ich vorher schon gekannt aber noch nicht 
(im Detail) studiert.

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.