In meiner Schaltung gibt es einen Stromgenerator. Dieser Generator generiert Werte in Abhängigkeit von einem Parameter, den wir N genannt haben. Aber ich möchte Parameter als Variable verwenden. Wenn sich die Werte linear ändern, verwende ich die .step-Funktion. Aber meine Werte sind gaußverteilt und 10k unterschiedlicher Wert. Somit ist die .step-Funktion für mich nicht geeignet.
Meine Frage ist, könnte ich den N-Parameterwert aus einer .txt-Datei kontinuierlich als .step-Funktion ändern?
Jetzt verwende ich LTSpice. Sagen Sie mir, ob Sie eine nützliche SPICE-Anwendung kennen. Ich weiß, dass die Funktion PWL() die aktuellen Generatorwerte mit einer Datei ändert. Aber es gibt eine mathematische Formel in I2() und N-Parameter, die darin verwendet werden.
Wenn ich das jetzt noch einmal lese, glaube ich zu verstehen, was OP will: eine benutzerdefinierte Zahlenfolge zu verwenden, die in einem .step
Befehl verwendet werden kann. Wenn dies der Fall ist, werde ich versuchen zu antworten.
Normalerweise wird für eine nichtlineare Zahlenfolge, die nicht logarithmisch ist, das Schlüsselwort list
verwendet. Leider erlaubt es keine Auswertungen, dh die Werte müssen numerisch sein, {cos(1)}
sonst {2*5}
schlagen sie fehl. Die einzige Lösung wäre also, die Zahlen extern zu generieren, in einer einfachen Textdatei, als einzelne Zeile oder als verkettete Zeile (mit vor +
jeder neuen Zeile) und hinzuzufügen:
.step param x list <sequence_of_numbers>
am Anfang. .inc
Diese Datei kann dann mit dem Befehl (oder ) zum Schaltplan hinzugefügt werden .include
. Vergessen Sie nicht, dass LTspice XVII die Zahlen vor dem Start der Simulation in aufsteigender Reihenfolge sortiert. Das mag man mögen oder auch nicht, aber so ist es jetzt. Die einzige Möglichkeit, dies zu umgehen, ist die Verwendung von LTspice IV.
Um dies zu testen, sieht der Inhalt der Textdatei so aus:
.step param x list 7.254322142991044e-12 2.974321522582202e-10
+ 5.94864415973779e-9 7.733237831307738e-8 7.346575989515156e-7
+ 5.436466237528063e-6 3.261879742903331e-5 1.630939871486926e-4
+ 6.931494453849666e-4 0.02292014166076882 0.05730035415192529
+ 0.1278238669542985 0.2556477339086 0.4601659210354829 0.7477696216826623
+ 1.099661208356858 1.466214944475812 1.774891774891774 1.952380952380952
und das Schema gibt dies nach a .op
:
Die Zahlen sind eine Möchtegern-Gauß-Glockenform. Die Ausgabe sieht aus wie eine gerade Linie, aber die Verwendung von View > Mark Data Points
zeigt, dass die Verteilung nichtlinear ist. Bei Verwendung .tran
werden erwartungsgemäß unterschiedliche DC-Pegel angezeigt.
Sie haben hier einige Möglichkeiten, dies klingt jedoch nach einem XY-Problem.
Zunächst einmal dienen .step-Funktionen zum Ausführen verschiedener Simulationen.
Wenn Sie eine transiente Simulation mit Ihren eigenen benutzerdefinierten Werten für eine Quelle oder Last ausführen möchten, können Sie PWL- oder Wave-Dateien für die Eingabe in Quellen in LT Spice verwenden. (oder Sie können einfach die eingebaute PWL-Option verwenden, die mühsam wäre, Tausende von Werten einzugeben).
In der ersten Schaltung hat V1 einen Wavefile-Eingang, der net Res auf V1 setzt. Aus Gründen des Interesses habe ich einen Widerstand auf den Wert der Wave-Datei gesetzt, wodurch der R2-Widerstand für die Wave-Datei variabel wird.
V3 hat eine PWL-Dateieingabe.
I1 hat einen PWL-Fliegeingang.
Denken Sie daran, dass PWL beim Setzen von Punkten schwierig sein kann, Sie können nicht zwei Punkte gleichzeitig haben und PWL zieht einfach eine Linie zwischen Punkten.
Dies ist die einzige Möglichkeit, Werte in eine lt-Spice-Datei zu importieren.
Sie können auch b-Quellen (entweder Strom oder Spannung) mit mathematischen Funktionen verwenden , die den Eingang der Quelle steuern.
Die nützlichsten Funktionen, wenn Sie versuchen, eine Rauschquelle zu erstellen, wären White, Random und Rand, mit denen Sie Quellen mit Gaußschen Eigenschaften in der Zeitdomäne und .trans-Simulation erstellen können.
jonk
agenel
agenel
jonk
ein besorgter Bürger
bi
, oderbi2
. Siehe Handbuch für die Verwendung:LTspice > Circuit Elements > B. Arbitrary behavioural ...
.agenel
ein besorgter Bürger
.step
"? "Ändere N-Parameter vonout.txt
"? "mathematische formel inI2()
"? Es tut mir leid, aber könnten Sie jemanden fragen, den Sie kennen und der ein besseres Englisch hat, um es für Sie zu übersetzen? Ich für meinen Teil kann nicht wirklich verstehen, welche Botschaft Sie zu vermitteln versuchen, es tut mir leid, aber vielleicht liegt es nur an mir.