ungelöst Exaktes matchen von Frequenzen aus einem Datensatz

anmi

Aktiver Benutzer
Member
Top Poster des Monats
Landesflagge
Ich greife auf LTSpice über Python zu. In LTSpice habe ich ein Schaltkreismodell, daraus will ich ein paar Parameter an Messdaten des realen Bauteils fitten. Die Messung die ich habe besteht aus 1601 logarithmisch verteilten Frequenzen zwischen 10kHz und 5MHz. Um an diese Messdaten fitten zu können brauche ich LTSpice Simulationsdaten an exakt den gleichen Frequenzen.
Eine sehr langwierige Option ist es natürlich eine Schleife zu bauen und jedes Mal eine LT simulation über nur eine Frequenz zu machen, die ich aus den Daten auslese und übergebe. Das ist natürlich super zeitaufwändig und ineffizient.
Daher würde ich natürlich viel lieber einen .ac dec sweep anstellen, der mir exakt die gleichen Frequenzen liefert.

Dabei tritt allerdings folgendes Problem auf: Ich kann ja nur Punkte pro Dekade angeben. In meinem Fall sind das ca 2.7 Dekaden und ca 593 Punkte pro Dekade. Wenn ich das so (selbst in nicht gerundeter Form) an LTSpice übergebe wird irgendwo doch gerundet und ich kriege 1602 Punkte zurück, was natürlich dazu führt dass die Frequenzen nicht mehr übereinstimmen. Wenn ich die Punkte verkleinere (z.B. auf 592.9 Punkte pro Dekade) kriege ich 1599 Punkte, was wieder nicht zum gewünschten Ergebnis führt.

Kann mir jemand helfen? Meine Fragen sind folgende:
a) Wie funktioniert das Runden mit der Zahl der Messpunkte in LTSpice? Rundet der immer auf oder ab und wann genau? Habe ich überhaupt die Möglichkeit LTSpice "auszutricksen" und an meine Messdaten anzupassen?
b) Gibt es vllt eine andere Methode (abgesehen von nerviger Schleife), wie ich eine genaue Liste von Frequenzen an LTSpice übergeben kann? Es ist wichtig dass genau die Frequenzen untersucht werden die auch in den Messungen stehen.

Vielen Dank schon mal für eure Hilfe!
 
Hi anmi,

kannst Du mal folgendes testen:
1. edit simulation command
2. ac analysis
3. Im geöffneten Fenster steht > type of sweep > aufklappen, decade eintragen; darunter number of points > 593; darunter start frequency ... stop frequency....
Hast Du das genauso gemacht ?

Wenn das nicht hilt, was meint Analog.com dazu ?
 
Hi, danke für deine Antwort!

Die Schritte sind im Prinzip genau das was ich mache, nur dass ich das halt aus Python raus angebe. Das Problem liegt glaube ich irgendwo zwischen der Angabe der Punkte pro Dekade und der damit umgesetzten Punkte, irgendwo wird da gerundet und ich verstehe nicht genau wann und wie ich bezwecken kann dass auf die Zahl gerundet wird die ich gern hätte.

Auf Analog.com finde ich nur infos zu ac sweeps generell, also das was du auch grade gesagt hast. Nichts was mir hilft mein spezifisches Problem zu lösen. Meine bisher beste Idee ist zu versuchen meinen sweep über 2.7 Dekaden in drei sweeps aufzuteilen die dann nie über die Dekadengrenze drüber gehen. Dann kann ich hoffentlich direkt die gewünschte Punktzahl angeben und das später wieder zusammenführen. Ist umständlich, aber auf was besseres bin ich noch nicht gekommen. Werde ich nächste Woche mal versuchen umzusetzen und aufs beste hoffen.

Bessere Ideen sind natürlich immer gerne angehört, und danke noch mal für deine Antwort.
 
Vielleicht gibt das Youtube-video

Use Python to run AC analysis in LTspice simulation​



noch ein paar nützliche Hinweise. Dort habe ich gesehen, dass man im Skript unter AC analysis die Parameter einstellen kann, als auch die "Number of points". Das selbständige Runden kann ich nicht erkennen. Versuche mal nach dem Einlesen in LTspice, wo Du auch Deine Schaltung sehen solltest, im Programm LTspice die AC-sweep Eingaben zu überprüfen bzw. diese nachzutragen und dann den RUN starten. Ist das Resultat dann dasselbe ?
 
Zuletzt bearbeitet von einem Moderator:

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

Wer hat diesen Thread gelesen

Zurück
Oben