# Efficient Algorithms Improve The Linearization Of Platinum RTDs

Oct. 2, 2000
The platinum resistance temperature detector (PRTD) is generally accepted as the most stable and accurate temperature sensor in common use. But the PRTD resistance-versustemperature curve is nonlinear. This makes it difficult to get real precision...

The platinum resistance temperature detector (PRTD) is generally accepted as the most stable and accurate temperature sensor in common use. But the PRTD resistance-versustemperature curve is nonlinear. This makes it difficult to get real precision over spans of more than a few tens of degrees Celsius. Any effort to do so will work only as well as the means used to linearize the PRTD response.

For example, in Figure 1, curve A illustrates the limitations of the standard linear approximation (100 Ω at 0°C, 138.5 W at 100°C , DIN 43 760 calibration) over a 0°C to 100°C range. (Note that °C = (RRTD − 100)/0.385). Although correct at exactly 0°C and 100°C, curve A shows this simplistic approximation is already nearly 0.4°C off at 50°C. That’s pretty bad considering that PRTDs are routinely available with calibrations better than 0.1°C. For wider spans (the DIN standard extends from −200°C to 850°C), the situation gets very bad very quickly, with a highend error of about 100°C!

Sometimes, analog linearization is appropriate (see “Precision Thermometer Linearizes, Digitally Calibrates Platinum RTDs,” Electronic Design, May 29, p.112). But in other applications, linearization must be done computationally after analog-to-digital conversion of PRTD resistance has already occurred. A classic technique for accomplishing this is the so-called Callendar-Van Dusen equation (CVD) (Fig. 1, curve B):

```RRTD =
RO\[1 + AT + BT2 + C(T4 − 100T3)\]
(for T < 0)
RO(1 + AT + BT2)     (for T > 0)
```

where A = 3.90830 × 10−3, B = - 5.77500 × 10−7, C = − 4.18301 × 10−12, and RO = RRTD at 0°C.

CVD is a traditional favorite, but two aspects make it less than ideal. First, while CVD is accurate enough (≈ ±0.01°C) over the range of −100°C to 100°C, its errors escalate at higher temperatures (Fig. 1, curve B, again). Also, CVD inherently computes resistance as a function of temperature. This is the inverse of what’s usually wanted—temperature from resistance. Consequently, implementing CVD becomes complicated. It typically entails clumsy and computationally intensive iterated trials to find the unique T that reproduces the measured RRTD. Messy.

Luckily, a simple alternative exists—tabular interpolation. Standard PRTD calibration curves can be used to construct a small dataset of less than 200 bytes (see the table). This dataset relates temperature to a number of discrete PRTD resistances (40 in the case of the table). The resistance increment between table entries may be reasonably small, such as the 10 W used in the table. If so, the error caused by PRTD nonlinearity will be minimal. Even over the entire 1050°C span of the DIN standard, ordinary linear interpolation will do an accurate job of linearization (Fig. 2, curve C). One way to write the linear interpolation arithmetic is:

IINTERP = RRTD/10
IINT = INTEGER(lINTERP)
IFRAC = IINTERP − IINT
a = rtdtable(IINT)
b = rtdtable(IINT + 1)
T = a + IFRAC (b − a)

In case 0.05°C accuracy isn’t good enough, the performance can be improved by making the resistance increment smaller and the table larger. Or, the table can be kept the same size and the calculation made a more elaborate by going to second-order interpolation:

a = rtdtable(IINT)
b = rtdtable(IINT + 1)/2
c = rtdtable(IINT − 1)/2
T = a+IFRAC\[b-c +IFRAC*(c+b-a)\]

This second-order algorithm achieves excellent accuracy (Fig. 3). Notice that the scale expansion is 10 times greater and that the linearization error never gets larger than about 0.003°C.