Guten morgen,
ich versuche eine Schaltung mit dem Transistorpärchen KSC2690 & KSA1220
zu simulieren, dabei kommt es zu der Fehlermeldung:
Fatal Error: Unknown subcircuit called in:
xq1 nc_01 nc_02 nc_03 level=2 ksc2690_ksc2690a
Was habe ich gemacht?
die Daten aus der .lib herauskopiert und über SPICE Directive in den
Schaltplan eingefügt. Mehr relevantes enthalten die Dateien nicht:
.MODEL KSC2690_KSC2690A NPN ( LEVEL=2
+ IS =1.7783E-13
+ BF =132.5
+ NF =1.0
+ BR =8.495
+ NR =1.005
*+ IBC =1.7783E-13
*+ IBC =1.7783E-13
+ ISE =1.9953E-13
+ NE =1.5
+ ISC =1.5849E-9
+ NC =1.98
+ VAF =580.75
+ VAR =18.15
+ IKF =4.0271
+ IKR =0.0120
+ RB =2.98
+ RBM =0.001
+ IRB =0.6396
+ RE =0.0909
+ RC =1.4705
+ QCO =0.68
+ RCO =3.6239
+ VO =6.587
+ GAMMA =2.8216E-7
+ CJE =4.0082E-10
+ VJE =0.6696
+ MJE =0.3296
+ FC =0.5
+ CJC =6.0404E-11
+ VJC =0.5
+ MJC =0.4266
+ XCJC =0.4955
+ XTB =1.2590
+ EG =1.2277
+ XTI =3.0 )
Standard NPN/PNP Transistoren gewählt, Prefix auf "X" editiert und sie
gemäß .MODEL benannt (z.B. KSC2690_KSC2690A)
Ich vermute ".subckt" fehlt im Schaltplan, es gibt bei den beiden .lbr
keine entsprechende Zeile. Ich hatte das aus einem funktionierenden
Transistorpärchen herauskopiert und konnte so die Simulation ohne
Fehlermeldung starten, die Modelle arbeiten aber auf diese Art natürlich
nicht.
Kann mir bitte jemand einen Tipp geben?
Vielen Dank!
Jan
Hallo Jan,
der Prefix für einen Transistor mit ".model ..." muss Q heißen. X ist
für Subcircuit ".subckt ...".
Eigentlich brauchst du gar kein neues Symbol sondern du nimmst das
Symbol NPN für alle NPN-Modelle mit ".model ...".
Das level=2 muss weg.
Beispiel 1: Modell im Schaltplan.
Beispiel 2: Modell in einer Datei (mynpn.lib).
In so einer Datei können auch mehrere Modell sein.
Gruß
Helmut
Hallo Helmut,
ich bedanke mich vielmals, jetzt läuft es auch bei mir!
Auf die Sache mit dem Prefix "Q" wäre ich so schnell nicht gekommen, bin
momentan noch in der Einlernphase.
Gruß,
Jan
Hallo Jan,
einfach die Spice-Parameter in eine Zeile schreiben und diese Zeile
in die Datei standard.bjt im Verzeichnis lib/cmp mit einem Text-Editor
einfügen.
z.B. sieht für einen BC847 die Zeile wie folgt aus.
.model BC847BT116 NPN(Is=70.000E-15 Bf=277.08 Vaf=114.03 Ikf=1
Ise=70.000E-15 Ne=1.8934 Br=11.565 Var=100 Ikr=.11266 Isc=1.0228E-12
Nc=1.3260 Nk=.71869 Re=.2 Rb=13.897 Rc=1.2190 Cje=11.342E-12 Mje=.38289
Cjc=4.0230E-12 Mjc=.34629 Tf=338.92E-12 Xtf=4.0449 Vtf=167.36 Itf=.85959
Tr=110.25E-9 Xtb=1.5000 Vceo=45 Icrating=0.1 mfg=Rohm)
Eine ähnliche Zeile musst Du für Deinen neuen Transistor erstellen.
Danach einfach LT-Spice neu starten und ein NPN Teil auswählen.
Ein Rechtsklick auf das Symbol eröffnet Dir eine Auswahlliste mit
allen verfügbaren Transistoren aus der standard.bjt Datei.
Diese solltest Du dir sichern, da eine Update von LT-Spice diese Datei
überschreibt.
Markus
DL8MBY
Hallo Jan,
ich habe versucht die o.g. Einfügeoperation für einen Transistor von Dir
zu machen.
.model KSC2690 NPN(Is=1.7783E-13 Bf=132.5 Vaf=580.75 Ikf=4.0271
Ise=1.9953E-13 Ne=1.5 Br=8.495 Var=18.15 Ikr=0.0120 Isc=1.5849E-9
Nc=1.98 Re=0.0909 Rb=2.98 Rc=1.4705 Cje=4.0082E-10 Mje=0.3296
Cjc=6.0404E-11 Mjc=0.4266 Vjc=0.5 Vje=0.6696 Nf=1.0 Nr=1.005 Rbm=0.001
Irb=0.6396 FC=0.5 XCJC=0.4955 Xtb=1.2590 EG=1.2277 XTI=3.0 mfg=RUSS)
Allerdings haben die anderen Transistoren in dem genannten File noch
folgende
Parameter, die der KSC2690 nicht hat. Ob die erforderlich sind kann ich
nicht sagen. Muss man in der LT-Spice Doku nachlesen.
Nk=?
Tf=?
Xtf=?
Auf der anderen Seite bietet Deine Modellbeschreibung die u.g.
Parameter,
die ich bei keinem anderen Transistor aus standard.bjt gefunden habe.
Qco=?
Rco=?
Vo=?
Gamma=?
Noch erscheint der KSC2690 nicht im Auswahlmenu, womit wohl noch ein
Parameterfehler vorliegt.
Muss noch etwas suchen, an welchem Parameter es hackt.
Vielleicht hat jemand eine Idee dazu.
Markus
DL8MBY
> Muss noch etwas suchen, an welchem Parameter es hackt.
Korrekt schreibt man es hakt auch wenn hier so mancher fälschlicherweise
"hackt" schreibt.
Zurück zu deiner Frage.
Du darfst da nicht 5 Zeilen schreiben. Das muss alles in eine Zeile
geschrieben werden.
Ich finde die Idee ganz schlecht Modelle in standard.bjt einzufügen da
niemand außer dir dann das Modell da drin hat. Wenn du dann den
Schaltplan weitergibst, läuft die Simulation bei den Anderen nicht.
@Helmut S.,
ich bin der subjektiven Meinung, dass man die standard.bjt
immer mit den anderer Teilnehmern "mergen" sollte, damit man sich
nicht jedes mal um die Modelle kümmern muss, wenn man schnell
was simulieren will.
Jeder pflegt seine eigene Transistoren-Liste für sich , wobei es
besser wäre es zentral zu tun, damit alle was davon haben.
Ob ich jetzt das Modell oder die entsprechenden Zeilen mit den
Transistor-Parametern aus der standard.bjt weiter gebe, oder myparts.lib
anhänge bleibt sich vom Aufwand gleich.
Irgendwo müssen die Parameter mit übergeben werden, oder habe ich
Dich missverstanden und Du baust das Modell direkt als Text in die
.asc Datei ein.
Markus
DL8MBY
@Jan,
für den KSC2690 habe ich es nun geschafft das Modell in die standard.bjt
erfolgreich einzufügen.
Mein Problem lag daran, dass ich noch eine alte Version
4.23I vom 22. Jul. 2016 (scad3.exe) auf der Disk hatte,
die ihre standard.bjt unter "Programme\LTspice\lib\cmp" gespeichert hat.
Hingegen hat meine neuere LTSpice Version XVII vom 24.Oct. 2017
(XVIIx64.exe) die standard.bjt unter "Meine
Dokumente\LTspiceXVII\lib\cmp"
abgelegt. Somit habe ich den neuen Transistor in die falsche Datei
eingetragen.
Was noch zu Deinen Parametern hinzugekommen ist, ist der Teil
Vceo=25 Icrating=500m mfg=RUSS)
für die Maximalwerte, die Du noch anpassen musst sowie ein
fiktiver Hersteller "RUSS".
Mit der u.g. Zeile kann der Transistor nun im LTSpice verwendet
werden.
.model KSC2690 NPN(Is=1.7783E-13 Bf=132.5 Vaf=580.75 Ikf=4.0271
Ise=1.9953E-13 Ne=1.5 Br=8.495 Var=18.15 Ikr=0.0120 Isc=1.5849E-9
Nc=1.98 Re=0.0909 Rb=2.98 Rc=1.4705 Cje=4.0082E-10 Mje=0.3296
Cjc=6.0404E-11 Mjc=0.4266 Vjc=0.5 Vje=0.6696 Nf=1.0 Nr=1.005 Rbm=0.001
Irb=0.6396 FC=0.5 XCJC=0.4955 Xtb=1.2590 EG=1.2277 XTI=3.0 Vceo=25
Icrating=500m mfg=RUSS)
Markus
DL8MBY
Hallo Markus,
> Irgendwo müssen die Parameter mit übergeben werden, oder habe ich dich
missverstanden.
Ich finde es halt auf Dauer viel sicherer, wenn alles was zu einem
Design gehört in einem Ordner liegt. Damit läuft die Simulation auf
Anhieb bei jedem dem ich das Design gebe.
@Helmut S.,
mich würde vielmehr interessieren, ob man alles was zu einer
Simulation gehört im Prinzip in die .asc Datei packen kann.
Modell oder Modelle und andere Sachen, die noch so benötigt
werden. Wie weit ist da die .op Instruktion hilfreiche?
Markus
DL8MBY
Markus W. schrieb:> @Helmut S.,>> mich würde vielmehr interessieren, ob man alles was zu einer> Simulation gehört im Prinzip in die .asc Datei packen kann.> Modell oder Modelle und andere Sachen, die noch so benötigt> werden. Wie weit ist da die .op Instruktion hilfreiche?>> Markus> DL8MBY
Hallo Markus,
man kann alles in eine Schaltplandatei packen. LTspice akzeptiert alle
möglichen SPICE-konformen Zeilen im Schaltplan und verwendet die dann in
der SPICE-Netzliste für die Simulation. Ein Beispiel war ja
npn_einbinden1.asc.
Du kannst auch einen Widerstand als SPICE-Zeile im Schaltplan ablegen.
R100 n1 n2 1k
Dabei sind n1 und n2 Netznamen. Da sollte man natürlich nicht die
Default-Namen N001, N002, N00... verwenden da diese Netz-Namen von
Netzen der gezeichneten Schaltung sich bei Schaltplanänderungen nicht
kontrollierbar ändern.
Zusammenfassung
Jede SPICE-konforme Zeile oder Netzliste kann man direkt als
SPICE-Directive in den Schaltplan einfügen. Dazu gehört auch alles was
man normalerwesie mit .inc oder .lib einbindet. Übersichtlich ist das
aber nicht unbedingt.
Helmut