I am trying to monitor the temperature of a water heater tank. I can't put my sensor inside the tank, but the tank is insulated, and I have one sensor inside the insulation, right up against the metal tank surface.
Is there a fairly easy way to make a formula that I can adjust to compensate for heat loss of the tank to get a good estimate on the internal temperature? I have another sensor outside the insulation and not near the tank, so I have a good clue of the ambient temperature.. The two sensors read within 1/2 a degree when they are right next to each other. I'm using DS18B20's.
For example:
The ambient temperature I measured is 68F
The sensor inside the insulation reads 87F
and if I vent water directly from the tank into a cup, with a thermometer, it measures 112F
I'm sure the answer lies in Calculus - but I never made it that far so I don't know where to start.
Did you try using some heat sink compound to improve thermal conductivity between the tank and your sensor? The thermostat that controls the water heater is just pressed against the steel tank, held by a spring clip (at least on mine, which I had to work on last week). Steel is a pretty lousy insulator (hence the insulation jacket around the tank), so I would think it would be reasonably close to the water temperature.
Not sure, but maybe the math you are looking for is the heat transfer properties of steel?
I believe most home water heaters are glass lined steel tanks so I don't think that the outer steel tank temperature would ever measure the same as the internal water due to the glass and steel. However if the outer cover insulation is effective then one could hope that the steel skin temperature would be a fixed constant offset of the water temp. This must be true as someone already said the existing temperature sensor is mounted to the outside of the steel shell.
So I guess it's just a matter of determining the amount of this fixed offset temp and add it to your sensors measurement. It might just be a matter of taking water sample temeperatures at various different control temerature points and see if the offset is constant or not.
You only need calculus if you want to calculate the heat flow or the rate of cooling. As the rate of cooling is proportional to excess temperature and as it cools excess temperature also drops so you need a bit of differentiation here.
However temperature differences can be treated as liner over the ranges we have here.
What you want to know is the thermal resistance of the tank. As others have said if it is metal there is not so much of a thermal gradient across it and I would be surprised if it was greater than a degree or so. Therefore for practical purposes I would just use the reading you have.
The ambient temperature I measured is 68F
The sensor inside the insulation reads 87F
and if I vent water directly from the tank into a cup, with a thermometer, it measures 112F
This suggests that the sensor is not in touch with the actual water tank. If the tank is made of steel it should have almost the same temperature as the water.
You might have a double wall tank (not sure what the correct English term for this is), which has an outer tank enclosing the actual water tank. Unless the water tank has a leak there will be a layer of air between the water tank and the outer tank, and the outer tank will be much colder than the water. In this case you have no other option than mounting the sensor inside the tank.
Yes, there are a number of items between the sensor and the actual water temperature.. but those items are a constant and should be able to be compensated for... this includes cooling of the water through heat loss...
For instance... if I leave the water heater off... it will eventually lose all heat and reach a temperature near ambient... so the ambient and sensor both will read ambient.. and we'd then know that the tank must also be at or near ambient..
From this bit of knowledge, I could create a slope for the values I got and I could probably reasonably believe that at an ambient of 68F..
I could use 2.3 x sensor temp - 89 would give me a tank temp of 112..
but as ambient changes, it will affect the slope... it has to, because it will cause the heat loss to increase... so how can I further calculate the equation to compensate for that third unknown?
This is really out of my league, but I don't think you can do it the way to want.
First of all, what do you need the ambient temperature for? The difference between the temperature inside the insulation and the ambient temperature will only tell you something about the thermal properties of the material(s) between these two sensors. I don't think it will say anything useful about the water temperature.
Also, if there are many different materials/objects between the sensor and the water it will be difficult to calculate an accurate temperature.
You need to know the temperature as close as possible to the tank, and the thermal properties between the sensor and the water. Then the water temperature is the only unknown factor and you should be able to calculate it. I have no clue on how to do that though
Btw. is it really impossible to mount the sensor on the tank itself or - even better - inside the tank? What kind of tank is this? Where is the thermostat sensor mounted?
Don't use a multiplier, this is a simple temperature gradient or delta (change). Therefore all you have to do is add that difference to your reading.
A simple experiment should confirm this. Measure the temperature at the sensor and the temperature of the water when the ambient temperature is high. Then do the same when the ambient temperature is low. The difference between the measured temperatures should be the same.
However, in this case it will restrict the range of the sensor severely. In this case the difference between the ambient temperature and the temperature inside the insulation is only 10C. The difference between the sensor and water is 14C. This means that you can't measure water temperatures below 14C above ambient, or in this case a 10C drop in water temperature.
how about an empirical method, baselined off of ambient temp? if a clear relationship is revealed, then you can just interpolate between a lookup table.
so for example, I would read the data you provided as "when the wall is 19deg above ambient, the tank is 44deg above ambient"
if you take various measurements you should be able to build a pretty good relationship between (wall-ambient) and (tank-ambient)
I predict one of two things will happen.
you'll get a pretty decent curve, which you can put into a lookup table.
your values will be all over the place. in which case no method using just those two temps will work. there'll be some other factor you'll need to take into account. maybe the amount of water in the tank or the rate of heating.
I was reading on the US Dept. of Energy site on how they test water heater efficiency..
Seems they split the tank into 6 equal volumes and place a sensor at each of these 6 levels, then average the values together to compensate for stratification of hot water. I think this is maybe one of the main reasons my readings aren't too accurate.
I only have one sensor.. in the lower half, just above the thermal switch, pressed against the tank. So I'm going to experiment with two or more sensors and try to also find ways to reduce the thermal losses of my sensors somehow.
As for some temp readings I got:
Ambient Sensor Tank
68 87 112
68 93 102
60 105 120
59 84 110 (1 hour after draining 1 gallon of hot water to make above measurement..)
55 73 112 (this morning after shower drained some of the heat)
The difference between water temperature and your reading varies a lot. So either there's something wrong with Grumpy_Mike's physics, or something wrong with your readings Most likely the latter.
You say that you've placed the sensor in the lower half of the tank. If this is a domestic hot water tank, the lower half of the tank is where the temperature varies the most when you use hot water. This is simply because the inlet is at the bottom, and because cold water sinks. This is why the thermal switch is at the bottom, as it regulates the heating element which also is at the bottom.
If you put your sensor at the top of the tank you should get more consistent readings.