Ich habe ein Python-basiertes Tool geschrieben , das mit den von SciPy bereitgestellten Sparse-Matrix-Solvern Wechselstromsignale und Rauschen simulieren kann. Es ist ein Open-Source-Projekt, das auf einem Closed-Source-Tool in der Gravitationswellen-Community namens LISO basiert .
Ich habe den Code so strukturiert, dass Sie verschiedene Lösungsbibliotheken erstellen oder verschiedene Analysen erstellen können, die dieselbe Schaltungsdefinition verwenden. Beide Analysetypen, die zum Zeitpunkt des Schreibens existieren (Signal- und Rauschanalysen), bilden eine Matrix aus den Schaltungskomponenten und lösen sie dann für eine bestimmte Anregung, z. B. einen Eingang, über einen bestimmten Frequenzbereich.
Es ähnelt der Funktionsweise von SPICE und anderen Knotenanalyseschaltungssimulatoren. Ich hoffe, der Code ist relativ einfach zu verstehen.
Es gibt einige grundlegende Dokumentation hier , aber es ist immer noch in der Entwicklung. Lassen Sie mich wissen, wenn Sie es am Ende verwenden und Fragen dazu haben, wie es funktioniert.
Hier ist ein Beispiel für die unterstützte LISO-Syntax (Sie können Schaltkreise aber auch nur in Python definieren). Es ist ein bisschen wie eine SPICE-Netzliste:
r r1 100 nin nsum
r r3 1.075k no nsum
r r4 42.2 nsum nm
r r6 65 nin gnd
c c2 4.7n nsum gnd
c c5 122p no nm
op op1 op27 gnd nm no
freq log 1 1M 101
uinput nin nsum 50
uoutput no nsum
Der obige Code erzeugt eine Darstellung wie folgt: