¿Cómo rastrear por qué la simulación LTSpice es lenta?

Tengo un esquema bastante complicado en LTSpice (al menos es el esquema más complicado que he intentado simular en LTSpice).

Por alguna razón, la simulación de solo 20 ms se convierte en unos 15 segundos para lograrlo.

Tengo varias teorías:

  1. El esquema es complicado, la computadora es lenta (realmente no es muy poderosa) así que no puedo esperar nada más rápido.
  2. Tengo algunos problemas en el diseño esquemático de LTSpice para acortar las iteraciones y, por lo tanto, ralentizar el proceso de simulación.

Si me saltearía el primero, ¿cómo puedo rastrear la parte problemática del esquema?

Lo intenté:

  • cortó algunas partes sospechosas del esquema para definir si la simulación se volvió razonablemente rápida (no ayudó; el tiempo de simulación varía de 10 a 20 segundos)
  • poner las condiciones iniciales para "cargar" los condensadores a los voltajes previstos (me ayudó porque pude acortar el tiempo de simulación: 20 ms en lugar de 100-200 ms)
  • Definí el paso de tiempo máximo como 1 us:ingrese la descripción de la imagen aquí

  • Puse resistencias de 10 MOhms entre optos y tierra

¿Hay algún método para encontrar un nodo problemático?

Creo que no le pediré a la comunidad que encuentre el problema por mí, ya que será mejor que aprenda a hacerlo yo mismo. Entonces es por eso que no puse mi esquema en la pregunta.

Tienes un circuito bastante complejo. ¿Puedes simular decir las tres partes por sí solas sin ningún problema? ¿Ayuda reemplazar optoacopladores con fuentes de corriente dependientes? ¿Ayuda a no flotar V5?
Entonces, ¿corres a una velocidad de 1,3 ms/s? Eso es bastante rápido para cosas no triviales. Mi simulación actual funciona a 15 µs/s y tarda tres horas en completarse. Tener un tiempo de respuesta de 20 s está bastante bien.
@winny, todos los subcircuitos ya simulados por su cuenta. Pero el esquema no es tan simple, así que tenía la intención de ver cómo funcionaba todo junto. Verificaré si optos se está ralentizando. Con respecto a V5: no diría que realmente está fluyendo. ¿Qué quieres decir con "flotar"?
@winny, sin optos, la simulación es un tercio más rápida (11 segundos en lugar de 15).
V5: Está "bloqueado" por dos inductores. En algún momento, será útil darle 1 o 10 Mohm a tierra. ¿Qué pasa con la pila de MOV (D37)?
Intentaré vincular V5 a la red. D37 es un TVS de avalancha, ¿qué les pasa?
¿Puedes reducir la cantidad de TVSes o construir uno propio con la clasificación de voltaje correcta para usar solo uno?

Respuestas (2)

Imponer un paso de tiempo no lo hace más rápido, y si necesita velocidad y precisión, me temo que eso no es muy posible.

Hay algunos TVS en serie, muchos de ellos, que pueden ser reemplazados por un TVS con n=X(= el número de elementos de la serie). Si estamos en ello, m=Yse establecerá el número de dispositivos en paralelo. Tenga en cuenta que solo mes válido para RLCs, nsolo para diodos. Esto simplemente se puede agregar después del nombre de la instancia. Por ejemplo, dos 4148 en serie y tres en paralelo se verán como 1N4148 n=2 m=3. No contarán para el recuento final de nodos porque están expandidos internamente, pero contarán para el cálculo, ya que LTspice todavía tiene que calcular la presencia de 6 diodos.

Para el flotante V5, si ese es un elemento ofensivo (que podría serlo, ya que LTspice incluso especifica en su manual que las fuentes de corriente se recomiendan sobre sus contrapartes de voltaje y las fuentes de voltaje deben estar conectadas a tierra para un mejor rendimiento), la cura es simple: agregue Rser=1m. Esto transformará, también internamente, la fuente de tensión en su equivalente Norton, mejorando así la convergencia.

También puede combinar series RLcon L Rser=x, lo mismo para mayúsculas, lo mismo para combinaciones en paralelo y/o en serie. Misma explicación que para el TVS.

En cuanto a la configuración, es mejor que hagas trtol=3..7en lugar de los demás. Habrá una aceleración (menor, -ish), dependiendo de su hardware y esquema, mientras que la precisión no tiene tanto impacto como gmin, reltoly abstoltiene.

Hay una cosa más que me desconcierta: en uno de los comentarios, alguien sugiere usar fuentes actuales en lugar de optoacopladores, y dices que lo intentaste. Esto me hace pensar que la precisión, o mantener una configuración casi real, no es tan importante para usted, lo que significa que podría simplificar el LCfiltro después V5en su LCpaso bajo simple (es decir, no convertirlo en un filtro simétrico), pero la mayor simplificación se puede hacer con todo el puente y su circuito de control: simplemente puede usar algunas G(o E) fuentes que controlen el interruptor nativo SW. Es SWposible que necesite algunos diodos antiparalelos. Hablando de eso, también puede reemplazar los diodos con la versión idealizada, teniendo .model D D Vfwd=0.7 Vrev=1k Ron=0.1 Roff=10Meg epsilon=100m revepsilon=50m, oVfwd=0.5para Shottky. Veo dos diodos antiparalelos, esos podrían ser reemplazados por un solo diodo con Vfwd=Vrev. Zeners también con Vrev=X. Por supuesto, todo esto implica el uso de un enfoque idealizado o de comportamiento para todos sus esquemas y, si bien es muy plausible y se usa para pruebas rápidas, no debe olvidar que la desventaja son los resultados poco realistas, incluso cuando se modelan con mucho cuidado. Puede obtener buenos resultados, pero no debe confiar en ellos, ya que incluso un esquema hecho con elementos "reales" es solo una simulación SPICE que utiliza modelos que, en sí mismos, son una aproximación de casos de la vida real. Por supuesto, en última instancia, depende de usted elegir su camino.

¡Esta es una respuesta genial! ¡Gracias! Con respecto a las fuentes actuales: en realidad, no probé exactamente lo que se sugirió, eliminé los optos con cortocircuitos en lugar de diodos y abiertos en lugar de salidas, esto fue para probar si esta simplificación mejorará la velocidad. Realmente no estoy enfocado en la alta precisión, solo necesito estar seguro de que el esquema funciona (los valores se ajustarán durante las pruebas de la vida real).

Tuve la suerte de encontrar la solución que me ayudó por el momento.

Así que cambié la configuración de Spice en Herramientas -> Panel de control -> SPICE de esta manera:

ingrese la descripción de la imagen aquí

Así que ahora tengo un tiempo de simulación de solo 1 segundo en lugar de 15.

Sin embargo, soy consciente de la reducción de la tolerancia de simulación. Espero no tener ningún problema después de eso. Comenten si alguien tiene alguna opinión al respecto.

Imponer un paso de tiempo no lo hace más rápido, pero la verdadera pregunta es qué necesita: ¿velocidad o precisión? Si son ambos, tengo malas noticias. Pero veo allí una larga serpiente de TVS que puede ser reemplazada por una TVS con n=X(= el número de elementos de la serie). No contarán para el recuento final de nodos porque se expanden internamente. Para el flotante V5la cura es sencilla: añadir Rser=1m. También puede combinar serie ~RL` con L Rser=x, lo mismo para mayúsculas, lo mismo para paralelo o combinaciones. Misma explicación que para TVS. Y es mejor que hagas trtol=3..7en lugar de los demás.
@aconcernedcitizen ¡Gracias! ¿Podría publicar sus pensamientos como respuesta para permitirme aceptarlo?
@aconcernedcitizen, ¿cómo puedo hacer lo de "n=X"? No encontré nada como esto en la ventana de propiedades de SMBJ24CA.
15 segundos NO es un tiempo de simulación largo. He hecho simulaciones que tardan 10 minutos o más en renderizarse. El truco que ha encontrado en realidad juega con el criterio de convergencia de la simulación; obtendrá una simulación más rápida, pero a costa de la precisión.