Von der Messung zum eigenen Berechnungsverfahren
Aus selbst gemessenen Kennlinien werden selbst ermittelte Parameter, und mit diesen Parametern rechnet ein selbst geschriebener Löser eine ganze Schaltung durch — Arbeitspunkt, Kleinsignalverhalten, Verstärkung, Zeitverlauf. Das ist dasselbe, was ein SPICE-Programm tut, nur ist hier jeder Schritt sichtbar und von Hand nachrechenbar.
Der Weg, Station für Station
.MODEL-Karte geschrieben, mit der Herkunft jeder
einzelnen Zahl.
→ Minimaler DatensatzDer Zielpunkt dieses Bogens
Am Ende steht der Reiter Netzliste und Löser. Dort wird die Schaltung nicht mehr als von Hand aufgestelltes Gleichungssystem gelöst, sondern als Netzliste durch das eigene Verfahren — mit den selbst ermittelten Parametern, einmal nur der Arbeitspunkt und einmal die komplette Verstärkerstufe mit Kollektor-, Last- und Basiswiderstand, Koppelkondensatoren und Signalquelle. Die Signalverstärkung wird dort auf zwei Wegen gerechnet, und der Unterschied zwischen beiden ist die Aussage.
Die Manuskripte sind der Hintergrund und der Lernapparat
Unter jedem Reiter steht das zugehörige Teilmanuskript des Verfassers, vollständig und unverändert. Dort stehen die Herleitungen, die Zahlen und die Begründungen; sie sind nicht Anhang und nicht Beiwerk, sondern der Lehrtext, zu dem alles Übrige die Probe ist. Der rechnende Teil darüber ist Zeile für Zeile aus einem seiner Python-Programme übertragen — dieselben Formeln, dieselben Konstanten, dieselbe Reihenfolge der Schritte, dieselben Startwerte, dieselben Abbruchbedingungen. Über jeder Rechnung steht, aus welchem Programm und aus welchen Zeilen sie stammt, und daneben die Zahl, die dieses Programm ausgibt. Wer lernen will, liest den Text; wer prüfen will, dreht an den Schiebern.
Eine Ausnahme gibt es: der Reiter „Netzliste und Löser“ trägt kein Teilmanuskript. Er ist unser Teil und steht neben dem Kapitel 9, nicht darin — das ist dort ausdrücklich gesagt.
Worauf das aufbaut
Das Verfahren, mit dem eine Schaltung aus nichtlinearen Bauteilen überhaupt gerechnet wird — Knotenpotentialverfahren, Newton-Raphson und Euler —, ist in einer eigenen Arbeit hergeleitet: Schaltungssimulation von nichtlinearen Differentialgleichungssystemen. Dort steht, warum aus den Bauteilgleichungen ein Gleichungssystem Y·u = i wird, wie die Ableitung eines nichtlinearen Bauteils als Leitwert in diese Matrix gestempelt wird und wie der Zeitschritt dazukommt. Diese Arbeit hier setzt dort an, wo das Verfahren steht, und füllt es mit einem gemessenen Transistor. Der Transistor ist dort seit Teil XII auch als Bauteil eingebaut — „Der Transistor als Stempel: Gummel-Poon im Knotenpotentialverfahren“, Abschnitte 47 bis 52: die vier Tangenten von Hand, der Stempel, die Abnahmen, und ein eigener Abschnitt darüber, was das Bauteil von SPICE nachbildet und was nicht. Der Arbeitspunkt, den es rechnet, stimmt mit dem Programm aus dem Reiter „Arbeitspunkt Newton“ auf mindestens sechs gültige Stellen überein — zwei Wege, die nichts voneinander wissen.
Der Weg in einem Satz
Messgerät → Kennlinienfeld → Parametersatz → eigener Löser → Arbeitspunkt → Kleinsignal → Vierpol → Verstärker, und an jeder Stelle die Frage, wie genau die Zahl eigentlich ist.
Die Reiter der Reihe nach
10_diodenkennlinie.md · Quelle: Manuskript_Diodenkennlinie_1.docxManuskript zur Auswertung und Modellierung
der Diodenkennlinie mittels Shockley-Gleichung,
Newton-Raphson- und Bisektionsverfahren
Begleitendes Manuskript zum Python-Programm „Optimierung_AP_1.py“
1. Einleitung und Zielsetzung
Das vorliegende Manuskript beschreibt ausführlich die physikalischen Grundlagen, mathematischen Herleitungen und numerischen Verfahren, die dem Python-Programm „Optimierung_AP_1.py“ zugrunde liegen. Ziel des Programms ist es, gemessene Strom-Spannungs-Kennlinien einer Diode mit dem Shockley-Modell zu approximieren und anschließend für eine gegebene Schaltung (Diode in Reihe mit einem Vorwiderstand an einer Versorgungsspannung) den Arbeitspunkt zu bestimmen. Zusätzlich kann das Programm denjenigen Vorwiderstand R bestimmen, der zu einem gewünschten Diodenstrom führt.
Dazu werden drei numerische bzw. statistische Verfahren eingesetzt, die im Folgenden vollständig hergeleitet werden:
- Nichtlineare Ausgleichsrechnung (curve_fit, Methode der kleinsten Quadrate) zur Bestimmung der Modellparameter Is und n,
- das Newton-Raphson-Verfahren zur Lösung der transzendenten Maschengleichung (Bestimmung des Arbeitspunktes Vd),
- das Bisektionsverfahren zur Bestimmung des Widerstands R für einen vorgegebenen Diodenstrom.
2. Physikalisches Modell der Diode
2.1 Die Shockley-Gleichung
Das elektrische Verhalten einer idealen pn-Diode wird durch die nach William Shockley benannte Diodengleichung beschrieben. Sie verknüpft den durch die Diode fließenden Strom Id mit der an ihr anliegenden Spannung Vd:
I~d~ = I~S~ · [ exp( V~d~ / (n · V~T~) ) − 1 ] (2.1)
Hierbei bedeuten:
- Id : Diodenstrom durch das Bauteil [A]
- Vd : Spannung über der Diode [V]
- IS : Sättigungssperrstrom (Reverse Saturation Current), ein für jede Diode charakteristischer, sehr kleiner Parameter (typ. 10⁻¹⁰-- 10⁻¹² A)
- n : Emissionskoeffizient (Idealitätsfaktor), dimensionslos, üblicherweise zwischen 1 (ideale Diode) und 2 (reale Diode mit Rekombinationseffekten)
- VT : Temperaturspannung [V]
2.2 Herleitung der Diodengleichung aus der pn-Übergangstheorie
Die Shockley-Gleichung folgt aus der Lösung der stationären Minoritätsträger-Diffusionsgleichung in einem pn-Übergang. An den Rändern der Raumladungszone gilt im thermodynamischen Gleichgewicht ohne äußere Spannung das Massenwirkungsgesetz für die Ladungsträgerkonzentrationen:
n~0~ · p~0~ = n~i~^2^ (2.2)
Wird eine äußere Spannung Vd angelegt, so verschiebt sich das Ferminiveau der Minoritätsträger am Rand der Raumladungszone gemäß der Boltzmann-Statistik. Für die Minoritätsträgerkonzentration der Löcher auf der n-Seite (pn) am Rand der Raumladungszone gilt dann:
p~n~(0) = p~n0~ · exp( V~d~ / V~T~ ) (2.3)
Setzt man dies in die stationäre Diffusionsgleichung für Minoritätsträger ein und löst die resultierende lineare Differentialgleichung zweiter Ordnung unter den Randbedingungen eines langen bzw. kurzen Diodengebiets, so erhält man für die Diffusionsstromdichte exponentiell abklingende Trägerprofile. Die Integration der Diffusionsströme über die Querschnittsfläche A der Diode liefert den Gesamtstrom:
I~d~ = q·A· ( D~p~·p~n0~/L~p~ + D~n~·n~p0~/L~n~ ) · [ exp(V~d~/V~T~) − 1 ] (2.4)
Der gesamte, von Material- und Geometriegrößen (Diffusionskonstanten Dp, Dn, Diffusionslängen Lp, Ln, Gleichgewichts-Minoritätsträgerdichten pn0, np0, Elementarladung q und Querschnittsfläche A) abhängige Vorfaktor wird als Sättigungssperrstrom IS zusammengefasst:
I~S~ = q·A· ( D~p~·p~n0~/L~p~ + D~n~·n~p0~/L~n~ ) (2.5)
Damit ergibt sich unmittelbar die ideale Diodengleichung Id = IS·[exp(Vd/VT) − 1]. Da reale Dioden zusätzliche Effekte wie Rekombination in der Raumladungszone, Hochstrominjektion und Serienwiderstände im Halbleitermaterial aufweisen, wird empirisch der Idealitätsfaktor n eingeführt, der die effektive Steigung der Kennlinie im halblogarithmischen Diagramm korrigiert. Dies führt auf die in (2.1) verwendete, in der Praxis übliche Form der Shockley-Gleichung.
2.3 Die Temperaturspannung VT
Die Temperaturspannung ergibt sich aus der Boltzmann-Statistik der Ladungsträger zu:
V~T~ = (k·T) / q (2.6)
- k : Boltzmann-Konstante (1,380649 × 10⁻²³ J/K)
- T : absolute Temperatur [K]
- q : Elementarladung (1,602176634 × 10⁻¹⁹ C)
Bei Raumtemperatur (T ≈ 300 K) ergibt sich VT ≈ 25,85 mV, was exakt dem im Programm fest hinterlegten Wert Vt = 0,02585 V entspricht.
3. Einlesen der Messdaten und nichtlineare Kurvenanpassung
3.1 Datenimport
Das Programm liest die Messdatei „Diode.txt“ zeilenweise ein. Ab der Kopfzeile, die mit „Point“ beginnt, werden je Zeile die Diodenspannung (zweite Spalte) und der Diodenstrom in mA (dritte Spalte) extrahiert. Dezimalkommata werden in Dezimalpunkte umgewandelt, um eine korrekte Konvertierung in Gleitkommazahlen (float) zu gewährleisten. Alle gültigen Messpunkte werden in den Feldern spannung_alle und strom_alle gespeichert; für den eigentlichen Fit werden nur Punkte mit positivem Strom (i_ma \> 0) verwendet, da der Logarithmus bzw. die Exponentialfunktion im Sperrbereich (negative oder verschwindende Ströme) numerisch instabile bzw. physikalisch wenig aussagekräftige Fitresultate liefern würde.
3.2 Methode der kleinsten Quadrate (Least-Squares-Fit)
Die Funktion curve_fit aus scipy.optimize bestimmt die Parameter IS und n so, dass die Summe der quadratischen Abweichungen zwischen den gemessenen Stromwerten Id,i (Messpunkt i) und dem Modellwert nach Shockley-Gleichung minimal wird:
S(I~S~, n) = Σ~i=1~^N^ [ I~d,i~ − f(V~d,i~, I~S~, n) ]^2^ (3.1)
mit der Modellfunktion f(Vd, IS, n) = IS·[exp(Vd/(n·VT)) − 1]. Gesucht ist also:
(I~S~, n) = argmin~(IS,n)~ S(I~S~, n) (3.2)
Da das Modell nichtlinear in den Parametern ist (IS und n erscheinen multiplikativ bzw. im Exponenten), kann das Minimum nicht analytisch in geschlossener Form bestimmt werden. curve_fit verwendet daher iterativ den Levenberg-Marquardt-Algorithmus, eine Kombination aus Gauß-Newton-Verfahren und Gradientenabstieg. Ausgehend von einem Startwert p0 = [IS = 10⁻¹² A, n = 2] wird in jedem Iterationsschritt k das lineare Gleichungssystem
(J^T^J + λ·diag(J^T^J)) · Δp~k~ = J^T^·r~k~ (3.3)
gelöst, wobei J die Jacobi-Matrix der partiellen Ableitungen des Residuenvektors r nach den Parametern (IS, n) ist und λ ein Dämpfungsparameter, der zwischen Gauß-Newton-Schritt (λ klein) und Gradientenabstieg (λ groß) interpoliert. Der Parametervektor wird gemäß
p~k+1~ = p~k~ + Δp~k~ (3.4)
aktualisiert, bis die Änderung der Residuensumme einen vorgegebenen Toleranzwert unterschreitet (Konvergenz) oder die maximale Anzahl von Funktionsauswertungen (maxfev = 10000) erreicht ist. Das Ergebnis sind die im Programm ausgegebenen Parameter IS und n, die anschließend für alle weiteren Berechnungen (Arbeitspunktbestimmung, Bisektion) als feste Diodenparameter verwendet werden.
4. Schaltungsmodell und Maschengleichung
Im Hauptmenü betrachtet das Programm eine einfache Reihenschaltung aus einer Versorgungsspannungsquelle Uges, einem ohmschen Vorwiderstand R und der Diode. Nach der Kirchhoffschen Maschenregel gilt für diesen Stromkreis, dass die Summe aller Teilspannungen der Quellenspannung entspricht:
U~ges~ = I·R + V~d~ (4.1)
Da im stationären Fall (Gleichstrom) derselbe Strom I durch Widerstand und Diode fließt (Reihenschaltung), gilt I = Id, sodass mit der Shockley-Gleichung (2.1) eine implizite, transzendente Gleichung für die unbekannte Diodenspannung Vd entsteht:
Diese Gleichung lässt sich nicht nach Vd auflösen, da Vd sowohl linear als auch im Exponenten auftritt. Sie muss daher numerisch gelöst werden -- im Programm geschieht dies mit dem Newton-Raphson-Verfahren (Funktion solve_for_Vd).
Geometrisch entspricht die Lösung von (4.2) dem Schnittpunkt der Diodenkennlinie Id(Vd) mit der sogenannten Lastgeraden (auch Widerstandsgerade genannt), die durch Umstellen von (4.1) nach dem Strom entsteht:
I~R~(V~d~) = (U~ges~ − V~d~) / R (4.3)
Dieser Schnittpunkt wird als Arbeitspunkt der Schaltung bezeichnet und im Diagramm des Programms als blauer Punkt markiert.
5. Das Newton-Raphson-Verfahren
5.1 Allgemeine Herleitung
Das Newton-Raphson-Verfahren dient der iterativen Bestimmung einer Nullstelle x einer differenzierbaren Funktion f(x), also einer Lösung von f(x) = 0. Die Herleitung erfolgt über die Taylorreihenentwicklung von f um einen Näherungswert xk:
f(x) ≈ f(x~k~) + f′(x~k~)·(x − x~k~) + O((x−x~k~)^2^) (5.1)
Bricht man die Reihe nach dem linearen Glied ab (lineare Approximation der Funktion durch ihre Tangente im Punkt xk) und fordert, dass diese lineare Näherung an der Stelle x = xk+1 verschwindet, also f(xk) + f′(xk)·(xk+1 − xk) = 0, so folgt nach Umstellen die Newton-Iterationsvorschrift:
x~k+1~ = x~k~ − f(x~k~) / f′(x~k~) (5.2)
Geometrisch bedeutet dies: Man legt im aktuellen Näherungspunkt die Tangente an die Funktion und verwendet deren Nullstelle als neue, verbesserte Näherung. Bei hinreichend glatten Funktionen und einem Startwert nahe der gesuchten Nullstelle konvergiert das Verfahren quadratisch, d.h. die Anzahl der korrekten Nachkommastellen verdoppelt sich (näherungsweise) mit jedem Iterationsschritt.
5.2 Anwendung auf die Diodengleichung
Im Programm wird das Newton-Raphson-Verfahren auf die Maschengleichung (4.2) angewendet, wobei die gesuchte Variable die Diodenspannung Vd ist:
f(V~d~) = R·I~S~·[exp(V~d~/(n·V~T~)) − 1] + V~d~ − U~ges~ (5.3)
Die für das Verfahren benötigte Ableitung f′(Vd) nach Vd ergibt sich durch Anwendung der Kettenregel auf den Exponentialterm:
f′(V~d~) = d/dV~d~ { R·I~S~·exp(V~d~/(n·V~T~)) } + 1 (5.4)
f′(V~d~) = (R·I~S~)/(n·V~T~)·exp(V~d~/(n·V~T~)) + 1 (5.5)
Eingesetzt in (5.2) ergibt sich die im Quellcode implementierte Iterationsvorschrift:
V~d,k+1~ = V~d,k~ − [ R·I~S~·(exp(V~d,k~/(n·V~T~)) − 1) + V~d,k~ − U~ges~ ] / [ (R·I~S~)/(n·V~T~)·exp(V~d,k~/(n·V~T~)) + 1 ] (5.6)
Diese Vorschrift entspricht exakt den Zeilen f = R·(Is·(exp(Vd/(n·Vt))−1)) + Vd − Uges, df = R·Is·exp(Vd/(n·Vt))/(n·Vt) + 1 und Vd_new = Vd − f/df im Quellcode der Funktion solve_for_Vd.
Als Startwert wird Vd = 0 V verwendet. Das Verfahren bricht ab, sobald die Änderung zwischen zwei aufeinanderfolgenden Iterationen kleiner als die Toleranz (1×10⁻⁶ V) ist, spätestens jedoch nach 1000 Iterationen (max_iterations). Da f′(Vd) wegen des stets positiven Exponentialterms und des additiven Terms +1 für alle reellen Vd strikt positiv und die Funktion f monoton steigend und konvex ist, konvergiert das Verfahren für diesen Anwendungsfall robust gegen die eindeutige Lösung.
6. Das Bisektionsverfahren
6.1 Allgemeine Herleitung
Das Bisektionsverfahren (Intervallhalbierungsverfahren) basiert auf dem Zwischenwertsatz für stetige Funktionen: Ist g(x) auf einem Intervall [a, b] stetig und besitzen g(a) und g(b) unterschiedliche Vorzeichen,
g(a)·g(b) \< 0 (6.1)
so existiert nach dem Zwischenwertsatz mindestens eine Nullstelle x ∈ [a, b] mit g(x) = 0. Das Verfahren halbiert das Intervall iterativ: Man berechnet den Mittelpunkt
x~m~ = (a + b) / 2 (6.2)
und prüft das Vorzeichen von g(xm). Hat g(xm) dasselbe Vorzeichen wie g(a), liegt die Nullstelle im rechten Teilintervall, und man setzt a ∶= xm; andernfalls liegt sie im linken Teilintervall, und man setzt b ∶= xm. Dieses Vorgehen wird wiederholt, bis die Intervallbreite (b − a) eine vorgegebene Toleranz unterschreitet. Da sich die Intervallbreite in jedem Schritt halbiert,
(b~k~ − a~k~) = (b~0~ − a~0~) / 2^k^ (6.3)
ist die Konvergenz linear, aber unbedingt garantiert, solange die Vorzeichenbedingung (6.1) zu Beginn erfüllt ist -- im Gegensatz zum Newton-Verfahren, das bei ungünstigen Startwerten divergieren kann.
6.2 Anwendung zur Bestimmung des Widerstands R
Im Programm wird das Bisektionsverfahren in der Funktion finde_R_bisektion verwendet, um zu einem gewünschten Diodenstrom Id,soll denjenigen Widerstand R zu finden, der diesen Strom im Arbeitspunkt erzeugt. Hierzu wird die Hilfsfunktion
g(R) = I~d~(V~d~(R)) − I~d,soll~ (6.4)
betrachtet, wobei Vd(R) für jeden Widerstandswert R durch Lösen der Maschengleichung (4.2) mittels Newton-Raphson-Verfahren (Abschnitt 5) bestimmt wird und Id(Vd(R)) anschließend mit der Shockley-Gleichung (2.1) berechnet wird. Da bei festem Uges der Diodenstrom mit wachsendem Vorwiderstand R streng monoton fällt (ein größerer Widerstand reduziert den Spannungsabfall an der Diode und damit exponentiell den Diodenstrom), ist g(R) eine streng monoton fallende Funktion von R, und es existiert genau ein Widerstand R, für den g(R) = 0 gilt.
Das Suchintervall wird im Programm mit Rmin = 1 Ω und Rmax = 1 000 000 Ω initialisiert. In jedem Iterationsschritt wird
R~mid~ = (R~min~ + R~max~) / 2 (6.5)
berechnet und der zugehörige Diodenstrom Id,mid bestimmt. Es gilt dann die Fallunterscheidung:
- Ist Id,mid \> Id,soll (Widerstand zu klein, Strom zu hoch), so wird Rmin := Rmid gesetzt (rechte Hälfte des Intervalls wird beibehalten),
- andernfalls (Id,mid ≤ Id,soll) wird Rmax := Rmid gesetzt (linke Hälfte wird beibehalten).
Diese Schleife wird fortgesetzt, bis (Rmax − Rmin) kleiner als die Toleranz von 1×10⁻⁶ Ω ist; als Ergebnis wird der Mittelwert (Rmin + Rmax)/2 zurückgegeben. Anschließend wird im Hauptprogramm mit diesem R erneut der Arbeitspunkt (Vd, Id) über das Newton-Raphson-Verfahren bestimmt und zusammen mit der Last- und Diodenkennlinie sowie den Messpunkten grafisch dargestellt.
7. Gesamter Programmablauf
Zusammenfassend lässt sich der Ablauf des Programms in folgende Schritte gliedern:
- Einlesen der Messdaten aus Diode.txt und Trennung in Rohdaten (alle Punkte) und Fitdaten (nur positive Ströme).
- Nichtlineare Ausgleichsrechnung (Levenberg-Marquardt, Abschnitt 3.2) zur Bestimmung der Diodenparameter IS und n aus den Messdaten gemäß Shockley-Gleichung.
- Grafische Darstellung der Approximation (Messpunkte als Kreuze, Fitkurve als rote Linie).
- Interaktives Hauptmenü mit zwei Modi:
- Modus 1 -- Arbeitspunktbestimmung: Eingabe von R und Uges; Lösung der Maschengleichung (4.2) mittels Newton-Raphson-Verfahren (Abschnitt 5) liefert den Arbeitspunkt (Vd, Id).
- Modus 2 -- Widerstandssuche: Eingabe von Uges und gewünschtem Diodenstrom Id,soll; Bisektionsverfahren (Abschnitt 6) liefert den passenden Widerstand R, anschließend erneute Arbeitspunktbestimmung über Newton-Raphson.
- Grafische Ausgabe: Diodenkennlinie Id(Vd) nach Shockley-Gleichung, Lastgerade IR(Vd) nach Gleichung (4.3), eingezeichneter Arbeitspunkt sowie die ursprünglichen Messpunkte zum visuellen Abgleich von Modell und Messung.
8. Zusammenfassung
Das Programm verbindet drei klassische numerische Verfahren der angewandten Mathematik mit einem physikalischen Halbleitermodell: Die nichtlineare Ausgleichsrechnung (Levenberg-Marquardt) extrahiert aus Messdaten die Diodenparameter IS und n. Das Newton-Raphson-Verfahren löst die durch die Kirchhoffsche Maschenregel entstehende transzendente Gleichung für die Diodenspannung im Arbeitspunkt und nutzt dabei die quadratische Konvergenz in der Nähe der Lösung aus. Das Bisektionsverfahren schließlich invertiert die (im relevanten Bereich) monotone Beziehung zwischen Vorwiderstand und Diodenstrom, um gezielt einen gewünschten Arbeitspunkt einzustellen, und garantiert dabei -- anders als das Newton-Verfahren -- globale Konvergenz innerhalb des gewählten Suchintervalls. Durch das Zusammenspiel dieser Verfahren lässt sich die Diodenschaltung sowohl analytisch verstehen als auch numerisch vollständig und robust auswerten.
Arbeitspunkt der Diode: Newton-Raphson, und die Bisektion auf R
Übertragen aus BUCH/kap08_led_quellen.py, Zeilen 30–49 — das ist die quellentreue Wiedergabe von Optimierung_AP_1.py, dem Programm, das dieses Manuskript beschreibt. Newton-Raphson im Strom (Abschnitt 5.2), Startwert Uges/(R+RS+1), Abbruch bei |ΔI| < 10−7, höchstens 1000 Schritte. Die Bisektion auf R (Abschnitt 6.2) läuft im Intervall 1 Ω … 1 000 000 Ω. Den Ausgleich selbst rechnet die Seite nicht — dafür benutzt sein Programm scipy.optimize.curve_fit (Levenberg-Marquardt); die Seite arbeitet mit dem Ergebnis dieses Ausgleichs weiter.
Die Newton-Schritte im Strom
Kennlinie und Lastgerade
Ergebnis, und was sein Programm ausgibt
Bisektion auf R
11_led.md · Quelle: LED_Manuskript_v2.docxVORLESUNGSMANUSKRIPT
LED-Kennlinien---Erweiterte Shockley-Gleichung
Arbeitspunktberechnung mit dem Newton-Raphson-Verfahren
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Lernziele: Die Shockley-Gleichung herleiten und ihre Grenzen kennen --- die Erweiterung für reale LEDs (insbes. blaue GaN-LEDs) physikalisch begründen --- verstehen, warum V(I) statt I(V) gewählt wird und was das für den Newton-Raphson-Ansatz bedeutet.
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 Die ideale Shockley-Gleichung
1.1 Herleitung und Formel
William Shockley leitete 1949 aus dem Drift-Diffusions-Modell des p-n-Übergangs die Strom-Spannungs-Kennlinie ab. Der Strom folgt dem Überschuss an Minoritätsträgern, die durch Diffusion den Übergang passieren:
------------- -------------------------------------------------- ----------------------------- (GL. 1) I_D = I_S · [ exp( V_D / (n·V_T) ) − 1 ] Ideale Shockley-Gleichung
V_T = k·T / q ≈ 25,85 mV bei 300 K Temperaturspannung ------------- -------------------------------------------------- -----------------------------
-------------------- -------------------------------------------------------------------------------------------------------------- Symbol Bedeutung und typischer Wert (blaue GaN-LED)
I_S Sättigungssperrstrom. Thermisch generiert. Für GaN: 10⁻²⁰ ... 10⁻¹⁶ A (wegen großer Bandlücke extrem klein).
n Idealitätsfaktor. n=1: reine Diffusion (ideal). n=2: RLZ-Rekombination dominiert. Bei GaN: 1,8 ... 3,5.
V_T Temperaturspannung k·T/q. Bei 300 K = 25,85 mV. Steigt linear mit der absoluten Temperatur. -------------------- --------------------------------------------------------------------------------------------------------------
Für V_D ≫ V_T vereinfacht sich die Gleichung zur reinen Exponentialfunktion. Im halblogarithmischen I-V-Diagramm ergibt das eine Gerade mit der Steigung 1/(n·V_T·ln 10) ≈ 1 Dekade / (n · 59,5 mV). Diese „60-mV-Regel“ ist eine wichtige Faustregel.
1.2 Wo das Modell versagt --- und warum
Die ideale Gleichung setzt voraus: keine Rekombination in der Raumladungszone, keine ohmschen Bahnwiderstände, reine Minoritätssträgerinjektion. Bei realen LEDs sind alle drei Annahmen verletzt:
--------------------- -------------------------------------------------------------------------------- ------------------------------- Effekt Physikalische Ursache Konsequenz im Modell
n \> 1 Strahlende Rekombination + SRH-Rekombination in der RLZ (bei GaN: Auger-Terme) n als freier Parameter (1--5)
Kennlinie knickt ab Ohmscher Spannungsabfall an Bahnwiderständen, ITO-Elektrode, Bonddrähten Serienwiderstand R_S addieren
I_S extrem klein Große Bandlücke von GaN (3,4 eV) → I_S ∼ exp(−E_g/kT) log₁₀(I_S) als Fitparameter --------------------- -------------------------------------------------------------------------------- -------------------------------
2 Die erweiterte Shockley-Gleichung
2.1 Ersatzschaltbild und Gleichung
Das erweiterte Modell ergänzt die ideale Diode durch einen Serienwiderstand R_S, der alle ohmschen Verluste zwischen Klemme und p-n-Übergang zusammenfasst. Die Klemmenspannung setzt sich additiv zusammen:
------------- -------------------------------------------------- --------------------------- (GL. 2) V_D = n·V_T·ln( I_D/I_S + 1 ) + I_D·R_S Erweiterte Shockley-Gl.
└──────────────────────┴──────────────────
ideale Diode (Shockley) Serienanteil ------------- -------------------------------------------------- ---------------------------
Der Serienterm I_D·R_S ist bei kleinen Strömen vernachlässigbar, wächst aber linear und dominiert bei hohen Strömen. Das erklärt das charakteristische „Abknicken“ der LED-Kennlinie im linearen I-V-Diagramm.
3 Warum V(I) statt I(V)? --- Eine entscheidende Modellwahl
3.1 Die zwei Formulierungen im Vergleich
GL. 2 ist explizit in V --- gegeben I berechnen wir V direkt. Die inverse Formulierung I(V) ist dagegen implizit: I taucht sowohl linear als auch im Argument des Logarithmus auf und lässt sich nicht analytisch auflösen.
------------ ------------------------------------------------------ ---------------------------------------- V(I) ✔ V_D = n·V_T·ln(I_D/I_S + 1) + I_D·R_S explizit, direkt berechenbar
I(V) ✘ I_D = I_S·[ exp((V_D − I_D·R_S)/(n·V_T)) − 1 ] implizit, I steht auf beiden Seiten! ------------ ------------------------------------------------------ ----------------------------------------
Die implizite Form I(V) existiert zwar (mit der Lambert-W-Funktion lösbar), ist aber für einen Kurvenfit ungeeignet. Warum?
3.2 Numerische Begründung für die V(I)-Wahl
scipy.curve_fit minimiert die Summe der quadrierten Abweichungen in der abhängigen Variable:
--------------- ---------------------------------------------------------- ---------------------- V(I)-Fit: min Σ [ V_gemessen(i) − V_modell(I_gemessen(i)) ]² Residuen in Volt
I(V)-Fit: min Σ [ I_gemessen(i) − I_modell(V_gemessen(i)) ]² Residuen in Ampere --------------- ---------------------------------------------------------- ----------------------
| Problem beim I(V)-Fit: Der Strom I_D variiert über 5--6 Größenordnungen (0,001 mA bis 100 mA). Ein Messpunkt bei 100 mA trägt mit (100 mA)² = 10⁴ zum Fehler bei, ein Punkt bei 0,01 mA nur mit (0,01 mA)² = 10⁻⁸. Der Fit wäre praktisch blind für kleine Ströme. Vorteil beim V(I)-Fit: Die Spannung V_D ändert sich bei der blauen LED nur von ca. 2,5 V bis 3,5 V. Alle Messpunkte tragen in ähnlicher Größenordnung bei. Der Fit ist gleichmäßig gewichtet und numerisch gut konditioniert. |
Zusätzlich bedeutet eine kleine Spannungänderung ΔV bei einer Exponentialfunktion eine sehr große Stromänderung. Der Fehler propagiert asymmetrisch --- beim V(I)-Fit ist diese Asymmetrie unkritisch, beim I(V)-Fit verursacht sie numerische Instabilität.
3.3 Konsequenz: Zwei verschiedene Newton-Raphson-Probleme
Die Wahl der Formulierung bestimmt direkt, wie wir später die Schaltungsgleichung lösen --- und damit den Ansatz für das Newton-Raphson-Verfahren.
------------------- -------------------------------------- ------------------------------------------ Ansatz V(I) ✔ (gewählt) Ansatz I(V) ✘ (Alternative)
Gesucht bei Fit Parameter aus V=f(I) Parameter aus I=f(V, I) --- implizit!
Fit-Residuen Fehler in Volt → gut konditioniert Fehler in Ampere → schlecht gewichtet
Newton f-Funktion f(I_D) = V_D(I_D) + I_D·R − U_ges f(V_D) = I_D(V_D)·R − (U_ges − V_D)
Ableitung f\' analytisch einfach (s. Abschn. 4) zusätzl. implizite Differentiation nötig
Startwert I_D aus Kurzschlussnäherung → robust V_D-Schätzung unsicherer ------------------- -------------------------------------- ------------------------------------------
Im Python-Programm wird konsequent der V(I)-Ansatz gewählt: Das Modell liefert V aus I, der Fit minimiert Spannungsresiduen, und auch das Newton-Raphson-Verfahren formuliert die Fehlerfunktion in I als Unbekannte.
4 Newton-Raphson-Verfahren zur Arbeitspunktberechnung
4.1 Schaltungsgleichung (Maschenregel)
Im Reihenstromkreis (Spannungsquelle U_ges, Vorwiderstand R, LED) liefert die Maschenregel:
------------- -------------------------------------------------- ---------------- (GL. 3) U_ges = V_R + V_D = I_D·R + V_D(I_D) Maschenregel
------------- -------------------------------------------------- ----------------
Einsetzen des V(I)-Modells (GL. 2) ergibt die zu lösende Gleichung. Da V_D(I_D) nichtlinear ist, kann I_D nicht direkt isoliert werden --- wir suchen die Nullstelle der Fehlerfunktion:
------------- ---------------------------------------------------------------- ------------------ (GL. 4) f(I_D) = n·V_T·ln(I_D/I_S + 1) + I_D·(R + R_S) − U_ges = 0 Fehlerfunktion
------------- ---------------------------------------------------------------- ------------------
4.2 Newton-Raphson-Iteration
Das Newton-Raphson-Verfahren approximiert f(I_D) lokal durch die Tangente und bestimmt deren Nullstelle als nächsten Iterationspunkt:
------------- ------------------------------------------------------------- -------------------- (GL. 5) I_D^(k+1) = I_D^(k) − f( I_D^(k) ) / f\'( I_D^(k) ) Newton-Iteration
------------- ------------------------------------------------------------- --------------------
Die Ableitung f\'(I_D) wird analytisch berechnet --- das ist ein wesentlicher Vorteil der V(I)-Formulierung. Beim I(V)-Ansatz wäre eine implizite Differentiation nötig (I taucht auf beiden Seiten auf):
------------- -------------------------------------------------- ------------------------- (GL. 6) f\'(I_D) = n·V_T / (I_D + I_S) + R + R_S Analytische Ableitung
└────────────────┴─────────────────
Dioden-Differenzwiderstand ohmscher Anteil ------------- -------------------------------------------------- -------------------------
Die Ableitung ist immer positiv (alle Terme \> 0), was gewährleistet, dass das Verfahren in die richtige Richtung schreitet --- es gibt keine Nullstelle der Ableitung und damit keine Divergenz für I_D \> 0.
4.3 Startwert und Konvergenz
Als Startwert wird der genäherte Kurzschlussstrom verwendet:
------------- -------------------------------------------------- ---------------------------------------- (GL. 7) I_D^(0) = U_ges / ( R + R_S + 1 ) Startwert (1Ω ≈ Diode bei kleinem I)
------------- -------------------------------------------------- ----------------------------------------
Newton-Raphson konvergiert quadratisch: Die Anzahl korrekter Dezimalstellen verdoppelt sich pro Iteration. Typisch werden 5--10 Iterationen für eine Genauigkeit von 10⁻⁷ A benötigt.
| Numerische Absicherungen im Code: - I_D ≤ 0: Zurücksetzen auf 10⁻¹² A (Logarithmus undefiniert) - |f\'(I_D)| \< 10⁻³⁰: Abbruch (Division durch nahezu Null) - Kein Ergebnis nach 1000 Iterationen: Rückgabe None mit Warnung - Ergebnis I_D ≤ 0: Verworfen (physikalisch unmöglich) |
4.4 Grafische Interpretation: Lastgerade
Die Arbeitsgleichung (GL. 3) lässt sich umschreiben zu V_D = U_ges − I_D·R. Das ist die Gleichung einer Geraden im I-V-Diagramm --- der Lastgeraden:
------------- -------------------------------------------------- -------------- (GL. 8) V_D = U_ges − I_D · R Lastgerade
I_D = 0 ➤ V_D = U_ges (Leerlauf-Punkt)
V_D = 0 ➤ I_D = U_ges/R (Kurzschluss-Punkt) ------------- -------------------------------------------------- --------------
Der Arbeitspunkt ist der Schnittpunkt von LED-Kennlinie V_D(I_D) und Lastgeraden. Das Newton-Raphson-Verfahren findet diesen Schnittpunkt numerisch, indem es iterativ die Differenz beider Kurven --- also f(I_D) --- zu null treibt.
5 Umsetzung im Python-Programm
5.1 Kernfunktionen und ihre Aufgaben
----------------------------------- ---------------------------------------------------------------------------- Funktion / Abschnitt Aufgabe und Bezug zur Theorie
extended_shockley_voltage(I, ...) Berechnet V_D aus I_D nach GL. 2 --- die V(I)-Formulierung
curve_fit(...) Fittet log₁₀(I_S), n, R_S an Messdaten. Minimiert Fehler in V (nicht in I)
solve_for_Id(...) Newton-Raphson: Löst GL. 4 iterativ. Nutzt GL. 5 und GL. 6
Diagramm 1 Gesamtkennlinie: alle Messpunkte + Fit-Kurve aus GL. 2
Diagramm 2 Arbeitspunkt: Kennlinie + Lastgerade (GL. 8) + AP-Markierung ----------------------------------- ----------------------------------------------------------------------------
5.2 Warum log₁₀(I_S) statt I_S direkt fitten?
I_S liegt für blaue GaN-LEDs im Bereich 10⁻²⁰ A. curve_fit würde versuchen, diesen Wert direkt zu optimieren --- bei Parameterschritten im Bereich des Absolutwerts extrem schlechte Konditionierung. log₁₀(I_S) liegt dagegen im handhabbaren Bereich −20 bis −10, und ein Schritt von 0,1 entspricht einer Multiplikation von I_S mit 10⁰ʸ¹ ≈ 1,26 --- physikalisch sinnvoll.
5.3 Korrekturen der verbesserten Version
------------------------------------ -------------------------------------------------- Problem (Original) Korrektur
except: pass --- alle Fehler stumm except ValueError mit Zeilennummer-Ausgabe
Keine Dateiexistenzprüfung os.path.isfile() + sys.exit(1) mit Meldung
I_D = 0 als gültig akzeptiert Prüfung I_D ≤ 0 mit Warnung und continue
Kein sauberer Exit \'q\' beendet Schleife, plt.close() nach Plot
Division durch df ≈ 0 möglich Guard: if abs(df) \< 1e-30 → return None ------------------------------------ --------------------------------------------------
6 Übungsaufgaben
Aufgabe 1 --- Idealitätsfaktor aus Kennlinie
Gegeben: Eine blaue LED zeigt im halblogarithmischen I-V-Diagramm eine Steigung von 1 Dekade / 120 mV. Berechnen Sie n bei T = 25 °C.
-- --------------------------------------------------------------------------------- Hinweis: 1 Dekade / 120 mV ➤ n = 120 mV / (V_T · ln 10) = 120 mV / 59,5 mV = ??
-- ---------------------------------------------------------------------------------
Aufgabe 2 --- Vorwiderstand dimensionieren
Gegeben: U_ges = 5 V, blaue LED mit V_F = 3,1 V bei I_F = 20 mA, R_S = 20 Ω.
Aufgabe: (a) Berechnen Sie R aus der Lastgeraden-Gleichung. (b) Welche Verlustleistung entsteht an R? (c) Welcher Normwert (E12-Reihe) wäre zu wählen?
Aufgabe 3 --- Newton-Raphson per Hand
Gegeben: n = 2,0, I_S = 10⁻²⁰ A, R_S = 20 Ω, R = 100 Ω, U_ges = 5 V, V_T = 25,85 mV.
Aufgabe: Führen Sie 3 Iterationen des Newton-Raphson-Verfahrens durch. Startwert: I_D⁻⁰ = U_ges / (R + R_S + 1) ≈ 41,0 mA. Tragen Sie f(I_D), f\'(I_D) und I_D⁻ⁿ⁺¹ tabellarisch ein.
Aufgabe 4 --- Vergleich V(I) vs. I(V) beim Fit
Aufgabe: Erklären Sie in eigenen Worten, warum ein Fit mit I(V) als abhängiger Variable bei LED-Messdaten zu schlechten Ergebnissen führt. Welche Messpunkte würden übergewichtet, welche vernachlässigt?
7 Zusammenfassung der Kernaussagen
| 1. Die ideale Shockley-Gleichung I_D = I_S·[exp(V_D/n·V_T)−1] gilt für ideale p-n-Übergänge. Bei LEDs versagt sie wegen RLZ-Rekombination (n\>1) und Serienwiderstands-Effekten. 2. Die Erweiterung V_D = n·V_T·ln(I_D/I_S+1) + I_D·R_S beschreibt reale LEDs durch drei Parameter: I_S (Materialabhängig), n (Rekombinationsmechanismus), R_S (parasitäre Widerstände). 3. Die Formulierung V(I) statt I(V) ist eine bewusste numerische Entscheidung: Spannungsresiduen sind gleichmäßig verteilt, der Fit ist gut konditioniert. Beim I(V)-Ansatz dominieren große Ströme den Fehler. 4. Beim Newton-Raphson-Verfahren wirkt sich die V(I)-Wahl direkt aus: Die Fehlerfunktion f(I_D) und ihre analytische Ableitung f\'(I_D) sind beide einfach und numerisch stabil. Beim I(V)-Ansatz wäre implizite Differentiation nötig. 5. Das Verfahren konvergiert quadratisch und findet den Arbeitspunkt (Schnittpunkt von Kennlinie und Lastgerade) typisch in 5--10 Iterationen mit einer Genauigkeit von \< 10⁻⁷ A. |
Literatur
- Shockley, W. (1949): The Theory of p-n Junctions. Bell System Technical Journal 28(3), 435--489.
- Sze, S.M., Ng, K.K. (2007): Physics of Semiconductor Devices. 3rd ed., Wiley.
- Schubert, E.F. (2018): Light-Emitting Diodes. 3rd ed., Cambridge University Press.
- Press, W.H. et al. (2007): Numerical Recipes. 3rd ed., Cambridge. [Kap. 9: Root Finding, Kap. 15: Curve Fitting]
Die blaue Leuchtdiode: reines Shockley-Modell gegen das erweiterte
Übertragen aus BUCH/kap08_led_quellen.py: die Modellfunktionen (Zeilen 25–33), der Newton-Löser im Strom (Zeilen 35–49) und die Fitwerte, die sein Programm an 46 Messpunkten einer blauen LED bestimmt. Die Seite fittet nicht selbst — sie rechnet mit genau den Werten weiter, die sein Lauf ausgibt, und stellt beide Modelle nebeneinander.
Die beiden Anpassungen aus seinem Lauf
kap08_led_quellen.py.Die Newton-Schritte
Arbeitspunkt, und was sein Programm ausgibt
Beide Kennlinien und die Lastgerade
20_bjt_spice.md · Quelle: Vorlesungsmanuskript_BJT_SPICE_RW.docxVorlesungsmanuskript
Halbleiter-Elektronik
Bipolare Transistoren: Erweitertes SPICE-Modell
| Themen: ▸ Gummel-Poon-Modell ▸ Early-Effekt (Kollektor & Basis) ▸ Hochstrom-Effekt (Webster) ▸ Interner Basiswiderstand ▸ Newton-Raphson-Verfahren ▸ Bisektionsverfahren ▸ Arbeitspunkt-Berechnung | Begleitprogramm: Erweitere_Spice_Parameter_1.py Umgebung: Python 3.x, NumPy, Matplotlib Voraussetzungen: Grundkenntnisse Halbleiterphysik, Schaltungstechnik, Differentialrechnung |
Prof. Dr.-Ing. Ralph Wystup M.Sc.
1 Motivation und Lernziele
Das ideale Shockley-Modell des bipolaren Transistors (BJT) beschreibt das Bauelement mit nur wenigen Parametern und ist hervorragend geeignet, um das grundlegende Verhalten zu verstehen. Für die Simulation realer Schaltungen -- insbesondere mit SPICE-Simulatoren wie LTspice oder ngspice -- werden jedoch deutlich differenziertere Modelle benötigt. Das bekannteste davon ist das Gummel-Poon-Modell, das dem Standard-SPICE-Transistormodell zugrunde liegt.
In dieser Vorlesung analysieren wir Schritt für Schritt ein Python-Programm, das die wichtigsten Erweiterungen des Standardmodells implementiert und den Transistor-Arbeitspunkt numerisch berechnet.
| Ziele | Nach dieser Einheit können Sie: - den Einfluss der Early-Spannung auf Kollektor- und Basisstrom quantitativ beschreiben, - den Webster-Effekt (beta-Abfall bei Hochstrom) modellieren und berechnen, - den internen Basiswiderstand als Korrektur der effektiven Basis-Emitter-Spannung einbeziehen, - ein nichtlineares Gleichungssystem mit dem Newton-Raphson-Verfahren lösen, - einen Arbeitspunkt via Bisektionsverfahren automatisch einstellen, - alle genannten Effekte im Python-Code identifizieren und nachvollziehen. |
2 Physikalische Grundlagen des bipolaren Transistors
2.1 Das ideale Dioden-Exponentialgesetz
Der Kollektorstrom eines npn-Transistors im Normalbetrieb (Vorwärtsbetrieb, aktiver Bereich) folgt aus der Shockley-Gleichung. Der Sättigungsstrom *I*ₛ (SPICE: IS) beschreibt den Diffusionsstrom bei vollständiger Verarmung der Basis:
mit
und
Die Temperaturspannung Vᴛ ist gegeben durch:
2.2 Stromverstärkung und Basisstrom
Im idealen Modell ist die DC-Stromverstärkung *β*ₛ (SPICE: BF) konstant. Der Basisstrom ergibt sich damit zu:
In der Praxis ist β jedoch strom-, temperatur- und spannungsabhängig. Das Gummel-Poon-Modell und die im Programm implementierten Erweiterungen bilden diese Abhängigkeiten quantitativ ab.
3 Erweiterte SPICE-Parameter -- Herleitung und Bedeutung
3.1 Early-Effekt am Kollektor (VAF)
3.1.1 Physikalische Ursache
Bei zunehmendem *V*ᴄᴇ weitet sich die Raumladungszone an der Kollektor-Basis-Sperrschicht aus. Dadurch wird die effektive Basisbreite *W*ᴃ schmaler (Basisbreitenmodulation). Da die Steigung des Trägerprofils in der Basis zunimmt, steigt der Kollektorstrom an. Dieser Effekt heißt Early-Effekt (nach James Early, 1952).
| Modell | Die modifizierte Kollektor-Kennlinie lautet: $IC = IS · exp( (VBE)/(n VT) ) · ( 1+(VCE)/(VA) )$ SPICE-Parameter: VAF (Forward Early Voltage, Kollektor-Early-Spannung, typisch 50--200 V) |
3.1.2 Geometrische Interpretation
Extrapoliert man die Ausgangskennlinien Iᴄ(Vᴄᴇ) im aktiven Bereich nach links bis zur Vᴄᴇ-Achse, schneiden sie sich (näherungsweise) alle im Punkt *V*ᴄᴇ = −Vₐ. Dieser Schnittpunkt definiert die Early-Spannung Vₐ (SPICE: VAF). Je größer Vₐ, desto flacher die Kennlinien und desto geringer der Early-Effekt.
3.1.3 Ausgangsleitwert
Der differentielle Ausgangsleitwert (Kleinsignal) ergibt sich durch Ableiten:
Ausgehend von der Early‑Gleichung:
leitet sich der Ausgangsleitwert ab:
Da der Ausdruck vor 1/VA genau der Arbeitspunkt‑Kollektorstrom ist, gilt:
Exakt ist dabei
denn IC enthält bereits den Faktor (1+VCE/VA). Der relative Abstand zwischen Näherung und exaktem Ausdruck ist genau VCE/VA: bei VA=146 V und VCE=5 V sind das 3,4 %, bei VA=95 V und VCE=12,5 V schon 13,2 %.
3.2 Basis-Early-Effekt (VAR / VAB)
Analog zum Kollektor-Early-Effekt existiert ein Early-Effekt auf den Basisstrom. Durch die Basisbreitenmodulation verändert sich nicht nur Iᴄ, sondern auch Iᴃ. SPICE modelliert dies mit der Basis-Early-Spannung (SPICE: VAR, auch Vₐᴃ oder Vₐᴃ genannt):
SPICE: VAR (Reverse Early Voltage, Einfluss auf den Basisstrom) Typischer Wert: VAB = 100… 500 V
Für Vₐᴃ → ∞ verschwindet dieser Effekt (idealer Basisstrom). In der Praxis ist Vₐᴃ meist größer als Vₐ, d. h. der Basis-Early-Effekt ist schwächer als der Kollektor-Early-Effekt.
3.3 Hochstrom-Effekt: Beta-Abfall (IKF)
{width=95%}
3.3.1 Ursache
Bei sehr hohen Kollektorströmen (Iᴄ \> IᴊF, dem \"Knickstrom\") beginnt die injizierte Trägerkonzentration in der Basis mit der Dotierungskonzentration vergleichbar zu werden. Es tritt Hochinjektion auf. Zwei Effekte reduzieren β:
- Webster-Effekt: Bei Hochinjektion sinkt das Verhältnis Iᴄ/Iᴃ, da der Rekombinationsstrom in der Basis überproportional zunimmt.
- Kirk-Effekt: Bei sehr hohen Stromdichten verlagert sich die Kollektorraumladungszone in die epitaxiale Schicht (Basisausweitung).
3.3.2 Modell nach Webster / Gummel-Poon
Das Gummel-Poon-Modell beschreibt den Hochstrom-Abfall von β durch:
3.3.3 Herleitung der Formel
Ausgangspunkt ist die allgemeine Ladungssteuerungsgleichung des Gummel-Poon-Modells. Die normierte Basisladung Qᴃ/Qᴃ₀ lautet näherungsweise:
3.4 Interner Basiswiderstand (RBM)
3.4.1 Physikalische Ursache
Die Basiszone hat eine endliche laterale Ausdehnung. Der Basisstrom muss durch den Bahnwiderstand des Basisgebietes fließen. Dieser interne Basiswiderstand Rᴃ,int (SPICE: RBM) bewirkt einen ohmschen Spannungsabfall, der die effektiv wirkende Basis-Emitter-Spannung reduziert:
Da Iᴃ von Vᴃᴇ,eff und Vᴃᴇ,eff von Iᴃ abhängt, entsteht eine implizite Rückkopplung. Im Programm wird diese Kopplung bei jeder Auswertung von F(Vᴃᴇ, Vᴄᴇ) konsistent berücksichtigt.
3.4.2 Ableitung der effektiven Spannung nach V_BE
Für die Jacobi-Matrix wird die Ableitung (dVBE,eff)/(dVBE) benötigt. Mit Iᴃ = (Vᴃᴃ − Vᴃᴇ)/Rᴃ:
4 SPICE-Parameterübersicht
Die folgende Tabelle fasst alle im Programm verwendeten Parameter zusammen:
SPICE-Parameter Symbol Wert Bedeutung --------------------- ------------ ----------- ---------------------------------------------------- IS Iₛ 1×10⁻¹³ A Sättigungsstrom (Diffusionsstrom bei Verarmung)
BF βₛ 200 Kleinsignal-Stromverstärkung (Forward Beta)
NF n 1.0 Idealfaktor des Emitterübergangs
VAF Vₐ 100 V Kollektor-Early-Spannung (Ausgangskennl. Steigung)
VAR Vₐᴃ 200 V Basis-Early-Spannung (Einfluss auf Iᴃ)
IKF IᴊF 0.5 A Knickstrom: Beginn des β-Abfalls bei Hochstrom
RBM Rᴃ,int 10 Ω Interner (minimaler) Basisbahnwiderstand ---------------------------------------------------------------------------------------------------
5 Die untersuchte Schaltung
5.1 Fixed-Bias-Schaltung
Das Programm analysiert eine Fixed-Bias-Schaltung (einfache Basisvorspannung) mit npn-Transistor:
V_CC = 25 V (Versorgungsspannung) ----------------------------------------------------------------------- V_BB = V_CC (Basisspannung = V_CC, fixed bias)
R_C = 100 Ohm (Kollektorwiderstand)
R_B = variabel (wird durch Bisektionsverfahren optimiert) -----------------------------------------------------------------------
5.2 Maschengleichungen
Aus den zwei unabhängigen Maschen ergeben sich die Gleichungen:
Basiskreis
Kollektorkreis
6 Das nichtlineare Gleichungssystem F(V_BE, V_CE) = 0
6.1 Aufstellung
Gesucht sind die zwei Unbekannten Vᴃᴇ und Vᴄᴇ, die gleichzeitig die Transistorkennlinie und die Lastgeraden-Gleichungen erfüllen. Man stellt zwei Residuen Gleichungen auf:
Gleichung 1 -- Basiskreis (mit Basis-Early-Effekt)
Gleichung 2 -- Kollektorkreis (mit Kollektor-Early-Effekt)
6.2 Kopplung der Gleichungen
Die beiden Gleichungen sind über Vᴃᴇ,eff (enthält Iᴃ, der von Vᴃᴇ abhängt) und über βᴇḟḟ (enthält Iᴄ, der von Vᴄᴇ abhängt) miteinander verkoppelt. Ein geschlossener analytischer Ausdruck existiert nicht -- numerische Lösung ist notwendig.
7 Newton-Raphson-Verfahren
7.1 Grundprinzip
Das Newton-Raphson-Verfahren ist das Standard-Verfahren für nichtlineare Gleichungssysteme in SPICE-Simulatoren. Für ein System F(x) = 0 mit x ∈ ℝⁿ lautet die Iterationsvorschrift:
Praktisch wird nicht die inverse Jacobi-Matrix berechnet, sondern das lineare Gleichungssystem:
J(xₖ) · Δx = −F(xₖ) gelöst (im Programm: numpy.linalg.solve):
7.2 Jacobi-Matrix
Die Jacobi-Matrix J enthält alle partiellen Ableitungen von F = [f₁, f₂]ᵀ nach den Unbekannten [Vᴃᴇ, Vᴄᴇ]ᵀ:
Herleitung der Jacobi-Elemente
Element J₁₁ = ∂f₁/∂Vᴃᴇ:
Vollständig ausgeschriebene Form von f1und ∂ f1/∂ VBE
Funktion f1
Ableitung ∂ f1/∂ VBE
Element J₁₂ = ∂f₁/∂Vᴄᴇ:
Ausgehend von:
Die einzige Abhängigkeit von VCEsteckt im Faktor:
Daher:
Element J₂₁ = ∂f₂/∂Vᴃᴇ:
Ausgehend von:
Die Abhängigkeit von VBEsteckt ausschließlich im Exponenten über
Daher:
Mit:
Element J₂₂ = ∂f₂/∂Vᴄᴇ:
7.3 Konvergenzverhalten
Das Newton-Raphson-Verfahren konvergiert bei guten Startwerten quadratisch: der Fehler wird bei jedem Schritt etwa quadriert. Für den BJT-Arbeitspunkt ist der Startwert [Vᴃᴇ, Vᴄᴇ] = [0.65 V, Vᴄᴄ/2] meist ausreichend, da der Arbeitspunkt stets in der Nähe dieser Werte liegt.
8 Bisektionsverfahren zur Arbeitspunkt-Einstellung
8.1 Aufgabenstellung
Ziel: Finde Rᴃ so, dass der Transistor im optimalen Arbeitspunkt arbeitet. Als optimaler Arbeitspunkt wird Vᴄᴇ = Vᴄᴄ/2 gewählt (maximaler symmetrischer Aussteuerungsbereich bei Kleinsignal-Verstärkern).
8.2 Monotonieeigenschaft
Die Abhängigkeit Vᴄᴇ(Rᴃ) ist monoton: Eine Erhöhung von Rᴃ reduziert Iᴃ, damit Iᴄ, damit den Spannungsabfall über Rᴄ, und Vᴄᴇ steigt. Diese Monotonie ist die Voraussetzung für das Bisektionsverfahren.
| R_B ↑ =\> I_B ↓ =\> I_C ↓ =\> V_RC = I_C*R_C ↓ =\> V_CE = V_CC - V_RC ↑ |
8.3 Algorithmus
Der Bisektionsalgorithmus arbeitet wie folgt:
1. Initialisierung: R_B_min = 10 kOhm, R_B_max = 500 kOhm ----------------------------------------------------------------------- 2. Mittelpunkt: R_B_try = (R_B_min + R_B_max) / 2
3. Newton-Raphson lösen -\> V_CE(R_B_try)
4. Abbruchbedingung: |V_CE - V_CC/2| \<= tol_rel * V_CC/2
-\> fertig
5. Intervall halbieren:
V_CE \< V_CC/2 =\> R_B_min = R_B_try (R_B muss grösser werden)
V_CE \> V_CC/2 =\> R_B_max = R_B_try (R_B muss kleiner werden)
6. Weiter mit Schritt 2 (max. 30 Iterationen) -----------------------------------------------------------------------
Die Toleranz ist mit tol_rel = 5 % definiert, d. h. Vᴄᴇ muss im Bereich [0.475 · Vᴄᴄ, 0.525 · Vᴄᴄ] liegen. Das Verfahren konvergiert garantiert (da monoton), aber nur linear (log₂ der Fehler nimmt pro Schritt um 1 ab).
9 Analyse des Python-Programms
9.1 Modulstruktur
Das Programm ist in folgende Abschnitte gegliedert:
Programmteil Funktion --------------------------------- ------------------------------------------------------ Konstanten / Parameter Physikalische und SPICE-Parameter, Schaltungswerte
beta_eff(I_C) Webster-Formel: stromabhängige Verstärkung
V_BE_eff(V_BE, I_B) Effektive Basis-Emitter-Spannung nach R_B,int-Abfall
F(vars) Residuenvektor f1, f2 des nichtlinearen GLS
J(vars) Jacobi-Matrix (analytisch berechnet)
newton_method(guess) Newton-Raphson-Iteration (max. 100 Schritte)
finde_R_B_fuer_ap(V_CC) Bisektionsverfahren: Suche nach optimalem R_B
plot_kennlinie(R_B, V_BE, V_CE) Darstellung Kennlinie, Lastgerade, Arbeitspunkt
Hauptprogramm (__main__) Ausgabe Parameter, Aufruf Bisektion, Ergebnisausgabe ----------------------------------------------------------------------------------------
9.2 Kernfunktion F(vars) -- Residuenvektor
Diese Funktion berechnet die beiden Gleichungsfehler bei gegebenen [Vᴃᴇ, Vᴄᴇ]:
def F(vars): ----------------------------------------------------------------------- V_BE, V_CE = vars
I_B = (V_BB - V_BE) / R_B # Basisstrom aus Maschengleichung
I_C = (V_CC - V_CE) / R_C # Kollektorstrom aus Lastgerade
V_eff = V_BE_eff(V_BE, I_B) # Spannungsabfall an R_B,int
exp_term = np.exp(V_eff/(n*V_T)) # Exponentialterm
b_eff = beta_eff(I_C) # Webster: beta-Abfall
eq1 = I_B - (I_S/b_eff)exp_term(1 + V_CE/V_AB) # Basisgleichung
eq2 = I_C - I_Sexp_term(1 + V_CE/V_A) # Kollektorgleichung
return np.array([eq1, eq2]) -----------------------------------------------------------------------
9.3 Kenngrößen am Arbeitspunkt
Nach Konvergenz des Algorithmus werden folgende Kenngrößen ausgegeben:
R_B : Optimierter Basisvorwiderstand (Ergebnis der Bisektion) ----------------------------------------------------------------------- V_BE : Klemmen-Basis-Emitter-Spannung
V_BE,eff : Effektive Basis-Emitter-Spannung (nach R_B,int-Korrektur)
V_CE : Kollektor-Emitter-Spannung am Arbeitspunkt
I_B : Basisstrom am Arbeitspunkt
I_C : Kollektorstrom am Arbeitspunkt
beta_F : Nominale Stromverstärkung
beta_eff : Tatsächliche Stromverstärkung (unter Einfluss von IKF) -----------------------------------------------------------------------
10 Numerisches Beispiel und Ergebnisinterpretation
10.1 Erwartete Ausgabe
Für die gegebenen Parameter ergibt sich näherungsweise:
SPICE-Parameter Symbol Wert Bedeutung --------------------- --------------------- -------------------------- ---------------------------------------- VAF = 100 V Ausgangswiederstand r_CE ≈ V_A/I_C Endliche Steigung in Ausgangskennlinie
VAR = 200 V Basis-Early I_B leicht V_CE-abhängig Geringer als Kollektor-Early-Effekt
IKF = 0.5 A Webster-Knickstrom β_eff ≈ β_F I_C \<\< 0.5 A, kaum Beta-Abfall
RBM = 10 Ω Basis-R-Abfall ΔV_BE,eff = I_B*R_B,int Korrekturen im mV-Bereich ---------------------------------------------------------------------------------------------------------------
10.2 Arbeitspunktlage und Lastgerade
Die Lastgerade verbindet die Punkte (Vᴄᴇ = 0, Iᴄ = Vᴄᴄ/Rᴄ = 250 mA) und (Vᴄᴇ = Vᴄᴄ = 25 V, Iᴄ = 0). Der optimale Arbeitspunkt liegt bei Vᴄᴇ = 12.5 V, Iᴄ = 125 mA. Dies entspricht der Mitte der Lastgeraden und ermöglicht den maximalen symmetrischen Aussteuerungsbereich.
11 Vergleich: Ideales Modell vs. erweitertes Modell
Eigenschaft Ideales Modell Erweitertes Modell (Programm) ------------------- ------------------------- ----------------------------------- Early-Effekt I_C keiner (I_C konstant) I_C*(1 + V_CE/V_A) [VAF]
Early-Effekt I_B keiner I_B*(1 + V_CE/V_AB) [VAR]
beta-Abfall beta = const. beta_eff(I_C) [IKF]
Basiswiderstand keiner V_BE,eff = V_BE-I_B*RBM
Arbeitspunkt analytisch berechenbar Newton-Raphson (iterativ)
Genauigkeit gut für Orientierung SPICE-Niveau ---------------------------------------------------------------------------------
13 Zusammenfassung
| Kernaussagen | - Das Gummel-Poon-Modell ergänzt das ideale BJT-Modell um Early-Effekte (VAF, VAR), Hochstrom-beta-Abfall (IKF) und internen Basiswiderstand (RBM). - Alle Erweiterungen führen zu einem nichtlinearen Gleichungssystem, das analytisch nicht lösbar ist. - Das Newton-Raphson-Verfahren konvergiert quadratisch und löst das System in wenigen Iterationen. - Das Bisektionsverfahren ist langsamer (lineare Konvergenz), aber garantiert konvergent und ideal für die Optimierung eines Parameters (R_B). - Der optimale Arbeitspunkt bei V_CE = V_CC/2 maximiert den Aussteuerungsbereich. - Der interne Basiswiderstand RBM ist besonders bei Hochfrequenzanwendungen und hohen Strömen relevant. |
Literaturhinweise
Weiterführende Literatur zur Vertiefung:
- Sedra/Smith: Microelectronic Circuits -- Grundlagenwerk, BJT-Modellierung in Kapitel 5/6
- Razavi: Design of Analog CMOS Integrated Circuits -- moderne Sichtweise auf BJT-Parameter
- Gummel/Poon (1970): An integral charge control model of bipolar transistors, Bell System Technical Journal 49(5) -- Originalpublikation
- Getreu (1978): Modeling the Bipolar Transistor -- umfassende Darstellung der SPICE-BJT-Modelle
- LTspice Dokumentation: SPICE BJT model parameters (VAF, VAR, IKF, RBM, ...) -- Referenz für alle Parameterdefinitionen
Der Arbeitspunkt der Fixed-Bias-Stufe: Newton innen, Bisektion außen
Übertragen aus Transistor_21b.py: die Residuen (Zeilen 34–57), die analytische Jacobi-Matrix (Zeilen 63–98), Newton-Raphson mit tol = 10−10 und höchstens 100 Schritten (Zeilen 104–140) und die Bisektion auf RB im Intervall 10 kΩ … 500 kΩ mit 5 % Toleranzband und mitgeführtem Startwert (Zeilen 143–228). Parameter dieses Programms: IS = 10−13 A, βF = 200, n = 1, VA = 100 V, VCC = 25 V, RC = 100 Ω.
Die Bisektionsversuche — wie in seiner Konsolenausgabe
Die Newton-Schritte im letzten Versuch
Ergebnis, und was sein Programm ausgibt
Eigen_RW_1d.asc (R2 = 44453).Ausgangskennlinie, Lastgerade und Arbeitspunkt
30_extraktion_bc547.md · Quelle: Vorlesungsmanuskript_Parameterextraktion_BC547.docxVorlesungsmanuskript
Halbleiter-Elektronik
Von der Kennlinienmessung zur Arbeitspunktberechnung:
SPICE-Parameterextraktion am Beispiel BC547
| Messkette: ▸ Kennlinienschreiber-Messung ▸ Gummel-Plot-Auswertung (IS, NF) ▸ Stromverstärkung (BF) aus hFE-Kurve ▸ Early-Spannung (VAF) aus Ausgangskennfeld ▸ Hochstrom-Knick (IKF) ▸ Basiswiderstand (RBM) ▸ Arbeitspunktberechnung in Python | Prüfling: BC547 (npn, Si-Kleinsignaltransistor) Messmittel: Kennlinienschreiber (Curve Tracer) Begleitprogramm: Erweitere_Spice_Parameter_1.py |
Lehrstuhl Halbleiterelektronik | Hochschule | 2026
1 Einleitung: Von der Messung zum Modell
In der vorangegangenen Einheit wurde das erweiterte SPICE-Modell des Bipolartransistors (Gummel-Poon mit Early-Effekt, Hochstrom-Beta-Abfall und internem Basiswiderstand) ausschließlich mit vorgegebenen Parametern behandelt. In dieser Einheit schließen wir die Lücke zwischen Theorie und Praxis: Wir bestimmen alle SPICE-Parameter aus realen Messungen mit dem Kennlinienschreiber (Curve Tracer) und speisen sie in das Python-Modell ein, um den Arbeitspunkt einer konkreten Schaltung zu berechnen.
| Ziele | Nach dieser Einheit können Sie: - die Funktionsweise eines Kennlinienschreibers und die relevanten Messmodi erläutern, - aus einer Gummel-Plot-Messung den Sättigungsstrom I_S und den Idealfaktor n extrahieren, - die Stromverstärkung beta_F aus dem Verhältnis I_C/I_B bestimmen, - die Early-Spannung V_A durch Extrapolation des Ausgangskennfelds ermitteln, - den Knickstrom I_KF aus dem Abknicken der beta-Kurve bei hohen Strömen ablesen, - den internen Basiswiderstand R_B,int aus der Kompression der Eingangskennlinie bestimmen, - die so gewonnenen Parameter in das Python-Arbeitspunktprogramm einsetzen und das Ergebnis bewerten. |
2 Der Kennlinienschreiber als Messinstrument
2.1 Funktionsprinzip
Ein Kennlinienschreiber (Curve Tracer) legt an die Anschlüsse eines Transistors definierte Spannungs- bzw. Stromrampen an und zeichnet den resultierenden Stromfluss auf. Für den BJT werden typischerweise zwei Messmodi benötigt:
- Basis-Emitter-Kennlinie I_B(V_BE) bzw. I_C(V_BE): Basis wird spannungs- oder stromgesteuert durchgefahren, V_CE wird konstant gehalten (z. B. V_CE = 5 V, um den aktiven Bereich sicherzustellen).
- Ausgangskennfeld I_C(V_CE) bei I_B = const.: Für mehrere feste Basisstrom-Stufen wird V_CE von 0 V bis zur Versorgungsspannungsgrenze durchgefahren.
Wichtig ist, dass der Kennlinienschreiber die Selbsterwärmung des Transistors während der Messung gering hält (kurze Pulsmessung oder Strombegrenzung), da sich sonst I_S und damit alle abgeleiteten Parameter mit der Messzeit verschieben (thermische Drift).
2.2 Benötigte Messreihen
Für die vollständige Parameterextraktion werden drei Messreihen benötigt:
Messreihe Bedingung Liefert Parameter ------------------- --------------------------------------------------------------- ----------------------- Gummel-Plot I_C, I_B vs. V_BE bei V_CE = const. (z. B. 5 V), log. I-Achse I_S, NF, BF, IKF
Ausgangskennfeld I_C vs. V_CE bei mehreren I_B-Stufen, V_CE = 0...V_CC VAF (Early-Spg.)
Eingangskennlinie V_BE vs. I_B bei festem V_CE, hoher Auflösung im Knick RBM (Basis-R) -----------------------------------------------------------------------------------------------------------
Eine vierte Größe, die Basis-Early-Spannung V_AB (VAR), ist messtechnisch deutlich aufwendiger zu bestimmen (sie erfordert die V_CE-Abhängigkeit von I_B bei konstantem V_BE mit sehr hoher Strommessauflösung) und wird in der Praxis häufig aus Datenblattangaben übernommen oder per Faustregel mit V_AB ≈ 2*V_AF abgeschätzt, da sie für die meisten Schaltungsanalysen einen vernachlässigbar kleinen Einfluss hat.
3 Parameterextraktion 1: Sättigungsstrom I_S und Idealfaktor n
3.1 Der Gummel-Plot
Der Gummel-Plot zeigt I_C und I_B halblogarithmisch über V_BE bei konstantem V_CE. Im mittleren Strombereich (weder Leckströme bei sehr kleinem I_C, noch Hochinjektion bei sehr großem I_C) verläuft I_C(V_BE) als ideale Exponentialfunktion und erscheint im halblogarithmischen Diagramm als Gerade:
I_C = I_S exp( V_BE / (n V_T) )
=\> ln(I_C) = ln(I_S) + V_BE / (n * V_T)
Geradengleichung: y = m*x + b mit y = ln(I_C), x = V_BE
Steigung: m = 1 / (n * V_T)
Achsenabschnitt: b = ln(I_S) -----------------------------------------------------------------------
3.2 Auswertung über zwei Messpunkte
In der Praxis wertet man zwei Punkte (V_BE1, I_C1) und (V_BE2, I_C2) aus dem linearen Bereich des Gummel-Plots aus:
n = (V_BE2 - V_BE1) / ( V_T * ln(I_C2 / I_C1) )
I_S = I_C1 / exp( V_BE1 / (n*V_T) ) -----------------------------------------------------------------------
| Messbeispiel BC547 | Aus zwei Punkten im linearen Bereich des Gummel-Plots (V_CE = 5 V, Raumtemperatur): Punkt 1: V_BE1 = 0.600 V -\> I_C1 = 0.5 mA Punkt 2: V_BE2 = 0.660 V -\> I_C2 = 5.0 mA n = (0.660-0.600) / (0.02586 * ln(10)) = 1.008 ~= 1.0 I_S = 0.5mA / exp(0.600/(1.008*0.02586)) = 5.0e-14 A |
Für Siliziumtransistoren wie den BC547 ergibt sich praktisch immer n ≈ 1.0 (idealer Diffusionsstrom dominiert). Werte n \> 1.05 deuten auf einen relevanten Rekombinationsanteil im Sperrschichtbereich hin (zweiter, paralleler Diodenast mit n ≈ 2, im einfachen Modell hier nicht berücksichtigt).
3.3 Gültigkeitsbereich und typische Fehlerquellen
- Bei sehr kleinem I_C (typisch \< 1 µA) dominieren Leckströme -- die Gerade krümmt sich nach oben ab. Diesen Bereich nicht zur Auswertung verwenden.
- Bei hohem I_C (Hochinjektion) krümmt sich die Gerade nach unten ab. Auch dieser Bereich ist für die Bestimmung von I_S und n ungeeignet.
- Der Basisstrom I_B(V_BE) verläuft im Gummel-Plot meist nicht exakt parallel zu I_C(V_BE) -- das Verhältnis I_C/I_B liefert direkt beta_F.
4 Parameterextraktion 2: Stromverstärkung beta_F (BF)
4.1 Bestimmung aus dem Gummel-Plot
Da im Gummel-Plot sowohl I_C als auch I_B über V_BE aufgetragen werden, lässt sich beta_F bei jedem Arbeitspunkt direkt als Verhältnis ablesen:
beta_F(V_BE) = I_C(V_BE) / I_B(V_BE)
Da beta_F selbst stromabhängig ist (Webster-Effekt), wählt man als BF-Wert für SPICE üblicherweise den Maximalwert von beta im mittleren Strombereich -- also dort, wo die beta-I_C-Kurve ihr Plateau erreicht, bevor der Hochstrom-Abfall einsetzt.
4.2 Messbeispiel BC547
| Messbeispiel BC547 | Aus dem Plateau-Bereich der beta(I_C)-Kurve (typisch I_C = 1...10 mA für BC547): I_C = 2.0 mA I_B = 6.9 µA -\> beta_F = 2.0mA / 6.9µA ~= 290 Dieser Wert liegt im Datenblatt-Bereich der hFE-Klassifikation B (200-450) für den BC547. Da hFE serienstreuungsbedingt erheblich variiert, ist eine Messung am konkreten Exemplar unerlässlich. |
5 Parameterextraktion 3: Early-Spannung V_A (VAF)
5.1 Extrapolationsverfahren
Die Early-Spannung wird aus dem Ausgangskennfeld I_C(V_CE) bei mehreren I_B-Stufen bestimmt. Im aktiven Bereich (V_CE oberhalb der Sättigungsspannung) verlaufen die Kennlinien näherungsweise linear mit kleiner positiver Steigung. Extrapoliert man diese Geraden nach links, schneiden sie sich näherungsweise in einem gemeinsamen Punkt auf der negativen V_CE-Achse bei V_CE = -V_A:
I_C(V_CE) = I_C0 * (1 + V_CE/V_A) [Gerade im aktiven Bereich]
Aus zwei Punkten derselben Kennlinie (gleiches I_B):
V_A = (V_CE2*I_C1 - V_CE1*I_C2) / (I_C2 - I_C1) -----------------------------------------------------------------------
5.2 Praktisches Auswerteverfahren
1. Wählen Sie eine I_B-Kurve aus dem Ausgangskennfeld (z. B. I_B = 20 µA).
2. Lesen Sie zwei Punkte im aktiven Bereich ab, z. B. bei V_CE = 5 V und V_CE = 20 V (möglichst weit auseinander für geringen Ablesefehler).
3. Setzen Sie beide Punkte in die Formel für V_A ein.
4. Wiederholen Sie dies für 2-3 weitere I_B-Stufen und mitteln Sie die Ergebnisse.
| Messbeispiel BC547 | Ausgangskennlinie bei I_B = 20 µA: Punkt 1: V_CE1 = 5 V I_C1 = 5.80 mA Punkt 2: V_CE2 = 20 V I_C2 = 6.67 mA V_A = (20*5.80m - 5*6.67m)/(6.67m - 5.80m) = (116m - 33.35m)/0.87m = 82.65/0.87 ~= 95 V Typischer BC547-Bereich laut Literatur: V_A ~= 70...100 V. Der gemessene Wert von 95 V liegt im erwarteten Bereich. |
In dieser Vorlesung verwenden wir für die anschließende Python-Berechnung den gemessenen Wert V_A = 95 V (statt des fiktiven Demonstrationswerts V_A = 100 V aus der vorigen Einheit).
6 Parameterextraktion 4: Knickstrom I_KF (IKF)
6.1 Erkennung im Gummel-Plot
Bei hohen Kollektorströmen weicht die I_C(V_BE)-Kurve im Gummel-Plot zunehmend nach unten von der idealen Geraden ab (Hochinjektion). Gleichzeitig fällt die aus I_C/I_B berechnete beta(I_C)-Kurve vom Plateau ab. Der Knickstrom I_KF ist definitionsgemäß der Strom, bei dem beta auf 70.7 % (= 1/sqrt(2)) des Plateauwerts gefallen ist:
beta_eff(I_C) = beta_F / sqrt(1 + I_C/I_KF)
Bei I_C = I_KF: beta_eff = beta_F / sqrt(2) = 0.707 * beta_F
=\> I_KF ist exakt der Strom, bei dem beta_eff auf 70.7% des Plateaus gefallen ist. -------------------------------------------------------------------------------------
6.2 Praktisches Auswerteverfahren
1. Tragen Sie beta = I_C/I_B über I_C halblogarithmisch auf (typisches Diagramm aus dem Gummel-Plot abgeleitet).
2. Bestimmen Sie den Plateauwert beta_F im mittleren Strombereich.
3. Suchen Sie den Strom I_C, bei dem beta auf 0.707 * beta_F gefallen ist -- das ist I_KF.
| Messbeispiel BC547 | Aus der beta(I_C)-Kurve des BC547: beta_F (Plateau) = 290 0.707 * beta_F = 205 Abgelesener I_C bei beta=205: I_KF ~= 80 mA Dies passt zur Datenblattgrenze I_C,max = 100 mA des BC547 -- der Hochstrom-Abfall setzt also bereits unterhalb der absoluten Strombegrenzung spürbar ein. |
7 Parameterextraktion 5: Interner Basiswiderstand R_B,int (RBM)
7.1 Auswerteprinzip
Der interne Basiswiderstand verursacht bei hohen Basisströmen einen zusätzlichen Spannungsabfall, der die Eingangskennlinie V_BE(I_B) gegenüber der idealen Diodenkennlinie zu höheren V_BE-Werten hin \"aufbiegt\" (Kompression der Kennlinie bei hohem Strom -- ähnlich wie der Vorwiderstandseffekt bei einer LED-Kennlinie):
V_BE,gemessen = V_BE,ideal + I_B * R_B,int
=\> R_B,int = ( V_BE,gemessen - V_BE,ideal ) / I_B -----------------------------------------------------------------------
7.2 Praktisches Auswerteverfahren
1. Berechnen Sie aus IS und n den idealen V_BE-Verlauf: V_BE,ideal(I_B) = n*V_T*ln(beta_F*I_B/I_S).
2. Vergleichen Sie bei hohem I_B (z. B. nahe I_KF) den idealen Wert mit dem tatsächlich gemessenen V_BE.
3. Die Differenz, dividiert durch I_B, ergibt R_B,int.
| Messbeispiel BC547 | Bei hohem Basisstrom I_B = 1 mA (entspricht I_C ~= 290 mA im idealen Modell, praktisch durch IKF begrenzt -- hier wird der reine R_B,int-Effekt isoliert betrachtet): V_BE,ideal = n*V_T*ln(beta_F*I_B/I_S) ~= 0.768 V V_BE,gemessen = 0.783 V R_B,int = (0.783 - 0.768) / 1mA = 15 Ohm Typische Werte für Kleinsignal-npn-Transistoren wie den BC547 liegen im Bereich 5...30 Ohm -- der gemessene Wert von 15 Ohm ist plausibel. |
Diese Methode setzt voraus, dass IS, n und beta_F bereits aus den vorigen Schritten bekannt sind -- die Parameterextraktion erfolgt also in der gezeigten Reihenfolge (I_S, n -\> beta_F -\> V_A -\> I_KF -\> R_B,int), da spätere Parameter auf früheren aufbauen.
8 Zusammengefasster Parametersatz für den BC547
Die folgende Tabelle fasst alle aus den Messungen extrahierten Parameter zusammen, im direkten Vergleich zum fiktiven Demonstrationsdatensatz der Vorgängereinheit:
Parameter Demo-Wert (vorige Einheit) Gemessen (BC547) Quelle --------------- -------------------------------- ------------------------------ ------------------- IS 1e-13 A 5.0e-14 A Gummel-Plot
NF 1.0 1.01 Gummel-Plot
BF 200 290 I_C/I_B Plateau
VAF 100 V 95 V Ausgangskennfeld
VAR 200 V 190 V (~2*VAF, Faustregel) geschätzt
IKF 0.5 A 0.08 A beta(I_C)-Abfall
RBM 10 Ohm 15 Ohm Eingangskennlinie ---------------------------------------------------------------------------------------------------
Auffällig ist der deutlich kleinere Knickstrom I_KF des realen BC547 (80 mA) gegenüber dem Demo-Wert (500 mA). Das bedeutet: Bei den im Folgenden berechneten Arbeitspunkten muss geprüft werden, ob I_C in die Nähe von I_KF kommt -- dann wäre auch die in der letzten Einheit diskutierte Webster-Näherung (im Gegensatz zur exakten Gummel-Poon-Formel) kritischer zu hinterfragen.
9 Arbeitspunktberechnung mit gemessenen Parametern
9.1 Anpassung des Python-Programms
Das Programm Erweitere_Spice_Parameter_1.py aus der Vorgängereinheit wird unverändert in seiner Struktur (Newton-Raphson, Bisektion) übernommen. Lediglich der Parameterblock am Anfang wird durch die gemessenen Werte ersetzt:
# --- Gemessene Parameter (BC547, Kennlinienschreiber) ---
I_S = 5.0e-14 # Sättigungsstrom (Gummel-Plot)
beta_F = 290.0 # Stromverstärkung (Plateau I_C/I_B)
n = 1.01 # Idealfaktor (Gummel-Plot-Steigung)
V_A = 95.0 # Early-Spannung (Ausgangskennfeld)
V_AB = 190.0 # Basis-Early-Spg. (Faustregel: 2*VAF)
I_KF = 0.08 # Knickstrom (beta-Abfall auf 70.7%)
R_B_int = 15.0 # Interner Basiswiderstand (Eingangskl.) -----------------------------------------------------------------------
9.2 Schaltungsdimensionierung für den Arbeitspunkt
Wir verwenden zur Veranschaulichung dieselbe Fixed-Bias-Schaltung wie zuvor (R_C = 100 Ohm, V_CC = V_BB = 25 V), mit dem Ziel V_CE = V_CC/2 = 12.5 V. Die Bisektion sucht erneut den passenden R_B.
9.3 Erwartetes Ergebnis und Plausibilitätsprüfung
Mit beta_F = 290 (statt 200) wird bei gleichem R_B mehr Kollektorstrom fließen -- die Bisektion wird also tendenziell einen größeren R_B finden als im Demo-Beispiel, um denselben Arbeitspunkt V_CE = 12.5 V einzustellen. Quantitativ lässt sich das näherungsweise abschätzen:
Vereinfachte Abschaetzung (ideales Modell, ohne Early/RBM):
I_C,ziel = V_CC/(2*R_C) = 25/(2*100) = 125 mA
I_B,ziel = I_C,ziel / beta_F = 125mA/290 = 431 µA
V_BE ~= n*V_T*ln(I_C,ziel/I_S) = 1.01*25.86mV*ln(125mA/5e-14A)
~= 0.746 V
R_B = (V_BB - V_BE)/I_B,ziel = (25-0.746)/431µA ~= 56.3 kOhm -----------------------------------------------------------------------
Dieser Schätzwert dient als Startwert/Plausibilitätscheck; das tatsächliche Ergebnis der Newton-Raphson-Bisektion mit allen Korrekturtermen (Early-Effekt, RBM) weicht davon je nach Lage zum Kniestrom ab — im vorliegenden Fall (IC/IKF = 1,56) um ein Drittel: der Abschätzung 56,3 kΩ steht der Modellwert 37,3 kΩ gegenüber und sollte in der Übung explizit berechnet und mit diesem Schätzwert verglichen werden.
10 Fehler- und Unsicherheitsbetrachtung
10.1 Messunsicherheiten
- Ableseunsicherheit am Kennlinienschreiber: typisch ±2-5% bei analogen Geräten, deutlich geringer bei digitaler Datenerfassung.
- Thermische Drift: I_S verdoppelt sich näherungsweise alle 8-10 K Temperaturanstieg. Messungen sollten bei konstanter, dokumentierter Temperatur erfolgen.
- Bauteilstreuung: hFE (beta_F) streut bei BC547 herstellerseitig um den Faktor 4 (Klassengrenzen 110-800). Jede Messung gilt nur für das konkrete Exemplar.
- Kontaktwiderstände der Messspitzen können R_B,int systematisch überschätzen lassen -- Vierleitermessung oder Kalibrierung empfohlen.
10.2 Fortpflanzung in die Arbeitspunktberechnung
Da I_C exponentiell von V_BE abhängt, wirken sich bereits kleine Unsicherheiten in I_S und n stark auf den berechneten Arbeitspunkt aus. Eine Unsicherheit von ±10% in I_S verschiebt V_BE um etwa:
Aus I_C = I_S*exp(V_BE/(n*V_T)):
dV_BE = nV_T d(ln(I_S)) = nV_T ln(1.1) ~= 1.01*25.86mV*0.0953 ~= 2.5 mV
=\> 10% Fehler in I_S verschiebt V_BE nur um ca. 2.5 mV (geringe Sensitivität).
Der Kollektorstrom selbst reagiert dagegen direkt proportional auf einen I_S-Fehler,
wenn V_BE festgehalten wird - in der geschlossenen Arbeitspunktrechnung kompensiert
sich dies aber teilweise durch die Rueckkopplung ueber R_B. ---------------------------------------------------------------------------------------
11 Übungsaufgaben
Aufgabe 1 -- Gummel-Plot-Auswertung:
- Gegeben seien zwei Messpunkte V_BE1 = 0.580 V, I_C1 = 0.1 mA und V_BE2 = 0.640 V, I_C2 = 1.0 mA. Bestimmen Sie n und I_S.
Aufgabe 2 -- Early-Spannung:
- Aus dem Ausgangskennfeld bei I_B = 40 µA wurden V_CE1 = 3 V, I_C1 = 11.5 mA und V_CE2 = 15 V, I_C2 = 12.4 mA gemessen. Berechnen Sie V_A.
Aufgabe 3 -- Knickstrom:
- beta_F = 320 wurde im Plateau gemessen. Bei welchem Stromwert beta = 226 gemessen wird, entspricht I_KF. Wie würden Sie diesen Wert messtechnisch eingrenzen (Vorgehensweise in 3 Schritten beschreiben)?
Aufgabe 4 -- Vollständige Berechnung:
- Übernehmen Sie die in Kapitel 8 gemessenen BC547-Parameter vollständig in das Python-Programm und führen Sie die Bisektion durch. Vergleichen Sie das Ergebnis mit der Abschätzung aus Kapitel 9.3 und erklären Sie die Abweichung.
Aufgabe 5 -- Sensitivitätsanalyse:
- Variieren Sie beta_F im Bereich der Datenblatt-Klassengrenzen (110 bis 800) und berechnen Sie jeweils den resultierenden Arbeitspunkt R_B. Wie stark schwankt R_B über diesen Bereich -- und welche Konsequenz hat das für die Serienfertigung von Schaltungen mit Fixed-Bias?
12 Zusammenfassung
| Kernaussagen | - Alle sieben SPICE-Parameter (IS, NF, BF, VAF, VAR, IKF, RBM) lassen sich aus drei Kennlinienschreiber-Messreihen extrahieren: Gummel-Plot, Ausgangskennfeld, Eingangskennlinie. - Die Extraktion folgt einer festen Reihenfolge, da spätere Parameter auf den Ergebnissen früherer Schritte aufbauen (IS, n -\> BF -\> VAF -\> IKF -\> RBM). - Reale BC547-Werte unterscheiden sich teils deutlich von den Demo-Werten der Vorgängereinheit, insbesondere der Knickstrom IKF. - Messunsicherheiten setzen sich über die exponentielle I_C(V_BE)-Beziehung unterschiedlich stark in den Arbeitspunkt fort - V_BE reagiert robust, I_C empfindlich. - Das Python-Programm aus der Vorgängereinheit benötigt keine strukturelle Änderung, nur den Austausch des Parameterblocks. |
Literaturhinweise
- Datenblatt BC547 (verschiedene Hersteller, z. B. onsemi, Nexperia) -- hFE-Klassengrenzen, Grenzwerte
- Getreu (1978): Modeling the Bipolar Transistor -- Parameterextraktionsverfahren im Detail
- Gummel/Poon (1970): An integral charge control model of bipolar transistors, BSTJ 49(5)
- LTspice Hilfedokumentation: .model-Statement und BJT-Parametertabelle
- Vorgängereinheit: Vorlesungsmanuskript \'Bipolare Transistoren: Erweitertes SPICE-Modell\'
Die ideale Abschätzung von RB — und wie weit sie neben dem Modell liegt
Übertragen aus BUCH/kap08_rechnung.py, Zeilen 104–107: IC = VCC/(2RC), VBE = n·VT·ln(IC/IS), RB = (VBB − VBE)/(IC/βF) — ohne Early, ohne inneren Basiswiderstand, ohne Webster. Daneben der Wert, den dasselbe Programm mit dem vollständigen Modell findet (Reiter „Arbeitspunkt Newton“).
Die Abschätzung Schritt für Schritt
Warum der Unterschied so groß ist
40_arbeitspunkt_transistor20.md · Quelle: Transistor_Manuskript (1).docxNumerische Simulation eines Bipolartransistors
Arbeitspunktberechnung mit Newton-Raphson und Bisektionsverfahren
Begleitmaterial zur Lehrveranstaltung
Elektronik / Numerische Methoden in der Elektrotechnik
Programm: Transistor_20.py
Sprache: Python 3 | Bibliotheken: NumPy, Matplotlib
1 Einleitung und Zielsetzung
Dieses Skript erläutert Schritt für Schritt das Programm Transistor_20.py. Das Programm berechnet den Arbeitspunkt eines NPN-Bipolartransistors in einer einfachen Kollektorschaltung -- und zwar vollständig numerisch, ohne Vereinfachungen wie die oft verwendete Beta-Näherung.
Ziel des Programms: Den Basiswiderstand R_B so bestimmen, dass der Transistor im Mittelpunkt seiner Aussteuerbarkeit arbeitet, d. h. V_CE ≈ V_CC / 2.
Dazu werden zwei numerische Verfahren kombiniert:
- Newton-Raphson-Verfahren (innere Schleife): Löst das nichtlineare Gleichungssystem für einen festen Wert von R_B.
- Bisektionsverfahren (äußere Schleife): Sucht iterativ den optimalen R_B-Wert.
2 Physikalischer Hintergrund
2.1 Die Transistorschaltung
Betrachtet wird ein NPN-Bipolartransistor mit Basiswiderstand R_B und Kollektorwiderstand R_C, gespeist von der Versorgungsspannung V_CC:
Schaltungsaufbau (vereinfacht)
V_CC
|
[R_C] \<- Kollektorwiderstand
|
+---[C] NPN-Transistor
|
[R_B] \<- Basiswiderstand
|
V_BB (= V_CC)
|
GND (Emitter) -----------------------------------------------------------------------
Die Knoten- und Maschengleichungen dieser Schaltung liefern:
I_B = (V_BB - V_BE) / R_B [Maschengleichung Basis]
I_C = (V_CC - V_CE) / R_C [Maschengleichung Kollektor]
2.2 Das Shockley-Diodenmodell
Der Basis-Emitter-Übergang verhält sich wie eine Diode. Der Basisstrom folgt der Shockley-Gleichung:
I_B = I_S · exp( q · V_BE / (k_B · T) )
mit den Konstanten:
------------------ ------------------- --------------------------------------- Parameter Wert Bedeutung
I_S 1 · 10⁻¹³ A Sättigungssperrstrom des Transistors
q 1,602 · 10⁻¹⁹ C Elementarladung
k_B 1,381 · 10⁻²³ J/K Boltzmann-Konstante
T 300 K Absolute Temperatur (Raumtemperatur) ------------------ ------------------- ---------------------------------------
Die Größe V_T = k_B · T / q ≈ 25,85 mV bei 300 K wird als Temperaturspannung bezeichnet und taucht in allen Dioden- und Transistorgleichungen auf.
2.3 Das Ebers-Moll-Modell mit Early-Effekt
Im realen Transistor hängt der Kollektorstrom nicht nur vom Basisstrom, sondern auch von der Kollektor-Emitter-Spannung V_CE ab. Diesen Effekt beschreibt der Early-Effekt:
I_C = I_B · ( 1 + V_CE / V_A )
Die Early-Spannung V_A (hier 100 V) charakterisiert, wie stark der Kollektorstrom mit V_CE ansteigt. Ein großes V_A bedeutet einen nahezu idealen, spannungsunabhängigen Transistor.
3 Das nichtlineare Gleichungssystem
Der Arbeitspunkt des Transistors ist derjenige Betriebszustand, in dem alle Strom- und Spannungsbedingungen gleichzeitig erfüllt sind. Dies führt auf ein System von zwei nichtlinearen Gleichungen in den Unbekannten V_BE und V_CE:
eq1 = (V_BB - V_BE)/R_B - I_S · exp(q·V_BE/(k_B·T)) = 0
eq2 = (V_CC - V_CE)/R_C - I_S · exp(q·V_BE/(k_B·T)) · (1 + V_CE/V_A) = 0
Gleichung 1 setzt die Maschengleichung für den Basiskreis gleich dem Shockley-Ausdruck. Gleichung 2 setzt die Kollektormaschengleichung gleich dem Ebers-Moll-Ausdruck.
Da exp(·) eine stark nichtlineare Funktion ist, kann dieses System nicht analytisch gelöst werden -- hier kommt das Newton-Raphson-Verfahren ins Spiel.
4 Das Newton-Raphson-Verfahren
4.1 Wozu brauchen wir das Verfahren?
In Kapitel 3 haben wir das Gleichungssystem aufgestellt:
eq1(V_BE, V_CE) = 0
eq2(V_BE, V_CE) = 0
Beide Gleichungen enthalten den Term exp(q·V_BE / k_B·T). Die Exponentialfunktion macht eine analytische (exakte) Lösung nach V_BE und V_CE unmöglich -- es gibt keine algebraische Umformung, die zu einer geschlossenen Formel führt.
Wir brauchen daher ein numerisches Verfahren, das iterativ eine Näherungslösung berechnet. Das Newton-Raphson-Verfahren ist hierfür besonders geeignet, weil es sehr schnell konvergiert (quadratisch, s. Abschnitt 4.6) und weil wir die Ableitungen analytisch kennen.
4.2 Grundidee: Linearisierung um den aktuellen Punkt
Die Idee ist einfach: Eine nichtlineare Funktion lässt sich in der Nähe eines Punktes durch ihre Tangente annähern. Das ist die Taylor-Entwicklung erster Ordnung.
Für eine einzelne Funktion f(x) gilt in der Nähe von xₙ:
f(x) ≈ f(xₙ) + f\'(xₙ) · (x - xₙ)
Wir suchen die Nullstelle, also f(x) = 0. Einsetzen und nach x auflösen:
0 = f(xₙ) + f\'(xₙ) · (x - xₙ)
x - xₙ = -f(xₙ) / f\'(xₙ)
x_{n+1} = xₙ - f(xₙ) / f\'(xₙ) [1D Newton-Formel]
Das ist der klassische Newton-Schritt für eine einzelne Gleichung. Wir haben aber zwei Gleichungen und zwei Unbekannte -- wir müssen auf ein Vektorsystem verallgemeinern.
4.3 Verallgemeinerung auf Systeme: Die Jacobi-Matrix
Unser Zustandsvektor ist:
x = [V_BE, V_CE]^T (ein Spaltenvektor mit 2 Einträgen)
Unser Fehlervektor ist:
F(x) = [eq1(V_BE, V_CE), eq2(V_BE, V_CE)]^T
Die Taylor-Entwicklung erster Ordnung für ein Vektorsystem lautet:
F(x) ≈ F(xₙ) + J(xₙ) · (x - xₙ)
Dabei ist J die Jacobi-Matrix -- das mehrdimensionale Analogon zur Ableitung. Sie enthält alle partiellen Ableitungen von F nach den Komponenten von x:
J = | ∂eq1/∂V_BE ∂eq1/∂V_CE |
| ∂eq2/∂V_BE ∂eq2/∂V_CE |
Jeder Eintrag J[i][j] beantwortet die Frage: \"Wenn ich die j-te Variable (V_BE oder V_CE) ein kleines Stück verändere -- wie stark ändert sich die i-te Gleichung (eq1 oder eq2)?\"
Nullstelle der linearisierten Gleichung suchen, also F(x) = 0 setzen:
0 = F(xₙ) + J(xₙ) · Δx
J(xₙ) · Δx = -F(xₙ) [Das lineare Gleichungssystem]
x_{n+1} = xₙ + Δx [Aktualisierungsschritt]
Das ist die Newton-Raphson-Formel für Systeme. Das Symbol Δx bezeichnet den Korrekturvektor [ΔV_BE, ΔV_CE]ᵀ.
4.4 Herleitung der partiellen Ableitungen (Jacobi-Einträge)
Jetzt leiten wir jeden der vier Jacobi-Einträge Schritt für Schritt her. Zur Erinnerung die beiden Gleichungen:
eq1 = (V_BB - V_BE)/R_B - I_S · exp(q·V_BE/(k_B·T))
eq2 = (V_CC - V_CE)/R_C - I_S · exp(q·V_BE/(k_B·T)) · (1 + V_CE/V_A)
Zur Abkürzung definieren wir zwei Hilfsgrößen, die im Programm ebenfalls verwendet werden:
exp_term = exp(q · V_BE / (k_B · T))
factor = I_S · (q / (k_B · T)) · exp_term [= Ableitung des Shockley-Terms]
4.4.1 Ableitung ∂eq1/∂V_BE
eq1 besteht aus zwei Termen. Wir leiten beide nach V_BE ab:
d/dV_BE [ (V_BB - V_BE)/R_B ] = -1/R_B
Der zweite Term ist eine Exponentialfunktion. Mit der Kettenregel gilt:
d/dV_BE [ I_S · exp(q·V_BE/(k_B·T)) ] = I_S · (q/(k_B·T)) · exp(...) = factor
Da eq1 das Minus-Zeichen trägt, ergibt sich insgesamt:
∂eq1/∂V_BE = -1/R_B - factor
Im Programm steht genau das:
d_eq1_dV_BE = -1/R_B - factor
4.4.2 Ableitung ∂eq1/∂V_CE
In eq1 taucht V_CE überhaupt nicht auf -- weder im Maschenterms noch im Shockley-Ausdruck. Daher ist die partielle Ableitung exakt null:
∂eq1/∂V_CE = 0
Das bedeutet: Die erste Gleichung (Basiskreis) ist vollständig unabhängig von V_CE. Im Programm:
d_eq1_dV_CE = 0.0
4.4.3 Ableitung ∂eq2/∂V_BE
eq2 enthält V_BE nur im Exponentialterm. Der Maschen-Term (V_CC - V_CE)/R_C ist konstant bezüglich V_BE. Wir leiten nur den Ebers-Moll-Ausdruck ab:
d/dV_BE [ I_S · exp(q·V_BE/(k_B·T)) · (1 + V_CE/V_A) ]
Der Faktor (1 + V_CE/V_A) ist bezüglich V_BE eine Konstante. Mit der Kettenregel:
= I_S · (q/(k_B·T)) · exp(...) · (1 + V_CE/V_A) = factor · (1 + V_CE/V_A)
Da eq2 auch hier ein Minuszeichen trägt:
∂eq2/∂V_BE = -factor · (1 + V_CE/V_A)
Im Programm:
d_eq2_dV_BE = -factor * (1 + V_CE / V_A)
4.4.4 Ableitung ∂eq2/∂V_CE
eq2 enthält V_CE an zwei Stellen: im Maschen-Term und im Early-Faktor. Wir leiten beide ab:
d/dV_CE [ (V_CC - V_CE)/R_C ] = -1/R_C
Für den Ebers-Moll-Term gilt -- exp_term ist bezüglich V_CE eine Konstante:
d/dV_CE [ I_S · exp_term · (1 + V_CE/V_A) ] = I_S · exp_term · (1/V_A) = I_S/V_A · exp_term
Da eq2 das Minuszeichen trägt, wird dieser Term positiv subtrahiert:
∂eq2/∂V_CE = -1/R_C + (I_S/V_A) · exp_term
Im Programm:
d_eq2_dV_CE = -1/R_C + (I_S / V_A) * exp_term
4.4.5 Die vollständige Jacobi-Matrix
Alle vier Ableitungen zusammengesetzt ergeben:
J = | -1/R_B - factor 0 |
| -factor·(1 + V_CE/V_A) -1/R_C + I_S/V_A·exp_term |
Diese 2×2-Matrix wird in jedem Newton-Schritt neu berechnet, weil sich exp_term und factor mit jedem neuen Schätzwert für V_BE ändern.
def J(vars): V_BE, V_CE = vars exp_term = np.exp(q V_BE / (k_B T)) # e^(q*V_BE/k_BT) factor = I_S q / (k_B T) exp_term # Ableitung Shockley d_eq1_dV_BE = -1/R_B - factor # s. 4.4.1 d_eq1_dV_CE = 0.0 # s. 4.4.2 d_eq2_dV_BE = -factor (1 + V_CE / V_A) # s. 4.4.3 d_eq2_dV_CE = -1/R_C + (I_S / V_A) exp_term # s. 4.4.4 return np.array([[d_eq1_dV_BE, d_eq1_dV_CE], [d_eq2_dV_BE, d_eq2_dV_CE]])
4.5 Das lineare Gleichungssystem lösen -- warum nicht J⁻¹ berechnen?
Die Newton-Formel lautet:
Δx = -J(xₙ)⁻¹ · F(xₙ)
Man könnte J invertieren und dann Δx berechnen. Das tut man in der Praxis jedoch nicht -- aus zwei Gründen:
- Numerische Stabilität: Die direkte Matrixinversion verstärkt Rundungsfehler. Lineare Gleichungslöser (wie LU-Zerlegung) sind stabiler.
- Rechenaufwand: Für n×n-Systeme kostet Inversion O(n³), ein Gleichungslöser ebenfalls O(n³), aber mit kleinerem Vorfaktor.
Stattdessen löst man das äquivalente lineare System:
J(xₙ) · Δx = -F(xₙ)
Das entspricht der Frage: \"Welche Korrektur Δx muss ich anwenden, damit J·Δx den Fehler -F genau ausgleicht?\" NumPy löst das mit LU-Zerlegung:
delta = np.linalg.solve(J_val, -f_val) # löst J·Δx = -F xy += delta # x_{n+1} = x_n + Δx
4.6 Schritt-für-Schritt durch eine vollständige Iteration
Hier verfolgen wir eine Newton-Iteration mit konkreten Zahlenwerten (R_B = 3000 Ω, V_CC = 15 V):
Iteration 0: Startwert
x₀ = [V_BE, V_CE] = [0.9 V, 8.0 V]
Berechne F(x₀):
I_B(Masche) = (15 - 0.9) / 3000 = 4.700e-3 A
I_B(Shockley) = 1e-13 · exp(0.9/0.02585) = 4.140e-3 A
eq1 = 4.700e-3 - 4.140e-3 = +5.60e-4 (noch nicht null!)
I_C(Masche) = (15 - 8.0) / 1000 = 7.000e-3 A
I_C(Ebers) = 4.140e-3 · (1 + 8/100) = 4.471e-3 A
eq2 = 7.000e-3 - 4.471e-3 = +2.53e-3 (noch nicht null!)
=\> Fehlervektor noch weit von null entfernt =\> weiter iterieren -----------------------------------------------------------------------
Iteration 0: Jacobi-Matrix und Korrekturschritt
Berechne J(x₀):
exp_term = exp(0.9/0.02585) = 4.140e10
factor = 1e-13 · (1/0.02585) · exp_term = 1.601e-1
J[0][0] = -1/3000 - 0.1601 = -0.1604
J[0][1] = 0.0
J[1][0] = -0.1601 · (1 + 8/100) = -0.1729
J[1][1] = -1/1000 + (1e-13/100)·exp = -0.0010
Löse J·Δx = -F:
Δx = np.linalg.solve(J, -F) =\> [ΔV_BE, ΔV_CE]
Aktualisiere:
V_BE_neu = 0.9 + ΔV_BE
V_CE_neu = 8.0 + ΔV_CE
=\> nächste Iteration beginnt mit verbessertem Schätzwert -----------------------------------------------------------------------
Nach 5--8 solcher Iterationen sind beide Fehlerkomponenten kleiner als 10⁻¹⁰ -- das Verfahren hat konvergiert.
4.7 Konvergenzverhalten und Konvergenzrate
Newton-Raphson hat unter geeigneten Bedingungen quadratische Konvergenz. Das bedeutet: Wenn der Fehler in Iteration n gleich εₙ ist, dann gilt näherungsweise:
ε_{n+1} ≈ C · εₙ² [quadratische Konvergenz]
In der Praxis sieht das so aus:
------------------ ---------------- --------------------------------------- Parameter Wert Bedeutung
Iteration 1 Fehler ≈ 10⁻¹ Erster grober Schritt
Iteration 2 Fehler ≈ 10⁻² Deutliche Verbesserung
Iteration 3 Fehler ≈ 10⁻⁴ Fehler quadriert sich
Iteration 4 Fehler ≈ 10⁻⁸ Sehr schnelle Annäherung
Iteration 5 Fehler ≈ 10⁻¹⁶ Maschinengenauigkeit erreicht ------------------ ---------------- ---------------------------------------
Warum quadratisch? Der Taylor-Entwicklung erster Ordnung bleibt ein Restterm zweiter Ordnung übrig: F(x) = F(xₙ) + J·Δx + O(Δx²). Newton eliminiert exakt den linearen Term -- was übrig bleibt, ist O(Δx²). Der nächste Fehler ist also proportional zum Quadrat des aktuellen Fehlers.
Wichtige Voraussetzung: Der Startwert muss in der Nähe der echten Lösung liegen. Weit entfernte Startwerte können zu Divergenz oder Konvergenz zu einer falschen Lösung führen. Im Programm werden deshalb physikalisch sinnvolle Startwerte [0.9 V, 8.0 V] gewählt.
4.8 Vollständiger Algorithmus im Programm (newton_method)
Alle Schritte zusammengefasst als Ablaufdiagramm:
Ablauf newton_method(initial_guess, tol=1e-10, max_iter=100)
EINGABE: Startwert [V_BE⁰, V_CE⁰], Toleranz, max. Iterationen
SCHRITT 0: x = [0.9, 8.0] (oder adaptiver Startwert)
SCHLEIFE (i = 0, 1, 2, ...):
SCHRITT 1: Fehlervektor berechnen
f_val = F(x) = [eq1(x), eq2(x)]
SCHRITT 2: Konvergenzprüfung
WENN |eq1| \< 1e-10 UND |eq2| \< 1e-10:
RÜCKGABE x, Anzahl Iterationen
SCHRITT 3: Jacobi-Matrix berechnen
J_val = J(x) [4 partielle Ableitungen, s. Kap. 4.4]
SCHRITT 4: Korrekturvektor lösen
delta = np.linalg.solve(J_val, -f_val)
[löst J·Δx = -F ohne explizite Matrixinversion]
SCHRITT 5: Schätzwert aktualisieren
x = x + delta
SCHRITT 6: Physikalische Plausibilität prüfen
WENN V_CE \< 0: FEHLER (unphysikalische Lösung)
NACH max_iter Schritten ohne Konvergenz: FEHLER -----------------------------------------------------------------------
def newton_method(initial_guess, tol=1e-10, max_iter=100): xy = np.array(initial_guess, dtype=float) # Schritt 0 for i in range(max_iter): f_val = F(xy) # Schritt 1 if np.all(np.abs(f_val) \< tol): # Schritt 2 return xy, i+1 J_val = J(xy) # Schritt 3 delta = np.linalg.solve(J_val, -f_val) # Schritt 4 xy += delta # Schritt 5 if xy[1] \< 0: # Schritt 6 raise ValueError(\'V_CE negativ!\') raise ValueError(\'Keine Konvergenz!\')
5 Das Bisektionsverfahren für R_B
5.1 Grundprinzip
Das Newton-Raphson-Verfahren löst das innere Problem für ein festes R_B. Das äußere Problem ist: Welcher Wert von R_B führt zu V_CE = V_CC/2?
Das Bisektionsverfahren nutzt aus, dass V_CE eine monotone Funktion von R_B ist:
- R_B zu groß → wenig Basisstrom → Transistor kaum leitend → V_CE ≈ V_CC (hoch)
- R_B zu klein → viel Basisstrom → Transistor stark leitend → V_CE ≈ 0 (niedrig)
Es existiert also genau ein R_B, für den V_CE = V_CC/2 gilt.
5.2 Algorithmus
R_B_try = (R_B_min + R_B_max) / 2
- Setze Startwerte: R_B_min = 500 Ω, R_B_max = 100 kΩ
- Berechne Mittelpunkt R_B_try = (R_B_min + R_B_max) / 2
- Löse inneres System mit Newton-Raphson → V_CE
- Toleranzprüfung: Falls |V_CE - V_CC/2| ≤ 5% · V_CC/2 → Fertig!
- Aktualisierung: V_CE zu klein → R_B_max = R_B_try; V_CE zu groß → R_B_min = R_B_try
- Zurück zu Schritt 2
Nach n Bisektionsschritten hat sich das Suchintervall auf (R_B_max - R_B_min) / 2ⁿ verkleinert. Nach 30 Schritten aus 100 kΩ Startbreite: Genauigkeit ≈ 0,1 mΩ.
6 Programmstruktur im Überblick
Modularer Aufbau von Transistor_20.py
F(vars) Fehlerfunktion: gibt [eq1, eq2] zurück
J(vars) Jacobi-Matrix: gibt 2×2-Matrix zurück
newton_method() Newton-Raphson-Solver (innere Schleife)
finde_R_B() Bisektionsoptimierer (äußere Schleife)
__main__ Hauptprogramm + Ergebnisplot -----------------------------------------------------------------------
Eine Besonderheit: R_B ist im Programm als globale Variable deklariert, damit F() und J() den aktuellen Wert der äußeren Bisektion kennen. Dies ist funktional, in modernem Python würde man R_B besser als Parameter übergeben.
7 Ergebnisplot und Arbeitspunkt
Nach Konvergenz beider Verfahren wird ein Diagramm mit drei Elementen erstellt:
- Transistorkennlinie I_C(V_CE): Für den berechneten Basisstrom I_B gilt: I_C(V_CE) = I_B · (1 + V_CE/V_A). Dies ist eine leicht ansteigende Gerade (wegen des Early-Effekts).
- Arbeitsgerade (Lastlinie): I_C = (V_CC - V_CE)/R_C. Eine fallende Gerade von (0, V_CC/R_C) bis (V_CC, 0).
- Arbeitspunkt (roter Punkt): Der Schnittpunkt beider Linien -- der einzige Betriebszustand, der alle Gleichungen gleichzeitig erfüllt.
Optimaler Arbeitspunkt: Der Punkt sollte in der Mitte der Lastlinie liegen (V_CE = V_CC/2), um maximale unverzerrte Aussteuerung zu ermöglichen.
8 Hinweise zur Implementierung
8.1 Stärken des Programms
- Analytische Jacobi-Matrix: genauer und schneller als numerische Differentiation
- Adaptive Startwerte: Das Newton-Verfahren startet beim nächsten Bisektionsschritt mit dem letzten konvergierten Ergebnis -- verbessert Stabilität
- Physikalische Plausibilitätsprüfung: V_CE \< 0 wird als Fehler erkannt
- Klare Trennung: Gleichungssystem (F, J) ist unabhängig vom Solver (newton_method)
8.2 Verbesserungspotenzial
- Globale Variable R_B: Sollte als Parameter an F() und J() übergeben werden. Empfehlung: Closures oder Klassenstruktur verwenden.
- Fehlende Rückgabe bei Newton-Fehler: Wenn Newton nicht konvergiert, wird V_CE = -1 gesetzt, aber V_BE bleibt undefiniert -- bei Schleifenabbruch würde ein NameError auftreten.
- Plot-Funktion: Ist als innere Funktion im __main__-Block definiert; besser auf Modulebene auslagern für Wiederverwendbarkeit.
9 Übungsaufgaben
Zur Vertiefung des Verständnisses:
- Berechnen Sie V_T = k_B·T/q bei 300 K per Hand und vergleichen Sie mit dem Wert im Programm.
- Wie verändert sich der Arbeitspunkt, wenn R_C auf 2 kΩ verdoppelt wird? Schätzen Sie ab, welches R_B dann benötigt wird.
- Warum konvergiert Newton-Raphson schneller mit adaptiven Startwerten? Erklären Sie anhand der Konvergenzbedingung.
- Skizzieren Sie das Bisektionsverfahren grafisch: V_CE als Funktion von R_B, und markieren Sie den Zielbereich.
- Ergänzen Sie das Programm so, dass R_B nicht als globale Variable, sondern als Parameter übergeben wird (Hinweis: Lambda-Funktion oder Closure).
- Was passiert, wenn V_A → ∞ gesetzt wird? Welches Modell ergibt sich dann?
10 Zusammenfassung
Kernpunkte dieses Skripts
1. Transistorarbeitspunkt = Lösung eines nichtlinearen 2x2-Gleichungssystems
2. Shockley-Gleichung beschreibt den exponentiellen Basisstrom
3. Ebers-Moll + Early-Effekt beschreiben den Kollektorstrom
4. Newton-Raphson löst das innere Problem (festes R_B) quadratisch konvergent
5. Bisektionsverfahren optimiert R_B für den Arbeitspunkt V_CE = V_CC/2
6. Analytische Jacobi-Matrix ist essenziell für Genauigkeit und Geschwindigkeit
7. Ziel: maximale Aussteuerbarkeit =\> V_CE liegt in der Mitte der Lastlinie ----------------------------------------------------------------------------------
Ende des Skripts
Newton-Raphson und die äußere Bisektion — genau wie in seinem Programm
Übertragen aus Transistor_20.py: die Fehlerfunktion (Zeilen 36–54), die analytische Jacobi-Matrix (Zeilen 64–80), Newton-Raphson mit tol = 10−10, höchstens 100 Schritten und Abbruch bei VCE < 0 (Zeilen 100–117) und die äußere Bisektion auf RB im Intervall 500 Ω … 100 kΩ mit 5 % Toleranzband, Startwert [0,9 V; 8,0 V] und adaptiver Mitführung (Zeilen 139–182). Was dieses Programm nicht kann: es kennt keine Stromverstärkung — Zeile 51 setzt IC = IB,Shockley·(1 + VCE/VA), also β = 1. Der Basisstrom fällt deshalb mit rund 7 mA viel zu groß aus. Das steht hier so, weil sein Programm es so rechnet.
Die Versuche der äußeren Bisektion
Ergebnis, und was sein Programm ausgibt
41_minimaler_datensatz.md · Quelle: Für ein einfaches statisches BJT.docxFür ein einfaches statisches BJT-Modell würde ich nicht mit allen Datenblatt-Kennlinien anfangen, sondern gezielt nur die Kennfelder einlesen, aus denen sich die wesentlichen Modellparameter identifizieren lassen.
Minimaler Datensatz
1. Ausgangskennfeld
für verschiedene feste Basisströme
Das sind die klassischen Transistorkennlinien:
I_C
│ IB=80µA
│ /
│ /
│ / IB=60µA
│ /
│ / IB=40µA
└────────── V_CE
Daraus kann man bestimmen:
- Early-Spannung VA
- Ausgangsleitwert
- Ausgangswiderstand ro
- β-Verlauf
2. Gummel-Plot
und
bei festem
(z.B. 5 V oder 10 V).
Daraus erhält man:
- IS
- βF
- Idealfaktor n
Welche Parameter lassen sich bestimmen?
Sättigungsstrom IS
Aus
folgt
Im Gummel-Plot:
- Gerade fitten
- auf VBE = 0extrapolieren
Ergebnis:
Idealfaktor n
Steigung der Gummel-Kurve:
also
Typisch:
Stromverstärkung βF
Aus dem Gummel-Plot:
Einfach im aktiven Bereich mitteln.
Typisch:
Early-Spannung VA
Aus den Ausgangskennlinien.
Für jede Kennlinie:
Lineare Extrapolation.
Alle Geraden schneiden sich ungefähr bei
Beispiel:
/
/
/
/
----/---------
-100V
ergibt
Daraus erhältst du bereits dein momentanes Modell
Mit lediglich
- IS
- n
- βF
- VA
hast du schon ein erstaunlich gutes statisches Modell.
Falls du etwas weiter gehen möchtest
Zusätzlich interessant:
Eingangskennlinie
für verschiedene VCE.
Damit könntest du prüfen, ob
einen eigenen Early-Effekt zeigt.
Dann käme man zu einem erweiterten Modell:
Meine Empfehlung für dein Manuskript
Für einen Bachelor-Kurs bzw. eine Vorlesung „Numerische Methoden in der Elektronik“ würde ich genau diese vier Parameter extrahieren:
und als benötigte Messdaten nur
- Gummel-Plot
- Ausgangskennfeld IC(VCE)
verwenden.
Damit ist das Modell noch übersichtlich, aber bereits deutlich realistischer als die klassische β = const.-Näherung.
Für dein aktuelles Modell brauchst du in LTspice gar kein kompliziertes Gummel-Poon-Modell. Ein sehr einfaches und überraschend gut passendes Modell wäre:
mit
Das entspricht exakt deinem Python-Modell.
Variante 1: Einfaches LTspice-BJT-Modell
LTspice verwendet intern bereits das Gummel-Poon-Modell.
Daher genügt oft:
.model NPN_SIMPLE NPN(
+ IS=1e-13
+ BF=100
+ VAF=100
+ NF=1
)
Bedeutung:
IS = Sättigungsstrom
BF = Vorwärtsverstärkung βF
VAF = Early-Spannung
NF = Emissionskoeffizient n
Das entspricht nahezu direkt deinen Parametern:
I_S = 1e-13
beta_F = 100
V_A = 100
n = 1
Schaltung
VCC VCC 0 25
RC VCC C 100
RB VCC B 209k
Q1 C B 0 NPN_SIMPLE
Arbeitspunktanalyse
.op
liefert dann ungefähr:
VBE ≈ 0.65 V
VCE ≈ 12.5 V
IC ≈ 125 mA
IB ≈ 1.25 mA
für deinen aktuellen Fall
VCC = 25 V
RC = 100 Ω
Welche Kennlinien würde ich vermessen?
1. Gummel-Plot
Simulation:
.dc VBE 0.4 0.9 1m
Auswertung:
Ic(VBE)
Ib(VBE)
Daraus:
- IS
- BF
- NF
2. Ausgangskennlinien
Simulation:
.step param IB 10u 200u 20u
.dc VCE 0 25 0.1
Daraus:
- VAF
- Ausgangswiderstand
- β-Verlauf
Parameterextraktion
Mit deinen Vorlesungszielen würde ich exakt diese vier Größen bestimmen:
IS
BF
NF
VAF
also
Parameter Bedeutung ----------------------- ----------------------------------------------- IS Sättigungsstrom
BF Gleichstromverstärkung
NF Idealfaktor
VAF Early-Spannung -----------------------------------------------------------------------
Noch schöner für die Vorlesung
Dann ergibt sich ein direkter Zusammenhang zwischen Simulation und Python:
Python:
I_B = (I_S/beta_F) * exp(...)
I_C = I_S exp(...) (1 + V_CE/V_A)
LTspice:
.model NPN_SIMPLE NPN(
+ IS=1e-13
+ BF=200
+ VAF=100
+ NF=1
)
Die Studierenden sehen dann sehr schön:
Die vier Parameter I_ S, BF, NFund VAFreichen bereits aus, um aus gemessenen Kennlinien ein einfaches statisches Transistormodell abzuleiten und anschließend numerisch mit Newton-Raphson den Arbeitspunkt zu berechnen.
Das ist didaktisch sauber und stellt den direkten Bezug zwischen Kennlinienmessung, Parameteridentifikation und numerischer Simulation her.
(eingebettete Datei — siehe Verzeichnis der Programme)
(eingebettete Datei — siehe Verzeichnis der Programme)
(eingebettete Datei — siehe Verzeichnis der Programme)
Das Ergebnis sieht sehr vernünftig aus. Aus dem Plot kann man einige Dinge direkt ablesen:
Verstärkung
Eingang (grün):
Ausgang (blau):
also
Die Stufe verstärkt also.
Phasenlage
Der Ausgang ist invertiert:
- Eingang positiv → Ausgang negativ
- Eingang negativ → Ausgang positiv
also ungefähr
genau wie bei einer Emitterschaltung erwartet.
Arbeitspunkt
Der Ausgang ist über
C2 = 1 µF
ausgekoppelt.
Deshalb siehst du im Plot nur den Wechselanteil.
Wenn du den tatsächlichen Arbeitspunkt prüfen möchtest, solltest du zusätzlich ausführen:
.op
und kontrollieren:
V(B)
V(C)
V(B,E)
V(C,E)
Ic(Q1)
Ib(Q1)
\`
Was mich freut
Die gewählten Modellparameter
IS=5e-16
BF=110
NF=1
VAF=100
verhalten sich genau so, wie dein Python-Modell vorhersagt:
mit
Der nächste interessante Schritt
Ich würde jetzt tatsächlich die vier Modellparameter aus LTspice \"zurückgewinnen\".
Gummel-Plot
Simulation:
.dc VBE 0.4 0.9 1m
Dann plotten:
Ic(Q1)
Ib(Q1)
(logarithmische Achse)
Daraus:
- IS
- BF
- NF
bestimmen.
Ausgangskennlinien
Beispielsweise:
.step param IB 10u 100u 10u
.dc VCE 0 20 0.1
Daraus:
- VAF
- Early-Effekt
- Ausgangswiderstand
bestimmen.
Didaktisch besonders schön
Du hast jetzt praktisch die Kette
Messung / Kennlinien
↓
Parameterextraktion
↓
LTspice-Modell
IS
BF
NF
VAF
↓
Python-Modell
IS
beta_F
n
V_A
↓
Newton-Raphson
↓
Arbeitspunkt
und genau daraus lässt sich ein sehr schönes Kapitel zur modellgestützten Transistoranalyse entwickeln. Das ist deutlich näher an der Praxis als die übliche \"VBE = 0,7 V und β = 100\"-Näherung.
(eingebettete Datei — siehe Verzeichnis der Programme)
Ja. Wenn man die von mir vorgeschlagenen Erweiterungen
- Early-Effekt
- Basis-Early-Effekt
- β-Abfall bei hohen Strömen (IKF)
- interner Basiswiderstand RB,int
alle zusammenfasst, erhält man folgendes kompaktes Gleichungssystem.
Hilfsgrößen
Temperaturspannung
Äußerer Basisstrom
Kollektorstrom aus der Lastgeraden
stromabhängige Verstärkung
effektive Basis-Emitter-Spannung
Exponentialterm
Gleichung 1
Basiskreis
mit
als Basis-Early-Spannung.
Gleichung 2
Kollektorkreis
Ausgeschrieben
Damit ergibt sich
und
wobei
in die erste Gleichung eingesetzt wird.
Parameter des Modells
Damit hätte dein statisches Modell folgende Parameter:
Sättigungsstrom
Idealfaktor
Stromverstärkung bei kleinen Strömen
Early-Spannung des Kollektorstroms
Early-Spannung des Basisstroms
Knickstrom für den β-Abfall
interner Basiswiderstand
Didaktische Empfehlung
Für dein Manuskript würde ich allerdings vermutlich bei
stehen bleiben.
Erst danach ein Kapitel
„Erweiterungen des einfachen Modells“
mit
und
einführen.
Das ergibt eine sehr schöne Hierarchie:
- Shockley
- Shockley + β
- Shockley + β + Early
- Shockley + β + Early + β-Abfall
- Shockley + β + Early + β-Abfall + Basiswiderstand
und jede Erweiterung entspricht unmittelbar Parametern, die auch im LTspice-Gummel-Poon-Modell vorkommen.
Ja, im Wesentlichen stimmt das. Die Idee ist dieselbe:
Die ideale Shockley-Gleichung
beschreibt nur den pn-Übergang selbst. Reale Bauelemente besitzen zusätzlich ohmsche Widerstände.
Dann ersetzt man
und erhält
bzw.
Das ist exakt dieselbe mathematische Struktur wie bei deinem Modell
Allerdings wäre ich vorsichtig mit der Aussage:
„Der Serienwiderstand ist der Faktor, der blaue LEDs gut approximiert.“
Er ist ein wichtiger Faktor, aber oft nicht der einzige.
Bei blauen InGaN-LEDs beobachtet man häufig:
- Nichtkonstanter Idealfaktor n
- Serienwiderstand R_ S
- Selbsterwärmung
- Rekombinationsmechanismen, die sich mit dem Strom ändern
Deshalb passt eine einzige Shockley-Kurve oft nur über 1--2 Stromdekaden.
Wenn du beispielsweise eine blaue LED misst, sieht die Kennlinie oft so aus:
- kleine Ströme: nahezu exponentiell
- mittlere Ströme: sehr gute Shockley-Näherung
- große Ströme: Spannung steigt stärker als exponentiell erwartet
Dieser letzte Effekt wird tatsächlich sehr gut durch
beschrieben.
Für Lehrzwecke würde ich sogar sagen:
Der Serienwiderstand einer LED spielt dieselbe Rolle wie der interne Basiswiderstand im erweiterten Transistormodell.
Beide beschreiben eine zusätzliche ohmsche Spannung, die bei hohen Strömen die ideale Exponentialkennlinie verlässt.
Deshalb ist dein Ansatz mit
V_eff = V_BE - I_B*R_B_int
genau dieselbe Art von Korrektur, die man bei LEDs mit einem Serienwiderstand verwendet.
Für Lehrzwecke ist das eine sehr schöne Frage, denn praktisch alle deine Parameter lassen sich direkt aus Kennlinien extrahieren.
1. IS und NF aus der Eingangskennlinie
Man misst bei festem VCE:
Im aktiven Bereich gilt:
Logarithmieren:
Vorgehen
Halblogarithmische Darstellung:
ergibt eine Gerade.
Steigung:
daraus
Achsenabschnitt:
also
2. BF aus den Stromverstärkungskennlinien
Bei kleinem Kollektorstrom (weit unter IKF)
Einfach messen:
im linearen Bereich.
Bei einem Kleinsignaltransistor erhält man typischerweise:
- BC547: 100...500
- 2N3904: 100...300
3. VAF aus den Ausgangskennlinien
Du misst
für konstantes IB.
Ideale Kennlinie:
IC
│ ─────────────
│
└────────────── VCE
Reale Kennlinie:
IC
│ /
│ /
│ /
└──/────────── VCE
Der Schnittpunkt der extrapolierten Geraden liegt bei
Beispiel
Wenn die Verlängerung die Spannungsachse bei
schneidet:
Genau das macht SPICE mit
4. VAR bzw. dein VAB
Das ist dasselbe Verfahren, aber für den Basisstrom.
Du misst:
bei konstantem VBE.
Dann:
Extrapoliert man die Geraden zurück, erhält man:
In vielen Datenblättern findet man diese Kennlinien allerdings nicht.
Deshalb wird VAR häufig geschätzt oder auf einen plausiblen Wert gesetzt.
5. IKF aus dem β-Abfall
Du hast modelliert:
Dazu misst man:
über mehrere Dekaden Strom.
Typische Form:
β
│ _____
│ /
│_____/ \\
│ \\__
└────────────────── IC
IKF liegt ungefähr dort, wo β merklich abzufallen beginnt.
Genauer:
Bei
ergibt dein Modell
Daher:
IKF = der Strom, bei dem β auf etwa 70 % seines Maximalwertes gefallen ist.
6. RB bzw. RBM
Diesen Parameter erkennt man an der Krümmung der Eingangskennlinie bei großen Strömen.
Ohne RB:
Mit RB:
Bei hohen Strömen steigt VBEstärker an als erwartet.
Bestimmung
Miss
und berechne
im Hochstrombereich.
Für dein Python-Modell
Die Parameter lassen sich folgendermaßen aus Messungen extrahieren:
Parameter Kennlinie -------------------- -------------------------------------------------- IS ln(IC)gegen VBE
NF Steigung von ln(IC)gegen VBE
BF IC/IBbei kleinen Strömen
VAF Extrapolation der IC(VCE)-Kennlinien
VAR (= dein VAB) Extrapolation der IB(VCE)-Kennlinien
IKF β-Abfall auf ca. 70 %
RBM Steigung von VBE(IB)im Hochstrombereich -----------------------------------------------------------------------
Für eine Vorlesung würde ich genau diese sechs Messungen zeigen, weil man damit fast dein gesamtes erweitertes Modell identifizieren kann.
Der minimale Datensatz, gerechnet
Dieses Teilmanuskript beschreibt, mit wie wenigen Parametern ein BJT statisch noch brauchbar beschrieben ist. Gerechnet wird derselbe Satz im Reiter BJT und SPICE (Transistor_21b.py: IS, βF, n, VA) und im Reiter Gummel-Poon (die vier Erweiterungen darüber). Hier steht nur, was sein eigener Bestand hergibt: die Gegenüberstellung der beiden Sätze.
Was die beiden Sätze enthalten
50_esp32_programm.md · Quelle: Kennlinienschreiber_ESP32_Code_Arduino.docx#include <Arduino.h>
#include "config.h"
#include "modbus.h"
#include "ad_da.h"
void setup() {
setup_modbus();
setup_ad_da();
} // setup
void loop() {
WorkModbus();
WorkAdDa();
} // loop
// ---------------- ad_da ----------------------------------------
#include <Wire.h>
#include <SPI.h>
#include "modbus.h"
#include "ad_da.h"
SPISettings SPISettings_AD7682(400000, MSBFIRST, SPI_MODE0);
SPISettings SPISettings_DAC8565(400000, MSBFIRST, SPI_MODE2);
uint16_t getAD7682(int aCS, uint8_t aKanal, uint16_t aRange){
uint8_t c[2];
digitalWrite(aCS, LOW);
delayMicroseconds(1);
aRange |= (aKanal << 9); // << (7+2)
c[0]=highByte(aRange);
c[1]=lowByte(aRange);
SPI.transfer(c, 2);
delayMicroseconds(1);
digitalWrite(aCS, HIGH);
delayMicroseconds(1);
return (c[0]<<8) | c[1];
} // getAD7682
uint16_t calc_miw(uint16_t mw, uint16_t *miws, int *imiw, int NMIW){
miws[*imiw]=mw;
(*imiw)++;
if (*imiw>=NMIW) *imiw=0;
int miw_sum=miws[0];
for (int n=1; n<NMIW; n++) miw_sum+=miws[n];
return miw_sum / NMIW;
} // calc_miw
void ReadADCs(){
#define AD_MODE (0x2000 | 0x1C00 | 0x0008 | 0x0001) << 2 // CFG update | Unipol to GND | low BW, int 4,096V | no SEQ, no read CFG
SPI.beginTransaction(SPISettings_AD7682);
static uint16_t miws0[NMIW_AD]={}, miws1[NMIW_AD]={}, miws2[NMIW_AD]={}, miws3[NMIW_AD]={};
static int imiw0=0,imiw1=0,imiw2=0,imiw3=0;
// bei der Abfrage wird Kanal+1 angefragt und Kanal-1 geliefert:
reg[REG_AD0+0]=getAD7682(PIN_CS_AD,2, AD_MODE); // cs2, CH0=Urc1, sigle 0..4V
reg[REG_ADMIW+0]=calc_miw(reg[REG_AD0+0], miws0,&imiw0, NMIW_AD);
reg[REG_AD0+1]=getAD7682(PIN_CS_AD,3, AD_MODE); // cs2, CH1=Urc2, sigle 0..4V
reg[REG_ADMIW+1]=calc_miw(reg[REG_AD0+1], miws1,&imiw1, NMIW_AD);
reg[REG_AD0+2]=getAD7682(PIN_CS_AD,0, AD_MODE); // cs2, CH2=Urb1, sigle 0..4V
reg[REG_ADMIW+2]=calc_miw(reg[REG_AD0+2], miws2,&imiw2, NMIW_AD);
reg[REG_AD0+3]=getAD7682(PIN_CS_AD,1, AD_MODE); // cs2, CH3=Urb2, sigle 0..4V
reg[REG_ADMIW+3]=calc_miw(reg[REG_AD0+3], miws3,&imiw3, NMIW_AD);
SPI.endTransaction();
} // ReadADCs
void setDAC8565(int aCS, int aKanal, uint16_t aWert){ // 4x DA 0..2.5V
uint8_t c[3];
digitalWrite(aCS, LOW);
delayMicroseconds(1);
c[0]=(aKanal << 1) | 0x10;
c[1]=highByte(aWert);
c[2]=lowByte(aWert);
SPI.transfer(c, 3);
delayMicroseconds(1);
digitalWrite(aCS, HIGH);
delayMicroseconds(1);
} // setDAC8565
void WriteDAs(){
SPI.beginTransaction(SPISettings_DAC8565);
setDAC8565(PIN_CS_DA, 0,reg[REG_DA0+0]); // UC
setDAC8565(PIN_CS_DA, 1,reg[REG_DA0+1]); // UB
// ch2, ch3: NC
SPI.endTransaction();
} // WriteDAs
void setup_ad_da(){
SPI.begin();
pinMode(PIN_CS_AD, OUTPUT);
pinMode(PIN_CS_DA, OUTPUT);
digitalWrite(PIN_CS_AD, HIGH);
digitalWrite(PIN_CS_DA, HIGH);
} // setup_ad_da
void WorkAdDa(){
ReadADCs();
WriteDAs();
} // WorkAdDa
// ---------------- ad_da ----------------------------------------
#ifndef __AD_DA_H__
#define __AD_DA_H__
#include "config.h"
extern "C"{
void setup_ad_da();
void WorkAdDa();
} // extern "C"
#endif /* ifndef */
// ---------------- config ----------------------------------------
#ifndef __CONFIG_H__
#define __CONFIG_H__
#include <Arduino.h>
#define SerialUSB Serial
#define MODBUS_ADR 1
#define PIN_CS_DA 5
#define PIN_CS_AD 17
#define PIN_MB_LED 22
#define REG_DA0 0 // 4 Register, Uc, Ub, NC,NC
#define REG_AD0 4 // 4 Register, Urc1, Urc2, Urb1, Urb2
#define REG_ADMIW 8 // 4 Register, wie REG_AD0 als Mittelwerte
#define MAX_REG 13 // 12=letzter Register
#define NMIW_AD 10 // Anzahl für Mittelwert
#endif /* ifndef */
// ---------------- modbus ----------------------------------------
#include "modbus.h"
uint16_t reg[MAX_REG]={0};
void setup_modbus(){
SerialUSB.begin(115200);
pinMode(PIN_MB_LED, OUTPUT);
digitalWrite(PIN_MB_LED, LOW);
} // setup_modbus
char* max(char *a, char*b){
if (a<b) return b; else return a;
} // min
uint32_t MBword(char *a){
return (*a << 8) | *(a+1);
}
void wordMB(uint32_t w, char *a){
*a=w >> 8;
a++;
*a=w & 0xFF;
}
bool ReadByteUSB(char* a){
if (SerialUSB.available()){
*a=SerialUSB.read();
return true;
}
return false;
} // ReadByteUSB
bool Sz(char a){
return (((a>=1) && (a<=6)) || (a==8) || (a==15) || (a==16));
}
// -------------- crc modbus ---------------------------------------------------
// ---------------------- Modbus Checksum --------------------------------------
uint16_t modbus_crc(char *a, int len){
// Table of CRC values for high-order byte:
static const unsigned char Modbus_auchCRCHi[256] = {
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40};
// Table of CRC values for low-order byte:
static const unsigned char Modbus_auchCRCLo[256] = {
0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,
0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,
0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,
0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1,0xD0,0x10,
0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,
0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,
0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,
0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,
0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,
0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,
0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,
0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,
0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,
0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,
0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,
0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40};
unsigned char uchCRCHi=0xFF, uchCRCLo=0xFF;
int uIndex,p;
for (p=0; p<len; p++) {
uIndex=(uchCRCHi ^ a[p]);
uchCRCHi=(uchCRCLo ^ Modbus_auchCRCHi[uIndex]);
uchCRCLo=Modbus_auchCRCLo[uIndex];
}
return((uchCRCHi<<8)|uchCRCLo);
} // modbus_crc
bool Modbus_chkCRC(char *a, int len){
return (MBword(&a[len-2])==modbus_crc(a, len-2));
} // Modbus_chkCRC
void delCahrs(char *a, char **pa, int anz){
*pa=max(a, *pa-anz);
for (char* p=a; p<*pa; p++) *p=*(p+anz);
} // delChars
void setReg(uint16_t aReg, uint16_t aWert){
if ((aReg<REG_AD0) && (reg[aReg]!=aWert)){
reg[aReg]=aWert;
}
} // setReg
void WorkModbus(){
static char a[255], *pa=a;
static int led_timer=0;
char c;
uint16_t SollLen,ServerAdr,RegAdr,Nreg,Nbyte,Ikanal;
if (ReadByteUSB(&c)){
*pa++=c;
while ((pa-a>=8) && !Sz(a[1])) delCahrs(a,&pa,1);
if (pa-a>=8){
if ((a[1]==15) || (a[1]==16)) SollLen=a[6]+9; else SollLen=8;
if (pa-a>=SollLen){
if (Modbus_chkCRC(a, SollLen)) {
digitalWrite(PIN_MB_LED, HIGH);
led_timer=100;
ServerAdr=a[0];
if ((ServerAdr==0) || (ServerAdr==MODBUS_ADR)){
char r[255], *pr=r;
RegAdr=MBword(&a[2]);
Nreg=MBword(&a[4]);
switch (a[1]){
case 1:
case 2: // DI
Nbyte=(Nreg+7) / 8;
*pr++=a[0];
*pr++=a[1];
*pr++=Nbyte;
for (int n=0; n<Nbyte; n++) *pr++=0;
break;
case 3:
case 4: // WI
Nreg=min(Nreg,(uint16_t)124);
Nbyte=Nreg*2;
Ikanal=RegAdr;
*pr++=a[0];
*pr++=a[1];
*pr++=Nbyte;
for (int n=0; n<Nreg; n++){
if (Ikanal<MAX_REG) wordMB(reg[Ikanal], pr); else wordMB(0, pr);
Ikanal++;
pr+=2;
}
break;
case 5: // DO single
// RegAdr, Bitwert in Nreg
for (int n=0; n<6; n++) *pr++=a[n];
break;
case 6: // WO single
setReg(RegAdr, Nreg); // Nr, Wert
for (int n=0; n<6; n++) *pr++=a[n];
break;
case 8:
for (int n=0; n<6; n++) *pr++=a[n];
break;
case 15: // DO multiple
for (int n=0; n<6; n++) *pr++=a[n];
break;
case 16: // WO multiple
Nreg=min(Nreg, (uint16_t)(a[6] / 2));
Ikanal=RegAdr;
pa=&a[7];
for (int n=0; n<Nreg; n++){
setReg(Ikanal, MBword(pa)); // Nr, Wert
Ikanal++;
pa+=2;
}
for (int n=0; n<6; n++) *pr++=a[n];
break;
}
if ((ServerAdr>0) && (pr>r)){ // 0=Broadcast: bearbeiten und nicht antworten
wordMB(modbus_crc(r, pr-r), pr);
pr+=2;
SerialUSB.write(r, pr-r);
}
} // if ServerAdr ...
delCahrs(a,&pa,SollLen);
} else delCahrs(a,&pa,1);
} // if pa-a>=SollLen
} // if pa-a>=8
} // if ReadByteUSB(&c)
if (led_timer){
led_timer--;
if (!led_timer) digitalWrite(PIN_MB_LED, LOW);
}
} // WorkModbus
// ---------------- modbus ----------------------------------------
#ifndef __MODBUS_H__
#define __MODBUS_H__
#include "config.h"
extern "C"{
extern uint16_t reg[MAX_REG];
void setup_modbus();
void WorkModbus();
} // extern "C"
#endif /* ifndef */
Das Gerät: aus dem Registerwert in Volt, aus Volt in Ampere
Übertragen aus Kennlinienschreiber_1.py, Zeilen 30–52 und 119–140: volt_to_dac, adc_to_volt und die beiden Umrechnungen, mit denen aus den vier gemittelten Wandlerwerten Kollektor- und Basisstrom werden. Darunter die neun Ausgangskennfelder, die der Tester aufgenommen hat, unmittelbar aus seinen CSV-Dateien gezeichnet.
Das Gerät
Die Platine mit dem Prüfling
Die Funktionsübersicht — seine Handskizze
Vom Übersichtsbild zur Ausführung: die beiden Schaltplanblätter
Schaltplan_Kennlinienschreiber.pdf
bei. Im Schriftfeld steht der Name eines Dritten; er ist in der ausgelieferten Fassung
buchstabengleich durch „x“ ersetzt (Vorgabe vom 29.09.2026).Wo das Gerät ausführlich beschrieben ist
Diese Seite zeigt das Gerät so weit, wie es zum Verständnis der Zahlen nötig ist: Platine, Übersicht, Schaltplan. Die ausführliche Darstellung — Kaskadenregelung der beiden Quellen, Registerplan der Modbus-Schnittstelle und die Herleitung der Gerätekonstanten — steht in der eigenen Arbeit zum Kennlinienschreiber. Die Veröffentlichungsadresse wird hier nachgetragen, sobald sie steht.
Von der Klemme zur Zahl
Die Gerätekonstanten, wie sie in seinem Programm stehen
Umrechnung, Schritt für Schritt
Das gewählte Ausgangskennfeld des Testers
60_gummel_poon.md · Quelle: BUCH/kapitel_06_gummel_poon.md (Markdown-Quelle)6 Das Gummel-Poon-Modell und seine SPICE-Parameter
6.1 Wo wir stehen — und wohin dieses Kapitel führt
In Teil I haben wir den Transistor vermessen: Der Kennlinienschreiber lieferte die Eingangs-, Übertragungs- und Ausgangskennlinien als Zahlenkolonnen, und das Vierquadranten-Kennlinienfeld hat diese Daten geordnet. In Teil II haben wir das numerische Handwerkszeug erarbeitet: Wir können nichtlineare Gleichungen mit Newton-Raphson lösen und ganze Netzwerke über das Knotenpotentialverfahren aufstellen — geübt an der Diode, deren Exponentialkennlinie uns dort zum ersten Mal begegnet ist.
Jetzt fügen sich beide Stränge zusammen. Die Messdaten beschreiben den Transistor — aber sie erklären ihn nicht, und sie lassen sich nicht in einen Schaltungssimulator stecken. Dazu braucht es ein Modell: einen Satz von Gleichungen mit wenigen Parametern, der die gemessenen Kennlinien reproduziert. Das Standardmodell der Schaltungssimulation ist das Gummel-Poon-Modell (1970), das jedem SPICE-Simulator — von LTspice bis ngspice — zugrunde liegt.
Dieses Kapitel baut das Modell Effekt für Effekt auf. Wir beginnen mit der idealen Exponentialkennlinie und ergänzen nacheinander genau die Abweichungen, die in unseren Messungen sichtbar werden:
- die endliche Steigung der Ausgangskennlinien → Early-Effekt (VA, SPICE
VAF), - dieselbe Erscheinung im Basisstrom → Basis-Early-Effekt (VAB, SPICE
VAR), - der Abfall der Stromverstärkung bei großen Strömen → Hochinjektion (IKF, SPICE
IKF), - der Spannungsabfall im Basisbahngebiet → innerer Basiswiderstand (RB,int, SPICE
RBM).
Am Ende steht ein geschlossenes Gleichungssystem mit benannten Parametern und benannten Grenzen. Die beiden Anschlussfragen sind dann zwingend: Woher bekommen wir die Zahlenwerte der Parameter? — aus der Messung, Kapitel 7. Und wie löst man das nichtlineare System in einer konkreten Schaltung? — mit Newton-Raphson, Kapitel 8.
Grundannahmen dieses Kapitels (sofern nicht anders vermerkt): npn-Transistor im Vorwärts-Aktivbetrieb (VBE gt;0, VBC lt;0); Temperatur T=300 K; Quasistatik (keine Kapazitäten — das Frequenzverhalten folgt in Kapitel 13); Niedriginjektion außer der in Abschnitt 6.6 behandelten Hochstromkorrektur. Alle Gleichungen sind in den Klemmenspannungen VBE und VCE formuliert.
6.2 Ausgangspunkt: der Transistor als gesteuerte Quelle
Ein npn-Transistor besteht aus zwei gegeneinander geschalteten pn-Übergängen — Emitter–Basis und Kollektor–Basis — mit einer sehr dünnen Basis dazwischen. Im Aktivbetrieb ist die BE-Diode in Flussrichtung gepolt, die BC-Diode in Sperrrichtung. Die über die BE-Diode in die Basis injizierten Elektronen diffundieren durch die dünne Basis und werden vom Feld der gesperrten BC-Diode zum Kollektor „abgesaugt". Der Kollektorstrom wird also von der Spannung VBE gesteuert — der Transistor ist eine spannungsgesteuerte Stromquelle.
Das klassische Ebers-Moll-Modell beschreibt beide Übergänge durch ihre Diodengleichungen. Im Vorwärts-Aktivbetrieb dominiert der Vorwärts-Transportstrom
mit dem Transport-Sättigungsstrom IS. Idealerweise ist IC ≈ ICC und IB = ICC/βF. Was Ebers-Moll nicht erfasst — Early-Effekt, Hochinjektion, Bahnwiderstände — ergänzt das Gummel-Poon-Modell. Genau diese Lücken schließen wir jetzt Schritt für Schritt.
6.3 Die ideale Kennlinie und die Thermospannung
Der Kollektorstrom im Aktivbetrieb folgt der Shockley-Gleichung (für VBE≫ VT ist die -1 vernachlässigbar):
Darin ist n der Emissionskoeffizient (SPICE NF, ideal n≈ 1) und VT die Thermospannung. Sie ist keine Materialeigenschaft, sondern eine Naturkonstanten-Kombination — und damit der Anker, an dem später die Steigung des Gummel-Plots hängt:
Zwei Eigenschaften dieser Kennlinie tragen das ganze Kapitel:
- Sie ist steil: pro n VTln 10 ≈ 60 mV Spannungserhöhung wächst IC um den Faktor 10. Deshalb erscheint die Kennlinie im halblogarithmischen Gummel-Plot als Gerade (Abbildung 6.1) — das nutzen wir in Kapitel 7 zur Bestimmung von IS und n.
- Sie ist nichtlinear: Jede Schaltungsrechnung mit ihr führt auf transzendente Gleichungen — deshalb brauchten wir Teil II.
Rechenbeispiel 6.1 — die Steilheit greifbar gemacht. Der BC337-25 (IS=4,1·10-14A, n=1) soll IC = 5 mA führen. Auflösen der Kennlinie nach VBE: $VBE = n VT ln(IC)/(IS) = 25,85 mV·ln(5·10-3)/(4,1·10-14) = 25,85 mV· 25,52 = 660 mV.Für den doppelten Strom (10\,mA) braucht es nur25{,}85\,\text{mV}\cdot\ln 2 = 17{,}9\,\text{mV}mehr — die gesamte Nutzstromspanne eines Kleinsignaltransistors spielt sich in wenigen zehn MillivoltV_{BE}ab. Das erklärt, warum Arbeitspunkte nie überV_{BE}$ „eingestellt", sondern immer über Widerstände stabilisiert werden (Kapitel 8).
Der Basisstrom folgt im idealen Modell mit konstanter Stromverstärkung βF (SPICE BF):
In der Praxis ist β jedoch strom- und spannungsabhängig — die Messung in Kapitel 3 hat das bereits gezeigt. Die folgenden Abschnitte bauen diese Abhängigkeiten einzeln ins Modell ein.
6.4 Erste Erweiterung: der Early-Effekt (VA, SPICE VAF)
(1) Beobachtung in der Messung. Die gemessenen Ausgangskennlinien IC(VCE) sind im aktiven Bereich nicht exakt waagerecht — sie steigen leicht mit VCE an. Das ideale Modell aus 6.3 kennt aber gar keine VCE-Abhängigkeit. Hier fehlt also ein Effekt.
(2) Physikalische Ursache. Steigt VCE, weitet sich die Raumladungszone des gesperrten Kollektor-Basis-Übergangs in die Basis hinein aus. Die effektive Basisweite sinkt (Basisweitenmodulation), der Diffusionsgradient der Elektronen in der Basis wird steiler — und mit ihm steigt der Kollektorstrom. Dieser Effekt heißt nach James Early (1952) Early-Effekt.
(3) Modellterm. Die Kennlinie erhält einen linearen Korrekturfaktor:
mit der Early-Spannung VA (SPICE VAF, typisch 50–200 V).
(4) Geometrische Deutung — zugleich Messvorschrift. Extrapoliert man die flachen Äste aller Ausgangskennlinien nach links, schneiden sie die VCE-Achse (näherungsweise) in einem gemeinsamen Punkt VCE=-VA (Abbildung 6.2). Je größer VA, desto flacher die Kennlinien, desto idealer der Transistor. Genau diese Konstruktion wird in Kapitel 7 zur Bestimmung von VA verwendet — der Modellterm liefert seine Messvorschrift also gleich mit.
Rechenbeispiel 6.2 — wie groß ist der Effekt? Arbeitspunkt IC = 5 mA bei VCE=5 V, VA=146V. Steigt VCE um 5 V auf 10 V, wächst der Kollektorstrom um den Faktor $(1+10/146)/(1+5/146) = (1,0685)/(1,0342) = 1,033,also um 3,3 % auf5{,}17\,\text{mA}. Klein — aber genau diese 3 % sind die endliche Steigung, die der Kurventracer sichtbar macht, und ihr Kehrwert bestimmt den Ausgangswiderstand:r_{CE}\approx V_A/I_C = 146\,\text{V}/5\,\text{mA} = 29\,\text{k}\Omega$.
(5) Konsequenz für das Kleinsignalverhalten. Ableiten der Early-Gleichung nach VCE ergibt den differentiellen Ausgangsleitwert
denn der Ausdruck vor 1/VA ist gerade der Arbeitspunkt-Kollektorstrom. Der Early-Effekt ist damit der physikalische Ursprung des endlichen Ausgangswiderstands rCE≈ VA/IC — diesen Faden nehmen wir in Kapitel 11 (h22e) wieder auf.
(6) Zahlenbeispiel BC337-25. Aus den Messungen (Kapitel 7) folgt VA ≈ 146 V; das Datenblatt-SPICE-Modell nennt 145,7 V — eine erste Bestätigung, dass Modellterm und Wirklichkeit zusammenpassen.
6.5 Zweite Erweiterung: der Basis-Early-Effekt (VAB, SPICE VAR)
Die Basisweitenmodulation verändert nicht nur den Kollektorstrom, sondern auch den Basisstrom — dieselbe Ursache, ein zweiter Wirkungsort. SPICE modelliert dies analog mit der Basis-Early-Spannung VAB (SPICE VAR, typisch 100–500 V):
(Die Größen βeff und VBE,eff werden in den nächsten beiden Abschnitten eingeführt; für den Moment gilt βeff=βF und VBE,eff=VBE.)
Für VAB→∞ verschwindet der Effekt. In der Praxis ist VAB meist deutlich größer als VA — der Basis-Early-Effekt ist also schwächer als sein Kollektor-Gegenstück. Er wirkt unscheinbar, trägt aber eine wichtige Konsequenz: Er ist die physikalische Quelle der Spannungsrückwirkung h12e im Vierpolmodell (Kapitel 11). Ein Modell ohne VAR hat zwingend h12e=0 — das werden wir dort als benannte Modellgrenze wiederfinden.
6.6 Dritte Erweiterung: Hochinjektion (IKF, SPICE IKF)
(1) Beobachtung. Trägt man die gemessene Stromverstärkung hFE=IC/IB über IC auf, fällt sie bei großen Strömen ab (Abbildung 6.3). Das ideale Modell mit konstantem βF kann das nicht erklären.
(2) Physikalische Ursache. Bei großen Kollektorströmen wird die injizierte Ladungsträgerdichte in der Basis mit der Basisdotierung vergleichbar — man spricht von Hochinjektion. Zwei Mechanismen drücken dann die Verstärkung:
- Webster-Effekt: Die Rekombination in der Basis wächst überproportional, das Verhältnis IC/IB sinkt.
- Kirk-Effekt: Bei sehr hohen Stromdichten verlagert sich die Kollektor-Raumladungszone in die Epitaxieschicht — die Basis „weitet sich aus".
(3) Herleitung des Modellterms. Das Gummel-Poon-Modell fasst beide Mechanismen über die normierte Basisladung qB = QB/QB0 zusammen. Näherungsweise gilt
mit den beiden Grenzfällen
Da der Transportstrom umgekehrt proportional zur Basisladung ist (IC propto 1/qB), wird die wirksame Verstärkung durch qB geteilt:
Der Vorwärts-Kniestrom IKF (SPICE IKF, typisch 10 mA–1 A) markiert die Grenze: Bei IC=IKF ist β um den Faktor √(2) gefallen; weit darüber sinkt β mit 1/√(IC).
(4) Zahlenbeispiel — und eine wichtige Vorwegnahme. Für den BC337-25 gilt IKF≈ 0,9 A. Unsere Kennlinien wurden bis IC ≤ 11 mA gemessen, also IC/IKF ≲ 0,01:
— ein Abfall um 0,6 %, unterhalb jeder Messauflösung. Erst bei IC = IKF = 0,9A fiele β auf 292/√2 = 206. Der Abfall liegt also außerhalb des Messfensters (grüner Bereich in Abbildung 6.3). Das hat eine Konsequenz, die in Kapitel 7 zum Prinzip erhoben wird: Ein Parameter, dessen Effekt im Messbereich nicht sichtbar ist, kann aus diesen Messungen auch nicht bestimmt werden.
6.7 Vierte Erweiterung: der innere Basiswiderstand (RB,int, SPICE RBM)
(1) Physikalische Ursache. Das Basisgebiet ist dünn und lateral ausgedehnt; der Basisstrom muss durch dessen Bahnwiderstand fließen. Dieser innere Basiswiderstand RB,int (SPICE RBM, typisch 1–50 Ω) verursacht einen ohmschen Spannungsabfall — die am Übergang wirksame Basis-Emitter-Spannung ist kleiner als die Klemmenspannung:
Nur VBE,eff treibt den Übergang; in allen Exponentialtermen des Basisstroms ist fortan VBE durch VBE,eff zu ersetzen.
Rechenbeispiel 6.3 — Millivolt, die zählen. BC337-25 im Arbeitspunkt IC=5mA: IB ≈ 5 mA/290 = 17,2 µA. Mit RB,int = 60 Ω folgt $Δ V = IB RB,int = 17,2 µA· 60 Ω = 1,03 mV.Ein einziges Millivolt — aber die Exponentialkennlinie übersetzt es ine^{1{,}03/25{,}85}-1 \approx 4\,\%$ Stromänderung. Bei zehnfachem Strom sind es bereits 10 mV und über 40 %: Der innere Basiswiderstand wird zum dominanten Effekt des Hochstrombereichs — dort krümmt er den Gummel-Plot sichtbar nach unten (Kapitel 7 nutzt genau diese Signatur, um seine Bestimmbarkeit zu beurteilen).
(2) Die implizite Kopplung — eine strukturelle Eigenschaft. Hier entsteht eine Besonderheit, die uns durch die Kapitel 8 und 9 begleiten wird: IB hängt von VBE,eff ab, und VBE,eff über den Spannungsabfall wiederum von IB. Die Gleichung ist implizit — es gibt keine geschlossene Auflösung. In einem Simulationsmodell (Simulink, Kapitel 9) äußert sich das als algebraische Schleife. Sauber löst man sie
- physikalisch, indem man eine kleine Basis-Kapazität einführt (Knotengleichung C dot VBE,eff = (VBE-VBE,eff)/RB,int - IB; im stationären Zustand exakt), oder
- numerisch durch einen Fixpunkt- oder Newton-Löser — genau das Verfahren aus Teil II, und genau so macht es SPICE intern.
Ein bloßes Verzögerungsglied (z-1) bricht die Schleife zwar auf, ist wegen der steilen Exponentialfunktion aber instabilitätsgefährdet. Wenn schon, dann bricht man die Schleife an der Spannung VBE,eff auf, nicht am Strom — die Spannung ändert sich zwischen zwei Iterationen um Millivolt, der Strom um Größenordnungen.
6.8 Das vollständige Modell
Alle vier Erweiterungen zusammengenommen — jede einzeln hergeleitet, jede mit benannter Ursache — ergeben das Gleichungssystem dieses Buches:
Gültigkeitsbereich: Vorwärts-Aktivbetrieb (keine Sättigung, kein Inversbetrieb), T=300 K, Quasistatik, Niedriginjektion bis auf die über IKF erfasste Hochstromkorrektur.
Benannte Modellgrenze. Reale Kleinsignaltransistoren zeigen bei kleinen Strömen einen leichten hFE-Anstieg (Rekombination in der BE-Sperrschicht; im vollen Gummel-Poon-Modell über den LecktermISE/NEbeschrieben). Unser Modell enthält diesen Effekt bewusst nicht — er bleibt in Kapitel 7 als kleine, ausgewiesene Restabweichung zwischen Modell und Messung sichtbar. Ein Modell, dessen Grenzen benannt sind, ist mehr wert als ein scheinbar vollständiges, dessen Terme man nicht bestimmen kann.
6.9 Das Modell zum Anfassen: die Python-Implementierung
Ein Modell versteht man erst, wenn man es rechnen lässt. Das komplette Gleichungssystem aus 6.8 passt in wenige Zeilen Python — genau diese Funktionen bilden den Kern aller Werkzeuge dieses Buches (von der Parameterextraktion in Kapitel 7 bis zur Arbeitspunktsuche in Kapitel 8):
import numpy as np
# ---- Modellparameter BC337-25 (aus Kapitel 7 bzw. Datenblatt) ----
IS = 4.1e-14 # A Transport-Saettigungsstrom (SPICE IS)
NF = 1.0 # - Emissionskoeffizient (SPICE NF)
BETA = 292.0 # - ideale Stromverstaerkung (SPICE BF)
VA = 146.0 # V Early-Spannung (SPICE VAF)
VAB = 200.0 # V Basis-Early-Spannung (SPICE VAR)
IKF = 0.9 # A Kniestrom Hochinjektion (SPICE IKF)
RBI = 60.0 # Ohm innerer Basiswiderstand (SPICE RBM)
VT = 0.02585 # V Thermospannung bei 300 K
def beta_eff(ic):
"""Webster-Formel: stromabhaengige Verstaerkung (Abschn. 6.6)."""
return BETA / np.sqrt(1.0 + ic / IKF)
def v_be_eff(v_be, i_b):
"""wirksame BE-Spannung nach Abfall an R_B,int (Abschn. 6.7)."""
return v_be - i_b * RBI
def i_c_modell(v_be, v_ce):
"""Kollektorstrom mit Early-Effekt (Abschn. 6.4)."""
return IS * np.exp(v_be / (NF * VT)) * (1.0 + v_ce / VA)
def i_b_modell(v_be_wirksam, v_ce, ic):
"""Basisstrom mit Basis-Early und beta_eff (Abschn. 6.5/6.6)."""
return (IS / beta_eff(ic)) * np.exp(v_be_wirksam / (NF * VT)) \
* (1.0 + v_ce / VAB)
Man beachte, wie die implizite Kopplung aus Abschnitt 6.7 hier sichtbar wird: i_b_modell braucht die wirksame Spannung v_be_eff(v_be, i_b) — die aber den Basisstrom i_b bereits enthält. Wer die Funktionen naiv nacheinander aufruft, rechnet mit dem Basisstrom der vorigen Iteration; die konsistente Lösung liefert erst der Newton-Löser in Kapitel 8. Für den Aktivbetrieb bei moderaten Strömen konvergiert alternativ eine einfache Fixpunktiteration (IB(0)=0, dann wenige Male IB(k+1) aus VBE-IB(k)RB,int berechnen) — die Korrektur ist ja nur millivoltklein (Rechenbeispiel 6.3).
Ein kurzer Testlauf im Arbeitspunkt aus den Rechenbeispielen (VBE=660mV, VCE=5V) verankert die Zahlen:
vbe, vce = 0.660, 5.0 ic = i_c_modell(vbe, vce) # -> 5.20 mA (5 mA ideal + 3.4 % Early) ib = ic / beta_eff(ic) # -> 17.9 uA (Startwert) ib = i_b_modell(v_be_eff(vbe, ib), vce, ic) # eine Fixpunkt-Korrektur print(ic, ib, ic/ib) # 5.20 mA, 17.0 uA, beta ~ 305
Schon dieser Dreizeiler zeigt das Zusammenspiel der Effekte: Der Early-Faktor hebt den idealen 5-mA-Punkt um 3,4 % an (Rechenbeispiel 6.2), der innere Basiswiderstand drückt den Basisstrom um gut 4 % (Rechenbeispiel 6.3), und βeff bleibt bei diesen Strömen praktisch βF (Rechenbeispiel in 6.6).
Sämtliche Abbildungen dieses Kapitels sind mit genau diesen Funktionen erzeugt (kap06_plots.py im Begleitmaterial) — es gibt keine „Illustrationen", nur gerechnetes Modell. Das ist das Reproduzierbarkeits-Prinzip des Buches: Jede Kurve lässt sich aus Code und Parametern nachvollziehen.
6.10 Die SPICE-Parameter im Überblick
Damit ist jeder Parameter des Modells eingeführt, physikalisch begründet und einem SPICE-Namen zugeordnet:
| SPICE | Symbol | Bedeutung | Herkunft im Modell | BC337-25 (Referenz) |
|---|---|---|---|---|
IS | IS | Transport-Sättigungsstrom | Abschn. 6.3 | 4,1·10-14 A |
NF | n | Vorwärts-Emissionskoeffizient | Abschn. 6.3 | 1,0 |
BF | βF | ideale Vorwärts-Stromverstärkung | Abschn. 6.3 | 292 |
VAF | VA | Vorwärts-Early-Spannung | Abschn. 6.4 | 146 V |
VAR | VAB | Basis-(Rückwärts-)Early-Spannung | Abschn. 6.5 | (Rückwirkung) |
IKF | IKF | Vorwärts-Kniestrom (Hochinjektion) | Abschn. 6.6 | 0,9 A |
RBM | RB,int | innerer Basisbahnwiderstand | Abschn. 6.7 | sim 60 Ω |
Die weiteren Gummel-Poon-Parameter (BR, ISC, NC, IKR, RC, RE für Invers- und Sperrbetrieb; CJE, CJC, TF, TR für die Dynamik) werden erst gebraucht, wenn Inversbetrieb oder Frequenzverhalten ins Spiel kommen — Letzteres in Kapitel 13. Für den Vorwärts-Aktivbetrieb bei Gleichstrom ist der obige Satz vollständig.
6.11 Ideal gegen erweitert — was das Modell leistet
| Eigenschaft | ideales Modell (6.3) | erweitertes Modell (6.8) |
|---|---|---|
| Ausgangskennlinie | exakt waagerecht | Steigung IC/VA (VAF) |
| Basisstrom | VCE-unabhängig | Faktor (1+VCE/VAB) (VAR) |
| Stromverstärkung | konstant βF | βeff(IC) mit Kniestrom (IKF) |
| Basisbahngebiet | widerstandsfrei | VBE,eff=VBE-IB RB,int (RBM) |
| Arbeitspunkt | analytisch lösbar | implizit → Newton-Raphson (Kap. 8) |
| Genauigkeit | Orientierung | SPICE-Niveau |
Der Preis der Genauigkeit steht in der vorletzten Zeile: Das erweiterte Modell ist analytisch nicht mehr auflösbar. Was im idealen Modell eine Zeile Rechnung war, wird zum nichtlinearen Gleichungssystem — und damit zur Aufgabe für das Handwerkszeug aus Teil II.
6.12 Zusammenfassung und Ausblick
- Das Gummel-Poon-Modell erweitert die ideale Exponentialkennlinie um vier messbare Effekte: Early (VA), Basis-Early (VAB), Hochinjektion (IKF) und inneren Basiswiderstand (RB,int) — durchgehend formuliert in den Klemmenspannungen VBE, VCE.
- Jeder Modellterm bringt seine Messvorschrift mit: die Gummel-Plot-Gerade für IS und n, den gemeinsamen Achsenschnittpunkt für VA, das hFE-Plateau für βF, den Hochstromabfall für IKF.
- Zwei strukturelle Eigenschaften prägen alles Weitere: die Nichtlinearität (kein geschlossener Arbeitspunkt) und die implizite Kopplung über VBE,eff (algebraische Schleife).
Damit ist das Modell vollständig — aber es ist noch eine Hülle: Seine Parameter sind Buchstaben. Kapitel 7 füllt sie mit Zahlen: aus den selbst gemessenen Kennlinien, Schritt für Schritt, mit jeder Annahme und jeder Grenze der Bestimmbarkeit. Danach löst Kapitel 8 das Modell in einer realen Schaltung, und Kapitel 9 lässt es in LTspice und Simulink gegen die Messung antreten.
Das Gummel-Poon-Modell, rechnend
Übertragen aus BUCH/kapitel_06_gummel_poon.md, Abschnitt 6.9 — der Python-Implementierung, die im Manuskript darüber steht, Funktion für Funktion: beta_eff (Webster), v_be_eff (innerer Basiswiderstand), i_c_modell (Early) und i_b_modell (Basis-Early und βeff), mit genau den Parametern aus Abschnitt 6.9. Die implizite Kopplung wird wie dort durch Fixpunktiteration gelöst.
Der Testlauf aus Abschnitt 6.9
Die Fixpunktiteration auf IB
Das Kennlinienfeld aus diesem Modell, mit den Messpunkten des Kurventracers darüber
bjt_fit.py an genau diese Kurven angepasst hat —, legt die Linien auf die
Punkte. Das ist der Unterschied zwischen einem Datenblattwert und einem gemessenen
Bauteil, und er steht hier absichtlich sichtbar.Was die vier Erweiterungen einzeln bewirken
70_parameterextraktion.md · Quelle: BUCH/kapitel_07_parameterextraktion.md (Markdown-Quelle)7 Parameterextraktion: vom Messwert zum Zahlenwert
7.1 Sinn und Ziel dieses Kapitels
Warum dieses Kapitel das Scharnier des Buches ist: Kapitel 6 hat das Modell aufgebaut — aber seine Parameter sind Buchstaben. Wer sie aus dem Datenblatt oder einer heruntergeladenen .model-Karte übernimmt, simuliert einen Katalog-Transistor, nicht das Bauteil auf seinem Tisch: hFE streut in der Serie um den Faktor 4, und ob die Katalogwerte je an einem Exemplar gemessen wurden, weiß niemand. Dieses Kapitel schließt die Lücke zwischen Theorie und Praxis: Es macht aus den selbst gemessenen Kennlinien (Teil I) den Parametersatz des eigenen, konkreten Transistors — nachvollziehbar bis in jede Formel und jeden Ablesewert. Erst damit werden die Simulationen der Kapitel 8 und 9 zu überprüfbaren Aussagen über dieses Bauteil.
Nach diesem Kapitel können Sie: aus dem Gummel-Plot den Sättigungsstrom IS und den Idealfaktor n extrahieren — grafisch per Geradenfit und von Hand über zwei Messpunkte, die Stromverstärkung βF aus dem IC/IB-Plateau bestimmen, die Early-Spannung VA durch Extrapolation des Ausgangskennfelds ermitteln, den Knickstrom IKF über das 70,7-%-Kriterium ablesen — und erkennen, wann er nicht ablesbar ist, den inneren Basiswiderstand RB,int aus der Kompression der Eingangskennlinie berechnen, mit globalem Fit und Identifizierbarkeitsanalyse beurteilen, welche Parameter wirklich „aus den Daten" kommen — und welche nur gesetzt sind.
Der Fahrplan. Die Extraktion folgt einer festen Reihenfolge, denn spätere Parameter bauen auf früheren auf:
Die Extraktion folgt einer festen Reihenfolge, denn spätere Parameter bauen auf früheren auf:
Und wir gehen den Weg zweimal, mit Absicht:
- Durchlauf 1 — BC337-25 am Kurventracer: Hier entwickeln wir die
Methode Schritt für Schritt und erweitern sie am Ende um zwei Werkzeuge, die über das übliche Vorgehen hinausgehen: den globalen Fit über alle Kennlinienfelder und die Identifizierbarkeitsanalyse.
- Durchlauf 2 — BC547 am eigenen Kennlinienschreiber (Kapitel 2):
Derselbe Weg, eigenständig durchgerechnet mit Zwei-Punkt-Auswertungen, die sich vollständig von Hand nachvollziehen lassen — der Beleg, dass die Methode nicht am Gerät hängt.
Dass beide Durchläufe teils unterschiedliche Antworten auf dieselbe Frage geben (beim einen ist IKF bestimmbar, beim anderen nicht), ist kein Makel, sondern die zentrale Lektion dieses Kapitels — sie wird in Abschnitt 7.11 auf den Punkt gebracht.
7.2 Die Messdatenbasis
Messprinzip. Ein Kennlinienschreiber legt definierte Spannungs- bzw. Stromrampen an den Prüfling und zeichnet die Ströme auf. Für die vollständige Extraktion braucht es drei Messreihen:
| Messreihe | Bedingung | liefert |
|---|---|---|
| Gummel-Plot (IC, IB über VBE) | VCE=const. (z. B. 5 V), log. Stromachse | IS, n, βF, IKF |
| Ausgangskennfeld (IC über VCE) | mehrere feste IB-Stufen | VA |
| Eingangskennlinie (VBE über IB) | festes VCE, hohe Auflösung | RB,int |
Die Basis-Early-Spannung VAB (VAR) ist messtechnisch deutlich aufwendiger (sie verlangt die VCE-Abhängigkeit von IB bei sehr hoher Stromauflösung); in der Praxis übernimmt man sie aus dem Datenblatt oder schätzt sie mit der Faustregel VAB≈ 2 VA — ihr Einfluss auf die Schaltungsanalyse ist klein (Kapitel 6.5).
Zwei Fallstricke schon bei der Messung:
- Thermische Drift: IS verdoppelt sich näherungsweise alle
8–10 K. Der Kennlinienschreiber muss die Selbsterwärmung klein halten (Pulsmessung, Strombegrenzung), sonst verschieben sich alle abgeleiteten Parameter mit der Messzeit.
- Serienstreuung: hFE streut beim BC547 herstellerseitig um
den Faktor 4 (Klassengrenzen 110–800). Jede Extraktion gilt nur für das konkrete Exemplar — genau deshalb misst man selbst, statt Katalogwerte zu übernehmen.
Für Durchlauf 1 liegen fünf Kennlinienfelder des BC337-25 als Kurventracer-Dateien vor (Ic_Vbe, Ic_Vce, Ic_Ib, hFE_Ic, hFE_Vce); Durchlauf 2 nutzt die Messreihen des eigenen Kennlinienschreibers aus Kapitel 2.
7.3 Schritt 1: IS und n aus dem Gummel-Plot
Prinzip. Im halblogarithmischen Gummel-Plot wird die Exponentialkennlinie zur Geraden (Abbildung 6.1):
Steigung und Achsenabschnitt sind die beiden Messgrößen:
Praktische Auswertung über zwei Punkte. Für die Handauswertung genügen zwei Punkte (VBE1,IC1), (VBE2,IC2) aus dem linearen Bereich:
Rechenbeispiel 7.1 — BC547, von Hand. Zwei Punkte aus dem linearen Ast (VCE=5V, Raumtemperatur): VBE1=0,600V → IC1=0,5mA und VBE2=0,660V → IC2=5,0mA. $n=(0,060)/(0,02586·ln 10) =(0,060)/(0,05954)=1,008≈ 1,0,IS=(0,5 mA)/(e0,600/(1,008· 0,02586)) =(5·10-4)/(9,9·109)=5,0·10-14 A.Zum Vergleich Durchlauf 1 (BC337-25, Geradenfit statt zwei Punkte):n=1{,}004,I_S=4{,}8\cdot10^{-14}\,A — zwei Bauteile, zwei Messgeräte, dieselbe Größenordnung undn\approx 1$: der Diffusionsstrom dominiert, wie es die Theorie für Silizium verlangt.
Die Fensterwahl ist die halbe Auswertung. Ausgewertet werden darf nur der rein exponentielle Ast:
- Nach unten begrenzen Leckströme und der Rausch-/Quantisierungsboden
des Messgeräts die Gerade (beim Kurventracer ≈ 5 µA) — darunter krümmt sie sich nach oben.
- Nach oben krümmen Hochinjektion und RB,int die Gerade
nach unten.
Wie empfindlich das ist, zeigte Durchlauf 1 drastisch: Ein zu weit gewähltes Fenster lieferte zunächst n≈ 3,5 — ein unphysikalischer Wert (Silizium: n≈1,0; n gt;1,05 deutet auf Sperrschicht-Rekombination hin, n=3,5 auf nichts als ein falsches Fenster). Plausibilitätskontrolle gegen die Physik gehört zu jedem Extraktionsschritt.
7.4 Schritt 2: βF aus dem Verstärkungs-Plateau
Da der Gummel-Plot IC und IB über VBE enthält, liefert er die Stromverstärkung gleich mit:
Weil β stromabhängig ist (Kapitel 6.6), nimmt man als SPICE-Wert BF das Plateau der β(IC)-Kurve im mittleren Strombereich — dort, wo weder Kleinstrom-Rekombination noch Hochinjektion stören.
Rechenbeispiel 7.2 — BC547. Im Plateaubereich (typisch IC=1…10mA): IC=2,0mA, IB=6,9 µA → $βF = (2,0 mA)/(6,9 µA) ≈ 290.Das liegt in derh_{FE}-Klasse B (200–450) des BC547. Durchlauf 1 (BC337-25): Plateau\beta_F\approx 250\ldots275$.
7.5 Schritt 3: VA aus dem Ausgangskennfeld
Prinzip. Im aktiven Bereich ist jede Ausgangskennlinie näherungsweise eine Gerade IC = IC0 (1+VCE/VA); rückwärts verlängert schneiden alle die VCE-Achse bei -VA (Abbildung 6.2). Aus zwei Punkten derselben Kennlinie (gleiches IB) folgt VA geschlossen — man setzt beide Punkte in die Geradengleichung ein und eliminiert IC0:
Vorgehen: zwei möglichst weit auseinanderliegende Punkte im aktiven Bereich wählen (kleiner Ablesefehler!), für 2–3 weitere IB-Stufen wiederholen, Ergebnisse mitteln.
Rechenbeispiel 7.3 — BC547. Kennlinie IB=20 µA: (5 V, 5,80 mA) und (20 V, 6,67 mA): $VA=(20·5,80-5·6,67)/(6,67-5,80) V =(82,65)/(0,87) V≈ 95 V.Literaturbereich BC547: 70…100 V — passt. Durchlauf 1 (BC337-25) ergabV_A\approx110\ldots150\,V mit deutlicher Streuung über dieI_B-Stufen:V_A$ ist prinzipbedingt nur schwach bestimmt, weil eine kleine Steigung gemessen und weit extrapoliert wird — das quantifiziert die Identifizierbarkeitsanalyse in 7.11.
7.6 Schritt 4: IKF aus dem Verstärkungsabfall
Prinzip. Die Webster-Formel (Kapitel 6.6) macht aus der Definition eine Messvorschrift: Bei IC=IKF ist
Vorgehen: β=IC/IB halblogarithmisch über IC auftragen, Plateauwert βF ablesen, dann den Strom suchen, bei dem β auf 70,7 % des Plateaus gefallen ist — das ist IKF.
Rechenbeispiel 7.4 — BC547. Plateau βF=290 → 0,707·290 = 205. Abgelesen: β=205 bei $IKF≈ 80 mA.Das passt zur DatenblattgrenzeI_{C,\max}=100\,$mA — der Hochstromabfall setzt beim BC547 also schon innerhalb des zulässigen Strombereichs spürbar ein.
Der Kontrast, auf den es ankommt: In Durchlauf 1 endet die Messung bei IC=11mA — der BC337-25 hat sein Knie aber erst bei ≈0,9A. Der Abfall liegt zwei Dekaden außerhalb des Messfensters (Abbildung 7.4): IKF ist dort nicht bestimmbar, nur eine untere Schranke lässt sich angeben; der Wert kommt aus dem Datenblatt. Derselbe Parameter, dieselbe Methode — einmal messbar, einmal nicht. Was ihn bestimmbar macht, ist allein das Verhältnis von Messfenster zu Kniestrom.
7.7 Schritt 5: RB,int aus der Eingangskennlinie
Prinzip. Der innere Basiswiderstand „verbiegt" die Eingangskennlinie bei hohen Strömen zu größeren VBE-Werten — wie ein Vorwiderstand an einer LED:
Dabei wird der ideale Verlauf aus den bereits bestimmten Parametern berechnet: VBE,ideal(IB)=n VTln(βF IB/IS) — deshalb steht dieser Schritt zwingend am Ende der Reihenfolge.
Rechenbeispiel 7.5 — BC547. Bei IB=1mA: $VBE,ideal = 1,01·25,86 mV· ln(290·10-3)/(5,0·10-14) ≈ 0,768 V, VBE,gemessen = 0,783 VRB,int = (0,783-0,768)/(1 mA) = 15 Ω.Typisch für Kleinsignal-npn sind 5…30 Ω — plausibel. Messtechnische Warnung: Kontaktwiderstände der Messspitzen gehen ununterscheidbar in dieselbe Differenz ein und lassenR_{B,\text{int}}systematisch zu groß erscheinen — Vierleitermessung oder Kalibrierung ist hier Pflicht. In Durchlauf 1 (Messung nur bis 11 mA) blieb der Hochstrom-Knick des Gummel-Plots unsichtbar:R_B$ dort nicht bestimmbar → Datenblattwert.
7.8 Die Parametersätze beider Durchläufe
BC547 (eigener Kennlinienschreiber, Zwei-Punkt-Auswertungen):
| Parameter | Demo-Wert (Kap. 6/8-Beispiele) | gemessen BC547 | Quelle |
|---|---|---|---|
IS | 1·10-13 A | 5,0·10-14 A | Gummel-Plot |
NF | 1,0 | 1,01 | Gummel-Plot-Steigung |
BF | 200 | 290 | IC/IB-Plateau |
VAF | 100 V | 95 V | Ausgangskennfeld |
VAR | 200 V | 190 V | Faustregel 2 VA |
IKF | 0,5 A | 0,08 A | β-Abfall auf 70,7 % |
RBM | 10 Ω | 15 Ω | Eingangskennlinie |
Auffälligster Realitätsabgleich: Der echte Kniestrom (80 mA) liegt sechsmal niedriger als der Demo-Wert — bei Arbeitspunkten oberhalb einiger zehn Milliampere ist der β-Abfall beim BC547 also nicht vernachlässigbar. Kapitel 8 rechnet mit genau diesem gemessenen Satz.
BC337-25 (Kurventracer, Geradenfits): IS=4,8·10-14A, n=1,004, βF≈274, VA≈146V (Mittel); IKF und RB nicht bestimmbar → Datenblatt (0,9 A; 60 Ω).
7.9 Über die Handauswertung hinaus: der globale Fit
Die Feature-für-Feature-Extraktion (Gerade hier, Plateau dort) nutzt jeweils nur einen Ausschnitt der Daten. Man kann stattdessen alle fünf Kennlinienfelder gleichzeitig an das komplette Modell aus Kapitel 6.8 anpassen. In Durchlauf 1 geschieht das mit dem Nelder-Mead-Verfahren (ableitungsfrei — es braucht nur Funktionswerte, keine Gradienten). Die Kostenfunktion ist das mittlere quadratische Residuum, datensatzweise gewichtet: der Gummel-Plot im logarithmischen Maß (sonst dominieren die großen Ströme alles), die übrigen Felder im relativen Maß.
Der globale Fit hat zwei Vorzüge — und eine Falle:
- Er nutzt die gesamte Information und mittelt Ablesefehler heraus.
- Er liefert ein konsistentes Parameterset statt einzeln
bestimmter, potenziell widersprüchlicher Werte.
- Aber: Er konvergiert immer — auch auf Parameter, die die Daten
gar nicht hergeben. Ob ein Wert dem Datensatz entstammt oder nur dem Startwert, sieht man dem Fit nicht an. Genau dafür braucht es den nächsten Abschnitt.
7.10 Der Transparenzschritt: Identifizierbarkeit
Ein Parameter ist nur dann aus den Daten bestimmbar, wenn die Kostenfunktion empfindlich auf ihn reagiert. Der Test ist denkbar einfach: jeden Parameter einzeln um +20 % stören und messen, um welchen Faktor die Kosten steigen. Für Durchlauf 1 (BC337-25):
| Parameter | Kostenfaktor bei +20 % | bestimmbar? |
|---|---|---|
| n | × 2774 | ja — dominant |
| βF | × 28 | ja |
| IS | × 7,2 | ja |
| VA | × 1,07 | schwach |
| RB | × 1,19 | schwach |
| IKF | × 1,0 | nein — Kostenfunktion flach |
Die Tabelle bestätigt quantitativ, was die Einzelschritte qualitativ zeigten: n ist über die Gummel-Steigung exzellent verankert, IS und βF solide; VA hängt an einer kleinen Steigung, RB an einem kaum erreichten Hochstrombereich — und IKF hinterlässt im Messfenster keinerlei Signatur. Man kann ihn nicht „aus dem Fehler herausziehen"; jeder vom Fit gelieferte Wert wäre Scheingenauigkeit.
Die Konsequenz als Regel: Nicht bestimmbare Parameter werden offen als gesetzt deklariert (Datenblatt/Default) — und wer sie messen will, braucht gezielte Zusatzmessungen (Hochstrom-β für IKF, Hochstrom-Gummel für RB — Durchlauf 2 hat für den BC547 genau das getan und IKF damit bestimmt).
7.11 Validierung: Modell gegen Messung
Der bestimmte Parametersatz muss sich an den Daten beweisen — an allen, nicht nur an denen, aus denen er gewonnen wurde. In Durchlauf 1 trifft das Modell alle fünf Kennlinienfelder mit 1–2 % RMS-Abweichung; die sichtbare Restabweichung bei kleinen Strömen ist der in Kapitel 6.8 bewusst weggelassene Leckterm — sie ist benannt statt versteckt. Der unabhängigste Test ist der Abgleich mit dem Hersteller-SPICE-Modell: IS, VA und βF des BC337-25 treffen die Datenblattwerte auf wenige Prozent.
bjt_dashboard.py: alle fünf Kennlinienfelder mit Messpunkten und Modellkurven, Parametersatz, RMS-Fehler, Identifizierbarkeits-Ampel und Datenblattabgleich. Dieses Bild dient als kompakte Ergebnisübersicht — die lesbaren Einzelschritte zeigen die Abbildungen 7.1 bis 7.4.7.12 Unsicherheiten — und wie weit sie tragen
Wie genau müssen die Parameter überhaupt sein? Die Antwort fällt je nach Blickrichtung verschieden aus — der Grund ist wieder die steile Exponentialfunktion:
- VBE ist robust gegen IS-Fehler. Aus
IC=IS eVBE/(nVT) folgt für ±10 % Unsicherheit in IS: $Δ VBE = n VT ln(1,1) ≈ 1,01·25,86 mV·0,0953 ≈ 2,5 mV.$ Zehn Prozent Stromfehler kosten also nur zweieinhalb Millivolt.
- IC ist empfindlich in Gegenrichtung: Bei festgehaltenem
VBE geht ein IS-Fehler proportional in IC ein. In einer realen Schaltung mit Basisvorwiderstand kompensiert die Rückkopplung über RB einen Teil davon — quantitativ zeigt das die Arbeitspunktrechnung in Kapitel 8.
- Dazu kommen Ablesefehler (±2–5 % am analogen Gerät, weniger bei
digitaler Erfassung), thermische Drift (7.2) und die Serienstreuung, die jede Übertragung auf ein anderes Exemplar verbietet.
7.13 Zusammenfassung
- Alle Parameter des Vorwärtsmodells folgen aus drei Messreihen
in fester Reihenfolge: IS, n (Gummel-Gerade) → βF (Plateau) → VA (Extrapolation) → IKF (70,7-%-Kriterium) → RB,int (Kennlinien-Kompression).
- Jeder Schritt hat ein Gültigkeitsfenster; wer es verfehlt,
erhält unphysikalische Werte (n=3,5!). Plausibilitätskontrolle gegen die Physik ist Teil der Methode.
- Der globale Fit liefert konsistente Sätze, die
Identifizierbarkeitsanalyse entscheidet, welche Werte den Daten entstammen — und welche nur gesetzt sind. Beide zusammen machen die Extraktion ehrlich.
- Zwei Bauteile, zwei Messgeräte, eine Methode: BC337-25 und BC547
liefern konsistente IS, n, βF, VA — und demonstrieren am IKF, dass das Messfenster über Bestimmbarkeit entscheidet, nicht die Formel.
Damit hat das Modell aus Kapitel 6 Zahlen — belegte, mit benannten Grenzen. Kapitel 8 setzt diesen Parametersatz in eine reale Schaltung ein und berechnet ihren Arbeitspunkt mit Newton-Raphson; Kapitel 9 lässt anschließend LTspice und Simulink mit denselben Zahlen gegen die Messung antreten.
Übungsaufgaben zu Kapitel 7
- Gummel-Auswertung: Aus VBE1=0,580V, IC1=0,1mA
und VBE2=0,640V, IC2=1,0mA bestimme man n und IS.
- Early-Spannung: Bei IB=40 µA wurden
(3 V, 11,5 mA) und (15 V, 12,4 mA) gemessen. Man berechne VA.
- Knickstrom: Im Plateau wurde βF=320 gemessen. Bei
welchem β-Wert liest man IKF ab, und wie grenzt man ihn messtechnisch in drei Schritten ein?
- Vollständige Rechnung: Man übernehme den gemessenen
BC547-Parametersatz (Abschnitt 7.8) in das Arbeitspunktprogramm aus Kapitel 8, führe die Bisektion durch und vergleiche mit der idealen Abschätzung.
- Sensitivität/Serienstreuung: Man variiere βF über die
Datenblatt-Klassengrenzen des BC547 (110…800) und berechne jeweils das erforderliche RB der Fixed-Bias-Schaltung. Welche Konsequenz hat die Spannweite für die Serienfertigung?
Die Ablesungen aus den Messdateien — und der vollständige SPICE-Parametersatz
Übertragen aus bjt_extract.py: n und IS aus der Steigung im Gummel-Plot (Zeilen 55–66, Fenster 20 µA … 2 mA, die VCE=0-Kurve verworfen), VA aus dem x-Achsenabschnitt des flachen Astes (Zeilen 79–83, ab VCE ≥ 1,5 V), IS um den Early-Faktor bereinigt (Zeile 89), βF aus der IC-IB-Steigung und aus dem hFE-Maximum (Zeilen 103 und 112), IKF nur als untere Schranke (Zeilen 114–115). Gerechnet wird auf denselben fünf Dateien, die auch sein Programm einliest.
n und IS je aktiver Kurve (Gummel-Plot)
VA je IB-Kurve (Early)
βF auf zwei Wegen
Ergebnis, und was sein Programm ausgibt
Der vollständige SPICE-Parametersatz
| SPICE | Zeichen | Bedeutung | BC337-25 aus seiner Anpassung | woher | Urteil |
|---|---|---|---|---|---|
IS | I_S | Transport-Sättigungsstrom | 5,260·10⁻¹⁴ A | bjt_extract.py Z. 89 (Gummel-Fit, um den Early-Faktor bereinigt) | gemessen |
NF | n | Vorwärts-Emissionskoeffizient | 1,004 | bjt_extract.py Z. 63–64 (Steigung im Gummel-Plot) | gemessen |
BF | β_F | ideale Vorwärts-Stromverstärkung | 272 (Steigung) · 271 (h_FE-Maximum) | bjt_extract.py Z. 103 und Z. 112 | gemessen |
VAF | V_A | Vorwärts-Early-Spannung | 146,0 V | bjt_extract.py Z. 79–83 (x-Achsenabschnitt des flachen Astes) | gemessen |
VAR | V_AB | Basis-(Rückwärts-)Early-Spannung | — (Vorgabe 10⁶ V bzw. 200 V) | bjt_extract.py Z. 186, bjt_analyse.py Z. 219 | nicht bestimmbar: aus Konstant-I_B-Daten nicht robust ablesbar |
IKF | I_KF | Vorwärts-Kniestrom (Hochinjektion) | nur untere Schranke ≫ 9 mA | bjt_extract.py Z. 114–115 und Z. 183–184 | nicht bestimmbar: bis 9,3 mA kein Hochstromabfall sichtbar |
RB / RBM | R_B,int | innerer Basisbahnwiderstand | — (Vorgabe 60 Ω bzw. 10 Ω) | bjt_extract.py Z. 186, bjt_gesamt.py Z. 182 (Datenblattwert) | nicht bestimmbar aus diesen Daten |
ISE | I_SE | Leckterm der BE-Sperrschicht | 3,534·10⁻¹⁵ A (Datenblatt) | bjt_gesamt.py Z. 29 und Z. 182 | nicht gefittet — Datenblatt |
NE | n_E | Emissionskoeffizient des Lecktermes | 1,35 (Datenblatt) | bjt_gesamt.py Z. 29 und Z. 182 | nicht gefittet — Datenblatt |
BR, NR, IKR, ISC, NC | — | Invers- und Sperrbetrieb | — | in keinem seiner Programme gesetzt | nicht bestimmbar: der Tester misst nur den Vorwärts-Aktivbetrieb |
RE, RC | — | Emitter- und Kollektorbahnwiderstand | — | in keinem seiner Programme gesetzt | nicht bestimmbar: aus Gleichstrommessungen im Aktivbetrieb nicht trennbar |
CJE, CJC, TF, TR | — | Sperrschichtkapazitäten und Laufzeiten | — | in keinem seiner Programme gesetzt | nicht bestimmbar: der Tester misst statisch, nicht dynamisch |
bjt_extract.py Z. 183–186, bjt_analyse.py Z. 218–220,
bjt_gesamt.py Z. 180–182).Welcher Parametersatz aus welchem seiner Programme kommt
Der Gummel-Plot mit der abgelesenen Geraden
80_arbeitspunkt_newton.md · Quelle: BUCH/kapitel_08_arbeitspunkt_newton.md (Markdown-Quelle)8 Der Arbeitspunkt: von der blauen LED zum vollständigen Transistormodell
8.1 Sinn und Ziel dieses Kapitels
Modell (Kapitel 6) und gemessene Parameter (Kapitel 7) sind da — jetzt muss beides eine Schaltung rechnen. Die Aufgabe klingt bescheiden: Man bestimme den Gleichstrom-Arbeitspunkt einer Transistorstufe. Aber am erweiterten Modell ist sie analytisch unlösbar (Kapitel 6.11): Exponentialkennlinie, Early-Faktoren, stromabhängiges β und die implizite VBE,eff-Kopplung verweben die Gleichungen zu einem nichtlinearen System.
Damit die Verfahren nicht im Zweidimensionalen „vom Himmel fallen", beginnt das Kapitel eine Etage tiefer: an der blauen Leuchtdiode am Vorwiderstand — ein Bauteil, eine Unbekannte, und doch das komplette Programm dieses Buches im Kleinformat: eine echte Messung, ein ideales Modell, das an ihr scheitert, eine physikalisch begründete Erweiterung um den Bahnwiderstand, die Approximation der Messpunkte durch Kurvenanpassung — und schließlich das Newton-Raphson-Verfahren, das den Arbeitspunkt der impliziten Gleichung findet. Erst dann steigen wir zum Transistor auf, wo dieselben Verfahren im mathbbR2 arbeiten — mit vollständiger, analytisch hergeleiteter Jacobi-Matrix, wie es SPICE intern ebenfalls tut.
Nach diesem Kapitel können Sie: die ideale Shockley-Diodenkennlinie hinschreiben und ihre Gültigkeitsgrenzen benennen, begründen, warum LEDs — insbesondere blaue GaN-LEDs — eine Erweiterung um Idealitätsfaktor und Serienwiderstand benötigen, Messdaten mit dem erweiterten Modell fitten (Approximation) und erklären, warum in der Form V(I) gefittet wird, das Newton-Raphson-Verfahren auf die implizite Schaltungsgleichung anwenden — mit analytischer Ableitung, sinnvollem Startwert und numerischen Schutzmaßnahmen, das nichtlineare System F(VBE,VCE)=0 der Fixed-Bias-Schaltung aufstellen und die Jacobi-Matrix vollständig herleiten, einen Schaltungsparameter (RB) per Bisektion auf einen Ziel-Arbeitspunkt einstellen.
8.2 Das Verfahren im Eindimensionalen: die blaue LED
Dieser Abschnitt folgt dem Vorlesungsmanuskript „LED-Kennlinien-Approximation" und den Begleitprogrammen Aproximation_AP_LED_normale_Shockly.py und Aproximation_AP_LED_5.py; alle Zahlenwerte sind aus der Messdatei LED_blau.txt reproduziert.
8.2.1 Die Messung
Gemessen wurde die Durchlasskennlinie einer blauen LED mit dem Kennlinienschreiber (Export LED_blau.txt, PN-Junction-I/V-Modus): 46 Messpunkte (Vf, If) von 0 bis knapp 2,9 V bzw. 12 mA. Für die Modellanpassung werden nur Punkte mit If gt; 0,05mA verwendet (35 Punkte) — unterhalb dieser Schwelle dominieren Leckströme und Messrauschen, und das Modell gilt streng nur im Durchlassbereich.
8.2.2 Die ideale Shockley-Gleichung
William Shockley leitete 1949 die Strom-Spannungs-Kennlinie des idealen p-n-Übergangs aus dem Drift-Diffusions-Modell ab:
Für VD≫ VT bleibt die reine Exponentialfunktion; im halblogarithmischen Diagramm eine Gerade mit 1 Dekade je n·59,5 mV — dieselbe 60-mV-Regel, die in Kapitel 7 den Gummel-Plot trug. Die Gleichung gilt allerdings nur unter Idealannahmen: keine Rekombination in der Raumladungszone, keine ohmschen Bahnwiderstände, Niedriginjektion. Alle diese Annahmen verletzt eine reale LED.
8.2.3 Das Scheitern an der blauen LED — und seine physikalischen Gründe
Passt man die reine Shockley-Gleichung an die Messpunkte an (Programm …_normale_Shockly.py), erhält man:
Der Fit „konvergiert" — aber auf einen unphysikalischen Idealitätsfaktor: Für GaN-LEDs liegt n zwischen 1,8 und 3,5; n=5,8 ist keine Physik mehr, sondern der verzweifelte Versuch der Exponentialfunktion, einer Kurve zu folgen, die gar keine reine Exponentialfunktion ist. Abbildung 8.1 zeigt es: Die rote Kurve hebt zu früh ab, verfehlt das Knie und schneidet die Messpunkte nur noch.
LED_blau.txt): Das reine Shockley-Modell (rot) kann die gemessene Kennlinie trotz frei gefittetem n nicht wiedergeben; das um den Serienwiderstand erweiterte Modell (blau) liegt exakt auf den Messpunkten.Drei physikalische Effekte sind verantwortlich — jeder verletzt eine Idealannahme, jeder erzwingt eine Modellerweiterung:
| Beobachtung | Ursache | Modellerweiterung |
|---|---|---|
| n gt; 1 | strahlende und SRH-Rekombination in der Raumladungszone (bei GaN zusätzlich Auger — „ABC-Rekombination") | n als freier Parameter (1…5) |
| Kennlinie knickt bei hohem Strom ab, wird fast linear | ohmsche Spannungsabfälle: p-GaN-Bahngebiet (schlechte Lochbeweglichkeit!), ITO-Elektrode, Bonddrähte, Kontakte | Serienwiderstand RS addieren |
| IS extrem klein (10-18 A und darunter) | große Bandlücke des GaN (Eg≈3,4 eV), ISsim e-Eg/kT | log10IS als Fitparameter |
Die Bandlücke erklärt zugleich die hohe Flussspannung: Die Photonenenergie EPhoton=h c/λ≈ e VF koppelt Farbe und Flussspannung — rote LEDs liegen bei 1,6–2,0 V, blaue InGaN/GaN-LEDs bei 2,8–3,5 V. Blaue LEDs haben damit die höchste Flussspannung aller sichtbaren LEDs — und den stärksten RS-Einfluss, denn dessen Abfall ID RS wächst linear mit dem Strom.
8.2.4 Die erweiterte Shockley-Gleichung — in der Form V(I)
Das erweiterte Modell ist die ideale Shockley-Diode in Reihe mit dem parasitären Serienwiderstand RS. Aufgeschrieben wird es bewusst als Spannung in Abhängigkeit vom Strom:
Warum V(I) statt I(V)? Der Strom variiert bei einer LED über etwa fünf Größenordnungen, die Spannung nur zwischen ca. 2,5 und 3,5 V. Ein Fehler von 1 % in VD entspricht wegen der Exponentialfunktion bis zu einem Faktor 10 in ID. Die Methode der kleinsten Quadrate minimiert den Fehler der abhängigen Variablen — wählt man V als abhängige Größe, sind die Residuen gleichmäßig verteilt und der Fit gut konditioniert. Aus demselben Grund wird nicht IS direkt gefittet, sondern log10IS: Werte um 10-20 A wären als direkte Parameter numerisch miserabel konditioniert, ihr Logarithmus (−20 …) ist es nicht.
8.2.5 Die Approximation: Fit an die Messpunkte
scipy.optimize.curve_fit bestimmt die drei Parameter θ=(log10IS, n, RS) durch Minimieren der Residuenquadratsumme sumibig[Vgemessen,i-VModell(Ii,θ)big]2, mit den Startwerten und physikalisch begründeten Grenzen des Originalprogramms (log10ISin[-35,-10], nin[1,5], RSin[0,200] Ω). Ergebnis für die vermessene blaue LED (Unsicherheiten aus der Kovarianzmatrix):
| Parameter | Wert | Einordnung (typisch für blaue GaN-LEDs) |
|---|---|---|
| log10(IS/A) | -25,83 ± 0,72 → IS ≈ 1,5·10-26 A | noch unter dem Typbereich 10-20…10-16 A — IS ist eine extreme Extrapolationsgröße und stark mit n korreliert (±0,72 Dekaden!) |
| n | 1,898 ± 0,060 | im Typbereich 1,8…3,5 ✓ |
| RS | 16,0 ± 0,4 Ω | im Typbereich 5…50 Ω ✓ |
Die blaue Kurve in Abbildung 8.1 ist dieses Modell: Sie liegt über den gesamten Messbereich auf den Punkten. Der Kontrast zum reinen Modell ist die Kernbotschaft des Abschnitts: Erst der Bahnwiderstand macht die LED approximierbar — mit Parametern, die dann auch physikalisch deutbar sind.
8.2.6 Newton-Raphson: der Arbeitspunkt der impliziten Gleichung
Nun die Schaltung: Spannungsquelle Uges, Vorwiderstand R, LED. Die Maschenregel mit eingesetztem Modell lautet
Diese Gleichung ist implizit in ID — der Strom steht linear und im Logarithmus; eine geschlossene Auflösung existiert nur über die unpraktische Lambert-W-Funktion. Also numerisch: Als Fehlerfunktion (Residuum) dient die Abweichung von der Maschenregel,
mit der analytisch berechneten Ableitung
(analytisch statt numerisch: exakt, schnell, keine Schrittweitenprobleme). Die Newton-Raphson-Iteration — Tangente an f, Schnitt mit der Nullachse, quadratische Konvergenz —
braucht noch einen Startwert. Das Originalprogramm verwendet den gedämpften Kurzschlussstrom ID(0) = Uges/(R+RS+1) — als läge statt der LED ein 1-Ω-Widerstand in der Masche; das liegt für typische LED-Schaltungen nahe genug an der Lösung. Der Kern in Python (wortgetreu aus Aproximation_AP_LED_5.py):
def solve_for_Id(Uges, R, log10_Is, n, Rs, Vt):
Is = 10**log10_Is
Id = Uges / (R + Rs + 1.0) # Startwert: gedaempfter Kurzschlussstrom
for _ in range(1000):
if Id <= 0:
Id = 1e-12 # Schutz: ln fuer Id <= 0 nicht definiert
f = n*Vt*np.log(Id/Is + 1) + Id*Rs + Id*R - Uges
df = (n*Vt)/(Id + Is) + Rs + R
Id_new = Id - f / df
if abs(Id_new - Id) < 1e-7: # Toleranz 0,1 uA
return Id_new if Id_new > 0 else None
Id = Id_new
return None # keine Konvergenz -> Warnung im Programm
Numerische Sicherheitsmaßnahmen (aus dem Originalprogramm — so arbeitet robuste Numerik): IDle0 wird auf 10-12 A zurückgesetzt (Logarithmus-Schutz); |f'|≈0 wird abgefangen; nach 1000 Iterationen ohne Konvergenz gibt es eine Warnung statt eines stillen Fehlers; ein Ergebnis IDle0 wird als physikalisch ungültig verworfen; und VD ≥ Uges löst eine Plausibilitätswarnung aus.
Der echte Lauf mit den gefitteten Parametern, Uges=5V, R=100 Ω:
| k | ID(k) |
|---|---|
| 0 (Start) | 42,719 mA |
| 1 | 19,512 mA |
| 2 | 19,611473 mA |
| 3 | 19,611478 mA — konvergiert |
Drei Iterationen; von Schritt 1 auf 2 gewinnt das Verfahren vier gültige Stellen, von 2 auf 3 die restlichen — die quadratische Konvergenz in Aktion.
8.2.7 Arbeitspunkt und Lastgerade
Grafisch ist die Lösung der Schnittpunkt der LED-Kennlinie mit der Lastgeraden VD = Uges - ID R (Achsenschnittpunkte: Leerlauf Uges auf der Spannungs-, Kurzschluss Uges/R auf der Stromachse):
| Größe | Wert |
|---|---|
| VD | 3,039 V |
| ID | 19,61 mA |
| UR = ID R | 1,96 V |
| PR = ID2 R | 38,5 mW |
Dimensionierungsregel (aus dem Vorlesungsmanuskript): Für die schnelle Vorwiderstands-Wahl genügt R = (Uges-VF)/ID,soll. Beispiel: Uges=5V, VF=3,2V (blaue LED bei 20 mA), ID,soll=20mA → R = 90 Ω → Normwert 100 Ω. Die exakte Rechnung oben bestätigt die Auslegung: Mit dem Normwert fließen 19,6 mA.
8.2.8 Was der Transistor davon erbt
Der Aufstieg ins Zweidimensionale ändert die Struktur nicht:
- Residuum → Ableitung → Iteration bleibt die Dreiteilung; aus
f und f' werden der Vektor F und die Jacobi-Matrix J, aus der Division f/f' das lineare Gleichungssystem J Δ x=-F.
- Der Serienwiderstand kehrt wieder: Was bei der LED RS ist,
ist beim Transistor der innere Basiswiderstand RB,int — beide machen die Gleichungen implizit.
- Die Formulierungswahl ist jeweils bewusst: Bei der LED löst
V(I) das Fit-Konditionierungsproblem; beim Transistor arbeiten wir in den Klemmenspannungen (VBE,VCE), weil Maschenregeln und Modell dort am natürlichsten zusammentreffen.
8.3 Aufstieg zum Transistor: die Fixed-Bias-Schaltung
Als Beispielschaltung dient die einfachste Arbeitspunkteinstellung — die Fixed-Bias-Schaltung (Basisvorwiderstand, Abbildung 8.3): Versorgung VCC=25V, Kollektorwiderstand RC=100 Ω, Basisspannung VBB=VCC, Basisvorwiderstand RB (gesucht).
Zwei unabhängige Maschen liefern zwei Gleichungen — und damit genau die Zahl, die wir für die zwei Unbekannten VBE und VCE brauchen:
Basiskreis:
Kollektorkreis (Lastgerade):
Die Lastgerade verbindet die Punkte (0, VCC/RC)=(0, 250mA) und (VCC, 0)=(25V, 0). Der Arbeitspunkt ist ihr Schnittpunkt mit der Transistorkennlinie — wie bei der LED, nur dass die „Kennlinie" jetzt das volle Modell aus Kapitel 6.8 ist.
8.4 Das nichtlineare System F(VBE,VCE)=0
Gesucht ist das Paar (VBE,VCE), das gleichzeitig die Schaltungsgleichungen und das Transistormodell erfüllt. Wie bei der LED schreibt man Residuen — jetzt zwei:
Gleichung 1 — Basiskreis trifft Basisstrom-Modell:
Gleichung 2 — Lastgerade trifft Kollektorstrom-Modell:
mit den inneren Größen (alle aus den Kapiteln 6 und 8.3):
Warum keine Gleichung allein lösbar ist: f1 enthält über βeff den Kollektorstrom (also VCE), f2 über VBE,eff den Basisstrom (also VBE) — die Gleichungen sind wechselseitig verkoppelt. Ein geschlossener Ausdruck existiert nicht; das ist keine mathematische Schwäche, sondern die direkte Folge der in Kapitel 6 eingebauten Physik.
8.5 Newton-Raphson im Mehrdimensionalen
Das Verfahren aus 8.2.6 überträgt sich wörtlich; nur wird aus der Ableitung die Jacobi-Matrix:
Praktisch invertiert man J nie, sondern löst das lineare System
(im Programm numpy.linalg.solve; Abbruch bei ∥F(xk)∥ lt;10-10). Für den BJT-Arbeitspunkt ist [VBE,VCE]0=[0,65 V, VCC/2] praktisch immer ausreichend: Die Diodenspannung eines leitenden Silizium-Übergangs ist nie weit von 0,65 V entfernt — der Startwert steckt, wie bei der LED der gedämpfte Kurzschlussstrom, schon im physikalischen Vorwissen.
8.6 Die Jacobi-Matrix — vollständig hergeleitet
Die vier Elemente sind Schulableitungen — wenn man eine innere Ableitung nicht vergisst. Mit IB=(VBB-VBE)/RB gilt
— größer als 1, weil ein steigendes VBE zugleich IB senkt und damit den Abzugsterm verkleinert: beide Effekte ziehen VBE,eff nach oben. Damit die vier Elemente (Abkürzung E equiv eVBE,eff/(nVT), bequivβeff):
(Die schwache VCE-Abhängigkeit von b über IC wird hier, wie in der SPICE-Praxis üblich, in der Jacobi-Matrix vernachlässigt — sie beschleunigt nur die Konvergenz, ändert aber die Lösung nicht, denn die Lösung wird allein von F=0 bestimmt, nicht von J. Eine ungenaue Jacobi-Matrix kostet Iterationen, nie Richtigkeit.)
8.7 Das Programm
Der Kern in unmittelbarer Übersetzung der Formeln — Modellfunktionen aus Kapitel 6.9 vorausgesetzt:
def F(x, RB):
"""Residuenvektor [f1, f2] des nichtlinearen Systems."""
vbe, vce = x
ib = (VBB - vbe) / RB # Basiskreis-Masche
ic = (VCC - vce) / RC # Lastgerade
veff = vbe - ib * RBI # innerer Basiswiderstand
ex = np.exp(veff / (NF * VT))
b = beta_eff(ic) # Webster-Formel
f1 = ib - (IS / b) * ex * (1 + vce / VAR)
f2 = ic - IS * ex * (1 + vce / VAF)
return np.array([f1, f2])
def J(x, RB):
"""Jacobi-Matrix, analytisch (Abschnitt 8.6)."""
vbe, vce = x
ib = (VBB - vbe) / RB
ic = (VCC - vce) / RC
ex = np.exp((vbe - ib * RBI) / (NF * VT))
b = beta_eff(ic)
dveff = 1 + RBI / RB # innere Ableitung!
j11 = -1/RB - (IS/b) * ex * dveff / (NF*VT) * (1 + vce/VAR)
j12 = -(IS/b) * ex / VAR
j21 = -IS * ex * dveff / (NF*VT) * (1 + vce/VAF)
j22 = -1/RC - IS * ex / VAF
return np.array([[j11, j12], [j21, j22]])
def newton(RB, x0=(0.65, VCC/2), tol=1e-10):
x = np.array(x0, float)
for k in range(100):
r = F(x, RB)
if np.linalg.norm(r) < tol:
return x, k
x = x + np.linalg.solve(J(x, RB), -r)
return x, 99
Rechenbeispiel 8.1 — der Startpunkt, von Hand nachgeprüft. Am Startwert [0,65 V, 12,5 V] mit RB=37,3kΩ (gemessene BC547-Parameter): IB=(25-0,65)/37,3k=652,9 µA, IC=125mA, VBE,eff=650-9,8=640,2mV, βeff=290/√(1+0,125/0,08)=181. Damit f1 = 6,4·10-4 und f2 = 0,122 — beide Residuen weit von Null: Der Startpunkt liegt daneben, wie erwartet. Nach 48 Newton-Raphson-Schritten ist ∥F∥ lt;10-10 (Abbildung 8.5 links) — jede Iteration in Millisekunden.
8.8 Die Bisektion stellt RB ein
Bisher war RB gegeben. Die Entwurfsaufgabe lautet umgekehrt: Finde RB so, dass VCE=VCC/2 — die Mitte der Lastgeraden, maximaler symmetrischer Aussteuerbereich für den späteren Verstärker (Kapitel 12).
Dafür verwendet das Vorlesungsprogramm (Erweitere_Spice_Parameter_1.py) das Bisektionsverfahren (Intervallschachtelung). Es setzt nur zweierlei voraus: Stetigkeit und einen Vorzeichenwechsel der Zielabweichung g(RB)=VCE(RB)-VCC/2 über dem Suchintervall. Den garantiert hier die Physik als Monotoniekette:
RBuparrow ⟹ IBdownarrow ⟹ ICdownarrow ⟹ VRC=IC RCdownarrow ⟹ VCE=VCC-VRCuparrow
Algorithmus: Intervallmitte RBast probieren → innen löst Newton-Raphson die Schaltung → je nach Vorzeichen von VCE-VCC/2 die untere oder obere Intervallgrenze nachziehen → wiederholen. Nach k Schritten ist RB auf (b-a)/2k eingegrenzt — ein Bit Genauigkeit je Schritt, garantiert, aber eben nur linear konvergent. So sieht der tatsächliche Suchlauf aus (gemessene BC547-Parameter, Startintervall 10…500 kΩ):
| Schritt | RB-Versuch | VCE (Newton-Raphson) | Entscheidung |
|---|---|---|---|
| 1 | 255,0 kΩ | 22,35 V | zu groß → absenken |
| 2 | 132,5 kΩ | 20,36 V | zu groß → absenken |
| 3 | 71,2 kΩ | 17,35 V | zu groß → absenken |
| 4 | 40,6 kΩ | 13,26 V | zu groß → absenken |
| 5 | 25,3 kΩ | 8,47 V | zu klein → anheben |
| 6 | 33,0 kΩ | 11,32 V | zu klein → anheben |
| 7 | 36,8 kΩ | 12,37 V | zu klein → anheben |
| 8 | 38,7 kΩ | 12,83 V | zu groß → absenken |
| 9 | 37,8 kΩ | 12,61 V | zu groß → absenken |
| 10 | 37,3 kΩ | 12,49 V | Ziel erreicht |
Das Intervall halbiert sich stur — nach zehn Schritten von 490 kΩ auf unter 1 kΩ (490/210≈0,5). Hier verschachteln sich die beiden Verfahren des Kapitels: außen die garantierte, aber langsame Bisektion über den Entwurfsparameter; innen der schnelle Newton-Raphson über die Schaltungsgrößen. Diese Arbeitsteilung „außen robust, innen schnell" kehrt in Optimierung und Simulation ständig wieder.
Programmstruktur im Überblick (vollständiges Programm kap08_rechnung.py im Begleitmaterial; Original der Vorlesung: Erweitere_Spice_Parameter_1.py):
| Programmteil | Funktion |
|---|---|
| Parameterblock | gemessene BC547-Parameter (Kap. 7.8) + Schaltungswerte |
beta_eff(ic) | Webster-Formel (Kap. 6.6) |
F(x, RB) | Residuenvektor [f1,f2] (Abschn. 8.4) |
J(x, RB) | analytische Jacobi-Matrix (Abschn. 8.6) |
newton(RB, x0) | Newton-Raphson mit linalg.solve (Abschn. 8.5/8.7) |
| Bisektionsschleife | RB-Suche auf VCE=VCC/2 (Abschn. 8.8) |
| Ausgabe/Plots | Arbeitspunkttabelle, Lastgerade, Konvergenzkurven |
8.9 Ergebnis mit den gemessenen BC547-Parametern
Mit dem Parametersatz aus Kapitel 7.8 (IS=5,0·10-14A, n=1,01, βF=290, VA=95V, VAB=190V, IKF=80mA, RB,int=15 Ω) liefert die Bisektion:
| Größe | Wert | Bemerkung |
|---|---|---|
| RB | 37,3 kΩ | Ergebnis der Bisektion |
| VBE | 752,2 mV | Klemmenspannung |
| VBE,eff | 742,4 mV | 9,8 mV Abfall an RB,int |
| VCE | 12,49 V | Ziel VCC/2 getroffen |
| IB | 650,5 µA | |
| IC | 125,1 mA | Mitte der Lastgeraden |
| βeff | 181 | statt βF=290! |
| IC/IKF | 1,56 | tief in der Hochinjektion |
kap08_rechnung.py und ist dort unverändert geblieben.Vergleich mit der idealen Handabschätzung. Ohne Early, RB,int und Webster rechnet man in einer Minute: ICZiel=VCC/(2RC)=125mA, VBE≈ nVTln(IC/IS)=746mV, IB=IC/βF=431 µA,
Das vollständige Modell sagt aber 37,3 kΩ — die Abschätzung liegt um 34 % daneben. Der Grund steht in der Ergebnistabelle: Bei 125 mA ist IC/IKF=1,56 — der BC547 arbeitet weit oberhalb seines gemessenen Kniestroms, β bricht von 290 auf 181 ein, und der Basisstrom muss um eben diesen Faktor größer sein als ideal gedacht. Ob die Faustformel trägt, entscheidet also nicht die Formel, sondern der in Kapitel 7 gemessene Wert von IKF — mit dem Demo-Wert 0,5 A wäre der Fehler unter 10 % geblieben. Messung, Modell und Numerik: erst die ganze Kette macht die Aussage richtig.
(Praktische Randnotiz: IC=125mA überschreitet die Dauergrenze IC,max=100mA des BC547 und liegt oberhalb des in Kapitel 7 vermessenen Strombereichs — das Modell wird hier bewusst extrapoliert, um den IKF-Effekt drastisch zu zeigen. Ein realer Entwurf würde RC größer wählen; Aufgabe 5 rechnet genau diesen Fall.)
8.10 Zusammenfassung
- Die blaue LED zeigt das ganze Programm im Kleinen: Die ideale
Shockley-Gleichung scheitert an der realen Kennlinie (Fit flieht in ein unphysikalisches n=5,8); erst die Erweiterung um den Serienwiderstand RS macht die Messpunkte approximierbar — mit physikalisch deutbaren Parametern (n=1,90, RS=16 Ω).
- Der Fit erfolgt in der Form V(I) (Konditionierung!), der
Arbeitspunkt folgt aus der impliziten Maschengleichung per Newton-Raphson — analytische Ableitung, physikalisch motivierter Startwert, Schutzmaßnahmen; Konvergenz in drei Iterationen.
- Beim Transistor wird daraus das System F(VBE,VCE)=0 mit analytischer Jacobi-Matrix (innere Ableitung
1+RB,int/RB!); außen stellt die Bisektion den Entwurfsparameter RB ein — „außen robust, innen schnell".
- Mit den gemessenen Parametern verfehlt die ideale
Handabschätzung das Ergebnis um 34 % — die Hochinjektion (IC≈1,6 IKF) ist im Arbeitspunkt real wirksam. Faustformeln bleiben wertvoll als Startwert und Plausibilitätstest, nicht als Ergebnis.
Kapitel 9 schließt den Kreis: Dieselben gemessenen Parameter wandern als .model-Karte in LTspice und als Blockschaltbild nach Simulink — und beide Simulatoren müssen denselben Arbeitspunkt liefern wie unser eigener Newton-Raphson-Löser.
Übungsaufgaben zu Kapitel 8
(Aufgaben 1–3 aus dem LED-Vorlesungsmanuskript)
- Idealitätsfaktor: Eine blaue LED zeigt im halblogarithmischen
I-V-Diagramm eine Steigung von 1 Dekade pro 120 mV. Man berechne den Idealitätsfaktor n bei T=25 ^circC. (Hinweis: Δ V = n VTln 10 = n·59,5 mV.)
- Vorwiderstand dimensionieren: Uges=3,3V, blaue LED mit VF=3,05V bei IF=10mA. Man berechne den benötigten
Vorwiderstand, die an ihm entstehende Verlustleistung und den passenden E12-Normwert.
- Newton-Raphson per Hand: Mit n=2, IS=10-20A,
RS=20 Ω, R=100 Ω, Uges=5V, VT=25,85mV führe man drei Iterationen per Taschenrechner durch (Startwert ID(0)=Uges/(R+RS+1)=41,3mA).
- Jacobi-Element: Man leite J12 selbst her und begründe,
warum dort — anders als in J11 — keine innere Ableitung auftritt.
- Realistischer Entwurf: Man wiederhole die Bisektion mit RC=1 kΩ (also ICZiel=12,5mA).
Wie groß ist jetzt IC/IKF, wie nahe rückt βeff an βF, und auf wie viel Prozent verbessert sich die ideale RB-Abschätzung?
- Serienstreuung (aus Kapitel 7 übernommen): βF variiere
über die BC547-Klassengrenzen 110…800. Man berechne RB je Fall und erkläre, warum die Fixed-Bias-Schaltung für die Serienfertigung ungeeignet ist — und welche Schaltungsmaßnahme hilft (Vorgriff auf Kapitel 12: Emitterwiderstand).
Der Arbeitspunkt: jede Newton-Iteration, die Bisektion, und die h-Parameter daraus
Übertragen aus BUCH/kap08_rechnung.py, Zeile für Zeile: die gemessenen BC547-Parameter (Z. 19–22), die Schaltung (Z. 24–27), beta_eff (Z. 29–30), der Residuenvektor F (Z. 32–42), die analytische Jacobi-Matrix (Z. 44–57), Newton-Raphson mit Startwert (0,65 V; VCC/2), tol = 10−10 und höchstens 100 Schritten (Z. 59–69) und die Bisektion auf RB im Intervall 10 kΩ … 500 kΩ mit dem Toleranzband 0,1 % (Z. 71–84). Die h-Parameter darunter entstehen nach seinem Rezept aus MANUSKRIPT_Vierpol_Verstaerker.md, Abschnitt 9, Schritte 2 und 3.
Die Newton-Iterationen
Der Abstieg von ‖F‖ über den Schritten
Der Arbeitspunkt vollständig
Die h-Parameter in genau diesem Arbeitspunkt
Die Bisektion auf RB
Kennlinie, Lastgerade und Arbeitspunkt
85_simulation.md · Quelle: BUCH/kapitel_09_simulation.md (Markdown-Quelle)9 Simulation mit den ermittelten Parametern
9.1 Warum dieser Dreifachvergleich?
Die vorangegangenen Kapitel haben eine geschlossene Kette aufgebaut: Kapitel 6 hat das Gummel-Poon-Modell mit seinen SPICE-Parametern eingeführt, Kapitel 7 hat diese Parameter aus echten Messungen am BC547 extrahiert, und Kapitel 8 hat gezeigt, wie das Newton-Raphson-Verfahren aus Modell und Beschaltung den Arbeitspunkt berechnet. Damit ist im Prinzip alles vorhanden, was ein Schaltungssimulator braucht — denn nichts anderes tut ein Simulator: Er löst die Modellgleichungen zusammen mit den Netzwerkgleichungen der Schaltung, und zwar mit genau dem Verfahren, das wir in Kapitel 8 von Hand implementiert haben.
Dieses Kapitel schließt den Kreis mit einem Dreifachvergleich. Ein und dieselbe Aufgabe — die Arbeitspunkt-Einstellung eines Transistors in Emitterschaltung — wird auf drei Wegen gelöst:
- mit unserem eigenen Python-Löser (Newton-Raphson und
Bisektion, wie in Kapitel 8 entwickelt),
- mit LTspice, dem Industriestandard-Schaltungssimulator,
- mit einem selbst aufgebauten Simulink-Modell, das die
Gummel-Poon-Gleichungen als Blockschaltbild nachbildet.
Wenn drei unabhängige Implementierungen — eigener Code, kommerzieller Simulator, grafische Modellierung — auf dieselben Zahlen führen, haben wir zweierlei gewonnen: Vertrauen in unsere eigene Rechnung und ein tiefes Verständnis dafür, was der Simulator „unter der Haube" tatsächlich tut. Der Simulator verliert seinen Black-Box-Charakter.
9.2 Die Testschaltung und die Aufgabe
Als Testschaltung dient die Emitterschaltung mit Basisvorwiderstand (Fixed Bias) aus Kapitel 8:
- Versorgungsspannung VCC = 25 V, wobei die Basis über
RB ebenfalls aus VCC versorgt wird (VBB = VCC),
- Kollektorwiderstand RC = 100 Ω,
- Basiswiderstand RB: gesucht.
Die Entwurfsaufgabe lautet: RB ist so zu bestimmen, dass der Arbeitspunkt in der Mitte der Lastgeraden liegt,
denn dort ist die symmetrische Aussteuerbarkeit des späteren Verstärkers am größten. Als Toleranz sind ± 5 % zugelassen.
Der Transistor wird durch die Gummel-Poon-Gleichungen beschrieben, in zwei Ausbaustufen, die wir aus Kapitel 6 kennen:
Einfaches Modell (Shockley-Kern mit Early-Effekt):
Erweitertes Modell (zusätzlich Hochstrom-Abfall, Basis-Early-Effekt und interner Basiswiderstand):
Die Zahlenwerte sind die didaktischen Modellwerte aus dem Vorlesungsmanuskript — bewusst runde Werte, damit die Rechnung nachvollziehbar bleibt:
| Parameter | SPICE-Name | Wert | Bedeutung |
|---|---|---|---|
| IS | IS | 10-13A | Sättigungsstrom |
| βF | BF | 200 | Vorwärts-Stromverstärkung |
| n | NF | 1 | Emissionskoeffizient |
| VA | VAF | 100 V | Early-Spannung (Kollektor) |
| VAB | VAR | 200 V | Early-Spannung (Basis), nur erweitert |
| IKF | IKF | 0,5 A | Kniestrom des β-Abfalls, nur erweitert |
| RB,int | RBM | 10 Ω | interner Basiswiderstand, nur erweitert |
Die Thermospannung beträgt VT = kB T / q = 25,86 mV bei T = 300 K — gerechnet, wie in den Python-Programmen, mit den gerundeten Konstanten kB = 1,381· 10-23J/K und q = 1,602· 10-19C.
9.3 Weg 1: Der eigene Löser — Newton innen, Bisektion außen
9.3.1 Aufbau des Verfahrens
Die Struktur des Lösers folgt unmittelbar aus Kapitel 8. Für ein gegebenes RB liefern Maschengleichungen und Modellgleichungen das nichtlineare Gleichungssystem
das mit dem zweidimensionalen Newton-Raphson-Verfahren und der Jacobi-Matrix aus Kapitel 8 gelöst wird; Startwert ist wie dort [VBE, VCE] = [0,65 V, VCC/2].
Das gesuchte RB liegt aber noch nicht fest. Hier übernimmt — wie in Kapitel 8 begründet — die Bisektion die äußere Schleife: Sie ist nicht das Rechenverfahren des Buches (das ist Newton-Raphson), sondern die robuste Absicherung der Suche über einen weiten Wertebereich. Der Zusammenhang ist streng monoton und physikalisch anschaulich:
Damit funktioniert die Intervallhalbierung zuverlässig:
- Startintervall RB in [10 kΩ, 500 kΩ]
- Intervallmitte RB,try bilden
- Newton-Raphson löst den Arbeitspunkt für RB,try
- VCE lt; VCC/2: Intervall-Untergrenze anheben;
VCE gt; VCC/2: Obergrenze absenken
- wiederholen, bis VCE im Toleranzband liegt
Ein Detail macht das Verfahren besonders effizient: Die Newton-Lösung eines Bisektionsschritts dient als Startwert des nächsten — die Arbeitspunkte benachbarter RB-Werte liegen nahe beieinander, und Newton konvergiert dann in immer weniger Schritten.
9.3.2 Das Protokoll der Rechnung
Der Lauf mit dem einfachen Modell ergibt:
| Schritt | RB [Ω] | VCE [V] | Newton-Iterationen |
|---|---|---|---|
| 1 | 255 000,00 | 22,6595 | 6 |
| 2 | 132 500,00 | 20,5753 | 6 |
| 3 | 71 250,00 | 17,0196 | 6 |
| 4 | 40 625,00 | 11,6534 | 6 |
| 5 | 55 937,50 | 15,0119 | 5 |
| 6 | 48 281,25 | 13,5745 | 5 |
| 7 | 44 453,12 | 12,6885 | 4 |
und mit dem erweiterten Modell:
| Schritt | RB [Ω] | VCE [V] | Newton-Iterationen |
|---|---|---|---|
| 1 | 255 000,00 | 22,9375 | 6 |
| 2 | 132 500,00 | 21,1267 | 6 |
| 3 | 71 250,00 | 18,0783 | 7 |
| 4 | 40 625,00 | 13,5360 | 8 |
| 5 | 25 312,50 | 7,8352 | 9 |
| 6 | 32 968,75 | 11,2630 | 8 |
| 7 | 36 796,88 | 12,5036 | 7 |
Ein Wort zu den auffälligen Nachkommastellen der Endwerte, denn sie erklären, was diese Zahlen eigentlich sind: Die Bisektion kennt nur Intervallmittelpunkte. Das Startintervall [10 kΩ, 500 kΩ] hat die Breite 490 kΩ; nach k Halbierungen liegen alle erreichbaren Werte auf einem Raster der Schrittweite 490 000/2k Ω. Im siebten Schritt beträgt dieses Raster 490 000/27 = 3 828,125 Ω, und die exakten Endwerte sind
(in den Protokollen auf zwei Nachkommastellen gerundet angezeigt). Die Bruchteile eines Ohms sind also reine Halbierungsarithmetik und keine physikalische Genauigkeit: Das Toleranzband von ± 5 % um VCC/2 lässt ohnehin ± 625 mV Spielraum, und ein realer Widerstand würde als nächstliegender Normwert der E-Reihe mit eigener Fertigungstoleranz gewählt. Für den Vergleich mit LTspice wurden trotzdem bewusst die Rechenwerte übernommen (auf ganze Ohm abgeschnitten) — denn nur wenn beide Werkzeuge dasselbe RB verwenden, ist die Übereinstimmung der Arbeitspunkte ein echter Test der Löser.
Abbildung 9.1 zeigt beide Läufe grafisch: Der RB-Wert (blau) halbiert sich Schritt für Schritt in das Ziel hinein, die zugehörige Kollektor-Emitter-Spannung (rot) pendelt sich in das grau hinterlegte Toleranzband um VCC/2 ein. Nach sieben Schritten ist das Ziel jeweils erreicht.
9.3.3 Die Endergebnisse des eigenen Lösers
| Größe | einfaches Modell | erweitertes Modell |
|---|---|---|
| RB | 44 453 Ω | 36 797 Ω |
| VBE | 0,71687 V | 0,72389 V |
| VBE,eff | — | 0,71729 V |
| VCE | 12,68847 V | 12,50358 V |
| IB | 0,5463 mA | 0,6597 mA |
| IC | 123,115 mA | 124,964 mA |
| β am AP | 200 (konstant) | βeff = 178,9 |
Abbildung 9.2 zeigt beide Arbeitspunkte im Kennlinienfeld: Die Modellkennlinie IC(VCE) beim jeweiligen Basis-Emitter-Wert des Arbeitspunktes schneidet die Lastgerade IC = (VCC - VCE)/RC — der Schnittpunkt ist der Arbeitspunkt, und er liegt in beiden Fällen wie gefordert nahe der Mitte der Lastgeraden.
Der Unterschied der beiden RB-Werte ist kein Rechenfehler, sondern Physik — und er ist erheblich: 17 Prozent. Die Ursache liegt fast vollständig beim Hochstrom-Parameter IKF. Am Arbeitspunkt fließen rund 125 mA; mit IKF = 0,5 A ist die Stromverstärkung dort bereits auf
abgesunken (Abbildung 9.3). Für denselben Kollektorstrom wird also mehr Basisstrom gebraucht — der Basiswiderstand muss entsprechend kleiner ausfallen. Der interne Basiswiderstand wirkt in dieselbe Richtung: Am Arbeitspunkt fallen an ihm IB · RB,int = 0,66 mA · 10 Ω ≈ 6,6 mV ab, sodass die wirksame Basis-Emitter-Spannung um genau diesen Betrag unter der äußeren liegt. Wer den Arbeitspunkt mit dem einfachen Modell entwirft und die Schaltung dann mit einem realen Transistor aufbaut, verfehlt das Ziel entsprechend — dieselbe Lehre, die uns in Kapitel 8 die 34-Prozent-Abweichung der idealen Schätzung eingebracht hat.
9.4 Weg 2: LTspice
9.4.1 Von unseren Parametern zur .MODEL-Karte
In LTspice wird der Transistor durch eine Modellkarte beschrieben. Unsere beiden Modellstufen lauten als SPICE-Karten — wörtlich so, wie sie in den Simulationsschaltungen des Begleitmaterials stehen:
.MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100) .MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100 + VAR=200 IKF=0.5 RB=10)
Das ist der entscheidende Punkt dieses Kapitels: Die Parameter, die wir in Kapitel 7 aus Messungen extrahiert und in Kapitel 6 verstanden haben, sind exakt die Größen, die ein Simulator als Eingabe erwartet. Zwischen unserer Handrechnung und dem professionellen Werkzeug liegt nur noch die Schreibweise.
9.4.2 Die Simulationsschaltungen
Das Begleitmaterial enthält vier LTspice-Schaltungen, die genau die Kette dieses Buches abbilden:
| Schaltung | Modell | Inhalt |
|---|---|---|
Eigen_RW_1d.asc | einfach | reine Arbeitspunktschaltung |
Eigen_RW_1e.asc | erweitert | reine Arbeitspunktschaltung |
Eigen_RW_1c.asc | einfach | Verstärker mit Signalquelle |
Eigen_RW_1f.asc | erweitert | Verstärker mit Signalquelle |
Die Arbeitspunktschaltungen 1d und 1e bestehen aus der Versorgung V1 = 25 V, dem Kollektorwiderstand R1 = 100 Ω, dem Transistor mit der jeweiligen Modellkarte — und dem Basiswiderstand R2. Und hier zeigt sich der rote Faden dieses Buches in seiner schönsten Form: In Eigen_RW_1d steht
in Eigen_RW_1e steht
Das sind die Ergebnisse unserer Bisektionsläufe aus Abschnitt 9.3 (44 453,12 Ω und 36 796,88 Ω), übernommen mit abgeschnittenen Nachkommastellen — die Abweichung liegt also unter einem Ohm. Die Werte im Schaltplan wurden nicht geschätzt und nicht aus einer Faustformel übernommen, sondern vom eigenen Python-Löser berechnet und dann in LTspice eingetragen. Der Simulator dient anschließend als unabhängige Kontrolle: Sein eingebauter Newton-Löser (LTspice meldet im Protokoll wörtlich „Direct Newton iteration for .op point succeeded") muss auf denselben Arbeitspunkt kommen.
Abbildung 9.4 zeigt die Arbeitspunktschaltung, wie sie in der Simulationsdatei steht:
Eigen_RW_1d (nach der Original-Simulationsdatei gezeichnet): Fixed Bias mit dem per Bisektion berechneten Basiswiderstand und der Modellkarte simple_npn. Die Variante Eigen_RW_1e verwendet RB = 36 796 Ω und die erweiterte Modellkarte.9.4.3 Der direkte Abgleich: zwei Löser, dieselbe Modellkarte
Die Modellkarte ist lesbar, die Schaltung ist bekannt — also lässt sich der Abgleich vollständig durchrechnen. LTspice wertet die Gummel-Poon-Gleichungen allerdings in der SPICE-Konvention aus, die sich in drei Punkten von der anschaulichen Form unserer Kapitel unterscheidet: Der Early-Effekt wird über die Basis-Kollektor-Spannung geschrieben (1 - VBC/VAF statt 1 + VCE/VA), der Hochstromeffekt IKF wirkt über die normierte Basisladung qb direkt im Kollektorstrom (statt als βeff im Basisstrom), und gerechnet wird bei 27 ^circC mit exakten Naturkonstanten. Löst man die Fixed-Bias-Schaltung mit den Widerständen aus den Schaltplänen einmal mit den Buchgleichungen und einmal in der SPICE-Konvention (Rechnung: kap09_spice_abgleich.py), ergibt sich:
Einfaches Modell (Eigen_RW_1d, RB = 44 453 Ω):
| Größe | Buchgleichungen | SPICE-Konvention | Abweichung |
|---|---|---|---|
| VBE | 0,71687 V | 0,71696 V | +0,01 % |
| VCE | 12,688 V | 12,759 V | +0,071 V |
| IB | 0,54627 mA | 0,54626 mA | -0,00 % |
| IC | 123,116 mA | 122,409 mA | -0,57 % |
Erweitertes Modell (Eigen_RW_1e, RB = 36 796 Ω):
| Größe | Buchgleichungen | SPICE-Konvention | Abweichung |
|---|---|---|---|
| VBE | 0,72389 V | 0,72844 V | +0,63 % |
| VCE | 12,503 V | 12,879 V | +0,376 V |
| IB | 0,65975 mA | 0,65963 mA | -0,02 % |
| IC | 124,967 mA | 121,206 mA | -3,01 % |
Das Ergebnis bestätigt den Abgleich — und es lehrt Maßhalten:
- **Beim einfachen Modell stimmen beide Löser auf ein halbes Prozent
überein.** Die verbleibenden -0,57 % in IC sind fast vollständig der Early-Konvention zuzuschreiben (Abschnitt 9.4.4, Punkt 4: erwartet waren ≈ VBE/VA = 0,7 %, leicht gemildert durch den Thermospannungs-Effekt). Der Arbeitspunkt der Handrechnung ist damit durch den unabhängigen Simulator bestätigt.
- Beim erweiterten Modell beträgt der Unterschied 3 % — nicht
wegen anderer Parameter (die Karte enthält exakt die Werte des Python-Programms), sondern wegen der Gleichungsform: Die Vorlesungsform setzt den IKF-Abfall als βeff = βF/√(1 + IC/IKF) im Basisstrom an, SPICE dividiert stattdessen den Kollektorstrom durch die Basisladung qb, in die IKF, VAF und VAR gemeinsam eingehen. Bei IC ≈ 125 mA = 0,25 IKF macht diese Formulierungsfrage rund 3 % aus. Beide Formen beschreiben dieselbe Physik; die Vorlesungsform ist die anschauliche Näherung der SPICE-Ladungsformulierung.
Für die Praxis heißt das: Wer seinen eigenen Löser gegen einen Simulator stellt, muss Parameter und Gleichungsform abgleichen — gleiche Parameter allein garantieren erst Übereinstimmung im Prozentbereich, gleiche Gleichungen dann Übereinstimmung bis auf Rundung und Toleranzen.
9.4.4 Woher kommen die Abweichungen?
Ein Vergleich ist nur so viel wert wie das Verständnis seiner Abweichungen. Deshalb gehen wir die Fehlerquellen einzeln durch und geben jeweils die Größenordnung an — jede lässt sich aus den Zahlen dieses Kapitels nachrechnen.
1. Die Bisektionstoleranz (die größte gewollte Abweichung). Das Verfahren stoppt, sobald VCE im Toleranzband VCC/2 ± 5 % liegt — also irgendwo zwischen 11,875 V und 13,125 V. Beim einfachen Modell endet der Lauf bei VCE = 12,69 V, das sind 1,5 % über dem Idealwert; beim erweiterten Modell landet der siebte Schritt zufällig fast exakt auf dem Ziel (12,504 V). Diese Abweichung ist kein Fehler, sondern die vereinbarte Genauigkeit: Wer sie verkleinern will, verschärft die Toleranz und erhält weitere Bisektionsschritte.
2. Das Abschneiden beim Übertrag nach LTspice (vernachlässigbar). Im Schaltplan stehen 44 453 statt 44 453,12 Ω und 36 796 statt 36 796,88 Ω. Die Empfindlichkeit lässt sich direkt aus den Protokolltabellen ablesen: Zwischen den letzten Bisektionsschritten ändert sich VCE um rund 0,9 V je 3,8 kΩ, also etwa 0,25 mV pro Ohm. Ein abgeschnittenes Ohm verschiebt den Arbeitspunkt demnach um weniger als eine Millivolt-Viertel — drei Größenordnungen unter der Bisektionstoleranz.
3. Die Modellstufe (die größte physikalische Abweichung). Einfaches und erweitertes Modell unterscheiden sich im Ergebnis um 17 % in RB. Die Ursachen — Hochstrom-Abfall der Stromverstärkung (IKF), interner Basiswiderstand (RB,int) und Basis-Early-Effekt (VAB) — hat Abschnitt 9.3.3 quantifiziert. Diese Abweichung ist die Kernaussage des Kapitels: Sie zeigt, welche Parameter man nicht weglassen darf.
4. Die SPICE-interne Early-Formulierung (Prozentbereich). SPICE schreibt den Early-Faktor über die Basis-Kollektor-Spannung, (1 - VBC/VAF), unsere Gleichungen über (1 + VCE/VA). Wegen VBC = VBE - VCE unterscheiden sich beide Faktoren am Arbeitspunkt um
im Kollektorstrom; über die Lastgerade übersetzt sich das in Verschiebungen von VCE in der Größenordnung von einem Zehntel Volt. Deshalb erwarten wir von LTspice Übereinstimmung im Prozentbereich, nicht auf die letzte Stelle.
5. Die qb-Formulierung des Hochstromeffekts (3 % beim erweiterten Modell). Wie der direkte Abgleich in Abschnitt 9.4.3 gezeigt hat, setzen Vorlesungsform (βeff im Basisstrom) und SPICE (Basisladung qb im Kollektorstrom) den Parameter IKF an unterschiedlicher Stelle an. Bei IC ≈ 0,25 IKF macht das rund 3 % im Kollektorstrom aus — die größte Konventionsabweichung des Vergleichs. Sie betrifft nur das erweiterte Modell; im einfachen Modell existiert der Effekt nicht.
6. Thermospannungs-Konventionen (überraschend wichtig). Unser Löser und LTspice verwenden nicht exakt dieselbe Thermospannung, aus zwei kleinen Gründen: Erstens rechnen die Python-Programme mit T = 300 K, LTspice standardmäßig mit 27 ^circC = 300,15 K (+0,05 %). Zweitens verwenden die Programme gerundete Naturkonstanten (kB = 1,381· 10-23, q = 1,602· 10-19), deren Quotient um -0,035 % vom exakten Wert abweicht. Netto: VT = 25,861 mV (unser Löser) gegenüber VT = 25,865 mV (LTspice) — ein Unterschied von nur 0,016 %. Aber er steht im Exponenten: Bei festem VBE ändert sich der Kollektorstrom um
Die Exponentialfunktion verstärkt winzige Konventionsunterschiede um den Faktor VBE/VT ≈ 28 — dieselbe Empfindlichkeit, die uns in Kapitel 7 bei der IS-Extraktion begegnet ist. Wer Simulator und Handrechnung bis in die Nachkommastellen vergleichen will, muss deshalb zuerst Temperatur und Konstanten abgleichen.
7. Numerik (bedeutungslos). Die Newton-Toleranz von 10-10 und die Maschinengenauigkeit liegen viele Größenordnungen unter allen obigen Effekten.
Die Rangfolge ist damit klar: Modellstufe (17 %) ≫ Bisektionstoleranz (bis 5 %) gt; qb-Formulierung (≈ 3 %, nur erweitertes Modell) gt; Early-Formulierung (≈ 0,7 %) gt; Thermospannungs-Konventionen (≈ 0,4 % in IC) ≫ Übertrags-Rundung und Numerik. Wer diese Rangfolge kennt, weiß bei jedem Vergleich zwischen Handrechnung und Simulator, welche Abweichung normal ist — und welche auf einen echten Fehler deutet.
9.4.5 Ausblick: die Verstärkerschaltungen 1c und 1f
Die Schaltungen 1c und 1f erweitern die Arbeitspunktschaltung zum vollständigen Verstärker: eine Sinusquelle (100 mV Amplitude, 50 Hz) speist über einen Koppelkondensator C1 = 0,5 µF in die Basis, ein zweiter Koppelkondensator C2 = 1 µF führt das verstärkte Signal auf den Lastwiderstand R5 = 1 MΩ; simuliert wird das Zeitverhalten (.tran 0.1). Damit verlassen wir die reine Gleichstromrechnung — die Frage, welche Spannungsverstärkung sich am so eingestellten Arbeitspunkt ergibt und welche Rolle die Koppelkondensatoren spielen, ist die Leitfrage der Kleinsignalanalyse in Teil IV dieses Buches. Die beiden Schaltungen stehen dort als Simulationsreferenz bereit.
9.5 Weg 3: Das Simulink-Modell
Der dritte Weg verzichtet auf jeden fertigen Schaltungssimulator und baut die Modellgleichungen selbst auf — als Blockschaltbild in Simulink (Abbildung 9.5). Das Modell implementiert exakt die Gleichungen des erweiterten Modells aus Abschnitt 9.2; jede Formel findet sich als Blockgruppe wieder:
- Kollektorstrom-Pfad: Die Klemmenspannung VCE läuft durch
einen Verstärkungsblock 1/VA, ein Summierer bildet 1 + VCE/VA; parallel dazu entsteht aus VBE,eff über den Block 1/(n VT) und den Exponentialblock eu der Shockley-Kern. Ein Multiplizierer und die Verstärkung IS ergeben IC nach der Early-Gleichung.
- Stromverstärkungs-Pfad: Der berechnete Kollektorstrom wird über
1/IKF zurückgeführt, ein Summierer bildet 1 + IC/IKF, der Wurzelblock √(u) und die Konstante βF liefern βeff — die Rückkopplungsschleife im Diagramm ist wörtlich die implizite Kopplung, die wir in Kapitel 8 mit der Fixpunkt- bzw. Newton-Iteration aufgelöst haben.
- Basisstrom-Pfad: Aus VBE wird über den Block RB der
Spannungsabfall IB · RB,int abgezogen (VBE,eff-Definition), der Basis-Early-Faktor 1 + VCE/VAB entsteht über den Block 1/VAB, und zusammen mit IS/βeff ergibt sich IB.
- Anschluss an die Außenwelt: Zwei gesteuerte Stromquellen
prägen die berechneten Ströme IC und IB an den Klemmen ein — der Block verhält sich nach außen wie ein Transistor mit den Anschlüssen Kollektor, Basis und Emitter und kann in einer Simulink-Physical-Modeling-Schaltung genau wie das LTspice-Modell in die Fixed-Bias-Beschaltung eingebaut werden.
Was bei Simulink von außen zu sehen ist, macht sichtbar, was LTspice im Inneren verbirgt: Ein „Transistormodell" ist nichts weiter als die konsequente Verdrahtung einer Handvoll Gleichungen. Wer das Blockschaltbild lesen kann, hat das Gummel-Poon-Modell verstanden — und umgekehrt.
9.6 Zusammenfassung
- Ein Schaltungssimulator tut nichts Geheimnisvolles: Er löst die
Gummel-Poon-Gleichungen zusammen mit den Netzwerkgleichungen — mit dem Newton-Raphson-Verfahren, das wir seit Kapitel 8 selbst beherrschen.
- Der eigene Löser bestimmt per Bisektion (äußere Schleife) und
Newton-Raphson (innere Schleife) den Basiswiderstand für den Arbeitspunkt VCE = VCC/2: 44 453,12 Ω mit dem einfachen, 36 796,88 Ω mit dem erweiterten Modell. Diese Werte stehen — mit abgeschnittenen Nachkommastellen — in den LTspice-Vergleichsschaltungen des Begleitmaterials.
- Der Unterschied von 17 % zwischen beiden Modellstufen entsteht
fast vollständig durch den Hochstrom-Abfall der Stromverstärkung (βeff = 178,9 statt 200 bei 125 mA) — wer die erweiterten Parameter ignoriert, verfehlt den Arbeitspunkt.
- Der direkte Abgleich mit denselben Modellkarten bestätigt die
Handrechnung: Beim einfachen Modell stimmen Buchgleichungen und SPICE-Konvention auf ein halbes Prozent überein (VCE 12,688 V gegenüber 12,759 V); beim erweiterten Modell bleibt eine erklärbare 3-%-Differenz, weil SPICE den IKF-Effekt über die Basisladung qb im Kollektorstrom ansetzt, die Vorlesungsform als βeff im Basisstrom.
- Die Rangfolge der Abweichungsquellen — Modellstufe,
Bisektionstoleranz, Gleichungskonventionen, Thermospannung — macht jeden Vergleich zwischen Handrechnung und Simulator bewertbar.
- Das Simulink-Blockschaltbild macht die Modellgleichungen sichtbar:
Exponentialblock, Early-Faktoren, β-Rückkopplung und zwei gesteuerte Stromquellen — mehr ist ein Transistormodell nicht.
Damit ist der Bogen von Teil III geschlossen: von der Messung (Kapitel 7) über das Modell (Kapitel 6) und die eigene numerische Lösung (Kapitel 8) bis zur professionellen Simulation (dieses Kapitel). Teil IV wechselt nun die Perspektive: vom Großsignal- zum Kleinsignalverhalten — was passiert, wenn wir den sorgfältig eingestellten Arbeitspunkt mit einem kleinen Signal auslenken?
Buchgleichungen gegen die SPICE-Konvention — derselbe Arbeitspunkt, zwei Rechenwege
Übertragen aus BUCH/kap09_spice_abgleich.py, Zeile für Zeile: die beiden Thermospannungen (Z. 17–18: Python mit 300 K, LTspice mit 27 °C und den exakten SI-Konstanten), der gedämpfte Newton mit numerischer Jacobi-Matrix (Z. 22–38, h = 10−9, Schrittweiten auf 0,02 V und 2 V begrenzt, tol = 10−12), die Buchgleichungen (Z. 47–64) und die Gummel-Poon-Auswertung, wie LTspice sie aus der .MODEL-Karte macht (Z. 67–91: Early über VBC, qb-Formulierung). Die beiden Basiswiderstände sind die aus seinen Schaltplänen.
Einfaches Modell — Eigen_RW_1d, R2 = 44453 Ω
Erweitertes Modell — Eigen_RW_1e, R2 = 36796 Ω
Die vier .MODEL-Karten, wörtlich aus seinen .asc-Dateien
| Datei | .MODEL-Karte, wörtlich | Basiswiderstand im Schaltplan |
|---|---|---|
Eigen_RW_1c.asc | .MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100) | R2 = 44453 Ω |
Eigen_RW_1d.asc | .MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100) | R2 = 44453 Ω |
Eigen_RW_1e.asc | .MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100 VAR=200 IKF=0.5 RB=10) | R2 = 36796 Ω |
Eigen_RW_1f.asc | .MODEL simple_npn NPN(IS=1e-13 BF=200 NF=1 VAF=100 VAR=200 IKF=0.5 RB=10) | R2 = 44453 Ω |
Die Schaltung als Netzliste — gerechnet vom eigenen Löser
Was hier anders ist als in allen Reitern davor
In den Reitern „Arbeitspunkt von Hand“, „Arbeitspunkt Newton“ und „Simulation und SPICE“ wird jedesmal dieselbe Schaltung von Hand in Gleichungen gebracht: zwei Maschen aufschreiben, den Residuenvektor F(VBE, VCE) hinschreiben, die Jacobi-Matrix dazu ableiten, Newton laufen lassen. Das geht, solange die Schaltung zwei Unbekannte hat. Bei drei Widerständen, zwei Kondensatoren und einer Signalquelle geht es nicht mehr — und vor allem: für jede neue Schaltung müsste man von vorn anfangen.
Hier wird statt dessen nichts von Hand aufgestellt. Die Schaltung wird als Netzliste hingeschrieben, eine Zeile je Bauteil, und ein Löser baut daraus selbst die Knotenleitwertmatrix: jedes Bauteil trägt nur seinen festen Stempel ein, der Transistor eben vier Leitwerte und zwei Ersatzstromquellen statt eines Leitwerts und einer Ersatzquelle. Newton-Raphson erneuert diese Tangenten in jedem Durchgang, Euler schreibt danach die Kondensatorspannungen fort. Das ist genau das, was ein SPICE-Programm tut — nur ist hier jeder Schritt sichtbar und von Hand nachrechenbar.
Alle sechs Bauteilklassen seines Lösers sind übertragen, nicht eine Auswahl: Widerstand, Spannungsquelle (Gleich- und Sinusquelle), Diode mit ihren Modellkarten, Kondensator, Induktivität und Transistor. Eine Netzlistenzeile, die bei ihm läuft, läuft deshalb auch hier.
Als Probe darauf, dass hier wirklich sein allgemeines Verfahren steht und kein Transistor-Sonderfall, rechnet der dritte Fall unten seine B4-Brücke — vier Dioden, ein RC-Glied mit Last, eine Sinusquelle —, und zwar mit demselben Quelltext: geändert wird die Netzliste, nicht das Programm.
Die Parameter sind die selbst ermittelten
Gerechnet wird mit dem Satz, den sein Gesamtausgleich aus seinen Messungen
gewonnen hat — bjt_fit.py, Nelder-Mead über alle fünf gemessenen
Kennlinienfelder gleichzeitig, Prüfling BC337 —, nicht mit einem Datenblattsatz. So sieht
die Karte aus, wenn man sie als .MODEL-Zeile schreibt:
.MODEL BC337_eigen NPN(IS=4.765E-14 NF=1.004 BF=253.2 VAF=126.6 VAR=1.39E3 IKF=4.05 RB=18.8)
Diese sieben Zahlen sind nicht gleichwertig. Der Lauf von bjt_fit.py prüft
selbst nach, welcher Parameter durch die Messdaten überhaupt festgelegt ist: er verstellt
jeden um 20 % und sieht nach, um welchen Faktor die Gesamtabweichung steigt. Steigt sie
kaum, dann sagen die Daten über diesen Parameter nichts. Die Spalte
Empfindlichkeitsprobe unten trägt genau diese Faktoren, die Spalte
Herkunft die Einordnung in drei Klassen.
| SPICE | Zeichen | Wert im Satz | woher die Zahl kommt | Empfindlichkeitsprobe | Herkunft | was das heißt |
|---|---|---|---|---|---|---|
IS | I_S | 4,765·10⁻¹⁴ A | Ic_Vbe.txt (Gummel-Plot) im Gesamtausgleich bjt_fit.py | ×8,87 | gemessen | gemessen und daraus bestimmt |
NF | n | 1,004 | Ic_Vbe.txt — Steigung im Gummel-Plot, bjt_fit.py | ×3211,81 | gemessen | gemessen und daraus bestimmt |
BF | β_F | 253,2 | Ic_Ib.txt und hFE_Ic.txt, bjt_fit.py | ×38,50 | gemessen | gemessen und daraus bestimmt |
VAF | V_A | 126,6 V | Ic_Vce.txt — flacher Ast, bjt_fit.py | ×1,06 | gemessen (schwach) | gemessen, aber nur schwach bestimmt: 20 % Verstellung kostet nur 6 % Gesamtabweichung |
VAR | V_AB | 1,39·10³ V (gesetzt) | Ergebnis des Ausgleichs, aber ohne Aussagekraft — die Messreihen legen den Wert nicht fest; er wirkt nur über 1 + V_CE/V_AB im Basisstrom | ×1,00 | gesetzt | aus diesen Daten nicht bestimmbar, deshalb gesetzt |
RB / RBM | R_B,int | 18,8 Ω (gesetzt) | Ergebnis des Ausgleichs; der Messplatz misst die Klemmenspannung, der Spannungsabfall am inneren Bahnwiderstand ist darin nicht trennbar | ×1,01 | gesetzt | aus diesen Daten nicht bestimmbar, deshalb gesetzt |
IKF | I_KF | 4,05 A (gesetzt) | Ergebnis des Ausgleichs; gemessen wurde nur bis 9,3 mA, ein Hochstromabfall wird dort gar nicht erreicht | ×1,00 | gesetzt | aus diesen Daten nicht bestimmbar, deshalb gesetzt |
— | V_T | 25,852 mV (Annahme) | T = 300 K; in seinen Programmen steht wörtlich „Annahme Raumtemperatur“ (bjt_extract.py Z. 13). Die Messdateien tragen keine Temperatur; seine eigene Messvorschrift verlangt sie („Raumtemperatur notieren“) | — | gesetzt | nicht protokolliert, deshalb angenommen |
BR, NR, IKR, ISC, NC | — | — | Rückwärts- und Sättigungsbetrieb | — | nicht messbar | mit diesem Gerät nicht messbar: es misst nur den Vorwärts-Aktivbetrieb |
ISE, NE | I_SE, n_E | — | Leckterm der Basis-Emitter-Sperrschicht | — | nicht messbar | mit diesem Gerät nicht messbar: der Kleinststrombereich wird nicht erfasst |
RE, RC | — | — | Emitter- und Kollektorbahnwiderstand | — | nicht messbar | mit diesem Gerät nicht messbar: aus Gleichstrommessungen im Aktivbetrieb nicht von R_B,int trennbar |
CJE, CJC, VJE, VJC, MJE, MJC | — | — | Sperrschichtkapazitäten | — | nicht messbar | mit diesem Gerät nicht messbar: es misst statisch, Punkt für Punkt |
TF, TR, ITF, VTF, XTF | — | — | Laufzeiten und Ladungsspeicherung | — | nicht messbar | mit diesem Gerät nicht messbar: es misst statisch, Punkt für Punkt |
XTI, EG, XTB, TRE1, TRB1 | — | — | Temperaturgang | — | nicht messbar | mit diesem Gerät nicht messbar: aufgenommen wurde bei einer einzigen, nicht protokollierten Temperatur |
KF, AF | — | — | Rauschen | — | nicht messbar | mit diesem Gerät nicht messbar: der Messplatz mittelt und misst statisch |
- Das Modell hat keine Sperrschichtkapazitäten und keine Laufzeiten, weil der Messplatz sie nicht messen kann. Die Verstärkung, die hier herauskommt, ist deshalb die quasistatische: Bei 1 kHz und bei 100 MHz käme dieselbe Zahl heraus. Das ist falsch — nur eben nicht mit diesem Gerät als falsch nachweisbar. Eine obere Grenzfrequenz hat dieses Modell nicht.
- Der Zeitverlauf zeigt die Verzerrung, die aus der Kennlinie kommt (die e-Funktion), nicht die aus der Ladungsspeicherung. Die Unsymmetrie unten ist also die der Exponentialfunktion und sonst nichts.
- Das Bauteil kennt keine Sättigung und keinen Inversbetrieb (Teil XII, Abschnitt 51.2). Wer den Kollektorwiderstand so groß schiebt, dass VCE unter etwa 0,3 V geriete, bekommt keine Sättigungskennlinie, sondern eine Zahl außerhalb des Gültigkeitsbereichs. Die Seite sagt es dann an.
- Die Thermospannung ist eine Annahme: T = 300 K. Die Messdateien tragen keine Temperatur, obwohl seine eigene Messvorschrift sie verlangt. Alle Ströme hängen über exp(V/nVT) unmittelbar daran.
Drei Netzlisten, ein Löser: Arbeitspunkt, Signalverstärkung — und ein Brückengleichrichter mit vier Dioden
Übertragen aus DGL_Nichtlinear/Programme/simulator.py, Zeile für Zeile — über jeder Funktion im Quelltext der Seite steht, aus welcher Klasse und welchen Zeilen sie stammt: wert (Z. 96–102), Widerstand (Z. 109–131), Spannungsquelle (Z. 134–167), Diode (Z. 170–199) samt ihren Modellkarten aus bruecke_kern.py (Z. 51, 53–84), Kondensator (Z. 202–252), Induktivitaet (Z. 255–292), GummelPoon (Z. 338–424) mit den vier analytischen Tangenten, MODELLE_BJT (Z. 432–463), Transistor (Z. 466–568) mit den zwölf Kreuzungen und den zwei Ersatzstromquellen, und Simulator (Z. 577–740) mit dem Einlesen der Netzliste, der Vergabe der Zusatzunbekannten, _newton (Z. 662–696: GMIN = 10−9 S an jedem Knoten, Dämpfung dmax = 0,5 V, Abbruch bei max|F| < 10−12 und max|Δ| < 10−9, höchstens 200 Durchgänge) und schritt (Z. 699–711: Newton, dann Euler). Alle sechs Bauteilklassen seines Lösers sind übertragen, nicht eine Auswahl — R, Q/V, D, C, L und T; eine Netzlistenzeile, die bei ihm läuft, läuft hier auch. Zwei Zutaten sind ausdrücklich unsere: die Auflösung des Gleichungssystems (sein Löser ruft numpy.linalg.solve, hier steht das Gauß-Verfahren mit Teilpivotierung ausgeschrieben — dasselbe Verfahren, das LAPACK darunter ausführt) und das Mitschreiben des Newton-Protokolls, das an der Rechnung nichts ändert.
Fall 1 — nur der Arbeitspunkt
Die Netzliste — fünf Zeilen, änderbar
* oder #, Vorsätze
p n u m k meg.Die Knotenmatrix Y und der Vektor i im letzten Durchgang
Die Newton-Durchgänge
Der Arbeitspunkt vollständig — und was sein Löser ausgibt
Wie weit trägt die Zahl? Empfindlichkeit gegen die drei gesetzten Parameter
Gegenprobe: dieselbe Netzliste für seine Fixed-Bias-Schaltung mit dem BC547
Fall 2 — die vollständige Verstärkerstufe
Die Netzliste der Verstärkerstufe
Die Schaltung
Der Arbeitspunkt der Stufe
Die vier Tangenten im Arbeitspunkt — und die Kleinsignalverstärkung daraus
Die zwei Verstärkungen nebeneinander
Der Zeitverlauf: Eingang und Ausgang, letzte Periode
Der Ausgangshub über dem Eingangshub — die Kennlinie der Stufe im Großsignal
Fall 3 — dieselben fünf Klassen lösen auch einen Brückengleichrichter
Bis hierher stand ein Transistor in der Netzliste. Jetzt steht dort seine B4-Brücke — vier Dioden, ein Innenwiderstand, ein RC-Glied mit Last, eine Sinusquelle —, und es ist derselbe Löser, Zeile für Zeile derselbe Quelltext, der sie rechnet. Das ist der Beleg dafür, dass hier sein allgemeines Verfahren steht und kein Transistor-Sonderfall: geändert wird die Netzliste, nicht das Programm.
Seine Netzliste bruecke.netz, wörtlich
Die Kennzahlen im eingeschwungenen Zustand — und was sein Löser ausgibt
Der Zeitverlauf: Quellspannung, Brückenausgang und die Spannung am Kondensator
Die letzte Periode: die Restwelligkeit
Die letzte Periode: die Stromspitzen in den Dioden
Was offen ist
86_gummel_poon_h_parameter.md · Quelle: MANUSKRIPT_Transistor_v2.md (Markdown-Quelle)Autor: Prof. Dr.-Ing. Ralph Wystup M.Sc. · Vorlesungsmanuskript zur Transistortechnik Version 2 — Kapitel 2 verwendet ausschließlich das vereinfachte Modell mit den Klemmenspannungen VBE, VCE (keine VBC-Formulierung, kein Leckterm); ergänzt um Kap. 5.7 „Das messungsbasierte Vierquadranten-Kennlinienfeld".
Vorbemerkung — Ziel und Anspruch dieses Skripts
Dieses Skript verfolgt ein Ziel: vollständige Transparenz der Methode. Es zeigt lückenlos,
- welches physikalische Modell dem Bipolartransistor zugrunde liegt (Gummel-Poon),
- welche Parameter (SPICE) darin vorkommen und was sie bedeuten,
- wie man diese Parameter aus Messungen bestimmt — mit jeder Annahme, jeder Näherung und den Grenzen der Bestimmbarkeit,
- wie man daraus das Kleinsignalverhalten (h-Parameter) ableitet — analytisch und grafisch.
Als durchgehendes Rechenbeispiel dient ein realer NPN-Transistor BC337-25, dessen Kennlinien mit einem Kurventracer aufgenommen und ausgewertet wurden.
Grundannahmen des gesamten Skripts (sofern nicht anders vermerkt): - Temperatur T = 300 K, damit Thermospannung VT = kB T/q = 25,85 mV. - NPN-Transistor im Vorwärts-Aktivbetrieb (VBE gt;0, VBC lt;0). - Quasistatik (keine Kapazitäten) für DC- und h-Parameter-Betrachtung. - Ein-Dimensionalität, homogene Dotierung je Zone, Niedriginjektion außer wo ausdrücklich Hochinjektion behandelt wird.
1. Physikalische Grundlagen
1.1 Der Transistor als gesteuerte Quelle
Ein NPN-Transistor besteht aus zwei gegeneinander geschalteten pn-Übergängen (Emitter-Basis, Kollektor-Basis) mit einer sehr dünnen Basis. Im Aktivbetrieb ist die BE-Diode in Fluss, die BC-Diode in Sperr. Über der BE-Diode injizierte Elektronen diffundieren durch die dünne Basis und werden vom Kollektor „abgesaugt".
1.2 Ebers-Moll als Ausgangspunkt
Das Ebers-Moll-Modell beschreibt beide Dioden mit ihren Transportströmen. Im Vorwärts-Aktivbetrieb dominiert der Vorwärts-Transportstrom
mit dem Transport-Sättigungsstrom IS. Der Kollektorstrom ist im Idealfall IC ≈ ICC, der Basisstrom IB = ICC/βF. Ebers-Moll erfasst aber nicht: Early-Effekt, Hochinjektion, Leckströme, Bahnwiderstände. Genau diese Effekte ergänzt das Gummel-Poon-Modell.
2. Das verwendete Transistormodell
Diesem Skript liegt ein vereinfachtes Transistormodell für den Aktivbetrieb zugrunde — genau die Gleichungen des begleitenden Simulink-Modells. Ausgangspunkt ist die Early-Gleichung des Kollektorstroms. Alle Ströme sind Funktionen der Klemmenspannungen VBE und VCE.
2.1 Der Kollektorstrom (Early-Gleichung)
- IS — Sättigungsstrom, n — Emissionskoeffizient (ideal ≈ 1), VA — Early-Spannung.
- Der Exponentialterm beschreibt die in Fluss betriebene BE-Diode; der Faktor big(1+VCE/VAbig) die Basisweitenmodulation (Early-Effekt) — direkt über die Klemmenspannung VCE.
2.2 Der Early-Effekt und VA
(1) Anschauung. Steigt VCE, verbreitert sich die Kollektor-Basis-Sperrschicht in die Basis hinein; die effektive Basisweite sinkt, der Diffusionsgradient steigt, also steigt IC leicht mit VCE — die Ausgangskennlinien sind nicht exakt waagerecht.
(2) Messvorschrift. Extrapoliert man die flachen Äste der Ausgangskennlinien rückwärts, schneiden sie die VCE-Achse gemeinsam im Punkt VCE=-VA. Daraus wird VA bestimmt (Kap. 4).
(3) Beispiel (BC337-25). VA≈ 146 V (Datenblatt 145,7 V).
2.3 Die effektive Stromverstärkung (Hochinjektion, IKF)
(1) Anschauung. Bei großem IC wird die injizierte Ladungsträgerdichte vergleichbar mit der Basisdotierung; die Verstärkung bricht ein, β fällt bei hohen Strömen ab.
(2) Mathematik. Über die normierte Basisladung qB ergibt sich
mit der idealen Stromverstärkung βF und dem Vorwärts-Kniestrom IKF: bei IC=IKF ist β um den Faktor √2 gefallen.
(3) Beispiel. BC337-25: IKF≈ 0,9 A — bei den gemessenen ≤ 11 mA ist IC/IKF≲ 0,01, der Abfall also nicht sichtbar (wichtig für Kap. 4/5).
2.4 Der Basisstrom und die innere Basis-Emitter-Spannung
Der innere Basiswiderstand RB,int reduziert die innere Basis-Emitter-Spannung um den Spannungsabfall am Widerstand:
Nur diese innere Spannung treibt den Übergang. Damit lautet der Basisstrom
Der Faktor big(1+VCE/VABbig) modelliert die (schwache) VCE-Abhängigkeit des Basisstroms und ist für die spätere Rückwirkung h12e verantwortlich.
Anmerkung (Modellgrenze). Der reale BC337 zeigt bei kleinem Strom einen leichten hFE-Anstieg (Rekombination in der BE-Sperrschicht). Dieses vereinfachte Modell enthält diesen Effekt bewusst nicht — er bleibt als kleine, benannte Restabweichung sichtbar (Kap. 4). Vollständige Modelle beschreiben ihn über einen zusätzlichen Leckterm; hier wird er nicht verwendet.
2.5 Das vollständige Gleichungssystem
Annahmen: Aktivbetrieb (keine Sättigung, kein Inversbetrieb), T=300 K, Niedriginjektion außer der über IKF erfassten Hochstromkorrektur.
Zwei Formulierungen nebeneinander. Im Exponenten des *Kollektor*stroms steht hier die Klemmenspannung VBE; das Vorlesungsmanuskript BJT-SPICE setzt an derselben Stelle die innere Spannung VBE,eff ein, weil der Übergang für beide Ströme dieselbe innere Spannung sieht. Beide Rechnungen sind in sich richtig — IS nimmt den Unterschied auf —, aber die Parameter der einen Form dürfen nicht in das Programm der anderen eingesetzt werden. Der Unterschied ist der Faktor expbig(IB RB,int/(n VT)big): beim BC337-25 mit IC=5mA, VCE=5V (IB=18,58 µA, RB,int=60 Ω) sind das 1,115 mV und damit +4,4 % in IC; beim BC547 im Fixed-Bias-Arbeitspunkt (IC=125mA, IB=650,5 µA, RB,int=15 Ω) sind es 9,758 mV und +45,3 %.
2.6 Die implizite Gleichung und die algebraische Schleife
VBE,eff=VBE-IB RB,int und IB hängen wechselseitig voneinander ab → im Simulationsfluss entsteht eine algebraische Schleife. Sauber löst man sie
- physikalisch durch eine kleine Basis-Kapazität C (Knotengleichung C dot VBE,eff = (VBE-VBE,eff)/RB,int - IB; im stationären Zustand exakt), oder
- numerisch durch einen Fixpunkt-/Newton-Solver.
Ein z^{-1}/Delay bricht die Schleife zwar auf, ist wegen der steilen e-Funktion aber instabilitätsgefährdet — die Schleife wird am besten an der Spannung VBE,eff aufgebrochen, nicht am Strom.
3. SPICE-Parameter im Überblick
| SPICE | Symbol | Bedeutung | BC337-25 (Ref.) |
|---|---|---|---|
IS | IS | Transport-Sättigungsstrom | 4,1·10-14 A |
NF | n | Vorwärts-Emissionskoeffizient | 1,0 |
BF | βF | ideale Vorwärts-Stromverstärkung | 292 |
VAF | VA | Vorwärts-Early-Spannung | 146 V |
IKF | IKF | Vorwärts-Kniestrom (Hochinjektion) | 0,9 A |
ISE | ISE | B-E-Leck-Sättigungsstrom | 3,5·10-15 A |
NE | NE | B-E-Leck-Emissionskoeffizient | 1,35 |
RB | RB | Basis-Bahnwiderstand | 60 Ω |
VAR | VAR/VAB | Rückwärts-Early-Spannung | (Rückwirkung) |
Weitere GP-Parameter (BR, ISC, NC, IKR, RC, RE, Kapazitäten CJE, CJC, TF, TR …) betreffen Invers-, Sperr- und Dynamikverhalten und werden hier nicht benötigt.
4. Parameterbestimmung aus Messungen — die Methode
Wir bestimmen die Parameter aus fünf Kennlinienfeldern eines Kurventracers. Jeder Schritt nennt Messgröße, Formel, Annahme und Grenze.
4.1 IS und n aus dem Gummel-Plot
Messung: IC über VBE (halblogarithmisch), bei konstantem VCE. Modell: ln IC = lnbig[IS(1+VCE/VA)big] + (VBE)/(n VT). Die Gerade im halblog. Plot hat Steigung 1/(n VT) und Achsenabschnitt ln IS':
Annahmen/Grenzen: Auswertung nur im rein exponentiellen Ast. Nach unten begrenzt durch den Rausch-/Quantisierungsboden des Tracers (hier ≈ 5 µA), nach oben durch Hochinjektion/RB. Wird dieser Bereich nicht sauber gewählt, ergeben sich unphysikalische Werte (im Beispiel lieferte ein zu weites Fenster zunächst n≈ 3,5 statt 1,0). Beispiel: n = 1,004, IS = 4,8·10-14A.
4.2 VA aus der Ausgangskennlinie
Messung: IC über VCE bei konstantem IB. Formel: flachen Ast linear fitten, IC = a + b VCE; der VCE-Achsenschnitt liegt bei -VA:
Grenze: die VA-Werte streuen leicht mit IB; VA ist nur schwach bestimmt. Beispiel: VA≈ 110…150V.
4.3 βF und IKF aus hFE
Messung: hFE=IC/IB über IC bzw. Steigung von IC-IB. βF ist das Plateau/Maximum von hFE; IKF folgt aus dem Hochstromabfall β=βF/√(1+IC/IKF). Grenze: ist der Abfall im Messbereich nicht erreicht, ist IKF nicht bestimmbar (nur untere Schranke). Beispiel: βF≈ 250…275; IKF nicht bestimmbar (≫ 11mA) → Datenblatt 0,9A.
4.4 RB und die Grenze des Modells
- Der reale hFE-Anstieg bei kleinem IC (BE-Rekombination) ist im verwendeten Modell nicht enthalten (Kap. 2.4) und bleibt eine kleine, benannte Restabweichung.
- RB zeigt sich erst im Hochstrom-Knick des Gummel-Plots; bei kleinen Strömen unsichtbar → nicht bestimmbar → Datenblatt.
4.5 Globaler Fit und Identifizierbarkeit
Statt Feature-für-Feature kann man alle Kennlinien gleichzeitig fitten (hier: Nelder-Mead, ableitungsfrei). Kostenfunktion = mittleres quadratisches, datensatzweise gewichtetes Residuum (Gummel im Log-, die übrigen im Relativmaß).
Der entscheidende Transparenzschritt — Identifizierbarkeit. Ein Parameter ist nur dann aus den Daten bestimmbar, wenn die Kostenfunktion empfindlich auf ihn reagiert. Test: jeden Parameter um +20 % stören und den Kostenanstieg messen.
| Parameter | Kostenfaktor (+20 %) | Bestimmbar? |
|---|---|---|
| n | × 2774 | ja, sehr stark |
| βF | × 28 | ja |
| IS | × 7,2 | ja |
| VA | × 1,07 | schwach |
| RB | × 1,19 | schwach |
| IKF | × 1,0 | nein (flach) |
Konsequenz (und ehrliche Aussage der Methode): IKF und RB hinterlassen im gemessenen Bereich keine bzw. kaum Signatur — man kann sie nicht „aus dem Fehler herausziehen"; sie werden aus dem Datenblatt bzw. als Default gesetzt. Ihre Bestimmung erfordert gezielte Zusatzmessungen (Hochstrom für IKF, Hochstrom-Gummel für RB).
4.6 Validierung
Das Modell mit dem bestimmten Satz trifft alle fünf Kennlinienfelder auf ≈ 1–2 % RMS. Der Abgleich mit dem BC337-25-Datenblatt (IS, VA, βF) ist die stärkste unabhängige Bestätigung.
5. Kleinsignalverhalten und h-Parameter
5.1 Arbeitspunkt und Linearisierung
Um einen Gleich-Arbeitspunkt Q=(VBEQ,VCEQ) werden IC und IB linearisiert. Mit den vier Leitwerten (partielle Ableitungen des Modells)
gilt für die Kleinsignalgrößen (vbe, vce, ib, ic):
5.2 Definition der h-Parameter (Emitterschaltung)
Die Hybrid-(h-)Parameter wählen ib und vce als unabhängige Größen:
| Definition | Name | Einheit | ||
|---|---|---|---|---|
| h11e | $\left.\dfrac{\partial V_{BE}}{\partial I_B}\right | _{V_{CE}}$ | Eingangswiderstand | Ω |
| h12e | $\left.\dfrac{\partial V_{BE}}{\partial V_{CE}}\right | _{I_B}$ | Spannungsrückwirkung | – |
| h21e | $\left.\dfrac{\partial I_C}{\partial I_B}\right | _{V_{CE}}$ | Stromverstärkung | – |
| h22e | $\left.\dfrac{\partial I_C}{\partial V_{CE}}\right | _{I_B}$ | Ausgangsleitwert | S |
5.3 Herleitung der h-Parameter aus den Leitwerten
Aus der zweiten Gleichung (ib = gπ vbe+gµ vce) nach vbe auflösen:
In die ic-Gleichung einsetzen:
5.4 Physikalische Ausdrücke (mit dem Modell aus Kap. 2)
Setzt man die Ableitungen ein (idealer Basisstrom, IB≈ IC/β):
Damit die kompakten, in der Vorlesung zentralen Beziehungen:
Interpretation. h11e ist der differentielle BE-Widerstand (fällt mit IC); h21e ist die (Kleinsignal-)Stromverstärkung; h22e ist der Early-Ausgangsleitwert; h12e die (sehr kleine) Rückwirkung. Grenze: ist VAB im Modell nicht gesetzt (VAB→∞), folgt h12e→ 0 — die vereinfachte Form bildet die Rückwirkung praktisch nicht ab (real h12esim10-4).
5.5 Bezug zum Kleinsignal-Ersatzbild
Mit rπ=h11e, β=h21e, ro=1/h22e und gm=β/rπ ergibt sich unmittelbar das Hybrid-π-Ersatzbild.
5.6 Grafische Bestimmung im Vierquadranten-Kennlinienfeld
(1) Anschauung. Jeder h-Parameter ist die Tangentensteigung einer Kennlinie im Arbeitspunkt. Klassisch ordnet man die vier Kennlinien im Vierquadranten-Kennlinienfeld an; der Arbeitspunkt verbindet alle vier:
- Eingangskennlinie IB(VBE)|VCE → Steigung gπ, also h11e=1/gπ.
- Übertragungskennlinie IC(IB)|VCE → Steigung =h21e.
- Ausgangskennlinie IC(VCE)|IB → Steigung =h22e.
- Rückwirkungskennlinie VBE(VCE)|IB → Steigung =h12e.
(3) Rechenbeispiel BC337-25 bei IC=5 mA, VCE=5 V (⟹ VBE=658 mV, IB=19,1 µA):
Warum das Programm 1,45 kΩ ausgibt. Die kompakte Formel h11e=β nVT/IC enthält den Basisbahnwiderstand nicht. bjt_hparam.py leitet dieselbe Größe aus dem gefitteten Modell ab, in dem RB,int=60 Ω steckt, und kommt deshalb auf h11e=1452,7 Ω und h21e=279,8 — rund 2 % über dem Wert der kompakten Formel. Von Hand nachgerechnet: nVT/IB + RB,int = 1396,7 Ω + 60 Ω = 1456,7 Ω.
5.7 Vom Messwert zum h-Parameter — das messungsbasierte Vierquadranten-Kennlinienfeld
Die vier Kennfelder lassen sich zum klassischen Vierquadranten-Kennlinienfeld zusammenfügen, in dem ein Arbeitspunkt über alle vier Quadranten „durchgezogen" wird (Anordnung: Q2 Übertragung | Q1 Ausgang oben, Q3 Eingang | Q4 Rückwirkung unten; die Achsen IC, VCE, IB, VBE sind jeweils quadrantenübergreifend geteilt). Entscheidend für die Lehre ist die lückenlose Verankerung in den Messdaten — hier der Weg Messung → Fit → Tangente → h-Parameter in einem Bild.
Datengrundlage je Quadrant (volle Transparenz):
- Q1 (Ausgang, IC–VCE) und Q2 (Übertragung, IC–IB) sind direkt gemessen (Kurventracer-Dateien
Ic_Vce,Ic_Ib). - Q3 (Eingang, VBE–IB) und Q4 (Rückwirkung, VBE–VCE) wurden nicht direkt aufgenommen, lassen sich aber aus den vorhandenen Messdatensätzen rekonstruieren — sie ruhen damit ebenfalls auf der Messung:
- Q3: Bei gemeinsamem VCE werden IC–VBE und IC–IB über den gemeinsamen Kollektorstrom verknüpft. Für jeden Stützwert IC liefert die eine Messung VBE(IC), die andere IB(IC) — das ergibt das gesuchte Wertepaar (IB, VBE).
- Q4: Für festes IB liefert IC–VCE den Verlauf IC(VCE); die Messung IC–VBE liefert dazu VBE(IC). Zusammengesetzt ergibt sich (VCE, VBE).
Konstruktion und Ablesung. Die vier Konstruktionslinien IC=const, IB=const, VBE=const, VCE=const verbinden die vier Arbeitspunkte zu einem geschlossenen Zug. Die Tangente in jedem Quadranten ist die gesuchte Steigung und liefert unmittelbar den h-Parameter (Kap. 5.2/5.3). Die glatte Linie ist der Fit an genau diese Messpunkte; die Tangentensteigung ist damit die gemessene Steigung, kein freier Modellwert.
Ehrliche Grenze. In Q4 liegen die (rekonstruierten) Messpunkte praktisch waagerecht: die Rückwirkung h12e ist so klein, dass sie unter der Messauflösung liegt — konsistent mit h12e≈ 0 des vereinfachten Modells (real sim 10-4). Das ist selbst eine lehrreiche Aussage: nicht jeder Parameter ist aus jedem Messaufbau ablesbar.
6. Zusammenfassung
- Das verwendete Modell erweitert die ideale Kennlinie um Early-Effekt (VA), Hochinjektion (IKF) und den inneren Basiswiderstand (RB,int) — durchgehend in den Klemmenspannungen VBE, VCE.
- Aus fünf Kennlinienfeldern lassen sich IS, n, βF, VA direkt bestimmen; IKF und RB sind im üblichen Messbereich nicht identifizierbar und werden aus dem Datenblatt/als Default gesetzt — das macht die Identifizierbarkeitsanalyse transparent.
- Die h-Parameter folgen als Tangentensteigungen bzw. analytisch aus den Modell-Leitwerten; die kompakten Beziehungen h11e=β n VT/IC, h21e=β, h22e=IC/(VA+VCE) verbinden Kennlinie, Modell und Ersatzbild.
Anhang A — Formelzusammenfassung
Anhang B — Symbolverzeichnis
| Symbol | Bedeutung |
|---|---|
| VT | Thermospannung kBT/q |
| IS | Transport-Sättigungsstrom |
| n | Emissionskoeffizient (ideal ≈ 1) |
| βF,βeff | ideale / effektive Stromverstärkung |
| VA,VAB | Vorwärts- / Rückwärts-Early-Spannung |
| IKF | Vorwärts-Kniestrom |
| RB | Basis-Bahnwiderstand |
| gm,gπ,go,gµ | Kleinsignal-Leitwerte |
| h11e… h22e | Hybrid-Parameter (Emitterschaltung) |
| rπ,ro | Eingangs-/Ausgangswiderstand (Hybrid-π) |
Anhang C — Verwendete Werkzeuge und Reproduzierbarkeit
Die Auswertung erfolgte mit eigenständigen Python-Programmen (nur numpy/matplotlib): bjt_gesamt.py/bjt_dashboard.py (Extraktion, globaler Fit, Bewertung), bjt_hparam.py (h-Parameter im Arbeitspunkt) und bjt_4quadrant.py (messungsbasiertes Vierquadranten-Kennlinienfeld, Kap. 5.7). Alle Programme verwenden die Messdaten als Grundlage — die Modellkurven sind der Fit an genau diese Messungen. Damit ist jeder Schritt nachvollziehbar und reproduzierbar.
Anhang D — Literatur (Auswahl)
- H. K. Gummel, H. C. Poon: An Integral Charge Control Model of Bipolar Transistors, Bell Syst. Tech. J., 1970.
- G. Massobrio, P. Antognetti: Semiconductor Device Modeling with SPICE.
- Tietze/Schenk: Halbleiter-Schaltungstechnik.
- BC337-25 SPICE-Modell (Philips/NXP).
Das Kleinsignal-Ersatzschaltbild und die h-Parameter
Übertragen aus bjt_hparam.py: der Parametersatz (Z. 26–28), die Modellgleichungen ic_model und ib_model mit der 40-schrittigen Fixpunktiteration (Z. 45–55), vbe_from_ic (Z. 56–57), der Arbeitspunkt (Z. 64–65) und die vier h-Parameter als zentrale Differenzen mit ΔVBE = 0,1 mV und ΔVCE = 10 mV (Z. 68–77). Das Ersatzschaltbild daneben ist das, das er lehrt: der Transistor als Vierpol in Hybriddarstellung (MANUSKRIPT_Vierpol_Verstaerker.md, Abschnitt 5.1), mit seinen Formelzeichen. Kein π-Modell.
Das Kleinsignal-Ersatzschaltbild — der h-Vierpol
Der Arbeitspunkt und die vier Grundsteigungen
Die h-Parameter, und was sein Programm ausgibt
Die vier Kennfelder mit der Tangente im Arbeitspunkt
87_vierpol_verstaerker.md · Quelle: MANUSKRIPT_Vierpol_Verstaerker.md (Markdown-Quelle)Autor: Prof. Dr.-Ing. Ralph Wystup M.Sc. · Vorlesungsmanuskript zur Transistortechnik
1. Überblick
Dieses Manuskript beschreibt vollständig, wie das Programm bjt_verstaerker.py eine Transistor-Emitterschaltung berechnet – vom gemessenen Transistor bis zu Eingangswiderstand, Ausgangswiderstand und Verstärkung. Der Rechenweg folgt der klassischen Vierpoltheorie in fünf Schritten:
- Arbeitspunkt der Schaltung mit dem Newton-Raphson-Verfahren
- h-Parameter durch Ableiten der gefitteten Kennliniengleichungen
- Umrechnung aller Glieder in Kettenmatrizen (A-Parameter)
- Kettenschaltung: Matrixmultiplikation zu einem Gesamtvierpol
- Beschaltung mit Last R_L und Quelle R_i, daraus die Kenngrößen
Jeder Schritt wird hergeleitet und anschließend mit den Zahlen eines konkreten Programmlaufs vorgerechnet, so dass sich jede Zeile mit dem Taschenrechner nachprüfen lässt. Kapitel 2 stellt vorab die benötigten Grundbegriffe der Vierpoltheorie zusammen; wer sie kennt, kann direkt bei Kapitel 3 einsteigen.
1.1 Die Schaltung
+Vcc = 15 V
│ │
[Rb] [Rc] Rb = 510 kΩ (automatisch bestimmt)
510 kΩ 1 kΩ Rc = 1 kΩ
│ │
│ ├────┤C├────o Ausgang ──[RL = 10 kΩ]── Masse
│ │ Koppel-C
│ │ C (Kollektor)
~ Uq ──[Ri]──┤C├──┴──── B ─┤ BC337-25
Quelle 1 kΩ Koppel-C │ E (Emitter)
│
Masse
Der Koppelkondensator liegt zwischen Quelle und Basisknoten; R_b greift hinter dem Kondensator direkt am Basisknoten an. Nur so erreicht die Gleichvorspannung die Basis, und die Quelle bleibt gleichstromfrei.
Der Emitter liegt direkt an Masse, die Basis wird über einen einzelnen Widerstand R_b aus V_cc vorgespannt, Quelle und Last sind über Koppelkondensatoren angeschlossen (für die Rechnung als ideal, d. h. unendlich groß angenommen).
Für das Wechselsignal (Kleinsignal) gilt: Die Versorgung V_cc ist ein Knoten ohne Spannungsänderung, also wechselstrommäßig Masse. Deshalb wirken R_b und R_c im Kleinsignal-Ersatzbild als Querwiderstände von Basis bzw. Kollektor nach Masse.
1.2 Vorgabewerte des Beispiellaufs
| Größe | Wert | Bedeutung |
|---|---|---|
| V_cc | 15 V | Versorgungsspannung |
| R_c | 1 kΩ | Kollektorwiderstand |
| R_b | 510 kΩ | Basiswiderstand (automatisch, siehe 4.6) |
| R_L | 10 kΩ | Lastwiderstand am Ausgang |
| R_i | 1 kΩ | Innenwiderstand der Signalquelle |
| V_BB | = V_cc | Basisspeisung aus V_cc |
2. Grundbegriffe der Vierpoltheorie
2.1 Was ist ein Vierpol?
Ein Vierpol (Zweitor) ist ein „schwarzer Kasten" mit zwei Klemmenpaaren: Tor 1 (Eingang) und Tor 2 (Ausgang). Sein elektrisches Verhalten bei kleinen Signalen ist vollständig durch vier Zahlen beschrieben, die angeben, wie die vier Klemmengrößen U1, I1, U2, I2 zusammenhängen. Welche zwei Größen man als „gegeben" und welche als „gesucht" auffasst, ist Geschmackssache – und genau daraus entstehen die verschiedenen Parameterdarstellungen.
2.2 Zählpfeile
Bei den symmetrischen Darstellungen (Y, Z, H) zeigen beide Ströme in den Vierpol hinein. Bei der Kettendarstellung (A) benutzt man den Kettenpfeil: I1 fließt in Tor 1 hinein, I2 fließt aus Tor 2 heraus – weiter zum nächsten Glied. Dieser kleine Unterschied ist der Grund für einige Minuszeichen bei den Umrechnungen; wer ihn übersieht, bekommt falsche Vorzeichen.
2.3 Die wichtigsten Darstellungsformen
Leitwertform (Y): [I1] [y11 y12] [U1] beide Ströme aus
[I2] = [y21 y22]·[U2] beiden Spannungen
Hybridform (H): [U1] [h11 h12] [I1] gemischt: I1 und U2
[I2] = [h21 h22]·[U2] sind die Eingangsgrößen
Kettenform (A): [U1] [A11 A12] [U2] Eingangsgrößen aus
[I1] = [A21 A22]·[I2] Ausgangsgrößen (I2 heraus!)
Alle Formen beschreiben denselben Vierpol und lassen sich ineinander umrechnen (Standardtabellen; die hier benötigte Umrechnung H → A wird in Kapitel 6 vollständig hergeleitet).
2.4 Welche Form für welche Zusammenschaltung?
Der ganze Reiz der Parameterformen liegt darin, dass jede Art, zwei Vierpole zu verbinden, in genau einer Form trivial wird:
| Zusammenschaltung | Regel |
|---|---|
| Parallel-Parallel (beide Tore parallel) | Y-Matrizen addieren |
| Reihe-Reihe (beide Tore in Reihe) | Z-Matrizen addieren |
| Kette (Ausgang an Eingang des nächsten) | A-Matrizen multiplizieren |
Unsere Verstärkerstufe ist eine Kette: Basiswiderstand → Transistor → Kollektorwiderstand. Deshalb wird alles in A-Parameter gewandelt und multipliziert. Der Transistor selbst wird traditionell in der Hybridform angegeben (h-Parameter, so stehen sie in Datenblättern und so misst man sie am Kennlinienfeld) – daher die Kombination: h messen, nach A umrechnen, Kette multiplizieren.
3. Das Transistormodell aus der Messung
Grundlage ist der mit dem Kurventracer vermessene BC337-25 (Dateien Ic_Vce.txt, Ic_Ib.txt, Ic_Vbe.txt). An diese Messpunkte wurden die Transistorgleichungen angepasst (Fit in bjt_dashboard.py); heraus kamen sechs Modellzahlen:
| Parameter | Wert | Bedeutung |
|---|---|---|
| n | 1,004 | Emissionskoeffizient |
| I_S | 4,726·10⁻¹⁴ A | Sättigungssperrstrom |
| B_F | 249,9 | ideale Stromverstärkung |
| V_A | 146 V | Early-Spannung |
| I_KF | 0,9 A | Hochstrom-Knickpunkt |
| R_BB | 60 Ω | Basisbahnwiderstand |
Dazu die Temperaturspannung V_T = 25,852 mV (T = 300 K). Die gefitteten Kennliniengleichungen lauten:
Ic(Vbe, Vce) = IS · exp( Vbe / (n·VT) ) · (1 + Vce/VA) (Gl. 1)
Ib(Vbe, Vce) = (IS/Beff) · exp( (Vbe − Ib·RBB) / (n·VT) ) (Gl. 2)
mit Beff = BF / sqrt(1 + Ic/IKF)
Gl. 2 ist implizit (Ib steht auf beiden Seiten wegen des Spannungsabfalls am Basisbahnwiderstand) und wird im Programm durch wenige Fixpunkt-Iterationen gelöst. Diese beiden Gleichungen SIND die Kennlinien – nur als Formel statt als Punktetabelle. Die Messdateien werden im Programm nur noch geladen, um im Diagramm die Messpunkte zur Kontrolle neben die Modellkurve zu legen.
4. Schritt 1: Arbeitspunkt mit Newton-Raphson
4.1 Das Gleichungssystem
Gesucht ist das Wertepaar (V_BE, V_CE), bei dem die äußere Beschaltung und der Transistor zusammenpassen. Zwei Maschengleichungen, jeweils gegen das Modell gestellt (wie in Transistor_20.py):
eq1(VBE, VCE) = (VBB − VBE)/Rb − Ib(VBE, VCE) = 0 (Basismasche) eq2(VBE, VCE) = (Vcc − VCE)/Rc − Ic(VBE, VCE) = 0 (Kollektormasche)
Anschaulich: eq1 vergleicht den Basisstrom, den der Widerstand R_b „liefern kann", mit dem, den der Transistor bei dieser Spannung „haben will" – im Arbeitspunkt sind beide gleich, der Fehler ist null. Ebenso eq2 für den Kollektorkreis.
4.2 Die Idee des Newton-Raphson-Verfahrens
In einer Dimension: Um die Nullstelle von f(x) zu finden, legt man im aktuellen Schätzpunkt die Tangente an und geht dorthin, wo die Tangente die Achse schneidet: x_neu = x − f(x)/f′(x). In zwei Dimensionen wird aus der einen Ableitung die Jacobi-Matrix J (die vier partiellen Ableitungen von eq1/eq2 nach V_BE und V_CE), und aus der Division wird das Lösen eines linearen 2×2-Systems:
J · delta = −F dann (VBE, VCE) := (VBE, VCE) + delta
F ist der Fehlervektor (eq1, eq2). Das wiederholt man, bis F praktisch null ist. In der Nähe der Lösung konvergiert Newton quadratisch: Die Zahl der richtigen Stellen verdoppelt sich etwa pro Schritt (in der Iterationstabelle unten gut zu sehen).
4.3 Exkurs: zentrale Differenzen
Die Jacobi-Matrix wird numerisch gebildet, weil Gl. 2 implizit ist und sich nicht bequem geschlossen ableiten lässt. Eine Ableitung wird dabei durch eine zentrale Differenz angenähert – Funktion ein kleines Stück links und rechts auswerten und die Sekantensteigung bilden:
f'(x) ≈ [ f(x+d) − f(x−d) ] / (2d)
Zentral (links UND rechts) statt einseitig, weil sich dabei die Krümmungsfehler beider Seiten wegheben – der Restfehler schrumpft mit d² statt mit d. Dieselbe Technik wird in Kapitel 5 für die h-Parameter benutzt (dort mit d = 0,1 mV bzw. 10 mV).
4.4 Dämpfung
Wegen der Exponentialfunktion in Gl. 1 kann ein voller Newton-Schritt weit übers Ziel hinausschießen (30 mV mehr V_BE bedeuten schon Faktor ~3 im Strom!). Deshalb wird der Schritt begrenzt: |ΔV_BE| ≤ 50 mV,
| ΔV_CE | ≤ 2 V. Das kostet im schlimmsten Fall ein paar Iterationen, |
|---|
verhindert aber Zahlenüberläufe und Pendeln.
4.5 Die Iterationen des Beispiellaufs
Startwert (V_BE, V_CE) = (0,65 V, V_cc/2 = 7,5 V). Die Fehler eq1/eq2 sind in Ampere angegeben:
| Iter. | ΔV_BE | ΔV_CE | → V_BE | → V_CE | eq1 | eq2 |
|---|---|---|---|---|---|---|
| Start | – | – | 0,6500 V | 7,5000 V | +1,4·10⁻⁵ | +3,8·10⁻³ |
| 1 | +27,67 mV | −0,212 V | 0,6777 V | 7,2883 V | −1,0·10⁻⁵ | −3,1·10⁻³ |
| 2 | −7,34 mV | −0,055 V | 0,6703 V | 7,2330 V | −1,1·10⁻⁶ | −4,0·10⁻⁴ |
| 3 | −1,06 mV | −0,060 V | 0,6693 V | 7,1734 V | −2,0·10⁻⁸ | −6,8·10⁻⁶ |
| 4 | −0,02 mV | −0,001 V | 0,6693 V | 7,1726 V | −6,7·10⁻¹² | −2,3·10⁻⁹ |
| 5 | ≈ 0 | ≈ 0 | 0,6693 V | 7,1726 V | < 10⁻¹⁸ | < 10⁻¹⁵ |
Man sieht die quadratische Konvergenz: Ab Iteration 2 fallen die Fehler pro Schritt um mehrere Zehnerpotenzen. Nach fünf Korrekturschritten ist Maschinengenauigkeit erreicht (das Programm zählt die abschließende Kontrolle mit und meldet „6 Iterationen").
Rückfallebene: Konvergiert Newton nicht – das passiert genau dann, wenn kein Arbeitspunkt im aktiven Bereich existiert, z. B. wenn die Schaltung in die Sättigung geriete –, rechnet das Programm mit einer verschachtelten Bisektion weiter (Intervall immer halbieren; langsam, aber unfehlbar) und warnt, falls V_CE < 0,3 V herauskommt.
4.6 Automatische Bestimmung von R_b
Bei der Einstellung R_B = None legt das Programm den Arbeitspunkt auf V_CE = V_cc/2 (maximale symmetrische Aussteuerbarkeit) und rechnet die Kette einfach rückwärts – hier ist kein Gleichungssystem nötig, weil V_CE ja vorgegeben wird:
VCE = 7,5 V → Ic = (15 − 7,5)/1 kΩ = 7,5 mA (Kollektormasche)
→ VBE aus Gl. 1 auflösen: VBE = 668,1 mV
→ Ib aus Gl. 2: Ib = 26,93 µA
→ Rb = (VBB − VBE)/Ib = (15 − 0,6681)/26,93 µA = 532,1 kΩ
→ nächster E24-Normwert: 510 kΩ
Mit dem realen Normwert 510 kΩ (statt 532 kΩ) wird der Arbeitspunkt dann noch einmal exakt gelöst (das ist die Iterationstabelle oben). Ergebnis:
| Größe | Wert |
|---|---|
| V_BE | 669,3 mV |
| I_B | 28,10 µA |
| V_CE | 7,17 V |
| I_C | 7,83 mA |
| h_FE (Gleichstrom) | 279 |
4.7 Kontrolle von Hand
Beide Maschengleichungen lassen sich direkt nachrechnen:
Basismasche: Ib = (15 V − 0,6693 V) / 510 kΩ = 28,1 µA ✓ Kollektormasche: Ic = (15 V − 7,17 V) / 1 kΩ = 7,83 mA ✓
5. Schritt 2: h-Parameter durch Ableiten der Kennlinien
5.1 Definition
Der Transistor wird als Vierpol in Hybriddarstellung beschrieben (Tor 1 = Basis-Emitter, Tor 2 = Kollektor-Emitter; Kleinsignalgrößen):
[vbe] [h11e h12e] [ib ] [ic ] = [h21e h22e] · [vce]
| Parameter | Definition | Bedeutung |
|---|---|---|
| h11e | dVbe/dIb bei Vce = konst. | Eingangswiderstand |
| h12e | dVbe/dVce bei Ib = konst. | Spannungsrückwirkung |
| h21e | dIc/dIb bei Vce = konst. | Stromverstärkung |
| h22e | dIc/dVce bei Ib = konst. | Ausgangsleitwert |
5.2 Die vier Grundsteigungen
Die Modellgleichungen Gl. 1/Gl. 2 haben (Vbe, Vce) als unabhängige Variablen. Zuerst werden deshalb die vier Grundsteigungen im Arbeitspunkt gebildet – numerisch als zentrale Differenzen (Kapitel 4.3) mit den Schrittweiten ΔVbe = 0,1 mV und ΔVce = 10 mV, z. B.:
dIc/dVbe = [ Ic(VBE+0,1 mV, VCE) − Ic(VBE−0,1 mV, VCE) ] / 0,2 mV
Werte des Beispiellaufs:
S1 = dIc/dVbe = 301,6 mS S2 = dIc/dVce = 51,10 µS S3 = dIb/dVbe = 1,0210 mS S4 = dIb/dVce = 0,769 nS
(Kontrolle: S1 ≈ Ic/(n·VT) = 7,83 mA / 25,96 mV = 301,6 mS ✓ und S2 ≈ Ic/(VA + VCE) = 7,83 mA / 153,2 V = 51,1 µS ✓.)
5.3 Vom Spannungspaar zum h-Parameter: der Variablenwechsel
Nun der Übergang auf die h-Parameter. Das Problem: Die Modellgleichungen liefern beide Ströme als Funktion der beiden Spannungen (Vbe, Vce). Die h-Parameter sind aber andersherum definiert – dort sind ib und vce die Eingangsgrößen und vbe, ic die Ergebnisse (erste Hybridgleichung: vbe = h11·ib + h12·vce). Wir müssen also die Rollen tauschen; das ist mit „Variablenwechsel" gemeint. Das geht in drei kleinen Schritten.
Schritt A – Linearisieren. Für kleine Abweichungen vom Arbeitspunkt ist jede Stromänderung „Steigung mal Spannungsänderung", und die Beiträge beider Spannungen addieren sich (nichts anderes besagt das totale Differential):
dIc = S1·dVbe + S2·dVce dIb = S3·dVbe + S4·dVce
Schritt B – die zweite Zeile nach dVbe auflösen:
dVbe = (dIb − S4·dVce) / S3
Damit ist vbe durch ib und vce ausgedrückt – der Variablenwechsel ist geschafft. Aus dieser Zeile lassen sich zwei h-Parameter direkt ablesen:
- h11e = dVbe/dIb bei festem vce (dVce = 0): dVbe = dIb/S3 → h11e = 1/S3
- h12e = dVbe/dVce bei festem ib (dIb = 0): dVbe = −(S4/S3)·dVce → h12e = −S4/S3
Schritt C – dVbe in die erste Zeile einsetzen:
dIc = S1·(dIb − S4·dVce)/S3 + S2·dVce
= (S1/S3)·dIb + (S2 − S1·S4/S3)·dVce
Ablesen wie oben: h21e = S1/S3 und h22e = S2 − S1·S4/S3.
Der Abzugsterm in h22e, mit Zahlen durchgespielt. h22e fragt: Um wie viel steigt Ic, wenn Vce um 1 V erhöht wird und Ib dabei festgehalten wird?
- Erhöht man Vce um 1 V, würde Ib von allein um S4·1 V = 0,769 nA steigen.
- Ib soll konstant bleiben – also muss Vbe geringfügig sinken, um
0,769 nA / 1,021 mS = 0,753 µV. (Das ist genau h12e = −0,753 µV/V.)
- Dieses Absenken von Vbe kostet Kollektorstrom:
S1 · 0,753 µV = 301,6 mS · 0,753 µV = 0,23 µA.
- Netto: dIc = 51,10 µA (direkter Early-Effekt) − 0,23 µA (Vbe-Korrektur)
= 50,87 µA je Volt → h22e = 50,87 µS.
Der Abzugsterm ist also die Buchhaltung dafür, dass „Ib festhalten" ein kleines Nachregeln von Vbe erzwingt, das auf Ic zurückwirkt.
5.4 Ergebnis
h11e = 1/1,0210 mS = 979,5 Ω
h21e = 301,6 mS / 1,0210 mS = 295,4
h12e = −0,769 nS / 1,0210 mS = −7,53·10⁻⁷
h22e = 51,10 µS − 301,6 mS·0,769 nS/1,0210 mS
= 51,10 µS − 0,23 µS = 50,87 µS
Zusätzlich wird die Determinante der Hybridmatrix gebraucht:
Dh = h11e·h22e − h12e·h21e
= 979,5 · 50,87·10⁻⁶ − (−7,53·10⁻⁷)·295,4
= 0,04983 + 0,00022 = 0,05005 ≈ 0,0501
Plausibilität: h11e ≈ n·VT/IB + RBB = 25,96 mV/28,1 µA + 60 Ω ≈ 984 Ω – passt zur exakten Rechnung (979,5 Ω).
6. Schritt 3: Umrechnung in Kettenmatrizen (A-Parameter)
6.1 Definition der Kettenmatrix
[U1] [A11 A12] [U2] [I1] = [A21 A22] · [I2] I2 in Kettenpfeilrichtung (aus Tor 2 heraus)
Die Einheiten der vier Elemente sind verschieden: A11 und A22 sind dimensionslos, A12 ist ein Widerstand (V/A), A21 ein Leitwert (A/V).
6.2 Vollständige Herleitung der Umrechnung h → A
Ausgangspunkt sind die beiden Hybridgleichungen des Transistors. Die Zuordnung der Klemmengrößen: u1 = vbe, i1 = ib, u2 = vce. Beim Strom am Tor 2 ist Vorsicht geboten: In der Hybridform fließt ic in den Kollektor hinein, in der Kettenform fließt I2 heraus – also gilt ic = −I2. Damit lauten die Hybridgleichungen:
(H1) u1 = h11·i1 + h12·u2 (H2) −I2 = h21·i1 + h22·u2
Ziel: u1 und i1 durch u2 und I2 ausdrücken – denn genau das tut die Kettenmatrix.
Aus (H2) den Eingangsstrom i1 freistellen:
h21·i1 = −I2 − h22·u2
i1 = −(h22/h21)·u2 − (1/h21)·I2
Vergleich mit der zweiten Kettenzeile i1 = A21·u2 + A22·I2 liefert sofort:
A21 = −h22/h21 A22 = −1/h21
i1 in (H1) einsetzen:
u1 = h11·[ −(h22/h21)·u2 − (1/h21)·I2 ] + h12·u2
= (h12 − h11·h22/h21)·u2 − (h11/h21)·I2
Der Klammerausdruck lässt sich mit der Determinante Dh = h11·h22 − h12·h21 kompakt schreiben: h12 − h11·h22/h21 = −(h11·h22 − h12·h21)/h21 = −Dh/h21. Vergleich mit der ersten Kettenzeile u1 = A11·u2 + A12·I2:
A11 = −Dh/h21 A12 = −h11/h21
Zusammengefasst (die Standard-Umrechnungstabelle):
1 [ −Dh −h11 ]
A_T = ───── ·[ ]
h21 [ −h22 −1 ]
Mit den Zahlen aus Kapitel 5, Element für Element:
A11 = −0,0501 / 295,4 = −1,6945·10⁻⁴ (dimensionslos) A12 = −979,5 Ω / 295,4 = −3,3159 Ω A21 = −50,87·10⁻⁶ S / 295,4 = −1,7223·10⁻⁷ S A22 = −1 / 295,4 = −3,3854·10⁻³ (dimensionslos)
Die durchweg negativen Einträge sind kein Fehler – sie stammen aus dem Vorzeichenwechsel ic = −I2 und tragen die Signalinvertierung der Emitterschaltung durch die ganze weitere Rechnung.
6.3 Herleitung: Querwiderstand als reduzierter Vierpol
Ein Querwiderstand R liegt quer vom Signalknoten nach Masse; der Längszweig ist einfach durchverbunden:
Tor 1 o────────┬────────o Tor 2
│
[R]
│
Masse o────────┴────────o Masse
Die beiden Klemmengleichungen folgen direkt aus Maschen- und Knotenregel:
- Spannung: Beide Tore liegen am selben Knoten → u1 = u2.
- Strom (Knotenregel am oberen Knoten): Was bei Tor 1 hineinfließt,
teilt sich auf in den Widerstandszweig (u2/R nach Masse) und den Weiterfluss zu Tor 2 → i1 = u2/R + I2.
In Matrixform, durch Vergleich mit der Kettendefinition:
u1 = 1·u2 + 0·I2 [ 1 0 ] i1 = (1/R)·u2 + 1·I2 → [ 1/R 1 ]
Da V_cc wechselstrommäßig Masse ist (Kapitel 1.1), sind R_b (Basis→Vcc) und R_c (Kollektor→Vcc) genau solche Querwiderstände – R_b am Eingangstor, R_c am Ausgangstor:
1/Rb = 1/510 kΩ = 1,961·10⁻⁶ S 1/Rc = 1/1 kΩ = 1,000·10⁻³ S
Zum Vergleich – die kleine Werkzeugkiste der Ketten-Vierpole:
| Element | Kettenmatrix | Herleitung in Kurzform |
|---|---|---|
| Querwiderstand R | [1 0; 1/R 1] | u1=u2; i1 = u2/R + I2 |
| Längswiderstand R | [1 R; 0 1] | i1=I2; u1 = u2 + R·I2 |
| Koppelkondensator C (längs) | [1 1/(jωC); 0 1] | wie Längswiderstand mit Z = 1/(jωC) |
Ideale Koppelkondensatoren (C → ∞) haben Z → 0, ihre Matrix wird zur Einheitsmatrix – deshalb tauchen sie in unserer Kette nicht auf.
7. Schritt 4: Kettenschaltung – warum multiplizieren, und die Rechnung
7.1 Warum ist die Kette ein Matrixprodukt?
Zwei Vierpole in Kette: Der Ausgang des ersten ist der Eingang des zweiten. Genau dafür ist der Kettenpfeil gemacht: Die Ausgangsgrößen (u2, I2) des ersten Glieds sind identisch mit den Eingangsgrößen (u1, i1) des zweiten – gleiche Spannung am Verbindungsknoten, und der herausfließende Strom des einen ist der hineinfließende des anderen. Deshalb kann man einfach einsetzen:
[u1] [u2] [u2] [u_aus]
[i1] = A¹ · [I2] = A¹ · [i1]' = A¹·A² ·[I_aus]
(Glied 1) (= Eingang Glied 2)
Die Gesamtmatrix ist das Produkt der Einzelmatrizen in Signalrichtung. Achtung: Matrixmultiplikation ist nicht vertauschbar – die Reihenfolge muss der physischen Reihenfolge der Glieder entsprechen.
7.2 Die Rechnung von Hand
Die Kette in Signalrichtung: Basiswiderstand → Transistor → Kollektorwiderstand.
A_ges = A_Rb · A_T · A_Rc
Erste Multiplikation M = A_T · A_Rc (Regel: Zeile mal Spalte):
M11 = A11·1 + A12·(1/Rc) = −1,6945·10⁻⁴ + (−3,3159)·10⁻³ = −3,4854·10⁻³ M12 = A11·0 + A12·1 = −3,3159 M21 = A21·1 + A22·(1/Rc) = −1,7223·10⁻⁷ + (−3,3854·10⁻⁶) = −3,5576·10⁻⁶ M22 = A21·0 + A22·1 = −3,3854·10⁻³
Zweite Multiplikation A_ges = A_Rb · M:
A11' = 1·M11 + 0·M21 = −3,4854·10⁻³
A12' = 1·M12 + 0·M22 = −3,3159
A21' = (1/Rb)·M11 + M21 = 1,961·10⁻⁶·(−3,4854·10⁻³) + (−3,5576·10⁻⁶)
= −6,8·10⁻⁹ − 3,5576·10⁻⁶ = −3,5645·10⁻⁶
A22' = (1/Rb)·M12 + M22 = 1,961·10⁻⁶·(−3,3159) + (−3,3854·10⁻³)
= −6,50·10⁻⁶ − 3,3854·10⁻³ = −3,3919·10⁻³
Der zusammengefasste Vierpol der ganzen Verstärkerstufe:
[ −3,4854·10⁻³ −3,3159 ]
A_ges = [ ]
[ −3,5645·10⁻⁶ −3,3919·10⁻³ ]
Man sieht schön, wie klein der Einfluss von R_b ist: Er ändert nur die zweite Zeile, und dort nur in der dritten bzw. zweiten Stelle.
8. Schritt 5: Beschaltung mit R_L und R_i – die Kenngrößen
Der Gesamtvierpol wird jetzt am Ausgang mit R_L = 10 kΩ belastet, am Eingang speist eine Quelle mit Innenwiderstand R_i = 1 kΩ.
8.1 Herleitung: Eingangswiderstand, Spannungs- und Stromverstärkung
Der Lastwiderstand erzwingt am Tor 2 die Bedingung u2 = R_L·I2 (I2 fließt aus dem Tor heraus durch R_L nach Masse; Ohmsches Gesetz). In die Kettendefinition eingesetzt:
u1 = A11·RL·I2 + A12·I2 = (A11·RL + A12)·I2 i1 = A21·RL·I2 + A22·I2 = (A21·RL + A22)·I2
Alle Klemmengrößen sind jetzt Vielfache von I2 – die Verhältnisse folgen durch einfaches Teilen:
r_ein = u1/i1 = (A11·RL + A12) / (A21·RL + A22) A_v = u2/u1 = RL·I2 / [(A11·RL + A12)·I2] = RL / (A11·RL + A12) A_i = I2/i1 = 1 / (A21·RL + A22)
8.2 Herleitung: Ausgangswiderstand
Definition: Quelle „totlegen" (u_q = 0, ihr Innenwiderstand R_i bleibt in der Schaltung), dann vom Ausgang hineinschauen: Testspannung u2 anlegen, den hineinfließenden Strom messen. Der Strom, der in Tor 2 hinein fließt, ist in Kettenpfeilrichtung −I2.
Am Eingangstor hängt jetzt nur noch R_i: Die Torspannung u1 treibt den Strom u1/R_i durch den Widerstand nach Masse, und dieser Strom muss aus dem Tor herauskommen – also i1 = −u1/R_i, umgestellt:
u1 = −Ri·i1
Einsetzen der beiden Kettenzeilen:
A11·u2 + A12·I2 = −Ri·(A21·u2 + A22·I2) u2·(A11 + Ri·A21) = −I2·(A12 + Ri·A22)
und damit:
r_aus = u2/(−I2) = (A22·Ri + A12) / (A21·Ri + A11)
8.3 Gesamtverstärkung von der Quelle aus
Zwischen Leerlauf-Quellspannung u_q und Torspannung u1 liegt der Spannungsteiler aus R_i und r_ein:
u1 = u_q · r_ein/(r_ein + Ri) → A_vs = A_v · r_ein/(r_ein + Ri)
(Gleichwertig könnte man R_i als Längs-Vierpol [1 Ri; 0 1] vorn an die Kette multiplizieren und A_vs direkt aus der erweiterten Matrix ablesen – Ergebnis identisch.)
8.4 Einsetzen der Zahlen
Zähler Z = A11·RL + A12 = (−3,4854·10⁻³)(10⁴) + (−3,3159)
= −34,854 − 3,316 = −38,170
Nenner N = A21·RL + A22 = (−3,5645·10⁻⁶)(10⁴) + (−3,3919·10⁻³)
= −35,645·10⁻³ − 3,392·10⁻³ = −39,037·10⁻³
r_ein = Z/N = (−38,170)/(−0,039037) = 977,8 Ω
A_v = RL/Z = 10⁴/(−38,170) = −262,0 (48,4 dB)
A_i = 1/N = 1/(−0,039037) = −25,6
r_aus: Zähler = A22·Ri + A12 = (−3,3919·10⁻³)(10³) − 3,3159 = −6,7078
Nenner = A21·Ri + A11 = (−3,5645·10⁻⁶)(10³) − 3,4854·10⁻³
= −7,0499·10⁻³
r_aus = (−6,7078)/(−7,0499·10⁻³) = 951,5 Ω
A_vs = −262,0 · 977,8/(977,8 + 1000) = −129,5 (42,2 dB)
8.5 Ergebnisübersicht und Deutung
| Kenngröße | Wert | Deutung |
|---|---|---|
| r_ein | 978 Ω | recht niederohmig – typisch für die Emitterschaltung; wird fast ganz vom Transistoreingang h11e bestimmt (R_b = 510 kΩ spielt parallel dazu kaum eine Rolle) |
| r_aus | 951 Ω | knapp unter R_c = 1 kΩ; der Kollektor selbst ist mit 1/h22e ≈ 20 kΩ viel hochohmiger, R_c dominiert die Parallelschaltung |
| A_v | −262 | Verstärkung von Basis zu Ausgang; das Minuszeichen ist die Signalinvertierung der Emitterschaltung |
| A_i | −25,6 | Stromverstärkung der ganzen Stufe; deutlich kleiner als h21e = 295, weil sich der Ausgangsstrom zwischen R_c und R_L teilt |
| A_vs | −129,5 | von der Quelle aus: an R_i = 1 kΩ geht gut die Hälfte der Quellspannung verloren, weil r_ein ähnlich groß ist |
8.6 Querkontrolle über die h-Parameter
Dieselben Größen lassen sich (mühsamer) auch direkt aus den h-Parametern mit der Ersatzlast R_L' = R_c ∥ R_L = 909,1 Ω rechnen, z. B.:
A_v = −h21e·RL' / (h11e + Dh·RL')
= −295,4·909,1 / (979,5 + 0,0501·909,1)
= −268 548 / 1025,0 = −262,0 ✓
Beide Wege liefern auf vier Stellen dasselbe – die Kettenrechnung ist also konsistent.
9. Das Verfahren als Rezept (für beliebige Stufen)
So lässt sich jede lineare Verstärkerstufe von Hand rechnen:
- Arbeitspunkt der Gleichstromschaltung bestimmen (Maschengleichungen
gegen die Transistorgleichungen; Newton-Raphson oder Bisektion).
- Die vier Grundsteigungen S1–S4 der Kennlinien im Arbeitspunkt bilden
(analytisch oder als zentrale Differenzen).
- Daraus die h-Parameter: h11 = 1/S3, h21 = S1/S3, h12 = −S4/S3,
h22 = S2 − S1·S4/S3; Determinante Dh mitnotieren.
- Kleinsignal-Ersatzschaltbild zeichnen: Versorgungsknoten zu Masse
machen, ideale Koppel-C durch Kurzschlüsse ersetzen.
- Jedes Glied als Kettenmatrix schreiben: Transistor mit der
Umrechnung A = (1/h21)·[−Dh −h11; −h22 −1], Querwiderstand [1 0; 1/R 1], Längswiderstand [1 R; 0 1].
- Matrizen in Signalrichtung multiplizieren → ein Gesamtvierpol A_ges.
- Beschaltung ansetzen: r_ein = (A11·RL+A12)/(A21·RL+A22),
r_aus = (A22·Ri+A12)/(A21·Ri+A11), A_v = RL/(A11·RL+A12), A_i = 1/(A21·RL+A22), A_vs = A_v·r_ein/(r_ein+Ri).
- Plausibilität prüfen (z. B. Querrechnung über die h-Formeln mit RL' = Rc ∥ RL, Vorzeichen, Größenordnungen).
10. Zusammenfassung des Rechenwegs
Messung (Kurventracer) einmalig:
Ic_Vce.txt, Ic_Ib.txt ──Fit──► Modell P = (n, IS, BF, VA, IKF, RBB)
│
Schaltung Vcc, Rb, Rc ──Newton-Raphson─┤ Arbeitspunkt (VBE, VCE, IB, IC)
│
Ableiten (zentrale Differenzen) im Arbeitspunkt
│
h-Vierpol [h11e h12e; h21e h22e]
│
h → A umrechnen
│
A_ges = A_Rb · A_T · A_Rc (Matrixprodukt)
│
Beschaltung: RL am Ausgang, Quelle mit Ri am Eingang
│
r_ein, r_aus, A_v, A_i, A_vs
11. Programme und Dateien
| Datei | Rolle |
|---|---|
bjt_verstaerker.py | das hier beschriebene Programm; Vorgaben V_CC, R_C, R_B (None = automatisch), R_L, R_I oben im Skript; erzeugt Konsolenprotokoll aller Schritte und das Dashboard bjt_verstaerker.png |
Transistor_20.py | Ursprung des Newton-Raphson-Arbeitspunkts (vereinfachtes Modell) |
bjt_hparam.py | Ursprung der h-Parameter-Bestimmung mit Tangenten-Diagrammen |
bjt_dashboard.py | der Modell-Fit an die Kurventracer-Messungen (Quelle des Parametersatzes P) |
Ic_Vce.txt, Ic_Ib.txt, Ic_Vbe.txt | Kurventracer-Rohdaten des BC337-25 |
Erweiterungen sind im Kettenbild einfach: Ein Basisspannungsteiler ersetzt R_b durch R1 ∥ R2 (gleiche Quermatrix), ein Längswiderstand im Signalweg bekommt die Matrix [1 R; 0 1], ein endlicher Koppelkondensator [1 1/(jωC); 0 1] (dann wird komplex gerechnet), und eine zweite Stufe wird als weitere Matrizen hinten anmultipliziert – die fünf Schritte bleiben dieselben.
Die Emitterschaltung als Vierpol-Kette
Übertragen aus bjt_verstaerker.py, Zeile für Zeile: die Vorgaben (Z. 51–56), der Parametersatz (Z. 61–62), die Modellgleichungen (Z. 67–77), das Residuensystem (Z. 95–97), die numerische Jacobi-Matrix als zentrale Differenzen mit hb = 10−6 und hc = 10−4 (Z. 99–105), Newton-Raphson mit Dämpfung auf 0,05 V und 2 V und Begrenzung auf physikalisch sinnvolle Werte (Z. 107–122), die automatische Bestimmung von RB mit dem nächsten E24-Normwert (Z. 140–160), die vier Grundsteigungen und h-Parameter (Z. 174–184), die Umrechnung h → A und die Querwiderstände (Z. 187–199), das Matrixprodukt in Signalrichtung (Z. 202) und die fünf Kenngrößen (Z. 205–209).
1) Arbeitspunkt der Schaltung
2) Der h-Vierpol des Transistors
3)–4) Die Kettenmatrizen und ihr Produkt
5) Die Kenngrößen des belasteten Vierpols
|Av| über der Last RL
90_messvorschrift.md · Quelle: Messvorschrift_SPICE_Parameter_Transistor.docxPraxisleitfaden / Laborunterlage
Einfache Messvorschrift
SPICE-Parameter aus Transistorkennlinien
(allgemeingültig für beliebige bipolare Kleinsignal-Transistoren, npn und pnp)
| Benötigte Messungen: ▸ Gummel-Plot (I_C, I_B vs. V_BE) ▸ Ausgangskennfeld (I_C vs. V_CE) ▸ Eingangskennlinie (V_BE vs. I_B) | Ergebnis: ▸ I_S, NF (n) ▸ BF (beta_F) ▸ VAF (V_A) ▸ IKF ▸ RBM (R_B,int) |
Lehrstuhl Halbleiterelektronik | Hochschule | 2026
0 Vorbereitung
| ⚠ | Wichtig vor Beginn: - Transistor-Pinout (E, B, C) im Datenblatt prüfen -- Verpolung zerstört das Bauteil. - Bei npn: alle Spannungen positiv. Bei pnp: alle Vorzeichen umkehren (Messverfahren identisch). - Strombegrenzung am Kennlinienschreiber aktivieren (I_C,max laut Datenblatt nicht überschreiten). - Kurze Messpulse oder Pausen zwischen Messpunkten verwenden -- Selbsterwärmung verfälscht I_S. - Raumtemperatur notieren (alle folgenden Formeln gelten für T ≈ 300 K / 25-27°C). |
Benötigte Werte vorab
Notieren Sie folgende Konstante, sie wird in allen Auswertungen gebraucht:
V_T = 25.86 mV (Temperaturspannung bei T = 300 K, fest)
1 Messung: Gummel-Plot aufnehmen
| 1 | Gummel-Plot messen Ziel: I_C und I_B in Abhängigkeit von V_BE bei konstantem V_CE aufzeichnen. ☐ V_CE fest einstellen (z. B. 5 V -- Wert im aktiven Bereich, weit weg von Sättigung). ☐ V_BE von ca. 0.4 V in kleinen Schritten (5-10 mV) bis zur Strombegrenzung hochfahren. ☐ Bei jedem Schritt I_C UND I_B notieren (Kennlinienschreiber zeigt meist beide gleichzeitig). ☐ Mindestens 15-20 Messpunkte über den gesamten Spannungsbereich aufnehmen. ☐ Werte tabellarisch notieren: V_BE | I_C | I_B |
Falls der Kennlinienschreiber kein direktes Gummel-Plot-Display besitzt, kann diese Messung auch als normale Eingangskennlinie I_C(V_BE) bei festem V_CE aufgenommen werden -- der Basisstrom I_B wird dann separat mit einem Amperemeter im Basiszweig mitgemessen.
2 Messung: Ausgangskennfeld aufnehmen
| 2 | Ausgangskennfeld messen Ziel: I_C in Abhängigkeit von V_CE bei mehreren festen I_B-Stufen. ☐ 3-5 verschiedene Basisstrom-Stufen wählen (z. B. 10, 20, 40, 80 µA), gleichmäßig verteilt. ☐ Für jede I_B-Stufe: V_CE von 0 V bis zur gewünschten Maximalspannung durchfahren. ☐ Besonders im Bereich V_CE = 0...1 V (Sättigung) und V_CE \> 2 V (aktiver Bereich) Punkte aufnehmen. ☐ Pro Stufe mindestens 8-10 Punkte, davon mind. 2 Punkte bei hohem V_CE (z. B. 5V und 20V) für spätere Extrapolation. ☐ Werte tabellarisch notieren: I_B-Stufe | V_CE | I_C |
3 Messung: Eingangskennlinie bei hohem Strom
| 3 | Eingangskennlinie im Hochstrombereich messen Ziel: V_BE bei möglichst hohem I_B genau erfassen (für R_B,int später). ☐ V_CE fest einstellen (gleicher Wert wie in Schritt 1, z. B. 5 V). ☐ I_B möglichst nah an die zulässige Strombegrenzung des Transistors heranfahren. ☐ V_BE bei diesem hohen I_B-Wert genau ablesen und notieren. ☐ Zusätzlich einen Punkt bei niedrigem I_B (z. B. 1/10 des Maximalwerts) notieren -- dient als Referenz. |
Damit ist die Messphase abgeschlossen. Alle folgenden Schritte sind reine Auswertung der notierten Zahlenwerte am Schreibtisch -- kein weiterer Gerätekontakt nötig.
4 Auswertung: Sättigungsstrom I_S und Idealfaktor n
| 4 | I_S und n aus Gummel-Plot berechnen Aus der Gummel-Plot-Tabelle (Schritt 1) zwei Punkte im mittleren, geraden Bereich wählen. Auswahlregel: Punkte meiden, bei denen I_C sehr klein ist (\< 1 µA, Leckströme) oder sehr groß (nahe Strombegrenzung, Hochinjektion). Mittelbereich verwenden. |
Zwei Punkte: (V_BE1, I_C1) und (V_BE2, I_C2) mit I_C2 \> I_C1
Schritt A: n = (V_BE2 - V_BE1) / ( V_T * ln(I_C2/I_C1) )
Schritt B: I_S = I_C1 / exp( V_BE1 / (n*V_T) ) -----------------------------------------------------------------------
Plausibilitätscheck: n sollte für Si-Transistoren zwischen 1.0 und 1.1 liegen. Werte deutlich darüber oder darunter deuten auf einen Ablesefehler oder ungeeignete Messpunkte hin.
5 Auswertung: Stromverstärkung beta_F
| 5 | beta_F aus dem Plateau bestimmen Für jeden Messpunkt aus Schritt 1 beta = I_C / I_B berechnen und über I_C auftragen (oder einfach als Tabellenspalte). |
beta(I_C) = I_C / I_B (für jeden Messpunkt einzeln berechnen)
beta_F = Maximalwert von beta im mittleren Strombereich (Plateau) -----------------------------------------------------------------------
Der höchste stabile Wert über mehrere benachbarte Messpunkte (nicht der absolute Einzelmaximalwert, der durch Messrauschen verfälscht sein kann) wird als BF in SPICE eingetragen.
6 Auswertung: Early-Spannung V_A
| 6 | V_A aus dem Ausgangskennfeld extrapolieren Eine I_B-Kurve aus Schritt 2 auswählen. Die beiden Messpunkte bei hohem V_CE verwenden (mindestens 10V auseinander für geringen Fehler). |
Zwei Punkte derselben I_B-Kurve: (V_CE1, I_C1) und (V_CE2, I_C2)
V_A = ( V_CE2 I_C1 - V_CE1 I_C2 ) / ( I_C2 - I_C1 ) -----------------------------------------------------------------------
Diese Berechnung für 2-3 verschiedene I_B-Stufen wiederholen und die Ergebnisse mitteln -- das erhöht die Genauigkeit, da die Extrapolation empfindlich auf Ablesefehler reagiert.
7 Auswertung: Knickstrom I_KF
| 7 | I_KF aus dem beta-Abfall bestimmen Die beta(I_C)-Werte aus Schritt 5 bei hohen Strömen betrachten. |
Schritt A: Zielwert berechnen: beta_Ziel = 0.707 * beta_F
Schritt B: In der beta(I_C)-Tabelle den I_C-Wert suchen, bei dem
beta auf beta_Ziel gefallen ist.
Dieser Strom ist I_KF. -----------------------------------------------------------------------
Falls kein Messpunkt genau auf beta_Ziel fällt, zwischen den zwei nächstgelegenen Messpunkten linear interpolieren.
8 Auswertung: Interner Basiswiderstand R_B,int
| 8 | R_B,int aus dem Hochstrom-Messpunkt berechnen Den Hochstrom-Messpunkt aus Schritt 3 (V_BE bei hohem I_B) verwenden, sowie I_S und beta_F aus Schritt 4/5. |
Schritt A: Idealen V_BE-Wert berechnen (ohne Widerstandseffekt):
V_BE,ideal = n V_T ln( beta_F * I_B / I_S )
Schritt B: Mit dem TATSÄCHLICH gemessenen V_BE vergleichen:
R_B,int = ( V_BE,gemessen - V_BE,ideal ) / I_B -----------------------------------------------------------------------
Diese Berechnung nur bei möglichst hohem I_B durchführen, da der Effekt bei kleinem Strom im Messrauschen untergeht (Spannungsabfall I_B·R_B,int ist dann zu klein zum sicheren Erfassen).
9 Ergebnis-Checkliste
Am Ende sollten folgende sieben Werte vorliegen:
Parameter SPICE-Name Aus Schritt Ihr Wert --------------- ---------------- ----------------- ------------------------------ I_S IS 4
n NF 4
beta_F BF 5
V_A VAF 6
I_KF IKF 7
R_B,int RBM 8 ---------------------------------------------------------------------------------
Die Basis-Early-Spannung VAR/V_AB ist messtechnisch aufwendiger zu bestimmen und wird in der Praxis häufig per Faustregel mit V_AB ≈ 2 · V_A abgeschätzt, falls keine separate Messung erfolgt.
10 Plausibilitätsbereiche für Kleinsignal-Si-Transistoren
Liegt Ihr Ergebnis weit außerhalb dieser Bereiche, prüfen Sie Messpunkte und Rechnung auf Fehler:
Parameter Typischer Bereich Hinweis bei Abweichung --------------- ----------------------- ------------------------------------------------------------------ n 1.00 - 1.10 deutlich höher: ungeeignete Messpunkte (zu kleiner/großer Strom)
I_S 1e-15 - 1e-12 A stark temperaturabhängig, Messtemperatur prüfen
beta_F 50 - 800 Datenblatt-Klassengrenzen des Transistors beachten
V_A 30 - 200 V negativer Wert: Punkte vertauscht oder Ablesefehler
I_KF 10 mA - 1 A abhängig vom Bauteil, vgl. I_C,max im Datenblatt
R_B,int 1 - 50 Ω negativer Wert: Hochstrompunkt nicht hoch genug gewählt ----------------------------------------------------------------------------------------------------------
Zur Messvorschrift wird hier nichts gerechnet
Dieses Teilmanuskript ist eine Arbeitsanweisung für den Messplatz: welche Kennlinie in welcher Reihenfolge aufzunehmen ist, damit hinterher jeder SPICE-Parameter bestimmbar wird. Es beschreibt kein Rechenverfahren, und in seinem Bestand gibt es dazu kein Programm. Was aus den so gewonnenen Daten abgelesen wird, steht im Reiter Parameterextraktion; welcher Parameter aus diesen Daten nicht bestimmbar ist, steht dort in derselben Tafel.