19 votos

Automatización de LTSpice

Tengo una batería convertidor boost y estoy tratando de medir el máximo de entrada (batería) caída de voltaje bajo diferentes condiciones de carga de alta corriente sorteos (diferentes ciclos/periodicidades) en adición a lo largo de varios tipos de batería (varios voltajes/resistencias internas). Desde que estoy simulando una (relativamente) gran cantidad de tiempo de funcionamiento de la simulación archivos están siendo bastante considerable, por no hablar de que tomar un tiempo. Me gustaría automatizar LTSpice para que yo pueda cambiar los valores de los componentes a través de programación y vuelva a ejecutar simulaciones y captura de datos (los valores de las cosas, como tensión o corriente). Yo sé que:

  • Los archivos WAV pueden ser utilizados para entrada/salida de datos desde el programa
  • El programa se puede ejecutar desde la línea de comandos

Hasta ahora mi mejor opción parece utilizar una combinación de estas dos opciones, junto con mi propio código de secuencia de comandos en una forma que logre mis metas, pero me pregunto si hay una manera mejor que ya existen.

Alguien ha automatizado el LTSpice o saber si ha habido cualquier tipo de automatización API escrito (ya sea por el fabricante o por el 3er partes)?

Idealmente me gustaría tener un solver, que me dio los parámetros deseados y que trató diversos valores de los componentes hasta que se encontró el "óptima" la solución a mis limitaciones.

16voto

SandeepJ Puntos 1339

Se ejecuta una simulación varias veces y el cambio de múltiples valores de los componentes es un poco más complicado que el mero cambio de uno (que no es tan malo)

Aquí es el concepto para el cambio de un valor:

  • Agregar una .param declaración utilizando el SPICE directiva icono en el extremo derecho, por ejemplo, para un valor de la resistencia a .param X=R
  • Para el uso que quieres entrar en {x} en el valor de la resistencia, a continuación, incluir por ejemplo .step param X 100 500 50 a paso el valor de entre 100 y 500 en incrementos de 50.

Ejemplo:

Step Example

Resultado:

Graph

Para varios valores, la única manera que he encontrado para trabajar fue el uso de una lista de valores para X, y utilizando la tabla de declaración. Este es probablemente el mejor explicado con un ejemplo (leer la ayuda de los comandos utilizados probablemente será útil aquí). Pero tenga en cuenta que la tabla de sintaxis de comandos es en forma de tabla(índice, x1, y1, x2, y2, .... xn, yn), índice toma como entrada y devuelve un valor interpolado para x=índice basado en el adaptador de pares x,y.

En uno de mis simulaciones que necesitaba para realizar 12 simulaciones mientras se cambia de 3 diferentes valores de los componentes, estos son los comandos:

.step param X list 1 2 3 4 5 6 7 8 9 10 11 12
.param Rin1 = table(X, 1, 1,1p, 2, 1p, 3, 1p, 4, 4478, 5, 4080, 6, 3400, 7, 2200, 8, 1p, 9, 1p, 10, 1p, 11, 1p, 12, 1p)
.param Rin2 = table(X, 1, 4997, 2, 4997, 3, 4997, 4, 499, 5, 897, 6, 1577, 7, 2777,  8, 4997, 9, 4997, 10, 4997, 11, 4997, 12, 4997)
.param Tval = table(X, 1, 56, 2, 56, 3, 27, 4, 1G, 5, 1G, 6, 1G, 7, 1G, 8, 1G, 9, 330, 10, 330, 11, 120, 12, 120)
.param Kval = table(X, 1, 316, 2, 147, 3, 147, 4, 6340, 5, 6340, 6, 6340, 7, 6340, 8, 6340, 9, 6340, 10, 825, 11, 825, 12, 316)

Resultado:

Gain Example

Esperamos que usted consigue la idea, que tal vez podría generar una secuencia de comandos que se iba a producir el necesario ESPECIA de comandos a la hora de rellenar los valores deseados. O simplemente crear una plantilla (por ejemplo, que sólo he copiado y pegado lo anterior en un par de diferentes simulaciones y cambiado los valores)

Si el de arriba no hacer lo que usted desea, luego tal vez ver algo como de NI multisim (creo que tiene algunas lote de simulación de opciones, aunque no estoy seguro de lo útil que son) También puede ser útil para preguntar sobre el LTSPice foro y a ver si alguien sabe de una mejor manera de hacer las cosas.

9voto

MrWorking Puntos 41

Creo que es posible ejecutar LTSpice desde la línea de comandos y ejecutar una simulación transitoria:

En windoze:

cd <wherever LTSpice is installed on your computer>
scad3.exe -Run -b MyCircuit.asc

En Linux:

cd ~/.wine/drive_c/Program Files (x86)/LTC/LTspiceIV
wine ./scad3.exe -Run -b MyCircuit.asc

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X