Introductie¶
Volgens de ideale gaswet wordt het volume van een (ideaal) gas gegeven door:
waarin
het aantal mol gas,
de ideale gasconstante,
de absolute temperatuur,
de druk.
In dit practicum veranderen we de temperatuur en meten we de verandering van het volume van het gas. De proef is met name kwalitatief van aard en laat zien hoe lastig het is een extensieve grootheid als volume te meten.
Methode en materialen¶
Ontwerp¶
Om het volume van een hoeveelheid gas bij constante druk te meten is niet zo eenvoudig. Je kunt het gas vrij eenvoudig in een ballon stoppen en dan schatten hoe de diameter van de ballon verandert als functie van de temperatuur, maar dat geeft een relatief grote fout (waarom?). We maken daarom gebruik van de wet van Archimedes.
Materialen¶
eenvoudige feestballon
bekerglas
tweede bekerglas om mee bij te vullen
thermometer
verhittingsplaat
deksel met vulcilinder met maatstrepen (met iets kleinere diameter dan interne diameter maatbeker)
(per 5 groepjes) een maatcilinder
Procedure¶
Blaas de ballon op, maar niet verder dan in diameter. Deze moet makkelijk in de maatbeker passen.
Knoop de ballon goed dicht zodat er geen lucht kan ontsnappen.
Dompel de ballon onder in de maatbeker met water met behulp van het deksel.
Pas het waterniveau aan zodat de meniscus (de bovenkant van het water) bij een van de onderste maatstrepen van de vulcilinder van het deksel zit.
Let op dat er luchtbellen kunnen plakken aan de ballon wat leidt tot een systematische fout. Verifieer dat je zo min mogelijk systematische fouten maakt en meet op welke maatstreep de meniscus zich bevindt.
Verhoog stapsgewijst de temperatuur van het water (en dus de ballon). Let op dat je de temperatuur maximaal een graad of 20 kan verhogen, want als je voorbij de vulcilinder komt met de meniscus, dan kan je de volumeverandering niet meer nauwkeurig bepalen.
Laat het geheel na elke temperatuurtoename een minuut ‘rusten’ om zo de tijd te geven om in thermisch evenwicht te komen.
Meet na elke temperatuurtoename de temperatuur en de positie van de meniscus.
Het verschiloppervlak tussen de binnendiameter van de maatbeker en de buitendiameter van de vulcilinder is . Je kunt die handmatig kalibreren met behulp van de kleine maatcilinder die in het lokaal aanwezig is. De maatstreepjes die op de vulcilinder zijn gekerfd zitten op een onderlinge afstand van .
Als je kritisch nadenkt over deze grafiek en de extrapolatie, dan kun je bezwaar maken tegen de precisie van deze proef. Het water in de maatbeker zet ook uit onder de verhoging van de temperatuur en geeft een systematische fout. Daar kun je een correctie voor uitvoeren. Voer die correctie uit als je nog genoeg tijd hebt:
Resultaten¶
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
#data uit practicum
temps = [18.9,22.5,25.8,29.0,32.3,34.9,38.9,41.2] #graden
hoogtes = np.array([2,3.5,5.0,6.0,7.5,8.5,10,11.0]) / 10 #cm
beginvolume_water1 = 200 #cm3
#berekenen volumeverhoging per streepje
diam_beker = 7.66 # cm
diam_deksel = 6.77 # cm
opp_water = 1/4 * np.pi * (diam_beker**2 - diam_deksel**2) #cm2
volumes = (np.asarray(hoogtes) - hoogtes[0]) * opp_water + beginvolume_water1 #cm3
temps_abs = np.asarray(temps) + 273 #kelvin
#functiefit
def functionfit(x,a,b):
return a*x + b
val1,cov1 = curve_fit(functionfit, temps_abs, volumes)
Tfit1 = np.linspace(0, max(temps_abs)+1, 100)
Vfit1 = functionfit(Tfit1, *val1)
#resultaat
print('Het beginvolume van de ballon is:', round(Vfit1[0],1), 'cm^3')
#grafiek
plt.plot()
plt.title('Volumestijging water met ballon')
plt.xlim(min(temps_abs)-1, max(temps_abs)+1)
plt.ylim(min(volumes)-1, max(volumes)+1)
plt.plot(temps_abs, volumes, 'ob')
plt.plot(Tfit1,Vfit1, '--r')
plt.xlabel('Temperature [K]')
plt.ylabel('Volume [ccm]')
plt.show()Het beginvolume van de ballon is: 82.3 cm^3

#data zonder ballon
beginvolume_water2 = 280 #cm3
temps_2 = [17.3,20.5,26.1,31.5,38.0,42.0,46.8,51.3,61.0,70.8] #graden
hoogtes_2 = np.array([5.0,5.8,6.2,6.8,7.5,8.0,9.0,10.0,13.0,15.0]) / 10 #cm
temps_abs2 = np.asarray(temps_2) + 273 #kelvin
volumes_2 = (np.asarray(hoogtes_2) - hoogtes_2[0]) * opp_water + beginvolume_water2 #cm3
#lineaire functiefit
val2,cov2 = curve_fit(functionfit, temps_abs2, volumes_2)
Tfit2 = np.linspace(min(temps_abs2), max(temps_abs2), 100)
Vfit2 = functionfit(Tfit2, *val2)
#grafiek
plt.figure()
plt.title('Volumestijging water zonder ballon')
plt.xlim(min(temps_abs2)-1, max(temps_abs2)+1)
plt.plot(temps_abs2,volumes_2,'k.')
plt.plot(Tfit2, Vfit2, '--b')
plt.xlabel('Temperature [K]')
plt.ylabel('Volume [ccm]')
#plt.plot(Tfit1, Vfit1 - (beginvolume_water1/beginvolume_water2)*Vfit2, '--g')
#corrigeren voor volumeverandering door verhitting per mL water
print('Het gecorrigeerde volume van de ballon is:', round(-(Vfit1 - (beginvolume_water1/beginvolume_water2)*Vfit2)[0],1), 'cm^3')
Het gecorrigeerde volume van de ballon is: 117.3 cm^3

Discussie en conclusie¶
Het berekende volume van 117 voor de ballon zou kunnen kloppen, want uit het schatten van het volume van de ballon aan de hand van de afmetingen kwam ongeveer hetzelfde. Tijdens de eerste meting werd geen rekening gehouden met de uitzetting van het water. Dit geeft een systematische fout. Bij de tweede meting is de uitzetting van een bekerglas met water geanalyseerd om vervolgens te kunnen compenseren voor de uitzetting van het water in de eerste meting. De corrigering zou nauwkeuriger zijn als er op het meetbereik van de eerste meting tijdens de tweede meting ook meer meetpunten zouden zijn. Nu is er namelijk tijdens de tweede meting bij hogere temperaturen gemeten.