Tehnici de măsurare cu senzori neliniari

by donpedro

Un senzor cu ieşire neliniară nu este dificil de utilizat, dacă este necesară acoperirea doar a unei mici părţi din domeniul de ieşire. În aceste cazuri, este posibilă implementarea pe un microcontroler sau microprocesor a unor algoritmi simpli de liniarizare pe porţiuni. Dacă este necesară o zonă mai largă a domeniului de ieşire, pot fi utilizate circuite analogice de liniarizare. De exemplu, o rezistenţă în serie sau paralel cu un termistor (neliniar) va conduce la liniarizarea unei porţiuni din ieşire. Cu un termistor, porţiunea liniarizată este uzual de ±25OC (precizie 10-biţi) în jurul unui punct central proiectat în circuit. Acest punct al răspunsului termistorului, poate fi reglat prin schimbarea valorii rezistenţei adăugate. Aceste tehnici de circuit pot ajuta proiectanţii să utilizeze un domeniu mai larg (dar nu complet) din ieşirea senzorului.
Tehnicile hardware, printre care şi cele de mai sus, sunt suficiente pentru numeroase aplicaţii, dar dacă cerinţele de proiectare impun utilizarea unei zone mai largi din domeniul de ieşire, se pot obţine rezultate foarte bune prin utilizarea de tehnici de programare cu microcontroler şi PGA (programmable gain amplifier).

Figura 1: În mediile de măsurare precisă a temperaturii, termistorul este utilizat într-o condiţie de “putere zero”. Aceasta înseamnă că autoîncălzirea termistorului are un efect neglijabil asupra rezistenţei sale, deoarece curentul este menţinut la valori reduse. Acesta este graficul rezistenţă-temperatură pentru un termistor NTC de 10kW. Termistorul Vishay/BCcomponents™ utilizat are numărul de producător 2322 640 55103.

Termenul “termistor” provine din combinaţia cuvintelor TERMic RezISTOR. Există două tipuri: coeficient negativ de temperatură (NTC) şi coeficient pozitiv de temperatură (PTC). Tipurile NTC sunt cele mai potrivite pentru măsurări precise de temperatură, în timp ce componentele PTC sunt utilizate în aplicaţii de comutaţie. Articolul de faţă va aborda o aplicaţie NTC.
Termistorii NTC sunt utilizaţi în trei moduri diferite, care apelează caracteristicile rezistenţă-temperatură, tensiune-curent, sau curent/timp ale dispozitivului.

Figura 2: RA în serie cu VDD liniarizează răspunsul de temperatură al termistorului. Fenomenele parazite sunt eliminate cu ajutorul filtrului extern trece-jos. Amplificatorul programabil PGS, MCP6S26, trimite semnalul de la intrare, CH0, la ieşirea dispozitivului. Semnalul se schimbă în digital, prin utilizarea PIC16F684, convertor A/D pe 10-biţi. Acest circuit include şi alţi senzori opţionali, precum foto-senzori (CH1) sau senzori de temperatură cu siliciu (CH2) pe intrările multiplexate ale PGA (CH1, CH2, CH3, CH4, şi CH5).

Majoritatea aplicaţiilor utilizează primul dintre moduri. Spre deosebire de celelalte două moduri, aceste circuite rezistenţă-temperatură depind de o condiţie de operare de “putere-zero”. Aceasta implică existenţa unei autoîncălziri minime a termistorului. Figura 1 prezintă răspunsul rezistenţă-temperatură al unui termistor NTC de 10kW. Uzual 25°C pentru un termistor individual este în plaja de la 1kW până la 10MW.
Un termistor este un element rezistiv, astfel încât este necesar un curent de excitaţie, fie de la o tensiune de referinţă, fie de la un curent de referinţă. Performanţele termistorului din Figura 1 sunt repetabile atâta vreme cât puterea prin dispozitiv este păstrată sub capacitatea de disipare de putere a capsulei. Dacă regula este încălcată, termistorul se va autoîncălzi, scăzând artificial valoarea rezistenţei, oferind valori eronate ale temperaturii. Figura prezintă înaltul grad de neliniaritate al termistorului, care poate fi corectat prin utilizarea unui tabel de căutare gestionat de un microcontroler. Acest lucru va necesita un convertor de înaltă rezoluţie. Alternativ, pot fi aplicate tehnici de liniarizare hardware înaintea digitizării.
O tehnică foarte simplă, dar eficientă de liniarizare este utilizarea unei rezistenţe în serie cu termistorul şi sursa de tensiune, după cum se poate observa în Figura 2. Circuitul prezintă o cale directă de a excita termistorul cu o sursă de curent şi de a măsura variaţia rezistenţei.
Această metodă de excitare asigură o valoare a curentului pe termistor suficient de joasă pentru a preveni depăşirea constantei de disipare pe termistor şi afectarea preciziei sistemului. Dacă PGA este reglat la o amplificare de +1V/V sau este înlocuit de un amplificator buffer, acest circuit poate fi utilizat pentru a detecta un domeniu limitat de temperatură (aproximativ ±25OC). Domeniul nu este restricţionat de amplificator, ci de liniaritatea divizorului de tensiune format de combinaţia dintre termistor şi RA. Măsurarea de temperatură pe domenii mai mari impune diferenţe de tensiune prea mici pentru convertirea digitală precisă, ducând la necesitatea utilizării unor convertoare A/D de mai mare rezoluţie.
Ca exemplu, domeniul de temperatură al unui termistor tipic de la BCcomponents este de la -40°C la +125°C. În Figura 3 se poate observa că diferenţa de rezistenţă pentru o variaţie de temperatură de 10°C la o temperatură înaltă este semnificativ mai mare decât pentru o variaţie de 10°C la o temperatură joasă. Această variaţie în raportul rezistenţă-temperatură pe domeniul de lucru al termistorului creează o problemă analogică dificilă.
Este clar că, în acest exemplu, conversia A/D pe 10 biţi este ineficientă pe domeniul complet de temperatură.

Figura 3: Răspunsul combinaţiei termistor|RA ilustrată în Figura 2. Circuitul termistorului are un bun răspuns liniar în domeniul de ±25°C în jurul temperaturii la care ambele rezistenţe (NTC şi RA) sunt egale. Eroarea uzuală în acest domeniu este de ±1%.

Figura 4: Semnalele de la portul SPI al microcontrolerului către PGA modifică câştigul acestui amplificator. Câştigurile programabile ale PGA sunt +1, +2, +4, +5, +8, +10, +16, şi +32 V/V. Aplicaţia prezentată utilizează câştiguri ale PGA de 1, 8, şi 32V/V pentru a acoperi efectiv întreg domeniul de temperatură al termistorului. Microcontrolerul introduce histerezis în această diagramă pentru a asigura că valorile temperaturii calculate sunt stabile şi imune la zgomotul din circuit.

Figura 5: Algoritmul permite microcontrolerului să calibreze PGA pe valoarea de câştig cea mai potrivită. Dacă valoarea câştigului este prea mare sau prea mică, programul microcontrolerului intră într-o buclă până când rezultatele PGA sunt optime pentru valorile de ieşire ale convertorului A/D. Atunci când se verifică combinaţia optimă Convertor A/D/ PGA, valoarea CAD este liniarizată cu ajutorul unei tabele de căutare.

Figura 6: Graficul 1 ilustrează eroarea totală în funcţie de domeniul de temperatură al termistorului pe circuitul ce utilizează MCP6S26 (PGA), descris în Figura 2. Graficul 2 prezintă eroarea totală în funcţie de domeniul de temperatură al termistorului cu un amplificator buffer ce înlocuieşte MPC6S26. Datele din graficul 2 indică următoarele erori: eroarea rezistenţei termistorului = 1%, eroarea DC a convertorului £ ± 3,5LSB, eroarea câştigului PGA £ ± 0,1%, eroarea de offset a intrării PGA £ ± 1mV.

Se poate creşte rezoluţia convertorului A/D sau se pot comuta câteva rezistenţe (RA) în circuit, dar ambele opţiuni adaugă costuri şi complexitate. O a treia opţiune este păstrarea componentelor aşa cum sunt prezentate în Figura 2 şi utilizarea programabilităţii câştigului în PGA.
O atentă observare a răspunsului termic din Figura 3, arată că granularitatea se pierde la temperaturi mari. Dacă câştigul PGA este crescut la temperaturi mari, semnalul de ieşire din PGA va fi readus în domeniul în care convertorul A/D poate identifica cu siguranţă temperatura.
Această abordare utilizează schimbări la nivel de cod al microcontrolerului, şi nu la nivel hardware. Astfel reglajele din circuit implică numai timpul de programare. Figura 5 prezintă schema logică a algoritmului microcontrolerului. Firmware-ul PIC16F684 realizează eşantionare în timp real. Firmware-ul citeşte valoarea dată de convertorul A/D şi o trece către rutina de histerezis a PGA, care verifică parametrii câştigului PGA. Bazat pe acesta din urmă, microcontrolerul testează punctele de trecere (vedeţi Figura 4) cu ajutorul valorii convertorului A/D. Dacă această valoare este sub valoarea unui punct de trecere, microcontrolerul reglează câştigul PGA la următoarea valoare mai mare sau mai mică. Apoi firmware-ul verifică dacă a fost modificat câştigul PGA. Dacă nu s-a produs nici o modificare, programul continuă. Dacă a apărut o modificare, firmware-ul reciteşte valoarea convertorului A/D.
Când sunt cunoscute câştigul PGA şi valorile convertorului A/D, ambele sunt trecute rutinei de interpolare liniară pe porţiuni (PwLI). Microcontrolerul stabileşte legătura cu tabelul de căutare potrivit pentru câştigul PGA. Rutina PwLI converteşte valoarea convertorului A/D pe 10-biţi într-o valoare fixă pe 16-biţi reprezentând grade Celsius. Formatul cu punct zecimal permite raportarea valorii temperaturii în zecimi de grad. Figura 6 prezintă precizia acestui sistem.
Realizând interpolarea liniară pe porţiuni în zecimi de grad se oferă o mai bună rezoluţie. În cadrul designului final, proiectantul poate alege raportarea în zecimi de grad sau valori întregi. Obţinerea de date sigure de la senzori neliniari a fost întotdeauna o provocare pentru inginerii proiectanţi. Liniarizarea poate fi o sarcină relativ simplă dacă nu este necesară pe întreg domeniul de lucru al senzorului. Combinaţia dintre un microcontroler şi un PGA poate gestiona neliniaritatea termistorului pe o gamă largă de temperatură. Această tehnică operează bine cu termistori, dar poate fi utilizată cu oricare alţi senzori cu comportare neliniară.

de Bonnie C. Baker, Microchip Technology, Inc.
Bibliografie:
“Thermistor temperature sensing with MCP6SX2 PGAs”, Blake, Bible, AN897, Microchip Technology Inc., DS00897, 2004
“2322 640 5… : NTC thermistors, accuracy line,” Product Data Sheet, BC Components, September 27, 2001 (www.bccomponents.com).
“Introduction to NTCs: NTC thermistors,” Data Sheet, BC Components, March 27, 2001 (www.bccomponents.com).
“Thermistors in single-supply temperature sensing circuits,” Bonnie C. Baker, AN685, Microchip Technology Inc., DS00685, 1999.
“Temperature sensing with a programmable gain amplifier,” Bonnie C. Baker, AN867, Microchip Technology Inc., DS00867, 2003.
“Piecewise linear interpolation on PIC12/14/16 Series microcontrollers,”John Day and Steven Bible, AN942, Microchip Technology Inc., 2004.