Definiendo un capacitor no lineal en Ngspice

1

Intento simular un circuito electrónico que se muestra en el siguiente esquema.

Este circuito contiene dos dispositivos no lineales: Estos dos dispositivos dependen de la densidad de carga y se definen de la siguiente manera:

\ $ V_S = K \ cdot Q ^ 2 \ $

\ $ I_d = k_ {d1} \ cdot exp (\ frac {-Q ^ 2} {k_ {d2}}) \ $

donde \ $ I = \ frac {d_Q} {dt} \ $

¿Es posible utilizar la fuente de comportamiento? De acuerdo con el manual ngspice 25, la fuente no lineal solo depende de los voltajes de los nodos y la corriente de derivación. En mi caso, la fuente o dispositivo no lineal depende de la integración de la corriente de rama. ¿Es posible definir una fuente B que dependa de la integración de la corriente de rama?

\ $ K, \ K_ {d1} \ \ text {y} \ k_ {d2} \ $ son valores constantes!

\ $ I_d \ $ es la corriente que fluye a través del dispositivo tipo diodo y se define de la siguiente manera:

\ $ I_d = k_ {d1} exp (\ frac {-Q ^ 2} {k_ {d2}}) \ $

\ $ V_s \ $ es el voltaje descendente en el dispositivo similar a un condensador no lineal y se describe con el siguiente término:

\ $ V_s = k \ cdot Q ^ 2 \ $

    
pregunta user18231

2 respuestas

3

Como usted dice, la fuente de comportamiento en ngspice solo puede generar un voltaje o una corriente en función de otros voltajes de nodo o corrientes de derivación en su circuito. No obstante, puede usar esto, con algunos elementos adicionales, para producir un condensador no lineal como parece necesitarlo:

AquíutilicéunCCCSlinealyuncapacitorlinealparahacerlaintegracióndelacorrienteentranteyrastrearlavariabledecarga.Luego,unVCVSnolinealproporcionaelcomportamientocapacitivodesucapacitornolineal.ElresistorgigohmestáallíporqueSPICErequierequecadanodotengaunarutadcatierraparaobtenerunasolución;noafectarásignificativamentelasolucióndelcircuito.

Hayunejemplosimilar,usandolasintaxisdengSpiceenlapágina89enelmanualdengSpice aquí .

Solución alternativa

Además, tenga en cuenta que ngSpice ofrece un modelo de condensador de comportamiento, descrito en la página 71 en el manual que vinculé. La sintaxis es

CXXXXXXX n+ n C = ’expression’ <tc1 = value > < tc2 = value >

Aquí debe comprender que la capacitancia definida es la capacitancia diferencial

\ $ C \ equiv \ frac {\ mathrm {d} Q} {\ mathrm {d} V} \ $.

Para poner sus ecuaciones en una forma apropiada, necesita volver a trabajarlas un poco. Usted tiene

\ $ V = K Q ^ 2 \ $.

Si le das la vuelta a esto, tienes

\ $ Q = \ sqrt {\ frac {V} {K}} \ $.

De donde puedes obtener

\ $ \ frac {\ mathrm {d} Q} {\ mathrm {d} V} = \ frac {1} {2 \ sqrt {KV}} \ $

Que puede implementar fácilmente en la sintaxis de expresión ngSpice.

    
respondido por el The Photon
0

Muchas gracias por su respuesta detallada. De acuerdo con el boceto, he escrito una lista de redes de la siguiente manera, pero me pregunto por qué la corriente como salida de un circuito no lineal todavía es sinusoidal por un voltaje de excitación sinusoidal. No sé, si hay algún problema lógico o técnico en el código. ¡Gracias por adelantado!

Mi lista de redes:

V1 0 1 SIN(0 200 0.1k)
C0 2 1 1n
X1 3 2 nonlinDevice
L1 4 3 0.0125
R1 5 4 200
Vg 0 5 DC=30
************************************
.subckt nonlinDevice n1 n2
VDC n1 n0 DC=0
BVs n0 n2 V=v(ng)*v(ng)
BIs n1 n2 I=exp(-v(ng)*v(ng))
Bint 0 ng I=i(VDC)
Cint ng 0 1
Rint ng 0 100G
.ends
*************************************
.control
tran 0.01m 80m
plot i(l1)
.endc
.end
    
respondido por el user18231

Lea otras preguntas en las etiquetas