Paso/tabla de parámetros en especias LT

Estoy simulando fuentes de comportamiento algo complejas en LTspice, y tengo dificultades para que se acepte un conjunto de parámetros. Vea el esquema a continuación de un convertidor reductor/elevador bidireccional. Creo que está rechazando mi línea ".param D=..." porque contiene los parámetros de la tabla. ¿Alguien puede darme una sugerencia sobre cómo resolver esto? Necesito "precalcular" el parámetro D en función de los valores de paso de V1 y V2. Si solo defino V1 y V2 sin paso/tabla, la simulación funciona bien.

¡Gracias por cualquier sugerencia!

ingrese la descripción de la imagen aquí

No he usado muchos pasos de parámetros, pero lo mejor que puedo sugerir aquí es que haga tantos cálculos previos como pueda, pero defina las expresiones para sus fuentes B en términos de Vx, o defina fuentes que generen voltajes en los nodos. llamados V1 y V2, y utilícelos en las expresiones de las fuentes B. Creo que todos los términos que se usan en las expresiones param deben ser constantes conocidas al comienzo de la simulación, los tuyos solo son constantes dentro de cada paso.

Respuestas (1)

En LTspice, y no solo, las expresiones condicionales if()tienden a introducir discontinuidades que van en contra del solucionador debido a la derivada en ese punto. Se pueden evitar algunas discontinuidades simples, pero, por lo general, deben evitarse.

Una solución sería tratar de suavizar la discontinuidad agregando un pequeño capacitor (fF~pF) a través de la fuente que tiene los condicionales, lo que obligaría a la forma de onda a seguir una ruta más fluida, lo que permitiría que el solucionador "vea" todo. los puntos y superarlo, al mismo tiempo que no influye en el circuito introduciendo polos no deseados que podrían provocar resultados erróneos.

Otra solución sería simplemente usar el A-devicesque viene con LTspice o, con el LTspice XVII más nuevo, el .machinecomando. Digo esto mirando su esquema, donde veo, en su mayoría, casos de if(cond, <one_voltage>, <another_voltage>), que pueden resolverse fácilmente con puertas lógicas.

Mientras estamos en eso, también podría evitar la histéresis positiva para el interruptor, que es conocido por causar problemas, y elegir un valor negativo, lo que haría que las transiciones fueran suaves de a y viceversa, en lugar de cambios onabruptos off.

Otra nota menor sería no confiar en los diodos predeterminados, que son ideales, y forzar un diodo "normal" especificando uno de los otros parámetros, como , Is=1fpor ejemplo. O bien, podría mantener el diodo ideal más rápido, pero no le hará daño agregar epsilon=<fraction of Vfwd>y revepsilon=<fraction of Vfwd>: agregan una región cuadrática simple a la(s) rodilla(s) de la función de transferencia.

Y, finalmente, los parásitos en Cs y Ls pueden ayudar mucho tanto a evitar cantidades conmutadas muy grandes (corrientes, en su mayoría) como a hacer que el circuito se comporte de manera más real.

Olvidé agregar que las fuentes de comportamiento, aunque extremadamente versátiles, no son del todo confiables debido a esto. También dependen del tiempo y cada punto se calculará durante el tiempo de ejecución (para cualquier cosa relacionada con el tiempo), lo que puede ser una carga. Siempre que puedas, reemplázalos por elementos primitivos.