¿Cómo trazar la corriente en ngspice?

10

Deseo trazar la corriente y el poder en ngspice. En el caso de la tensión, por ejemplo, si quisiera trazar la tensión en el nodo 1, usaría:

plot v(1)

El problema es que cuando intento i (1), el vector no se reconoce. ¿Podría alguien proporcionar algunos ejemplos de cómo hacer esto?

    
pregunta sj755

6 respuestas

8

Oli dio una respuesta correcta pero I (element_name) es una extensión agregada solo a las versiones comerciales de SPICE.

En ngspice (que se basa en Berkeley Spice 3) solo puede trazar corrientes a través de fuentes de voltaje (independientes). Estas son las únicas corrientes que aparecen en las ecuaciones del circuito desde las que SPICE trabaja.

En una sesión interactiva de Spice o desde un bloque especial en el script (vea también esta pregunta ) puede usar expresiones como (v(1)-v(2))/1k cuando la corriente es a través de una resistencia de 1kΩ entre los nodos 1 y 2. Para elementos reactivos (como un condensador de 1μF), algo como (v(1) - v(2))/(2*pi*frequency*1u) también debería trabajo.

    
respondido por el jpc
5

No he usado ngspice (utilizo LTSpice, pero por lo que entiendo, todos los SPICE se basan en la sintaxis de Berkeley original y funcionan de manera similar), pero generalmente traza la corriente del a través de a componente o en por ejemplo base de un transistor, en lugar de en un nodo, de acuerdo con primera ley de Kirchoff (la suma de las corrientes se encuentra en el punto es cero)

EDITAR - como señala jpc, para ngspice (y probablemente la mayoría de las otras variantes no comerciales / tempranas) las cosas son ligeramente diferentes, ya que solo puede trazar corrientes a través de una fuente de voltaje. Entonces, uno tendría que agregar una fuente de 0 V en el tramo del circuito de interés y trazar la corriente a través de esto. He añadido un ejemplo a continuación.

Entonces, si tiene un circuito simple que consiste en una resistencia (R1) con una fuente de voltaje (V1) a través de él (no soy un experto en la lista de redes, tome como ejemplo):

V1 1 0 5

R1 1 0 1000

(1, 0 son los nodos, 5 (V) y 1000 (Ohms) son los valores respectivos)

Puede trazar la corriente con I (R1) o I (V1), no I (1). Sin embargo, usted podría trazar V (1) para el voltaje.

Versión de NGSPICE (probado y confirmado)

V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0

Tenga en cuenta que Vdummy está en serie con la resistencia, por lo que la misma corriente debe fluir a través de ella. Entonces para trazar la corriente para R1 escribimos I (Vdummy). Para un circuito más complejo, nos aseguramos de que se apliquen las mismas condiciones.

Aquí hay un ejemplo "real" de LTspice:

NETLIST

V1 V + 0 24 Rser = 0
    V2 SIG 0 SINE (-1.4563 1m 1000 0 0 0 0) AC 2 Rser = 0
    V3 V- 0 -24
    Q1 N001 N002 N003 0 2N2222
    R1 V + N001 1f
    R2 N003 V- 2K7
    C2 N004 N003 100µF
    R3 N004 0 3K9
    R4 N002 0 22K
    C1 N002 SIG 100µF

IMAGEN DEL CIRCUITO

OPCIONESDETERRENO

(TengaencuentaquenohayI(n001),I(n002),etc.)

    
respondido por el Oli Glaser
3

Puedes trazar corrientes, pero necesitas saber qué corrientes quieres conocer antes de ejecutar tu simulación.

por ejemplo Si tuviera un diodo D1 y quisiera trazar la corriente a través de él, podría:

.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]

Más información está en la página 519 (Capítulo 31) del manual de ngspice en enlace

    
respondido por el Nigel Williams
2

En caso de barrer el voltaje de CC a través de un solo componente, puede trazar la corriente de derivación. Al cargar la siguiente lista de conexiones

.MODEL DI1N4004 D (IS=76.9n RS=42.0m  BV=4 IBV=5.00u CJO=39.8p
+M=0.333 N=1.45 TT=4.32u)

D1 1 0 DI1N4004
Vin 1 0 dc 12 ac 0

a ngspice y ordenando

dc vin -10 5 0.001
plot -vin#branch

debería poder obtener un diagrama de la corriente en el diodo d1.

    
respondido por el gmph
1

para el trazado actual agregue una fuente de voltaje cero en esa rama y escriba vlabel # branch en el terminal.

    
respondido por el Prashant
1

Desde NGSpice 27 R2017, colocando esta línea de código:

.options savecurrents

Guarda las corrientes, a las que se puede llamar para @R1[i] , @D1[id] , etc.

plot @R1[i] vs v(1)

Busque esta opción en el NGSpice Manual .

    
respondido por el Brethlosze

Lea otras preguntas en las etiquetas