Forum: Analoge Elektronik und Schaltungstechnik LTspice Model ohne Subcircuit, wie einbinden?


von Jan (Gast)


Angehängte Dateien:

Lesenswert?

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

von hinz (Gast)


Lesenswert?


von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

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

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Ich hatte übersehen, dass du ja schon Dateien mit den Modellen hattest.
Ich habe das level=2 gelöscht.

: Bearbeitet durch User
von Jan (Gast)


Lesenswert?

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

von Markus W. (dl8mby)


Lesenswert?

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

von Markus W. (dl8mby)


Lesenswert?

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

von Helmut S. (helmuts)


Lesenswert?

> 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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

@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

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

@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

von Helmut S. (helmuts)


Lesenswert?

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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

@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

von Helmut S. (helmuts)


Lesenswert?

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

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.