No soy tan bueno con las explicaciones, pero lo intentaré.
Mike, el creador de LTspice, hizo grandes esfuerzos para asegurarse de que el solucionador no encuentre cambios bruscos que puedan plantear problemas. Esto significa que incluso el diodo ideal, cuando se simula, mostrará un pequeño redondeo alrededor de la rodilla. Agregue suficientes puntos y se volverá más nítido, pero amplíe y obtendrá un pequeño redondeo. Esto es cierto para (como lo sé) todos los elementos no lineales.
Sin embargo, hay casos en que dos o más elementos no lineales, cuando están acoplados, pueden producir una función de transferencia que puede ser demasiado abrupta, lo que significa que el solucionador debe reducir su tiempo para adaptarse a los cambios cada vez mayores, y se obtiene Más lento y más lento, hasta que, si ya no puede seguir, tose "Tiempo demasiado pequeño", o similar. Esto es cierto para todos los motores SPICE, creo.
Una causa (para LTspice, en particular), es el uso de fuentes de voltaje "rígido", que tienen una fuente (ohmios) de cero ohmios y pueden causar problemas de convergencia. La ayuda oficial indica que es mejor usar fuentes de corriente terminadas en resistencias apropiadas, ya que estas no solo convergerán más rápido, sino que no serán un problema para el circuito. ¿Por qué menciono esto? Créalo o no, recientemente ha habido un caso en el que alguien no pudo simular un simple amplificador operacional debido a sus fuentes de suministro (el modelo era una caja negra, es cierto, así que quién sabe qué sucedió dentro). Tan pronto como agregó Rser
a los suministros, ¡todo funcionó! Probablemente lo sepa, pero agregar Rser
a una fuente de voltaje hace que LTspice lo convierta, internamente, a una fuente actual.
Otra solución conocida es agregar (pequeños) condensadores a través de nodos ofensivos, de modo que la derivada alrededor de las transiciones bruscas se vuelva más suave, lo que permite al solucionador saltar sobre ella. La capacitancia debe ser lo suficientemente pequeña como para no demostrar un polo no deseado adicional s , pero al mismo tiempo lo suficientemente grande como para que tenga un efecto en la posible discontinuidad. Los valores típicos son fF ~ pF. Otra solución podría ser agregar gmin
para ayudar a las corrientes de CC, también con valores que no deben distorsionar la respuesta del circuito original, pero, al mismo tiempo, ayuda. Los valores suelen ser al menos GOhms, arriba.
Dado que un circuito como el suyo, como usted dice, está compuesto por una gran mayoría de transistores, por lo tanto elementos no lineales, encontrar el "nodo (s) ofensivo" puede ser engorroso, si es posible, así que para esto hay la opción oficial .opt cshunt
y .opt gshunt
, que, según el manual, agrega capacitancias y conductancias en todos los nodos. Debo agregar que esta solución debe usarse con cuidado, ya que, incluso si en la vida real hay capacitancias en todas partes, es posible que no sean las mismas en todas partes o que tengan valores importantes, así que úselo con cuidado. Por ejemplo, agregar .opt cshunt 1n
puede eliminar cualquier problema de convergencia, pero se le dejará con capacidades de 1nF a través de cada nodo, a tierra.
No menos importante, los modelos / subcircuitos, en sí mismos, a veces pueden ser engorrosos, ya que quien los hizo no hizo un trabajo tan bueno, o puede funcionar mejor en un simulador que en otro. Las soluciones, aquí, son tan vastas que merecen otro sitio SE, al menos.
Además de lo que ya se ha dicho, no puedo encontrar, actualmente, algo más que decir, así que solo añadiré buena suerte, ya que, aunque LTspice no tenga otros límites que su hardware (como lo señala @zebonaut) ), todavía está a la merced del hardware y el software, especialmente con la creciente complejidad de los esquemas. Buena suerte.