Hallo, ich habe einen größeren Filter mit 8 Parametern zum drehen. Die Idee kam jetzt auf, Gütefaktoren zu definieren und dann den optimalen Wertekombination auszuwählen. Hat jemand schon mal ein Batch-Programm geschrieben, das quasi alle Parameter in ngspice oder ähnliches durchrechnet und dann die Werte nach Gütefunktion sortiert ausgibt? Für Input bin ich sehr dankbar! Michael
Moin, Ich hab' nix wirklich konstruktives beizutragen. Aber u.a. fuer das Problem hier (bis heute ungeloest, aber tatsaechlich auch eher nicht so dringend): Beitrag "Impedanzanpassung mit LC Gliedern" hatte ich auch schon mal sowas in Erwaegung gezogen. Aber weiter als bis zur Kenntnisname dieses Links: http://ngspice.sourceforge.net/octavespice.html bin ich nicht gekommen. Gruss WK
Hallo, hier gibt es noch weitere Links http://ngspice.sourceforge.net/extras.html#scripts Z.B. spice optimizer using differential evolution http://www.h-renrew.de/h/python_spice/optimisation.html oder ASCO (A SPICE Circuit Optimizer) http://asco.sourceforge.net/ Ähnliche Sachen gibt es wahrscheinlich auch für LTspice.
Zeig doch mal deinen Filter her? Was willst du da optimieren? Filtertherie ist uralt, und es gibt zu fast allem spezielle Programm, oder Toolboxen (Matlab). Spice kann auch Parameter steppen, das hat in meinen Fällen immer ausgereicht (mit einem Step-Parameter kannst du auch viele andere Parameter über eine Tabelle setzen). Ansonsten, was hindert dich, einfach ein Skript zu schreiben, das eine Netzliste generiert?
Michael H. schrieb: > Hat jemand schon mal ein Batch-Programm geschrieben, das quasi alle > Parameter in ngspice oder ähnliches durchrechnet und dann die Werte nach > Gütefunktion sortiert ausgibt? Rechne dir mal aus, wie groß ein Parameterraum mit 8 Parametern wird. Da alles durchzurechnen, kann länger dauern. Üblicherweise wird man wohl eher einen Optimierungsalgorithmus verwenden, der sich per Suchstrategie durch das Wertegebirge der Gütefunktion bewegt und die optimalen Parameterwerte bestimmt. Man muss allerdings bei den Startwerten drauf achten, dass man nicht in einem lokalen Maximum hängen bleibt.
Hi, habe ich persönlich so noch nicht mit ngspice gemacht. Im rahmen eines Projektes haben wir mal was mit ADS und Matlab gebaut, aber eher eine Approximation wegen komplexer verkopplungen. Ich wurde schätzen das sich das ganz gut mit Python und Spice lösen lasst. Es gibt diverse Möglichkeiten Spice in Python einzubinden dann kannst du relativ einfach die gewonnen Daten weiter verarbeiten. Beispiel PySpice: https://pyspice.fabrice-salvaire.fr/releases/v1.4/examples/filter/low-pass-rc-filter.html Mit minimalen Programmierkenntnissen denke ich ist das schnell zu realisieren. Einfach eine Schleife um deine Filtersimulation mit den Parametersweeps und dann mal laufen lassen. Für einen Optimierer musst du dann hakt eine Kostenfunktion definieren.
Irgendwie habe ich nicht das Ziel mitgekriegt. Maximale Bandbreite? Jedwede Anpaßschaltung transformatorischer Art kann ja nur an einem Frequenzpunkt optimal sein. Diplexer bzw. Zobel? Absorbierendes Filter?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.