#! /usr/bin/env python
# -*- coding: utf-8 -*-
%matplotlib inline
import matplotlib.pyplot as plt
import math
from math import *
from scipy import *
from pylab import *
from scipy.optimize import curve_fit
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import Image
Image(filename='manip_confinement/20200322_160953_2.jpg') # photo du setup, une bouteille de Bordeaux comme résonateur d'Helmoltz.
#astuces: mettre le micro d'écouteurs de smartphone dans le col de la bouteille pour la prise de son.
# utiliser un verre doseur de cuisine pour faire varier le volume d'air dans la bouteille en mettant de l'eau
volume=array([75,10,20,30,40,50,60,70]) # volume d'air dans la bouteille / hors col en cL
frequence=array([109,281,216,172,153,128,122,113]) # Hz mesuré avec PhyPhox "mode autocorrélation audio"
volume=volume*1e-5
plt.loglog(volume, frequence, 'o')
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("volume (m-3)",fontsize=15)
plt.ylabel("fréquence du son (Hz)",fontsize=15)
plt.xlim(8e-5,1e-3)
plt.ylim(50,500)
#plt.legend(loc=0,fontsize=15)
plt.show()
On commence par chercher la loi de puissance en V^-0.5
def f_puiss(x, a,b):
return a*x**b
pop, covop = curve_fit(f_puiss, volume, frequence)
power = pop[1]
d_power=sqrt(covop[1,1])
print("puissance=",power,"+/-",d_power)
xth = np.linspace(8e-5, 1e-3, num=40)
fth = f_puiss(xth,pop[0],power)
plt.loglog(xth, fth, "-m")
plt.loglog(volume, frequence, 'o')
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("volume (m-3)",fontsize=15)
plt.ylabel("fréquence du son (Hz)",fontsize=15)
plt.xlim(8e-5,1e-3)
plt.ylim(50,500)
#plt.legend(loc=0,fontsize=15)
plt.show()
C'est bon. On ajuste par une loi en V^-1/2
def f_lin(x, a):
return a*x
pop, covop = curve_fit(f_lin, sqrt(1/volume), frequence)
aop = pop[0]
print(aop) # en Hz.m^3/2
le col a un rayon de 9.5 mm et une longueur de 75 mm
la fréquence du résonateur est donné par $f_o = \frac{1}{2\pi}\sqrt{\frac{\gamma P_o A}{\rho V L}}$
où A est la surface de la base du col, L sa longueur, V est le volume d'air dans la bouteille (hors col), $\rho$ est la masse volumique de l'air, $\p_o$ la pression de l'air, $\gamma$ le rapport des capacités thermiques CP/CV de l'air
On peut donc extraire la valeur de $\gamma$ de cette étude
R=9.5e-3
L=75e-3
Po=1e5
rho=1.293
gamma=aop*aop*4*3.1415*3.1415*L*rho*rho/(Po*3.1415*R*R)
print('gamma=',gamma)
C'est plutôt pas mal!
from IPython.display import Image
Image(filename='manip_confinement/20200322_163621_2.jpg') # de futurs résonateurs d'Helmoltz