Wie modelliere ich eine LED mit SPICE?

36

Welche Diodenmodifikatoren werden in der Praxis verwendet, um LEDs mit SPICE (Berkeley v.3f5) zu modellieren? Diese stehen mir zur Verfügung:

#       Name    Parameter                    Units      Default Example  Area
1       IS      Saturation current             A         1e-14   1e-14    *
2       RS      Ohmic resistance               Ω         0       10       *
3       N       Emission coefficient           -         1       1.0
4       TT      Transit-time                   s         0       0.1ns
5       CJO     Zero-bias junction capacitance F         0       2pF      *
6       VJ      Junction potential             V         1       0.6
7       M       Grading coefficient            -         0.5     0.5
8       EG      Activation energy              eV        1.11    1.11 Si
                                                                 0.69 Sbd
                                                                 0.67 Ge
9       XTI     Saturation-current temperature exponent  3.0     3.0 jn
                                                                 2.0 Sbd
10      KF      Flicker noise coefficient      -         0
11    AF      Flicker noise exponent         -         1
12    FC      Coeff. for for.-bias dep. cap. formula   0.5
13    BV      Reverse breakdown voltage      V         ∞       40.0
14    IBV     Current at breakdown voltage   A         1.0e-3
15    TNOM    Parameter measurement temp.    °C        27      50

3.4.2 Diodenmodell (D)
Die Gleichstromcharakteristik der Diode wird durch die Parameter IS und N bestimmt. Ein ohmscher Widerstand RS ist enthalten. Ladungsspeichereffekte werden durch eine Laufzeit TT und eine nichtlineare Verarmungsschichtkapazität modelliert, die durch die Parameter CJO, VJ und M bestimmt wird. Die Temperaturabhängigkeit des Sättigungsstroms wird durch die Parameter EG, Energie und XTI definiert. der Exponent der Sättigungsstromtemperatur. Die Nenntemperatur, bei der diese Parameter gemessen wurden, ist TNOM. Der Standardwert ist der in der Steuerleitung .OPTIONS angegebene Wert für den gesamten Schaltkreis. Der Durchbruch in Sperrrichtung wird durch einen exponentiellen Anstieg des Sperrdiodenstroms modelliert und durch die Parameter BV und IBV (beides positive Zahlen) bestimmt.

Zum Beispiel mit diesem einfachen, billigen Rot:

Die Hochfrequenzeigenschaften interessieren mich nicht sonderlich - ich möchte nur in der Lage sein, die IV-Kurve innerhalb der Betriebsspezifikationen (-10uA / -5V Leckstrom bis + 100mA / + 2,2 'ish V Vorwärts) abzugleichen : Bildbeschreibung hier eingeben

Tyblu
quelle

Antworten:

47

Wie Sie bereits sagten, gibt es drei Parameter, die das DC-Verhalten einer Diode bestimmen. Dies sind der Sättigungsstrom ( IS ), der Emissionskoeffizient ( N ) und der ohmsche Widerstand ( RS ). Ich konnte die Kurve mit einer ziemlich hohen Genauigkeit anpassen, daher werde ich meine Modellprozedur dokumentieren.

Das SPICE-Modell für die Diode entspricht weitgehend der Schokley-Diodengleichung:

If = IS(e^(Vf/(N*Vt)) - 1)

wo Vt = kT/q = 26mVbei Raumtemperatur.

  1. Entnehmen Sie die tatsächlichen Werte den im Datenblatt angegebenen Diagrammen, um sie zum Vergleich zu verwenden. Je mehr Punkte desto besser und je genauer desto besser. Nachstehend eine Tabelle, die ich anhand der von Ihnen angegebenen Zahl geschätzt habe:

    Vf  If (mA)
    1.3 0.001
    1.4 0.010
    1.5 0.080
    1.6 0.700
    1.7 5.000
    1.8 20.000
    1.9 40.000
    2.0 65.000
    2.1 80.000
    
  2. Stecken Sie die Werte in Excel und ändern Sie die y-Achse in eine logarithmische Skala. Sie sollten ein Diagramm erhalten, das mit dem Originaldiagramm aus dem Datenblatt identisch ist. Fügen Sie eine weitere Spalte für Ihr Diagramm hinzu, wobei If aus der Durchlassspannung und den Konstanten IS und N berechnet wird . Wir können diese Konfiguration verwenden, um IS und N iterativ zu finden .

  3. Nach IS und N auflösen . Wir versuchen, den linearen Teil des Graphen anzupassen (1.3 <= Vf <= 1.7). Durch Anpassen von IS wird die Kurve auf der y-Achse verschoben. Den berechneten Graphen auf die gleiche Größenordnung bringen. Der nächste Schritt ist das Ermitteln des Emissionskoeffizienten ( N ). N wirkt sich sowohl auf die Amplitude als auch auf die Steigung aus. Daher kann eine Anpassung von IS erforderlich sein, um die Kurve im gleichen Baseball zu halten. Wenn die Steigungen übereinstimmen (die Linien sind parallel), schneiden Sie IS so, dass die berechneten Daten mit den Datenblattwerten übereinstimmen. Ich habe IS = 1e-18und N=1.8für die Diode, die Sie aufgeführt haben. Bildbeschreibung hier eingeben

  4. RS identifizieren . Das ist ein bisschen schwierig. RS ist dafür verantwortlich, den Strom ab 1,7 V zu krümmen. Modellieren Sie den ohmschen Widerstand als Widerstand in Reihe mit der Diode. Wenn der Strom durch die Diode ansteigt, bewirkt der Spannungsabfall über dem ohmschen Widerstand, dass die Durchlassdiodenspannung Vf langsamer ansteigt. Bei kleinen Strömen ist dieser Effekt vernachlässigbar.

Das erste, was Sie tun müssen, ist, eine Schätzung der Verfügbarkeit von RS zu erhalten, die für die genaueren Lösungen verwendet werden kann. Sie können den Effektivwert von RS aus den Datenblattwerten berechnen, indem Sie Vf mit dem gemessenen If zurückrechnen . Die Spannungsdifferenz zwischen dem Eingangswert und dem berechneten Vf kann mit dem Durchlassstrom verwendet werden, um einen Widerstand zu erzeugen. Bei höheren Strömen ist dies ein guter Startwert.

Um den Diodenstrom mit RS aufzuzeichnen , müssen Sie zuerst die Diode Vf bei einer Spannung für die Widerstands-Dioden- Reihenkombination berechnen . Wikipedia listet eine iterative Funktion auf - sie konvergiert leicht, wenn der Widerstandsspannungsabfall signifikant ist. Diese Funktion war einfach in Excel einzurichten. Für Vf- Werte unter 1,8 habe ich den Eingabewert fest codiert, da die iterative Funktion nicht konvergiert hat. Nehmen Sie dann diesen Vf- Wert, um das If der idealen Diode zu berechnen. Ich habe dies mit dem Original-Datenblattdiagramm aufgezeichnet.

Mit Versuch und Irrtum sollten Sie in der Lage sein, einen RS- Wert zu erhalten, der sich ziemlich gut mit den Datenblattwerten überschneidet. Jetzt müssen Sie das Modell nur noch in SPICE zusammenführen, um Ihre Arbeit zu überprüfen.

Unten ist mein Diodenmodell, das ich mit HSPICE überprüft habe. Die Simulationsdaten sind fast eine perfekte Überlagerung für das Datenblattdiagramm.

.model Dled_test D (IS=1a RS=3.3 N=1.8)

Ich habe diesen Artikel benutzt , der mir bei den Diodengewürzparametern sehr geholfen hat.

Ich habe meine Tabelle bereinigt und Tyblu hat sie hier zum Download bereitgestellt . Verwendung auf eigenes Risiko, Ergebnisse nicht garantiert, etc ... etc ...

W5VO
quelle
2
Das ist eine großartige Antwort. + ∞
Tyblu
8

Zunächst möchte ich darauf hinweisen, dass Sie zusätzliche Diodenparameter BV , Ibv und Cjo direkt aus dem LED-Datenblatt als " Rückstrom " Ir bei Vr und als "Kapazität" C ablesen können .


Als Ergänzung zu der großartigen Antwort von W5VO habe ich den Prozess für mich auf folgende Weise optimiert:

  1. Ich habe den Diagrammtyp des XY-Streudiagramms nur in OpenOffice als Linien verwendet (YMMV mit Excel usw.) und die Minima und Maxima der Achsen manuell festgelegt, z. B. (X, Y) = (1,4-4,0, 0,01-50,0). um zu verhindern, dass die automatische Bereichswahl außerhalb des Bereichs meiner abgetasteten Daten erfolgt.

  2. Nach den ersten drei Spalten der abgetasteten Punkte Vf_sampled , If_sampled sowie If_estimate unter Verwendung der Schokley-Diodengleichung habe ich eine vierte für ein berechnetes Vf_estimate hinzugefügt . Denken Sie daran, dass Rs ist eine Serie Widerstand (siehe Bild unten) und die If_estimate gibt uns tatsächlich die aktuellen hier zu verwenden, so dass man einfach die Spaltenzellen wie berechnen kann:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Ich konnte jetzt eine dritte Kurve hinzufügen, in der ich die neue vierte Spalte ( Vf_estimate ) als X-Koordinate und die dritte Spalte ( If_estimate ) als Y-Koordinate verwendete und die ich jetzt problemlos mit der ersten Kurve abgleichen konnte (die Daten wurden abgetastet) aus dem Diagramm auf dem Datenblatt). Beachten Sie, dass ich die zweite Kurve nicht einfach ersetzen wollte, da die gerade Linie in meinen Schätzungen sehr hilfreich war.

  4. Ich bin mir sicher, dass ich W5VO hier etwas wiederhole, aber es erinnert nicht an die Rolle der Konstanten Is , Rs und N in Bezug auf die Kurvenform (in unserer Log-Lin- Skala):

    • Beeinflusst nur die Position der Kurven (oben / links oder unten / rechts).
    • N wirkt sich sowohl auf die Kurvensteigung als auch auf die Position aus (da es sich um einen linearen Koeffizienten handelt und die Kurven immer durch den Ursprung verlaufen, der sich immer außerhalb der Skala befindet).
    • Rs definiert die Krümmung (den progressiven Rechtslauf) der neuen dritten Kurve (da es sich um einen linearen Term in der anderen Richtung handelt).
  5. Dinge, die ich für nützlich befunden habe:

    • Es kann sein, dass die zweite Kurve (die gerade Linie) etwas steiler und nach oben / links sein muss, als es aus den abgetasteten Daten hervorgeht, da die Krümmung aufgrund von Rs am Ursprung beginnt.
    • Sie können eine ziemlich genaue Stichprobe erhalten, indem Sie in das Datenblatt zoomen (vorausgesetzt, PDF), eine Bildschirmkappe nehmen und sie in Ihrem bevorzugten Zeichenprogramm öffnen. Sie können dann z. B. mit dem Auswahl- oder Geradenwerkzeug den Abstand in Pixeln zwischen den Intervalllinien und den Abstand des Punkts zur Intervalllinie mit dem niedrigeren Wert messen. Bei Linearachsen wird dieser Bruch in einfache Datenwerte umgewandelt.
    • Mit dem XY-Streudiagramm können Sie beliebige Datenpunkte verwenden. Sie können mit weniger Proben als mit äquidistanten Proben davonkommen. Sie können festlegen, dass die Daten nur an den Stellen abgetastet werden, an denen dies am einfachsten und unbedingt erforderlich ist. Auf einer Semilog-Skala können Sie beispielsweise die Intervalllinien der logarithmischen Skala abtasten. Bei Bedarf können Sie noch mehr Punkte (Zeilen) für die geschätzten Kurven haben. (Zumindest scheinen OpenOffice-Diagramme die Punkte zu ignorieren, für die es keine entsprechende Y-Koordinate gibt.)
      Beachten Sie, dass die X-Werte ( Vf_sampled ) immer noch in aufsteigender (oder absteigender) Reihenfolge sein müssen. Ansonsten werden die Leitungen zu einem Durcheinander.
    • Notieren Sie sich die Skala der Einheiten, die Sie schätzen / zeichnen / zu finden versuchen (z. B. Milliampere), und denken Sie daran, dass SPICE im Allgemeinen die bloßen Einheiten (Ampere) verwendet.
    • Beachten Sie, dass der Vt des W5VO in Millivolt angegeben ist. Wenn Sie Volt verwenden, verwenden Sie den Wert 0.026 .
    • Überprüfen Sie, welche metrischen Präfixe (m, p, u usw.) Ihr SPICE-Simulator akzeptiert. Die Verwendung der Exponentennotation (z. B. 12E-34) ist möglicherweise einfacher.
    • Das Bearbeiten des Zellbereichs für das Diagramm schien immer die (neue) dritte Kurve zurückzusetzen, sodass ich den Datenbereich zu den X-Koordinaten hinzufügen und die dritte Spalte als ihren Y-Bereich ändern musste. Berücksichtigen Sie dies, wenn Sie mehrere Punkte hinzufügen oder mehrere LEDs in einem Diagramm modellieren. Nehmen Sie diese Änderungen gleichzeitig vor. (Das Ändern der Daten in den Zellen löste offensichtlich kein Zurücksetzen aus.)
    • Eine gekrümmte Interpolation auf dem Diagramm kann Sie durch Über- oder Unterschießen in die Irre führen und Ihnen nicht zeigen, warum, dh wo sich die tatsächlichen Datenpunkte befinden.
    • Gerade Liniensegmente können ebenfalls irreführend sein, da die entsprechenden Punkte an unterschiedlichen Orten enden und die lineare Interpolation nicht die logarithmische Natur der Kurve verfolgt. (Alle Datenpunkte der abgetasteten Kurve und der neuen dritten Kurve sollten außerhalb (oben / links) der geraden Liniensegmente der anderen liegen.)

AFAIK, unser Modell für die LED ist im Wesentlichen ein Rs- Widerstand und eine Is / N- Schätzdiode in Reihe: (-R -> - D-)

schematisch

simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab

ppiper
quelle
6

Ich habe ein Python-Programm zusammengestellt, das die Durchlassspannungseigenschaften einer Diode basierend auf den Eigenschaften von Datenblatt IV modelliert.

http://leicesterraspberrypi.wordpress.com/projects/modelling-a-diode-for-use-in-spice-simulations/

Fühlen Sie sich frei, es zu versuchen und zu kommentieren.

Martyn Wheeler
quelle
5
Während Ihr Code sehr nützlich aussieht, sind Antworten, die nur auf Links basieren, nicht empfehlenswert, da sie in Zukunft unbrauchbar werden können, wenn der Link abbricht. Vielleicht könnten Sie mehr Details zum Algorithmus / Code in Ihre Antwort aufnehmen, um sicherzustellen, dass er weiterhin nützlich ist, falls dies jemals passiert.
PeterJ
Das ist in der Tat sehr nützlich. Die Verwendung von WebPlotDigitizer machte dies recht einfach.
andy.holmes
2

Hier sind die, die ich verwenden würde

#       Name    Parameter                    Units      Default Example  Area
2       RS      Ohmic resistance               Ω         0       10       *
6       VJ      Junction potential             V         1       0.6
13    BV      Reverse breakdown voltage      V         ∞       40.0
14    IBV     Current at breakdown voltage   A         1.0e-3

Für Ihren VJ = 1,8 Typ ist BV = 5. Das bringt dich meistens dorthin.

Brian Carlton
quelle
1
Tatsächlich wird VJ verwendet, um die Sperrschichtkapazität basierend auf der angelegten Spannung zu berechnen. Durch Ändern dieser und der Durchbruchspannung in Sperrrichtung werden die Brutto-DC-Eigenschaften nicht wirklich eingestellt. Das Endergebnis sollte fast identisch mit dem Standarddiodenmodell sein.
W5VO
1

Wenn sich jemand fragt, warum sein einseitiges Datenblatt keine If / Vf-Kurve aufweist, liegt dies wahrscheinlich daran, dass er nicht über das vollständige Datenblatt verfügt. Ich weiß, dass z. B. Optosupply nur die Zusammenfassungen der ersten Seite auf seiner Website veröffentlicht, aber Ihnen auf Anfrage die vollständigen Spezifikationen (mit allen If / Vf-, relativen Intensitäts- und Spektralkurven usw.) zusendet.

Sie können wahrscheinlich auch verwendbare Werte für alle Werte erhalten, indem Sie ein Datenblatt einer anderen LED derselben Farbe mit derselben Chemie (vom selben Hersteller) verwenden. Prüfen Sie einfach, ob die grundlegenden Eigenschaften (wie Ströme, Spannungen und Wellenlängen) übereinstimmen.

ppiper
quelle
0

Gute Antworten, aber es ist einfach, die Shockley-Diodengleichung algebraisch zu lösen. Beachten Sie nur, dass das "Minus 1" in der Formel für Vorwärtsströme, die eine Größenordnung größer sind als Is, sehr klein, z. B. 1E-12 A, sehr irrelevant ist. Finden Sie nur zwei Punkte in der Grafik mit einfacher Lesbarkeit I- und V-Werte und fügen Sie diese in die Formel ein. Durch Teilen der beiden Formeln wird Is eliminiert, sodass N einfach zu berechnen ist. Geben Sie dann N in eine Formel ein, um Is zu finden.

Hier sind meine LibreOffice Calc-Makros in Basic:

Const Q as double = 1.6E-19
Const K as double = 1.38E-22
Const T as double = 300

rem The Shockley diode equation, to build the graph Id(Vd) for hardcoded values of Is and N
Function shockley(Vd as double) as double
    Const Is1 as double = 5.94463E-18
    rem Note that 'Is' is a reserved word and cannot be the name of a variable
    Const N as double = 0.191367
    shockley = Is1 * (exp(Vd * Q / (N * K * T )) - 1)
End Function

rem Step 1 in solving the diode equation for N using values from a graph
Function ComputeN(V1 as double, V2 as double, I1 as double, I2 as double) as double
    ComputeN = (Q / (K * T)) * (V1 - V2) / (log(I1) - log(I2))
End Function

rem Step 2 in solving the diode equation for Is
Function ComputeIS(V as double, I as double, N as double) as double
    ComputeIS = I / (exp(Q * V / (N * K * T)))  
End Function

rem for debugging
sub Test
    dim N as double
    N = ComputeN(1.85, 1.3, 0.1, 1.5E-6)
    dim Is1 as double
    Is1 = ComputeIs(1.85, 0.1, N)
end sub

Wenn Sie sich die Formeln ansehen, erkennen Sie möglicherweise einfach die Beschreibung einer geraden Linie mit einer Steigung von q / NkT, aber auch von Delta Log (Id) / Delta Vd.

Ich erhalte einen etwas ähnlichen Wert für Is: 5.94E-18 = 5.94 Atto-Ampere (W5VO gefunden 1 aA), aber viel anders N = 0.19 (W5VO gefunden 1.8, Tippfehler?), Dennoch berechnen sich die Daten auch zum selben Diagramm zurück :

Screenshot von meinem LibreOffice Calc

Die Spalte Vd sind die Spannungen, Id ist der Diodenstrom gemäß der reellen Formel, Id0 ist der Strom mit der vereinfachten Formel, wobei "minus 1" in "minus Null" geändert wird. Da Id0 eine echte Exponentialkurve ist, können Sie den Logaritmus in der Spalte Id0_log verwenden. (Sie können nicht das Protokoll einer Kurve nehmen, die wie Id zu Null und negativ wird.) Der Plot ist von Id0_Log gegen Vd. In diesem Diagramm habe ich den niedrigsten Teil gepunktet, da er NICHT mehr der tatsächliche Diodenstrom ist, sondern den Wert von Is am Schnittpunkt mit der Y-Achse anzeigt.

Wenn Sie der Exponentialkurve nach links folgen, werden Sie asymptotisch auf Null gebracht. Die "minus 1" subtrahiert jedoch einen Betrag von Is, so dass die reale Diodenkurve durch den Ursprung verläuft und bei negativen Spannungen einen umgekehrten Leckstrom des Betrags von Is anzeigt.

Wenn die Kurve des Originalherstellers auf einem sehr großen logarithmischen Diagramm gelegen hätte, hätten wir einfach ein Lineal verwenden können, um die gerade Linie nach unten zu verlängern, um Is bei Vd = 0 leicht zu finden und dann N zu berechnen, anstatt zuerst N und dann Is mit dem über dem Makro. Die Linealmethode wurde in "The Spice Book" von Andrei Vladimirescu (1994) beschrieben.

Roland
quelle