¿Cómo modelo un LED con SPICE?

36

¿Qué modificadores de diodo se utilizan en la práctica para modelar LED con SPICE (Berkeley v.3f5)? Estos están disponibles para mí:

#       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)
Las características de CC del diodo están determinadas por los parámetros IS y N. Se incluye una resistencia óhmica, RS. Los efectos de almacenamiento de carga se modelan mediante un tiempo de tránsito, TT y una capacitancia de capa de agotamiento no lineal que está determinada por los parámetros CJO, VJ y M. La dependencia de la temperatura de la corriente de saturación está definida por los parámetros EG, la energía y XTI, el exponente actual de temperatura de saturación. La temperatura nominal a la que se midieron estos parámetros es TNOM, que por defecto es el valor de todo el circuito especificado en la línea de control .OPTIONS. La descomposición inversa está modelada por un aumento exponencial en la corriente de diodo inverso y está determinada por los parámetros BV e IBV (los cuales son números positivos).

Por ejemplo, usando este rojo básico y barato:

No me importan mucho las características de alta frecuencia, solo me gustaría poder igualar su curva IV dentro de sus especificaciones de funcionamiento (fuga de -10uA / -5V a + 100mA / + 2.2 'ish V hacia adelante): ingrese la descripción de la imagen aquí

tyblu
fuente

Respuestas:

47

Como usted dijo, hay 3 parámetros que dictan la respuesta DC de un diodo. Esas son la corriente de saturación ( IS ), el coeficiente de emisión ( N ) y la resistencia óhmica ( RS ). Pude ajustar la curva con una precisión bastante alta, así que documentaré el procedimiento de mi modelo.

El modelo SPICE para el diodo coincide estrechamente con la ecuación del diodo Schokley:

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

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

  1. Obtenga valores reales de los gráficos provistos en la hoja de datos para usar en la comparación. Cuantos más puntos, mejor, y cuanto más preciso, mejor. A continuación hay una tabla que calculé a partir de la cifra que proporcionó:

    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 los valores a Excel y cambie el eje y a una escala logarítmica. Debe obtener un gráfico que se vea idéntico al gráfico original de la hoja de datos. Añadir otra columna para el gráfico, con Si calculan a partir de la tensión directa y las constantes ES y N . Podemos usar esta configuración para encontrar IS y N de forma iterativa .

  3. Resuelve para IS y N . Estamos tratando de hacer coincidir la parte lineal del gráfico (1.3 <= Vf <= 1.7). El ajuste de IS moverá la curva en el eje y. Obtenga la gráfica calculada en el mismo orden de magnitud. El siguiente paso es encontrar el coeficiente de emisión ( N ). N afecta tanto la amplitud como la pendiente, por lo que puede ser necesario algún ajuste de IS para mantener la curva en el mismo estadio. Una vez que las pendientes coinciden (las líneas son paralelas), recorte IS para que los datos calculados coincidan con los valores de la hoja de datos. Tengo IS = 1e-18, y N=1.8para el diodo que enumeraste. ingrese la descripción de la imagen aquí

  4. Identificar RS . Esto es un poco complicado. RS es responsable de la curvatura de la corriente desde 1.7V y superior. Considere modelar la resistencia óhmica como una resistencia en serie con el diodo. A medida que aumenta la corriente a través del diodo, la caída de voltaje a través de la resistencia óhmica hace que el voltaje del diodo directo Vf aumente más lentamente. A pequeñas corrientes, este efecto es insignificante.

Lo primero que debe hacer es obtener una estimación aproximada de RS para usar en las soluciones más precisas. Puede calcular el valor efectivo de RS a partir de los valores de la hoja de datos al volver a calcular Vf utilizando el If medido . La diferencia de voltaje entre el valor de entrada y el Vf calculado se puede usar con la corriente directa para generar una resistencia. En las corrientes más altas, este será un buen valor inicial.

Para trazar la corriente del diodo usando RS , primero debe calcular el diodo Vf dado un voltaje para la combinación de la serie resistencia-diodo. Wikipedia enumera una función iterativa : converge fácilmente si la caída de voltaje de la resistencia es significativa. Esta función fue bastante fácil de configurar en Excel. Para los valores de Vf por debajo de 1.8, codifiqué el valor de entrada porque la función iterativa no convergía. Luego tome este valor Vf para calcular el If del diodo ideal. Tracé esto con el gráfico original de la hoja de datos.

Usando prueba y error, debería poder obtener un valor RS que se superponga bastante bien con los valores de la hoja de datos. Todo lo que queda es juntar el modelo en SPICE para verificar su trabajo.

A continuación se muestra mi modelo de diodo que verifiqué usando HSPICE. Los datos de simulación son casi una superposición perfecta para el gráfico de la hoja de datos.

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

Usé este artículo , que ayudó mucho con los parámetros de las especias de diodos.

Limpié mi hoja de cálculo y tyblu la puso a disposición para descargar aquí . Uso bajo su propio riesgo, resultados no garantizados, etc ... etc ...

W5VO
fuente
2
Esta es una respuesta asombrosa. + ∞
tyblu
8

En primer lugar, me gustaría señalar que se puede leer parámetros adicionales de diodos BV , IBV y CJO directamente desde la ficha técnica LED como "Corriente inversa de" Ir a Vr y como "capacitancia" C .


Agregando a la gran respuesta de W5VO, simplifiqué el proceso de la siguiente manera:

  1. Utilicé el tipo de gráfico de diagrama de dispersión XY como líneas solo en OpenOffice (YMMV con Excel, etc.) y establecí los mínimos y máximos de los ejes manualmente, por ejemplo (X, Y) = (1.4-4.0, 0.01-50.0), para evitar que se autocalifique fuera del alcance de mis datos muestreados.

  2. Después de las primeras tres columnas de puntos muestreados Vf_sampled , If_sampled y If_estimate usando la ecuación del diodo Schokley, agregué un cuarto para un Vf_estimate calculado . Recuerde que Rs es una resistencia en serie (vea la imagen en la parte inferior) y If_estimate en realidad nos da la corriente para usar aquí, por lo que uno simplemente puede calcular las celdas de la columna como:
    Vf_estimate = Vf_sampled + (If_estimate * Rs) .

  3. Ahora podría agregar una tercera curva, en la que utilicé la nueva cuarta columna ( Vf_estimate ) como la coordenada X y la tercera columna ( If_estimate ) como la coordenada Y, y que ahora podría comparar fácilmente con la primera curva (los datos muestreados del gráfico en la hoja de datos). Tenga en cuenta que no quería simplemente reemplazar la segunda curva, ya que la línea recta fue bastante útil en mis estimaciones.

  4. Estoy seguro de que estoy repitiendo un poco W5VO aquí, pero recuerda el papel de las constantes Is , Rs y N en términos de la forma de la curva (en nuestra escala log-lin ):

    • Es sólo afecta a la posición de las curvas (arriba / hacia la izquierda o hacia abajo / derecha).
    • N afecta las pendientes de la curva , así como las posiciones (ya que es un coeficiente lineal y las curvas siempre pasan por el origen, que siempre está fuera de la escala).
    • Rs define la curvatura (el barrido progresivo hacia la derecha) de la nueva tercera curva (ya que es un término lineal en la otra dirección).
  5. Cosas que encontré que pueden ser útiles:

    • Puede encontrar que la segunda curva (la línea recta) debe ser ligeramente más empinada y hacia arriba / izquierda de lo que parece a partir de los datos muestreados, porque la curvatura debida a R comienza en el origen.
    • Puede obtener un muestreo bastante preciso haciendo zoom en la hoja de datos (suponiendo PDF), tomando una captura de pantalla y abriéndola en su programa de dibujo favorito. Luego puede usar, por ejemplo, la herramienta de selección o de línea recta para medir la distancia en píxeles entre las líneas de intervalo y la distancia del punto a la línea de intervalo de menor valor. Para ejes lineales, esa fracción se traduce en valores de datos fáciles.
    • El diagrama de dispersión XY le permite utilizar puntos de datos arbitrarios. Puede salirse con menos muestras que con un muestreo equidistante. Puede elegir muestrear solo los datos en los puntos donde sea más fácil y estrictamente necesario. Por ejemplo, en una escala de semilog puede tomar muestras en las líneas de intervalo de la escala logarítmica. Si lo necesita, aún puede tener más puntos (filas) para las curvas estimadas. (Al menos, los gráficos de OpenOffice parecen ignorar los puntos para los que no hay una coordenada Y correspondiente).
      Tenga en cuenta que los valores X ( Vf_sampled ) todavía deben estar en orden ascendente (o descendente). De lo contrario, las líneas se convierten en un desastre.
    • Observe la escala de las unidades que está estimando / graficando / tratando de encontrar (por ejemplo, miliamperios) y recuerde que SPICE generalmente usa las unidades desnudas (amperios).
    • Tenga en cuenta que el Vt de W5VO está en milivoltios . Si usa voltios, use el valor 0.026 .
    • Compruebe qué prefijos métricos (m, p, u, etc.) acepta su simulador SPICE. Usar la notación de exponente (por ejemplo, 12E-34) puede ser más simple.
    • La edición del rango de celdas para el gráfico siempre parecía restablecer la (nueva) tercera curva, por lo que tuve que volver a agregar el rango de datos a las coordenadas X y volver a cambiar la tercera columna como su rango Y. Tenga esto en cuenta cuando agregue más puntos o modele varios LED en el mismo gráfico: realice dichos cambios de una vez. (Cambiar los datos dentro de las celdas obviamente no activó el reinicio).
    • La interpolación curvada en el gráfico puede llevarlo por mal camino al pasar por encima o por debajo y no mostrarle por qué, es decir, dónde están los puntos de datos reales.
    • Los segmentos de línea recta también pueden inducir a error, ya que los puntos correspondientes terminan en diferentes ubicaciones y la interpolación lineal no sigue la naturaleza logarítmica de la curva. (Todos los puntos de datos de la curva muestreada y la nueva tercera curva deben estar fuera (arriba / izquierda) de los segmentos de línea recta de la otra).

AFAIK, nuestro modelo para el LED es esencialmente una resistencia Rs y un diodo de estimación Is / N en serie: (-R -> - D-)

esquemático

simular este circuito : esquema creado con CircuitLab

flautista
fuente
6

He creado un programa Python que modelará las características de polarización directa de un diodo basado en las características de la hoja de datos IV.

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

Siéntase libre de probarlo y comentar.

Martyn Wheeler
fuente
55
Si bien su código parece muy útil, se desaconsejan las respuestas de solo enlace, ya que pueden volverse inútiles en el futuro si el enlace desaparece. Quizás podría incluir más detalles sobre el algoritmo / código en su respuesta para asegurarse de que siga siendo útil si eso sucede.
PeterJ
Esto es bastante útil, de hecho. El uso de WebPlotDigitizer lo hizo bastante fácil.
andy.holmes
2

Aquí están los que usaría

#       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 su VJ = 1.8 típ, BV = 5. Eso te lleva a la mayor parte del camino.

Brian Carlton
fuente
1
En realidad, VJ se usa para calcular la capacitancia de unión en función del voltaje aplicado. Modificar esto y el voltaje de ruptura inversa realmente no establecerá las características brutas de CC. El resultado final debe ser casi idéntico al modelo de diodo predeterminado.
W5VO
1

Si alguien se pregunta por qué su hoja de datos de una sola página no tiene una curva If / Vf, probablemente sea porque no tiene la hoja de datos completa. Sé que, por ejemplo, Optosupply solo publica los resúmenes de la primera página en su sitio web, pero le enviarán las especificaciones completas (con todas las curvas If / Vf, intensidad relativa y espectro, etc.) a pedido.

Probablemente también pueda obtener cifras utilizables para todos los valores utilizando una hoja de datos de otro LED del mismo color con la misma química (del mismo fabricante). Simplemente verifique que las características básicas (como corrientes, voltajes y longitudes de onda) coincidan.

flautista
fuente
0

Grandes respuestas, pero es fácil resolver la ecuación de diodos de Shockley algebraicamente. Solo tenga en cuenta que el "menos 1" en la fórmula es muy irrelevante para las corrientes directas que son un orden de magnitud mayor que Is, que es muy pequeño, digamos, 1E-12 A. Encuentre solo dos puntos en el gráfico con fácil lectura I y V, y conéctelos a la fórmula. Dividir ambas fórmulas elimina Is, por lo que N es fácil de calcular. Luego, completa N en una fórmula para encontrar Is.

Aquí están mis macros de LibreOffice Calc en 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

Si observa las fórmulas, es posible que reconozca simplemente la descripción de una línea recta con pendiente q / NkT pero también de Delta Log (Id) / Delta Vd.

Obtengo un valor algo similar para Is: 5.94E-18 = 5.94 atto-ampere (W5VO encontró 1 aA), pero muy diferente N = 0.19 (W5VO encontró 1.8, typo?), Aún así los datos también se calculan de nuevo en el mismo gráfico :

captura de pantalla de mi LibreOffice Calc

La columna Vd son los voltajes, Id es la corriente del diodo de acuerdo con la fórmula real, Id0 es la corriente con la fórmula simplificada donde el "menos 1" se cambia a "menos cero". Como Id0 es una curva exponencial verdadera, puede tomar el logaritmo en la columna Id0_log. (No puede tomar el registro de una curva que se convierte en cero y negativa como Id) La gráfica es de Id0_Log versus Vd. En esta gráfica, hice la parte más baja punteada, porque allí ya no es la corriente real del diodo, pero muestra el valor de Is en la intersección con el eje Y.

Seguir la curva exponencial a la izquierda te lleva asintotalmente a cero. Pero el "menos 1" resta una cantidad de Is, de modo que la curva de diodo real atraviesa el origen y, con voltajes negativos, muestra una corriente de fuga inversa de la cantidad Is.

Si la curva original del fabricante hubiera estado en un diagrama de registro realmente grande, podríamos simplemente haber usado una regla para extender la línea recta hacia abajo para encontrar fácilmente Is en Vd = 0 y luego calcular N, en lugar de calcular primero N y luego Is con el por encima de las macros. El método de la regla ha sido descrito en "El libro de las especias" por Andrei Vladimirescu (1994).

Roland
fuente