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 van een materiaal is gedefinieerd als de hoeveelheid warmte die nodig is om de temperatuur van een kilogram van het materiaal met één graad Celsius (of één Kelvin) te verhogen:
Waarbij de hoeveelheid warmte in Joules is, de massa in kilogram is en de verandering in temperatuur is. In deze proef nemen we voor de toegevoerde energie geleverd door de voedingsbron. Voor het geleverde vermogen geldt dan:
Hieruit volgt:
Met de gemeten tijd in seconden, de bronspanning in volt, 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 (, )
Voedingsbron
Thermometer of temperatuursensor
Stopwatch of timer

Een schematische weergave van de opstelling
Procedure¶
Procedure:
Vul de maatbeker met 500 ml water, of maak gebruik van de weegschaal en weeg 500 gram water af.
Meet de begintemperatuur m.b.v. de thermometer. Noteer deze waarde, dit is je .
Sluit de verwarmingselement aan op de DC power supply.
Stel de DC power supply in op 10 volt en 2 ampere
Zet het verwarmingselement in het water.
Houd de thermometer in het water en zet de roermachine aan.
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.
Zet de roermachine en de dc power supply uit. Ruim de opstelling op.
Veiligheid¶
We maken gebruik van een , 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 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")

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")

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 berekend, terwijl de theoretische soortelijke warmte van water een waarde van heeft. Duidelijk is er dus iets flink misgegaan.
Waarschijnlijke oorzaken:
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 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 , dan zou hieruit een grotere soortelijke warmte volgen (er is minder water verwarmd bij eenzelfde energie, dus meer energie nodig per verwarming).
Het genomen vermogen klopt niet. We hebben gekozen om een bronspanning van bij een stroomsterkte van 2A te nemen, waaruit een vermogen volgt van (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 . Deze waarde is niet strijdig en is daarmee een bewijs dat de manier van data analyseren wel voldoet.