Hallo, ich möchte gerne ein Präzisions Temperaturmessgerät entwickeln. Als Sensor soll ein NiCr-Ni Sensor mit einem Temperaturbereich von 0-1150°C eingesetzt werden. Hat jemand Informationen (Webseiten o.ä.) darüber wie eine Messschaltung bzw. die Anbindung eines solchen Sensors an einen AD-Wandler auszusehen hat bzw. was man alles für eine Präzisionsmessung beachten muß? Gruß Malte.
Hallo Malte da gibts ein paar fertige IC's: z.B. AD594 von Analog devices, und eines von Maxim. Selber entwickeln ist nicht einfach, da NiCrNi-Draht eine Spannung liefert und nicht wie PT100 seinen Widerstand ändert. Gerhard
Hi, das ist mir schon klar, ich wollte mich aber grundsätzlich mal mit der Materie befassen um das ganze besser zu verstehen. Gibt es vieleicht ein paar gute Info Seiten über solche Sensoren mit Kennlinien oder ähnlichem? Da die NiCr Sensoren ja grundsätzlich spannungen im mV bereich haben ist ja auch der Eingangswiderstand der Messchaltung nicht irrelevant... mich interessiert halt wie sowas grundsätzlich präzise gemessen werden kann. Aber danke schonmal für die Info... Gruß Malte.
Was ist denn bei Dir "präzise" ? 10° Genauigkeit kann man mit etwas Aufwand erreichen. Darunter hast Du als Bastler kaum Chancen in einem so großen Temperaturbereich. Peter
Hallo Malte versuchs doch mal bei Analog Devices und MAXIM, evtl haben die ja bei den Datenblättern der Bauteile was zu dem theoretischen Teil des Problems stehen, ist halt wohl auf englisch. Gerhard
Noch was Malte Peter Dannegger hat Recht: mit selber gebauten Lösungen kann man zwar lernen zu verstehen, wie das zeug funktioniert, aber wie eichste das ? Nach meiner Erfahrung geht das noch am Besten mit PT100. Da gibts Tabellen mit den Widerstandswerten in Abhängigkeit von der Temperatur. da kannste den Fühler in kochendes Wasser stecken, den Widerstand messen, in der Tabelle nachsehen, dann haste die Temperatur, PT100 an die Schaltung anschließen und auf den richtigen Wert einstellen. der Spaß hört aber schnell auf, weil auch der PT100 nicht ganz linear ist. Gerhard
Hallo zusammen, zugegeben, die Thermoelementemessung ist nicht ganz einfach. Wenn man die Messgenauigkeit in den Bereich besser 1°C treiben will ist allerdings ein nicht unerheblicher Mathematischer Aufwand auf der Softwareseite notwendig. Unmöglich ist es aber nicht. TE-Messung ist quasie mein tägliches Brot und da schaffen wir problemlos eine Genauigkeit des Messgerätes von 0,1°C. (16 Bit AD-Wandler, sehr genaue Referenz, umfangreiche Polynomberechnung). Bitte aber beachten, das ist die Genauigkeit des Gerätes und nicht die des Systems, bestehend aus Thermoelement und Gerät. Diese ist immer schlechter, denn die von einem Thermoelemente abgegebene Spannung ist zwar in der Norm EN 60584-1 genormt, nur weiss das nicht jedes Thermoelement. Ein Thermoelement verhält sich wie eine Spannungsquelle. Der Innenwiderstand ist dabei nicht so schlecht wie man vermuten könnte. Er liegt im Bereich von einigen Ohm und übersteigt nur selten 100 Ohm. Dies bedeutet, dass die Messsignalaufbereitung zunächst nicht all zu anspruchsvoll ist. Ein Eingangswiderstand mit einigen 100 KOhm ist ausreichend. Wichtiger ist, dass der Messverstärker einen kleinen Offset hat (den kann man aber auch abgleichen) und was noch wichtiger ist eine kleine Offsetdrift. Ganz wichtig ist zu wissen, dass die Spannung die ein Thermoelement abgibt, proportional der Temperaturdifferenz zwischen Messstelle und Vergleichstelle ist. (Die Vergleichstelle ist dort, wo die Drähte des Thermoelementes mit der Messschaltung verbunden werden.) Hat z.B. die Messstelle 200°C und die Vergleichstelle 25°C, so wird man eine Spannung messen, die 175° repräsentiert. Wäre die Vergleichstelle auch 200°C heiss, so würde überhaupt keine Spannung abgegeben. Man muss also für eine Temperaturmessung zwei Messungen durchführen. 1.) Spannung des Thermoelementes messen 2.) Temperatur an der Vergleichstelle ermitteln (macht man meist mit einem NTC) und diese Temperatur in eine äquivalente Spannung umrechnen. 3.) Die Spannung aus (1) mit der Spannung aus (2) addieren und dann nach der EN 60584-1 in die Temperatur umrechnen. Das ist alles. Weiterführende Infos findet man sicher im Internet. Empfehlen würde ich für das Verständnis würde ich den Klassiker "Halbleiter Schaltungstechnik" von Titze/Schenk. Dort findet man eigentlich alles. Diese Schwarte liest sich zwar nicht wie ein Roman, aber man liest darin immer öfters. Was das Abgleich anbelangt (Eichen tun nur die Eichbehörden) ist echt nicht ganz einfach. Da kommst du um einen sehr präzisen Spannungsgeber nicht herum. Der kostet, wenn er etwas taugen soll, allerdings gleich mehr als 1000 Euro. In diesem Sinne, viel Erfolg.
Hatte vor kurzem das lgeiche vor, und auch gemacht ..... Hatte zuerst einen stinknormalen OP verwendet, ja, dumm gelaufen, der hate eine Uoffset von einigen mV, was dann etlichen °C entspricht. Nun mit einem LT1014 (Reichelt, 6,3 ) geht es ganz gut. Wie kann ich eigentlich am besten externe Störungen (Peaks der Motorsteuerung) am besten rausfiltern, hat da mal einer einen Tip. Ich bin mal so frei : Polynome Berechung der Temperatur : #include "mte.h" double multi (double what, int often) { while (--often > 0) what=what*what; return what; } double polygone (double local,double b1, double b2, double b3) { return ( b1*local+ b2*multi(local,2)+ b3*multi(local,3) ); } double calcThermoCouple (int value,double vref,char which,int reftemp) { double local = (value/1023.0)*(vref); // in mV because OPAMP have G=101 double ret=reftemp; //convert local into correct mV-Level if (local<0) local=0; else local =local*1000.0/101.0; switch (which) { case KTYPE: // K-Typ ret = polygone(local,25.4176,-9.15598E-2,1.50829E-3); break; case JTYPE: // J-Typ ret = polygone(local,20.0416,-9.81011E-2,8.25592E-4); break; case TTYPE : // T-Typ ret = polygone(local,27.3747,-0.608074,9.68019E-3); break; case RTYPE : // R-Typ ret = polygone (local,136.086,-45.3369,0.128384); break; default: ret=value; } return (ret+reftemp); } Und hier die Header: #ifndef MTE_H #define MTE_H #include <inttypes.h> double multi (double what, int often); double polygone (double local,double b1, double b2, double b3); double calcThermoCouple ( int value,double vref, char which,int reftemp); enum ThermoCoupleType { MINTYPE, NONE, JTYPE, KTYPE, TTYPE, RTYPE, MAXTYPE }; int8_t EGT1Type; int8_t EGT2Type; int8_t EGT3Type; int8_t EGT4Type; #endif Und hier noch als Java-Test zum kurzen anschauen und vergleichen: /* * mte.java * * Created on 13. November 2003, 11:54 */ /** * * @author Thome */ public class mte { /** Creates a new instance of mte */ public mte() { } /** * @param args the command line arguments */ public static void main(String[] args) { double a1,a2,a3,vmax,vmaxalt; a1=3.93982/100; a2=1/100000; a3=4.01235/1000000000; vmaxalt=0; for (int i=0;i<=1023;i++) { vmax = a1*i + a2*(i*i) + a3*(i*i*i); System.out.println("Temp : " +i + " GradC Utemp: "+vmax+ " mV" + "delta :"+ (vmax-vmaxalt)); vmaxalt=vmax; } } }
Hi Dominic, >(Peaks der Motorsteuerung) am besten rausfiltern, hat da mal einer >einen Tip Versuche es mal mit einem MAX280! Hast Du eine Diff-messung oder eine geben GND? Liebe Grüße Tassilo
Hi, Die Messung geht gegen GND. Warum ausgerechnet Hardware ? Überdenke gerade die Messituation in Formeiner Softwarelösung. Mal kucken was dabei rauskommt, bin ja schliesslich geizig und das Layout schon fertig ;) Hier mal als Bild noch mit dem LM324 anstatt LT1014. Dominic
Hi Dominic, eine Messung gegen GND ist bei TC's immer schlecht. - wie Du siehst!! Software seitig würde ich einen Mittelwertfilter und die Gültigkeit der Werte abfragen! - Wenn ein Wert extrem daneben ist, dann schmeiß ihn in den Mülleimer!!! z.B. 20,5°C ; 20,9°C ; 20,3°C ; 500°C ; 20,5°C Liebe Grüße Tassilo
Hallo Malte !! Schau doch mal auf der Homepage der Fa. JUMO (www.jumo.net). Dort gibt's ANs zum Thema Thermoelemente , Widerstandsthermometer und Regelungstechnik zum Download. Gruss Jan
Hallo, hmm das es nicht einfach wird ist mir klar... ich hätte halt schon gerne eine messgenauigkeit im bereich von 1-2°C Wie exakt lässt sich denn die Temperatur mit hilfe eines standard ICs (wie eben von Maxim oder Analog Devices) bewerkstelligen? Klar das kommt dann letztendlich auf den AD Wandler an aber wie exakt wären denn diese ICs? Die Firma Greisinger z.B. stelle ja recht präzise instrumente her, leider erfüllen die günstigeren nicht meinen Funktionsumfang den ich gerne hätte und die anderen sind etwas zu teuer. Ausserdem interessiert mich ja die Technik an sich. Von daher scheue ich auch evtl. auftretende Mehrarbeit nicht. Wie detailiert geht denn der Tize/Schenk auf so sachen wie Temperaturkompensation u.ä. ein? Gruß Malte. Gruß Malte.
Hallo Malte, das kannst Du Dir ganz leicht selbst ausrechnen. Einfach den Javakompiler anwerfern und das kleine Javaprogrämmchen(für K-Typ) laufen lassen. Dann weisst Du in etwas wieviel mV Du pro °C erhälst. Im Schnitt sind es 0.05mV pro °C, also wirklich nicht viel. Ich habe mal die Ausgabe von mte.java als Anhang drangehängt. Also 1°C ist sicherlich theoretisch kein Problem, in der Praxis kommen dann die Probleme wie ich sie dank meiner Blauäugigkeit habe ;) Dominic
Hi Tassilo, an den Mittelwertfilter habe ich auch schon gedacht, genauso wie an die Gültigkeitsprüfung. Bei der Gültigkeitsgeschichte ist es nur blöd, daß innerhalb weniger Messpunkte große Temperaturdifferenzen auftreten können. Aber das sollte ja dann pro Messblock geprüft werden können. Wenn ich Dich richtig verstehe, soll ich 'einfach' nur den OP als Differenzverstäker betreiben und meine Probleme lösen sich in wohlgefallen auf ? Klingt logisch, da dann auf beiden Eingängen der hoffentlich die gleiche Störgröße einwirkt. Dann habe ich dummerweise doppelt soviele Leitunen, das freut den Kunden überhaupt nicht :( Dominic
auf dich werden noch ganz andere Probleme zukommen, von denen du bis jetzt wahrscheinlich nicht einmal gewusst hast, dass die existieren:-) als da wären: -jede Verbindung zweier verschiedener Metalle erzeugt eine Kontaktspannung -jede Verbindung zweier verschiedener Metalle ist selbst schon wieder ein Thermoelement einfach mal ein Thermoelement an einen mittelprächtigen OP anklemmen und Präzision erwarten, dass kann nichts werden. Zur Drift kommen Rauschen und Fehler des ADCs dazu. An die Kaltstellenkompensation hast du gedacht?
Hallo, für diese Aufgabe eignet sich der OP MAX 4238 bzw. MAX 4239 sehr gut; da: Geringe Offset Spannung: 0.1 µV Geringer Drift: 10 nV/°C Oder der MAX 6675 mit integrierter Kaltstellenkompensation und digitaler Schnittstelle (SPI). Eventuell vorhandene Störungen würde ich mit Hilfe eines Tiefpassfilters (FIR) in Software herausfiltern. Gruß Nico
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.