如何用SPICE为LED建模?


36

实际上,在SPICE(Berkeley v.3f5)中使用哪些二极管修改器来模拟LED? 这些对我可用:

#       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二极管模型(D)二极管
的直流特性由参数IS和N决定。其中包括一个欧姆电阻RS。电荷存储效应通过过渡时间TT和非线性耗尽层电容来建模,非线性耗尽层电容由参数CJO,VJ和M确定。饱和电流的温度依赖性由参数EG,能量和XTI定义,饱和电流温度指数。测量这些参数的标称温度为TNOM,默认值为.OPTIONS控制线上指定的全电路温度值。反向击穿通过反向二极管电流的指数增加来建模,并由参数BV和IBV(两者均为正数)确定。

例如,使用以下基本的廉价红色:

我不太在意的高频特性-只是希望能够将其操作规范内匹配它的IV曲线(-10uA / -5V泄漏+100毫安/ + 2.2 “ISH V正向): 在此处输入图片说明

Answers:


47

如您所述,有3个参数决定了二极管的直流响应。它们是饱和电流(IS),发射系数(N)和欧姆电阻(RS)。我能够以相当高的精度拟合曲线,因此我将记录我的模型过程。

二极管的SPICE模型与Schokley二极管方程紧密匹配:

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

其中Vt = kT/q = 26mV在室温下。

  1. 从数据表中提供的图表中获取实际值以进行比较。点越多越好,越准确越好。以下是我根据您提供的数字估算的表格:

    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. 将值插入Excel,然后将y轴更改为对数刻度。您应该得到一个看起来与数据表中原始图相同的图。为图表添加另一列,其中包含根据正向电压以及常数ISN计算的If。我们可以使用此配置迭代找到ISñ

  3. 解决ISÑ。我们正在尝试匹配图的线性部分(1.3 <= Vf <= 1.7)。调整IS将使曲线在y轴上移动。将计算得到的图放大到相同的数量级。下一步是找到发射系数(N)。N会影响振幅和斜率,因此可能需要对IS进行一些调整才能将曲线保持在同一范围内。一旦斜率匹配(直线平行),则修整IS,以使计算出的数据与数据表中的值匹配。我得到了IS = 1e-18,还有N=1.8您列出的二极管。 在此处输入图片说明

  4. 识别RS。这有点棘手。RS负责从1.7V及以上的电流弯曲。考虑将欧姆电阻建模为与二极管串联的电阻。随着通过二极管的电流的增加,欧姆电阻两端的电压降会导致正向二极管电压Vf的增加变慢。在小电流下,这种影响可以忽略不计。

首先要做的是获取RS的概算,以用于更准确的解决方案。您可以通过使用测得的If反向计算Vf来从数据表中的值计算RS的有效值。输入值和计算出的Vf之间的电压差可与正向电流一起使用,以产生电阻。在较高电流下,这将是一个很好的起始值。

要使用RS绘制二极管电流,首先需要给定电阻器-二极管串联组合的电压,计算二极管Vf。Wikipedia列出了一个迭代函数 -如果电阻器的压降很大,则可以轻松收敛。此功能很容易在Excel中设置。对于低于1.8的Vf值,我将输入值进行了硬编码,因为迭代函数未收敛。然后取该Vf值计算理想二极管的If。我用原始的数据表图进行了绘制。

使用反复试验,您应该能够获得与数据表值有相当好的重叠的RS值。剩下的就是将模型放到SPICE中以验证您的工作。

以下是我使用HSPICE验证的二极管模型。对于数据表图,仿真数据几乎是完美的叠加。

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

我使用了这篇文章,它对二极管香料参数有很大帮助。

我清理了电子表格,而tyblu已将其下载到此处。使用后果自负,无法保证的结果等...等等...


2
这是一个了不起的答案。+∞
tyblu

8

首先,我想指出,你可以阅读更多的二极管参数BVIBVCJO从LED数据表称为“反向电流”直接VR和“电容” Ç


除了W5VO的出色答案,我还通过以下方式为自己简化了该过程:

  1. 在OpenOffice上将XY散点图的图表类型用作线(带有Excel的YMMV等),并手动设置了轴的最小值和最大值,例如(X,Y)=(1.4-4.0,0.01-50.0),以防止其从自动调整范围到我的采样数据范围之外。

  2. 采样点的前三列后Vf_sampledIf_sampled以及所述If_estimate使用Schokley二极管方程,我添加了一个第四一项所述的用于计算的Vf_estimate。请记住,Rs串联电阻(请参见底部的图像),而If_estimate实际上为我们提供了要在此处使用的电流,因此可以简单地将列单元格计算为:
    Vf_estimate = Vf_sampled +(If_estimate * Rs)

  3. 现在,我可以添加第三条曲线,其中使用新的第四列(Vf_estimate作为X坐标,并使用第三列(If_estimate)作为Y坐标,现在我可以轻松地将其与第一条曲线匹配(采样的数据)从数据表上的图表)。请注意,我不想简单地替换第二条曲线,因为直线对我的估计很有帮助。

  4. 我确定我在这里会重复W5VO,但这丝毫没有提醒我们常数IsRsN在曲线形状方面的作用(在我们的log-lin标度中):

    • 仅影响曲线的位置(上/向左或向下/右)。
    • N会影响曲线的斜率以及位置(因为它是线性系数,并且曲线始终通过原点(始终在比例尺之外))。
    • Rs定义新的第三条曲线的曲率(向右渐进扫描)(因为它是另一个方向上的线性项)。
  5. 我发现可能有用的东西:

    • 您可能会发现,第二条曲线(直线)需要比从采样数据中看到的稍微更陡峭且向左/向右倾斜,因为Rs引起的曲率始于原点。
    • 通过放大到数据表(假定为PDF),使用屏幕截图并在您喜欢的绘图程序中将其打开,可以获得相当准确的采样。然后,您可以使用选择或直线工具来测量间隔线之间的距离(以像素为单位)以及该点到较低值间隔线的距离。对于线性轴,该分数转换为简单的数据值。
    • XY散点图允许您使用任意数据点。与等距采样相比,您可以减少采样数量。您可以选择仅在最容易且严格需要的地方采样数据。例如,在半对数刻度上,您可以在对数刻度的间隔线上进行采样。如果需要,估计曲线仍可以有更多点(行)。(至少OpenOffice图表似乎忽略了没有相应Y坐标的点。)
      请注意,X值(Vf_sampled)仍需要按升序(或降序)排列。否则,线条会变得一团糟。
    • 请注意您要估计/绘制/尝试查找的单位的比例(例如,毫安),请记住,SPICE通常使用裸单位(安培)。
    • 请注意,W5VO的Vt毫伏为单位。如果您使用伏特,请使用值0.026
    • 检查您的SPICE模拟器接受哪些度量标准前缀(m,p,u等)。使用指数符号(例如12E-34)可能更简单。
    • 编辑图表的单元格范围似乎总是会重置(新的)第三条曲线,因此我不得不将数据范围重新添加到X坐标,并将第三列更改为其Y范围。在同一图表上添加更多点或对多个LED建模时,请考虑到这一点-一次进行所有更改。(更改单元格中的数据显然不会触发重置。)
    • 图表上的曲线插值可能会由于过冲或下冲而使您误入歧途,而没有向您显示原因,即数据的实际位置在哪里。
    • 直线段也可能会误导,因为相应的点最终位于不同的位置,并且线性插值不跟踪曲线的对数性质。(采样曲线和新的第三条曲线的所有数据点都应位于另一条直线段的外部(上/左)。)

AFAIK,我们的LED模型本质上是一个串联的Rs电阻和Is / N估算二极管:(-R->-D-)

原理图

模拟此电路 –使用CircuitLab创建的原理图


6

我整理了一个Python程序,该程序将根据数据手册IV特性对二极管的正向偏置特性进行建模。

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

随时尝试一下并发表评论。


5
虽然您的代码看起来非常有用,但不建议仅使用链接的答案,因为如果链接消失,将来的答案将变得毫无用处。也许您可以在答案中包括有关算法/代码的更多详细信息,以确保算法/代码在发生这种情况时仍然有用。
PeterJ

实际上,这非常有用。使用WebPlotDigitizer使此操作非常容易。
andy.holmes

2

这是我会用的

#       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

对于您的VJ = 1.8典型值,BV = 5。那将带您到那里。


1
实际上,VJ用于根据施加的电压计算结电容。修改此参数和反向击穿电压不会真正设置总的直流特性。最终结果应与默认二极管模型几乎相同。
W5VO

1

如果有人想知道他/她的单页数据表为什么没有If / Vf曲线,那可能是因为他/她没有完整的数据表。我知道例如Optosupply仅在其网站上发布第一页摘要,但是他们会根据要求向您发送完整的规格(包括所有的If / Vf,相对强度和光谱曲线等)。

您还可以通过使用来自具有相同化学成分(相同制造商)的相同颜色的另一个LED的数据表获得所有值的可用数字。只需检查基本特性(例如电流,电压和波长)是否匹配即可。


0

很好的答案,但是很容易用代数方式求解肖克利二极管方程。只需注意,公式中的“负1”对于正向电流大于Is的量级是无关紧要的,Is非常小,例如1E-12A。在图中仅找到两个点,易于阅读I和V值,并将其插入公式中。将两个公式相除可消除Is,因此N易于计算。然后在公式中填写N以找到Is。

这是Basic中我的LibreOffice Calc宏:

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

如果看一下公式,您可能会简单地识别出斜率为q / NkT的直线的描述,但也可以识别出对数Log(Id)/增量Vd。

我得到的Is值有些相似:5.94E-18 = 5.94 atto-A(安培(W5VO发现1 aAA)),但N = 0.19(W5VO发现1.8,错别字?)相差很大,但是数据仍然可以返回到同一张图:

我的LibreOffice Calc的屏幕截图

Vd列是电压,Id是根据实数公式的二极管电流,Id0是简化公式中的电流,其中“减1”更改为“减零”。由于Id0是真实的指数曲线,因此您可以在Id0_log列中使用对数。(您不能像Id那样获取变为零且为负的曲线的对数)。该图来自Id0_Log与Vd。在该图中,我将最低的部分标为虚线,因为它不再是实际的二极管电流,而是在与Y轴的交点处显示了Is的值。

遵循左侧的指数曲线,使您渐近地为零。但是“负1”减去Is的量,因此实际二极管曲线会通过原点,并在负电压下显示出Is的反向泄漏电流。

如果原始制造商的曲线是在一个非常大的对数图上,我们可以简单地使用标尺向下延伸直线以轻松找到Vd = 0处的Is,然后计算N,而不是先计算N,再使用Is上面的宏。标尺方法已在Andrei Vladimirescu(1994)的“ The Spice Book”中进行了描述。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.