#### 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

I was assuming the parameter

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

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.

Can anyone explain the conceptual relevance of the

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

***broken link removed***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)) }
I_I1 0 AOUT DC 1Adc
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
```

*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
```

*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Ω

***broken link removed******broken link removed***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

Last edited: