LTSpice - Cómo especificar el nombre del modelo del componente a través de la directiva .param

2

Tengo algunos subcircuitos que quiero definir como componentes, pero aún puedo especificar los modelos de componentes utilizados internamente, para una prueba mucho más rápida del rendimiento del diseño en diferentes conjuntos de modelos.

Sé cómo cambiar los atributos de las partes internas al pasar la notación numérica en la SpiceLine de un símbolo (.asy) en el que los nombres de las variables son los mismos que los nombres de las variables de los valores de los atributos en un modelo .subckt definición de un modelo .incluido en un esquema.

Así que aquí hay un subcircuito simple

vdrop_diode.txt:

.SUBCKT vdrop_diode 1 2

D1 1 2 1N4148

.ends vdrop_diode

Aquí está la instantánea del símbolo:

Losúnicosatributoscompletadosfueron:

Prefix:XValue:vdrop_diode

Entonces,aquíquieropodercambiarelmodelodelcomponente

vdrop_diode2.txt:

.SUBCKTvdrop_diode12D112{D_model}.endsvdrop_diode

instantánea:

Los únicos atributos completados fueron:

Prefix: X
Value: vdrop_diode
SpiceLine: D_model=1n4148

El modelo predeterminado es 1N4148 (como se especifica en SpiceLine), pero para poder simplemente cambiar a cualquier modelo que desee. El primer problema fue que el 1N4148 aprobado en SpiceLine se interpretaba como 1.4148e-9. Toma la N como nano, como si fuera solo una notación numérica. Pero, cuando probé nombres de modelos que no se pueden interpretar como números, como por ejemplo BAT54, genera:

WARNING: Can't resolve .param d_model=(bat54)

¿No lo estoy envolviendo entre comillas o algo así? O simplemente esto no se puede hacer.

No estoy buscando pasar por una lista de nombres de modelos, simplemente especifique un nombre de modelo para una definición de subcircuito.

    
pregunta Majin_Boo

2 respuestas

2

Ya que NO está buscando pasar por los nombres de modelos, automáticamente en una simulación, creo que puedo ayudarlo.

Coloque todos sus modelos .SUBCKT en un archivo .LIB en algún lugar a mano y guarde el archivo. Hará referencia a este archivo en la descripción de su símbolo.

Ahora, al editar su símbolo, use la flecha Editar / Atributos y seleccione la opción presentada llamada Editar Atributos. Obtendrá un bonito cuadro de diálogo allí. Tenga en cuenta que uno de los elementos se llama ModelFile. Ese es el que quieres editar. Coloque el nombre de su archivo .LIB recién creado allí. Guárdalo.

Ahora, para asegurarte de que las cosas se hayan agregado correctamente, recupera el archivo .ASY que creaste en un editor de texto (Wordpad, por ejemplo). Aquí hay un archivo de ejemplo que he hecho que muestra un resumen de lo que también puedes ver:

Version 4
SymbolType CELL
LINE Normal 0 44 32 44
LINE Normal 0 20 32 20
LINE Normal 32 20 16 44
LINE Normal 0 20 16 44
LINE Normal 16 0 16 20
LINE Normal 16 44 16 64
LINE Normal -16 0 0 0
LINE Normal 0 0 8 20
WINDOW 0 44 11 Left 0
WINDOW 38 44 50 Left 0
SYMATTR SpiceModel 2N6028
SYMATTR Prefix X
SYMATTR Description Programmable UJT
SYMATTR ModelFile PUJT.LIB
PIN 16 0 NONE 0
PINATTR PinName A
PINATTR SpiceOrder 1
PIN -16 0 NONE 0
PINATTR PinName G
PINATTR SpiceOrder 2
PIN 16 64 NONE 0
PINATTR PinName K
PINATTR SpiceOrder 3

Tenga en cuenta que se incluye ModelFile junto a SYMATTR. Eso es sobre lo que también deberías ver. Tenga en cuenta que es posible que deba reiniciar (cerrar y luego volver a abrir) LTspice para que encuentre los archivos. Tal vez no, pero es más seguro de esa manera.

(Tenga en cuenta también que en la edición querrá que SpiceModel sea un atributo visible o, de lo contrario, NO podrá ver su selección en el esquema. Y no ver su selección es casi siempre algo malo.)

Ahora puede usar F2 para mostrar su selección para su dispositivo X (.asy) y soltarlo en el esquema. Haga clic derecho en el dispositivo y podrá editar la entrada de SpiceModel allí y configurarlo a lo que desee. Ese valor será escaneado directamente, por LTspice, cuando hojee sus modelos en el archivo .LIB que dio para el atributo ModelFile de su símbolo.

Con suerte, encontrarás que funciona bien.

Por cierto, aquí está el contenido del archivo .LIB para el archivo .ASY anterior:

.SUBCKT 2N6028 1 2 3
*Programable Unijunction Transistor
*MODEL FORMAT: PSpice
*       anode  gate  cathode
*node:    1      2      3
Q1 2 4 3 NMOD
Q2 4 2 1 PMOD
.MODEL NMOD NPN(IS=2E-15 VAF=100 IKF=0.3 ISE=2.5E-12 NE=1.6 RE=0.15 RC=0.15 CJE=7E-10 TF=0.6E-8 CJC=2.2E-10 TR=4.76E-8 XTB=3)
.MODEL PMOD PNP(IS=22E-15 VAF=100 IKF=0.3 ISE=1E-12 NE=1.7 RE=0.15 RC=0.15 CJE=7E-10 TF=1.6E-8 CJC=2.2E-10 TR=5.1E-8 XTB=3)
.ENDS
*
.SUBCKT 2N6027 1 2 3
*Programable Unijunction Transistor
*MODEL FORMAT: PSpice
*       anode  gate  cathode
*node:    1      2      3
Q1 2 4 3 NMOD
Q2 4 2 1 PMOD
.MODEL NMOD NPN(IS=5E-15 VAF=100 IKF=0.3 ISE=1.85E-12 NE=1.45 RE=0.15 RC=0.15 CJE=7E-10 TF=0.6E-8 CJC=2.2E-10 TR=4.76E-8 XTB=3)
.MODEL PMOD PNP(IS=2E-15 VAF=100 IKF=0.3 ISE=1.90E-12 NE=1.5 RE=0.15 RC=0.15 CJE=7E-10 TF=1.6E-8 CJC=2.2E-10 TR=5.1E-8 XTB=3)
.ENDS

¡Para que veas que no es tan complicado, en la práctica!

EDITAR: Cuando coloco mi PUJT en el esquema y hago clic derecho en él, veo:

Prefix      X
InstName    U1
SpiceModel  2N6028
Value   
Value2  
SpiceLine   
SpiceLine2  

Tenga en cuenta que Value, Value2, SpiceLine y SpiceLine2 están vacíos. Tenga en cuenta también que el Prefijo es X (como creo que usted sabe que debería ser) y tenga en cuenta que NO tengo algún tipo de declaración = en la línea de SpiceModel. Simplemente proporciono el nombre del SUBCKT que quiero usar. Nada más. LTspice tomará ese valor y buscará en el archivo .LIB el nombre de SUBCKT y, si está presente, lo encontrará y lo utilizará.

    
respondido por el jonk
1

Puedes hacer esto: .step param modelselector list 11 12 13 14 .model 11 ako: 1N4148 .model 12 ako: 1N5819 .model 13 ako: BAT54 .model 14 ako: MBRS360

Usa el símbolo de diodo y llama al diodo {modelselector} en tu sim.

Luego puede usar este método para reemplazar cualquier subckt con otro y pasar por ellos.

No estoy seguro de cómo ayudarlo a pasar el nombre del modelo al subckt.

    
respondido por el Bernie Nor

Lea otras preguntas en las etiquetas