Cómo evitar que el circuito de oscilación de onda cuadrada produzca formas de diente de sierra al revés en LTSpice4

En una pregunta relacionada, "circuito simple y eficiente en energía para hacer que un solo LED IR parpadee", los siguientes circuitos se comparten en la tercera respuesta (actual):

Circuito intermitente LED

Ingresé estos en LTSpiceIV y la salida es inestable, a veces produce una buena onda cuadrada y otras veces produce una forma de rampa descendente de diente de sierra hacia atrás.

¿Qué está pasando aquí realmente? Soy un desarrollador de software que intenta aprender electrónica analógica, y he estado jugando con el Joule Thief y otros circuitos oscilantes, además de intentar aprender sobre los convertidores SMPS, y me gustaría saber cómo diagnosticar y prevenir comportamientos inestables como este. en general, pero realmente quiero saber sobre este en particular. Si tuviera un osciloscopio, los construiría y trataría de jugar con ellos.

A continuación, se muestra una captura de pantalla que muestra muchas formas de onda de diente de sierra hacia atrás, utilizando 2N2222, 2N2907.

Circuito LTSpice4 con 2N2222 y 2N2907 que muestra muchas formas triangulares y algunas ondas cuadradas

También probé diferentes pares de transistores; 2N3904, 2N3906 y 2N4401, 2N4403 eran mejores, pero aún tenían problemas.

Lo que sigue es el contenido del archivo LTSpice-IV * .asc, por lo que puede pegarlo en un archivo de texto y nombrarlo con una extensión ".asc", y luego debería poder (en una PC) abrirlo directamente en LTSpice IV y ejecute la simulación para reproducir lo que estoy experimentando.

Version 4
SHEET 1 1584 680
WIRE 352 -64 -176 -64
WIRE 512 -64 352 -64
WIRE 352 -32 352 -64
WIRE -176 0 -176 -64
WIRE 16 64 -16 64
WIRE 240 64 80 64
WIRE 352 64 352 32
WIRE -16 112 -16 64
WIRE -16 112 -48 112
WIRE 240 112 240 64
WIRE 288 112 240 112
WIRE -16 144 -16 112
WIRE 16 144 -16 144
WIRE 240 144 240 112
WIRE 240 144 96 144
WIRE 512 144 512 -64
WIRE -176 160 -176 80
WIRE -112 160 -176 160
WIRE 240 176 240 144
WIRE 272 176 240 176
WIRE -176 240 -176 160
WIRE 32 240 -176 240
WIRE 352 240 352 160
WIRE 352 240 96 240
WIRE 352 256 352 240
WIRE 512 272 512 224
WIRE 512 272 464 272
WIRE 464 304 464 272
WIRE -48 368 -48 208
WIRE 352 368 352 336
WIRE 352 368 -48 368
WIRE 512 368 512 272
WIRE 512 368 352 368
FLAG 464 304 0
FLAG 272 176 C1
SYMBOL voltage 512 128 R0
SYMATTR InstName V1
SYMATTR Value 4
SYMBOL pnp 288 160 M180
SYMATTR InstName Q1
SYMATTR Value 2N2907
SYMBOL npn -112 112 R0
SYMATTR InstName Q2
SYMATTR Value 2N2222
SYMBOL res 112 128 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 1K
SYMBOL cap 80 48 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 10nF
SYMBOL cap 96 224 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C2
SYMATTR Value 10µF
SYMBOL res -192 -16 R0
SYMATTR InstName R2
SYMATTR Value 330K
SYMBOL res 336 240 R0
SYMATTR InstName R3
SYMATTR Value 22
SYMBOL LED 336 -32 R0
SYMATTR InstName D1
SYMATTR Value LXK2-PW14
SYMATTR Description Diode
SYMATTR Type diode
TEXT 8 -24 Left 2 !.tran 60s startup

Finalmente, entré en el segundo circuito, que es solo el primer circuito invertido y con polaridad cambiada, pero ni siquiera oscilará.

Creo que tu circuito podría tener la culpa. Usando esto en un simulador diferente (el falstad.com/circuit one, específicamente) veo pulsos de más de tres amperios cada ~ 1 s; ni una onda cuadrada ni una onda de diente de sierra. Sin embargo, no he analizado manualmente el circuito para ver cuál es el problema.
Errr... ¿dónde está C1? Editar: no importa, eliminé la rama adicional que no condujo a nada y todavía se comporta mal.
@SredniVashtar Asegúrate C 2 no tiene basura en su valor e intente configurar UIC y un paso de tiempo mínimo de 100 us.
Al OP. Intente usar UIC y también use un paso de tiempo mínimo de 20 100 m s en tu tarjeta .TRAN. A ver si eso te ayuda.
@Jonk, con un paso de tiempo máximo de 50 us (.tran 0 12s 0 50u startup) obtengo buenos picos sin ningún diente de sierra. Los pulsos están espaciados uniformemente (hay un pico rápido en la corriente del diodo, luego un pulso rectangular similar corto. UIC no parece hacer una diferencia en este punto. Parece que el paso de tiempo funcionó. Pero no llamaría a esto un "Circuito de oscilación de onda cuadrada". Solo un "intermitente".
@SredniVashtar ¿Un multivibrador astable? Por cierto, intente agregar el valor reltol que sugiero en la respuesta a continuación.
@jonk ehheh, me pregunto qué hace que el LED sea más brillante: ¿el primer impulso de sobretensión actual o el breve pulso rectangular que sigue? Quizás un robot sin retina apenas notaría que parpadea...
@SredniVashtar estoy viendo 8 EM anchos de pulso, con aproximadamente 45 mamá picos, separados por aproximadamente 740 EM . No estoy seguro de cuán visible podría ser. Se puede tener un pulso mucho más amplio reduciendo R 2 y aumentando C 2 .
@jonk Gracias. ".options reltol=0.0000001" parece funcionar de acuerdo con su respuesta a continuación. Para V1 = 6, tuve que aumentar R1 a 2.2K (el circuito publicado especificaba un rango de 4-6 voltios). No creo que lo hubiera descubierto por mí mismo.
@MicroservicesOnDDD Podría simplemente aumentar C 1 en cambio, con 6 V aporte. El problema es que cuando aumenta el voltaje de la fuente, también aumenta la corriente del LED. Normalmente, hay alrededor 3 V caída desde la fuente de voltaje al colector de q 1 . Con 4 V fuente, eso es solo 1 V al otro lado de R 3 . Pero con 6 V fuente, eso es 3 V -- que requiere 3 veces la corriente del colector. Si C 1 es más grande, es capaz de hundirse lo suficientemente rápido para iniciar el proceso.

Respuestas (1)

Cuando veo estos comportamientos, generalmente se debe a la elección del solucionador, el tamaño de paso automático que LTSpice usa como tiempo delta o algo relacionado con la opción reltol.

Este circuito es realmente crítico en el sentido de que hay pulsos de LED muy cortos separados por un largo período durante el cual C 2 se carga Entonces, LTSpice podría elegir incorrectamente un paso de tiempo mínimo aquí y también esto puede agravarse con las tolerancias relativas.

Entonces. Lo primero que suelo probar con multivibradores astables como este es configurar el indicador UIC en .TRAN para asegurarme de que no intente encontrar un punto de reposo, en su lugar. Si eso no funciona, entonces configuro el paso de tiempo mínimo en algo terriblemente corto y veo si obtiene la resolución de tiempo necesaria. Y el último truco que intento es establecer RELTOL en un valor pequeño.

(A veces, se trata del solucionador en sí. Pero generalmente no. Sin embargo, puede cambiarlo en el cuadro de diálogo de opciones).

En este caso, el paso de tiempo mínimo parece aclarar las cosas. Pero es muy lento. Es mucho más fácil simplemente agregar esta línea Spice a su esquema:

.options reltol=0.0000001

Eso debería ayudar. (Pero siéntase libre de combinar eso con un paso de tiempo mínimo. Creo 100 m s también estaría bien, aunque para estar seguro iría a 20 m s si dejo reltol en su valor predeterminado.)

la opción de tolerancia no parece hacer ninguna diferencia en mi caso, pero eso se debe a que la salida ya estaba bien. De todos modos, +1 para ambos consejos.
@SredniVashtar Eliminar el período de tiempo mínimo ahora. Todavía debería funcionar, pero ahora más rápido.
De hecho lo hace. Debería haber leído con más atención. :-)