Forum: Analoge Elektronik und Schaltungstechnik LTSpice Filter Mittenfrequenz messen


von Rüdiger S. (rudi8)


Lesenswert?

Hallo zusammen,

ich wollte die Mittenfrequenz eines "verstimmten" Doppel-T-Filters im 
Gegenkopplungszweig eines Opamps messen mit LTspice, messen deswegen, 
weil die einzelnen Bauteile nicht den Vorgaben eines "normalen" 
Doppel-T-Filters entsprechen (normal: R1=R2, C1=C2; R3=R1/2; C3=2xC1).
Ein normales Doppel-T-Filter wüßte ich mathematisch zu berechnen, dazu 
gibt es eine einfache Formel; aber bei einem, wo quasi alle Bauteile 
abweichende Werte haben, da fehlen mir die Kennnisse.

In LTspice habe ich die Schaltung simuliert und für die Messung der 
Mittenfrequenz .meas benutzt:

1. die maximale Ausgangsspannung finden (die hat nämlich bei der 
Mittenfrequenz ihr Maximum) mit
.meas vmax MAX mag(v(out)),

2. dann die Stelle finden, wo die Differenz der momentanen 
Ausgangsspannung und vmax Null ist:
.meas freq TRIG mag(v(out))=vmax CROSS=1 TARG mag(v(out))=vmax CROSS=1

Als Ergebnis finden sich in der "SPICE error log" folgende Einträge:

vmax: MAX(mag(v(out)))=(23.9954dB,0°) FROM 20 TO 20000
freq=0 FROM 1410.44 TO 1410.44

Hier sehe ich zwar, dass die Mittenfrequenz 1410Hz beträgt, aber 
eigentlich wollte ich, dass LTspice diesen Wert der Variablen freq 
zuweist. Geht sowas?

Oder auch anders gefragt:
Gibt es eine elegantere Lösung, mit LTspice die Mittenfrequenz eines 
Filters zu messen oder berechnen zu lassen?

Und ja, mir ist bekannt, dass man mittels Cursor im AC-Plot die 
Mittenfrequenz zwar ungefähr, aber schnell und einfach ablesen kann.


Für alle eure Antworten viele Dank im Voraus!

Viele Grüße,
Rüdiger

P.S.: Die Erläuterungen zur .measure-Anweisung in der LTspice Hilfedatei 
sind mir insgesamt ohne Bezug zu einer konkreten Schaltung sehr 
kryptisch. Wenn jemand einen guten Link weiß, der mehr Licht in die 
Sache bringt, wäre ich jedenfalls sehr dankbar!

von Helmut S. (helmuts)


Lesenswert?

Pobier mal das Folgende.

.meas fmax find freq when V(out)=vmax

Damit man reine Zahlen statt dB bekommt nehme ich oft zusätzlich diese 
Option.

.options meascplxfmt=polar

: Bearbeitet durch User
von Rüdiger S. (rudi8)


Angehängte Dateien:

Lesenswert?

Hallo Helmut,

danke für die schnelle Antwort, nur... leider funktioniert es bei mir 
nicht. Ich benutze LTspice XVII und habe erst vor wenigen Tagen ein Sync 
Release gemacht.
Ich denke nicht, dass ich mich vertippt habe, Screenshot beigefügt.
In der SPICE error log steht:

.ac oct 100 20hz 20khz
.options meascplxfmt=polar
.end

Direct Newton iteration for .op point succeeded.
vmax: MAX(mag(v(out)))=(20.8139,0°) FROM 20 TO 20000
Measurement "fmax" FAIL'ed

Date: Sun Sep 08 21:01:15 2019
Total elapsed time: 0.133 seconds.

Außerdem ein Screenshot von dem .measure-Editor. Es scheint mir z.B. 
komisch, dass der Ausdruck vmax nicht in der Rubrik "Right hand side" 
gelistet wird.
Oder ist das normalerweise so?

Gruß,
Rüdiger

von Helmut S. (helmuts)


Lesenswert?

Häng mal deine Dateien an (.asc, .asy). Dann versuche ich es mal.

Außerdem nicht freq für deine Variablennamen verwenden!
freq ist in der AC-Analyse schon von LTspice belegt.

: Bearbeitet durch User
von Rüdiger S. (rudi8)


Angehängte Dateien:

Lesenswert?

ok, danke für deine Hilfe.

Im Anhang sind die Dateien, das Filter hat zwei Potis, eins für die Güte 
des Filters (beeinflusst auch ein bisschen die Frequenz) und eins für 
die Stärke der Anhebung.

Außerdem die Transistor-mod-Dateien für den Opamp. [Obwohl davon 
abgeraten wird - ich habe die Bauteile, die ich besitze und in der 
Simulation benutze, in die LTspice-Libraries integriert.] Die müsstest 
du noch einbinden.

Vielen Dank schon mal im Voraus.

Heiße Grüße aus dem ferne Japan, 22:30 Uhr und noch immer 33°C!!

Rüdiger

von Circuit Checker (Gast)


Angehängte Dateien:

Lesenswert?

Ich denke da stimmt was nicht in der Schaltung.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Hallo Rüdiger,

Ich hatte mag() vergessen.

.meas fmax FIND freq WHEN mag(v(out))=vmax

vmax: MAX(mag(v(out)))=(20.814,0°) FROM 20 TO 20000
fmax: freq=(765.649,0°) at 765.649

In der Vergangenheit hatte ich schon mal das Problem, dass ich 
vmax*0.99999 abfragen musste. Nur so als Hinweis falls es mal mit = 
nicht klappt. Vielleicht ist das ja inzwischen behoben und gar kein 
Problem mehr.

In der .lib habe ich den 2N4401 und den BC557B auskommentiert, weil es 
die standardmäßig schon gibt. Im Schaltplan habe die Modelldatei 
hinzugefügt.
.lib R_3Tr_opamp.lib
Jetzt läuft die Simulation auf jedem Rechner direkt mit dem ausgepackten 
zip-File. Bei mir kommt nichts Eigenes in die LTspice-Verzeichnisse.

Gruß
Helmut
Herrenberg, 14°C, Nieselregen


Nachtrag: Ich habe deinen Schaltplan etwas verschönert. Man kann dann 
die Schaltung leichter verstehen und man muss nicht nach den 
Simulationsbefehlen suchen.

: Bearbeitet durch User
von Rüdiger S. (rudi8)


Lesenswert?

@circuit checker

ganz recht, natürlich stimmt das nicht so, der Fehler ist wahrscheinlich 
beim Aufräumen entstanden.
Der Widerstand geht vom Emitter direkt zum Gate des FET.

Danke für den Hinweis.

Viele Grüße, Rüdiger

von Helmut S. (helmuts)


Lesenswert?

Rüdiger S. schrieb:
> @circuit checker
>
> ganz recht, natürlich stimmt das nicht so, der Fehler ist wahrscheinlich
> beim Aufräumen entstanden.
> Der Widerstand geht vom Emitter direkt zum Gate des FET.
>
> Danke für den Hinweis.
>
> Viele Grüße, Rüdiger

In deinen angehängten Dateien war der Fehler aber nicht drin.

von Circuit Checker (Gast)


Lesenswert?

Helmut S. schrieb:
> In deinen angehängten Dateien war der Fehler aber nicht drin.

Doch, isser.

Gerade nochmal heruntergeladen.

von Rüdiger S. (rudi8)


Lesenswert?

Hallo Helmut,

wirklich vielen Dank für die Mühe, die du dir gemacht hast.

Ja, natürlich: wenn vmax nur den Realteil enthält, darf(muss) der 
Vergleich bei v(out) auch nur den Realteil enthalten.

Danke auch für das Verschönern der Schaltung. Man selbst achtet nicht 
immer so sorgfältig darauf, gerade bei umfangreichen Schaltplänen fehlt 
mir Platz, die Beschriftung zu klein, um sie mühelos lesen zu können 
etc.

Und ich freue mich, etwas Neues gelernt zu haben, die von dir 
vorgestellte Methode ist elegant und nicht so umständlich wie meine. 
Leider habe ich noch keinen genauen Überblick über die tieferen 
Innereien von LTspice.

Und die .measure-Anweisung, obwohl sehr mächtig, scheinen die wenigsten 
zu benutzen. Das finde ich schade. Es wäre schön, wenn man zu den 
Erläuterungen in der Hilfe-Datei ein paar Beispiele mehr in dem 
Education-Ordner finden könnte, vielleicht kannst du das ja mal anregen. 
Sicherlich würden sich auch andere darüber freuen. Wo LTspice doch ein 
so fantastisches Werkzeug ist.

Mitternacht und immer noch 32.5°C. An erholsamen Schlaf ist nicht zu 
denken. Ich beneide euch um die 14°.

Viele Grüße,
Rüdiger

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Circuit Checker schrieb:
> Helmut S. schrieb:
>> In deinen angehängten Dateien war der Fehler aber nicht drin.
>
> Doch, isser.
>
> Gerade nochmal heruntergeladen.

Das ist die erste Schaltung die LTspiceIV nicht kann obwohl kein Unicode 
(UTF) drin ist. Ich schau mir das mal genauer an.

von Helmut S. (helmuts)


Lesenswert?

Ich habe zumindest die Ursache gefunden.

LTspiceIV verträgt es nicht, wenn ein Plotlabel direkt auf einem 
Kreuzungspunkt zweier Leitungen liegt. Es verbindet dann die kreuzenden 
Leitungen. Plotlabels sind dort wo die ??? stehen.

Mein Rat:
1. Nehmt das aktuelle LTspiceXVII.
2. Vermeidet es Plotlabels direkt auf kreuzende Punkt zu legen damit 
Schaltungen kompatibel zu LTspiceIV bleiben.

: Bearbeitet durch User
von Circuit Checker (Gast)


Angehängte Dateien:

Lesenswert?

Helmut S. schrieb:
> Ich schau mir das mal genauer an.

Helmut S. schrieb:
> Mein Rat:
> 1. Nehmt das aktuelle LTspiceXVII.

Falls es von der Version abhängen sollte:

Hier meine Konstellation.

von Helmut S. (helmuts)


Lesenswert?

Circuit Checker schrieb:
> Helmut S. schrieb:
>> Ich schau mir das mal genauer an.
>
> Helmut S. schrieb:
>> Mein Rat:
>> 1. Nehmt das aktuelle LTspiceXVII.
>
> Falls es von der Version abhängen sollte:
>
> Hier meine Konstellation.

Ich habe die neueste Version vom 23. August 2019. Auf einem anderen 
Rechner die vom 30. Juli. Beide machen keinen Kurzschluss.

Ich rate dringend das Plotlabel von dem Kreuzungspunkt wegzuschieben. 
Ich werde das gleich auf meinem heruntergeladenen Schaltplan machen.

: Bearbeitet durch User
von Rüdiger S. (rudi8)


Lesenswert?

@circuit checker

Es tut mir schrecklich leid, dieses Chaos verursacht zu haben. Es sind 
die Ströme, deren Bezugspunkt manchmal sehr nahe an diversen Kreuzungen 
liegt.

Bei mir selbst gab es deswegen keine Probleme, wie das bei älteren 
Versionen ist, kann ich nicht beurteilen.

Jedenfalls ist es sicherlich hilfreich, immer die neueste Version zu 
verwenden. Außer dem automatischen Update kann man zumindest bei LTspice 
XVII über den Menüpunkt Sync Release auch zwischenzeitlich 
sicherstellen, über die neueste Version zu verfügen.

Viele Grüße,

Rüdiger

von Circuit Checker (Gast)


Lesenswert?

Rüdiger S. schrieb:
> Es tut mir schrecklich leid, dieses Chaos verursacht zu haben.

Kein Problem, zermatere dich nicht.

Ich wollte nur auf die Macke hinweisen.

von Helmut S. (helmuts)


Lesenswert?

> Es sind
die Ströme, deren Bezugspunkt manchmal sehr nahe an diversen Kreuzungen
liegt.

Der Bezugspunkt liegt bei diesem Punkt nicht in der Nähe sondern auf dem 
Kreuzungspunkt. Wenn er nur in der Nähe ist macht es nichts aus!

von Mark S. (voltwide)


Lesenswert?

Rüdiger S. schrieb:
> Und die .measure-Anweisung, obwohl sehr mächtig, scheinen die wenigsten
> zu benutzen. Das finde ich schade. Es wäre schön, wenn man zu den
> Erläuterungen in der Hilfe-Datei ein paar Beispiele mehr in dem
> Education-Ordner finden könnte, vielleicht kannst du das ja mal anregen.
> Sicherlich würden sich auch andere darüber freuen. Wo LTspice doch ein
> so fantastisches Werkzeug ist.

Ein paar brauchbare Beispiele, ja, das wäre mal was! (träum)

von Helmut S. (helmuts)


Lesenswert?

Mark S. schrieb:
> Rüdiger S. schrieb:
>> Und die .measure-Anweisung, obwohl sehr mächtig, scheinen die wenigsten
>> zu benutzen. Das finde ich schade. Es wäre schön, wenn man zu den
>> Erläuterungen in der Hilfe-Datei ein paar Beispiele mehr in dem
>> Education-Ordner finden könnte, vielleicht kannst du das ja mal anregen.
>> Sicherlich würden sich auch andere darüber freuen. Wo LTspice doch ein
>> so fantastisches Werkzeug ist.
>
> Ein paar brauchbare Beispiele, ja, das wäre mal was! (träum)

In der LTspice Yahoo group gibt es Beispiele.
https://groups.yahoo.com/neo/groups/LTspice/files/%20Tut/MEASURE/
Manche würde ich inzwischen etwas anders machen aber zum nachschauen 
sind sie trotzdem hilfreich.

: Bearbeitet durch User
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.