Bagaimana cara saya memodelkan LED dengan SPICE?

36

Pengubah dioda apa yang digunakan dalam praktik untuk memodelkan LED dengan SPICE (Berkeley v.3f5)? Ini tersedia untuk saya:

#       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 Dioda (D)
Karakteristik dc dari dioda ditentukan oleh parameter IS dan N. Resistensi ohmik, RS, disertakan. Efek penyimpanan muatan dimodelkan oleh waktu transit, TT, dan kapasitansi lapisan deplesi nonlinier yang ditentukan oleh parameter CJO, VJ, dan M. Ketergantungan suhu arus jenuh ditentukan oleh parameter EG, energi dan XTI, eksponen suhu jenuh saat ini. Suhu nominal di mana parameter ini diukur adalah TNOM, yang default ke nilai rangkaian-lebar yang ditentukan pada garis kontrol .OPTIONS. Reverse breakdown dimodelkan oleh peningkatan eksponensial pada arus dioda terbalik dan ditentukan oleh parameter BV dan IBV (keduanya merupakan angka positif).

Misalnya, menggunakan warna merah dasar dan murah ini:

Saya tidak terlalu peduli dengan karakteristik frekuensi tinggi - hanya ingin dapat mencocokkannya dengan kurva IV dalam spesifikasi operasinya (-10uA / -5V kebocoran hingga + 100mA / + 2,2 'ish V forward): masukkan deskripsi gambar di sini

tyblu
sumber

Jawaban:

47

Seperti yang Anda nyatakan, ada 3 parameter yang menentukan respons DC suatu dioda. Mereka adalah arus jenuh ( IS ), koefisien emisi ( N ), dan hambatan ohmik ( RS ). Saya dapat menyesuaikan kurva dengan akurasi yang cukup tinggi, jadi saya akan mendokumentasikan prosedur model saya.

Model SPICE untuk dioda sangat cocok dengan persamaan dioda Schokley:

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

dimana Vt = kT/q = 26mVpada suhu kamar.

  1. Dapatkan nilai aktual dari grafik yang disediakan dalam lembar data untuk digunakan sebagai perbandingan. Semakin banyak poin semakin baik, dan semakin akurat semakin baik. Di bawah ini adalah tabel yang saya perkirakan dari angka yang Anda berikan:

    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. Masukkan nilai ke Excel, dan ubah sumbu y ke skala log. Anda harus mendapatkan grafik yang terlihat identik dengan grafik asli dari lembar data. Menambahkan kolom lain untuk grafik Anda, dengan Jika dihitung dari tegangan maju dan konstanta IS dan N . Kita dapat menggunakan konfigurasi ini untuk menemukan IS dan N secara iteratif .

  3. Memecahkan IS dan N . Kami mencoba mencocokkan bagian linear dari grafik (1.3 <= Vf <= 1.7). Menyesuaikan IS akan memindahkan kurva pada sumbu y. Dapatkan grafik terhitung dengan urutan besarnya yang sama. Langkah selanjutnya adalah mencari koefisien emisi ( N ). N mempengaruhi amplitudo dan kemiringan, sehingga beberapa penyesuaian IS mungkin diperlukan untuk menjaga kurva di stadion baseball yang sama. Setelah lereng cocok (garis-garisnya paralel), potong IS sehingga data yang dihitung cocok dengan nilai lembar data. Saya dapatkan IS = 1e-18, dan N=1.8untuk dioda yang Anda daftarkan. masukkan deskripsi gambar di sini

  4. Identifikasi RS . Ini agak sulit. RS bertanggung jawab atas kurva arus dari 1.7V ke atas. Pertimbangkan pemodelan resistansi ohmik sebagai resistor secara seri dengan dioda. Ketika arus melalui dioda meningkat, penurunan tegangan melintasi hambatan ohmik menyebabkan tegangan dioda maju Vf meningkat lebih lambat. Pada arus kecil, efek ini dapat diabaikan.

Hal pertama yang harus dilakukan adalah mendapatkan perkiraan kasar RS untuk digunakan dalam solusi yang lebih akurat. Anda bisa menghitung nilai efektif RS dari nilai lembar data dengan menghitung kembali untuk Vf menggunakan If yang diukur . Perbedaan tegangan antara nilai input dan Vf yang dihitung dapat digunakan dengan arus maju untuk menghasilkan hambatan. Pada arus yang lebih tinggi, ini akan menjadi nilai awal yang baik.

Untuk merencanakan arus dioda menggunakan RS , Anda harus terlebih dahulu menghitung dioda Vf yang diberikan tegangan untuk kombinasi seri resistor-dioda. Wikipedia mencantumkan fungsi berulang - ia menyatu dengan mudah jika penurunan tegangan resistor signifikan. Fungsi ini cukup mudah untuk diatur di Excel. Untuk nilai Vf di bawah 1,8, saya mengkodekan nilai input karena fungsi iteratif tidak konvergen. Kemudian ambil nilai Vf ini untuk menghitung If dari diode ideal. Saya merencanakan ini dengan grafik lembar data asli.

Menggunakan trial and error, Anda harus bisa mendapatkan nilai RS yang menjadi cukup baik tumpang tindih dengan nilai lembar data. Yang tersisa adalah membuang model bersama-sama dalam SPICE untuk memverifikasi pekerjaan Anda.

Di bawah ini adalah model dioda saya yang saya verifikasi menggunakan HSPICE. Data simulasi hampir merupakan hamparan sempurna untuk grafik lembar data.

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

Saya menggunakan artikel ini , yang banyak membantu dengan parameter bumbu dioda.

Saya membersihkan spreadsheet saya, dan tyblu telah membuatnya tersedia untuk diunduh di sini . Gunakan dengan risiko Anda sendiri, hasil tidak dijamin, dll ... dll ...

W5VO
sumber
2
Ini jawaban yang luar biasa. + ∞
tyblu
8

Pertama, saya akan menunjukkan bahwa Anda dapat membaca parameter dioda tambahan BV , IBV dan CJO langsung dari datasheet LED sebagai "arus balik" Ir di Vr dan sebagai "Kapasitansi" C .


Menambah jawaban hebat W5VO, saya agak merampingkan proses untuk diri saya dengan cara berikut:

  1. Saya menggunakan tipe bagan plot sebar XY sebagai garis hanya pada OpenOffice (YMMV dengan Excel, dll.) Dan mengatur minima dan maxima sumbu secara manual, misalnya (X, Y) = (1,4-4,0, 0,01-50,0), untuk mencegahnya dari autoranging ke luar lingkup data sampel saya.

  2. Setelah tiga kolom pertama poin sampel Vf_sampled , If_sampled dan If_estimate menggunakan persamaan dioda Schokley, saya menambahkan yang keempat untuk Vf_estimate yang dihitung . Ingat, bahwa Rs adalah resistansi seri (lihat gambar di bagian bawah) dan If_estimate benar-benar memberi kita arus untuk digunakan di sini, jadi seseorang dapat dengan mudah menghitung sel kolom sebagai:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Saya sekarang dapat menambahkan kurva ketiga, di mana saya menggunakan kolom keempat baru ( Vf_estimate ) sebagai koordinat X dan kolom ketiga ( If_estimate ) sebagai koordinat Y, dan yang sekarang saya dapat dengan mudah cocok dengan kurva pertama (data sampel dari grafik pada lembar data). Perhatikan bahwa saya tidak ingin sekadar mengganti kurva kedua karena garis lurus cukup membantu dalam perkiraan saya.

  4. Aku yakin aku agak mengulangi W5VO di sini, tapi telanjang mengingatkan tentang peran konstanta Apakah , Rs dan N dalam hal bentuk kurva (di kami log-lin skala):

    • Apakah hanya mempengaruhi posisi kurva (up / kiri atau bawah / kanan).
    • N mempengaruhi kemiringan kurva serta posisi (karena itu adalah koefisien linier dan kurva selalu melewati titik asal, yang selalu di luar skala).
    • Rs mendefinisikan kelengkungan (sapuan ke kanan progresif) dari kurva ketiga yang baru (karena itu adalah istilah linier di arah lain).
  5. Hal-hal yang saya temukan yang mungkin berguna:

    • Anda mungkin menemukan bahwa kurva kedua (garis lurus) harus sedikit lebih curam dan ke atas / kiri daripada yang terlihat dari data sampel, karena kelengkungan akibat Rs dimulai pada titik asal.
    • Anda bisa mendapatkan sampel yang cukup akurat dengan memperbesar lembar data (dengan asumsi PDF), mengambil screencap dan membukanya di program menggambar favorit Anda. Anda kemudian dapat menggunakan misalnya alat seleksi atau garis lurus untuk mengukur jarak dalam piksel antara garis interval dan jarak titik ke garis interval bernilai lebih rendah. Untuk sumbu linear, fraksi itu diterjemahkan menjadi nilai data yang mudah.
    • Plot sebar XY memungkinkan Anda untuk menggunakan titik data yang berubah-ubah. Anda bisa lolos dengan sampel lebih sedikit daripada dengan pengambilan sampel yang sama. Anda dapat memilih untuk hanya mengambil sampel data pada titik-titik yang paling mudah dan di mana sangat dibutuhkan. Misalnya, pada skala semilog Anda dapat mencicipi pada garis interval skala logaritmik. Jika perlu, Anda masih dapat memiliki lebih banyak poin (baris) untuk kurva perkiraan. (Setidaknya grafik OpenOffice tampaknya mengabaikan poin yang tidak ada koordinat Y yang sesuai.)
      Perhatikan bahwa nilai X ( Vf_sampled ) masih harus dalam urutan naik (atau turun). Kalau tidak, garis menjadi berantakan.
    • Catat skala unit yang Anda perkirakan / buat grafik / coba temukan (mis. Miliamper) dan ingat bahwa SPICE umumnya menggunakan unit kosong (ampere).
    • Perhatikan bahwa W5VO's Vt dalam mili volt. Jika Anda menggunakan volt, gunakan nilai 0,026 .
    • Periksa awalan metrik mana (m, p, u, dll.) Yang diterima oleh simulator SPICE Anda. Menggunakan notasi eksponen (mis. 12E-34) mungkin lebih sederhana.
    • Mengedit rentang sel untuk bagan sepertinya selalu mengatur ulang kurva ketiga (baru) sehingga saya harus menambahkan kembali rentang data ke koordinat X dan mengubah kembali kolom ketiga sebagai rentang Y-nya. Pertimbangkan hal itu saat menambahkan lebih banyak titik atau memodelkan beberapa LED pada grafik yang sama - buat perubahan seperti itu sekaligus. (Mengubah data di dalam sel jelas tidak memicu pengaturan ulang.)
    • Interpolasi melengkung pada bagan dapat membuat Anda tersesat dengan overshooting atau undershooting dan tidak menunjukkan kepada Anda mengapa di mana titik-titik data aktual berada.
    • Segmen garis lurus juga dapat menyesatkan, karena titik yang sesuai berakhir di lokasi yang berbeda dan interpolasi linier tidak melacak sifat logaritmik kurva. (Semua titik data kurva sampel dan kurva ketiga baru harus berada di luar (atas / kiri) dari segmen garis lurus yang lain.)

AFAIK, model kami untuk LED pada dasarnya adalah sebuah resistor Rs dan Is / N dioda estimasi secara seri: (-R -> - D-)

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

ppiper
sumber
6

Saya telah menyusun sebuah program Python yang akan memodelkan karakteristik bias maju dari sebuah dioda berdasarkan pada karakteristik datasheet IV.

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

Jangan ragu untuk mencobanya dan berkomentar.

Martyn Wheeler
sumber
5
Meskipun kode Anda terlihat, hanya tautan saja jawabannya sangat tidak disarankan karena mereka dapat menjadi tidak berguna di masa mendatang jika tautan tersebut mati. Mungkin Anda bisa memasukkan lebih detail pada algoritma / kode dalam jawaban Anda untuk memastikannya terus berguna jika itu pernah terjadi.
PeterJ
Ini sebenarnya cukup berguna. Menggunakan WebPlotDigitizer membuatnya sangat mudah.
andy.holmes
2

Inilah yang akan saya gunakan

#       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

Untuk VJ Anda = 1,8 ketikkan, BV = 5. Itu membuat Anda sebagian besar jalan ke sana.

Brian Carlton
sumber
1
Sebenarnya, VJ digunakan untuk menghitung kapasitansi persimpangan berdasarkan tegangan yang diberikan. Memodifikasi ini dan tegangan breakdown terbalik tidak akan benar-benar mengatur karakteristik DC kotor. Hasil akhir harus hampir identik dengan model dioda default.
W5VO
1

Jika ada yang bertanya-tanya mengapa lembar data satu halamannya tidak memiliki kurva If / Vf, itu mungkin karena ia tidak memiliki lembar data lengkap. Saya tahu bahwa mis. Optosupply hanya menerbitkan ringkasan halaman pertama di situs web mereka, tetapi mereka akan mengirimi Anda spesifikasi lengkap (dengan semua If / Vf, intensitas relatif dan kurva spektrum, dll.) Berdasarkan permintaan.

Anda juga mungkin bisa mendapatkan angka yang dapat digunakan untuk semua nilai dengan menggunakan lembar data dari LED lain dengan warna yang sama dengan chemistry yang sama (oleh produsen yang sama). Cukup periksa bahwa karakteristik dasar (seperti arus, voltase dan panjang gelombang) cocok.

ppiper
sumber
0

Jawaban bagus, tetapi mudah untuk menyelesaikan persamaan dioda Shockley secara aljabar. Perhatikan bahwa "minus 1" dalam rumus sangat tidak relevan untuk arus maju yang urutan besarnya lebih besar dari Is, yang sangat kecil, katakanlah, 1E-12 A. Temukan hanya dua titik dalam grafik dengan mudah dibaca Nilai I dan V, dan hubungkan ini ke dalam rumus. Membagi kedua rumus menghilangkan Is, sehingga N mudah untuk dihitung. Kemudian isi N dalam formula untuk menemukan Is.

Berikut adalah makro LibreOffice Calc saya di Dasar:

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

Jika Anda melihat rumusnya, Anda mungkin mengenali deskripsi garis lurus dengan kemiringan q / NkT tetapi juga dari delta Log (Id) / delta Vd.

Saya mendapatkan nilai yang agak mirip untuk Is: 5.94E-18 = 5.94 atto-ampere (W5VO ditemukan 1 aA), tetapi jauh berbeda N = 0.19 (W5VO ditemukan 1.8, salah ketik?), Masih data juga menghitung kembali ke grafik yang sama :

tangkapan layar LibreOffice Calc saya

Kolom Vd adalah tegangan, Id adalah arus dioda sesuai dengan rumus nyata, Id0 adalah arus dengan rumus sederhana di mana "minus 1" diubah menjadi "minus nol". Karena Id0 adalah kurva eksponensial sejati, Anda dapat mengambil logaritm di kolom Id0_log. (Anda tidak dapat mengambil log kurva yang menjadi nol dan negatif seperti Id) Plotnya adalah dari Id0_Log versus Vd. Dalam plot ini saya membuat bagian terendah putus-putus, karena itu BUKAN saat ini dioda yang sebenarnya lagi, tetapi tidak menunjukkan nilai Apakah di persimpangan dengan sumbu-Y.

Mengikuti kurva eksponensial ke kiri membawa Anda asimtotik ke nol. Tetapi "minus 1" mengurangi jumlah Is, sehingga kurva dioda nyata melewati titik asal dan, dengan tegangan negatif, menunjukkan arus bocor terbalik dari jumlah Is.

Jika kurva pabrikan asli akan berada pada plot log yang sangat besar, kita bisa saja menggunakan penggaris untuk memperluas garis lurus ke bawah untuk dengan mudah menemukan Apakah pada Vd = 0 dan kemudian menghitung N, bukannya menghitung pertama N kemudian Apakah dengan makro di atas. Metode penggaris telah dijelaskan dalam "The Spice Book" oleh Andrei Vladimirescu (1994).

Roland
sumber