NGSPICE estropeando las características de BJT

Estoy tratando de obtener las características de BJT en NGSPICE, pero por alguna razón las tramas vuelven al origen.

Características BJT

* 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

¿Cómo resuelvo este problema?

¿Trazarlo con puntos en lugar de líneas?
Este programa ha sido resuelto en ngspice-32.

Respuestas (2)

No sé si es absolutamente necesario usar NGSPICE, pero con LTspice no tendría problemas (ver más abajo).

Nota: LTspice es completamente gratuito y no tiene limitaciones (no tiene un número máximo de partes, por ejemplo, como la versión gratuita paralizada de otros simuladores comerciales). Es uno de los mejores simuladores que existen (Linear Technology lo utiliza para simulaciones internas, no es un juguete). El programa es liviano (~40 MB, IIRC), funciona bajo Windows y fue desarrollado para ejecutarse en Linux bajo WINE. La licencia es muy liberal: también puede usarla con fines comerciales, siempre que no sea un competidor de Linear Technology (no trabaja para un fabricante de chips, ¿verdad? :-).

La siguiente instantánea ilustra el punto. Acabo de crear un esquema vacío y copié la parte esencial de su netlist en una directiva de especias en LTspice y tracé Ic después de ejecutar la simulación. Aquí está el resultado:

ingrese la descripción de la imagen aquí

Por supuesto, puede volver a dibujar el esquema desde cero, si lo necesita, pero si solo necesita las curvas, es tan fácil como parece.

¿Cómo resuelvo este problema?

La forma más fácil es publicar dichos errores en el foro ngspice de SourceForge...

Cambia por la línea 277 de graf.c.

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