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.

Bepaling van soortelijke warmte van water

Introductie

Water heeft een enorme buffercapaciteit: je moet veel energie toevoegen om de temperatuur van water een graad te verwarmen. In dit practicum gaan we de soortelijke warmte van water bepalen door een bekende hoeveelheid water te verwarmen met een bekende hoeveelheid energie, en de temperatuurstijging te meten.

Theorie

De soortelijke warmte cc van een materiaal is gedefinieerd als de hoeveelheid warmte QQ die nodig is om de temperatuur TT van een kilogram van het materiaal met één graad Celsius (of één Kelvin) te verhogen:

c=QmΔTc = \frac{Q}{m \Delta T}

Waarbij QQ de hoeveelheid warmte in Joules is, mm de massa in kilogram is en ΔT\Delta T de verandering in temperatuur is. In deze proef nemen we voor QQ de toegevoerde energie geleverd door de voedingsbron. Voor het geleverde vermogen geldt dan:

P=UIP = {U}*{I}

Hieruit volgt:

Q=Ebron=Pt=UItQ = E_{bron} = {P}*{t} = {U}*{I}*{t}

Met tt de gemeten tijd in seconden, UU de bronspanning in volt, II de stroomsterkte in ampere. Tijdens deze proef gaan we er even vanuit dat het rendement van het proces 1 is, oftewel er geen energie verloren gaat aan de omgeving.

Verder gebruiken we tijdens deze proef de eigenschap dichtheid van water (1000 kg/m³) om volume om te rekenen naar massa.

Methode en materialen

Ontwerp

Een waterbad met bekende massa aan water wordt verwarmd met een elektrisch verwarmingselement dat een bekende hoeveelheid energie levert. De temperatuur van het water wordt gemeten met een temperatuursensor. Door de temperatuurstijging als functie van de tijd te meten kan de soortelijke warmte van water worden berekend.

Materialen

Hieronder staat de lijst van benodigde materialen bij deze proef:

  • Maatbeker

  • Weegschaal

  • Water

  • Elektrisch verwarmingselement (10Ω10 \mathrm{\Omega}, 10W10 \mathrm{W})

  • Voedingsbron

  • Thermometer of temperatuursensor

  • Stopwatch of timer

Een schematische weergave van de opstelling

Een schematische weergave van de opstelling

Procedure

Procedure:

  1. Vul de maatbeker met 500 ml water, of maak gebruik van de weegschaal en weeg 500 gram water af.

  2. Meet de begintemperatuur m.b.v. de thermometer. Noteer deze waarde, dit is je T0T_0.

  3. Sluit de verwarmingselement aan op de DC power supply.

  4. Stel de DC power supply in op 10 volt en 2 ampere

  5. Zet het verwarmingselement in het water.

  6. Houd de thermometer in het water en zet de roermachine aan.

  7. Zet vervolgens de DC power supply aan, en noteer om de 10 seconden de temperatuur die de thermometer aan geeft, noem deze T1, T2, T3 en door tot T6.

  8. Zet de roermachine en de dc power supply uit. Ruim de opstelling op.

Veiligheid

We maken gebruik van een 10Ω10 \mathrm{\Omega}, 10W10 \mathrm{W} weerstand. Deze wordt snel heet. De bronspanning mag dan ook alleen aan wanneer de weerstand in het water zit. Raak de weerstand niet aan tijdens het experiment. Omdat de weerstand in het water zit, kunnen we wel het elektrisch vermogen hoger zetten zonder dat de weerstand oververhit raakt. Het maximaal vermogen mag 40W40 \mathrm{W} zijn. Daarbij moet de roerder wel aanstaan om de warmte goed te verdelen.

Resultaten

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit 
# Eigen meetwaarden

massa1 = 0.5 #kg
volt1 = 10 #V
ampere1 = 2 #A
temp1 = np.array([17.1, 17.5, 17.8, 18.3, 18.6, 19.2, 19.5]) + 273.15 #K
tijd1 = np.array([0,10,20,30,40,50,60]) #s
# Data-analyse: EIGEN DATA

vermogen1 = volt1 * ampere1 #W
dtemp1 = temp1 - temp1[0] #K          

def dT_fit(t,c):                        # Fitfunctie om c te bepalen. Q = m*c*delta_T -> delta_T = Q / (m*c).
    return vermogen1 * t/(c*massa1)       # Met Q = vermogen * tijd.
 
values1, pcov1 =curve_fit(dT_fit,tijd1,dtemp1)

c1 = values1[0]
u_c1 = np.sqrt(pcov1[0][0])

x_fit1=np.linspace(0,max(tijd1), 1000)       # Fitwaardes aanmaken voor het plotten van de curve-fit.
y_fit1=dT_fit(x_fit1,c1)

plt.figure()
plt.plot(tijd1, dtemp1, 'k.',label='Data')
plt.plot(x_fit1,y_fit1, "r--", label='Fit')
plt.ylabel('$\\Delta T$ (K)')
plt.xlabel('$\\Delta t$ (s)')
plt.savefig("Figures/cwater1.png", dpi=450)
plt.legend()
plt.show()

print("De soortelijke warmtecapaciteit van water is",np.round(c1), "+/-", np.round(u_c1),"J/kg.K")
<Figure size 640x480 with 1 Axes>
De soortelijke warmtecapaciteit van water is 1003.0 +/- 19.0 J/kg.K
# Strijdigheids analyse:
if abs(4180 - c1) > (np.sqrt((0)**2 + (u_c1**2))):
 print("Waarden zijn niet overeenkomstig!!")
else:
 print("Waarden zijn in overeenkomst!")
Waarden zijn niet overeenkomstig!!
# Als resultaat met onderstaande data-analyse volgt een c-waarde van 1003 J/kgK. Theoretische waarde is 4180 J/kgK,
# dus de ondervonden waarde zit daar met een factor 4 naast, duidelijk strijdig. In de discussie wordt verder
# ingegaan op mogelijke oorzaken. voor nu gaan we dezelfde data analyse toepassen op data geleend van andere
# studenten.
# Data analyse: DATA VAN FELIX JACOBS EN JELLE KOOLOOS

massa2 = 0.4976 #kg
volt2 = 17.3 #V
ampere2 = 1.8 #A

temp2 = np.array([21.8,22.0,22.3,22.6,22.9,23.0,23.3,23.6,23.8,24.2,24.6,24.7,24.9,25.2,25.4,25.8,26.2,26.3]) +273.15 #C
tijd2 = np.array([20,40,60,80,90,100,120,140,160,180,200,220,240,260,280,300,320,340]) #s

vermogen2 = volt2 * ampere2 #W
dtemp2 = temp2 - 294.55 #K          Deze correctie wordt toegepast, omdat het eerste meetpunt (t=0s) weggelaten is 
                                # om de deltatijd te berekenen nemen we dit punt echter WEL mee. De gemeten 
                                # temperatuur was 21.4 graden. Dit punt nemen we dus ipv temp[0].

def dT_fit(t,c):                        # Fitfunctie om c te bepalen. Q = m*c*delta_T -> delta_T = Q / (m*c).
    return vermogen2 * t/(c*massa2)       # Met Q = vermogen * tijd.
 
values2, pcov2 =curve_fit(dT_fit,tijd2,dtemp2)

c2 = values2[0]
u_c2 = np.sqrt(pcov2[0][0])

x_fit2=np.linspace(0,max(tijd2), 1000)       # Fitwaardes aanmaken voor het plotten van de curve-fit.
y_fit2=dT_fit(x_fit2,c2)

plt.figure()
plt.plot(tijd2, dtemp2, 'k.',label='Data')
plt.plot(x_fit2,y_fit2, "r--", label='Fit')
plt.ylabel('$\\Delta T$ (K)')
plt.xlabel('$\\Delta t$ (s)')
plt.savefig("Figures/cwater2.png", dpi=450)
plt.legend()
plt.show()

print("De soortelijke warmtecapaciteit van water is",np.round(c2), "+/-", np.round(u_c2),"J/kg.K")
<Figure size 640x480 with 1 Axes>
De soortelijke warmtecapaciteit van water is 4209.0 +/- 37.0 J/kg.K
# Strijdigheids analyse:
if abs(4180 - c2) > (np.sqrt((0)**2 + (u_c2**2))):
 print("Waarden zijn niet overeenkomstig!!")
else:
 print("Waarden zijn in overeenkomst!")
Waarden zijn in overeenkomst!

Discussie en conclusie

Uit deze proef met de oorspronkelijke data is een soortelijke warmte van 1003.0±19.0J/(kgK)1003.0 \pm 19.0 J/(kg\cdot K) berekend, terwijl de theoretische soortelijke warmte van water een waarde van 4180J/(kgK)4180 J/(kg\cdot K) heeft. Duidelijk is er dus iets flink misgegaan.

Waarschijnlijke oorzaken:

  1. De massa wijkt af van de werkelijke waarde. We hebben in het meetplan opgesteld dat het water een volume van 500ml moest hebben, ervanuitgaande dat we hiermee een massa van 0.5kg0.5kg zouden krijgen. Tijdens de proef is niet gecheckt of deze massa ook daadwerkelijk een halve kilo is, dus hier zouden afwijkingen zeer waarschijnlijk zijn. Stel dat de massa in werkelijkheid kleiner was dan 0.5kg0.5 kg, dan zou hieruit een grotere soortelijke warmte volgen (er is minder water verwarmd bij eenzelfde energie, dus meer energie nodig per verwarming).

  2. Het genomen vermogen klopt niet. We hebben gekozen om een bronspanning van 10V10 V bij een stroomsterkte van 2A te nemen, waaruit een vermogen volgt van 10W10 W (P=U*I). We hebben niet kunnen checken of dit ook daadwerkelijk het vermogen was wat het verwarmingselement tijdens de verwarming heeft geleverd (of uberhaupt op welke deze is ingesteld). Er is een aanzienlijke kans dat deze dus ook niet klopt en dus hoger zou zijn geweest.

We zouden kunnen stellen dat de massa in werkelijkheid 2x zo klein was en het vermogen juist 2x zo groot. Gezien het verband komt dit neer op een waarde voor c die 4x zo groot is en dus dichter in de buurt komt bij de theoretische waarde. Een concrete correctie van de data kunnen we niet toepassen, omdat we hier werken met in ieder geval 2 afwijkende variabelen.

Uit de data analyse met de tweede dataset volgt een waarde van 4209.0±37.0J/(kgK)4209.0 \pm 37.0 J/(kg\cdot K). Deze waarde is niet strijdig en is daarmee een bewijs dat de manier van data analyseren wel voldoet.