Model Temperature change of a glass of hot water

47 Views Asked by At

I want to learn more about ordinary and partial differential equations by using real world experiments. I try to model the temperature over time of hot water in a cylindric glass. I goal is to acchieve a model accuracy of +/-2°C to experimental values for a range of boiling temperature to room temperature. I don't want to make the model to complex (for beginning with real world examples), if it isn't necessary.

Experiment

Heat water till it boils and measure the temperature over a period of 60 minutes, with bigger intervals for later time periods.

Model temperature with a theoretical approach

I started with Newton's Law of Cooling $$\frac {dT} {dt} = -k(T-T_{ambient}) \Leftrightarrow T(t) = |T - T_{ambient}| e^{-kt}$$ I used initial- & boundary conditions to determine $k$ as best as possible. The temperature was only good for short time intervals from time zero. So Newton's Law of Cooling is just suited for small temperature intervals.

I tried to adjust the parameter of $k$ manually and used Python, Scipy curve_fit function to determine an ideal value. I realized that there are not enough degrees of freedom to fit my data correctly. I have observed that the model predicts lower temperatures for larger time values than the experiment have shown.

Image: Newtons Law of Cooling Approach

Additionally I tried to use Python, Scipy curve_fit function to determine the best values for the equation $T(t) = ae^{-b (t-c)} + d$ which generated the following result: Image: Python, Scipy curve_fit Approach. It is the best result I have acchieved yet. Nevertheless, I am still not satisfied with the result. The error for small time values is still to large.

So I try to incorporate more information into the equation. I assume that the temperature distribution of the water is homogeneous. I thought about using thermal conductivity $\lambda$, $[\lambda] = \frac {W}{mK}$, which tells how the heat travels through the glass and the specific isobar heat capacity of water $c_p$, $[c_p] = \frac {J}{kg K}$, which tells how much heat is gained/lost per Kelvin for a specified mass of water. I thought about incorporating these equations $Q = cm \Delta T$ and $\dot{Q} = \frac \lambda s A \Delta T$ with $A$ as the surface between the fluid and the glass and $s$ as thickness of the glass in my equations. I thought about a function of $$\frac {dT}{dt} = \frac {\lambda A}{c_p m s}(T-T_{ambient})$$ Since there would be also only one degree of freedom, if I assume the parameters as constant (to reduce overall complexity), it would result in the same problem.

Wikipedia gave me another idea with the heat equation article. The article suggests the differential equation $$\frac {du}{dt} = \frac {d^2u}{dx^2}$$ It seems reasonable to me incorporating a second derivative into my unknown differential equation. Since I assume that the temperature in my glass is homogeneous I don't know how to adjust it accordingly. I know that (regarding Image: Python, Scipy curve_fit Approach) my function needs a higher curvature to get closer to my datapoints.

Can someone help me with this problem?