Tank Thermodynamics

MonteCarlo
  • #1
Hi guys,

I posted a thread in the DIY section about a heater controller I'm working on. The project has kind of branched out, but over the next few weeks, I'm going to conduct a full blown study on heating and thermal transfer in the aquarium.

Link to DIY Thread: TankBrain

Here's the first tidbit of data. The following graph shows a day's worth of temperature from my heater controller:


TankTemperature.png

The current setup is 2x 300W heaters in a 75 gallon tank.

Two things are readily apparent from this data, and I'll address them each below:
1) There is a big day vs night variation
2) There is a lot of high frequency noise (the line is zig-zaggy)

Lets hit up 2 first. This could be just noise in the system, or a coincidence. Or, it could be that that time period is the heater turning on and off, trying to maintain temperature. Unfortunately, due to technical limitations, the heater controller can only store 120 data points. That's one point every 12 minutes.

Fortunately, I built a faster (although somewhat less accurate) system that will use an old laptop for data collection:


20201130_173212.jpg

One probe for the tank, one for ambient air temperature. In the next day or two, I'll settle that and some other mysteries.

Back to number 1 - the day night variation. At first thought, you'd say, "Sure, the house gets colder at night." But that doesn't make sense. The heater measures water temperature and turns on and off accordingly. If it were so cold in my house that the heater couldn't keep up at night, it would be quite a coincidence that it works exactly right during the day. Also, if it were so close to the limit, the heater would be on nearly 100% of the time during the day, which isn't the case.

Here is my theory. The heater has a temperature sensor that in theory measures water temperature. In practice, since the sensor is inside the same glass tube as the heating element, it gets a little hotter the longer the heater runs for and/or the more it is running in general. Therefore, at night when the room is cold, the heater has to run more often/longer each time it turns on, and the sensor inside the unit stays slightly warmer. This causes the heater to shut off prematurely and the tank temperature to be lower than during the day.

I intend to test this hypothesis by comparing heater on time with ambient temperature and tank temperature. So stay tuned.
 

Advertisement
BigManAquatics
  • #2
Would be interesting to see. Just out of curiosity, what is the temp difference in your house between day and night? I usually turn the thermostat in the house down 2 degrees at night.. either to kick the A/C on a bit extra so i can fall asleep or so thefurnace shuts off for awhile and i can fall asleep.
 

Advertisement
MonteCarlo
  • Thread Starter
  • #3
Would be interesting to see. Just out of curiosity, what is the temp difference in your house between day and night? I usually turn the thermostat in the house down 2 degrees at night.. either to kick the A/C on a bit extra so i can fall asleep or so thefurnace shuts off for awhile and i can fall asleep.
68 or 70F during the day (depending on whether the wife or I got to it last). 60F at night. I'm on the metro Boston area, so this time of year it may or may not drop to 60F indoors in the dead of night.
 
BigManAquatics
  • #4
Still be some interesting data to see overall. Will keep my eye out!
 
MonteCarlo
  • Thread Starter
  • #5
OK, experimental apparatus is set up. Water temperature and air temperature should be recorded every 10 seconds or so for the next 24 hours. I'll report back tomorrow with my findings.


setup.jpg
 
AvalancheDave
  • #6
600 W for a 75 gal seems excessive.

Here's my tank from a few months ago. 125 gal with a 300 W Fluval E heater.


1606780755485.png
 

Advertisement



MonteCarlo
  • Thread Starter
  • #7
600 W for a 75 gal seems excessive.

Here's my tank from a few months ago. 125 gal with a 300 W Fluval E heater.

View attachment 747433
Yeah, 600W is more than I need. Redundancy and symmetry.

Awesome that you have data on hand. Can you blow up the Y axis so we can see detail? Also, it looks pretty steady, but I think I can kind of see an oscillation, presumably from the heater turning on and off.
Also, for reference, these are the heaters I'm using:

Amazon Link
 
AvalancheDave
  • #8
I remember fighting with FL's image-resizing before. Let's see how this goes:


1606788494454.png
 
MonteCarlo
  • Thread Starter
  • #9
I remember fighting with FL's image-resizing before. Let's see how this goes:

View attachment 747475
Thanks. Yeah, if its periodic, that's gotta be your heater turning on and off. It isn't on for much of the time. Quite stable too - better than the cheapo heaters. What was the air temperature like?
 
AvalancheDave
  • #10
Thanks. Yeah, if its periodic, that's gotta be your heater. It isn't on for much of the time. What was the air temperature like?

I actually did log air temperature at the same time. Average was 74 F.
 

Advertisement



MonteCarlo
  • Thread Starter
  • #11
I actually did log air temperature at the same time. Average was 74 F.
Cool. So, a much smaller delta T between the room and the water. Makes sense that the heater wouldn't come on all that much.
 
AvalancheDave
  • #12
Cool. So, a much smaller delta T between the room and the water. Makes sense that the heater wouldn't come on all that much.

I almost forgot I had a plug load logger connected during the same period:

https://i.imgur.com/9dcuGBQ.png

Compare to heating cold water in a barrel:

https://i.imgur.com/5DXUYQM.png

I'm having the plug load logger log tomorrow's heater activity since I never tried it during cold weather.
 
MonteCarlo
  • Thread Starter
  • #13
OK, a new day, some new data. Unfortunately, I had an issue with the laptop I was using, so I only have about 21 hours worth of data. The experiment will continue into tomorrow. Here's what I got:

Graph1.png
So, we have the same general trend that TankBrain found - colder at night. Water temperature correlates fairly well with air temperature and lags behind it. Makes sense - it takes a while for the tank to warm up and cool down.

This next graph shows just water temperature:

Chart3.png
The green line is a rolling average to reduce noise. Looks like you can plainly see the heater going on and off. About 15 and a half times in this time span - about 13 minutes a cycle. This data is from the middle of the night. Now lets look at the same graph, but during the day:

Graph4.png
About 14 cycles in the time period, or 14 and a quarter minutes per cycle. So far, it looks like my theory may be correct.

I want to take a full 24 hour data set, and I don't want to plug my prototype controller in just before bed either, so this is going to take another day.

Tomorrow's tests:
1) Measure the approximate heat capacity of the tank
2) Take a rough estimate of losses to the environment
3) Let TankBrain take control for the first time
 
AvalancheDave
  • #14
Here's the heater data from yesterday which was relatively cold:

2020-12-02 06_50_32-HOBOware.png
The Fluval E sure has an interesting duty cycle.

Zoomed in:

2020-12-02 06_49_52-HOBOware.png
Each grid line is 1 minute.

Full resolution versions:

https://i.imgur.com/da3PlhL.png

https://i.imgur.com/cwoRnsJ.png
 

Advertisement



2fishinabowl
  • #15
In practice, since the sensor is inside the same glass tube as the heating element, it gets a little hotter the longer the heater runs for and/or the more it is running in general. Therefore, at night when the room is cold, the heater has to run more often/longer each time it turns on, and the sensor inside the unit stays slightly warmer. This causes the heater to shut off prematurely and the tank temperature to be lower than during the day.

That makes perfect sense. We don't typically have our house thermostats located near heating vents or radiators for the same reason.

In our opinion the slightly lower nighttime aquarium temperature mimics what happens in the wild so having a heater controller isn't an absolute requirement.

That said, in a smaller tank or with really big ambient temperature changes, a controller is a MUST to avoid that fish freeze/fry effect...

Again. Opinion-only. Insert standard disclaimer here.
 
MonteCarlo
  • Thread Starter
  • #16
Here's the heater data from yesterday which was relatively cold:
View attachment 747879
The Fluval E sure has an interesting duty cycle.

Zoomed in:
View attachment 747880
Each grid line is 1 minute.

Full resolution versions:

https://i.imgur.com/da3PlhL.png

https://i.imgur.com/cwoRnsJ.png

Awesome data. Is it a clip on amp meter into a data logger?

Speaking of duty cycle, I think we can deduce Fluval's control strategy:

Run at approximately 4 minute cycles. Guess how much heat you need. Make the pulse width/on time that long. If you overshoot, skip a cycle or two. Lather, rinse and repeat.

TankBrain works like this:
You can have zero one or two heaters on. Every 6 minutes, see if we're too cold or too hot. If too hot, turn one heater off. If too cold, turn one more on.

I'll have more data tonight, but so far it looks good. Max deviation is under a tenth of a degree (wow). The problem is, the gain of the control loop is too high. On a day like today, you would want something like this (numbers are number of heaters on):

0-1-1-0-0-1-0-1-0-1-1-0-1-0-1 or something
what I'm getting is this:
0-1-2-1-0-0-0-1-2-1-0-0-0-0-1
It's over reacting. I need to say something to the effect of "Dont turn both heaters on unless you've had one on for a while, or the temperature is way too low".
That makes perfect sense. We don't typically have our house thermostats located near heating vents or radiators for the same reason.

In our opinion the slightly lower nighttime aquarium temperature mimics what happens in the wild so having a heater controller isn't an absolute requirement.

That said, in a smaller tank or with really big ambient temperature changes, a controller is a MUST to avoid that fish freeze/fry effect...

Again. Opinion-only. Insert standard disclaimer here.

Spot on and I love the thermostat analogy.

Tank Brain has the ability to set independent day and night temperatures, as well as start times. The code seems to work, but I dont know what works best from a biological standpoint.

OK, some more data. I finished data acquisition for just the heaters and begun the TankBrain experiment. I'll show a head to head comparison of 24 hours worth of data when that experiment is complete (i.e. tomorrow night). Here is what TankBrain looks like so far:

Graph1.png
The drop on the left side is because the tank was higher than the setpoint when I turned it on. Overall, the stability isn't bad: +/- ~0.1 F. I'll probably tweak the heater control scheme as I described above.

Now lets focus on the left side of the curve:

Chart2.png

The yellow is a line that I fit to the data. Looks like I lose about 0.0076 degrees F per minute, with the room at 68F.

Lets do some math. The heat capacity of water is 4184 J/liter K. I have a 75 gallon tank - call it 300 liters with the canister filter. Convert between C and F, etc. The heat loss is about 88W. So a 100W heater would keep the tank nice and toasty when the room is at 68F, but the heater would be running almost 100%. You're right, Dave - 600W is total overkill for a 75 g.

This is just an estimate for heat capacity. I'll measure it for real tomorrow by raising the temperature by a degree while I monitor heater current.

I can also measure heat loss at 60F room temp, if I can get permission to keep the house that cold for a day.
 
MonteCarlo
  • Thread Starter
  • #17
OK, first day of running TankBrain, no casualties.

Busy day at work today - I wrote the new code, but have not had a chance to test it. No other tests performed. Here is 24 hours of data (X axis is military time):

Ignore the graphical screwup. Clearly, my heaters aren't set high enough (or, if you prefer, the house gets too cold at night). I'll tweak that and provide some nice plots tomorrow evening, comparing the this data to just the heaters.
 
MonteCarlo
  • Thread Starter
  • #18
OK, Preliminary data this morning. Due to when I started the data logger, I won't have a full data set until about 6PM. Here is the temperature graph from TankBrain for the last 24 hours (vertical line at current time, about 10AM):

TankBrainOutput.jpg
Pretty good - no night time dip after I tweaked the heaters, just noise. Range is <0.3F. I'm excited to see if the new heater control algorithm works any better. Time will tell.

My mom always said I could never be a doctor. Not enough patience.
 

Advertisement



MonteCarlo
  • Thread Starter
  • #19
OK, New data, looking good.

Here's all the data:

Interesting how repeatable the air temperature is,especially the overshooting in the morning.

And here is the water data:

TankBrain2.png
About +/- 0.15 F. Not too bad. Over the weekend, I'm going to test the new heater firmware. I also want to get a measurement of temperature rise to improve on the ~80-100 Watts I'm estimating for heat loss.
 

Attachments

  • TankBrain1.png
    TankBrain1.png
    46.9 KB · Views: 37
MonteCarlo
  • Thread Starter
  • #20
Today's data: Rate of Rise Test.

I turned the temperature setpoint up by a degree to watch what happens. Here is what I got:

RoR1.png
Now, I'm going to zoom in on the part where the temperature is steadily rising:

RoR2.png
The yellow line is a fit to the data that shows the rate of temperature increase. If you remember from above, I watched the temperature fall, and estimated 88 Watts of heat loss to the environment by assuming the tank is 300 liters of pure water.

In that experiment, the temperature was falling by 0.0076 degrees per minute. During this heating experiment, we are still loosing that much heat. So even though the temperature goes up 0.0091 degrees F/minute, the heater is also putting out heat to compensate for 0.0076 degrees of loss per minute. So the total number is 0.0167 degrees F/Minute. Using the current transformers in TankBrain, I'm measuring about 1.90A. Multiply by 120 VAC, thats 228 Watts (the heater is rated 300W). Convert Watts to Joules per minute, Celcius to F, do some division, the heat capacity of the tank is about 1,475,000 Joules/Degree C. Plugging that value into the temperature drop experiment, the heat loss to the environment is about 104 watts at 68 F air temperature.

Why is there a discrepancy between the two experiments? Because the tank isn't exactly 300 liters of pure water. The glass, the fish, the substrate, the hoses for the filter, the filter media, all need to be warmed up. To look at it another way, the actual thermal mass of a 75 gallon tank is equivalent to about 88.5 gallons of pure water.
 
MonteCarlo
  • Thread Starter
  • #21
Ok, Long time no post. Work has been busy this week, and I've had a Pseudomugil that looked off, so my attention was elsewhere. Luckily, she is looking a lot better.

Here are the experiments planned for this weekend:

1) Water change calorimetry. How much does the temperature swing during a water change? While most of us probably don't dump 45 F tap water in there, I'll wager relatively few people use a spare heater to match tank temp. I usually drain about 9-10 gallons, then use 3x buckets of about 3+ gallons of water at room temperature. The addition is spaced out over an hour or two. We'll see what that does.

2) I've assembled the world's worst aquarium:

HellCube.jpg

Stocking plan is a pair of male bettas, and maybe a shoal of Pacu if I can cram them in.

Nah, I'm only pulling your leg, it's for hatching brine shrimp. This was sold as a 1 gallon. Using a scale, I could fit about 2.5 kg (liters) of water in there comfortably. Also, the heater is 50W, which is grossly overpowered for the size. Let's see how well this holds up. (poorly)
 
MonteCarlo
  • Thread Starter
  • #22
Saturday's Data. Water Change.

I did my usual water change routine. Fill 3x buckets with about 3 gallons of water a piece. Add dechlorinator and let them warm up for a while. Vacuum the substrate. Add a bucket, wait a half hour or so, repeat. Here's what happened:


WaterChange.png
The tank temp dropped about two degrees. Not that bad, but I should probably let the water warm up more. The first bucket was ~ 62F and the last was about 66F. Although with room temp being about 68F, maybe the better strategy is wait longer between buckets.

Also note the slow recovery time. Almost 3 hours. The whole time, TankBrain was commanding the heaters on, but the bimetals in the heaters did what they felt like doing. Heater power was bouncing between zero, 225 Watts and 450 Watts depending on how many heaters were on. I could maybe fix this a bit by jacking up the heater temperature more, but I'm not sure I care.

Tomorrow, I'll set up and instrument The Cube That Should Not Be.
 
MonteCarlo
  • Thread Starter
  • #23
Today's data: New Heater, New Tank:


HellCube2.jpg

The HellCube in operation.

And here is a day's worth of data:


HellCube-JustHeaters.png

Honestly, its much better than I was expecting. You can clearly see the temperature ping ponging as the heater turns on and off, but I thought it would be way worse. The standard deviation is about 0.56 F. This compares with 0.385 F on my 75 gallon and 0.066 F for TankBrain, Mark II.

Also, oddly, there is some bistability here - Also, the hottest room temperatures seem to correlate with the lowest water temperatures. Doesn't make a lot of sense.

Also, thermo experiments are on hold for the time being. I want to see how well TankBrain performs with the HellCube, but I don't want to remove it from my main tank. I'll post an update to the DIY thread later on.
 

Similar Aquarium Threads

  • Locked
Replies
7
Views
515
angelfishguppie
Replies
6
Views
378
Ioana Sundius
Replies
6
Views
184
newbietetra
  • Question
Replies
9
Views
589
ProudPapa
Replies
4
Views
14K
BottomDweller
Advertisement






Advertisement



Top Bottom