NTC calculations.

Introduction.

This is some notes on NTCs and some simple Spice models for them.
Since Spice does not accept Greek characters and is case-insensitive, many common parameter names are written as text.

NTC characteristics.

This shows some of the common ways to specify the electrical properties of NTCs:
• The resistance value at 25 °C (R or R25) [Ω].
• Resistance tolerance in percent. Normally specified at 25 °C, but for some precision NTCs it is specified at several temperatures.
• Resistance vs. temperature at zero power:
• In form of a table listing the resistance at different temperatures as absolute values [Ω] or as values relative to R25 [ΔRP/R25].
This is typically the most accurate way to specify an NTC, but it is only useful for simulations using the temperature as the independent variable.
You will most likely get convergence problems if you apply feedback around tabular data, e.g. to include the NTCs self-heating in the simulation.
Tables also often list the α at different temperatures. α is a linear approximation between 2 points.
• A plot of resistance vs. temperature. This is normally a plot of a 2 point logarithmic approximation.
• A β value [K].
This is a 2 point logarithmic approximation of the NTCs resistance vs. temperature that is sufficiently accurate for many applications (all ICL applications).
The reference temperatures for the β value are normally 25 °C and 75 °C.
• Steinhart-Hart coefficients.
This is a 3 point logarithmic approximation of the NTCs resistance vs. temperature that is very accurate, but the calculations are more complex than for using β.
• Maximum power dissipation at 25 °C (P or P25) [W].
• Dissipation factor or Dissipation constant (δth) [W/K or W/°C].
This is the amount of power that will increase the NTCs temperature by 1 °.
• Thermal time constant or Thermal cooling time constant (τC) [s].
• Heat capacity (Cth) [J/K or J/°C].
The amount of energy that will increase the NTCs temperature by 1 °.
Some data sheets do not specify heat capacity, but this is easily found by multiplying the Dissipation factor with the Thermal time constant:
Cth = δth * τC

The following is only specified for Inrush Current Limiters (ICLs):

• Maximum steady state current (Imax) [A].
An ambient temperature is normally stated.
• Maximum capacitance or Maximum permissible capacitance (Ctest) [F].
This is the maximum capacitance you can discharge into the NTC.
A capacitance value and a voltage is specified.
Further info is normally available in the manufacturer's application literature.
• Current derating.
This is normally shown as a plot.
As most other power components, ICLs must be derated when they are used above a given ambient temperature, however they must also be derated when used below a given ambient temperature.
• Maximum energy or Maximum recommended energy rating [J].
The maximum amount of energy an NTC can absorb in a given time ( normally not specified ).
• Maximum body temperature [°C].
The maximum body temperature when the NTC is used within its designed operating range.
Basically a reminder to designers not to put NTCs near anything that can not resist this temperature.

Also note that the coated part of ICLs used for mains voltage are considered "live" by the safety testing agencies.

Simulating variable resistors.

NTCs and other variable resistors are quite easily modeled in Spice.
This is done with an Arbitrary Behavioral Current Source ( a B element ).
The basic syntax for the B element is:
Bnnn n001 n002 I=<expression> <several other parameters can be added - see the manual for the Spice you use>.
nnn is the name for the element and n001, n002 are the connections.

Fig.1: Some examples in LTSpice. The voltage on VCC is constant and the voltage on CTL is a dc sweep.

Example A, a linear resistor:
B1 VCC N1 i=V(VCC,N1)/R
The current through B1 is the voltage between nodes VCC and N1 divided with the value of R.
Plot V(VCC,N1)/I(B1) to see the resistor value.

Example B, a voltage dependent resistor:
B2 VCC N2 i=V(VCC,N2)/V(CTL)
The current through B2 is the voltage between nodes VCC and N2 divided with the value of VCTL.
Plot V(VCC,N2)/I(B2) to see that this is a resistor with the value of VCTL.

Example C, a resistor defined by a function:
B3 VCC N3 i=V(VCC,N3)/Rtest()
.func Rtest() {V(VCC,N3)+10}
The current through B3 is the voltage between nodes VCC and N2 divided with the value of VCTL+10.
Plot V(VCC,N3)/I(B3) to see that this is a resistor with the value of VCTL+10.

Example D, a table defined function:
E3 VE1 0 CTL 0 table=(0,0 10,6 12,50 20,50 100,100)
The voltage on VE1 is the function defined in the table in E1.
Plot V(VE1) to see the function.
This type of table is limited to "a few" entries as there is a limit to the string length that can be entered in E1's value box.

Example E, another table defined function:
In this case the table is defined in an model included in the file ntc_rvar_e2.cir:

```* Table based NTC characteristic
e2 VE2 0 CTL 0 table=(0,326.5
+ 5,253.9

+ 95,7.885
+ 100,6.8)```
Plot V(VE2) to see the function.
This file can be as long as you want.

Note that resistors defined with Arbitrary Behavioral models do not generate thermal noise like the R element does.

Simulating an Inrush Current Limiter.

Following is a simple electrical and thermal model of an Inrush Current Limiter.
Simulating the thermal properties is done by replacing them with electrical models using the following analogs:
• voltage [V] = temperature [K or °C]
• current [A] = power [W]
• capacitance [F] = thermal capacity [J/K or J/°C]
• resistance [Ω] = thermal resistance [K/W or °C/W]
ICLs are often used directly in series with mains making them "Safety Critical" components like the mains fuse.
Although Spice simulations are very accurate, ICLs are not precision components.
The tolerance on their specification varies from ±20% to "approximately" ( this is from an actual data-sheet ), so the output from Spice is "approximately" ( with 10..15 digits ).
When ICLs are used in mains circuits, testing the actual circuit under worst-case conditions is essential ( this is often the ICL in series with the fuse directly across the mains - the fuse should blow - not the ICL ).
Test the circuit in a closed box using proper mains wiring ( no test leads or clips ).
The failure mode for ICLs vary from cracking at slight overloads to very violent for large overloads ( 2 pins left in the pcb and some dust around in enclosure ).
When ICLs are used within the Absolutely Maximum Ratings specified by the manufacturer, they will generally last forever.

Fig.2: ICL simulation in LTSpice.
The parameters not shown on this schematic are:

• NTC_R25: The NTC resistance in Ω at 25 °C. ( 5 )
• NTC_Beta: The NTC beta in K. ( 3124 )
• NTC_DF: The NTC dissipation factor in W/K. ( 0.05 )
• NTC_HC: The NTC heat capacity in J/K. ( 10 )
• VAC: The RMS supply voltage V ( 265 ).
• RTSER: The circuit series resistance in Ω ( 1 ).
• TEMP: The global temperature variable in Spice in °C ( 27 ).
The numbers in () are those I used for the simulation ( an NTC connected directly across the mains - do not try that for real without a fuse ).

VCC, R1, R2 and BNTC is the electrical circuit.
BNTC_P, C_HC, R_DF and VAMB is the thermal circuit, where:

• I(BNTC_P) is the power dissipated in BNTC: 1 W corresponds to 1 A.
• NTC_T is the NTCs temperature: 1 °C corresponds to 1 V.
• C_HC is the NTCs heat capacity: 1 J/K corresponds to 1 F.
• R_DF is the NTCs thermal resistance to ambient: 1 K/W corresponds to 1 Ω.
• VAMB is the ambient temperature: 1 °C corresponds to 1 V.
BE integrates the power in the NTC over the simulation time to show the energy dissipated by the NTC in J.
BI2T integrates I(BNTC)2 over the simulation in A2s. This may be useful in selecting a fuse ( no replacement for testing! ).

The function NTC_R calculates the resistance of the NTC from its R25, Beta and NTC_T.
The function INTC calculates the current through BNTC from the voltage across it and NTC_R.
The function PNTC calculates the power dissipated in BNTC from the voltage across it and the current through it.

Simulating temperature sensors.

Before you start to spend time ( unless it is for fun ) on making your own simulation models, you should check if the manufacturer have models for their NTCs.
Several manufacturers have very accurate models for their designs ( although you may have to sign an NDA to get them ).

Fig.3: Temperature sensor NTC simulation in LTSpice.
The parameters not shown on this schematic are:

• A, B, C: The Steinhart-Hart coefficients.
• NTC_DF: The NTC dissipation factor in W/K. ( 0.05 )
• NTC_HC: The NTC heat capacity in J/K. ( 10 )
VCC, R1, R2 and BNTC is the electrical circuit.
BNTC_P, C_HC, R_DF, BTEMPK and VTEMPC is the thermal circuit, where:
• I(BNTC_P) is the power dissipated in BNTC: 1 W corresponds to 1 A.
• NTC_T is the NTCs temperature: 1 K corresponds to 1 V.
• C_HC is the NTCs heat capacity: 1 J/K corresponds to 1 F.
• R_DF is the NTCs thermal resistance to ambient: 1 K/W corresponds to 1 Ω.
• TEMPK is the ambient temperature: 1 K corresponds to 1 V.
• TEMPC is the ambient temperature: 1 °C corresponds to 1 V.
BTR shows the difference between the NTCs internal temperature and the ambient temperature.

The functions NTC_X, NTC_Y and NTC_R calculates the resistance of the NTC from the Steinhart-Hart coefficients and TEMPK.
The function INTC calculates the current through BNTC from the voltage across it and NTC_R.
The function PNTC calculates the power dissipated in BNTC from the voltage across it and the current through it.

Appendix A: Calculations.

β parameter equation

Since I can not write β in Spice, the parameter is called Beta here.

Resistances are in Ω and temperatures in K unless noted.

To find the temperature :

where:
R is the resistance, Rr is the resistance at Tr.

To find the Beta value, you need the resistances R, Rr at the 2 temperatures T, Tr.

To find the resistance:

To find the resistance using common data-sheet values:

where:
Beta is in K, R25 is the resistance at 25 °C and T is the temperature in °C.

Steinhart-Hart equation

This is basically from Wikipedia [1], but the variable names are changed to match my Spice simulation.

Resistances are in Ω and temperatures in K.

To find the temperature :

where:
A, B, C are the Steinhart-Hart coefficients, R is the resistance and T is the temperature.

To derive the Steinhart-Hart coefficients, you need the resistances R1, R2, R3 at the 3 temperatures T1, T2 and T3.

To find the resistance:

This can be simplified a little by defining constants D and E ( you only need to calculate D and E once ):

References.

This web-page, including but not limited to all text, drawings and photos, is the intellectual property of Poul Petersen, and is Copyright ©.
Reproduction or re-publication by any means whatsoever is strictly prohibited under International Copyright laws.
The author grants the reader the right to use this information for personal use only.
Any commercial use is prohibited without express written authorization from Poul Petersen.

The information is provided on an "as-is" basis and is believed to be correct, however any use of the information is your own responsibility.

This web-site may contain links to web-sites outside Poul Petersen domain ( www.poulpetersen.dk ).
Poul Petersen has no control over and assumes no responsibility for the content of any web-site outside Poul Petersen own domain.

Poul Petersen does not use cookies to "enhance your experience" on this website.

Poul Petersen, C/Faya 14, 35120 Arguineguín, Las Palmas, Spain.
E-mail: pp@poulpetersen.dk