instancias del subcircuito paramétrico LTSpice

3

Quiero comparar las señales de mi subcircuito fancy (muy complejo) y los subcircuitos múltiples level1 (deberían ser casi equivalentes, pero más simples) con diferentes parámetros; estos parámetros deben pasarse a level2 subcircuits.

A continuación se muestra un código de ejemplo (simplificado) que no funciona:

Xfncy 2 0 fancy
Xlvl10 2 0 level1 PARAMS: Y1=1 Y2=1
Xlvl11 2 0 level1 PARAMS: Y1=1 Y2=10
Xlvl12 2 0 level1 PARAMS: Y1=10 Y2=1
Xlvl13 2 0 level1 PARAMS: Y1=10 Y2=10

.SUBCKT fancy 1 2 
* STUFF
.ENDS fancy

.SUBCKT level1 1 2 PARAMS: Y1=1 Y2=2

.param Z10=1 Z20=1 Z11=1 Z21=1 Z12=1 Z22=1

Xlvl20 1 2 level2 PARAMS: Y3=Z10*Y1 Y3=Z20*Y2
Xlvl21 1 2 level2 PARAMS: Y3=Z11*Y1 Y4=Z21*Y2
...
...
Xlvl28 1 2 level2 PARAMS: Y3=Z18*Y1 Y4=Z28*Y2


.SUBCKT level2 1 2 PARAMS: Y3=1 Y4=1
* STUFF
.ENDS level2
.ENDS level1

Corriendo así, me sale el siguiente error:

  

ADVERTENCIA: No se puede resolver .param Y3 = Z10 * Y1

     

Seleccione Aceptar para continuar la simulación con el modelo predeterminado o Cancelar para salir ahora

Mi primera versión de la instancia Xlvl20 line:

Xlvl20 1 2 level2 PARAMS: Y3={Z10*Y1} Y3={Z20*Y2}

produce el mismo error. Si cambio la línea a:

Xlvl20 1 2 level2 PARAMS: {Y3=Z10*Y1 Y3=Z20*Y2}

me sale:

  

Falta expresión en

     

"{Y3 = Z10 * Y1 Y3 = Z20 * Y2}"

¿Es posible pasar parámetros como este en LTSpice y, si es así, cómo? Los enfoques alternativos también son bienvenidos.

PS: Sí, he intentado .step param para evitar empacar level1 stuff en un subcircuito, pero luego no puedo compararlo con fancy , porque fancy toma aproximadamente 30 veces más tiempo para simular .

    
pregunta Dedek Mraz

1 respuesta

1

El manual LTSpice da un ejemplo de cómo hacer esto:

* calling a subcircuit
*
* This is the circuit
X1 in out 0 divider top=9K bot=1K
V1 in 0 pulse(0 1 0 .5m .5m 0 1m)

* This is the subcircuit
.subckt divider A B C
R1 A B {top}
R2 B C {bot}
.ends divider
.tran 3m
.end 

La sintaxis completa se proporciona como:

Syntax: Xxxx n1 n2 n3... <subckt name> [<parameter>=<expression>] 

Las reglas para escribir expresiones se dan en la sección del manual sobre "voltaje de comportamiento arbitrario y fuentes de corriente".

    
respondido por el The Photon

Lea otras preguntas en las etiquetas