NGSPICE vermasselt BJT-Eigenschaften

Ich versuche, BJT-Eigenschaften in NGSPICE zu erhalten, aber aus irgendeinem Grund gehen die Diagramme auf den Ursprung zurück.

BJT-Eigenschaften

* BJT characteristics

RB 1 2 1Meg
RC 4 3 1k
QBJT 3 2 0 BC107B
V1 1 0 dc 12
V2 4 0 dc 10

.model BC107B   NPN(Is=7.049f Xti=3 Eg=1.11 Vaf=59.59 Bf=381.7 Ise=59.74f
+               Ne=1.522 Ikf=3.289 Nk=.5 Xtb=1.5 Br=2.359 Isc=192.9p Nc=1.954
+               Ikr=7.807 Rc=1.427 Cjc=5.38p Mjc=.329 Vjc=.6218 Fc=.5 Cje=11.5p
+               Mje=.2718 Vje=.5 Tr=10n Tf=438p Itf=5.716 Xtf=14.51 Vtf=10)
*       PHILIPS     pid=bc107b  case=TO18
*       91-08-02 dsq

.dc V2 0 10 0.1 V1 1.5 3.5 0.5 

************
.control
run
plot v(4,3)/1k vs v(3) 
.endc
************

.end

Wie löse ich dieses Problem?

Zeichnen Sie es mit Punkten statt Linien?
Dieses Programm wurde in ngspice-32 gelöst.

Antworten (2)

Ich weiß nicht, ob Sie unbedingt NGSPICE verwenden müssen, aber mit LTspice hätten Sie keine Probleme (siehe unten).

Hinweis: LTspice ist völlig kostenlos und hat keine Einschränkungen (z. B. keine maximale Anzahl von Teilen, wie die kostenlose verkrüppelte Version anderer kommerzieller Simulatoren). Es ist einer der besten Simulatoren, die es gibt (er wird von Linear Technology für interne Simulationen verwendet - er ist kein Spielzeug). Das Programm ist leichtgewichtig (~40 MB, IIRC), funktioniert unter Windows und wurde entwickelt, um unter Linux unter WINE ausgeführt zu werden. Die Lizenz ist sehr liberal: Sie können sie auch für kommerzielle Zwecke nutzen, solange Sie kein Konkurrent von Linear Technology sind (Sie arbeiten nicht für einen Chiphersteller, oder? :-).

Der folgende Schnappschuss veranschaulicht den Punkt. Ich habe gerade einen leeren Schaltplan erstellt und den wesentlichen Teil Ihrer Netzliste in eine Spice-Direktive in LTspice kopiert und Ic gezeichnet, nachdem ich die Simulation ausgeführt habe. Hier ist das Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Natürlich könnten Sie den Schaltplan bei Bedarf von Grund auf neu zeichnen, aber wenn Sie nur die Kurven benötigen, ist das so einfach wie es nur geht.

Wie löse ich dieses Problem?

Am einfachsten ist es, solche Fehler im SourceForge ngspice-Forum zu posten...

Ändern Sie um Zeile 277 von graf.c .

if (np && (tox > fromx)) 
    DevDrawLine(fromx, fromy, tox, toy);