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
Ich hatte übersehen, dass du ja schon Dateien mit den Modellen hattest. Ich habe das level=2 gelöscht.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
@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.
:
Bearbeitet durch User
@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
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.