Como eu modelo um LED com SPICE?


36

Quais modificadores de diodo são usados ​​na prática para modelar LEDs com SPICE (Berkeley v.3f5)? Estes estão disponíveis para mim:

#       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 Modelo de diodo (D)
As características CC do diodo são determinadas pelos parâmetros IS e N. Uma resistência ôhmica, RS, está incluída. Os efeitos do armazenamento de carga são modelados por um tempo de trânsito, TT e uma capacitância não linear da camada de depleção, que é determinada pelos parâmetros CJO, VJ e M. A dependência da temperatura da corrente de saturação é definida pelos parâmetros EG, energia e XTI, o expoente da temperatura da corrente de saturação. A temperatura nominal na qual esses parâmetros foram medidos é TNOM, que é padronizado com o valor de todo o circuito especificado na linha de controle .OPTIONS. A quebra reversa é modelada por um aumento exponencial da corrente do diodo reverso e é determinada pelos parâmetros BV e IBV (ambos números positivos).

Por exemplo, usando este vermelho básico e barato:

Eu não me importo muito com características de alta frequência - só gostaria de poder combinar sua curva IV dentro de suas especificações operacionais (vazamento de -10uA / -5V a + 100mA / + 2,2 'ish V para frente): insira a descrição da imagem aqui

Respostas:


47

Como você afirmou, existem 3 parâmetros que determinam a resposta DC de um diodo. Essas são a corrente de saturação ( IS ), o coeficiente de emissão ( N ) e a resistência ôhmica ( RS ). Consegui ajustar a curva com uma precisão bastante alta, então documentarei meu procedimento de modelo.

O modelo SPICE para o diodo coincide com a equação do diodo de Schokley:

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

onde Vt = kT/q = 26mVà temperatura ambiente.

  1. Obtenha valores reais dos gráficos fornecidos na folha de dados para usar na comparação. Quanto mais pontos, melhor e mais preciso, melhor. Abaixo está uma tabela que calculei a partir da figura que você forneceu:

    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. Conecte os valores ao Excel e altere o eixo y para uma escala de log. Você deve obter um gráfico idêntico ao gráfico original da folha de dados. Adicionar outra coluna do gráfico, com Se calculada a partir da tensão para a frente e as constantes de IS e N . Podemos usar essa configuração para encontrar IS e N iterativamente .

  3. Resolver para SI e N . Estamos tentando corresponder à parte linear do gráfico (1,3 <= Vf <= 1,7). Ajustar IS moverá a curva no eixo y. Obtenha o gráfico calculado na mesma ordem de magnitude. O próximo passo é encontrar o coeficiente de emissão ( N ). N afeta a amplitude e a inclinação, portanto, alguns ajustes de IS podem ser necessários para manter a curva no mesmo estádio. Depois que as inclinações corresponderem (as linhas são paralelas), apare IS para que os dados calculados correspondam aos valores da folha de dados. Eu recebi IS = 1e-18e N=1.8pelo diodo que você listou. insira a descrição da imagem aqui

  4. Identifique o RS . Isso é um pouco complicado. A RS é responsável pelo encurvamento da corrente de 1,7V e acima. Considere modelar a resistência ôhmica como um resistor em série com o diodo. À medida que a corrente através do diodo aumenta, a queda de tensão através da resistência ôhmica faz com que a tensão do diodo direto Vf aumente mais lentamente. Em pequenas correntes, esse efeito é insignificante.

A primeira coisa a fazer é obter uma estimativa aproximada do RS para uso nas soluções mais precisas. Você pode calcular o valor efetivo de RS a partir dos valores da folha de dados, calculando novamente para Vf usando o If medido . A diferença de tensão entre o valor de entrada e o Vf calculado pode ser usada com a corrente direta para gerar uma resistência. Nas correntes mais altas, este será um bom valor inicial.

Para plotar a corrente do diodo usando RS , você precisa primeiro calcular o diodo Vf, dada uma tensão para a combinação da série resistor-diodo. A Wikipedia lista uma função iterativa - converge facilmente se a queda de tensão do resistor for significativa. Essa função foi fácil de configurar no Excel. Para valores de Vf abaixo de 1,8, codifiquei o valor de entrada porque a função iterativa não convergiu. Em seguida, pegue esse valor Vf para calcular o If do diodo ideal. Plotei isso com o gráfico original da folha de dados.

Usando tentativa e erro, você poderá obter um valor RS que se sobreponha muito bem aos valores da folha de dados. Tudo o que resta é juntar o modelo no SPICE para verificar seu trabalho.

Abaixo está o meu modelo de diodo que verifiquei usando o HSPICE. Os dados da simulação são quase uma sobreposição perfeita para o gráfico da folha de dados.

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

Eu usei este artigo , que ajudou muito nos parâmetros de tempero do diodo.

Limpei minha planilha e o tyblu a disponibilizou para download aqui . Use por sua conta e risco, resultados não garantidos, etc ... etc ...


2
Esta é uma resposta incrível. + ∞
tyblu 31/01

8

Primeiro, eu gostaria de salientar que você pode ler os parâmetros de diodo adicionais BV , IBV e CJO diretamente da folha de dados LED como "Corrente reversa" Ir ao Vr e como "capacitância" C .


Adicionando à ótima resposta do W5VO, simplifiquei o processo para mim da seguinte maneira:

  1. Usei o tipo de gráfico do gráfico de dispersão XY como linhas apenas no OpenOffice (YMMV com Excel, etc.) e configurei os mínimos e máximos dos eixos manualmente, por exemplo, (X, Y) = (1.4-4.0, 0.01-50.0), impedi-lo de mudar automaticamente para fora do escopo dos meus dados amostrados.

  2. Após as três primeiras colunas dos pontos amostrados Vf_sampled , If_sampled e If_estimate usando a equação do diodo de Schokley, adicionei uma quarta para um Vf_estimate calculado . Lembre-se de que Rs é uma resistência em série (veja a imagem na parte inferior) e o If_estimate realmente fornece a corrente a ser usada aqui, para que você possa simplesmente calcular as células da coluna como:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Agora eu poderia adicionar uma terceira curva, na qual usei a nova quarta coluna ( Vf_estimate ) como coordenada X e a terceira coluna ( If_estimate ) como coordenada Y, e que agora eu poderia facilmente corresponder à primeira curva (os dados amostrados do gráfico na folha de dados). Observe que eu não queria simplesmente substituir a segunda curva, pois a linha reta era bastante útil nas minhas estimativas.

  4. Tenho certeza de que estou repetindo um pouco o W5VO aqui, mas ele lembra o papel das constantes Is , Rs e N em termos da forma da curva (em nossa escala log-lin ):

    • Isso afeta apenas a posição das curvas (para cima / esquerda ou para baixo / direita).
    • N afeta as inclinações das curvas e as posições (já que é um coeficiente linear e as curvas sempre passam pela origem, que está sempre fora da escala).
    • Rs define a curvatura (a varredura progressiva para a direita) da nova terceira curva (já que é um termo linear na outra direção).
  5. Coisas que achei que podem ser úteis:

    • Você pode achar que a segunda curva (a linha reta) precisa ser um pouco mais íngreme e para cima / esquerda do que parece nos dados amostrados, porque a curvatura devida a Rs começa na origem.
    • Você pode obter uma amostragem bastante precisa, ampliando a folha de dados (assumindo PDF), pegando uma captura de tela e abrindo-a em seu programa de desenho favorito. Você pode usar, por exemplo, a ferramenta de seleção ou linha reta para medir a distância em pixels entre as linhas de intervalo e a distância do ponto até a linha de intervalo de valor mais baixo. Para eixos lineares, essa fração se traduz em valores de dados fáceis.
    • O gráfico de dispersão XY permite usar pontos de dados arbitrários. Você pode obter menos amostras do que com amostras equidistantes. Você pode optar por amostrar apenas os dados nos pontos em que é mais fácil e estritamente necessário. Por exemplo, em uma escala semilog, é possível amostrar nas linhas de intervalo da escala logarítmica. Se necessário, você ainda pode ter mais pontos (linhas) para as curvas estimadas. (Pelo menos os gráficos do OpenOffice parecem ignorar os pontos para os quais não há coordenadas Y correspondentes.)
      Observe que os valores X ( amostra Vf ) ainda precisam estar em ordem crescente (ou decrescente). Caso contrário, as linhas se tornam uma bagunça.
    • Observe a escala das unidades que você está estimando / criando gráficos / tentando encontrar (por exemplo, miliamperes) e lembre-se de que o SPICE geralmente usa as unidades nuas (amperes).
    • Observe que o Vt do W5VO está em mili- volts. Se você estiver usando volts, use o valor 0,026 .
    • Verifique quais prefixos métricos (m, p, u, etc.) o seu simulador SPICE aceita. O uso da notação de expoente (por exemplo, 12E-34) pode ser mais simples.
    • A edição do intervalo de células para o gráfico parecia sempre redefinir a (nova) terceira curva, para que eu precisasse adicionar novamente o intervalo de dados às coordenadas X e alterar novamente a terceira coluna como seu intervalo Y. Leve isso em consideração ao adicionar mais pontos ou modelar vários LEDs no mesmo gráfico - faça essas alterações de uma só vez. (A alteração dos dados nas células obviamente não acionou a redefinição.)
    • A interpolação curvada no gráfico pode levar você a se desviar, ultrapassando ou subindo, e não mostrando o porquê, por exemplo, onde estão os pontos reais dos dados.
    • Os segmentos de linha reta também podem enganar, pois os pontos correspondentes terminam em locais diferentes e a interpolação linear não rastreia a natureza logarítmica da curva. (Todos os pontos de dados da curva amostrada e a nova terceira curva devem estar fora (acima / esquerda) dos segmentos de linha reta da outra.)

AFAIK, nosso modelo para o LED é essencialmente um resistor Rs e um diodo de estimativa Is / N em série: (-R -> - D-)

esquemático

simular este circuito - esquemático criado usando o CircuitLab


6

Eu montei um programa Python que modelará as características de polarização direta de um diodo com base nas características da folha de dados IV.

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

Sinta-se à vontade para tentar e comentar.


5
Embora seu código pareça muito útil, as respostas somente para links são desencorajadas, pois podem se tornar inúteis no futuro se o link acabar. Talvez você possa incluir mais detalhes sobre o algoritmo / código em sua resposta para garantir que ele continue sendo útil, se isso acontecer.
precisa

Isso é bastante útil, de fato. O uso do WebPlotDigitizer tornou isso muito fácil.
andy.holmes

2

Aqui estão os que eu usaria

#       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

Para o seu VJ = 1,8 tipo, BV = 5. Isso leva você a maior parte do caminho até lá.


1
Na verdade, VJ é usado para calcular a capacitância da junção com base na tensão aplicada. Modificar isso e a tensão de ruptura reversa não definirão realmente as características brutas de CC. O resultado final deve ser quase idêntico ao modelo de diodo padrão.
W5VO

1

Se alguém está se perguntando por que sua folha de dados de página única não possui uma curva If / Vf, provavelmente é porque ele / ela não possui a folha de dados completa. Sei que, por exemplo, a Optosupply publica apenas os resumos da primeira página em seu site, mas eles enviarão as especificações completas (com todas as If / Vf, intensidade relativa e curvas de espectro, etc.) mediante solicitação.

Você também pode obter valores utilizáveis ​​para todos os valores usando uma folha de dados de outro LED da mesma cor com a mesma química (do mesmo fabricante). Basta verificar se as características básicas (como correntes, tensões e comprimentos de onda) correspondem.


0

Ótimas respostas, mas é fácil resolver a equação do diodo de Shockley algebricamente. Observe que o "menos 1" na fórmula é muito irrelevante para correntes para a frente cuja ordem de magnitude é maior que Is, que é muito pequena, por exemplo, 1E-12 A. Encontre apenas dois pontos no gráfico com fácil leitura Valores I e V e conecte-os à fórmula. Dividir ambas as fórmulas elimina Is, então N é fácil de calcular. Em seguida, preencha N em uma fórmula para encontrar Is.

Aqui estão minhas macro do LibreOffice Calc no 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 você observar as fórmulas, poderá reconhecer simplesmente a descrição de uma linha reta com inclinação de q / NkT, mas também de delta Log (Id) / delta Vd.

Eu recebo um valor um pouco semelhante para Is: 5,94E-18 = 5,94 atampere (W5VO encontrado 1 aA), mas N = 0,19 muito diferente (W5VO encontrado 1,8, erro de digitação?), Ainda assim os dados também calculam o mesmo gráfico :

captura de tela do meu LibreOffice Calc

A coluna Vd são as tensões, Id é a corrente do diodo de acordo com a fórmula real, Id0 é a corrente da fórmula simplificada em que o "menos 1" é alterado para "menos zero". Como Id0 é uma curva exponencial verdadeira, você pode usar o logaritm na coluna Id0_log. (Você não pode obter o log de uma curva que se torna zero e negativa como Id). O gráfico é de Id0_Log versus Vd. Neste gráfico, fiz a parte mais baixa pontilhada, porque NÃO existe mais a corrente real do diodo, mas mostra o valor de Is na interseção com o eixo Y.

Seguir a curva exponencial à esquerda leva você a zero. Mas o "menos 1" subtrai uma quantidade de Is, de modo que a curva real do diodo passa pela origem e, com tensões negativas, mostra uma corrente de fuga reversa da quantidade Is.

Se a curva original do fabricante estivesse em um gráfico de log muito grande, poderíamos simplesmente usar uma régua para estender a linha reta para baixo para encontrar facilmente Is em Vd = 0 e depois calcular N, em vez de calcular primeiro N e, em seguida, É com o acima das macro. O método da régua foi descrito em "The Spice Book" por Andrei Vladimirescu (1994).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.