Come modellare un LED con SPICE?


36

Quali modificatori di diodi vengono utilizzati nella pratica per modellare i LED con SPICE (Berkeley v.3f5)? Questi sono disponibili per me:

#       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 Modello di diodo (D)
Le caratteristiche in cc del diodo sono determinate dai parametri IS e N. È inclusa una resistenza ohmica, RS. Gli effetti di accumulo della carica sono modellati da un tempo di transito, TT e una capacità dello strato di esaurimento non lineare determinata dai parametri CJO, VJ e M. La dipendenza dalla temperatura della corrente di saturazione è definita dai parametri EG, energia e XTI, l'esponente della temperatura corrente di saturazione. La temperatura nominale alla quale sono stati misurati questi parametri è TNOM, che per impostazione predefinita è il valore dell'intero circuito specificato sulla linea di controllo .OPTIONS. La ripartizione inversa è modellata da un aumento esponenziale della corrente del diodo inverso ed è determinata dai parametri BV e IBV (entrambi i quali sono numeri positivi).

Ad esempio, usando questo rosso di base economico:

Non mi interessa molto delle caratteristiche ad alta frequenza - vorrei solo essere in grado di abbinare la sua curva IV all'interno delle sue specifiche operative (perdita da -10uA / -5V a + 100mA / + 2,2 'ish V forward): inserisci qui la descrizione dell'immagine

Risposte:


47

Come hai affermato, ci sono 3 parametri che determinano la risposta CC di un diodo. Quelli sono la corrente di saturazione ( IS ), il coefficiente di emissione ( N ) e la resistenza ohmica ( RS ). Sono stato in grado di adattare la curva con una precisione abbastanza elevata, quindi documenterò la procedura del mio modello.

Il modello SPICE per il diodo corrisponde da vicino all'equazione del diodo di Schokley:

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

dove Vt = kT/q = 26mVa temperatura ambiente.

  1. Ottieni valori reali dai grafici forniti nel foglio dati da utilizzare per il confronto. Più punti meglio è e più preciso è il migliore. Di seguito è una tabella che ho stimato dalla cifra che hai fornito:

    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. Collegare i valori in Excel e modificare l'asse y in una scala di registro. Dovresti ottenere un grafico che sembra identico al grafico originale dal foglio dati. Aggiungere un'altra colonna per il grafico, con se calcolato dalla tensione in avanti e le costanti IS e N . Possiamo usare questa configurazione per iterativo trovare IS e N .

  3. Risolvere per IS e N . Stiamo cercando di abbinare la parte lineare del grafico (1.3 <= Vf <= 1.7). La regolazione di IS sposta la curva nell'asse y. Ottieni il grafico calcolato con lo stesso ordine di grandezza. Il prossimo passo è trovare il coefficiente di emissione ( N ). N influisce sia sull'ampiezza che sulla pendenza, quindi potrebbe essere necessario un aggiustamento di IS per mantenere la curva nello stesso campo di baseball. Una volta che le pendenze corrispondono (le linee sono parallele), tagliare IS in modo che i dati calcolati corrispondano ai valori del foglio dati. Ho ottenuto IS = 1e-18, e N=1.8per il diodo che hai elencato. inserisci qui la descrizione dell'immagine

  4. Identificare RS . Questo è un po 'complicato. RS è responsabile della curvatura della corrente da 1,7 V e oltre. Prendi in considerazione la modellazione della resistenza ohmica come resistenza in serie con il diodo. All'aumentare della corrente attraverso il diodo, la caduta di tensione attraverso la resistenza ohmica fa sì che la tensione del diodo anteriore Vf aumenti più lentamente. A piccole correnti, questo effetto è trascurabile.

La prima cosa da fare è ottenere una stima del ballpark di RS da utilizzare nelle soluzioni più accurate. È possibile calcolare il valore effettivo di RS dai valori del foglio dati eseguendo un nuovo calcolo per Vf utilizzando l' If misurato . La differenza di tensione tra il valore di ingresso e il Vf calcolato può essere utilizzata con la corrente diretta per generare una resistenza. Alle correnti più elevate, questo sarà un buon valore iniziale.

Per tracciare la corrente del diodo usando RS , è necessario prima calcolare il diodo Vf dato una tensione per la combinazione serie resistore-diodo. Wikipedia elenca una funzione iterativa : converge facilmente se la caduta di tensione del resistore è significativa. Questa funzione è stata abbastanza facile da configurare in Excel. Per valori di Vf inferiori a 1.8, ho codificato il valore di input perché la funzione iterativa non converge. Quindi prendere questo valore Vf per calcolare l'If del diodo ideale. Ho tracciato questo con il grafico del foglio dati originale.

Usando tentativi ed errori, dovresti essere in grado di ottenere un valore RS che si sovrappone abbastanza bene con i valori del foglio dati. Non resta che riunire il modello in SPICE per verificare il tuo lavoro.

Di seguito è riportato il mio modello di diodo che ho verificato utilizzando HSPICE. I dati di simulazione sono quasi un overlay perfetto per il grafico del foglio dati.

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

Ho usato questo articolo , che mi ha aiutato molto con i parametri delle spezie dei diodi.

Ho ripulito il mio foglio di calcolo e tyblu lo ha reso disponibile per il download qui . Utilizzare a proprio rischio, risultati non garantiti, ecc ... ecc ...


2
Questa è una risposta fantastica. + ∞
tyblu

8

In primo luogo, vorrei sottolineare che si può leggere i parametri di diodi aggiuntivi BV , IBV e CJO direttamente dalla scheda tecnica LED come "inversione di corrente" Ir a Vr e come "capacità" C .


Aggiungendo alla grande risposta di W5VO, ho in qualche modo semplificato il processo per me stesso nel modo seguente:

  1. Ho usato il tipo di grafico del diagramma a dispersione XY come linee solo su OpenOffice (YMMV con Excel, ecc.) E ho impostato manualmente i minimi e i massimi degli assi, ad es. (X, Y) = (1.4-4.0, 0.01-50.0), per evitarlo dall'autorangiamento al di fuori dell'ambito dei miei dati campionati.

  2. Dopo le prime tre colonne di punti campionati Vf_sampled , If_sampled e If_estimate utilizzando l'equazione del diodo Schokley, ne ho aggiunto un quarto per un Vf_estimate calcolato . Ricorda che Rs è una resistenza in serie (vedi immagine in basso) e If_estimate ci fornisce effettivamente la corrente da utilizzare qui, quindi puoi semplicemente calcolare le celle della colonna come:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Ora potrei aggiungere una terza curva, in cui ho usato la nuova quarta colonna ( Vf_estimate ) come coordinata X e la terza colonna ( If_estimate ) come coordinata Y, e che ora potrei facilmente confrontare con la prima curva (i dati campionati dal grafico sul foglio dati). Si noti che non volevo semplicemente sostituire la seconda curva poiché la linea retta è stata molto utile nelle mie stime.

  4. Sono sicuro che sto ripetendo un po 'W5VO qui, ma rivela il ruolo delle costanti Is , Rs e N in termini di forma della curva (nella nostra scala log-lin ):

    • E ' riguarda solo la posizione delle curve (su / sinistra o in basso / destra).
    • N influenza sia le pendenze della curva che le posizioni (poiché è un coefficiente lineare e le curve passano sempre attraverso l'origine, che è sempre fuori dalla scala).
    • Rs definisce la curvatura (la scansione progressiva verso destra) della nuova terza curva (poiché è un termine lineare nell'altra direzione).
  5. Cose che ho scoperto che potrebbero essere utili:

    • Potresti scoprire che la seconda curva (la linea retta) deve essere leggermente più ripida e verso l'alto / a sinistra di quanto sembrerebbe dai dati campionati, perché la curvatura dovuta a R inizia all'origine.
    • Puoi ottenere un campionamento abbastanza accurato ingrandendo il foglio dati (presupponendo il PDF), eseguendo uno screencap e aprendolo nel tuo programma di disegno preferito. È quindi possibile utilizzare, ad esempio, lo strumento selezione o retta per misurare la distanza in pixel tra le linee di intervallo e la distanza del punto dalla linea di intervallo di valore inferiore. Per gli assi lineari, quella frazione si traduce in valori di dati semplici.
    • Il diagramma a dispersione XY consente di utilizzare punti di dati arbitrari. Puoi cavartela con meno campioni che con campionamenti equidistanti. Puoi scegliere di campionare i dati solo nei punti in cui è più semplice e dove strettamente necessario. Ad esempio, su una scala di semilogrammo puoi campionare alle linee di intervallo della scala logaritmica. Se necessario, è ancora possibile avere più punti (righe) per le curve stimate. (Almeno i grafici di OpenOffice sembrano ignorare i punti per i quali non esiste una coordinata Y corrispondente.)
      Notare che i valori X ( Vf_sampled ) devono ancora essere in ordine crescente (o decrescente). Altrimenti le linee diventano un disastro.
    • Nota la scala delle unità che stai stimando / creando grafici / cercando di trovare (ad esempio milliampere) e ricorda che SPICE generalmente usa le unità nude (ampere).
    • Si noti che il Vt di W5VO è in milli volt. Se stai usando volt, usa il valore 0.026 .
    • Controlla quali prefissi metrici (m, p, u, ecc.) Accetta il tuo simulatore SPICE. L'uso della notazione esponente (ad es. 12E-34) può essere più semplice.
    • La modifica dell'intervallo di celle per il grafico sembrava reimpostare sempre la (nuova) terza curva, quindi ho dovuto aggiungere nuovamente l'intervallo di dati alle coordinate X e modificare la terza colonna come intervallo Y. Prendilo in considerazione quando aggiungi più punti o modelli più LED sullo stesso grafico: apporta tali modifiche tutte in una volta. (La modifica dei dati all'interno delle celle ovviamente non ha innescato il ripristino.)
    • L'interpolazione curva sul grafico può indurti a smarrire o sottovalutare e non mostrandoti perché, ad esempio, dove si trovano i punti effettivi dei dati.
    • I segmenti di linea retta possono anche essere fuorvianti, poiché i punti corrispondenti finiscono in posizioni diverse e l'interpolazione lineare non tiene traccia della natura logaritmica della curva. (Tutti i punti di dati della curva campionata e la nuova terza curva dovrebbero essere al di fuori (su / sinistra) dei segmenti di linea retta dell'altra.)

AFAIK, il nostro modello per LED è essenzialmente un resistore Rs e un diodo di stima Is / N in serie: (-R -> - D-)

schematico

simula questo circuito - Schema creato usando CircuitLab


6

Ho messo insieme un programma Python che modellerà le caratteristiche di polarizzazione diretta di un diodo sulla base delle caratteristiche del foglio IV.

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

Sentiti libero di provare e commentare.


5
Sebbene il tuo codice appaia molto utile, le risposte di solo collegamento sono scoraggiate perché possono diventare inutili in futuro se il collegamento si interrompe. Forse potresti includere maggiori dettagli sull'algoritmo / codice nella tua risposta per assicurarti che continui a essere utile se ciò dovesse accadere.
PeterJ,

Questo è abbastanza utile, in effetti. L'uso di WebPlotDigitizer lo ha reso abbastanza semplice.
andy.holmes,

2

Ecco quelli che vorrei usare

#       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

Per il tuo VJ = 1.8 typ, BV = 5. Questo ti porta per lo più lì.


1
In realtà, VJ viene utilizzato per calcolare la capacità di giunzione in base alla tensione applicata. La modifica di questo e la tensione di rottura inversa non imposteranno realmente le caratteristiche DC grossolane. Il risultato finale dovrebbe essere quasi identico al modello di diodo predefinito.
W5VO

1

Se qualcuno si chiede perché il suo foglio dati a pagina singola non abbia una curva If / Vf, probabilmente è perché non ha il foglio dati completo. So che, ad esempio, Optosupply pubblica solo i riassunti della prima pagina sul loro sito Web, ma ti invierà le specifiche complete (con tutte le curve If / Vf, intensità relativa e spettro, ecc.) Su richiesta.

Probabilmente puoi anche ottenere cifre utilizzabili per tutti i valori utilizzando un foglio dati da un altro LED dello stesso colore con la stessa chimica (dello stesso produttore). Basta verificare che le caratteristiche di base (come correnti, tensioni e lunghezze d'onda) corrispondano.


0

Grandi risposte, ma è facile risolvere algebricamente l'equazione del diodo Shockley. Basta notare che il "meno 1" nella formula è molto irrilevante per le correnti dirette che sono un ordine di grandezza maggiore di Is, che è molto piccolo, diciamo 1E-12 A. Trova solo due punti nel grafico con facile lettura I e V e inseriscili nella formula. Dividere entrambe le formule elimina Is, quindi N è facile da calcolare. Quindi inserisci N in una formula per trovare Is.

Ecco le mie macro di LibreOffice Calc in Basic:

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

Se guardi le formule, potresti riconoscere semplicemente la descrizione di una linea retta con pendenza di q / NkT ma anche di delta Log (Id) / delta Vd.

Ottengo un valore un po 'simile per Is: 5.94E-18 = 5.94 atto-ampere (W5VO trovato 1 aA), ma N = 0.19 molto diverso (W5VO trovato 1.8, errore di battitura?), Tuttavia i dati vengono calcolati nello stesso grafico :

screenshot del mio LibreOffice Calc

La colonna Vd indica le tensioni, Id è la corrente del diodo secondo la formula reale, Id0 è la corrente con la formula semplificata in cui "meno 1" viene modificato in "meno zero". Poiché Id0 è una vera curva esponenziale, puoi prendere il logaritmo nella colonna Id0_log. (Non puoi prendere il registro di una curva che diventa zero e negativa come Id) La trama è da Id0_Log contro Vd. In questo diagramma ho punteggiato la parte più bassa, perché NON c'è più la corrente effettiva del diodo, ma mostra il valore di Is all'intersezione con l'asse Y.

Seguire la curva esponenziale a sinistra ti porta asintoticamente a zero. Ma il "meno 1" sottrae una quantità di Is, in modo che la curva del diodo reale attraversi l'origine e, con tensioni negative, mostri una corrente di dispersione inversa della quantità Is.

Se la curva del produttore originale fosse stata su un diagramma di registro molto grande, avremmo semplicemente potuto usare un righello per estendere la linea retta verso il basso per trovare facilmente Is a Vd = 0 e quindi calcolare N, invece di calcolare prima N poi Is con il sopra le macro. Il metodo del righello è stato descritto in "The Spice Book" di Andrei Vladimirescu (1994).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.