Definición de un condensador no lineal en Ngspice

Intento simular un circuito electrónico representado en el siguiente esquema.

ingrese la descripción de la imagen aquí

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 q 2

I d = k d 1 mi X pag ( q 2 k d 2 )

dónde I = d q d t

¿Es posible utilizar la fuente de comportamiento? De acuerdo con el manual de ngspice 25 , la fuente no lineal solo depende de los voltajes del nodo y la corriente de rama. 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 d 1   y   k d 2 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 d 1 mi X pag ( q 2 k d 2 )

V s es la caída de voltaje a través del dispositivo tipo condensador no lineal y se describe mediante el siguiente término:

V s = k q 2

Me sale un error cuando trato de abrir ese archivo. ¿Qué significan términos como "fuente B"? ¿Qué son I e Id, K, kd1, kd2 y Q?
"¿Es posible usar la fuente de comportamiento?" => Fuente B. A mi tampoco me funciona el enlace.
No se puede acceder a la URL del archivo adjunto sin iniciar sesión. Sugeriría publicar en línea.
Lamento que no pudieras ver la imagen. ¡He dado la URL en la siguiente respuesta!

Respuestas (2)

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

ingrese la descripción de la imagen aquí

Aquí usé un CCCS lineal y un capacitor lineal para hacer la integración de la corriente entrante y rastrear la variable de carga. Luego, un VCVS no lineal proporciona el comportamiento capacitivo de su capacitor no lineal. La resistencia gigohm está ahí porque SPICE requiere que cada nodo tenga una ruta de CC a tierra para obtener una solución; no afectará significativamente la solución del circuito.

Hay un ejemplo similar, usando la sintaxis de ngSpice en la página 89 en el manual de ngSpice 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 entender que la capacitancia definida es la capacitancia diferencial

C d q d V .

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

V = k q 2 .

Si le das la vuelta a esto tienes

q = V k .

de la que puedes obtener

d q d V = 1 2 k V

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

Muchas gracias por su detallada respuesta. De acuerdo con el boceto, he escrito una lista de conexiones de la siguiente manera, pero me pregunto por qué la corriente como salida de un circuito no lineal sigue siendo 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 de antemano!

Mi netlist:

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
Este no es realmente el lugar para hacer nuevas preguntas o adiciones a su pregunta. Pero si lo leí bien, su circuito básicamente describe un diodo con I_s de 1 A. Los diodos de silicio típicos tienen I_s de 10^-15 más o menos. Sospecho que esto es al menos parte de su problema.