In einer verwandten Frage "Einfache, energieeffiziente Schaltung zum Blinken einer einzelnen IR-LED" werden die folgenden Schaltungen in der (aktuellen) dritten Antwort geteilt:
Ich habe diese in LTSpiceIV eingegeben und die Ausgabe ist instabil und erzeugt manchmal eine schöne Rechteckwelle und manchmal eine Rückwärts-Sägezahn-Ramp-Down-Form.
Was ist hier wirklich los? Ich bin ein Softwareentwickler, der versucht, analoge Elektronik zu lernen, und habe mit dem Joule Thief und anderen Schwingkreisen herumgespielt und versucht, etwas über SMPS-Wandler zu lernen, und würde gerne wissen, wie man instabiles Verhalten wie dieses diagnostiziert und verhindert im Allgemeinen, aber ich möchte wirklich etwas über dieses hier im Besonderen wissen. Wenn ich ein Oszilloskop hätte, würde ich diese bauen und versuchen, damit zu spielen.
Unten ist ein Screenshot, der viele der Rückwärts-Sägezahnwellenformen zeigt, die 2N2222, 2N2907 verwenden.
Ich habe auch verschiedene Transistorpaare ausprobiert; 2N3904, 2N3906 und 2N4401, 2N4403 waren besser, hatten aber immer noch Probleme.
Was folgt, ist der Inhalt der LTSpice-IV *.asc-Datei, also können Sie diese in eine Textdatei einfügen und mit der Erweiterung „.asc“ benennen, und dann sollten Sie sie (auf einem PC) direkt öffnen können in LTSpice IV hoch und führen Sie die Simulation aus, um zu reproduzieren, was ich erlebe.
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
Schließlich trat ich in den zweiten Schaltkreis ein, der nur der erste Schaltkreis ist, der invertiert und polaritätsgeschaltet ist, aber nicht einmal schwingt.
Wenn ich dieses Verhalten sehe, liegt es normalerweise an der Solver-Wahl, der automatischen Schrittgröße, die LTSpice als Delta-Zeit verwendet, oder an etwas, das mit der Reltol-Option zu tun hat.
Diese Schaltung ist wirklich kritisch in dem Sinne, dass es sehr kurze LED-Impulse gibt, die durch einen langen Zeitraum getrennt sind lädt auf. Daher könnte LTSpice hier fälschlicherweise einen minimalen Zeitschritt wählen, und auch dies kann sich mit den relativen Toleranzen verschlechtern.
So. Das erste, was ich normalerweise mit solchen astabilen Multivibratoren versuche, ist, das UIC-Flag in der .TRAN-Datei zu setzen, um sicherzustellen, dass es nicht versucht, stattdessen einen Ruhepunkt zu finden. Wenn das nicht ausreicht, stelle ich den minimalen Zeitschritt auf etwas schmerzhaft Kurzes ein und schaue, ob das die erforderliche Zeitauflösung erreicht. Und der letzte Trick, den ich versuche, ist, RELTOL auf einen kleinen Wert zu setzen.
(Manchmal geht es um den Solver selbst. Aber normalerweise nicht. Sie können es jedoch im Dialogfeld "Optionen" ändern.)
In diesem Fall scheint der Mindestzeitschritt die Dinge zu klären. Aber es ist sehr langsam. Es ist viel einfacher, einfach diese Spice-Linie zu Ihrem Schaltplan hinzuzufügen:
.options reltol=0.0000001
Das sollte helfen. (Aber fühlen Sie sich frei, das mit einem minimalen Zeitschritt zu kombinieren. Ich denke wäre auch in Ordnung, aber um sicherzugehen, würde ich gehen wenn ich reltol auf seinem Standardwert belasse.)
Feuerstelle
Sredni Vashtar
jonk
jonk
Sredni Vashtar
jonk
Sredni Vashtar
jonk
MicroservicesOnDDD
jonk