Diffusion Resistor
Resistor model with velocity saturation and optional tolerance, operational limits,
fault behavior, and noise
Description
The Diffusion Resistor block represents a resistor with
velocity saturation, while letting you model the following effects:
You can turn these modeling options on and off independently
of each other.
In its simplest form, the resistance of the Diffusion Resistor
block is:
where:
R0 is zero-bias resistance.
p2 and
p3 are the quadratic and linear
voltage coefficients, respectively.
θ2 and
θ3 are inverse voltages for
quadratic and linear voltage activation, respectively.
vpn is applied voltage across the
resistor.
At low bias,
and therefore p2 and
θ2 determine the low-bias quadratic
behavior of the resistor.
At high bias,
and therefore p3 and
θ3 impact only the high-bias linear
behavior of the resistor.
You can use the voltage-dependence of the resistance to model
velocity saturation in a diffused resistor. For sufficiently high
voltage,
where isat is saturation current.
Simplified Parameterization
The simplified parameterization model assumes that the quadratic and linear
coefficients are the same. This is one of the recommended assumptions for the r2_cmc
model provided by the Compact Model Coalition, as a reasonable initial guess when
performing parameter extraction. With this assumption, it is possible to define two
new parameters, Critical voltage and Corner
voltage, which provide a simpler means for parameterizing
models:
where:
At high voltage,
and therefore, critical voltage is the reciprocal of the slope of the increase of
R/R0 with voltage.
With this parameterization, the saturation current is
Tolerances
You can apply tolerances to the nominal value you provide for
the Resistance parameter. Datasheets typically
provide a tolerance percentage for a given resistor type. The table
shows how the block applies tolerances and calculates resistance based
on the selected Tolerance application option.
Option | Resistance
Value |
---|
None — use nominal value
| R0 |
Random tolerance
| Uniform distribution: R0 · (1 –
tol + 2·
tol·
rand ) Gaussian distribution:
R0 · (1 +
tol · randn /
nSigma) |
Apply maximum tolerance value
| R0 · (1 + tol
) |
Apply minimum tolerance value
| R0 · (1 – tol
) |
In the table,
R0 is the Resistance parameter
value, nominal zero-bias resistance.
tol is fractional tolerance, Tolerance
(%) /100.
nSigma is the value you provide
for the Number of standard deviations for quoted tolerance parameter.
rand
and randn
are standard MATLAB® functions
for generating uniform and normal distribution random numbers.
Note
If you choose the Random tolerance
option and you
are in "Fast Restart" mode, the random tolerance value is updated on every
simulation if at least one between the fractional tolerance,
tol, or the Number of standard deviations for
quoted tolerance, nSigma, is set to Run-time
and is defined with a variable (even if you do not modify that variable).
Operating Limits
You can specify operating limits in terms of power and maximum
working voltage. For the thermal variant of the block (see Thermal Port), you can also specify operating
limits in terms of temperature.
When an operating limit is exceeded, the block can either generate
a warning or stop the simulation with an error. For more information,
see the Operating Limits parameters
section.
Faults
The Diffusion Resistor block allows you to model an electrical
fault as an instantaneous change in resistance. The block can trigger fault
events:
You can enable or disable these trigger mechanisms separately,
or use them together if more than one trigger mechanism is required
in a simulation. When more than one mechanism is enabled, the first
mechanism to trigger the fault takes precedence. In other words, component
fails no more than once per simulation.
When the resistor fails, its resistance is changed to the value you specify for the
Faulted zero-voltage resistance parameter. You can also
choose whether to issue an assertion when a fault occurs, by using the
Reporting when a fault occurs parameter. The assertion can
take the form of a warning or an error. By default, the block does not issue an
assertion.
Thermal Noise
The Diffusion Resistor block can generate thermal noise
current. If you set the Noise mode parameter to
Enabled
, then the block includes a noise current
source connected in parallel to the diffusion resistor.
If the sampling time is h, then the thermal
noise is given by:
where:
k is the Boltzmann constant, 1.3806504e-23
J/K.
T is temperature.
R is resistance.
N is a Gaussian random number with
zero mean and standard deviation of one.
2kT/R is the double-sided thermal
noise power distribution (the single-sided equivalent is 4kT/R).
The block generates Gaussian noise by using the PS Random Number source in
the Simscape™ Foundation library. You can control the random number seed by setting
the Repeatability parameter:
Not repeatable
—
Every time you simulate your model, the block resets the random seed
using the MATLAB random number generator:
Repeatable
— The block automatically generates a seed value
and stores it inside the block, to always start the simulation with the same
random number. This auto-generated seed value is set when you add a
Diffusion Resistor block from the block
library to the model. When you make a new copy of the
Diffusion Resistor block from an existing
one in a model, a new seed value is generated. The block sets the value
using the MATLAB random number generator command shown above.
Specify seed
— If
you select this option, the additional Seed parameter
lets you directly specify the random number seed value.
Thermal Port
The block has an optional thermal port, hidden by default. To
expose the thermal port, right-click the block in your model, and
then from the context menu select > > .
This action displays the thermal port H on the block icon, and adds
the Thermal tab and the Variables tab
to the block dialog box.
Use the Thermal tab to specify how the
resistance value changes with temperature and to set the thermal mass.
Use the Variables tab to set the initial temperature
target.
For the thermal variant, the defining equation for the resistance
is augmented with additional temperature scaling:
where and are
the linear and quadratic temperature scaling coefficients, respectively.
where:
With the thermal port exposed, the generated noise uses the temperature at the
thermal port when determining the instantaneous noise value. Exposing the thermal
port also extends the options on the Operating Limits tab as
follows:
The Power rating parameter becomes temperature
dependent. You define a temperature up to which the full power rating is
available, plus a higher temperature for which the power rating is reduced
to zero. It is assumed that the power rating decreases linearly with
temperature between these two values.
An additional parameter, Operating temperature range, [Tmin
Tmax], lets you define the valid temperature range for block
operation.
Variables
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.
This section appears only for the blocks with exposed thermal
port. The Temperature variable lets you specify
a high-priority target for the temperature at the start of simulation.
Basic Assumptions and Limitations
Simulating with noise enabled slows down simulation. Choose
the sample time (h) so that noise is generated
only at frequencies of interest, and not higher.
Ports
Conserving
expand all
+
— Positive terminal
electrical
Electrical conserving port associated with the resistor positive
terminal.
-
— Negative terminal
electrical
Electrical conserving port associated with the resistor negative
terminal.
H
— Resistor thermal mass
thermal
Thermal conserving port that represents the resistor thermal mass.
Dependencies
Enabled for the thermal variant of the block. For more
information, see Thermal Port.
Parameters
expand all
Main
Resistance
— Nominal zero-bias resistance
1 Ohm (default)
The zero-bias resistance, used as the nominal resistance value.
Resistance value must be greater than zero. For the thermal variant
of the block, this is the zero-bias resistance at a temperature equal
to the Measurement temperature parameter in the Thermal section.
Tolerance (%)
— Resistor tolerance, in percent
5 (default)
The resistor tolerance as defined on the manufacturer datasheet.
Tolerance application
— Select how to apply tolerance during simulation
None — use nominal
value
(default) | Random tolerance
| Apply maximum tolerance value
| Apply minimum tolerance value
Select how to apply tolerance during simulation:
None — use nominal value
— The block does not apply tolerance, uses the nominal
resistance value. This is the default.
Random tolerance
— The block
applies random offset to the resistance value, within the
tolerance value limit. You can choose Uniform or Gaussian
distribution for calculating the random number by using the
Tolerance distribution
parameter.
Apply maximum tolerance value
— The resistance is increased by the specified tolerance
percent value.
Apply minimum tolerance value
— The resistance is decreased by the specified tolerance
percent value.
Tolerance distribution
— Select the distribution type
Uniform
(default) | Gaussian
Select the distribution type for random tolerance:
Dependencies
Enabled when the Tolerance application parameter
is set to Random tolerance
.
Number of standard deviations for quoted tolerance
— Used for calculating the Gaussian random number
4 (default)
Number of standard deviations for calculating the Gaussian random
number.
Dependencies
Enabled when the Tolerance distribution parameter
is set to Gaussian
.
Parameterization
— Select parameterization method
Simplified
(default) | Advanced
Select how to apply tolerance during simulation:
Simplified
— Assume that the
quadratic and linear coefficients are the same, and define block
behavior using the Critical voltage and
Corner voltage parameters.
Advanced
— Explicitly
specify values for the quadratic and linear voltage coefficients
and for the inverse voltages for quadratic and linear voltage
activation.
Critical voltage
— Critical voltage for saturation
4 V (default)
Critical voltage for the saturation mechanism. You can determine this
parameter value by taking the reciprocal of the slope of the increase of
R/R0
with voltage.
Dependencies
Enabled when the Parameterization parameter
is set to Simplified
.
Corner voltage
— Voltage at which the resistance increase starts to occur
2 V (default)
Corner voltage, at which the resistance increase starts to occur. The
Corner voltage must be less than the
Critical voltage.
Dependencies
Enabled when the Parameterization parameter
is set to Simplified
.
Quadratic voltage coefficient
— Coefficient p2
0.25 (default)
Coefficient p2 from the
defining equation.
Dependencies
Enabled when the Parameterization parameter
is set to Advanced
.
Inverse voltage for quadratic voltage activation
— Coefficient θ2
0.25 1/V (default)
Coefficient θ2 from the
defining equation.
Dependencies
Enabled when the Parameterization parameter
is set to Advanced
.
Linear voltage coefficient
— Coefficient p3
0.25 (default)
Coefficient p3 from the
defining equation.
Dependencies
Enabled when the Parameterization parameter
is set to Advanced
.
Inverse voltage for linear voltage activation
— Coefficient θ3
0.25 1/V (default)
Coefficient θ3 from the
defining equation.
Dependencies
Enabled when the Parameterization parameter
is set to Advanced
.
Operating Limits
Enable operating limits
— Select Yes
to enable reporting when the operational
limits are exceeded
No
(default) | Yes
Select Yes
to enable reporting when the operational
limits are exceeded. The associated parameters in the
Operating Limits section become visible to let
you select the reporting method and specify the operating limits in
terms of power and maximum working voltage. Parameters that specify
operating limits in terms of temperature are visible only for blocks
with exposed thermal port (see Thermal Port). The default value is
No
.
Reporting when operating limits exceeded
— Select the reporting method
Warn
(default) | Error
Select what happens when an operating limit is exceeded:
Dependencies
Enabled when the Enable operating limits parameter
is set to Yes
.
Maximum working voltage
— Maximum voltage allowed for normal block operation
100 V (default)
Maximum voltage magnitude allowed for normal block operation.
Dependencies
Enabled when the Enable operating limits parameter
is set to Yes
.
Power rating
— Maximum power allowed for normal block operation
1 W (default)
Maximum power allowed for normal block operation.
If you expose the thermal port of the block, this parameter becomes
temperature dependent. The value you specify for the Power
rating parameter applies up to the temperature specified
by the Temperature below which full power rating is
available parameter value. Then the power rating
decreases linearly with temperature, until it becomes 0 at temperature
specified by the Temperature above which power rating is
reduced to zero parameter value.
Dependencies
Enabled when the Enable operating limits
parameter is set to Yes
.
Temperature below which full power rating is available
— Maximum temperature where full power rating still applies
70 °C (default)
Maximum temperature where full power rating, specified by the
Power rating parameter value, still
applies.
Dependencies
Enabled for the thermal variant of the block. For more
information, see Thermal Port.
Temperature above which power rating is reduced to zero
— Temperature where power rating becomes 0
155 °C (default)
Temperature where power rating becomes 0. Above this temperature, the
simulation always issues an assertion regardless of dissipated power.
This parameter value must be higher than Temperature below
which full power rating is available.
Dependencies
Enabled for the thermal variant of the block. For more
information, see Thermal Port.
Operating temperature range, [Tmin Tmax]
— Minimum and maximum temperature values allowed for normal block operation
[-50 150] °C (default)
A row vector of length 2 specifying minimum and maximum temperature
values allowed for normal block operation. The first element is the
lowest allowable operating temperature, and the second element is the
largest allowable operating temperature.
Dependencies
Enabled for the thermal variant of the block. For more
information, see Thermal Port.
Faults
Enable faults
— Select Yes
to enable faults modeling
No
(default) | Yes
Select Yes
to enable faults modeling. The
associated parameters in the Faults section become
visible to let you select the reporting method and specify the trigger
mechanism (temporal or behavioral). You can enable these trigger
mechanisms separately or use them together.
Reporting when a fault occurs
— Choose whether to issue an assertion when a fault occurs
None
(default) | Warn
| Error
Choose whether to issue an assertion when a fault occurs:
None
— The block
does not issue an assertion.
Warn
— The block
issues a warning.
Error
— Simulation
stops with an error.
Dependencies
Enabled when the Enable faults parameter
is set to Yes
.
Faulted zero-voltage resistance
— Resistance when block is in faulted state
inf Ohm (default)
Zero-voltage resistance between the + and – ports when the block is in
the faulted state.
Dependencies
Enabled when the Enable faults parameter is
set to Yes
.
Enable temporal fault trigger
— Select Yes
to enable time-based fault triggering
No
(default) | Yes
Select Yes
to enable time-based fault triggering.
You can enable the temporal and behavioral trigger mechanisms separately
or use them together.
Dependencies
Enabled when the Enable faults parameter
is set to Yes
.
Simulation time for fault event
— Time before entering faulted state
1 s (default)
Set the simulation time at which you want the block to enter the
faulted state.
Dependencies
Enabled when the Enable temporal fault
trigger parameter is set to
Yes
.
Enable behavioral fault trigger
— Select Yes
to enable behavioral fault triggering
No
(default) | Yes
Select Yes
to enable behavioral fault triggering.
You can enable the temporal and behavioral trigger mechanisms separately
or use them together.
Dependencies
Enabled when the Enable faults parameter
is set to Yes
.
Maximum permissible current
— Current threshold to fault transition
1 A (default)
Specify the maximum permissible current value. If the current
exceeds this value for longer than the Time to fail when
exceeding maximum permissible current parameter value,
then the block enters the faulted state.
Dependencies
Enabled when the Enable behavioral fault trigger parameter
is set to Yes
.
Time to fail when exceeding maximum permissible current
— Maximum length of time the current exceeds the threshold
1 s (default)
Set the maximum length of time that the current can exceed the maximum
permissible value without triggering the fault.
Dependencies
Enabled when the Enable behavioral fault
trigger parameter is set to
Yes
.
Noise
Noise mode
— Select whether to model thermal noise current
Disabled
(default) | Enabled
Select whether to model thermal noise current:
Disabled
— No noise is
produced by the resistor.
Enabled
— Resistor generates
thermal noise current, and the associated parameters become
visible in the Noise section.
Sample time
— Rate at which the noise source is sampled
1e-3 s (default)
Defines the rate at which the noise source is sampled. Choose
it to reflect the frequencies of interest in your model. Making the
sample time too small will unnecessarily slow down your simulation.
Dependencies
Enabled when the Noise mode parameter is
set to Enabled
.
Repeatability
— Select the noise control option
Not repeatable
(default) | Repeatable
| Specify seed
Select the noise control option:
Not repeatable
—
The random sequence used for noise generation is not repeatable.
Repeatable
— The
random sequence used for noise generation is repeatable, with a system-generated
seed.
Specify seed
— The
random sequence used for noise generation is repeatable, and you control
the seed by using the Seed parameter.
Dependencies
Enabled when the Noise mode parameter is
set to Enabled
.
Auto-generated seed used for repeatable option
— Auto-generated random number seed
random real number
Random number seed stored inside the block to make the random
sequence repeatable. The parameter value is automatically generated
using the MATLAB random number generator command. You can modify
this parameter value, but it gets overwritten by a new random value
if you copy the block to another block in the model. Therefore, if
you want to control the seed of the random sequence, use the Specify
seed
option for the Repeatability parameter
and specify the desired seed value using the Seed parameter.
Dependencies
Enabled when the Repeatability parameter
is set to Repeatable
.
Seed
— Random number seed
0 (default)
Seed used by the noise random number generator.
Dependencies
Enabled when the Repeatability parameter
is set to Specify seed
.
Device simulation temperature
— Temperature of resistor at the start of the simulation
25 °C (default)
The temperature of the resistor at the start of the simulation.
Dependencies
Enabled when the Noise mode parameter is
set to Enabled
.
For blocks with an exposed thermal port, this parameter is disabled.
Instead, use the Variables tab to set the initial
temperature target. For more information, see Variables.
Thermal
This section appears only for blocks with exposed thermal port.
For more information, see Thermal Port.
Resistance linear temperature coefficient
— Specifies how the resistance value changes with temperature
0 1/K (default)
The coefficient in the equation that describes resistance as a
function of temperature. See Thermal Port for details.
Resistance quadratic temperature coefficient
— Specifies how the resistance value changes with temperature
0 1/K^2 (default)
The coefficient in the equation that describes resistance as a
function of temperature. See Thermal Port for details.
Measurement temperature
— Temperature corresponding to nominal resistance
25 °C (default)
The temperature T0,
for which the nominal resistance R is specified.
Thermal mass
— Thermal mass associated with port H
100 J/K (default)
Thermal mass associated with the thermal port H. It represents
the energy required to raise the temperature of the thermal port by
one degree.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Introduced in R2017b