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!
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-devices
que viene con LTspice o, con el LTspice XVII más nuevo, el .machine
comando. 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 on
abruptos 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=1f
por 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 C
s y L
s 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.
usuario1582568