In [1]:
#! /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
In [2]:
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
Out[2]:
In [3]:
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
In [4]:
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

In [5]:
def f_puiss(x, a,b):
    return a*x**b
In [6]:
pop, covop = curve_fit(f_puiss, volume, frequence)
power = pop[1]
d_power=sqrt(covop[1,1])
print("puissance=",power,"+/-",d_power)
puissance= -0.4695894642184855 +/- 0.015487695673857766
In [7]:
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

In [8]:
def f_lin(x, a):
    return a*x
In [9]:
pop, covop = curve_fit(f_lin, sqrt(1/volume), frequence)
aop = pop[0]
In [10]:
print(aop) # en Hz.m^3/2
2.931196875892331

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

In [11]:
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)
gamma= 1.5000237529247507

C'est plutôt pas mal!

In [12]:
from IPython.display import Image
Image(filename='manip_confinement/20200322_163621_2.jpg')   #   de futurs résonateurs d'Helmoltz
Out[12]:
In [ ]: