Cómo usar .step param con más de dos parámetros en LTSpiceIV

9

Necesito hacer tres simulaciones transitorias con diferentes valores de ciertos resistores (convenientemente llamados R1 y R2) en cada uno. Lo que quiero hacer exactamente es esto:

  • Sim. 1: R1 = 1 k \ $ \ Omega \ $, R2 = 10 k \ $ \ Omega \ $
  • Sim. 2: R1 = 1 M \ $ \ Omega \ $, R2 = 10 M \ $ \ Omega \ $
  • Sim. 3: R1 = 1 k \ $ \ Omega \ $, R2 = 1 M \ $ \ Omega \ $

Si solo hubiera una resistencia cuya resistencia a variar, entonces solo configuraría su resistencia a "{r1}" (uso letras minúsculas para hacer que sea una variable / parámetro diferente a R1) y usaría un comando como :

.step param r1 list 1k 1meg 1k

Sin embargo, como tengo que cambiar dos parámetros (juntos) dos veces cada uno, he leído aquí eso (al menos en LTSpiceIV) que una solución a mi problema podría estar usando algo como esto:

.step param X list 1 2 3

.param r1 = table(X, 1k, 1meg, 1k)

.param r2 = table(X, 10k, 1meg, 10meg)

Al realizar la simulación, recibo las siguientes advertencias:

WARNING: Can´t resolve .param r2 = table(X, 10k, 1meg, 10meg)
Select OK to continue the simulation with the default model or Cancel to quit now.

Lo mismo se aplica para r1.

Por alguna razón, la simulación no se "rompe" si agrego un elemento adicional a la tabla. En ese caso, la simulación tarda demasiado tiempo, avanzando cada vez más lentamente, ya que nunca terminaría. He intentado configurar X en 0 1 2 en lugar de 1 2 3, pero eso tampoco funciona.

Aquí hay algunas fotos:

Comandos de Circuit +

Mensaje de error

Tu ayuda sería muy apreciada.

    
pregunta sebascarra

2 respuestas

12

En LTSpice, el comando de tabla realmente crea un tipo de diccionario en el que tiene que especificar pares de valores clave. La directiva adecuada para su caso sería:

.step param Rx list 1 2 3
.param R1 table(Rx,1,1k,2,1Meg,3,1k)
.param R2 table(Rx,1,10k,2,1Meg,3,10Meg)

y establezca el valor de las resistencias en {R1} y {R2} respectivamente.

Si desea tener cerca los valores de una resistencia, también puede ingresar (en lugar de valor, al hacer clic con el botón derecho)

R=table(Rx,1,10k,2,1Meg,3,10Meg)

en el campo de valor de resistencia. Esto funciona de la misma manera para todo tipo de componentes y con una secuencia de comandos externa para crear archivos .asc, se puede utilizar como una muleta para las funciones LT que faltan en la funcionalidad de Monte Carlo.     

respondido por el PlasmaHH
4

Un barrido / paso de parámetros puede controlar múltiples valores de componentes a través de expresiones.

Su variable de control que está subiendo puede ser un ángulo de fase o un retardo de tiempo o similar que ingresa en una o más fórmulas / expresiones para obtener los valores o parámetros de componentes resultantes que se aplicarán en el diseño como {parámetro}

Esto es útil si desea mantener una relación o controlar alguna propiedad física indirecta del diseño como una propiedad actual o de filtro.

En el editor de comandos "op" puedes ingresar algo como esto:

.STEP param Imax 0.1 0.3 0.1 
.PARAM Uin= 5
.PARAM R = (Uin-0.84954605)/Imax

Escala a Imax de 0.1 a 0.3 en pasos de 0.1 y calcula un valor de resistencia R usando el parámetro Imax, Uin, alguna supuesta caída de voltaje 0.85 .. de un diodo.

Se puede hacer referencia a PARAM R en una notación de valor de componente usando {R}. Tenga en cuenta que Uin podría usarse como {Uin} en una fuente de voltaje o similar, y así sucesivamente.

Para varias líneas en la ventana del editor "op", use CTRL + M para mantener todos los parámetros en el mismo cuadro de texto.

    
respondido por el tofo

Lea otras preguntas en las etiquetas