fiendie / SteinhartHart

Arduino library for interacting with NTC thermistors
GNU General Public License v3.0
14 stars 5 forks source link

What's the need of the Dissipation factor (mW/°C) #3

Open pierrot10 opened 3 years ago

pierrot10 commented 3 years ago

Dear findie

First, thanks for that nice library. I need to make working the SF-110 sensor from Apogee and I observed on page 10, they do not use a dissipation factor.

I wonder why you consider that here and if you can clarify me this section. I have some difficulties to understand the role of the K and the following calculation with the consideration of the voltage

getTempKelvin = TempKelvin - voltage * voltage / (K * _resistance)

You support will be greatly appreciate.

Thanks

fiendie commented 3 years ago

Hi there,

the Steinhart-Hart is for NTC thermistors specifically, which always experience a bit of self-heating. The dissipation factor usually takes the ambient temperature into account. The constant I used is just an approximation for the average room temperature if I remember correctly.

K is just the ratio of change in power dissipation and the resultant increase in the body temperature of the thermistor itself. So for larger values of K the resulting temperature gets lowered depending on the power flowing through the thermistor.

Just glancing at the data sheet you linked to, the manufacturer claims less than 0.01 °C self-heating, maybe that’s why they don’t need a dissipation factor.

Cheers Andy

On 20. Feb 2021, at 00:33, Pierrot notifications@github.com wrote:

Dear findie

First, thanks for that nice library. I need to make working the SF-110 sensor https://www.apogeeinstruments.com/content/SF-110-manual.pdf from Apogee and I observed on page 10, they do not use a dissipation factor.

I wonder why you consider that here https://github.com/fiendie/SteinhartHart/blob/master/SteinhartHart.h#L32 and if you can clarify me this section https://github.com/fiendie/SteinhartHart/blob/master/SteinhartHart.cpp#L43. I have some difficulties to understand the role of the K and the following calculation with the consideration of the voltage

getTempKelvin = TempKelvin - voltage voltage / (K _resistance)

You support will be greatly appreciate.

Thanks

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/fiendie/SteinhartHart/issues/3, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFNYEDTQSRDMYVTCFLST53S73YOBANCNFSM4X5GNGJQ.

cwgstreet commented 2 years ago

Andy, I appreciate your SH library as I'm adapting it for my project; thanks.

In the spirit of constructive feedback, and perhaps I am just dense, but I can't see that self-heating correction approach you apply in the library is valid in concept nor approach.

  1. First, and most importantly, the dissipation factor, or k-factor (typically mW/ deg C), is not constant across a measured temperature range which is why many datasheets more correctly refer to this as a dissipation factor (vs constant). Note the stated datasheet value is also a function of the measurement, typically in air (or occasionally an oil bath) at ambient temperature. Some datasheets actually state "for information only" when they provide the dissipation factor, further indicating that it isn't for compensation purposes. Personally, I just use the dissipation factor as a NTC selection criteria to see if self-heating may be an issue for my required measurement accuracy and, if it is, take steps like reducing current (perhaps by simply lowering supply voltage) to mitigate self heating.
  2. Secondly, even if the dissipation factor, k, was constant (or assumed constant over your measurement range), your coding approach to correct the temperature using the K factor does not appear dimensionally correct:

return steinhartHart(resistance) - voltage * voltage / (K * _resistance);

dimensionally: degK - [watts / (mW/degC]

As I see it, The main problem is that K is in mW/deg C yet the SHH equation is returning deg Kelvin so you are subtracting a correction in deg C from a deg K value. Also, V^2/R comes out in W, yet the dissipation factor is mW/degC.

If I've completely mis-understood this, please correct me. Cheers!