¿Cómo modelo un LED con SPICE SIN acceso a la hoja de datos del fabricante?

Buscando crear un modelo de un LED (RL5-WW15030 de Superbrightleds.com):

https://www.superbrightleds.com/moreinfo/component-leds/5mm-warm-white-led-30-degree-viewing-angle-15000-mcd/263/1190/#/tab/Specifications

Hay una imagen de diagrama de voltaje/corriente en la página, pero es muy imprecisa y no muestra el voltaje/corriente en la corriente directa máxima del LED.

Aparentemente, el distribuidor no puede obtener información más precisa o una hoja de datos del fabricante.

Ya he mirado la respuesta a la siguiente publicación:

¿Cómo modelo un LED con SPICE?

Muchas gracias por las sugerencias.

Tomás

Respuestas (1)

Esto podría ser de su interés . Demuestra cómo encontrar empíricamente los 3 parámetros de diodo más útiles: corriente de saturación (IS), resistencia en serie (RS) y el coeficiente de emisión (N).

Hay un poco de trasfondo matemático al principio, pero en su mayor parte puedes omitir esto (a menos que estés interesado en las matemáticas).

Al final, incluyo algo de código de Python que se puede usar para calcular estos tres parámetros, ya sea a partir de un gráfico de hoja de datos IV o de mediciones experimentales.

También necesitará saber la temperatura de referencia (a qué temperatura se encuentran sus mediciones o para qué temperatura es el gráfico IV), así como aproximadamente a qué temperatura pretende hacer funcionar el dispositivo (generalmente es una buena opción predeterminada, aunque 298Kmuchos las hojas de datos especifican en 293K).

Para obtener fácilmente datos precisos de un gráfico IV, intente usar un digitalizador de gráficos .

Para casi todo lo demás, puede usar los valores "estándar" a menos que tenga algunos requisitos específicos (en particular, efectos dependientes del tiempo y dependientes de la temperatura más precisos).

Para referencia futura, aquí hay una versión simplificada (es decir, comentarios eliminados) del código:

from numpy import *
from scipy.optimize import leastsq

def diode_res(args, T, V, I):
    n, Rs, Is = args
    kb = 8.617332478e-5
    return I*Rs+log(I/Is+1)*n*kb*T-V

def jac_diode(args, T, V, I):
    n,Rs,Is = args

    kb = 8.617332478e-5
    res = zeros([3,len(V)])
    res[0,:] = log(I/Is+1)*kb*T
    res[1,:] = I
    res[2,:] = -I/(I*Is+Is**2)*n*kb*T
    return res

def diode_coeffs(V, I, T):
    return leastsq(diode_res, array([1,0,1e-14]),args=(T,V,I), Dfun=jac_diode, col_deriv=True,xtol=1e-15)[0]

Funciona realizando un ajuste de mínimos cuadrados no lineal. Aquí hay un ejemplo de uso (tomé datos del gráfico IV en su enlace):

I = array([0.00139106,  0.00186955,  0.00258687,  0.00210901,  0.00324447, 0.00282632,  0.00372254,  0.0063513 ,  0.00724731,  0.00676945, 0.00820303,  0.00772517,  0.0086809 ,  0.01178709,  0.01278269, 0.01226495,  0.0134595 ,  0.0168444 ,  0.01632666,  0.01799907, 0.01752121,  0.01847693,  0.02134388,  0.02086602,  0.02235931])])
V = array([ 3.04213083,  3.10179528,  3.16154354,  3.14650173,  3.22127085, 3.20624999,  3.25118688,  3.37110238,  3.40116506,  3.38612324, 3.43124868,  3.41620687,  3.44629049,  3.55149938,  3.58655504, 3.56654119,  3.59670861,  3.70697334,  3.68695949,  3.73216872, 3.71712691,  3.74721053,  3.82258719,  3.80754538,  3.85269177])

# assume data is at 20C
n, Rs, Is = diode_coeffs(V, I, 273+20)

Resultados:

  • n = 5,5287
  • R$ = 18.983 Ω
  • es = 0,506623 pA

Aquí hay una gráfica con los parámetros de ajuste:

ingrese la descripción de la imagen aquí

Aquí está la curva IV resultante de LtSpice, usando solo estos tres parámetros y todo lo demás, los valores de diodo predeterminados. Como puede ver, hay un ligero desajuste, pero en general esto suele estar dentro del ruido de la parte real (es decir, no debe confiar en obtener exactamente 30 mA a 4 V, 27 mA no es irrazonable).

ingrese la descripción de la imagen aquí

¡Esta respuesta fue genial!