Analoge Filter optimieren mittels NGSPICE

Gast #6828567
Lesenswert?
• ▲
▼
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
#6829140
Lesenswert?
• ▲
▼
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
Gast #6829276
Lesenswert?
• ▲
▼
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?
Gast #6829281
Lesenswert?
• ▲
▼
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.
Gast #6829288
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.