LTspice Modellierung einer LED

Ich versuche, ein Spice-Modell für eine Vishay VSLY5940 IR-LED ( Datenblatt ) zu erstellen, und nachdem ich einigen Beispielen gefolgt bin, die ich online gefunden habe, kann ich meine Berechnungen nicht abschließen.

Ich habe in Excel ein Diagramm erstellt, das dem Datenblatt ähnelt ICH F ,   v S ,   v F aber ich bin nicht in der Lage zu lösen R S ,   N , oder ICH S . Ich habe versucht, diese mit den folgenden Gleichungen zu lösen:

Angenommene Werte: R S = .01 ,   N = 1 ,   ICH S = 10 N ,   v T H = .0259

Geben Sie hier die Bildbeschreibung ein

v 1 = R S ICH D 1 + N × v T H ln ( ICH D 1 ICH S )

v 2 = R S ICH D 2 + N × v T H ln ( ICH D 2 ICH S )

v 3 = R S ICH D 3 + N × v T H ln ( ICH D 3 ICH S )

v 4 = R S ICH D 4 + N × v T H ln ( ICH D 4 ICH S )

Geben Sie hier die Bildbeschreibung ein

Irgendwelche Vorschläge zur Lösung von R S ,   N , oder ICH S ?


Update: Ich habe versucht, das Modell mit Jonks Zahlen in ihrer Antwort unten hinzuzufügen , aber mein Diagramm I (f) vs. V (f) stimmt nicht mit dem überein, was auf dem Datenblatt steht:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Hast du es mal mit der Shockley-Gleichung versucht ?
Versuchen Sie, einen kleinen Serienwiderstand hinzuzufügen, um die Umschaltung flüssiger und weniger scharf zu machen.

Antworten (1)

Hier ist das entsprechende Diagramm aus Ihrem Datenblatt:

Geben Sie hier die Bildbeschreibung ein

Für drei Variablen benötigen Sie drei Punkte darauf. Ich habe die für ausgewählt 1 mA , 30 mA Und 1 A . Die Spannungswerte, die ich abgegriffen habe, sind 1.25 v , 1.5 v , Und 2,85 v , bzw.

Der Code, den ich verwendet habe, ist:

def diode():
    print( "This program uses 3 diode measurements to extract parameters." )
    print( "You will need to have taken these measurements beforehand." )
    print( "Enter each point as [ <diode current>, <diode voltage> ]." )
    print( "" )
    TA= int( input( "Enter the ambient temperature in Celsius (default is 27 C): " ) or "27" )
    print( "" )
    VT= 8.61733034e-5 * ( 273.15 + TA )
    POINTS= []
    vd, id, N, ISAT, RS= symbols( "vd id N ISAT RS" )
    for i in range(3):
        pid, pvd= input( "Enter point " + str(i) + ": " ).split()
        POINTS.append( { vd: float( pvd ), id: float( pid ) } )
    EQS= []
    for i in range(3):
        EQS.append( Eq( POINTS[i][vd], RS*POINTS[i][id] + N*VT*ln(POINTS[i][id]) - N*VT*ISAT ) )
    print( POINTS )
    print( EQS )
    ANS= solve( EQS, [ RS, N, ISAT ] )[0]
    print( "RS   = " + str(ANS[0]) )
    print( "N    = " + str(ANS[1]) )
    print( "ISAT = " + str(exp(ANS[2])) )

Wenn ich diese in den Python-Code einfüge, der auf Sage läuft, erhalte ich: R 1.16185 Ω , ICH SA 2.96406 pA , Und N 2.475312 .

Der obige Code ist tatsächlich etwas robuster N als bei den anderen Parametern. Aber ich denke, diese Parameter werden diese Kurve ziemlich genau reproduzieren. (Habe ich nicht überprüft.)

Es steht Ihnen frei, Ihre eigene Methode zu erarbeiten. Vor allem, wenn Sie eine Excel-Antwort benötigen. Ich bin nicht daran interessiert, das bereitzustellen. Aber das Obige sollte Ihnen zumindest einen Ansatz zur Implementierung in Excel bieten, falls Sie dies tun möchten.

Hier ist, was ich von LTspice bekomme, indem ich die Parameterwerte verwende, die mein Programm aus nur drei Punkten berechnet hat (mehr wäre natürlich besser).

Geben Sie hier die Bildbeschreibung ein

Ich habe dann "Cursor" auf LTspice verwendet, um die relevanten Werte auszuwählen:

Geben Sie hier die Bildbeschreibung ein

Sie können LTspice selbst verwenden, wenn Sie andere Werte auf der Kurve überprüfen und sehen möchten, wie sie mit dem Diagramm übereinstimmen. Mein Algorithmus soll nicht genau mit LTspice übereinstimmen, da LTspice ein viel ausgefeilteres Modell handhabt (was natürlich mehr Punkte erfordern würde). Aber es kommt normalerweise ziemlich nahe.

Ein bisschen verwirrt von diesen Zahlen, die unten mit Bildern neu gepostet wurden
@Pete Lassen Sie mich LTspice verwenden, um es für Sie mit den vollständigen Zahlen zu zeichnen, die mein Programm generiert hat.
Danke, ich weiß das zu schätzen!
du hast es auf den Punkt gebracht, vielen Dank! Ich hatte heute 5 Stunden damit zu kämpfen. Vielen Dank für Ihre Hilfe, hat mir den Tag versüßt!
@Pete Schön, dass es geholfen hat!! Sie können hier nachsehen , wenn Sie sich für die geschlossene Gleichung interessieren. Ein bisschen nervig ist es aber schon.
@Pete Nichtlineare Gleichungen, insbesondere in Kombination mit linearen Gleichungen, die von ihnen abhängen, können ein aufrichtiger Schmerz sein, bei dem jeder winzige Schritt sorgfältig auf Fehler untersucht werden muss. Dies ist einer der Orte, an denen ein symbolischer Löser helfen kann, obwohl sich herausstellt, dass ein Mensch (zumindest bisher) immer noch vorhandene Software übertreffen kann. Ich kann diese Art von Problemen leicht lösen, bei denen sowohl SymPy als auch Wolfram Alpha einfach auseinanderfallen und kläglich versagen. Kreativität und Fantasie haben also immer noch ihren Platz.
Übrigens, warum haben Sie alle Großbuchstaben für ein muteable (POINTS) verwendet?
@2e0byo Kein besonderer Grund, außer dass ich das für mich selbst geschrieben habe und nicht beabsichtigt hatte, es irgendwo auszustellen, und ich war zu der Zeit einfach in dieser Stimmung.
@jonkfair! Ich bin nur ein Pedant. Es ist eine nette Antwort (+1) und ich stimme voll und ganz zu. Probleme wie dieses von Hand zu lösen: Oft sieht man die Antwort schneller, als alle Einschränkungen festzulegen, damit sich ein symbolischer Löser selbst verhält.
@2e0byo Ich würde gerne sehen, wie du es schreiben würdest. Ich habe erst vor etwa einem Jahr angefangen, Python und Sympy zu lernen und habe es seitdem nur gelegentlich verwendet. Ich muss noch viel lernen.
Ich habe dies umgeschrieben (wobei die Logik genau gleich bleibt) und es in einen Kern gefasst . Die Codierungsstile variieren enorm und Ihr Code ist völlig in Ordnung, aber Sie haben gefragt ... Beachten Sie, dass ich nicht genau die gleichen Ergebnisse erhalte, es sei denn, ich gebe Punkte falsch ein, aber ich erhalte die gleichen Ergebnisse mit Ihrem und meinem Code.
@2e0byo Vielen Dank. Ich gehe gleich ins Bett. (Nochmals.) Aber ich werde es morgen sorgfältig durchlesen. Danke!!