Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Is het verdamping?

In dit experiment is er een verwarmingselement in een met water gevulde maatbeker gestopt. Elke minuut is de temperatuur van het water gemeten. Deze metingen zijn opgeslagen in tempmetingen.csv.

Verder is gegeven dat: mmaatbeker=820.8grm_{maatbeker} = 820.8 \mathrm{gr}
mmaatbeker+water,start=1292.9grm_{maatbeker + water, start} = 1292.9 \mathrm{gr}
mmaatbeker+water,eind=1274.9grm_{maatbeker + water, eind} = 1274.9 \mathrm{gr}

Het moge duidelijk zijn dat er water is ‘verdwenen’. Ook is de eindtemperatuur van het water niet gelijk aan een proces waarbij verdamping en eventuele warmteverliezen niet meegenomen worden.

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# Gegeven data en constante waarden
# Berekening massa water
m_maatbeker = 0.8208  # massa van de maatbeker in kg
m_maatbeker_en_water_start = 1.2929 # massa van de maatbeker + water aan het begin in kg
m_maatbeker_en_water_eind = 1.2749 # massa van de maatbeker + water aan het eind in kg
c_water = 4186 # soortelijke warmte van water in J/(kg·K)
m_water_start = m_maatbeker_en_water_start - m_maatbeker  # massa van het water aan het begin in kg
print(f'Massa van het water aan het begin: {m_water_start:.2f} kg')
m_water_eind = m_maatbeker_en_water_eind - m_maatbeker  # massa van het water aan het eind in kg
print(f'Massa van het water aan het eind: {m_water_eind:.2f} kg')
m_water_verloren = m_water_start - m_water_eind  # massa van het water dat is verdampt in kg
print(f'Massa van het water dat is verdampt: {m_water_verloren:.2f} kg')
Massa van het water aan het begin: 0.47 kg
Massa van het water aan het eind: 0.45 kg
Massa van het water dat is verdampt: 0.02 kg
# Temperature measurements and power estimation 

tempmetingen = np.loadtxt('tempmetingen.csv', delimiter=';', skiprows=1)
t = tempmetingen[:,0]  # tijd in minuten
t_sec = t * 60  # tijd in seconden
T = tempmetingen[:,1]  # temperatuur in graden Celsius

# Vermogen : T(t) - T (omgeving) = (P * t) / (m_water_start * c_water)
def bereken_vermogen(t, P):
    return 21.2 + (P * t) / (m_water_start * c_water)
    
# Bereken het vermogen aan de hand van de eerste 5 meetpunten (lineaire benadering)
popt, pcov = curve_fit(bereken_vermogen, t_sec[:5], T[:5]) 
P_fit = popt[0]
u_P_fit = np.sqrt(np.diag(pcov))[0]
print(f'Geschat vermogen: {P_fit:.2f} W ± {u_P_fit:.2f} W')  # vermogen in Watt 
# Theoretische temperatuurverloop zonder verdamping
T_theorie = bereken_vermogen(P_fit, t_sec)

#2 Energie en rendement

# Bereken de hoeveelheid energie die is toegevoegd
E_toegevoegd = P_fit * t_sec[-1]  # in Joules
print(f'Totaal toegevoegde energie: {E_toegevoegd:.2f} J')

# Bereken de hoeveelheid energie die is gebruikt voor verdamping
L_vaporisatie = 2501600  # Latente warmte van verdamping voor water in J/kg gevonden in tabel A2
E_verdampt = m_water_verloren * L_vaporisatie  # in Joules
print(f'Totaal gebruikte energie voor verdamping: {E_verdampt:.2f} J')

# Bereken het rendement
rendement = ((E_toegevoegd - E_verdampt) / E_toegevoegd) * 100  # in procenten
print(f'Rendement van het verwarmingsproces: {rendement:.2f} %')
Geschat vermogen: 44.57 W ± 0.36 W
Totaal toegevoegde energie: 160468.30 J
Totaal gebruikte energie voor verdamping: 45028.80 J
Rendement van het verwarmingsproces: 71.94 %
# Numerieke Simulatie met Verdamping

# Parameters en Startwaarden
dt = 10                  # Tijdstap in seconden
t_sim = np.arange(0, t_sec[-1], dt)
T_sim = np.zeros(len(t_sim))
T_sim[0] = T[0]          # Starttemperatuur uit je metingen
m_nu = m_water_start

# schatten een verdampingsconstante (k)
# dm = k * (T - T_omgeving)
# Hoe hoger de T, hoe meer massa er per seconde verdampt
delta_T_avg = np.mean(T) - 20  # Gemiddeld temperatuurverschil met omgeving (20°C)
print(f'Gemiddeld temperatuurverschil met omgeving: {delta_T_avg:.2f} °C')
dm = m_water_verloren  # totale massa verlies tijdens het experiment
t_totaal = t_sec[-1]  # totale tijd van het experiment in seconden
k_evap = dm/((delta_T_avg)*t_totaal)  # eenvoudige schatting op basis van gemeten massa verlies
print(f'Schatting van de verdampingsconstante k: {k_evap:.2e} kg/(s·°C)') 

# De Numerieke Simulatie 
for i in range(1, len(t_sim)):
    # Energiebalans per tijdstap dt:
    Q_in = P_fit * dt
    
    # Verdamping hangt af van temperatuurverschil met omgeving
    # dm = k * (T - T_omgeving)
    dm = k_evap * (T_sim[i-1] - 20) * dt
    if T_sim[i-1] < 20: dm = 0 # Geen verdamping onder kamertemperatuur
    
    Q_uit_evap = dm * L_vaporisatie
    m_nu -= dm # De massa van het water neemt af
    
    # Temperatuurverandering: dT = Q_netto / (m * c)
    dT = (Q_in - Q_uit_evap) / (m_nu * c_water)
    T_sim[i] = T_sim[i-1] + dT

# Theoretische Lineaire Trendlijn zonder Verdamping
# Simulatie met verdamping vergelijken met theorie zonder verdamping
# Reële metingen
# Plotten van de vergelijking
plt.figure(figsize=(10, 6), dpi=450)
plt.plot(t_sec, T, 'r+', label='Metingen (Realiteit)')
plt.plot(t_sec, T_theorie, 'g--', label='Lineaire Trendlijn (Geen verdamping)')
plt.plot(t_sim, T_sim, 'b-', label='Numerieke Simulatie (Inclusief verdamping)')
plt.xlabel('$t$ (s)')
plt.ylabel('$T$ $(^\circ C)$', rotation=0, labelpad=20)
plt.axhline(0, color='black', linewidth=0.8)
plt.axvline(0, color='black', linewidth=0.8)
plt.title('Vergelijking: Theorie vs. Simulatie vs. Metingen')
plt.legend()
plt.grid(True)
plt.show()
Gemiddeld temperatuurverschil met omgeving: 34.72 °C
Schatting van de verdampingsconstante k: 1.44e-07 kg/(s·°C)
<Figure size 4500x2700 with 1 Axes>
# Verbeteringen en reflectie

print("Mogelijke verbeteringen aan het experiment kunnen zijn:")
print("- Gebruik een beter geïsoleerde maatbeker om warmteverlies te verminderen.")
print("- Meet de omgevingstemperatuur en corrigeer voor warmteverlies aan de omgeving.")
print("- Gebruik een nauwkeurigere thermometer voor betere temperatuurmetingen.")
print("- Herhaal het experiment meerdere keren om gemiddelde waarden te verkrijgen en de precisie te verbeteren.")
print("- De druk constant houden zodat er geen fouten worden gemaakt door veranderende druk in de berekening van het vermogen. Het kookpunt verschilt namelijk erg als de druk varieert gedurende de tijd.")
Mogelijke verbeteringen aan het experiment kunnen zijn:
- Gebruik een beter geïsoleerde maatbeker om warmteverlies te verminderen.
- Meet de omgevingstemperatuur en corrigeer voor warmteverlies aan de omgeving.
- Gebruik een nauwkeurigere thermometer voor betere temperatuurmetingen.
- Herhaal het experiment meerdere keren om gemiddelde waarden te verkrijgen en de precisie te verbeteren.
- De druk constant houden zodat er geen fouten worden gemaakt door veranderende druk in de berekening van het vermogen. Het kookpunt verschilt namelijk erg als de druk varieert gedurende de tijd.