I just went through my folder from about five years ago when I looked at polynomial fits and thermistors and. Forgive me if I have missed some points, but I did not see you breaking up the temp/resistance function to get a better fit. Since I still have those graphs, I am illustrating that below. I *think* this was a Vishay NTCLE100E3102GB0 1K@25 and the datasheet included an extensive spreadsheet which was used for the fits. My examples are all using cubic polynomials. Note the R2 values and their reduction when breaking the function into sub-functions.
It's sort-of explained -- I only ever intend to use one in a divider, and, like, how do you propose to acquire the resistance directly and exactly, with that much dynamic range, right? -- so, concentrating on the divider transfer function is pretty reasonable.
Which, on that subject; a timer based method could do the range, I suppose? But still, you aren't likely to have that kind of dynamic range on a low end MCU. AVR's 16-bit timers, you'd have to implement auto-ranging to adjust the prescaler (or chain them, when such feature is available); with an, ARM or whatever, with 32-bit timers, you could do it fixed scale though. So, more software work, more fiddling around, or bigger hardware, and gives variable update rates (very long time constant at low temp)...
The nice thing about the divider is, as a rational expression (goes as x/(1+x)), the asymptotic response of the thermistor is somewhat canceled out by same of the divider. So it's a pretty well conditioned value to put into a SAR ADC. Sure, suffers from error both numeric and analog at the extremes, but that's not at all unexpected.
Of course, you need software to determine which polynomial to use...e.g., this code fragment to illustrate.
...
I'm not that bright and I am sure folks have been doing that, but I don't see this represented on your pages. A calculator that would automatically take the full function (e.g., from a spreadsheet) and break that function into separate functions with the break points and resulting polynomials that minimize error would be nice.
On the other hand, I may have simply missed the point [it would not be the first time], if so, please forgive me....nice having coffee with ya
It's not a bad method -- I think most generally one would apply Bezier curves, cubic splines. And the segments and their breakpoints would be determined by, total curvature in the region, I think? Or 2nd or higher order curvature, within some margin of error. It's a tricky problem, and probably ill posed (as curve-fits go, nothing too surprising there, but not great), since, remember a spline is a parameterized plane curve, not a function, so it can represent vertical sections, and loops, just fine. That's a degree of freedom we might not appreciate for these purposes. But also some spacial awareness is welcome, in that we don't need such an accurate (ohm for ohm) fit at the high [resistance] end, and tracking temperature is more meaningful than resistance in that range (i.e., a small horizontal shift corresponds to a huge vertical shift). Working with the error as blobs rather than vertical error bars, y'know?
I discuss a similar problem, I think; you can use piecewise curves, but you need the logic to split up the curve, and as soon as that logic (or the curves themselves) requires division, it's game over for so many platforms.
Or instead of splitting the equation use the Steinhart-Hart equation.
https://en.wikipedia.org/wiki/Steinhart%E2%80%93Hart_equation
It is a perfect fit for the data in the NTCLE100E3102GB0 vishay datasheet
(resistance-temperature tables are calculated from Steinhart-Hart equation)
Yeah, looking at my extracted copy (Vishay datasheet) they have A, B, C, D and look to be calculating from them. Interesting they do have different values above and below 25C. Though not differentiated for the parts I looked at, but the NTCLE one does.
Huh, there's A1, B1, C1, D1 as well but they don't seem to be using them, they're just shown for flavor? I wonder how they're supposed to be used...
Anyway, speaking of computation -- doing log/exp is even worse than division, you're off your nut if you're doing that on an embedded machine.
As for scientific purposes, I mean, anything goes, nothing wrong with that or even more esoteric things. Whatever makes your curve fit better.
Tim