Jak modelować diodę LED za pomocą SPICE?


36

Jakie modyfikatory diod stosuje się w praktyce do modelowania diod LED za pomocą SPICE (Berkeley v.3f5)? dla mnie dostępne:

#       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 Model diody (D)
Charakterystykę prądu stałego diody określa się za pomocą parametrów IS i N. Uwzględniono rezystancję omową RS. Efekty magazynowania ładunku są modelowane przez czas przejścia, TT i nieliniową pojemność warstwy zubożającej, która jest określona przez parametry CJO, VJ i M. Zależność temperatury prądu nasycenia jest określona przez parametry EG, energia i XTI, wykładnik temperatury prądu nasycenia. Temperatura nominalna, w której zmierzono te parametry, to TNOM, która domyślnie odpowiada wartości dla całego obwodu określonej w linii sterującej .OPTIONS. Odwrotny rozkład jest modelowany przez wykładniczy wzrost prądu wstecznej diody i jest określany przez parametry BV i IBV (oba są liczbami dodatnimi).

Na przykład, używając tego podstawowego, taniego czerwonego:

Nie dbam zbytnio o charakterystykę wysokich częstotliwości - po prostu chciałbym być w stanie dopasować jej krzywą IV do specyfikacji operacyjnych (przeciek -10uA / -5V do + 100mA / + 2,2 cala V do przodu): wprowadź opis zdjęcia tutaj

Odpowiedzi:


47

Jak już wspomniałeś, istnieją 3 parametry, które decydują o odpowiedzi DC diody. Są to prąd nasycenia ( IS ), współczynnik emisji ( N ) i rezystancja omowa ( RS ). Udało mi się dopasować krzywą z dość dużą dokładnością, więc udokumentuję procedurę mojego modelu.

Model SPICE dla diody ściśle odpowiada równaniu diody Schokleya:

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

gdzie Vt = kT/q = 26mVw temperaturze pokojowej.

  1. Uzyskaj rzeczywiste wartości z wykresów przedstawionych w arkuszu danych, aby użyć ich do porównania. Im więcej punktów, tym lepiej, a im dokładniejszy, tym lepiej. Poniżej znajduje się tabela, którą oszacowałem na podstawie podanej przez ciebie liczby:

    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. Podłącz wartości do Excela i zmień oś y na skalę dziennika. Powinieneś otrzymać wykres, który wygląda identycznie jak oryginalny wykres z arkusza danych. Dodaj kolejną kolumnę na wykresie, z Jeśli wyliczona na podstawie napięcia do przodu i stałe IS i N . Możemy wykorzystać tę konfigurację do iteracyjnie znaleźć IS i N .

  3. Rozwiązać dla IS i N . Próbujemy dopasować część liniową wykresu (1,3 <= Vf <= 1,7). Dostosowanie IS spowoduje przesunięcie krzywej na osi y. Uzyskaj obliczony wykres do tego samego rzędu wielkości. Następnym krokiem jest znalezienie współczynnika emisji ( N ). N wpływa zarówno na amplitudę, jak i nachylenie, więc może być konieczne pewne dostosowanie IS, aby utrzymać krzywą w tym samym polu. Po dopasowaniu nachyleń (linie są równoległe), przyciąć IS, aby obliczone dane pasowały do wartości arkusza danych. Mam IS = 1e-18, i N=1.8dla diody jesteś na liście. wprowadź opis zdjęcia tutaj

  4. Zidentyfikuj RS . To trochę trudne. RS odpowiada za zakrzywienie prądu od 1,7 V i więcej. Rozważ modelowanie rezystancji omowej jako rezystora szeregowego z diodą. Wraz ze wzrostem prądu przez diodę, spadek napięcia na rezystancji omowej powoduje wolniejszy wzrost napięcia Vf diody przedniej . Przy małych prądach efekt ten jest znikomy.

Pierwszą rzeczą do zrobienia jest uzyskanie szacunkowej prognozy RS do użycia w bardziej dokładnych rozwiązaniach. Możesz obliczyć efektywną wartość RS na podstawie wartości z arkusza danych, obliczając wstecz dla Vf przy użyciu zmierzonego If . Różnica napięcia między wartością wejściową a obliczoną Vf może być wykorzystana z prądem przewodzącym do wytworzenia rezystancji. Przy wyższych prądach będzie to dobra wartość początkowa.

Aby wykreślić prąd diody za pomocą RS , należy najpierw obliczyć diodę Vf, biorąc pod uwagę napięcie dla kombinacji szeregów rezystor-dioda. Wikipedia wymienia funkcję iteracyjną - łatwo się zbiera, jeśli spadek napięcia rezystora jest znaczny. Ta funkcja była wystarczająco łatwa do skonfigurowania w programie Excel. Dla wartości Vf poniżej 1,8 zakodowałem na stałe wartość wejściową, ponieważ funkcja iteracyjna nie była zbieżna. Następnie weź tę wartość Vf, aby obliczyć If idealnej diody. Narysowałem to na oryginalnym wykresie arkusza danych.

Korzystając z metody prób i błędów, powinieneś być w stanie uzyskać wartość RS, która dość dobrze pokrywa się z wartościami arkusza danych. Pozostało tylko rzucić model w SPICE, aby zweryfikować swoją pracę.

Poniżej znajduje się mój model diody, który zweryfikowałem za pomocą HSPICE. Dane symulacji są niemal idealną nakładką dla wykresu arkusza danych.

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

Użyłem tego artykułu , który bardzo pomógł z parametrami przyprawy diody.

Wyczyściłem mój arkusz kalkulacyjny, a tyblu udostępnił go do pobrania tutaj . Używaj na własne ryzyko, wyniki nie są gwarantowane, itp ... itd ...


2
To niesamowita odpowiedź. + ∞
tyblu

8

Po pierwsze, chciałbym podkreślić, że można odczytać dodatkowe parametry diody BV , IBV i CJO bezpośrednio z arkusza LED jako „prąd wsteczny” Ir w Vr i jako „pojemność” C .


Dodając do świetnej odpowiedzi W5VO, nieco usprawniłem ten proces dla siebie w następujący sposób:

  1. Użyłem typu wykresu wykresu rozproszenia XY jako linii tylko w OpenOffice (YMMV z Excelem itp.) I ręcznie ustawiłem minima i maksima osi, np. (X, Y) = (1,4-4,0, 0,01-50,0), aby nie dopuścić do automatycznego przejścia poza zakres moich próbkowanych danych.

  2. Po pierwszych trzech kolumnach próbkowanych punktów Vf_sampled , If_sampled oraz If_estimate za pomocą równania diody Schokleya dodałem czwartą dla obliczonego Vf_estimate . Pamiętaj, że Rs jest opornością szeregową (patrz zdjęcie na dole), a If_estimate faktycznie daje nam prąd do użycia tutaj, więc można po prostu obliczyć komórki kolumny jako:
    Vf_estimate = Vf_samplowane + (If_estimate * Rs) .

  3. Mógłbym teraz dodać trzecią krzywą, w której użyłem nowej czwartej kolumny ( Vf_estimate ) jako współrzędnej X i trzeciej kolumny ( If_estimate ) jako współrzędnej Y, i którą teraz mogłem z łatwością dopasować do pierwszej krzywej (próbkowane dane z wykresu w arkuszu danych). Zauważ, że nie chciałem po prostu zastępować drugiej krzywej, ponieważ linia prosta była bardzo pomocna w moich oszacowaniach.

  4. Jestem pewien, że nieco powtarzam tutaj W5VO, ale odważnie przypomina rolę stałych Is , Rs i N pod względem kształtu krzywej (w naszej skali log-lin ):

    • Czy tylko wpływa na położenie krzywych (w górę / w dół lub w lewo / w prawo).
    • N wpływa na nachylenie krzywej, a także na pozycje (ponieważ jest to współczynnik liniowy, a krzywe zawsze przechodzą przez początek, który jest zawsze poza skalą).
    • Rs określa krzywiznę (progresywne przesunięcie w prawo) nowej trzeciej krzywej (ponieważ jest to termin liniowy w innym kierunku).
  5. Rzeczy, które znalazłem, mogą być przydatne:

    • Może się okazać, że druga krzywa (linia prosta) musi być bardzo nieco bardziej stroma i skierowana w górę / w lewo, niż wynikałoby to z próbkowanych danych, ponieważ krzywizna spowodowana Rs zaczyna się od początku.
    • Możesz uzyskać dość dokładne próbkowanie, powiększając arkusz danych (zakładając PDF), robiąc zrzut ekranu i otwierając go w swoim ulubionym programie do rysowania. Następnie można użyć np. Narzędzia do zaznaczania lub linii prostej do pomiaru odległości w pikselach między liniami interwałów i odległości punktu do linii interwałów o niższej wartości. W przypadku osi liniowych ułamek ten przekłada się na łatwe wartości danych.
    • Wykres rozproszenia XY pozwala na użycie dowolnych punktów danych. Możesz uciec z mniejszą liczbą próbek niż z jednakowo odległym próbkowaniem. Możesz wybrać próbkowanie danych tylko w punktach, w których jest to najłatwiejsze i tam, gdzie jest to absolutnie potrzebne. Na przykład w skali semilogu można próbkować w liniach interwałowych skali logarytmicznej. W razie potrzeby możesz mieć więcej punktów (rzędów) dla szacowanych krzywych. (Przynajmniej wykresy OpenOffice wydają się ignorować punkty, dla których nie ma odpowiedniej współrzędnej Y).
      Zauważ, że wartości X ( próbkowane Vf ) wciąż muszą być w porządku rosnącym (lub malejącym). W przeciwnym razie linie stają się bałaganem.
    • Zwróć uwagę na skalę jednostek, które szacujesz / sporządzasz na wykresie / próbujesz znaleźć (np. Miliamperów) i pamiętaj, że SPICE zazwyczaj używa nagich jednostek (amperów).
    • Należy pamiętać, że Vt W5VO jest w mili woltach. Jeśli używasz woltów, użyj wartości 0,026 .
    • Sprawdź, które prefiksy metryczne (m, p, u itd.) Akceptuje Twój symulator SPICE. Użycie notacji wykładniczej (np. 12E-34) może być prostsze.
    • Edytowanie zakresu komórek dla wykresu zawsze wydawało się resetować (nową) trzecią krzywą, dlatego musiałem ponownie dodać zakres danych do współrzędnych X i ponownie zmienić trzecią kolumnę jako zakres Y. Weź to pod uwagę, dodając więcej punktów lub modelując wiele diod LED na tym samym wykresie - wprowadzaj takie zmiany jednocześnie. (Zmiana danych w komórkach oczywiście nie spowodowała resetu).
    • Zakrzywiona interpolacja na wykresie może doprowadzić Cię na manowce przez przeregulowanie lub niedostosowanie i nie pokazując, dlaczego, tj. Gdzie znajdują się rzeczywiste punkty danych.
    • Segmenty linii prostej mogą również wprowadzać w błąd, ponieważ odpowiednie punkty kończą się w różnych lokalizacjach, a interpolacja liniowa nie śledzi logarytmicznej natury krzywej. (Wszystkie punkty danych próbkowanej krzywej i nowej trzeciej krzywej powinny znajdować się na zewnątrz (w górę / w lewo) odcinków linii prostej drugiego).

AFAIK, nasz model LED jest zasadniczo rezystorem Rs i diodą szacunkową Is / N szeregowo: (-R -> - D-)

schematyczny

symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab


6

Stworzyłem program w języku Python, który modeluje diodowe charakterystyki polaryzacji diody w oparciu o charakterystykę IV arkusza danych.

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

Spróbuj i skomentuj.


5
Chociaż twój kod wygląda bardzo przydatnie, odpowiedzi tylko do linków są odradzane, ponieważ mogą stać się bezużyteczne w przyszłości, jeśli link umrze. Być może możesz podać więcej szczegółów na temat algorytmu / kodu w swojej odpowiedzi, aby upewnić się, że nadal będzie on użyteczny, jeśli tak się stanie.
PeterJ

W rzeczywistości jest to całkiem przydatne. Korzystanie z WebPlotDigitizer ułatwiło to.
andy.holmes,

2

Oto te, których chciałbym użyć

#       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

Dla twojego VJ = 1,8 typ, BV = 5. To prowadzi cię przez większość drogi.


1
W rzeczywistości VJ służy do obliczania pojemności złącza na podstawie przyłożonego napięcia. Modyfikacja tego i napięcia przebicia wstecznego tak naprawdę nie ustawią charakterystyk brutto prądu stałego. Ostateczny wynik powinien być prawie identyczny z domyślnym modelem diod.
W5VO

1

Jeśli ktoś zastanawia się, dlaczego jego jednostronicowy arkusz danych nie ma krzywej If / Vf, to prawdopodobnie dlatego, że nie ma pełnego arkusza danych. Wiem, że np. Optosupply publikuje tylko streszczenia na pierwszej stronie na swojej stronie internetowej, ale prześle ci pełną specyfikację (ze wszystkimi krzywymi If / Vf, intensywności względnej i widma itp.) Na żądanie.

Prawdopodobnie można również uzyskać wartości użyteczne dla wszystkich wartości, korzystając z arkusza danych z innej diody LED tego samego koloru o tej samej chemii (tego samego producenta). Wystarczy sprawdzić, czy podstawowe parametry (takie jak prądy, napięcia i długości fal) są zgodne.


0

Świetne odpowiedzi, ale algebraicznie łatwo jest rozwiązać równanie diody Shockleya. Zauważ tylko, że „minus 1” we wzorze jest bardzo nieistotne dla prądów przewodzących, które są o rząd wielkości większe niż Is, co jest bardzo małe, powiedzmy 1E-12 A. Znajdź tylko dwa punkty na wykresie z łatwym do odczytania Wartości I i V i podłącz je do wzoru. Dzielenie obu formuł eliminuje Is, więc N jest łatwe do obliczenia. Następnie wpisz N w formule, aby znaleźć Is.

Oto moje makro LibreOffice Calc w Basicu:

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

Jeśli spojrzysz na formuły, możesz rozpoznać po prostu opis linii prostej o nachyleniu q / NkT, ale także delta Log (Id) / delta Vd.

Otrzymuję nieco podobną wartość dla Is: 5,94E-18 = 5,94 atto-amper (W5VO znaleziono 1 aA), ale znacznie różni się N = 0,19 (W5VO znaleziono 1,8, literówka?), Ale dane również przeliczają się z powrotem na ten sam wykres :

zrzut ekranu mojego LibreOffice Calc

Kolumna Vd to napięcia, Id to prąd diody zgodnie z rzeczywistym wzorem, Id0 to prąd o uproszczonej formule, w którym „minus 1” zmienia się na „minus zero”. Ponieważ Id0 jest prawdziwą krzywą wykładniczą, logarytm można wziąć w kolumnie Id0_log. (Nie możesz wziąć logu krzywej, która staje się zerowa i ujemna jak Id) Wykres pochodzi z Id0_Log kontra Vd. Na tym wykresie zrobiłem najniższą część kropkowaną, ponieważ NIE ma już rzeczywistego prądu diody, ale pokazuje wartość Is na przecięciu z osią Y.

Podążanie za krzywą wykładniczą w lewo prowadzi asymptotycznie do zera. Ale „minus 1” odejmuje pewną ilość Is, tak że rzeczywista krzywa diody przechodzi przez początek i przy ujemnych napięciach pokazuje odwrotny prąd upływu ilości Is.

Gdyby krzywa oryginalnych producentów znajdowała się na naprawdę dużym wykresie logów, moglibyśmy po prostu użyć linijki, aby przedłużyć linię prostą w dół, aby łatwo znaleźć Is przy Vd = 0, a następnie obliczyć N, zamiast obliczyć najpierw N, a następnie Jest z powyżej makr. Metodę władcy opisano w „The Spice Book” Andrei Vladimirescu (1994).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.