SPICE ile bir LED'i nasıl modelleyebilirim?


36

LED'leri SPICE ile modellemek için pratikte hangi diyot değiştiricileri kullanılır (Berkeley v.3f5)? Bunlar bana uygun:

#       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 Diyot Modeli (D)
Diyotun dc özellikleri IS ve N parametreleri tarafından belirlenir. Omik bir direnç olan RS dahildir. Yük depolama etkileri bir transit süre, TT ve CJO, VJ ve M parametreleri tarafından belirlenen doğrusal olmayan bir tükenme tabakası kapasitansı ile modellenmiştir. doygunluk akımı sıcaklık üssü. Bu parametrelerin ölçüldüğü nominal sıcaklık, .OPTIONS kontrol hattında belirtilen devre çapında değere varsayılan olan TNOM'dur. Ters arıza, ters diyot akımında üssel bir artışla modellenir ve BV ve IBV parametreleri (her ikisi de pozitif sayılardır) tarafından belirlenir.

Örneğin, bu basit, ucuz kırmızıyı kullanarak:

Yüksek frekans özellikleri hakkında pek fazla umrumda değil - sadece çalışma özellikleri içindeki IV-eğrisini eşleştirebilmek istiyorum (-10uA / -5V + 100mA / + 2.2 'ish V ileri kaçak ): görüntü tanımını buraya girin

Yanıtlar:


47

Sizin de belirttiğiniz gibi, bir diyotun DC tepkisini dikte eden 3 parametre vardır. Bunlar doyma akımı ( IS ), emisyon katsayısı ( N ) ve ohm direncidir ( RS ). Eğriye oldukça yüksek bir doğrulukla uymayı başardım, bu yüzden model prosedürümü belgeleyeceğim.

Diyot için SPICE modeli, Schokley diyot denklemine çok yakın:

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

burada Vt = kT/q = 26mVoda sıcaklığında karıştırıldı.

  1. Karşılaştırma için kullanmak üzere veri sayfasında sağlanan grafiklerden gerçek değerleri alın. Ne kadar çok puan, ne kadar iyi ve ne kadar doğru, o kadar iyi. Aşağıda, verdiğiniz şekilden tahmin ettiğim bir tablo var:

    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. Değerleri Excel'e takın ve y eksenini bir günlük ölçeğine değiştirin. Veri sayfasından orijinal grafiğe benzeyen bir grafik edinmelisiniz. İle, sizin grafik için başka bir sütun ekleyin Eğer ileri geriliminden hesaplanır ve sabitler IS ve N . IS ve N'yi yinelemeli olarak bulmak için bu yapılandırmayı kullanabiliriz .

  3. IS ve N için çözün . Grafiğin doğrusal kısmını eşleştirmeye çalışıyoruz (1.3 <= Vf <= 1.7). IS'nin ayarlanması eğriyi y ekseninde hareket ettirir. Hesaplanan grafiği aynı büyüklük sırasına göre alın. Bir sonraki adım emisyon katsayısını ( N ) bulmaktır . N hem genliği hem de eğimi etkiler, bu nedenle eğriyi aynı basketbol sahasında tutmak için bazı IS ayarlamaları gerekebilir. Eğimler eşleştiğinde (çizgiler paralel), IS'yi , hesaplanan verilerin veri sayfası değerleriyle eşleşmesini sağlayacak şekilde kesin. Bende IS = 1e-18ve N=1.8diyot için listelenen. görüntü tanımını buraya girin

  4. RS'i tanımla . Bu biraz zor. RS , akımın 1.7V ve üzerindeki eğrilerinden sorumludur. Direnç olarak omik direncin diyotla seri olarak modellenmesini düşünün. Diyottan geçen akım arttıkça, omik direnç boyunca voltaj düşüşü, ileri diyot voltajı Vf'nin daha yavaş artmasına neden olur . Küçük akımlarda, bu etki ihmal edilebilir.

Yapılacak ilk şey, daha doğru çözümlerde kullanılacak RS için bir basketbol sahası tahmini elde etmektir. RS'nin efektif değerini , ölçülen If değerini kullanarak Vf için geri hesaplayarak veri sayfası değerlerinden hesaplayabilirsiniz . Giriş değeri ile hesaplanan Vf arasındaki voltaj farkı, bir direnç oluşturmak için ileri akımla birlikte kullanılabilir. Yüksek akımlarda, bu iyi bir başlangıç ​​değeri olacaktır.

Diyot akımını RS kullanarak çizmek için , önce direnç diyot serisi kombinasyonu için bir voltaj verilen diyot Vf'yi hesaplamanız gerekir . Vikipedi, yinelemeli bir işlevi listeler - eğer direnç gerilimi düşmesi önemliyse kolayca birleşir. Bu işlev Excel'de ayarlamak için yeterince kolaydı. İçin Vf iteratif fonksiyon yakınsama vermedi çünkü 1.8'in altında değerler, ben giriş değeri sabit kodlanmış. Sonra ideal diyotun If değerini hesaplamak için bu Vf değerini alın . Bunu orijinal veri sayfası grafiğiyle çizdim.

Deneme ve hatayı kullanarak , veri sayfası değerleriyle oldukça iyi örtüşen bir RS değeri elde edebilmeniz gerekir . Geriye kalan tek şey, çalışmanızı doğrulamak için modeli SPICE'ta bir araya getirmek.

HSPICE kullanarak doğruladığım diyot modelim aşağıdadır. Simülasyon verileri, veri sayfası grafiği için neredeyse mükemmel bir kaplamadır.

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

Diyot baharat parametreleri ile çok yardımcı olan bu makaleyi kullandım .

Elektronik tablomu temizledim ve tyblu burada indirmeye hazır hale getirdi . Kendi sorumluluğunuzdadır kullanın, sonuçlar garanti edilmez, vb ... vb.


2
Bu harika bir cevap. + ∞
tyblu

8

Birincisi, ek diyot parametreleri okuyabileceği işaret olur BV , IBV ve CJO "Ters Akım" olarak LED veri sayfasından doğrudan Ir de Vr ve "Kapasitans" olarak C .


W5VO'nun mükemmel cevabına ek olarak, süreci kendim için şu şekilde kolaylaştırdım:

  1. I grafik türü kullanılan XY dağılım grafiği olarak sadece çizgiler , (vb Excel ile YMMV) OpenOffice.org'a ve, örneğin, (x, y) = (1,4-4,0, 0,01-50,0) manuel olarak eksen ve minimum ve maksimum ayarlamak örneklemeli verilerimin kapsamı dışına çıkarmaktan saptırmak için.

  2. İlk üç örnek noktalarının sütun sonra Vf_sampled , If_sampled olarak If_estimate Schokley diyot denklemi kullanılarak, bir ilave dördüncü bir hesaplanmış için bir Vf_estimate . Unutmayın, Rs bir seri dirençtir (en alttaki resme bakınız) ve If_estimate aslında bize burada kullanılacak akımı verir, böylece bir sütun hücreleri basitçe şu şekilde hesaplanabilir:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Şimdi, yeni dördüncü sütunu ( Vf_estimate ) X koordinatı olarak kullandım ve üçüncü sütunu ( If_estimate ) Y koordinatı olarak kullandım ve şimdi kolayca ilk eğriye karşı eşleştirebileceğim (örneklenen veri) veri sayfasındaki grafikten). Düz çizginin tahminlerime oldukça yardımcı olması nedeniyle ikinci eğriyi değiştirmek istemediğime dikkat edin.

  4. Burada biraz W5VO'yu tekrarladığımdan eminim, ancak Is , Rs ve N sabitlerinin eğri şekli açısından ( log-lin ölçeğinde) rolünün hatırlatılmasını engelliyor :

    • Mi sadece (yukarı / aşağı / sola veya sağa) eğrilerinin konumunu etkiler.
    • N , eğrilerin eğim eğrilerinin yanı sıra konumlarını da etkiler (doğrusal bir katsayı olduğundan ve eğriler her zaman ölçeğin dışında kalan başlangıç ​​noktasından geçer).
    • Rs , yeni üçüncü eğrinin eğrisini (ilerici sağa doğru süpürme) tanımlar (çünkü diğer yönde doğrusal bir terimdir).
  5. Bulduğum şeyler yararlı olabilir:

    • İkinci eğrinin (düz çizgi), Rs kaynaklı eğrilik başlangıçta başladığı için örneklenmiş verilerden göründüğünden çok daha dik ve yukarı / sola doğru olması gerektiğini bulabilirsiniz .
    • Veri sayfasına yakınlaştırarak (PDF varsayarak), bir ekran görüntüsü alarak ve en sevdiğiniz çizim programında açarak oldukça doğru örnekleme elde edebilirsiniz. Daha sonra, örneğin aralık çizgileri ile noktanın düşük değerli aralık çizgisine olan mesafesini piksel cinsinden ölçmek için örneğin seçim veya düz çizgi aracını kullanabilirsiniz. Doğrusal eksenler için bu fraksiyon kolay veri değerlerine dönüşür.
    • XY dağılım grafiği, rastgele veri noktalarını kullanmanızı sağlar. Eşit örneklemeden daha az örnekle kaçabilirsiniz. Verileri yalnızca en kolay ve kesinlikle ihtiyaç duyulan noktalarda örneklemeyi seçebilirsiniz. Örneğin, bir semilog ölçeğinde logaritmik ölçeğin aralık satırlarında örnekleme yapabilirsiniz. Gerekirse, tahmini eğriler için hala daha fazla puanınız (satırınız) olabilir. (En azından OpenOffice çizelgeleri, karşılık gelen Y koordinatının bulunmadığı noktaları görmezden gelirler.)
      X değerlerinin ( Vf_sampled ) hala artan (veya azalan) sırada olması gerektiğine dikkat edin. Aksi halde çizgiler dağınık hale gelir.
    • Tahmin ettiğiniz / çizdiğiniz / bulmaya çalıştığınız birimlerin ölçeğine dikkat edin (örneğin miliamper) ve SPICE’in genellikle çıplak birimleri (amper) kullandığını unutmayın.
    • W5VO'nun Vt değerinin milli volt cinsinden olduğuna dikkat edin . Volt kullanıyorsanız, 0.026 değerini kullanın .
    • SPICE simülatörünüzün hangi metrik öneklerini (m, p, u vb.) Kabul ettiğini kontrol edin. Üslü gösterimin kullanılması (örneğin, 12E-34) daha basit olabilir.
    • Grafik için hücre aralığının düzenlenmesi her zaman (yeni) üçüncü eğriyi sıfırladı, böylece veri aralığını X koordinatlarına yeniden eklemek ve üçüncü sütunu Y aralığı olarak yeniden değiştirmek zorunda kaldım. Daha fazla nokta eklerken veya aynı grafik üzerinde birden fazla LED modellerken bunu göz önünde bulundurun - bu tür değişiklikleri bir kerede yapın. (Hücreler içindeki verilerin değiştirilmesi kesinlikle sıfırlamayı tetiklememiştir.)
    • Grafikteki kavisli enterpolasyon, sizi asıl noktaya vurarak veya vurarak sizi asıl yol açabilir ve bunun nedenini yani gerçek veri noktalarının nerede olduğunu göstermeyebilir.
    • Düz çizgi parçaları aynı zamanda yanıltıcı olabilir, çünkü karşılık gelen noktalar farklı konumlarda sona erer ve doğrusal enterpolasyon, eğrinin logaritmik yapısını izlemez. (Örneklenen eğrinin ve yeni üçüncü eğrinin tüm veri noktaları, diğerinin düz çizgi bölümlerinin dışında (yukarı / sol) olmalıdır.)

AFAIK, LED için modelimiz esas olarak bir Rs direnci ve seri olarak Is / N tahmin diyodudur: (-R -> - D-)

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik


6

Veri sayfası IV özelliklerine dayanarak bir diyodun ileriye dönük önleme özelliklerini modelleyecek bir Python programı hazırladım.

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

Bir denemek ve yorum yapmaktan çekinmeyin.


5
Kodunuz çok faydalı görünse de, yalnızca bağlantı cevaplanırsa, bağlantı ölürse gelecekte yararsız hale gelebilecekleri için önerilmez. Belki de, eğer olması durumunda faydalı olmaya devam ettiğinden emin olmak için cevabınıza algoritma / kod hakkında daha fazla ayrıntı ekleyebilirsiniz.
Peter J.

Bu aslında oldukça kullanışlıdır. WebPlotDigitizer'ı kullanmak bunu oldukça kolaylaştırdı.
andy.holmes

2

İşte kullanacağım

#       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

VJ = 1.8 tipiniz için, BV = 5. Bu seni oradaki yoldan alır.


1
Aslında VJ, uygulanan gerilime dayanarak bağlantı kapasitansını hesaplamak için kullanılır. Bunu ve ters arıza gerilimini değiştirmek gerçekten kaba DC özelliklerini ayarlamaz. Nihai sonuç, varsayılan diyot modeliyle neredeyse aynı olmalıdır.
W5VO

1

Herhangi biri tek sayfalık veri sayfasının neden If / Vf eğrisine sahip olmadığını merak ediyorsa, büyük olasılıkla tam veri sayfasının bulunmamasından kaynaklanıyordur. Örneğin Optosupply'ın yalnızca ilk sayfa özetlerini web sitelerinde yayınladığını biliyorum, ancak talep üzerine tam özellikleri (tüm If / Vf, göreceli yoğunluk ve spektrum eğrileri vb. İle birlikte) göndereceklerini biliyorum.

Aynı kimya ile aynı renkteki bir LED'den (aynı üretici tarafından) bir veri sayfasını kullanarak muhtemelen tüm değerler için kullanılabilir rakamlar elde edebilirsiniz. Sadece temel özelliklerin (akımlar, gerilimler ve dalga boyları gibi) uyuşup uyuşmadığını kontrol etmeniz yeterlidir.


0

Harika cevaplar, ancak Shockley diyot denklemini cebirsel olarak çözmek kolaydır. Sadece formülün içindeki "eksi 1" in 1E-12 A, yani çok küçük olan büyüklük sırası olan ileri akımlar için çok önemli olmadığını unutmayın. Grafikte okunması kolay iki nokta bulun. I ve V değerleri ve bunları formüle ekleyin. Her iki formülün de bölünmesi, Is'i ortadan kaldırır, böylece N'nin hesaplanması kolaydır. Daha sonra, Is'i bulmak için bir formülü N doldurun.

İşte benim LibreOffice Calc makro'su Basic'te:

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

Formüllere bakarsanız, q / NkT eğimine sahip düz bir çizginin ancak delta Log (Id) / delta Vd.

Is için biraz benzer bir değer alıyorum: 5.94E-18 = 5.94 atto-amper (W5VO 1 aA bulundu), ama çok farklı N = 0.19 (W5VO 1.8 bulundu, yazım hatası?), Yine de veriler aynı grafiğe göre hesaplanıyor :

benim LibreOffice Calc ekran görüntüsü

Sütun Vd gerilimleridir, Id, gerçek formüle göre diyot akımıdır, Id0, "eksi 1" in "eksi sıfır" olarak değiştirildiği basitleştirilmiş formüle sahip akımdır. Id0 gerçek bir üstel eğri olduğundan, logaritmayı Id0_log sütununda alabilirsiniz. (Sıfır olan ve Id gibi negatif olan bir eğrinin günlüğünü alamazsınız) Arsa, Id0_Log'a karşı Vd'ye göredir. Bu çizimde artık en düşük kısmı noktalı yaptım, çünkü artık gerçek diyot akımı DEĞİL, ama Y ekseni ile kesişme noktasındaki Is değerini gösteriyor.

Üstel eğriyi sola doğru takip etmek sizi asimptotal olarak sıfıra getirir. Ancak, "eksi 1", bir miktar Is miktarını çıkarır, böylece gerçek diyot eğrisi orijinden geçer ve negatif voltajlarla birlikte, miktarın ters bir sızıntı akımını gösterir.

Eğer orijinal üreticilerin eğrisi gerçekten büyük bir kütük arsa üzerinde olsaydı, düz çizgiyi aşağıya doğru genişletmek için basit bir cetvel kullanabilirdik, Vd = 0 konumunda ve sonra N değerini hesaplar, ilk önce N yerine sonra N değeri olur. Makro'nun üstünde. Cetvel yöntemi "The Spice Book" da Andrei Vladimirescu (1994) tarafından tanımlanmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.