Transistoroszillator-Simulationskonvergenz

Für die Schaltung in der Abbildung (sowohl in Altium Designer 16 als auch in Proteus 8) hatte ich durch die Verwendung des Standard-NPN-Spice-Modells wirklich Schwierigkeiten, die Simulation zu konvergieren.

Ich habe Trapezoid und Gear von Ordnung 2 bis 6 ausprobiert und versucht, den GMIN-Parameter zu erhöhen, Toleranzen, minimalen Zeitschritt usw. zu ändern. Ich war nicht in der Lage, diesen Oszillator mit dem Standard-NPN-Spice-Modell zum Laufen zu bringen.

Beim Wechsel des NPN in ein 2N3904-Modell konvergierte die Lösung ohne Probleme in beiden Softwares.

Meine Frage ist, warum dies passiert? Welche Modellkomponenten befinden sich im 2N3904, die nicht im NPN-Modell enthalten sind? ... Ich dachte, beide Modelle wären gleich (derselbe Gummel und Poon), nur die Werte der Parameter geändert. Oder sind die Parameterwerte im 2N3904 "sanfter", um den Oszillator laufen zu lassen?

Vielen Dank im Voraus.

Geben Sie hier die Bildbeschreibung ein

Dein R 1 Und R 3 sind zu klein für die Vorgabe β = 100 Wert. Erhöhen Sie also ihre Werte. Ich würde empfehlen 2.7 k Ω , anfangen. Die Simulation kann dennoch langsam/schwierig sein, da die Speicherzeiten des NPN standardmäßig auf Null gesetzt sind. Aber es kann zumindest etwas besser "funktionieren", wenn Sie darauf warten. Als Sie zu einem 2N3904 gewechselt sind, ist Ihr β wurde viel besser als der Standardwert. Deshalb hat es funktioniert. Aber wenn Sie wirklich wollen, dass es besser funktioniert, dann setzen Sie TF oder TR oder beide auf einen Wert ungleich Null, in der Größenordnung von einigen Dutzend Nanosekunden oder so. Sollte dann funktionieren.
Der T F Und T R Werte sind ein tolles Detail!. Sie werden beide als Null in gesetzt N P N , und herum 300 P Und 230 N im 2 N 3904 . Mit diesen Werten läuft es unvollkommen, aber wenn man es auf Dutzende reduziert, läuft es reibungslos. Widerstände mussten nicht geändert werden. So schlecht, dass ich Ihren Kommentar nicht als Antwort markieren kann!
Normalerweise bin ich bei solchen Sachen hin- und hergerissen. Wenn ich eine Antwort schreibe, sollte sie weitgehend informativ sein. Ich war nur daran interessiert, Ihnen schnell zu helfen. Aber andere hier beschweren sich, dass, wenn es keine Antwort gibt, die Frage möglicherweise irgendwann in der Zukunft entfernt wird und dann nicht verfügbar ist. Ich bin mir bei all diesen Argumenten nicht sicher. Ich versuche einfach zu helfen. Aber ich werde eine kurze Antwort für Sie aufschreiben.
hyprfrcb Ich sehe, Sie haben die gute Antwort von @jonk akzeptiert. Ich dachte, ich würde einige wichtige Designregeln hinzufügen, die Sie sich merken sollten. Da diese bis zur Sättigung gepulst betrieben werden, reduziert hFE Vce auf Vce(sat), wo sie meistens mit Ic/Ib=10 bewertet werden, was bedeutet, dass hFE bei Sättigung auf 10 oder etwa 10 % seines maximalen linearen Werts abfällt. Wenn sowohl Kollektor- als auch Basiswiderstände von derselben Versorgung (5 V) stammen, wählen Sie immer Rb/Rc = 10 bis 20. Das Ändern von Rb von 100 k auf 10 k ~ 20 k funktioniert also immer, aber f steigt mit einem niedrigeren Rb. Das andere ist, wenn Sie es mit mehr als -5 V an Vbe versuchen, benötigt es eine Diode zum Klemmen
Ich versuche diesen Vorschlag, aber für diesen speziellen Fall stabilisiert dies das System, dh keine Schwingungen.

Antworten (1)

NPN verwendet einen Standardparameter BF=100. Ihre Schaltung zeigt einen Kollektorwiderstand, der 100-mal kleiner ist als Ihr Basiswiderstand, und er muss die nächste Stufe durch einen Kondensator treiben. Diese Dinge deuten stark darauf hin, dass Ihr Kollektorwiderstand einen zu niedrigen Wert hat (oder dass Ihr Basiswiderstand niedriger sein sollte). Wenn Sie den Standardwert BF = 100 mit dem NPN-Modell nicht ändern, würde ich empfehlen, entweder zu erhöhen die Kollektorwiderstandswerte oder aber die Basiswiderstandswerte verringern. Oder einfach erhöhen β durch Setzen von BF=200 oder so.

Der andere Aspekt ist die Ladungsspeicherung innerhalb des BJT. Die beiden Parameter, die ich ändern möchte, wären entweder TF oder TR oder beides. TF wird aus der Einheitsverstärkungsbandbreite des BJT berechnet, und TR wird aus der Sättigungszeitkonstante berechnet. Im NPN-Modell sind diese beiden Werte auf 0 gesetzt, was überhaupt nicht realistisch ist und in einer Schaltung wie dieser Probleme verursachen wird.

TF ist in einem echten BJT nicht wirklich konstant, aber die einfacheren Modelle gehen davon aus, dass dies der Fall ist. (In Wirklichkeit variiert es mit dem Kollektorstrom.) Es wird verwendet, um die überschüssige Ladung zu modellieren, die im BJT gespeichert ist, wenn sein Emitter-Basis-Übergang in Vorwärtsrichtung vorgespannt ist, und wird verwendet, um die Emitterdiffusionskapazität des BJT zu berechnen. (Sie können den Wert mit einem Netzteil, einer kleinen Signalquelle und einem Oszilloskop ermitteln.) Wenn Sie keine Ahnung haben, verwenden Sie einfach TF=300p. Bei RF BJTs wird es jedoch kleiner sein.

TR ist komplizierter zu messen und modelliert die überschüssige Ladung, die im BJT gespeichert ist, wenn sein Kollektor-Basis-Übergang in Vorwärtsrichtung vorgespannt ist. Es berechnet die Kollektordiffusionskapazität des BJT. Wenn Sie keine Ahnung über den Wert haben, verwenden Sie einfach TR=20n.


Also würde ich wahrscheinlich nur das NPN-Modell akzeptieren, aber die Dinge so einrichten:

.model MYNPN ako:NPN NPN(TR=20n TF=300p BF=200)

Oder etwas ähnliches. Vielleicht kommst du mit einem niedrigeren BF davon. Aber angesichts Ihrer Widerstandswerte würde ich der Versuchung widerstehen und bei einem höheren Wert für BF als dem Standard bleiben.

Den Widerstand habe ich schon überprüft. Das Belassen von 1k ist in der Tat problematisch, und das Erhöhen verbesserte auch die Schaltung. Außerdem ist mir aufgefallen, dass ich die Basis eines der Transistoren mit einem großen Widerstand auf Masse legen sollte. Ich nehme an, das dient nur zum Verweisen auf die Werte. Danke.
@hyprfrcb Ich hoffte, es hat ein wenig geholfen. Da TR und TF beide Null sind, bleibt Spice bei etwas hängen, das als Gerät "unendlich schnell aussieht", und dies kann die Lösung ziemlich schwierig machen. Dieses Problem und das BF-Problem waren jedoch die einzigen, die meiner Meinung nach angepasst werden mussten. Schön, dass es geholfen hat.
Mir wurde klar, dass die Proteus-Sonden die Konvergenz zerstören. Ich werde später eine angemessene Antwort darauf vorbereiten.
@hyprfrcb Ich wusste nichts über die Sonden in Proteus. Laden sie die Schaltung herunter?
Ich weiß es noch nicht genau ... Ich habe all diese Stunden damit verbracht, dieselbe Strecke zu fahren, und manchmal haben sie zufällig keine guten Ergebnisse erzielt. Sobald ich eine klare Vorstellung habe, werde ich meine Ergebnisse veröffentlichen.
Das definitiv beste Ergebnis ist die Einstellung der T F Und T R Parameter auf Werte ungleich Null. Pulldown hinzufügen 1   M e G Widerstand (zB der Q 1 Basis) reduzieren den Einschwingvorgang vor den stationären Schwingungen. Erhöhung der R C / R B Verhältnis > 10 stabilisiert die Schaltung und zerstört die Schwingungen.
@hyprfrcb Das allumfassende Problem bei diesem Design ist die Notwendigkeit der Festlegung v E oberirdisch, um signifikante Schwankungen des Basisstroms während der Oszillation zu minimieren. Das Fehlen einer mittleren Thevenin-Spannung für die Basis wirkt auch gegen die Reduzierung der Basisstromvariation