Wie modelliere ich eine LED mit SPICE OHNE Zugriff auf ein Herstellerdatenblatt?

Auf der Suche nach einem Modell einer LED (RL5-WW15030 von Superbrightleds.com):

https://www.superbrightleds.com/moreinfo/component-leds/5mm-warm-white-led-30-degree-viewing-angle-15000-mcd/263/1190/#/tab/Specifications

Auf der Seite befindet sich ein Spannungs- / Stromdiagramm, das jedoch sehr ungenau ist und die Spannung / den Strom beim Spitzendurchlassstrom der LED nicht anzeigt.

Anscheinend kann der Händler keine genaueren Infos oder ein Datenblatt vom Hersteller erhalten.

Ich habe mir bereits die Antwort auf den folgenden Beitrag angesehen:

Wie modelliere ich eine LED mit SPICE?

Vielen Dank für alle Vorschläge.

Tom

Antworten (1)

Das könnte Sie interessieren . Es zeigt, wie man empirisch die 3 nützlichsten Diodenparameter findet: Sättigungsstrom (IS), Serienwiderstand (RS) und Emissionskoeffizient (N).

Am Anfang gibt es ziemlich viel mathematischen Hintergrund, aber zum größten Teil können Sie diesen überspringen (es sei denn, Sie interessieren sich für Mathematik).

Am Ende füge ich etwas Python-Code hinzu, mit dem diese drei Parameter entweder aus einem Datenblatt-IV-Diagramm oder aus experimentellen Messungen berechnet werden können.

Sie müssen auch die Referenztemperatur kennen (bei welcher Temperatur Ihre Messungen sind oder für welche Temperatur das IV-Diagramm gilt) sowie ungefähr, bei welcher Temperatur Sie das Gerät betreiben möchten (normalerweise eine gute Standardauswahl, obwohl 298Kviele Datenblätter spezifizieren bei 293K).

Um auf einfache Weise genaue Daten aus einem IV-Diagramm zu erhalten, versuchen Sie es mit einem Plot-Digitizer .

Für so ziemlich alles andere können Sie die "Standard"-Werte verwenden, es sei denn, Sie haben bestimmte Anforderungen (insbesondere zeitabhängige und genauere temperaturabhängige Effekte).

Zum späteren Nachschlagen hier eine abgespeckte (d. h. Kommentare entfernt) Version des Codes:

from numpy import *
from scipy.optimize import leastsq

def diode_res(args, T, V, I):
    n, Rs, Is = args
    kb = 8.617332478e-5
    return I*Rs+log(I/Is+1)*n*kb*T-V

def jac_diode(args, T, V, I):
    n,Rs,Is = args

    kb = 8.617332478e-5
    res = zeros([3,len(V)])
    res[0,:] = log(I/Is+1)*kb*T
    res[1,:] = I
    res[2,:] = -I/(I*Is+Is**2)*n*kb*T
    return res

def diode_coeffs(V, I, T):
    return leastsq(diode_res, array([1,0,1e-14]),args=(T,V,I), Dfun=jac_diode, col_deriv=True,xtol=1e-15)[0]

Es funktioniert, indem es eine nichtlineare Anpassung der kleinsten Quadrate durchführt. Hier ist ein Beispiel für die Verwendung (ich habe Daten aus dem IV-Plot in Ihrem Link entnommen):

I = array([0.00139106,  0.00186955,  0.00258687,  0.00210901,  0.00324447, 0.00282632,  0.00372254,  0.0063513 ,  0.00724731,  0.00676945, 0.00820303,  0.00772517,  0.0086809 ,  0.01178709,  0.01278269, 0.01226495,  0.0134595 ,  0.0168444 ,  0.01632666,  0.01799907, 0.01752121,  0.01847693,  0.02134388,  0.02086602,  0.02235931])])
V = array([ 3.04213083,  3.10179528,  3.16154354,  3.14650173,  3.22127085, 3.20624999,  3.25118688,  3.37110238,  3.40116506,  3.38612324, 3.43124868,  3.41620687,  3.44629049,  3.55149938,  3.58655504, 3.56654119,  3.59670861,  3.70697334,  3.68695949,  3.73216872, 3.71712691,  3.74721053,  3.82258719,  3.80754538,  3.85269177])

# assume data is at 20C
n, Rs, Is = diode_coeffs(V, I, 273+20)

Ergebnisse:

  • n = 5,5287
  • RS = 18,983 Ω
  • Ist = 0,506623 pA

Hier ist ein Diagramm mit den Anpassungsparametern:

Geben Sie hier die Bildbeschreibung ein

Hier ist die resultierende IV-Kurve von LtSpice, wobei nur diese drei Parameter und alles andere die Standarddiodenwerte verwendet werden. Wie Sie sehen können, gibt es eine leichte Abweichung, aber im Allgemeinen liegt dies normalerweise innerhalb des tatsächlichen Teilerauschens (dh Sie sollten sich nicht darauf verlassen, genau 30 mA bei 4 V zu erhalten, 27 mA sind nicht unvernünftig).

Geben Sie hier die Bildbeschreibung ein

Diese Antwort war großartig!