# Details of the simulated dissipation constant in thermistor spice model

#### DGM

##### New Member
I'm working on a project involving the simulation of NTC thermistors both in LTSpice and my own optimization scripts in Matlab. In the process of debugging, I noticed that LTSpice was producing unexpected behavior for a circuit I'd put together. The circuit in question is a thermal anemometer, but the issue is something a bit more fundamental regarding my understanding of the self-heating behavior of the parts and the spice model I'm using.

The circuit is designed to drive the hot-side thermistor Rn1 to a fixed temperature above ambient (40°C in this sim). In the process of designing the circuit, I'd been working on the assumption that the power dissipation and local temperature of the thermistor is described by a scalar dissipation factor: P = K*(Tlocal - Tambient). As such, I was expecting constant power for a fixed temperature rise. Instead, the LTSpice simulation shows that power rises significantly with ambient temperature.

Looking at the spice model I'm using (Vishay NTCLE100xx parts), I notice that the calculation of the local temperature is a bit more complicated. I'm not exactly adept at reading spice descriptions directly, but my interpretation is that there are dependent sources G3, G4, and G6 whose balance determines the temperature represented by the voltage at node H. Conceptually, I see G3 and G4 as describing the input power, and G6 as describing the power lost to the environment. I don't understand why the power input is modeled using two sources.
Code:
.SUBCKT NTC_BASE Rn Rp Params:W=1 X=1 Y=1 Z=1 GTH=1 GTH1=1 CTH=1 A=1 R25=1 B=1 C=1 D=1 T0=273.15
R2 tR 0 {mc(1,tolR/100)}
R3 tB 0 {mc(1,tolB/100)}
I1 tR 0 -1
I2 tB 0 -1
G_G1         AOUT 0 VALUE { if(TEMP>25,V(AOUT,0)/(R25*V(TR)*exp(((D*v(TB)/(T0+abs(V(H))+TEMP)+C*V(TB))/(T0+abs(V(H))+TEMP)+B*v(TB))/(T0+TEMP+abs(V(H)))+A*v(TB))),0)}
G_G2         AOUT 0 VALUE { IF(TEMP>25,0,V(AOUT,0)/(R25*v(TR)*exp(((Z*v(TB)/(T0+abs(V(H))+TEMP)+Y*v(TB))/(T0+abs(V(H))+TEMP)+X*v(TB))/(T0+abs(V(H))+TEMP)+W*v(TB))))}
G_G3         H 0 VALUE {if(TEMP>25,-V(RP,RN)*V(RP,RN)/(R25*v(TR)*exp(((D*v(TB)/(T0+abs(V(H))+TEMP)+C*v(TB))/(T0+abs(V(H))+TEMP)+B*v(TB))/(T0+TEMP+abs(V(H)))+A*v(TB))),0)}
G_G4         H 0 VALUE {if(TEMP>25,0,-V(RP,RN)*V(RP,RN)/(R25*v(TR)*exp(((Z*v(TB)/(T0+abs(V(H))+TEMP)+Y*v(TB))/(T0+abs(V(H))+TEMP)+X*v(TB))/(T0+TEMP+abs(V(H)))+W*v(TB))))}
G_G5         RP RN VALUE { V(RP, RN)/V(AOUT) }
G_G6         H 0 VALUE { V(H)*(Gth + Gth1*(TEMP-25)) }
R_R1         0 AOUT  1T TC=0,0
R_R2         0 H  1T TC=0,0
C_C1         0 H  {Cth}
.IC V(H)=0
.ENDS
I was assuming the parameter gth would be the steady-state dissipation factor as would be found on the datasheet. Obviously Cth would be the heat capacity of the package, but I have no idea what gth1 represents. If I set gth1 to some arbitrarily small number, LTSpice simulations behave as I had expected, but I'm assuming my expectations are overly simplistic or just wrong. I feel there is a reason for this detail, and that the proper course of action would be to adapt my Matlab tools to incorporate this aspect of local temperature calculation, rather than changing the spice model to ease my misunderstanding.
Code:
.SUBCKT NTCLE100E3471_B0 RN Rp  PARAMS: TR=0 TB=0
X89 Rn Rp NTC_BASE Params:
+ w=-13.0722600
+ x=4190.57382436261
+ y=-47158.402266289
+ z=-11992560.9065156
+ gth=0.0068 gth1 = 0.0000833
+ cth=0.0476
+ a=-13.07226007
+ r25=470
+ b=4190.57382436261
+ c=-47158.402266289
+ d=-11992560.9065156
+ T0=273.15
+ TOLR=TR
+ TOLB=TB
.ENDS
To further add to my confusion, I'm not certain that the parameters in the spice model are even correct. The dissipation factor for most of these parts is specified in the datasheet as 7 mW/K, which is very close to gth in the spice model. The issue here is that the lower-valued parts are physically larger and would have different dissipation factor and heat capacity. I have conflicting information about which parts this applies to:

The summary table on Page 1 of the datasheet indicates that the dissipation factor is higher for R25 <= 680Ω
The mechanical drawing on page 2 of the datasheet indicates that the larger package applies for R25 <= 220Ω
The spice library file suggests that the dissipation factor is only higher for R25 <= 150Ω

At this point, I can only assume that there's a mistake somewhere. I don't see why dissipation factor and heat capacity would be changing but with package size change. Since I'm using a nominal 470Ω part, I have no idea which parameters are actually correct. This much is frustrating, but I suppose I can resolve the uncertainty by just purchasing a few parts to see what the package sizes are.

TL;DR

Can anyone explain the conceptual relevance of the gth1 parameter as it is used in this model?
Would it be appropriate to assume that knowing package geometry is sufficient to sort out whether the thermal parameters are correct?

This is my first time posting here; any insight would be appreciated. If it helps, I've attached an archive containing the sim files, libraries, and datasheet. EDIT: added .plt file to archive

#### Attachments

• 185 KB Views: 0
Last edited:

#### DGM

##### New Member
I was thinking about this, and I had the suspicion that the second term in G6 represents the heat loss via radiation. It had crossed my mind before, but I was expecting something dependent on the 4th power of the absolute temperature. For the relatively narrow operating temperature range of these thermistors, I suppose it could be approximated linearly about a nominal temperature (25°C). That seems like it would make sense, but as far as I can estimate, the heat lost to radiation would be a few orders of magnitude smaller than what's predicted by gth1*(Ta-25). I think the whole expression is just a polynomial fit that describes all transfer modes. I may try finding other examples of thermistor spice models to see if they reveal anything.

Last edited: