DIY Cold junction Compensation on a DMM6500 - 1 Kg of copper - Page 1
Forum section: electronics / testgear

author: HendriXML
author_rank: Super Contributor
timestamp: November 24, 2019, 10:15:56 pm
content: I recently got a Keithley DMM6500 (6.5 digit bench MM). It has several options to do temperature measurements (thermocouple, RTD, thermistor).Thermocouplesensors measure relative temperatures, between the hot and cold side. There two thing one needs to know to know the hot side temperature, the generated voltage and the cold side temperature.On this DMM the cold side temp can be set manually, but is not measured automatically (and not controlled to a fixed known temperature).In this experiment I'll investigate whether it is possible to keep an external cold side junction at 40 deg C, and perform accurate temperature measurements. I'll be using the setup I tested a while ago:https://www.eevblog.com/forum/projects/very-stable-temperature-control/A cheap K-type thermocouple will be used, and will be "calibrated" using ice water and boiling water.The following things are important:The 2 wires at the junction will connect with (pure) copperThe cold junction connections will be kept at 40 deg CThe wire/connectors to the DMM will be of the same metal and have same junction temperatures. Checks will be done whether voltage is generated when it shouldn'tAbout the setup: the tip 122's are heaters and the lm335Z is the used temperature sensor.Cold junction on heatsink.JPG: in the previous setup a simple diode was under testInsights and suggestions are welcome!

author: Kleinstein
author_rank: Super Contributor
timestamp: November 25, 2019, 04:04:14 pm
content: The cables can carray quite some heat flow, especially the copper ones of thick. So it would be a good idea to use low cross section copper cables.Another point is getting good thermal contact between the cable and the cold junction block - e.g. wrap the cable around the block to get more length in contact.For the thermocouple the relatively affordable yellow (type K) connectors work quite well.Temperature measurement often comes with several points to measure. So it may be a good idea to include something like 2 TC channels.P.S. 40 C is rather warm. As there is no large heat source (except the temp. sensor) in the cold junction, I would go for a lower temperature, more like 300 K.

author: HendriXML
author_rank: Super Contributor
timestamp: November 25, 2019, 07:22:41 pm
content: Quote from: Kleinstein on November 25, 2019, 04:04:14 pm40 deg C was chosen because that's about the maximum environment temperature that can be reached in summer at the eLab. I thought about switching between 20 and 40 deg.The problem of the copper wires lowering the temp I might tackle by putting the sensor and junctions in water, where the copper would spiral for some length so that it is at the right temperature near the junction. But I'm still thinking about how to contain this water and heat it up. But I also investigated the need for copper, and from what I've come to understand it is not required.

author: Kleinstein
author_rank: Super Contributor
timestamp: November 25, 2019, 07:44:31 pm
content: One can get around the copper wires to the cold junction: use the thermocouple wires to the "cold" (40C) junction and than have two equal thermocouple wire to copper junctions outside at room temperature.I would avoid water. It causes more problems than is solves. For a similar setup (though only measuring the temperature, but 4 channels) I used a length of multi strand flat cable wrapped around a block if iron and fixed by glue.If using copper one could still go with relatively thin enamel wires and have a few more turns - this is even better than the termocouple wires, as there is more surface area to couple. The ratio of thermal to electrical resistance is essentially fixed anyway - so copper is not that bad, just different dimensions (longer or thinner wire) needed.

author: HendriXML
author_rank: Super Contributor
timestamp: November 25, 2019, 07:46:54 pm
content: Before making further decisions I've tried to model the situation.In "Temperature points.png" I've draw the wires and the different temperature points (A-H) at each location.In "Graphs - table.png" are some fictional numbers, which show what could be measured at point (A-H).In "Graphs.png" I've plotted the temperature and voltages at locations (A-H). Potential A-B is about neg and positive wires. And do not refer to the named points.It essentially shows that different alloys have different V/T slopes. And if the alloys are the same the "generated voltages" remain parallel.The X-axis shows the wire distance relative to the MM.The following statements describe how I've come to understand how the Seebeck effect works.The length of the wires have no effectThe material/alloy determines how much EMF is generated at a certain temperatureA temperature difference results in a voltage difference, how much is dependent on the alloy and the cold junction tempDifferent alloys and the same difference in temperature mean a difference in voltage proportional to that temperature differenceNo temperature difference - no voltage differenceMixing metals - like soldering the cold junction- do not have an effect if there's no temperature difference around that junctionThe connection from the cold junction to the MM does not need to be copper. A single alloy or having symmetry (in combination with symmetrical temperature differences) when using multiple alloys is importantVoltage is not "generated" at the junction, the voltage difference is build up in sections with temperature differences. If those sections have the same alloy, pos/neg cancel each other out, otherwise a voltage remains.If some statements seems wrong, please let me know.

author: Kleinstein
author_rank: Super Contributor
timestamp: November 25, 2019, 08:24:02 pm
content: Point 7 is not strictly correct. Except for special nV meter it is not guaranteed that the terminals have exactly the same temperature. One can sometimes improve things with a thermal shield around the terminals. So using wires much different from copper can cause a small error (usually less than a few µV). So normally one should have copper wires going to the DMM.For a test one can try a "short" with a constantan wire.The thermal EMF is not strictly proportional to the temperature difference. This is only an approximation and working relatively good for type K thermo-couples. With copper - constantan (another relatively popular choice) the better approximation (though not well known) is actually the difference in kelvin temperature squared. This is because for this pair the Seebecke coefficient is about proportional to temperature.

author: HendriXML
author_rank: Super Contributor
timestamp: November 25, 2019, 09:23:45 pm
content: Quote from: Kleinstein on November 25, 2019, 08:24:02 pmI added to point 7 that the temp differences should symmetrical also. So going for one alloy is an easy solution if that can not be guaranteed, but it doesn't need to be copper per se. (I guess). The statement is about the fact that it always the combination of temperature differences and material differences. If only one is different there's no Seebeck(e) effect measurable.I knew the relation dV/dT wasn't lineair, but I had forgotten that a proportional relation is even more strict...

author: HendriXML
author_rank: Super Contributor
timestamp: November 25, 2019, 10:14:11 pm
content: Using the statements an ideal cold junction setup can be imagined.It should be of a precisely known temperature, this temperature is used by the DMM to translate to an offset voltage. That voltage is subtracted from the measured one. The remaining voltage is then translated to a hot junction temperature.The entering (thermocouple) and exiting wires (copper) must be connected at this known temperature. That seems easy, but as said by Kleinstein wires can "cool" or "heat" the connections. So a significant amout of wire before and after must approximate that temperature. A fluid would be an excellent choice to have an evenly spread temperature. Thinner wires or longer wires can help with the temperature adaptation. Even in the most ideal situation there is some heat conducted via the wires from the environment.(Having them in contact with the heaters could "disconnect" the from the environment temperature. But might also ve to much, it depends on what temp the heaters are stabilized)The known temperature should also be stable. This means a large thermal mass and good thermal conductivity and of course stable PID control. Water seems a good candidate in that regard.Temperature differences should be minimal, this means isolating the junction temperature and heat up things evenly.My circuit uses 2 transistor heaters, those could heat up water using an heatsink, as done previously.I think this all can be realized is if the wire connections and thermosensor are "thermally connected", made waterproof and placed in the water with a small distance from the heatsink in the thermocup I used before.

author: HendriXML
author_rank: Super Contributor
timestamp: November 25, 2019, 11:30:17 pm
content: Quote from: Kleinstein on November 25, 2019, 08:24:02 pmThe MM connectors do have plating, so at the location where there's a thermal difference, there are then at least 2 different metals at play. Having a plug that adopts easily to the MM temp might also be an idea. No temp difference - no voltage.

author: Kleinstein
author_rank: Super Contributor
timestamp: November 26, 2019, 11:13:43 am
content: Water has high heat capacity, but poor thermal conductivity. There can be quite some temperature difference in a water bath without steering.I think a massive block of metal should be a better choice. In stead of wires in water, one could glue the wires to the surface for quite some length.The thermal conductivity of epoxy is lower than for water, but not by much and the layer can be thinner and less insulation needed.For the sensor, I am not sure the LM335 is the best choice. For just a stable I would consider a diode in glass case. A diode can work with very low power.

author: HendriXML
author_rank: Super Contributor
timestamp: November 26, 2019, 01:29:50 pm
content: True,Abut the lm335 sensor, it is what I have at the moment.This one would be a good choice if one needs to stabilize at a precise fixed temperature.https://www.ti.com/lit/ds/symlink/lmt70.pdfAbout poor conductivity of water, I assume that doesn't matter much because of the good isolation of the cup. It might take 30 minutes to have the temp at 40 deg. I will of course use the DMM to check how stable the temp will be.I'll glue the connections to the lm335. Then I'll add a layer of hot glue. Then heatshrink, so its bundled together. That with some extra wire is mounted between the heatsinks and put in water. A lot of poor thermal conductors, but the sensor and connectors will be at the same temp after some while, and stable because of the thermal mass.For now its just an experiment, its not really optimal in user convenience.

author: HendriXML
author_rank: Super Contributor
timestamp: November 27, 2019, 10:22:05 pm
content: So I implemented the bundled connections on the sensor in a heat-shrinked tube in the water between the heatsinks.Then I've ran a test to have it "settle" on 30 deg C. That takes about 30 minutes. I measured the difference between the target voltage and the output of the LM335 (10 mV / °C) during 2.5 hours.But did it stabilize?As can be seen not really, it oscillated with an amplitude of about 6 mV (0.6° C) with a period of 24 min.I don't think it will stabilize within a day, so I may have to tune the PID control.The regulation however will never be fast using this setup. For a practical solution I would have left this path of the water bucket. But then I would also miss the opportunity to learn more about PID control.One of the main reasons it can't seem to find a stable power output is the very slow feedback. It takes so long that the U2A won't regulate proportionally at the turning points. The charge of C3 goes from min to max and from max to min.Adding a parallel resistor to limit the amplification might be an solution. But this will also mean that there will always be a small difference between the set temperature and the measured one.If for example the amplification is 1A/°C and it needs a settling current of 0.1A, then there will be a difference of 0.1°C between the set and the actual temp.The data shows it will probably need a smaller amplification like 100mA/°C, which would result in a 1.0°C difference. That's not acceptable, especially because it depends on how much current is needed to keep it at the target temp and which is dependent on the environment temp.Any suggestions on what may stabilize the control?(I agree with that the water and other poor thermal conductors attribute to the oscillations)

author: Kleinstein
author_rank: Super Contributor
timestamp: November 28, 2019, 10:31:55 am
content: The water based system is pretty slow, with internal slow coupling. So it would need a really slow PID setting, that can be a little tricky analog way, as the cap gets even larger. The current circuit does not have a differential part yet, that may help with stabilizating it - however adding one more parameter to set correctly. Another point may be to have some anti wind-up for the integral part. So no more charging the capacitor when the heater is at it's limits. This is however difficult to implement analog.It may help to have the temperature sensor relatively close coupled to the heaters - this would leave much of the slow part out of the control. However than the regulation would not react much to external effect only effecting the water part. As a compromise there may be a 2 nd sensor close to the heater, used for the differential part only.

author: HendriXML
author_rank: Super Contributor
timestamp: November 29, 2019, 09:53:23 pm
content: I've made the error amplification less, but that seems to result in an offset (10 mV on R11) which would probably take days to become less. (Or is it caused by the op amp input current?)I also made a fun compound component, I replaced the zener diode with a LED (D2) this lights a LDR (R8), both are isolated in a heat shrinked tube. R8 goes from a few hundred ohms to above 100M depending on whether the heater is saturated. I used that resistor to pull the target reference down a few deg C. The idea is that it would slow down the heating before it reached the target temp. I don't think it works very well though. But it was an attempt to have something differential build into it.Writing control software for this problem would not be hard, but to capture it in analog electronics is indeed difficult (for me).When I thought of using water the initial idea was to have it surrounded by metal which would heat it up evenly. But it conducts heat so poorly when it's static, it would probably oscillate at a to large temperature amplitude in that case also. And because of the thermal mass / high thermal resistance it reacts so slow that it would take a long time to regulate to a stable heating power even with a good PID controller.I could make the water in the bucket moving, that would change it to one of the best conductors around. I'll have to give that some thoughts.

author: HendriXML
author_rank: Super Contributor
timestamp: November 29, 2019, 10:14:41 pm
content: The setup is running for 8.5 hours now. With every cycle the amplitude (10mV/C) seem to get smaller. The offset (about -12 mV) is likely to stay.I think I'll let it run for the night. It's not practical anymore, but still interesting to see where it will end.

author: HendriXML
author_rank: Super Contributor
timestamp: November 30, 2019, 10:38:55 pm
content: I've let it run overnight and it did become more stable. Ending with a difference amplitude of 0,5 mV.After that I started measurements of the temperature reading of the LM335Z output. My voltage reference (an AWG) fluctuates some fractions of a mV, so regulating that error will show up then as well.After some settling that had an amplitude of 0.5 mV as well. Which would mean when taking 10m V/°C. that sensor fluctuated only 0.05 °C over a very long time.That's not bad!At the end I did a temperature measurement with the cold junction at 39.148°C of boiling water. It read: 100.91 °CWith an 0.70 euro thermocouple that's not bad, and also because the LM335Z is hardly accurate to 1 °C.My fluke 179 showed 98.2 °CI didn't have ice cubes, so I skipped the ice water measurement.It seems that using an 40 °C cold junction has potential. The setup is in it's current state way to slow. Also it could do with a better voltage reference and a better temp sensor.I would like it to be a bit more stable, but it's hard to say what negative impact the unstable voltage ref had.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 01, 2019, 09:13:17 am
content: The more normal cold junction correction use only temperature measurement. For Type K TCs and not too large a temperature swing one can use just 40 µV / C as a compensation voltage. Here the 10 mV/°C output from the LM335 could come handy as it would only need a divider to 1:250 to get the 40 µV/C. This would result in a virtual 0 C cold junction. Similar circuits are (at least were) available as a ready made product and battery power (not much power needed - probably a different sensor).The weakly dampened oscillation suggest that the regulator adjustment is just borderline to oscillation. So slightly less (e.g. 20%) gain should improve things and just a little more would be just sustained oscillation as wanted for the Nichols/Ziegler type adjustment. However here the regulator is not like pure proportional, more like nearly pure integral. The very slow oscillation suggest that it would need a much larger time constant (R14 x C3). The easy change would be a larger (e.g. x 2...x 10) C3, to get less integral response. It may need a different regulator circuit to use such large time constants, without making the circuit very high impedance.

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 11:54:58 am
content: Inducing a compensation voltage would certainly be less power hungry. From what I understand of it, to do an exact compensation voltage one would need to know the hot side temperature as well. From the virtual 0 to the hot side the average dV/dT might be different at different temperatures. If one does not account for that, the compensation voltage would be inaccurate, depending on the difference between the virtual cold junction and the actual one.I've made a graph of the average dV/dT until a certain temp showing this. (The errors are quite small 0.033 °C max at 20 °C, but that might double at 40 °C actual cold side junction temperature)P.S. the graph seem to not support the examples below on the error temperature axis. I probably should rethink that portion of the graph.. In the 700 °C example, the difference would be about 1 °C.HendriXML of the future talking: I goofed up that part of the graph

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 12:19:20 pm
content: Quote from: Kleinstein on December 01, 2019, 09:13:17 amI used 6 x 10uF ceramics, which the most I want to throw at it. Using elco's is probably a bad idea as the polarity might be different for different temperatures.The setup is indeed to sensitive for oscillation so I won't be using it. Creating a water flow would be hard with the materials at hand, so I think I'll try to find some more copper.

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 01:32:46 pm
content: Once I bought a water cooled harddrive box. That could cool 2 HD's by placing them between 2 copperplates of 1 Kg each. Those copper plates would have water through them. The heat was extracted this way when putting the stuff in an sound isolating box.One of those plates is going to be the subject of the next experiment.The sensor and junctions are going to be in the middle. The tip 120's are going a bit further away from center.When heating up it will overshoot a bit, but this excessive heat will be draw away by thermal conductivity toward the sides. When heating up this will be the major cooling effect. This will also oscillate a few times, but will result in a stable temperature much faster than the water approach.The placement of the heaters is key in stabilizing this setup fast, oscillation is used to find the right heating power.I think this will settle in about 30 minutes, after that only the thermal loss to the environment needs to be powered. Using a lot of styrofoam should make this loss as little as possible. I hope for 100 mW.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 01, 2019, 03:15:05 pm
content: The electronic simulation does not need to know the hot temperature. It only has to simulate the thermal EMF from the new virtual reference point (usually 0 C) and the actual junction temperature. For the usually small range it is normally OK to use a simple linear approximation, assuming constant thermopower from some 0 C to room temperature. For type K thermocouples this is a good enough approximation.The next better approximation would include a constant part to bring the simulated cold junction temperature to exactly 0 C with the best slope for room temperature. The LM335 give 10 mV/K, so it would need an offset anyway ! I would prefer a lower power sensor, possibly a diode.I know the problem with the large caps for a slow regulator. One can get around it, using a second OP for the integrator. This gives a divider after that OP as an additional way to adjust the time constant, effectively like a capacitor multiplier. If sized right it can also give a limit to the integral part (no perfect anti wind-up, but at least a coarse limit).The all metal solution is probably better anyway, if one wants to go the hard way with a fixed temperature.

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 06:08:03 pm
content: Quote from: Kleinstein on December 01, 2019, 03:15:05 pmWhat compensationshouldbe generated is (a tiny bit) dependent on the temperature difference.This can be shown in example of two "measurements", one at 0 deg and one at 700 deg. (Please correct me if I'm wrong..)With the possibilities given by the DMM, the fixed temp method seems the most accurate compensation method.That I'll take that approach is not about splitting hairs, but it seems like a fun experiment with lots of possibilities to learn. Also I like doing measurements…HendriXML of the future talking: This table is wrong - the lookup of the temp difference voltage is invalid

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 07:00:33 pm
content: Here's an image of the bar of copper. Those ware the days that copper was still used without huge costs..As heaters I think 2 TO-3 cased transistors with Sil-Pad™ should a be better choice than TO220. (More contact area, better mounting possibilities)

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 07:30:44 pm
content: Quote from: HendriXML on December 01, 2019, 06:08:03 pmI've got to redo this table, I made the false assumption that the NIS table was symmetrical in going from high to low or from low to high temperature.

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 07:41:34 pm
content: This would be the correct table:The difference is now even more ..Maybe if I continue calculating the world will fall apart...HendriXML of the future talking: This table is wrong - the lookup of the generated voltage is invalidSo the world is safe again!

author: Kleinstein
author_rank: Super Contributor
timestamp: December 01, 2019, 08:10:39 pm
content: The cold junction compensation is only really caring about the thermo-power from the virtual reference temperature (e.g. 0 C) and the temperature of the actual junction. Just imaging using the simulated cold junction to also measure an actual thermocouple at 0 C in parallel.One could either use the simulation or the actual TC to 0 C.Really important is only the thermal EMF around the cold junction temperatures, so around room temperature. The part in between is just to set the actual offset.The piece of copper is really huge. Thermal equalization scales with the distance square, so smaller can really be faster. It should still be much faster than the water version. Symmetry can reduce the effective size to about half.

author: HendriXML
author_rank: Super Contributor
timestamp: December 01, 2019, 11:36:27 pm
content: I now understand why I was wrong. One of the starting statements above was not complete:A temperature difference results in a voltage difference, how much is dependent on the alloyShould beA temperature difference results in a voltage difference, how much is dependent on the alloy and the cold junction temp.I assumed that any same temp difference would lead to thesamevoltage difference. But that's not the case - which seems also more logical…To use the translation tables one needs to know the cold junction temp even for calculating a temperature difference.

author: HendriXML
author_rank: Super Contributor
timestamp: December 02, 2019, 12:15:41 am
content: Quote from: Kleinstein on December 01, 2019, 08:10:39 pmI would like it to be smaller and of different size too, but heating up this amount may also be more fun because it asks for more max power. But as said the shape can be used to have some controlled and dampening oscillating happening in the heat up fase.