Umwandlung eines Subcircuit-Blocks in eine Übertragungsfunktion für eine schnellere Simulation in SPICE

Gibt es eine Möglichkeit, eine Unterschaltungsdefinition (.subckt) zu nehmen und SPICE (oder in meinem Fall LTSpice) die Übertragungsfunktion dafür übernehmen zu lassen? Lassen Sie SPICE dann auf diese Übertragungsfunktion verweisen, wann immer eine Komponente mit dieser .subckt-Definition in einen beliebigen Schaltplan eingefügt wird, wird die Übertragungsfunktion verwendet.

Soweit ich weiß, kann ein .subckt nur als Netzliste definiert werden, nicht als Übertragungsfunktion.

Das eigentliche Problem ist, dass ich einige Probleme habe, meine Schaltkreise schnell genug zu konvergieren (die Simulation kann mehrere zehn Minuten dauern, bis sie fertig ist). Das liegt wahrscheinlich daran, dass ich anfange, immer mehr Konstantstromquellen zu verwenden.

Irgendwelche Tipps?

Ich hoffe, Sie sind sich bewusst, dass Ihr Vorschlag nur dann Sinn macht, wenn die Teilschaltung, die Sie durch ihre Übertragungsfunktion definieren möchten, ein LTI-System ist (zumindest ein lineares System). Wenn dies jedoch der Fall ist, bezweifle ich, dass es lange dauert, bis SPICE konvergiert ... Mit anderen Worten: Wenn es lange dauert, bis SPICE konvergiert, bezweifle ich, dass dies an einem Teilschaltkreis liegt, der durch eine Übertragungsfunktion beschrieben werden kann . Wahrscheinlich liegt es an einem (stark nichtlinearen) Teil, den Sie nicht durch eine Übertragungsfunktion ersetzen können.

Antworten (1)

Das ist ein guter Schritt, Stromquellen über Spannungsquellen zu verwenden. Sie können Übertragungsfunktionen in Form von LaplaceAusdrücken verwenden, die wie folgt aussehen:

Laplace=(s + 1)/(s^2 + 2);

GDieser würde, wie gesehen, beispielsweise als Wert einer Quelle eingetragen werden . LTspice kann sich sin das komplexe Exponential umwandeln. Es kann auch in einer Verhaltensquelle funktionieren.

ABER während die LaplaceAusdrücke im Frequenzbereich einwandfrei funktionieren, können sie im Zeitbereich zu Müll führen, was im Handbuch erwähnt wird.

Aus diesem Grund ist es besser, Ihre Übertragungsfunktionen mit den Grundelementen abzuleiten, es sei denn, Sie haben es mit exotischen Übertragungsfunktionen zu tun sqrt(s), die oder ähnliche Nicht-Vielfache von haben . Zum Beispiel:sRLC

Grundbausteine

Diese können zu Übertragungsfunktionsausdrücken voller Größe kombiniert werden, aber sie sollten richtige Übertragungsfunktionen sein; für ungeeignete müssen Sie irgendwie mit den oben genannten Grundbausteinen jonglieren. Aus Stabilitätsgründen ist es auch eine gute Idee, die längeren Ausdrücke in 2. Ordnung aufzuteilen. Hier ist ein Beispiel:

Block 2. Ordnung

Sie könnten auch S-paramDateien verwenden, aber, IIRC, sie basieren auf Laplace. Dies sind nur Beispiele dafür, wie man es macht, und denken Sie daran, es geht nur darum, die schreckliche Leistung von Ausdrücken im Zeitbereich zu vermeiden Laplace. Letztendlich liegt die Wahl in Ihren Händen.


Die generische Übertragungsfunktion für den Block 2. Ordnung lautet wie folgt:

H ( S ) = A 2 S 2 + A 1 S + A 0 S 2 + B 1 S + B 0

Wo A N Und B N sind die im Bild, während S wird ausgedrückt als 1 2 π F (da, wie im 1. Bild zu sehen, G+Cbedeutet 1 / S ).

Zur Erinnerung: Die Übertragungsfunktion sollte korrekt sein: Die Ordnung des Zählers ist kleiner oder gleich der des Nenners.

Können Sie die Gleichung für das Beispiel 2. Ordnung angeben? Es würde mir helfen, mein Verständnis zu überprüfen. Danke.