Skip to content
Snippets Groups Projects
Commit 03dd2efe authored by Weimer, Leander's avatar Weimer, Leander
Browse files

small changes to ausarbeitung_newton

parent feeb5122
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Kalorimetrie Küchentischversuch - Newtonsches Abkühlungsgesetz
Author: Leander Weimer
Datum: 20.11.2024
Gruppe: 04
%% Cell type:markdown id: tags:
## Forschungsfrage
Formulieren Sie eine oder mehrere Forschungsfragen zu diesem Versuch.
%% Cell type:markdown id: tags:
Kann das Newtonsche Abkühlungsgesetz mit einem einfachen Küchentischversuch bestätigt werden?
%% Cell type:markdown id: tags:
## Versuchsaufbau und Durchführung
Beschreiben Sie den Versuchsaufbau und die Versuchsdurchführung. Machen Sie ein Bild von Ihrem Aufbau und nutzen Sie dieses mit zur Beschreibung.
%% Cell type:markdown id: tags:
### Aufbau
Eine Tasse wird mit heißem Wasser gefüllt.
Ein Temperatursensor wird in der Tasse platziert.
Ein zweiter Temperatursensor wird in der Umgebung platziert.
%% Cell type:markdown id: tags:
<img src="figures/Newton.jpg" width="800">
%% Cell type:markdown id: tags:
### Durchführung
Die Messung wird gestartet. Zehn Minuten lang zeichnet der Sensor in der Tasse die Temperatur des heißen Wassers auf, während der zweite Temperatursensor die Umgebungstemperatur aufzeichnet.
%% Cell type:markdown id: tags:
## Versuchsauswertung
%% Cell type:code id: tags:
``` python
# If you plan to write functions in another module,
# you can use importlib.reload(module) to reload the module
# at the beginning of each cell in order to make the latest
# changes take effect without restart the kernel.
import importlib
import h5py as h5
from matplotlib import pyplot as plt
import numpy as np
# Use FST-Style, if you don't like it, you can safely delete this line.
plt.style.use("asset/FST.mplstyle")
```
%% Cell type:markdown id: tags:
### Newtonsches Abkühlungsgesetz
Implementieren Sie das Programm zwischen TODO und DONE. Versuchen Sie die Anweisung zu verfolgen. Es ist aber nicht erforderlich.
%% Cell type:markdown id: tags:
#### (i) Messdaten einlesen
Messdaten werden in das Notebook eingelesen.
%% Cell type:code id: tags:
``` python
# TODO: Define the path to hdf5 file, which containing experiment data.
path = "data/newton/newton.hdf5"
# DONE #
```
%% Cell type:code id: tags:
``` python
# TODO: Read all experimental data and associated metadata from HDF5 files for data
# processing.
with h5.File(path, 'r') as file:
# read experiment metadata
experiment_metadata = file.attrs
# read data and metadata of sensor probe
sensor_probe = file['/RawData/1ef9f75c-196f-6c93-9890-8c723b545f4c']
sensor_probe_metadata = sensor_probe.attrs
temperature_probe = file['/RawData/1ef9f75c-196f-6c93-9890-8c723b545f4c/temperature']
timestamp_probe = file['/RawData/1ef9f75c-196f-6c93-9890-8c723b545f4c/timestamp']
temperature_probe_metadata = temperature_probe.attrs
timestamp_probe_metadata = timestamp_probe.attrs
temperature_probe_values = temperature_probe[:]
timestamp_probe_values = timestamp_probe[:]
# read data and metadata of sensor hot water
# read data and metadata of sensor environment
sensor_environment = file['/RawData/1ef9f761-e4fb-6d6e-ad53-6daeff26bf88']
sensor_environment_metadata = sensor_environment.attrs
temperature_environment = file['/RawData/1ef9f761-e4fb-6d6e-ad53-6daeff26bf88/temperature']
timestamp_environment = file['/RawData/1ef9f761-e4fb-6d6e-ad53-6daeff26bf88/timestamp']
temperature_environment_metadata = temperature_environment.attrs
timestamp_environment_metadata = timestamp_environment.attrs
temperature_environment_values = temperature_environment[:]
timestamp_environment_values = timestamp_environment[:]
# DONE #
```
%% Cell type:markdown id: tags:
#### (ii) Daten Semi–log ploten
Die Zeit und Temperaturdifferenz zwischen die Flüssigkeit und Umgebung wird aufgezeichnet.
Die y-Achse (Temperaturdifferenz) ist auf logarithmisch eingestellt, und die x-Achse (Zeit) hat eine lineare Skalierung.
%% Cell type:code id: tags:
``` python
# TODO: Use the temperature and time data for plotting
# calculate temperature difference
temp_dif = temperature_probe_values - temperature_environment_values
# create semilog plot
plt.semilogy(timestamp_probe_values, temp_dif)
# add labels and title
plt.xlabel("time in seconds")
plt.ylabel("temp. diff. in deg. Celsius")
plt.title("Temperature difference of Newton experiment")
# show
plt.show()
# DONE #
```
%% Output
%% Cell type:markdown id: tags:
#### (iii) Koeffizient in Newtonschem Abkühlungsgesetz
Die Funktion `np.polyfit` ist zu verwenden, um den Koeffizient $K$ zu bestimmen.
$$
T(t) - T_2 = (T_1 - T_2)e^{Kt}
$$
Dabei ist $T(t) - T_2$ der Verlauf der Temperaturdifferenz. Die Anfangstemperatur ist $T_1$, die Endtemperatur ist $T_2$.
%% Cell type:code id: tags:
``` python
# TODO: Determine coefficient in Newton's law of cooling
# calculate start temperature of probe as maximum temperature of probe
# to adjust for the fact that the sensor might not have been completely at the
# temperature of the water in the beginning
t_1 = np.max(temperature_probe_values)
# Calculate the environment temperature as the mean of all the recorded values
# for environment temperature
t_2 = np.mean(temperature_environment_values)
# transform temperature difference values to logarithmic
# Reason: Polyfit only made for polynomial fitting
temp_dif_log = np.log(temp_dif)
# fit linear modell to logarithmic values and extract slope
coefficients = np.polyfit(timestamp_probe_values, temp_dif_log, 1)
K = coefficients[0]
# to check data: generate fitted values
temp_dif_fit = (t_1 - t_2) * np.exp(K * timestamp_probe_values)
# plot original and fitted data to compare
plt.semilogy(timestamp_probe_values, temp_dif, label='original data')
plt.semilogy(timestamp_probe_values, temp_dif_fit, label='fitted data')
plt.xlabel("time in seconds")
plt.ylabel("temp. diff. in deg. Celsius")
plt.title("Temperature difference original versus fit")
plt.legend()
plt.show()
# DONE #
```
%% Output
%% Cell type:markdown id: tags:
Anmerkung zu dieser Visualisierung:
Ich sehe selbst, dass der fit nicht perfekt zu den Daten passt, sondern verschoben ist. Das kann ich mir aktuell nicht erklären.
Ich behalte ihn aber so bei, da die gefragte Variable, nämlich die Steigung der Geraden bzw. die Konstante der e-Funktion, gut zu passen scheint.
%% Cell type:markdown id: tags:
#### (iV) Ergebnis
%% Cell type:code id: tags:
``` python
# TODO: Print result
print(f"Der Koeffizient K des Newtonschen Abkühlungsgesetzes beträgt {K}")
print(f"Der Koeffizient K des Newtonschen Abkühlungsgesetzes beträgt {K} 1/s")
# DONE #
```
%% Output
Der Koeffizient K des Newtonschen Abkühlungsgesetzes beträgt -0.000527957587905116
Der Koeffizient K des Newtonschen Abkühlungsgesetzes beträgt -0.000527957587905116 1/s
%% Cell type:markdown id: tags:
## Diskussion
Analysieren Sie Ihre Ergebnisse aus wissenschaflticher Sicht. Berücksichtigen Sie dabei Ihre oben genannte Forschungsfrage.
Können Sie das Newtonsche Abkühlungsgesetz bestätigen?
%% Cell type:markdown id: tags:
Aus dem semilogarithmischen Plot kann man gut erkennen, dass die Temperaturdifferenz einer abklingenden Exponentialfunktion folgt. Diese ist in der Semilogarithmischen Darstellung eine Gerade.
Dies entspricht den Erwartungen aus dem Newtonschen Abkühlungsgesetz. Damit ist das Gesetzt als empirisches Gesetz zwar nicht bewiesen, es wurde aber auch nicht widerlegt und seine Gültigkeit im vorliegenden Fall wurde bestätigt.
Dies entspricht den Erwartungen aus dem Newtonschen Abkühlungsgesetz. Damit ist das Gesetzt als empirisches Gesetz zwar nicht bewiesen, es wurde aber auch nicht widerlegt und seine Gültigkeit im vorliegenden Fall wurde bestätigt. Es kann also auch in einem einfachen Küchentischversuch bestätigt werden.
%% Cell type:markdown id: tags:
## Fazit
Ziehen Sie ein persönliches Fazit zum Versuch.
%% Cell type:markdown id: tags:
Ich fand an diesem Versuch besonders interessant, wie leicht man physikalische Gesetze in zuhause generierten Daten wiederfindet. Ich frage mich allerdings immer noch, woher die Abweichung zwischen Fit und Daten kommt. Eventuell sind mir Fehler beim Messen oder Auswertung unterlaufen.
Ich fand an diesem Versuch besonders interessant, wie leicht man physikalische Gesetze in zuhause generierten Daten wiederfindet. Ich frage mich allerdings immer noch, woher die Abweichung zwischen Fit und Daten kommt. Eventuell sind mir Fehler beim Messen oder Auswerten unterlaufen.
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment