Diode model; piecewise linear, piecewise linear zener, or exponential diode
Semiconductor Devices
The Diode block represents one of the following types of diodes:
The piecewise linear diode model is the same model found in the Simscape™ Diode block, with the addition of a fixed junction capacitance. If the diode forward voltage exceeds the value specified in the Forward voltage parameter, the diode behaves as a linear resistor with the resistance specified in the On resistance parameter. Otherwise, the diode behaves as a linear resistor with the small conductance specified in the Off conductance parameter. Zero voltage across the diode results in zero current flowing.
The piecewise linear zener diode model behaves like the piecewise linear diode model for bias voltages above –Vz, where Vz is the Reverse breakdown voltage Vz parameter value. For voltages less than –Vz, the diode behaves as a linear resistor with the low Zener resistance specified in the Zener resistance Rz parameter. This diode model also includes a fixed junction capacitance.
Note: The Reverse breakdown voltage Vz parameter is defined as a positive number. The pn voltage at breakdown is –Vz, which is negative. 
The exponential diode model provides the following relationship between the diode current I and the diode voltage V:
$$\begin{array}{l}I=IS\cdot \left({e}^{\frac{qV}{Nk{T}_{m1}}}1\right)\text{}\text{}\text{}V>BV\\ I=IS\cdot \left({e}^{\frac{q(V+Vz)}{k{T}_{m1}}}{e}^{\frac{qV}{Nk{T}_{m1}}}\right)\text{}\text{}V\le BV\end{array}$$
where:
q is the elementary charge on an electron (1.602176e–19 Coulombs).
k is the Boltzmann constant (1.3806503e–23 J/K).
BV is the Reverse breakdown voltage BV parameter value.
N is the emission coefficient.
IS is the saturation current.
T_{m1} is the temperature at which the diode parameters are specified, as defined by the Measurement temperature parameter value.
When (qV / NkT_{m1}) > 80, the block replaces $${e}^{\frac{qV}{Nk{T}_{m1}}}$$ with (qV / NkT_{m1 }– 79)e^{80}, which matches the gradient of the diode current at (qV / NkT_{m1}) = 80 and extrapolates linearly. When (qV / NkT_{m1}) < –79, the block replaces $${e}^{\frac{qV}{Nk{T}_{m1}}}$$ with (qV / NkT_{m1 }+ 80)e^{–79}, which also matches the gradient and extrapolates linearly. Typical electrical circuits do not reach these extreme values. The block provides this linear extrapolation to help convergence when solving for the constraints during simulation.
When you select Use parameters IS and N
for
the Parameterization parameter, you specify the
diode in terms of the Saturation current IS and Emission
coefficient N parameters. When you select Use
IV curve data points
for the Parameterization parameter,
you specify two voltage and current measurement points on the diode
IV curve and the block derives the IS and N values.
The block then calculates IS and N as
follows:
$$\text{N}=(({V}_{1}{V}_{2})/{V}_{t})/(\mathrm{log}({I}_{1})\mathrm{log}({I}_{2}))$$
$$\text{IS}=\left({I}_{1}/(\mathrm{exp}({V}_{1}/(\text{N}{V}_{t}))1)+{I}_{2}/(\mathrm{exp}({V}_{2}/(\text{N}{V}_{t}))1)\right)/2$$
where:
V_{t} = kT_{m1} / q.
V_{1} and V_{2} are the values in the Voltages [V1 V2] vector.
I_{1} and I_{2} are the values in the Currents [I1 I2] vector.
When you select Use an IV data point and IS
for
the Parameterization parameter, then the block
calculates N as follows:
$$N={V}_{1}/\left({V}_{t}\mathrm{log}\left(\frac{{I}_{1}}{IS}+1\right)\right)$$
When you select Use an IV data point and N
for
the Parameterization parameter, then the block
calculates IS as follows:
$$IS={I}_{1}/\left(\mathrm{exp}\left({V}_{1}/\left(N{V}_{t}\right)1\right)\right)$$
The exponential diode model provides the option to include a junction capacitance:
When you select Include fixed or zero
junction capacitance
for the Junction capacitance parameter,
the capacitance is fixed.
When you select Use parameters CJO, VJ,
M & FC
for the Junction capacitance parameter,
the block uses the coefficients CJO, VJ, M,
and FC to calculate a junction capacitance that
depends on the junction voltage.
When you select Use CV curve data points
for
the Junction capacitance parameter, the block
uses three capacitance values on the CV capacitance curve to estimate CJO, VJ,
and M and uses these values with the specified
value of FC to calculate a junction capacitance
that depends on the junction voltage. The block calculates CJO, VJ,
and M as follows:
$$CJ0={C}_{1}{(({V}_{R2}{V}_{R1})/({V}_{R2}{V}_{R1}{({C}_{2}/{C}_{1})}^{1/M}))}^{M}$$
$$VJ=({V}_{R2}{({C}_{1}/{C}_{2})}^{1/M}+{V}_{R1})/(1{({C}_{1}/{C}_{2})}^{1/M})$$
$$M=\mathrm{log}({C}_{3}/{C}_{2})/\mathrm{log}({V}_{R2}/{V}_{R3})$$
where:
V_{R1}, V_{R2}, and V_{R3} are the values in the Reverse bias voltages [VR1 VR2 VR3] vector.
C_{1}, C_{2}, and C_{3} are the values in the Corresponding capacitances [C1 C2 C3] vector.
It is not possible to estimate FC reliably from tabulated data, so you must specify its value using the Capacitance coefficient FC parameter. In the absence of suitable data for this parameter, use a typical value of 0.5.
The reverse bias voltages (defined as positive values) should satisfy V_{R3} > V_{R2} > V_{R1}. This means that the capacitances should satisfy C_{1} > C_{2} > C_{3} as reverse bias widens the depletion region and hence reduces capacitance. Violating these inequalities results in an error. Voltages V_{R2} and V_{R3} should be well away from the Junction potential VJ. Voltage V_{R1} should be less than the Junction potential VJ, with a typical value for V_{R1} being 0.1 V.
The voltagedependent junction is defined in terms of the capacitor charge storage Q_{j} as:
For V < FC·VJ:
$${Q}_{j}=CJ0\cdot (VJ/(M1))\cdot ({(1V/VJ)}^{1M}1)$$
For V ≥ FC·VJ:
$${Q}_{j}=CJ0\cdot {F}_{1}+(CJ0/{F}_{2})\cdot ({F}_{3}\cdot (VFC\cdot VJ)+0.5(M/VJ)\cdot ({V}^{2}{(FC\cdot VJ)}^{2}))$$
where:
$${F}_{1}=(VJ/(1M))\cdot (1{(1FC)}^{1M}))$$
$${F}_{2}={(1FC)}^{1+M}))$$
$${F}_{3}=1FC\cdot (1+M)$$
These equations are the same as used in [2], except that the temperature dependence of VJ and FC is not modeled. This model does not include the diffusion capacitance term that affects performance for high frequency switching applications.
For applications such as commutation diodes it can be important to model diode charge dynamics. When a forwardbiased diode has a reverse voltage applied across it, it takes time for the charge to dissipate and hence for the diode to turn off. The time taken for the diode to turn off is captured primarily by the transit time parameter. Once the diode is off, any remaining charge then dissipates, the rate at which this happens being determined by the carrier lifetime.
The Diode block uses the model of Lauritzen and Ma [3] to capture these effects. The three defining equations are:
$$I=\frac{{q}_{E}{q}_{M}}{TT}$$
$$\frac{d{q}_{M}}{dt}+\frac{{q}_{M}}{\tau}\frac{{q}_{E}{q}_{M}}{TT}=0$$
$${q}_{E}=\left(\tau +TT\right)IS\left(\mathrm{exp}\left(\frac{V}{N\cdot {V}_{t}}\right)1\right)$$
where:
I is the diode current.
V is the diode voltage.
N is the emission coefficient.
q_{E} is the junction charge.
q_{M} is the total stored charge.
TT is the transit time.
τ is the carrier lifetime.
Datasheets do not typically provide values for TT and τ. Therefore the Diode block provides an alternative parameterization in terms of Peak reverse current, Irrm and Reverse recovery time, trr. Equivalent values for TT and τ are calculated from these values, plus information on the initial forward current and rate of change of current used in the test circuit when measuring I_{rrm} and t_{rr}. The test circuit can consist of a series voltage source, resistor, inductor and the diode. The polarity of the voltage source is switched so as to move the diode from forward conduction to reverse biased. The following figure shows an idealized diode current response.
The value of the series resistor and applied voltage value determine the initial current I_{F}. The value of the series inductance and the applied reverse voltage value determine the current gradient, a.
The precise values of peak reverse current and reverse recovery time depend on the test circuit used. Also, junction capacitance has some effect on the current recovery characteristic. However, a junction capacitor value that dominates the response is physically unrealistic.
Only the exponential diode supports modeling of the diode charge
dynamics. If you select the Exponential
for
the Diode model parameter, then the Capacitance tab
contains an additional parameter called Charge dynamics.
Select between the three options:
Do not model charge dynamics
Use peak reverse current and reverse
recovery time
Use transit time and carrier lifetime
The default behavior for the Diode is that dependence on temperature is not modeled, and the device is simulated at the temperature for which you provide block parameters. The Exponential diode model contains several options for modeling the dependence of the diode currentvoltage relationship on the temperature during simulation. Temperature dependence of the junction capacitance is not modeled, this being a much smaller effect.
When including temperature dependence, the diode defining equation remains the same. The measurement temperature value, T_{m1}, is replaced with the simulation temperature, T_{s}. The saturation current, IS, becomes a function of temperature according to the following equation:
$$I{S}_{Ts}=I{S}_{Tm1}\cdot {({T}_{s}/{T}_{m1})}^{XTI/N}\cdot \mathrm{exp}\left(\frac{EG}{Nk{T}_{s}}(1{T}_{s}/{T}_{m1})\right)$$
where:
T_{m1} is the temperature at which the diode parameters are specified, as defined by the Measurement temperature parameter value.
T_{s} is the simulation temperature.
IS_{Tm1} is the saturation current at measurement temperature.
IS_{Ts} is the saturation current at simulation temperature. This is the saturation current value used in the standard diode equation when temperature dependence is modeled.
EG is the energy gap for the semiconductor type measured in Joules. The value for silicon is usually taken to be 1.11 eV, where 1 eV is 1.602e19 Joules.
XTI is the saturation current temperature exponent. This is usually set to 3.0 for pnjunction diodes, and 2.0 for Schottky barrier diodes.
N is the emission coefficient.
k is the Boltzmann constant (1.3806503e–23 J/K).
Appropriate values for XTI and EG depend on the type of diode and the semiconductor material used. Default values for particular material types and diode types capture approximate behavior with temperature. The block provides default values for common types of diode.
In practice, the values of XTI and EG need tuning to model the exact behavior of a particular diode. Some manufacturers quote these tuned values in a SPICE Netlist, and you can read off the appropriate values. Otherwise you can determine improved estimates for EG by using a datasheetdefined currentvoltage data point at a higher temperature. The block provides a parameterization option for this. It also gives the option of specifying the saturation current at a higher temperature IS_{Tm2} directly.
You can also tune the values of XTI and EG yourself, to match lab data for your particular device. You can use Simulink^{®} Design Optimization™ software to help tune the values for XTI and EG.
Caution Device temperature behavior is also dependent on the emission coefficient. An inappropriate value for the emission coefficient can give incorrect temperature dependence, because saturation current is a function of the ratio of EG to N. 
If defining a finite reverse breakdown voltage BV, then the value of the reverse breakdown voltage is modulated by the reverse breakdown temperature coefficient TCV (specified using the Reverse breakdown voltage temperature coefficient, dBV/dT parameter):
BV_{Ts} = BV_{Tm1} – TCV· (T_{s} – T_{m1})
The block has an optional thermal port, hidden by default. To expose the thermal port, rightclick the block in your model, and then from the context menu select Simscape > Block choices > Show thermal port. This action displays the thermal port H on the block icon, and adds the Thermal Port tab to the block dialog box.
Use the thermal port to simulate the effects of generated heat and device temperature. For more information on using thermal ports and on the Thermal Port tab parameters, see Simulating Thermal Effects in Semiconductors.
Use the Variables section of the block interface to set the priority and initial target values for the block variables prior to simulation. For more information, see Set Priority and Initial Target for Block Variables (Simscape).
The Exponential diode model has the following limitations:
When you select Use IV curve data points
for
the Parameterization parameter, choose a pair
of voltages near the diode turnon voltage. Typically, this is in
the range from 0.05 to 1 Volt. Using values outside of this region
may lead to numerical issues and poor estimates for IS and N.
The block does not account for temperaturedependent effects on the junction capacitance.
You may need to use nonzero ohmic resistance and junction capacitance values to prevent numerical simulation issues, but the simulation may run faster with these values set to zero.
Select one of the following diode models:
Piecewise Linear (Foundation Library)
—
Use a piecewise linear model for the diode, as described in Piecewise Linear. This is the default method.
Piecewise Linear Zener
—
Use a piecewise linear model with reverse breakdown characteristics
for the diode, as described in Piecewise Linear Zener.
Exponential
— Use
a standard exponential model for the diode, as described in Exponential.
Minimum voltage that needs to be applied for the diode to become
forwardbiased. This parameter is only visible when you select Piecewise
Linear (Foundation Library)
or Piecewise
Linear Zener
for the Diode model parameter.
The default value is 0.6
V.
The resistance of the diode when it is forward biased. This
parameter is only visible when you select Piecewise Linear
(Foundation Library)
or Piecewise Linear
Zener
for the Diode model parameter.
The default value is 0.3
Ω.
The conductance of the diode when it is reverse biased. This
parameter is only visible when you select Piecewise Linear
(Foundation Library)
or Piecewise Linear
Zener
for the Diode model parameter.
The default value is 1e08
1/Ω.
Select one of the following methods for model parameterization:
Use two IV curve data points
—
Specify measured data at two points on the diode IV curve. This is
the default method.
Use parameters IS and N
—
Specify saturation current and emission coefficient.
Use an IV data point and IS
—
Specify measured data at a single point on the diode IV curve in
combination with the saturation current.
Use an IV data point and N
—
Specify measured data at a single point on the diode IV curve in
combination with the emission coefficient.
This parameter is only visible when you select Exponential
for
the Diode model parameter.
A vector of the current values at the two points on the diode
IV curve that the block uses to calculate IS and N.
This parameter is only visible when you select Exponential
for
the Diode model parameter and Use
two IV curve data points
for the Parameterization parameter.
The default value is [ 0.0137 0.545 ]
A.
A vector of the voltage values at the two points on the diode
IV curve that the block uses to calculate IS and N.
This parameter is only visible when you select Exponential
for
the Diode model parameter and Use
two IV curve data points
for the Parameterization parameter.
The default value is [ 0.6 0.7 ]
V.
A current value at the point on the diode IV curve that the
block uses for calculations. This parameter is only visible when you
select Exponential
for the Diode
model parameter and either Use an IV data
point and IS
or Use an IV data point and
N
for the Parameterization parameter.
Depending on the Parameterization value, the
block uses this parameter to calculate either N or IS.
The default value is 0.07
A.
A voltage value at the point on the diode IV curve that the
block uses for calculations. This parameter is only visible when you
select Exponential
for the Diode
model parameter and either Use an IV data
point and IS
or Use an IV data point and
N
for the Parameterization parameter.
Depending on the Parameterization value, the
block uses this parameter to calculate either N or IS.
The default value is 0.7
V.
The magnitude of the current that the ideal diode equation approaches
asymptotically for very large reverse bias levels. This parameter
is only visible when you select Exponential
for
the Diode model parameter and either Use
parameters IS and N
or Use an IV data
point and IS
for the Parameterization parameter.
The default value is 1e14
A.
The diode emission coefficient or ideality factor. This parameter
is only visible when you select Exponential
for
the Diode model parameter and either Use
parameters IS and N
or Use an IV data
point and N
for the Parameterization parameter.
The default value is 1
.
The series diode connection resistance. This parameter is only
visible when you select Exponential
for
the Diode model parameter. The default value
is 0.01
Ω.
The temperature T_{m1} at
which IS or the IV curve was measured. This parameter is only visible
when you select Exponential
for the Diode
model parameter. The default value is 25
°C.
This section is not applicable for Piecewise Linear diode models.
The resistance of the diode when the voltage is less than the Reverse
breakdown voltage Vz value. This parameter is only visible
when you select Piecewise Linear Zener
for
the Diode model parameter. The default value
is 0.3
Ω.
The reverse voltage below which the diode resistance changes
to the Zener resistance Rz value. This parameter
is only visible when you select Piecewise Linear Zener
for
the Diode model parameter. The default value
is 50
V.
The reverse voltage below which to model the rapid increase
in conductance that occurs at diode breakdown. This parameter is only
visible when you select Exponential
for
the Diode model parameter. The default value
is Inf
V, which effectively omits reverse breakdown
from the model.
When you select Piecewise Linear (Foundation
Library)
or Piecewise Linear Zener
for
the Diode model parameter, the Junction
capacitance parameter is the fixed junction capacitance
value. The default value is 5
pF.
When you select Exponential
for
the Diode model parameter, the Junction
capacitance parameter lets you select one of the following
options for modeling the junction capacitance:
Include fixed or zero junction capacitance
—
Model the junction capacitance as a fixed value.
Use CV curve data points
—
Specify measured data at three points on the diode CV curve.
Use parameters CJ0, VJ, M & FC
—
Specify zerobias junction capacitance, junction potential, grading
coefficient, and forwardbias depletion capacitance coefficient.
The value of the capacitance placed in parallel with the exponential
diode term. This parameter is only visible when you select Exponential
for
the Diode model parameter and Include
fixed or zero junction capacitance
or Use
parameters CJ0, VJ, M & FC
for the Junction
capacitance parameter. The default value is 5
pF.
A vector of the reverse bias voltage values at the three points
on the diode CV curve that the block uses to calculate CJ0, VJ,
and M. This parameter is only visible when you
select Exponential
for the Diode
model parameter and Use CV curve data points
for
the Junction capacitance parameter. The default
value is [ 0.1 10 100 ]
V.
A vector of the capacitance values at the three points on the
diode CV curve that the block uses to calculate CJ0, VJ,
and M. This parameter is only visible when you
select Exponential
for the Diode
model parameter and Use CV curve data points
for
the Junction capacitance parameter. The default
value is [ 3.5 1 0.4 ]
pF.
The junction potential. This parameter is only visible when
you select Exponential
for the Diode
model parameter and Use parameters CJ0, VJ,
M & FC
for the Junction capacitance parameter.
The default value is 1
V.
The grading coefficient. This parameter is only visible when
you select Exponential
for the Diode
model parameter and Use parameters CJ0, VJ,
M & FC
for the Junction capacitance parameter.
The default value is 0.5
.
Fitting coefficient that quantifies the decrease of the depletion
capacitance with applied voltage. This parameter is only visible when
you select Exponential
for the Diode
model parameter and Use CV curve data points
or Use
parameters CJ0, VJ, M & FC
for the Junction
capacitance parameter. The default value is 0.5
.
Select one of the following methods for charge dynamics parameterization:
Do not model charge dynamics
—
Do not include charge dynamics modeling. This is the default method.
Use peak reverse current and reverse
recovery time
— Model charge dynamics by providing
values for peak reverse current, I_{rrm},
and reverse recovery time, t_{rr},
plus information on the initial forward current and rate of change
of current used in the test circuit when measuring I_{rrm} and t_{rr}.
Use this option if the manufacturer datasheet does not provide values
for transit time, TT, and carrier lifetime, τ.
Use transit time and carrier lifetime
—
Model charge dynamics by providing values for transit time, TT,
and carrier lifetime, τ.
The peak reverse current measured in a test circuit. This parameter
is only visible when you select Exponential
for
the Diode model parameter and Use
peak reverse current and reverse recovery time
for the Charge
model parameter. The default value is 7.15
A.
The initial forward current when measuring peak reverse current.
This parameter is only visible when you select Exponential
for
the Diode model parameter and Use
peak reverse current and reverse recovery time
for the Charge
model parameter. The default value is 4
A.
The rate of change of current when measuring peak reverse current.
This parameter is only visible when you select Exponential
for
the Diode model parameter and Use
peak reverse current and reverse recovery time
for the Charge
model parameter. The default value is 750
A/us.
The time between the point where the current initially goes
to zero when the diode turns off, and the point where the current
falls to less than ten percent of the peak reverse current. This
parameter is only visible when you select Exponential
for
the Diode model parameter and Use
peak reverse current and reverse recovery time
for the Charge
model parameter. The default value is 115
ns.
A measure of how long it takes carriers to cross the diode junction.
This parameter is only visible when you select Exponential
for
the Diode model parameter and Use
transit time and carrier lifetime
for the Charge
model parameter. The default value is 50
ns.
A measure of how long it takes for the carriers to dissipate
once the diode is no longer conducting. This parameter is only visible
when you select Exponential
for the Diode
model parameter and Use transit time and carrier
lifetime
for the Charge model parameter.
The default value is 100
ns.
This section is applicable for Exponential diode models only.
Select one of the following methods for temperature dependence parameterization:
None — Simulate at parameter measurement
temperature
— Temperature dependence is not modeled,
or the model is simulated at the measurement temperature T_{m1} (as
specified by the Measurement temperature parameter
on the Main tab). This is the default method.
Use an IV data point at second measurement
temperature
— If you select this option, you
specify a second measurement temperature T_{m2},
and the current and voltage values at this temperature. The model
uses these values, along with the parameter values at the first measurement
temperature T_{m1}, to calculate
the energy gap value.
Specify saturation current at second
measurement temperature
— If you select this
option, you specify a second measurement temperature T_{m2},
and saturation current value at this temperature. The model uses these
values, along with the parameter values at the first measurement temperature T_{m1},
to calculate the energy gap value.
Specify the energy gap, EG
—
Specify the energy gap value directly.
Specify the diode current I1 value when the
voltage is V1 at the second measurement temperature.
This parameter is only visible when you select Use an
IV data point at second measurement temperature
for
the Parameterization parameter. The default value
is 0.245
A.
Specify the diode voltage V1 value when the
current is I1 at the second measurement temperature.
This parameter is only visible when you select Use an
IV data point at second measurement temperature
for
the Parameterization parameter. The default value
is 0.5
V.
Specify the saturation current IS value at
the second measurement temperature. This parameter is only visible
when you select Specify saturation current at second
measurement temperature
for the Parameterization parameter.
The default value is 1.25e7
A.
Specify the value for the second measurement temperature. This
parameter is only visible when you select either Use
an IV data point at second measurement temperature
or Specify
saturation current at second measurement temperature
for
the Parameterization parameter. The default value
is 125
°C.
This parameter is only visible when you select Specify
the energy gap, EG
for the Parameterization parameter.
It lets you select a value for the energy gap from a list of predetermined
options, or specify a custom value:
Use nominal value for silicon (EG=1.11eV)
—
This is the default.
Use nominal value for 4HSiC silicon
carbide (EG=3.23eV)
Use nominal value for 6HSiC silicon
carbide (EG=3.00eV)
Use nominal value for germanium (EG=0.67eV)
Use nominal value for gallium arsenide
(EG=1.43eV)
Use nominal value for selenium (EG=1.74eV)
Use nominal value for Schottky barrier
diodes (EG=0.69eV)
Specify a custom value
—
If you select this option, the Energy gap, EG parameter
appears in the dialog box, to let you specify a custom value for EG.
Specify a custom value for the energy gap, EG.
This parameter is only visible when you select Specify
a custom value
for the Energy gap parameterization parameter.
The default value is 1.11
eV.
Select one of the following options to specify the saturation current temperature exponent value:
Use nominal value for pnjunction diode
(XTI=3)
— This is the default.
Use nominal value for Schottky barrier
diode (XTI=2)
Specify a custom value
—
If you select this option, the Saturation current temperature
exponent, XTI parameter appears in the dialog box, to let
you specify a custom value for XTI.
Specify a custom value for the saturation current temperature
exponent, XTI. This parameter is only visible when
you select Specify a custom value
for the Saturation
current temperature exponent parameterization parameter.
The default value is 3
.
This coefficient modulates the reverse breakdown voltage BV.
If you define the reverse breakdown voltage BV as
a positive quantity, a positive value for TCV implies
that the magnitude of the reverse breakdown voltage decreases with
temperature. The default value is 0
V/K.
Specify the value for the temperature T_{s},
at which the device is to be simulated. The default value is 25
°C.
The block has the following ports:
+
Electrical conserving port associated with the diode positive terminal

Electrical conserving port associated with the diode negative terminal
[1] MH. Ahmed and P.J. Spreadbury. Analogue and digital electronics for engineers. 2nd Edition, Cambridge University Press, 1984.
[2] G. Massobrio and P. Antognetti. Semiconductor Device Modeling with SPICE. 2nd Edition, McGrawHill, 1993.
[3] Lauritzen, P.O. and C.L. Ma. "A Simple Diode Model with Reverse Recovery." IEEE^{®} Transactions on Power Electronics. Vol. 6, No. 2, April 1991.