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) 다이오드
의 dc 특성은 파라미터 IS 및 N에 의해 ​​결정됩니다. 저항 저항 RS는 포함됩니다. 전하 저장 효과는 전송 시간, TT 및 CJO, VJ 및 M 파라미터에 의해 결정되는 비선형 공 핍층 커패시턴스로 모델링됩니다. 포화 전류의 온도 의존성은 파라미터 EG, 에너지 및 XTI, 포화 전류 온도 지수. 이러한 매개 변수가 측정 된 공칭 온도는 TNOM이며, 기본값은 .OPTIONS 제어 라인에 지정된 회로 전체 값입니다. 역 항복은 역 다이오드 전류의 지수 증가에 의해 모델링되며 매개 변수 BV 및 IBV (둘 다 양수)에 의해 결정됩니다.

예를 들어,이 기본적이고 저렴한 빨간색을 사용하면

고주파 특성에 대해서는별로 신경 쓰지 않습니다. 작동 사양 내에서 IV 커브와 일치시킬 수 있기를 원합니다 (-10uA / -5V 누설에서 + 100mA / + 2.2 'ish V 앞으로) : 여기에 이미지 설명을 입력하십시오

답변:


47

언급했듯이 다이오드의 DC 응답을 나타내는 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 에서 계산 된 경우 를 사용하여 그래프에 다른 열을 추가하십시오 . 이 구성을 사용하여 ISN 을 반복적으로 찾을 수 있습니다 .

  3. ISN구합니다 . 그래프의 선형 부분 (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에서 쉽게 설정할 수있었습니다. 들어 값 Vf 반복 기능이 수렴하지 않았기 때문에 1.8 이하 값, I는 입력 값을 하드 코딩. 그런 다음이 Vf 값을 사용하여 이상적인 다이오드의 If를 계산하십시오. 나는 이것을 원본 데이터 시트 그래프로 플로팅했습니다.

시행 착오를 사용 하면 데이터 시트 값과 상당히 겹치는 RS 값 을 얻을 수 있습니다. 남은 것은 SPICE에서 모델을 함께 던져 작업을 확인하는 것입니다.

아래는 HSPICE를 사용하여 확인한 다이오드 모델입니다. 시뮬레이션 데이터는 데이터 시트 그래프에 거의 완벽한 오버레이입니다.

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

이 기사를 사용 하여 다이오드 스파이스 매개 변수에 많은 도움이되었습니다.

스프레드 시트를 정리했으며 tyblu 에서 여기 를 다운로드 할 수있게했습니다 . 귀하의 책임하에 사용하거나 보장되지 않는 결과 등 ...


2
이것은 멋진 답변입니다. + ∞
tyblu

8

먼저, LED 데이터 시트 에서 Vr의 "역전 류" Ir 및 "용량" C 로 직접 다이오드 파라미터 BV , IbvCjo를 추가로 읽을 수 있다고 지적합니다 .


W5VO의 큰 대답에 덧붙여, 나는 다음과 같은 방식으로 과정을 다소 간소화했습니다.

  1. XY 산포도 의 차트 유형 을 OpenOffice 에서만 선 으로 사용하고 (YMV with Excel 등) 수동으로 축의 최소값과 최대 값을 수동으로 설정했습니다 (예 : (X, Y) = (1.4-4.0, 0.01-50.0)). 자동 범위 지정에서 샘플링 된 데이터 범위를 벗어나는 것을 방지합니다.

  2. 처음 세 표본 지점의 열 개수 Vf_sampled는 , If_sampled 뿐만 아니라 If_estimate Schokley 다이오드 방정식을 사용하여, I는 부가 계산 하나 Vf_estimate를 . 것을 기억 루피는 A는 직렬 저항 (맨 아래 이미지 참조)와 If_estimate이 : 실제로 하나는 단순히 열 세포를 계산할 수 있도록, 여기에 사용하는 우리에게 전류를 제공
    Vf_estimate = Vf_sampled + (If_estimate * 루피가) .

  3. 이제 새로운 네 번째 열 ( Vf_estimate ) 을 X 좌표 로 사용하고 세 번째 열 ( If_estimate )을 Y 좌표로 사용하고 세 번째 곡선 (샘플링 된 데이터)과 쉽게 일치시킬 수있는 세 번째 곡선을 추가 할 수 있습니다. 데이터 시트의 그래프에서). 직선이 내 추정에 상당히 도움이 되었기 때문에 두 번째 곡선을 단순히 바꾸고 싶지 않았습니다.

  4. 나는 여기서 W5VO를 다소 반복하고 있다고 확신하지만 곡선 모양 ( log-lin scale) 에서 상수 Is , RsN 의 역할을 상기시켜줍니다 .

    • 전용 (위 / 아래 / 왼쪽 또는 오른쪽) 곡선의 위치에 영향을 미칩니다.
    • 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

데이터 시트 IV 특성을 기반으로 다이오드의 순방향 바이어스 특성을 모델링하는 Python 프로그램을 구성했습니다.

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는 적용된 전압을 기반으로 접합 커패시턴스를 계산하는 데 사용됩니다. 이것을 수정하고 역 항복 전압이 실제로 총 DC 특성을 설정하지는 않습니다. 최종 결과는 기본 다이오드 모델과 거의 동일해야합니다.
W5VO

1

단일 페이지 데이터 시트에 If / Vf 곡선이없는 이유가 궁금한 사람은 전체 데이터 시트가 없기 때문일 수 있습니다. 예를 들어 Optosupply는 웹 사이트에 첫 페이지 요약 만 게시하지만 요청에 따라 전체 사양 (모든 If / Vf, 상대 강도 및 스펙트럼 곡선 등)을 보냅니다.

또한 동일한 화학 물질을 사용하여 동일한 색상의 다른 LED에서 데이터 시트를 사용하여 모든 값에 대해 유용한 수치를 얻을 수도 있습니다 (동일한 제조업체에서). 기본 특성 (전류, 전압 및 파장 등)이 일치하는지 확인하십시오.


0

훌륭한 답변이지만 Shockley 다이오드 방정식을 대수적으로 쉽게 풀 수 있습니다. 공식에서 "빼기 1"은 1E-12 A와 같이 Is보다 작은 크기의 순방향 전류에 매우 관련이 없다는 점에 유의하십시오. 읽기 쉬운 그래프에서 두 점만 찾으십시오. I 및 V 값을 입력하고이를 공식에 연결하십시오. 두 공식을 나누면 Is가 제거되므로 N을 쉽게 계산할 수 있습니다. 그런 다음 수식에 N을 입력하여 Is를 찾으십시오.

다음은 기본 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에 대해 다소 비슷한 값을 얻습니다. :

내 LibreOffice Calc의 스크린 샷

열 Vd는 전압이고, Id는 실제 공식에 따른 다이오드 전류이고, Id0은 "마이너스 1"이 "마이너스 제로"로 변경되는 단순화 된 공식을 갖는 전류이다. Id0은 실제 지수 곡선이므로 Id0_log 열의 로그를 사용할 수 있습니다. (ID와 같이 0이되고 음이되는 곡선의 로그를 취할 수 없습니다.) 플롯은 Id0_Log 대 Vd의 것입니다. 이 그림에서는 더 이상 실제 다이오드 전류가 아니기 때문에 가장 낮은 부분을 점선으로 표시했지만 Y 축과의 교차점에 Is 값을 표시합니다.

왼쪽의 지수 곡선을 따라 가면 점근 적으로 0이됩니다. 그러나 "-1"은 Is의 양을 빼서 실제 다이오드 곡선이 원점을 통과하고 음의 전압으로 Is의 역 누설 전류를 보여줍니다.

원래 제조업체 곡선이 실제로 큰 로그 플롯에 있었을 경우 눈금자를 사용하여 직선을 아래쪽으로 확장하여 Is at Vd = 0을 찾은 다음 N을 계산하는 대신 N을 계산하고 위의 매크로. 통치자 방법은 Andrei Vladimirescu (1994)의 "The Spice Book"에 설명되어있다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.