écoulement de taylor-couette horizontal avec un cylindre - LEAF-NL

publicité
ENSTA PARISTECH
828, Boulevard des Maréchaux,
91762 Palaiseau Cedex
Laboratorio de Estudios Avanzados
en Fenomenos Non lineales
Depto. de Ingenieria Mecanica, FCFM,
Universidad de Chile
Av. Beauchef 850, Torre Central, Santiago,
Chile
Projet de Recherche-Deuxième Année
ÉTUDE DU COUPLAGE HYDRODYNAMIQUE
ENTRE DEUX CYLINDRES : ÉCOULEMENT
DE TAYLOR-COUETTE HORIZONTAL AVEC
UN CYLINDRE LIBRE
Charlie BARRAUD-Promotion 2014
Encadrant : Rodrigo Hernandez-Universidad de Chile
Tuteur : Romain Monchaux-UME-ENSTA ParisTech
Stage eectué du 13 mai au 2 août 2013 à la Universidad de Chile, Santiago
2013
Note de non condentialité
Le document est non condentiel. Il peut donc être communiqué à l'extérieur sous
format papier mais également diusé sous format électronique.
Charlie BARRAUD
page 1
2013
Remerciements
Je tiens à remercier le professeur Rodrigo Hernandez, pour son acceuil au laboratoire,
Andres pour m'avoir fait partager sa science, ainsi que les tous les autres étudiants du
laboratoire pour leur bonne humeur.
Merci enn à Gloria, ma très chaleureuse colocataire à Santiago, et tous mes amis là
bas avec qui j'ai pu tant partager.
Charlie BARRAUD
page 2
2013
Résumé
Couette, Taylor, et d'autres ont étudié au début du XXe siècle le champ de vitesse
d'un uide entre deux cylindres coaxiaux. Cependant, il est presque impossible de trouver
des études sur un système de Taylor-Couette où les cylindres perdent leur caractère
coaxiaux, c'est-à-dire que le cylindre intérieur est laissé libre.
Au cours de ce projet de recherche (PRe), on est amené à étudier le comportement
d'un cylindre à l'intérieur d'un autre plus grand, couplés exclusivement par des forces
hydrodynamiques. On veut étudier l'écoulement du uide intérieur, le mouvement induit
sur le cylindre et inversement dans le cas d'un ux laminaire et stable.
L'objectif nal de ces travaux est de trouver un moyen d'immobiliser un cylindre dans
un écoulement de Taylor-Couette, en jouant sur les propriétés du uide et du cylindre
intérieur. Le forçage extérieur lui sera gardé constant.
Nous verrons donc quelle expérience a été créée ainsi que les outils qui ont été constuits
pour étudier l'écoulement : une fonction de PIV, une fonction pour suivre la trajectoire
du cylindre et une autre pour déterminer sa rotation.
Mots clés : Écoulement à symétrie cylindrique, écoulement de Taylor-Couette, corrélation, PIV.
Abstract
Couette, Taylor and others studied in the beginning of the 20th century the speed
eld of a uid between two coaxial cylinders. However, it is mostly impossible to nd
papers on a Taylor-Couette system where the cylinders lose their coaxiality, that is to
say that the inner cylinder is left free in its movements.
During this project (PRe), we focuse on the behaviour of a cylinder into another full
of uid, exclusively coupled by hydrodynamique forces. We want to study the inner ow,
the movement inducted on the inner cylinder and inversely, in the case of a laminary and
stable ow.
The nal goal is to nd a way to immobilize the inner cylinder in a Taylor-Couette
ow, playing with the uid properties and the inner cylinder properties. The outer forcing
will be kept constant.
We will see which experiment was designed and the tools built for this study : a PIV
program, a mean to follow the inner cylinder trayectory and an other to determine the
inner cylinder rotation.
Key words : Cylindrical ow, Taylor-Couette ow, correlation, PIV.
Charlie BARRAUD
page 3
2013
Charlie BARRAUD
page 4
2013
Préambule
Ce travail est l'÷uvre de recherches au laboratoire LEAF-NL (Laboratorio de Estudios Avanzados en Fenomenos Non Lineales) 1 de la Univesidad de Chile à Santiago du
Chili. Ce laboratoire de thermouide, comme son nom l'indique, est spécialisé dans les
phénomènes non-linéaires. Il accueille de nombreux étudiants chiliens qui durant 10 mois
chaque année y viennent réaliser leur travaux de n d'études.
Mon maître de stage, Rodrigo Hernandez, est diplômé du titre d'ingénieur civil mécanique de la Universidad de Chile. Il est également diplômé de l'ENS Lyon. Il m'accueille
au sein de son laboratoire pour réaliser des travaux de recherches en mécanique, en compagnie d'Andrés Vial, étudiant ingénieur, qui écrit son mémoire de n d'étude sur ce
sujet.
Figure 1 Andrés, mon dèle compagnon de travail
Dans le cadre de ce travail, j'ai été amené à :
Travailler en équipe avec un étudiant étranger qui ne parle pas ma langue natale
Utiliser mes connaissances en mécanique du solide et des uides
Me documenter sur les phénomènes d'hydrodynamique connée
Utiliser des logiciels de simulation numérique (Fluent 2 ou Matlab 3 )
Concevoir et construire une expérience
Rédiger un rapport scientique
1. http ://www.leafnl.uchile.cl/
2. http ://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/Fluid+Dynamics+Products/ANSYS+Fluent
3. http ://www.mathworks.com/products/matlab/
Charlie BARRAUD
page 5
2013
Charlie BARRAUD
page 6
Table des matières
Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé/Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Étude du couplage hydrodynamique entre deux cylindres : écoulement
de Taylor-Couette horizontal avec un cylindre libre
1.1
1.2
1.3
1.4
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Le problème du cylindre tournant
2.1.1 Dénition du problème . .
2.1.2 Équations du problème . .
2.1.3 Résolution des équations .
2.1.4 Étude de la couche limite
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Le problème . . . . . . . . . . . .
Équations du problème . . . . . .
Résolution des équations . . . . .
Simulation numérique et résultats
Instabilité de Taylor . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2
17
17
17
18
18
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
22
23
23
27
Le montage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
La fonction de corrélation, base de la détection
5.1
13
14
15
15
21
L'Expérience
4.1
4.2
5
.
.
.
.
Problème de Taylor-Couette
3.1
3.2
3.3
3.4
3.5
4
Introduction . . . . . . . . . . .
Conditions de forçage . . . . .
Objectifs des recherches . . . .
Tâches qui m'ont été imparties
13
Le cylindre tournant : vers le test expérimental
2.1
3
5
5
5
31
La fonction correl2d, de la PIV à la détection du cylindre . . . . . . . . . 31
5.1.1 Détails du programme . . . . . . . . . . . . . . . . . . . . . . . . . 31
Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7
TABLE DES MATIÈRES
6
Méthode de mesure du champ de vitesse par PIV
6.1
6.2
6.3
6.4
6.5
7
. . . . . . . .
. . . . . . . .
. . . . . . . .
observations .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
53
Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Le programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Mesure de la vitesse de rotation du cylindre intérieur
9.1
9.2
9.3
37
37
39
40
41
43
44
46
47
Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Le programme de mesure de la vitesse . . . . . . . . . . . . . . . . . . . . 49
Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Détection de la trajectoire du cylindre intérieur
8.1
8.2
8.3
9
Principe . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Le principe physique . . . . . . . . . . . . . .
6.1.2 Le traitement d'image . . . . . . . . . . . . .
6.1.3 Conditions expérimentales, ensemencement et
6.1.4 Traitement d'image . . . . . . . . . . . . . . .
Premiers pas . . . . . . . . . . . . . . . . . . . . . .
Résultats . . . . . . . . . . . . . . . . . . . . . . . .
Limites . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . . . .
37
Mesure de la vitesse de rotation du cylindre extérieur
7.1
7.2
7.3
8
2013
57
Présentation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Algorithme de résolution-Méthode du "glissement" . . . . . . . . . . . . . 57
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
10 Bilan
61
10.1 Bilan du travail eectué . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
10.2 Bilan personnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A Les fonctions matlab utilisées tout au long de la construction des programmes
65
A.1 Le programme correl2d . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Programmes de chargement des images . . . . . . . . . . . . . . . . . . .
A.2.1 Le programme de chargement des videos en .bin . . . . . . . . .
A.2.2 Programme de correction des videos (puisqu'une image sur deux
subissait des décalages de quelques pixels lors de la gravation de la
video) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3 PIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3.1 Le programme de PIV avec moyenne . . . . . . . . . . . . . . . .
A.3.2 Le programme de traitement d'image bpass . . . . . . . . . . . .
A.3.3 Le petit programme de calcul de la vitesse utilisant correl2d . .
A.3.4 Le programme d'achage de toutes les fenêtres d'interrogation découpée pour vérier si l'image est entièrement recouverte . . . . .
Charlie BARRAUD
. 65
. 66
. 66
.
.
.
.
.
67
69
69
73
76
. 77
page 8
TABLE DES MATIÈRES
A.4 Détermination de la vitesse de rotation du cylindre extérieur . . . .
A.5 Détermination de la trajectoire du cylindre . . . . . . . . . . . . .
A.5.1 Détermination de la trajectoire . . . . . . . . . . . . . . . .
A.5.2 Traitement d'image . . . . . . . . . . . . . . . . . . . . . . .
A.5.3 Création d'une image articielle : cercle blanc sur fond noir
A.5.4 Création d'un lm à partir des images articielles (spirale) .
A.5.5 Calcul des erreurs entre trajectoire articielle et calculée . .
A.6 Détermination de la vitesse de rotation du cylindre intérieur . . . .
Charlie BARRAUD
2013
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
78
79
79
81
83
84
85
86
page 9
TABLE DES MATIÈRES
Charlie BARRAUD
2013
page 10
Table des gures
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.1
1.2
Problème posé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Schéma du système vue de prol . . . . . . . . . . . . . . . . . . . . . . . 14
2.1
Schéma du cylindre tournant . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1
3.2
3.3
3.4
Schéma du problème posé . . . . . . . . . . . .
Simulation d'un écoulement de Taylor-Couette
Illustration de l'instabilité de Taylor . . . . . .
Tracé de l'instabilité de Taylor . . . . . . . . .
4.1
4.2
4.3
Schéma du montage expérimental . . . . . . . . . . . . . . . . . . . . . . . 28
Photo du montage expérimental . . . . . . . . . . . . . . . . . . . . . . . . 29
Zoom sur le cylindre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1
5.2
5.3
Tracé de la corrélation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
images articielles pour tester la corrélation . . . . . . . . . . . . . . . . . 34
Le maximum de corrélation . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
Schéma explicatif de la méthode de visualisation d'un champ de
par PIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma explicatif de la méthode de visualisation de l'écoulement
Déroulement de la recherche de vitesse des particules . . . . . . .
Image pour appliquer la PIV . . . . . . . . . . . . . . . . . . . .
Image découpée en feêtres d'interrogation . . . . . . . . . . . . .
Exclusion de valeurs calculées lors de la PIV . . . . . . . . . . . .
Image articielle pour tester la PIV . . . . . . . . . . . . . . . . .
Champ de vitesse lors de l'expérience du cylindre tournant . . . .
Prol de vitesse lors de l'expérience du cylindre tournant . . . . .
vitesse
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
38
39
40
41
42
43
44
45
46
7.1
7.2
7.3
7.4
Photo du cylindre avec sa marque noire . . . . . . . .
Photo de l'image composée de la soustraction des deux
L'image de la soustraction en binaire . . . . . . . . . .
Vitesse de rotation instantanée du cylindre extérieur .
.
.
.
.
.
.
.
.
49
50
50
51
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
autres
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
23
24
25
TABLE DES FIGURES
2013
7.5
Graphique d'équivalence entre voltage et vitesse de rotation du cylindre . 52
8.1
8.2
8.3
Traitement d'image pour la détection du cylindre intérieur . . . . . . . . . 53
Vitesse à tout instant du cylindre intérieur . . . . . . . . . . . . . . . . . . 54
Trajectoire du cylindre intérieur . . . . . . . . . . . . . . . . . . . . . . . . 55
9.1
9.2
9.3
9.4
Photo du cylindre intérieur . . . . . . . . . . . . . . . . .
Image de référence pour le calcul de la rotation . . . . . .
Photo du cylindre trouvé par la méthode du "glissement"
La référence transformée en image binaire . . . . . . . . .
Charlie BARRAUD
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
58
59
page 12
1. Étude du couplage
hydrodynamique entre deux
cylindres : écoulement de
Taylor-Couette horizontal avec un
cylindre libre
1.1 Introduction
Nous étudions le comportement d'un solide situé dans une cavité cylindrique remplie
d'un uide. L'objectif est que le solide, quelque soit le forçage extérieur de la cavité, évite
tout contact solide avec les parois. Le mouvement imposé pourra être un mouvement de
rotation, ou un mouvement de vibration de haut en bas (voir 1.1 et 1.2). Les paramètres
sur lesquels nous pourrons jouer sont la forme du solide en question, le matériaux dans
lequel il est fait, la répartition de la masse dans le solide, le uide dans lequel il est
plongé, ou en encore une stratication de uides.
Nous cherchons donc un moyen d'immobiliser le cylindre : à première approximation,
comme le minimum de pression dans le cylindre tournant se trouve au centre, nous nous
attendons à ce que le cylindre se mette au centre.
13
1.2. CONDITIONS DE FORÇAGE
2013
Figure 1.1 Schéma de l'expérience dans le cas d'un solide cylindrique de masse volu-
mique ρi et plongé dans un liquide de masse volumique ρf . Le cylindre extérieur peut
induire un forçage rotatif ou de vibration verticale sur le liquide
Figure 1.2 Schéma du système vue de prol. Le cylindre intérieur a un rayon Ri
celui extérieur Rext .
et
1.2 Conditions de forçage
1. Pour éviter tout eet de la gravité, nous chercherons à nous placer dans un uide
de masse volumique similaire à celle du cylindre intérieur, de sorte que la poussée
d'Archimède et le poids se compensent. Pour cela, on pourra mélanger de l'eau et
de la glycérine.
2. Le forçage extérieur devra être contrôlé de manière à ce que le uide reste stable
Charlie BARRAUD
page 14
1.3. OBJECTIFS DES RECHERCHES
2013
et laminaire à l'intérieur du cylindre.
3. La vitesse de forçage du cylindre extérieur devra rester constante.
1.3 Objectifs des recherches
Modéliser le mouvement du cylindre intérieur libre
Comparer ce résultat à la réalité expérimentale
Trouver une combinaison qui permet au cylindre intérieur de ne toucher à aucun
moment le cylindre extérieur
1.4 Tâches qui m'ont été imparties
Construire l'expérience
Construire un programme de PIV pour être capable de déterminer le champ de
vitesse dans le cylindre
Construire un programme permettant de suivre la trajectoire du cylindre intérieur
Construire un programme permettant de suivre la vitesse de rotation du cylindre
intérieur
Charlie BARRAUD
page 15
1.4. TÂCHES QUI M'ONT ÉTÉ IMPARTIES
Charlie BARRAUD
2013
page 16
2. Le cylindre tournant : vers le
test expérimental
2.1 Le problème du cylindre tournant
2.1.1 Dénition du problème
Nous étudions un cylindre tournant horizontal de rayon Rext et contenant un uide
de masse volumique ρ. La gure 2.1.1 décrit le système :
Figure 2.1 Schéma du problème posé
2.1.2 Équations du problème
Les équations de Navier-Stokes pour un uide incompressible donnent en cylindrique :
1 ∂
1 ∂uθ
∂uz
(rur ) +
+
=0
r ∂r
r ∂θ
∂z
17
(2.1)
2.1. LE PROBLÈME DU CYLINDRE TOURNANT
2013
u2
∂ur
∂ur
∂ur
uθ ∂ur
+ ur
+
+ uz
− θ
∂t
∂r
r ∂θ ∂z
r
∂ur
1 ∂ 2 ur
∂ 2 ur
ur
2 ∂uθ
1 ∂p
1 ∂
r
+ 2
+
−
−
+ fr (2.2)
=−
+ν
ρ ∂r
r ∂r
∂r
r ∂θ2
∂z 2
r2
r2 ∂θ
∂uθ
∂uθ
uθ ∂uθ
∂uθ
ur uθ
+ ur
+
+ uz
+
∂t
∂r
r ∂θ ∂z
r
1 ∂p
∂uθ
1 ∂ 2 uθ
1 ∂
∂ 2 uθ
2 ∂ur
uθ
=−
r
+ 2
+ν
+
+ 2
− 2 + fθ (2.3)
ρr ∂θ
r ∂r
∂r
r ∂θ2
∂z 2
r ∂θ
r
∂uz
∂uz
1 ∂ 2 uz
∂uz
uθ ∂uz
∂uz
1 ∂p
1 ∂
∂ 2 uz
r
+ 2
+ fz
+ ur
+
+ uz
=−
+ν
+
∂t
∂r
r ∂θ
∂z
ρ ∂z
r ∂r
∂r
r ∂θ2
∂z 2
(2.4)
∂
Dans notre cas, il n'y a pas de mouvement selon uz , le régime est stationnaire ( ∂t
= 0),
la force volumique du poids est négligeable (fr = fθ = fz = 0), il n'y a pas de vitesse
∂
= 0).
selon er (ur = 0) et le système est invariant par rotation ( ∂θ
Les équations se simplient donc :
u2θ
1 ∂p
=−
r
ρ ∂r
1 ∂
∂uθ
uθ
0=
r
− 2
r ∂r
∂r
r
−
(2.5)
(2.6)
2.1.3 Résolution des équations
Une solution du problème est uθ = A · r +
vitesse est continue (donc B = 0).
On a alors nalement A = Ω.
L'écoulement est donc le suivant :
B
r.
En r = Rext , uθ = Ω · R et en r = 0, la
uθ = Ω · r
(2.7)
2.1.4 Étude de la couche limite
On étudie dans ce paragraphe la couche limite qui se forme sur la paroi cylindrique.
On pose :
uθ
uˆθ = Ω·R
ext
Charlie BARRAUD
page 18
2.1. LE PROBLÈME DU CYLINDRE TOURNANT
2013
uˆr = Vur0
r̂ = Rextr −δ avec δ << Rext
θ
θ̂ = 2·π
p
p̂ = p0
V0
1 ∂
1 ∂ uˆθ
ΩRext
(r̂uˆr ) +
=0
Rext − δ r̂ ∂ r̂
2π(Rext − δ) r̂ ∂ θ̂
(2.8)
On adimensionalise le reste des équations de Navier-Stokes :
Rext − δ
∂ uˆr
∂ p̂ uˆθ 2
uˆθ ∂ uˆr
uˆr
+ 4π 2
+
−
Rext Ω 2πRext
∂ r̂
r̂ ∂ θ̂
∂ r̂
r̂
1 1 ∂
∂ uˆr
1 ∂ 2 uˆr
2 ∂ uˆθ
uˆr
=
r̂
+ 2 2
(2.9)
− 2 − 2
Re r̂ ∂ r̂
∂ r̂
4π r̂ ∂ θ̂2
r̂
r̂ ∂ θ̂
V0
uˆr uˆθ
Rext − δ
∂ uˆθ
uˆθ ∂ uˆθ
∂ p̂
+
uˆr
+
+
Rext Ω 2πRext
∂ r̂
r̂ ∂ θ̂
r̂
∂ θ̂
1 1 ∂
∂ uˆθ
1 ∂ 2 uˆθ
2 ∂ uˆr
uˆθ
=
r̂
+ 2 2
(2.10)
+ 2 2
− 2
Re r̂ ∂ r̂
∂ r̂
4π r̂ ∂ θ̂2
4π r̂ ∂ θ̂
r̂
V0
Or, d'après le principe de moindre dégénérescence, d'après [1, page 206],
V0 =
ΩRext
2π
(2.11)
Rext − δ
2πRext
(2.12)
1 (2πRext )2
=1
Re Rext − δ 2
(2.13)
2πRext
δ = Rext − √
Re
(2.14)
V0
Rext Ω
=
On a donc :
√ ext . Dans notre cas, typiquement, le
La couche limite a donc une épaisseur typique de 2πR
Re
cylindre extérieur a un diamètre de 6 cm, et la vitesse de rotation de 1 tour/s. On aura
donc un Re = ρ·L·v
= 32000 et donc une couche limite de l'ordre de δ = 1mm. Nous
η
tacherons donc de le vérier lors de la mise en place de l'expérience.
Charlie BARRAUD
page 19
2.1. LE PROBLÈME DU CYLINDRE TOURNANT
Charlie BARRAUD
2013
page 20
3. Problème de Taylor-Couette
3.1 Le problème
On plonge un cylindre xe dans le cylindre tournant à la vitesse Ω. Les deux cylindres
sont concentriques (voir gure 3.1).
Re
Ri
Ω
Figure 3.1 Schéma du problème posé : un cylindre tournant à la vitesse angulaire
Ω contient un uide de masse volumique ρf et un autre cylindre : c'est l'écoulement de
Taylor-Couette
3.2 Équations du problème
Les équations de Navier-Stokes pour un uide incompressible donnent en cylindrique :
21
3.3. RÉSOLUTION DES ÉQUATIONS
1 ∂
1 ∂uθ
∂uz
(rur ) +
+
=0
r ∂r
r ∂θ
∂z
2013
(3.1)
u2
∂ur
∂ur
uθ ∂ur
∂ur
+ ur
+
+ uz
− θ
∂t
∂r
r ∂θ ∂z
r
∂ur
1 ∂ 2 ur
∂ 2 ur
ur
2 ∂uθ
1 ∂
1 ∂p
r
+ 2
+
− 2 − 2
+ fr (3.2)
+ν
=−
ρ ∂r
r ∂r
∂r
r ∂θ2
∂z 2
r
r ∂θ
∂uθ
∂uθ
∂uθ
uθ ∂uθ
ur uθ
+ ur
+
+ uz
+
∂t
∂r
r ∂θ ∂z
r
1 ∂p
∂uθ
1 ∂ 2 uθ
∂ 2 uθ
2 ∂ur
1 ∂
uθ
=−
r
+ 2
+
+
+ fθ (3.3)
+ν
−
ρr ∂θ
r ∂r
∂r
r ∂θ2
∂z 2
r2 ∂θ
r2
∂uz
∂uz
uθ ∂uz
∂uz
1 ∂p
1 ∂
∂uz
1 ∂ 2 uz
∂ 2 uz
+ ur
+
+ uz
=−
+ν
r
+ 2
+
+ fz
∂t
∂r
r ∂θ
∂z
ρ ∂z
r ∂r
∂r
r ∂θ2
∂z 2
(3.4)
∂
Dans notre cas, il n'y a pas de mouvement selon uz , le régime est stationnaire ( ∂t
= 0),
la force volumique du poids est négligeable (fr = fθ = fz = 0), il n'y a pas de vitesse
∂
selon er (ur = 0) et le système est invariant par rotation ( ∂θ
= 0).
Les équations se simplient donc :
u2θ
1 ∂p
=−
r
ρ ∂r
1 ∂
∂uθ
uθ
0=
r
− 2
r ∂r
∂r
r
−
(3.5)
(3.6)
3.3 Résolution des équations
Une solution du problème est uθ = A · r + Br . En r = Rint , uθ = 0 tandis qu'en
r = Rext , uθ = Ω · R.
2
2
Rext
Rext
2 (1 −
On a alors nalement A = R2 −R
· Ω et B = Ω · Rext
2
2 −R2 )
Rext
ext
int
int
L'écoulement est donc le suivant :
2
uθ = Rext
· Ω(
Charlie BARRAUD
2
Rext
r
1
R2
+ (1 − 2 ext 2 ))
2
Rext − Rint
− Rint r
(3.7)
page 22
3.4. SIMULATION NUMÉRIQUE ET RÉSULTATS
2013
3.4 Simulation numérique et résultats
Nous eectuons une simulation numérique avec le logiciel uent 1 avec les paramètres
suivants :
Rext = 0.05m
Rint = 0.02m
ρf = ρ(eau) = 1000kg/m3
ν = ν(eau) = 1.007 · 10−6 m2 /s
Ω = 2πs−1
Le résultat conduit à la courbe 3.2 :
Figure 3.2 La vitesse Uθ
est tracé en fonction du rayon. En rouge sont les résultats
de la simulation de uent et en bleu, le tracé de vitesse théorique. Si les résultats sont
plus ou moins éloignés, l'origine en est les nombreuses simplications et la non prise en
compte des couches limites.
3.5 Instabilité de Taylor
Nous résumons dans cette partie les résultats exprimés par Taylor[2]. En utilisant un
montage similaire à celui de Couette, il analyse la formation de petites perturbations
1. http ://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/Fluid+Dynamics+Products/ANSYS+Fluent
Charlie BARRAUD
page 23
3.5. INSTABILITÉ DE TAYLOR
2013
dans le ux de Couette, en s'intéressant aux 3 dimensions du problème, et non plus au
problème bidimensionnel comme auparavant (voir 3.3).
Figure 3.3 Illustration de l'instabilité de Taylor : des "rouleaux" toroïdaux se forment
sous certaines conditions(explicitées plus bas)
En utilisant les fonctions de Bessel, il a déterminé une représentation mathématique
des vorticités toroïdales qui se forment, même si par manque de possibilités de calcul
informatique, il ne calcule que quelques lignes de courants pour certaines congurations.
Taylor a tout de même réussi à calculer la courbe 3.4, qui relie le rapport de vitesses
des cylindres nécessaire à créer l'instabilité pour un uide non-visqueux, qu'il a vérié
ensuite expérimentalement.
Charlie BARRAUD
page 24
3.5. INSTABILITÉ DE TAYLOR
2013
Figure 3.4 Tracé de l'instabilité de Taylor : en rouge, la zone d'instabilité, en vert,
ext 2
celle de stabilité. En bleu, la droite d'équation Ω1 = Ω2 · ( R
Rint ) vers laquelle converge
la limite d'instabilité.
On observe que la courbe converge vers une droite décrite par l'équation suivante :
Ω1
Rext 2
=(
)
Ω2
Rint
(3.8)
On cherchera donc à se placer dans les conditions de stabilité de Taylor, soit
Ω1
Rext 2
>(
)
Ω2
Rint
(3.9)
ce qui nous donne un premier critère de dimensionnement du système.
Charlie BARRAUD
page 25
3.5. INSTABILITÉ DE TAYLOR
Charlie BARRAUD
2013
page 26
4. L'Expérience
4.1 Le montage
Le montage est constitué d'un cylindre et du support le faisant tourner.
Le cylindre est constitué de plexiglas, et est transparent pour permettre l'observation des phénomènes physiques. D'un coté, un couvercle transparent lui aussi
est collé au cylindre. De l'autre, un couvercle amovible (avec joint et un trou qui
permet de le remplir sans trop d'eort) permet de fermer le cylindre.
Le cylindre est alors posé sur deux barres en plastique selon la gure 3.1. L'une
des barres est reliée à un moteur, alimenté par un générateur de tension, qui la fait
tourner et permet d'en contrôler sa vitesse. On place des anneaux de caoutchouc
autour des barres pour faciliter l'entraînement du cylindre par les barres. Le tout
est alors posé sur une table.
Pour eectuer la PIV, une caméra est placée en face du cylindre et un LASER ainsi
qu'un miroir à sa perpendiculaire.
27
4.1. LE MONTAGE
2013
Figure 4.1 Schéma du montage expérimental
Charlie BARRAUD
page 28
4.2. HYPOTHÈSES DE TRAVAIL
2013
Figure 4.2 Photo légendée du montage expérimental
4.2 Hypothèses de travail
Nous nous situons dans un souterrain, à l'abri du bruit urbain et des variations de
température
On remplit le cylindre d'eau (ou d'un mélange eau/glycérine pour avoir un liquide et
un objet de masse volumique similaire an de limiter l'eet du poids), à l'aide d'une
seringue pour éliminer toute présence de bulles qui pourraient aecter l'écoulement.
Avant toute mesure, nous laissons le champ de vitesse stationnaire s'établir en
laissant tourner le cylindre durant 20 minutes au préalable.
Comme vu précédemment, le Reynolds typique de l'expérience sera Re=30 000,
avec une vitesse de de rotation d'un tour par seconde.
Charlie BARRAUD
page 29
4.2. HYPOTHÈSES DE TRAVAIL
2013
Figure 4.3 Photo du montage expérimental
Charlie BARRAUD
page 30
5. La fonction de corrélation, base
de la détection
5.1 La fonction correl2d, de la PIV à la détection du cylindre
Le programme correl2d.m, créé par mon tuteur, permet d'eectuer la corrélation entre
2 images et de donner le déplacement moyen dans une image.
5.1.1 Détails du programme
Voici le programme en entier : pour des raisons évidentes, ce sera le seul à apparaître
explicitement car il est à la base de tout le traitement d'image, les autres seront mis en
annexe.
1 %**********************************************************
% FUNCTION c o r r e l 2 d .m
% Usage : [ l a g , x , y ,C] = c o r r e l 2 d ( matrix1 , matrix2 )
% S e a r c h i n g P a t t e r n in Matrix1 .
% Compute 2D Cross C o r r e l a t i o n w i t h f f t 2 and i f f t 2
6 % l a g =[x , y ] a t max(C) ; C=C( x , y )
% Dimensiones son t a l e s que : A( x , y )=A(N,M) ;
%
rhp , 24 Junio 2002
%*********************************************************
11
f u n c t i o n [ l a g , X, Y,C ] = c o r r e l 2 d (A, B)
S = s i z e (A) ; N=S ( 1 ) ; M=S ( 2 ) ;
% Matrix s i z e ;
%X = l i n s p a c e (−N/2 ,N/2 ,N) ;
%Y = l i n s p a c e (−M/2 ,M/2 ,M) ;
%X=0:1:N− 1;
% X Axis t o g i v e z e r o l a g a t o r i g i n o f (N,
M)
16 %Y=0:1:M− 1;
% Y Axis t o g i v e z e r o l a g a t
o r i g i n o f (N,M)
A = A − mean2 (A) ;
% g e t out mean i n t e n s i t y
B = B − mean2 (B) ;
% g e t out mean i n t e n s i t y
31
5.2. EXEMPLE
2013
normA = sum ( sum (A. ^ 2 ) ) ; normB = sum ( sum (A. ^ 2 ) ) ; % t o n o r m a l i z e
c r o s s −c o r r .
21 Co = ( f f t s h i f t ( i f f t 2 ( f f t 2 (A) . * c o n j ( f f t 2 (A) ) ) ) ) ; % Corr 2D
s h i f t i n g DC t o o r i g i n .
C = Co/ ( s q r t ( normA*normB ) ) ;
% Corr 2D max i s 1
[ r , Xo]=max(max( abs (C) ' ) ) ;
[ r , Yo]=max(max( abs (C) ) ) ;
26 X= 1 : 1 :N;
Y= 1 : 1 :M;
o r i g i n o f (N,M)
X=X−Xo ; Y=Y−Yo ;
M)
% f i n d mean x− l a g
% f i n d mean y− l a g
% Y Axis t o g i v e z e r o l a g a t
% X Axis t o g i v e z e r o l a g a t o r i g i n o f (N,
31 normA = sum ( sum (A. ^ 2 ) ) ; normB = sum ( sum (B. ^ 2 ) ) ; % t o n o r m a l i z e
c r o s s −c o r r .
Co = f f t s h i f t ( i f f t 2 ( f f t 2 (B) . * c o n j ( f f t 2 (A) ) ) ) ; % Corr 2D s h i f t i n g
DC t o o r i g i n .
C = Co/ ( s q r t ( normA*normB ) ) ;
% Corr 2D max i s 1
[ r , x]=max(max( abs (C) ' ) ) ;
36
[ r , y]=max(max( abs (C) ) ) ;
l a g =[X( x ) ,Y( y ) ] ;
% f i n d mean x− l a g
% f i n d mean y− l a g
%i f abs ( l a g ( 1 ) )> 8 ; l a g ( 1 )=M+l a g ( 1 ) ; end
%l a g=l a g * 2 * p i / 1 7 ;
41 %l a g=unwrap ( l a g ) ;
5.2 Exemple
Prenons le cas d'une matrice A, carrée de 10 par 10 de zéros dont on remplit un carré
de 5 par 5 avec des 1. On décale ensuite ce carré dans la matrice B. On lui applique enn
le programme.
A =
Charlie BARRAUD
page 32
5.2. EXEMPLE
4
9
2013
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
14 B =
19
24
29
[ l a g , ~ , ~ ,C]= c o r r e l 2 d (A, B) ;
lag =
−2
−3
Le "lag" donne le décalage des "1", ce qui est bien conforme. La matrice C est la
matrice de corrélation dont le maximum est un. Les coordonnées de son maximum donne
le décalage détecté (voir gure 5.1).
Charlie BARRAUD
page 33
5.2. EXEMPLE
2013
Figure 5.1 Tracé de la matrice de corrélation : son maximum (ici en rouge) donne le
décalage détecté (il faut regarder le décalage du pic par rapport au centre de la gure).
Ainsi, dans notre cas, le décalage ou "lag" est de (-2 ;-3).
Créons maintenant articiellement deux images avec un carré qui se déplace. On
rajoute du bruit, ce qui donne les images de la gure 5.3 :
Figure 5.2 Les deux images créées articiellement présentent un décalage de (12,20)
entre elles
Le programme sort alors la matrice de corrélation suivante :
Charlie BARRAUD
page 34
5.2. EXEMPLE
2013
Figure 5.3 La matrice de corrélation présente un maximum (en rouge) dont le déplacement par rapport au centre de l'image donne le décalage du carré blanc : (12,20)
Charlie BARRAUD
page 35
5.2. EXEMPLE
Charlie BARRAUD
2013
page 36
6. Méthode de mesure du champ
de vitesse par PIV
6.1 Principe
La mesure de champs de vitesses par PIV (Particle Image Velocimetry) est très commune dans l'étude des écoulements. Il s'agit d'observer, dans le plan, le déplacement
de traceurs (des particules de petites tailles et de même densité que le uide) pour en
déduire le champ de vitesse de l'écoulement. Cette technique permet de connaître un
champ de vitesse en 2D presque instantanément et est donc très attractif.
6.1.1 Le principe physique
La gure 6.1 (tiré de [3, page 185]) nous interpelle sur le principe de la méthode :
On ensemence le uide de particules ultra-nes (de l'ordre de 10 microns) et de
même masse volumique que le uide étudié.
On projette une nappe laser sur l'écoulement, an d'avoir un plan de uide éclairé
(voir 6.2). Les particules, passant dans le plan laser, diusent la lumière dans toutes
les directions. Elles sont alors lumineuses et observables.
On prend des images en haute résolution à intervalle de temps connu.
On découpe les images en sous-images contenant plusieurs particules puis on traite
les images par paires, par corrélation, an d'obtenir le déplacement moyen de
quelques particules.
On récupère le champ de vitesse connaissant le vecteur déplacement et l'intervalle
de prise entre chaque photographie.
37
6.1. PRINCIPE
2013
Figure 6.1 Schéma explicatif de la méthode de visualisation d'un champ de vitesse
par PIV
Charlie BARRAUD
page 38
6.1. PRINCIPE
2013
Figure
6.2 Schéma explicatif de la méthode de visualisation de l'écoulement : une
nappe laser éclaire un plan de particules suivant le uide. Celles-ci diusent alors la
lumière dans toutes les directions. Une caméra récupère alors les images de l'écoulement
plan.
6.1.2 Le traitement d'image
Pour déterminer le déplacement moyen des particules de chaque sous-image, les fenêtres d'interrogations, on eectue une corrélation de deux images consécutives (à t et
t + ∆t). Le maximum de corrélation est alors obtenu pour le déplacement moyen des particules. La vitesse est alors obtenue tout simplement en divisant de déplacement moyen
par ∆t.
Charlie BARRAUD
page 39
6.1. PRINCIPE
2013
Figure
6.3 Une image est constituée de a x b pixels. Elle est découpée en fenêtre
d'interrogations plus petites (en rouge). On eectue alors une recherche de maximum de
corrélation entre deux même fenêtres de deux images consécutives ce qui nous donne le
déplacement moyen dans chaque fenêtre. La vitesse est alors donnée par ce déplacement
moyen divisé par l'intervalle de temps entre les images ∆t.
6.1.3 Conditions expérimentales, ensemencement et observations
Pour l'ensemencement du uide, nous utilisons des particules SPHERICEL®110P8 1 .
L'ensemencement, pour le cas de notre cylindre de 500 cm3 environ, est eectué au moyen
du couvercle, après pesée de 0,020 g de particules. Ce nombre a été obtenu après plusieurs
tests sur le programme construit (voir 6.1.4). La nappe LASER est eectuée à l'aide
d'un LASER Melles Griot, Model 58GCS (High Performance Diode Pumped Solid State
Laser). À noter qu'il peut être nécessaire d'en mettre un peu plus lorsque l'on eectue un
zoom sur une partie du uide avec la caméra. La caméra est une COHU progressive scan
6600 Model 3000 et le lentille une NIKON AF micro nikkor 60 mm 1 :2.8 D. De plus, pour
que la PIV donne un résultat extrêmement satisfaisant, on peut moyenner les résultats
sur plusieurs images (on prendra typiquement plus tard des lms de 250 images). Mais
pour cela, il faut avoir à faire à un régime stationnaire : nous attendrons donc avant
toute prise de lm une trentaine de minutes. À noter aussi que le laboratoire est situé
dans un souterrain ce qui limite le bruit extérieur et les variations de température d'une
expérience à l'autre.
1. Voir www.pottersbeads.com pour plus d'informations
Charlie BARRAUD
page 40
6.1. PRINCIPE
2013
6.1.4 Traitement d'image
Nous expliquons ici quelles sont les étapes de notre programme de piv (voir A.3).
Traitement d'image par la fonction
bpass
An de supprimer le bruit du lm et de retenir les objets d'une certaine longueur, nous
ltrons nos images avec la fonction bpass 2 , un ltre spatial mis à disposition gratuitement.
Nous traitons ainsi chaque image par cette fonction.
Dans notre cas, la longueur du bruit est de 1 pixel, tandis que les particules, selon le
zoom, ont une longueur variable, comprise entre 3 et 50 pixels. Voici les images avant et
après traitement :
Figure 6.4 L'image prise par la caméra (à gauche) puis l'image obtenue après traitement par le ltre spatial bpass (à droite)
Découpage en fenêtre d'interrogations
An de mesurer la vitesse du uide en tout point, il est nécessaire de découper chaque
image en diérentes fenêtres d'interrogation, plus petites, dans lesquelles nous déterminerons la vitesse moyenne. Le programme n'étant pas très intéressant, nous ne le montrerons
pas (mais est accessible en annexe A.3).
Le résultat donne :
2. pour plus d'information, lire la page suivante : http ://www.mathworks.com/matlabcentral/leexchange/15765sptrack1-0/content/bpass.m
Charlie BARRAUD
page 41
6.1. PRINCIPE
2013
Figure 6.5 Chaque image est découpée en fenêtres d'interrogation. Dans chacune d'elle,
on pourra y déterminer la vitesse moyenne. Dans cet exemple, l'image est partagée en
13x13 fenêtres.
Calcul de la vitesse moyenne dans chaque fenêtre
L'étape suivante est le calcul entre deux fenêtres identiques de deux images consécutives de la vitesse moyenne des particules. Pour cela, nous utilisons la fonction correl2d
(voir 5). Ainsi, dans chaque fenêtre nous l'appliquons.
Moyenne sur un grand nombre d'images
Pour améliorer les résultats de la PIV, dans le cas d'un régime stationnaire, on eectue
cette PIV sur un lm comportant un grand nombre d'images. En eet, nos vitesses
mesurées sont réparties selon une gaussienne :
Charlie BARRAUD
page 42
6.2. PREMIERS PAS
2013
Figure
6.6 Comme certaines vitesses mesurées sont irréelles dû par exemple à une
mauvaise qualité d'image, nous ne garderons que les vitesses mesurées comprises entre
v − σ2 et v + σ2
En répétant l'opération, nous obtenons ainsi une moyenne améliorée, puisque les
valeurs irréelles ont été supprimées.
6.2 Premiers pas
Pour tester le programme et en l'absence temporaire de toute caméra opérationnelle,
on a créé des images articielles pour y appliquer notre PIV. Puis on leur applique la
fonction imrotate qui permet de leur faire faire une rotation articielle. Ceci fut très
pratique pendant un mois, mois durant lequel il aurait impossible de travailler sans
caméra.
Voici une exemple d'image articielle :
Charlie BARRAUD
page 43
6.3. RÉSULTATS
2013
Figure 6.7 On crée des images articielles telles que celle-ci pour tester notre PIV
6.3 Résultats
Champ de vitesse
En eectuant les opérations décrites ci-dessus, nous sommes capables de déterminer le
champ de vitesse plan dans le cylindre tournant. Typiquement, voici le genre de résultat
qu'on est maintenant capable de trouver grâce à ce logiciel :
Charlie BARRAUD
page 44
6.3. RÉSULTATS
2013
Figure 6.8 Le cylindre extérieur tourne à la vitesse de 80 mm/s ; le calcul a été eectué
à l'aide de 15x15 fenêtres d'interrogations.
Comparaison avec la théorie dans le cas du cylindre tournant
Nous avons vu ci-dessus que le champ de vitesse était à symétrie cylindrique avec
un champ de vitesse selon eθ comme ce que prédit le chapitre 2. Nous pouvons aller
plus loin : la théorie prédit un champ de vitesse linéaire uθ = Ω · r. On retrouve bien ce
résultat :
Charlie BARRAUD
page 45
6.4. LIMITES
2013
Figure 6.9 Pour le même cas que plus haut, le prol est linéaire : on a bien un prol
de vitesse similaire à ce que prédit la théorie
6.4 Limites
L'écoulement dans la couche limite étant rapide et instable, il nous est impossible
de la mesurer par cette méthode.
Il est impossible d'avoir une résolution très ne (>40 pixels par fenêtre d'interrogation) car sinon, les particules sortent des fenêtres d'une image à l'autre et on ne
peut donc pas mesurer leur vitesse.
Si l'écoulement est trop rapide, il nous est impossible d'en mesurer la vitesse pour
la même raison que précédemment : les particules sortiraient des fenêtres d'interrogation. Pour remédier à ce problème, il nous faudrait une caméra ultra rapide
Charlie BARRAUD
page 46
6.5. CONCLUSION
2013
avec une fréquence supérieure à 60Hz.
Certaines ombres masquent une partie de l'écoulement et empêchent le calcul de
vitesse. Le montage est donc à améliorer avec un circuit optique pour la nappe
LASER.
6.5 Conclusion
Cet outil est assez puissant : le laboratoire n'ayant que peu de moyens, il n'a pas fait
l'acquisition de logiciel professionnel de PIV. Avec cette fonction et ce protocol expérimental, on est maintenant capable de déterminer un champ de vitesse plan hors couche
limite. De légères modications dans le montage (utilisation d'une caméra ultra-rapide
et d'un meilleur éclairage) permettrait de déterminer parfaitement l'écoulement stationnaire, et partiellement tout écoulement.
Charlie BARRAUD
page 47
6.5. CONCLUSION
Charlie BARRAUD
2013
page 48
7. Mesure de la vitesse de rotation
du cylindre extérieur
7.1 Objectif
Le cylindre extérieur étant mis en mouvement par un un autre cylindre puis par un
moteur, on met en place un système de mesure de la vitesse de rotation. Pour cela, on
aura besoin d'une simple marque noire sur le cylindre :
Figure 7.1 Photo du cylindre avec sa marque noire
7.2 Le programme de mesure de la vitesse
1. On dispose une marque noire sur le cylindre. On grave un lm avec beaucoup
d'images an de pouvoir y faire une moyenne.
2. On eectue la diérence entre l'image i et i+2 pour éliminer le fond des images :
49
7.3. RÉSULTATS
2013
Figure 7.2 Photo de l'image composée de la soustraction des deux autres
3. On transforme l'image en image binaire à l'aide de im2bw et de la map de l'image
"trees" de matlab
Figure 7.3 Photo de l'image composée de la soustraction des deux autres et transfor-
mée en binaire : il ne reste alors que la marque (en blanc)
4. Il ne reste plus qu'à appliquer le programme correl2d entre les images consécutives
et on obtient la vitesse du cylindre à tout instant.
7.3 Résultats
Voici la courbe de vitesse instantanée du cylindre extérieur :
Charlie BARRAUD
page 50
7.3. RÉSULTATS
2013
Figure 7.4 La vitesse de rotation instantanée du cylindre extérieur
On se rend compte sur la gure 7.4 qu'il y a des variations de vitesses dues aux
imperfections du montage : le cylindre n'est donc pas tout à fait cylindrique. Cependant,
les variations représentent 10% de la vitesse moyenne ; on peut donc penser que celles-ci
n'aecterons pas l'écoulement.
On peut ainsi établir une table de conversion entre le voltage d'entrée et la vitesse de
sortie selon :
Charlie BARRAUD
page 51
7.3. RÉSULTATS
2013
Figure 7.5 Graphique d'équivalence entre voltage et vitesse de rotation du cylindre
Charlie BARRAUD
page 52
8. Détection de la trajectoire du
cylindre intérieur
8.1 Objectif
Pour l'étude du régime instationnaire ou d'un régime de cascade, il est nécessaire de
déterminer la trajectoire du cylindre intérieur ainsi que sa vitesse en tout temps.
8.2 Le programme
1. On applique un programme de traitement d'image pour passer de la video à des
images binaires :
Figure 8.1 Le traitement d'image permet de séparer l'image du cylindre (en blanc) du
reste : on cherche déjà les bords de l'image grâce à la fonction edge, puis on dilate l'image
par application de imdilate, ensuite on remplit les "trous" grâce à imll, on nettoie les
bords par imclearboarder, et on lisse les contours grâce à imerode. Enn, on applique un
ltre medlt2 qui remplit un pixel de la couleur de la moyenne des 20 autours
2. On détermine le centre de masse de lumière de l'image par application de la commande regionprops ce qui nous donne le centre du cylindre.
53
8.2. LE PROGRAMME
2013
3. Connaissant la position de tous les centres du cylindre et le temps entre chaque
image, on est capable de déterminer la trajectoire du cylindre.
Figure 8.2 Trajectoire du cylindre : chaque èche représente la vitesse du cylindre à
un temps donner et la position du cylindre
Charlie BARRAUD
page 54
8.3. RÉSULTAT
2013
Figure 8.3 Photo du montage avec en bleu la trajectoire du centre du cylindre au
cours du temps
8.3 Résultat
Même si le programme fonctionne relativement bien (on fera attention tout de même
à avoir un contraste de couleur fort entre le cylindre intérieur et le reste de l'image,
donc que celui-ci soit peint en noir), il est très lent. En eet, le traitement d'image est
lourd. C'est pourquoi une alternative serait d'utiliser une nouvelle fonction matlab (sur
la version 2013) : imndcircles.
Charlie BARRAUD
page 55
8.3. RÉSULTAT
Charlie BARRAUD
2013
page 56
9. Mesure de la vitesse de rotation
du cylindre intérieur
9.1 Présentation du problème
Nous cherchons ici à mesurer la vitesse de rotation du cylindre interne. Pour cela,
on eectue des calculs des images du cylindre dont on on a laissé volontairement une
marque blanche sur fond noire.
Figure 9.1 Photo du cylindre intérieur dont on veut déterminer sa vitesse de rotation
à tout moment
9.2 Algorithme de résolution-Méthode du "glissement"
1. On alloue une image comme image de référence du cylindre intérieur au temps t
telle que sur la gure suivante :
57
9.2. ALGORITHME DE RÉSOLUTION-MÉTHODE DU "GLISSEMENT"
2013
Figure 9.2 Photo de l'image prise comme référence an de débusquer le cylindre aux
temps suivants
2. On parcoure avec cette image la gure 9.1 au temps t + ∆t, d'abord de 10 pixels en
10 pixels, puis de pixel en pixel, comme si on parcourait un échiquier, passant de
case en case et eectuant le parcours sur toutes les cases. À chaque fois, on calcule la
corrélation entre l'image de référence de la gure 9.3 et le bout de l'image de départ
9.1 de même taille . Le maximum de tous les maximum de corrélation donnera alors
la position du cylindre.
Figure 9.3 Photo du cylindre trouvé par la méthode présentée ci-dessus
3. On transforme l'image de référence et l'image trouvée précédemment (celle au temps
t + ∆t) en images binaires :
Charlie BARRAUD
page 58
9.3. CONCLUSION
2013
Figure 9.4 La référence (à gauche) et l'image trouvée (à droite) transformée en binaire
4. On fait une boucle pour faire faire une rotation à l'image de référence tout en
mesurant sa corrélation avec l'autre image. La meilleure corrélation donne alors
l'angle avec lequel a tourné le cylindre entre t et t + ∆t.
5. Finalement, on met à jour l'image de référence en la remplaçant par celle trouvée
précédemment puis on recommence l'opération et ainsi de suite
9.3 Conclusion
Si le programme fonctionne bien, et qu'il donne des résultats satisfaisants, il est
cependant très lent et donc dicile d'utilisation.
Charlie BARRAUD
page 59
9.3. CONCLUSION
Charlie BARRAUD
2013
page 60
10. Bilan
10.1 Bilan du travail eectué
Il m'avait été demandé d'exécuter les tâches suivantes :
Construire l'expérience : celle-ci a été construite de manière correcte, même si
quelques imperfections persistent. On est capable de déterminer précisément la
vitesse du forçage du cylindre extérieur.
Déterminer le champ de vitesse par PIV : le programme fonctionne très bien pour
un écoulement stationnaire avec une faible vitesse. Par contre, en couche limite et
lors d'un écoulement instationnaire, on est incapable de déterminer le champ de
vitesse.
Pouvoir suivre le cylindre intérieur : le programme fonctionne bien, même si le
traitement d'image peut être lourd.
Pouvoir mesurer la rotation sur lui même du cylindre intérieur : le programme
fonctionne mais très lentement. Il faudrait le reprendre si on envisage de l'utiliser
souvent.
10.2 Bilan personnel
Si le travail eectué m'a permis de m'enrichir personnellement dans des domaines
aussi variés que la PIV, le traitement d'image ou encore le maniement de matlab qui me
seront forts utiles pour la suite de mes études, je peux regretter peut-être le manque de
moyen par moment, et de ne pas continuer l'étude physique des phénomènes que l'on
commençait à observer à la n de mon stage.
61
10.2. BILAN PERSONNEL
Charlie BARRAUD
2013
page 62
Bibliographie
[1] C. François J.-S. Darrozes. Mécanique des uides incompressibles. Service édition
de l'École Nationale Supérieure de Techniques Avancées, 32, boulevard Victor, 75739
Paris Cedex 15, 1998.
[2] G. I. Taylor. Stability of a Viscous Liquid Contained between Two Rotating Cylinders.
PhD thesis, Phil. Trans. R. Soc. Lond. A, 1923.
[3] Mathieu Gibert. Convection thermique turbulente : Panaches et Fluctuations. PhD
thesis, École Normale Supérieure de Lyon, 2007.
63
BIBLIOGRAPHIE
Charlie BARRAUD
2013
page 64
A. Les fonctions matlab utilisées
tout au long de la construction des
programmes
A.1 Le programme correl2d
%**********************************************************
% FUNCTION c o r r e l 2 d .m
3 % Usage : [ l a g , x , y ,C] = c o r r e l 2 d ( matrix1 , matrix2 )
% S e a r c h i n g P a t t e r n in Matrix1 .
% Compute 2D Cross C o r r e l a t i o n w i t h f f t 2 and i f f t 2
% l a g =[x , y ] a t max(C) ; C=C( x , y )
% Dimensiones son t a l e s que : A( x , y )=A(N,M) ;
8 %
rhp , 24 Junio 2002
%*********************************************************
f u n c t i o n [ l a g , X, Y,C ] = c o r r e l 2 d (A, B)
S = s i z e (A) ; N=S ( 1 ) ; M=S ( 2 ) ;
% Matrix s i z e ;
13 %X = l i n s p a c e (−N/2 ,N/2 ,N) ;
%Y = l i n s p a c e (−M/2 ,M/2 ,M) ;
%X=0:1:N− 1;
% X Axis t o g i v e z e r o l a g a t o r i g i n o f (N,
M)
%Y=0:1:M− 1;
o r i g i n o f (N,M)
A = A − mean2 (A) ;
18 B = B − mean2 (B) ;
% Y Axis t o g i v e z e r o l a g a t
% g e t out mean i n t e n s i t y
% g e t out mean i n t e n s i t y
normA = sum ( sum (A. ^ 2 ) ) ; normB = sum ( sum (A. ^ 2 ) ) ; % t o n o r m a l i z e
c r o s s −c o r r .
Co = ( f f t s h i f t ( i f f t 2 ( f f t 2 (A) . * c o n j ( f f t 2 (A) ) ) ) ) ; % Corr 2D
s h i f t i n g DC t o o r i g i n .
C = Co/ ( s q r t ( normA*normB ) ) ;
23
% Corr 2D max i s 1
65
A.2. PROGRAMMES DE CHARGEMENT DES IMAGES
[ r , Xo]=max(max( abs (C) ' ) ) ;
[ r , Yo]=max(max( abs (C) ) ) ;
X= 1 : 1 :N;
Y= 1 : 1 :M;
o r i g i n o f (N,M)
28 X=X−Xo ; Y=Y−Yo ;
M)
2013
% f i n d mean x− l a g
% f i n d mean y− l a g
% Y Axis t o g i v e z e r o l a g a t
% X Axis t o g i v e z e r o l a g a t o r i g i n o f (N,
normA = sum ( sum (A. ^ 2 ) ) ; normB = sum ( sum (B. ^ 2 ) ) ; % t o n o r m a l i z e
c r o s s −c o r r .
Co = f f t s h i f t ( i f f t 2 ( f f t 2 (B) . * c o n j ( f f t 2 (A) ) ) ) ; % Corr 2D s h i f t i n g
DC t o o r i g i n .
33 C = Co/ ( s q r t ( normA*normB ) ) ;
% Corr 2D max i s 1
[ r , x]=max(max( abs (C) ' ) ) ;
[ r , y]=max(max( abs (C) ) ) ;
l a g =[X( x ) ,Y( y ) ] ;
% f i n d mean x− l a g
% f i n d mean y− l a g
A.2 Programmes de chargement des images
A.2.1 Le programme de chargement des videos en .bin
%*********************************************************
2 %**
%** LOAD BINARY DATA IMAGES FROM PIXCI− D
%** RUN AS :
%**
%** [X,Y,N,A] = load_ccd2 ( ' F i l e . bin ' ,M) ;
7 %**
%** A: image matrix in form A(X,Y,M)
%** N: # a v a i l a b l e frames
%** M: # frames t o l o a d (N>=M)
%** X/Y: x− s i z e /y− s i z e ( p i x e l s )
12 %**
rhp 2002
%*********************************************************
f u n c t i o n [ X, Y, N,A] = load_ccd2 ( file_name , M) ;
Charlie BARRAUD
page 66
A.2. PROGRAMMES DE CHARGEMENT DES IMAGES
2013
f p = f o p e n ( file_name , ' rb ' ) ;
17 N
X
Y
dT
File
=
=
=
=
f r e a d ( fp
f r e a d ( fp
f r e a d ( fp
f r e a d ( fp
frames
,1 ,
,1 ,
,1 ,
,1 ,
' int32 ' ) ;
' int32 ' ) ;
' int32 ' ) ;
' int32 ' ) ;
22 A=z e r o s (X, Y,M) ;
f o r k=1:M,
A ( : , : , k ) = f r e a d ( fp , [ X,Y] , ' i n t 1 6 ' ) ;
Image from F i l e
%% Open Image
%% Load
%%
%% Load
%% Load
N images ( a v a i l a b l e )
Load X s i z e ( p i x e l s )
Y size ( pixels )
d e l a y (ms) between
%% Load a t l e a s t f i r s t
end ;
f c l o s e ( fp ) ;
A.2.2 Programme de correction des videos (puisqu'une image sur deux
subissait des décalages de quelques pixels lors de la gravation de
la video)
%**
[X,Y,N,A, B,C] =load_CCD2_2( file_name , M, evenoddx , evenoddy
, cx , cy )
%*********************************************************
3 %**
%** LOAD BINARY DATA IMAGES FROM PIXCI− D
%** RUN AS :
%**
%** [X,Y,N,A, B,C] = load_CCD2_2 ( ' F i l e . bin ' ,M, evenodd , cx , cy ) ;
8 %**
%** A: image matrix in form A(X,Y,M)
%** N: # a v a i l a b l e frames
%** M: # frames t o l o a d (N>=M)
%** X/Y: x− s i z e /y− s i z e ( p i x e l s )
13 %**
rhp 2002
%**
%** 2013: There i s an image d i s p l a c e m e n t e v e r y 2 images .
%** t h i s new f u n c t i o n c o r r e c t s t h i s e r r o r on t h e v i d e o l o a d i n g
%**
18 %**
%** B:
image matrix in form B(X,Y,M) , c o r r e c t i o n o f
%**
%**
%**
the A
C:
the A
Charlie BARRAUD
matrix in cy p i x e l s .
image matrix in form C(X,Y,M) , c o r r e c t i o n o f
matrix in cx and cy p i x e l s .
page 67
A.2. PROGRAMMES DE CHARGEMENT DES IMAGES
2013
23 %**
evenoddx : 0 − 1: 1 i f t h e odd images are d i s p l a c e d ( x ) , 0
else .
%** evenoddy : 0 − 1: 1 i f t h e odd images are d i s p l a c e d ( y ) , 0
else .
%** cx :
p i x e l s t o c o r r e c t on d i s p l a c e d images
%** cy :
p i x e l s t o c o r r e c t on d i s p l a c e d images
%**
28 %** eg : [X,Y,N,A, B,C] = load_CCD2_2 ( ' Movie . bin ' , 2 0 , 1 , 0 , 1 , 4 ) ;
%**
%**
C o r r e c t s 1 p i x e l on t h e odd images in t h e x
d i r e c t i o n and
%**
c o r r e c t s 4 p i x e l s on t h e even images in t h e y
direction .
%**
33 %**
%**
cbarraud & a v i a l 2013
%*********************************************************
f u n c t i o n [ X, Y, N, A, B, C] =load_CCD2_2 ( file_name , M, evenoddx ,
evenoddy , cx , cy )
38
[ X, Y, N,A]= load_ccd2 ( file_name ,M) ;
% The c o r r e c t i o n i s made i n t two s t a g e s , f i r s t y then x
f o r k=1: s i z e (A, 3 )
%
%
43
end
An a u x i l i a r matrix i s c r e a t e d , i t s s i z e i s s l i g t h l y
b i g g e r than A
( i t has cy rows o f z e r o s on t h e bottom o f each frame .
Z ( : , : , k ) =[A ( : , : , k ) ; z e r o s ( cy , s i z e (A, 2 ) ) ] ;
B=A;
48 f o r i=1+evenoddy : 2 : s i z e (A, 3 )
% B s a v e s t h e y− c o r r e c t i o n o f t h e matrix ( o n l y t a k e s t h e
%
%
53 end
odd ( even )
d i s p l a c e d images , t h e r e a s t are t h e same as in t h e
o r i g i n a l matrix
A)
B ( : , : , i )=Z ( cy +1: s i z e (A, 1 )+cy , : , i ) ;
clear Z;
%
Now a t r a n s p o s i t i o n o f t h e matrix a l l o w s t o r e p e a t t h e
process of
Charlie BARRAUD
page 68
A.3. PIV
58
%
2013
c o r r e c t i o n , t h i s time u s i n g cx
f o r k=1: s i z e (B, 3 )
aux ( : , : , k )=B ( : , : , k ) ' ;
end
c l e a r B;
B=aux ;
63 c l e a r aux ;
68
f o r k=1: s i z e (A, 3 )
Z ( : , : , k ) =[B ( : , : , k ) ; z e r o s ( cx , s i z e (B, 2 ) ) ] ;
end
C=B ;
f o r i=1+evenoddx : 2 : s i z e (A, 3 )
C ( : , : , i )=Z ( cx +1: s i z e (B, 1 )+cx , : , i ) ;
end
A.3 PIV
A.3.1 Le programme de PIV avec moyenne
%** [ B1 , v_moy , v_moy2 ] = moyennepiv ( video , f e n e t r e , d e l t a _ t , diam ,
lnoise , lo bj ec t ) ;
2 %
**************************************************************************
%** FUNCTION moyennepiv
%**
%** [ B1 , v_moy , v_moy2 ] = moyennepiv ( video , f e n e t r e , d e l t a _ t , diam ,
lnoise , lo bj ec t ) ;
%**
7 %** moyennepiv c a l c u l e l a v i t e s s e moyenne sur un p a r t i t i o n d '
images de
%** v i d e o en decoupant chaque image en f e n e t r e x f e n e t r e f e n e t r e s
%** d ' i n t e r r o g a t i o n e t en l e s comparant par c o r r e l a t i o n
%**
%** B1 :
v e c t e u r des p o s i t i o n s des c e n t r e s des f e n e t r e s
12 %** v_moy :
v i t e s s e moyenne sur chaque f e n e t r e
%** v_moy2 : v i t e s s e a b s o l u e sur chaque f e n e t r e
%** diam :
diametre du c y l i n d r e ( px )
%**
%**
cbarraud 2013
Charlie BARRAUD
page 69
A.3. PIV
17 %
2013
************************************************************************
f u n c t i o n [ B1 , v_moy , v_moy2 ] = moyennepiv ( video , f e n e t r e , delta_t ,
diam , l n o i s e , l o b j e c t )
22
%MOYENNE : l ' ecoulement e t a n t s t a t i o n n a i r e , on e f f e c t u e une
mesure de l a
%v i t e s s e de l ' ecoulement sur un c e r t a i n nombre d ' images e t on en
fai t la
%moyenne
%a l l o c a t i o n memoire
t o t _ l a g t o t=z e r o s ( 2 , f e n e t r e , f e n e t r e , s i z e ( video , 3 ) −1) ;
27
%Traitement des images : p a r t i c l e s t r a c k i n g
f o r i =1: s i z e ( video , 3 )
% F i l t r e passe −bas
% b p a s s ( image , Longueur − b r u i t , Longueur − o b j e t )
32
end
f o r i =1: s i z e ( video , 3 ) −1
% on c a l c u l e l a v i t e s s e moyenne dans chaque f e n e t r e .
% L a g t o t e s t un v e c t e u r contenant l e s v i t e s s e s moyennes
% l e u r c e n t r e B1 .
37
end
42
v i d e o b ( : , : , i )=bp ass ( v i d e o ( : , : , i ) , l n o i s e , l o b j e c t ) ;
[ l a g t o t , B1 ] = v e l o c i d a d _ s y n t h e s e ( v i d e o b ( : , : , i ) , v i d e o b ( : , : , i
+1) , f e n e t r e , d e l t a _ t ) ;
t o t _ l a g t o t ( : , : , : , i )=l a g t o t ;
media_ventana_1=f l o o r ( s i z e ( video , 1 ) / f e n e t r e ) / 2 ;
f o r i =1: f e n e t r e
m u l t i p l i c a d o r=i *2 − 1;
f o r j =1: f e n e t r e
C e n t r o s ( 1 , i , j )=media_ventana_1 * m u l t i p l i c a d o r ;
47
end
end
media_ventana_2=f l o o r ( s i z e ( video , 2 ) / f e n e t r e ) / 2 ;
f o r i =1: f e n e t r e
m u l t i p l i c a d o r=i *2 − 1;
52
f o r j =1: f e n e t r e
C e n t r o s ( 2 , j , i )=media_ventana_2 * m u l t i p l i c a d o r ;
Charlie BARRAUD
page 70
A.3. PIV
end
2013
end
57 B1=C e n t r o s ;
% On supprime l e s v a l e u r s q u i s o n t p l u s grandes ( ou p e t i t e s ) que
l a moyenne
% p l u s ( ou moins ) l a d e v i a t i o n s t a n d a r d .
62
67
f o r i =1: f e n e t r e
f o r k=1: f e n e t r e
f o r l =1: s i z e ( video , 3 ) −1
sigma1 =
std ( tot_lagtot (1 , i , k , : ) ) ;
moy1
=
mean ( t o t _ l a g t o t ( 1 , i , k , : ) ) ;
sigma2 =
std ( tot_lagtot (2 , i , k , : ) ) ;
moy2
=
mean ( t o t _ l a g t o t ( 2 , i , k , : ) ) ;
i f abs ( t o t _ l a g t o t ( 1 , i , k , l )−moy1 )>sigma1
t o t _ l a g t o t ( 1 , i , k , l )=moy1 ;
moy1=mean ( t o t _ l a g t o t ( 1 , i , k , : ) ) ;
end
72
i f abs ( t o t _ l a g t o t ( 2 , i , k , l )−moy2 )>sigma2
t o t _ l a g t o t ( 2 , i , k , l )=moy2 ;
moy2=mean ( t o t _ l a g t o t ( 2 , i , k , : ) ) ;
end
77
82
end
end
end
v_moy( 1 , i , k )=mean ( t o t _ l a g t o t ( 1 , i , k , : ) ) ;
v_moy( 2 , i , k )=mean ( t o t _ l a g t o t ( 2 , i , k , : ) ) ;
% V i t e s s e a b s o l u e sur chaque f e n e t r e
87
v_moy2=z e r o s ( f e n e t r e , f e n e t r e ) ;
f o r i =1: f e n e t r e
f o r k=1: f e n e t r e
v_moy2( i , k )=s q r t (v_moy( 1 , i , k )^2+v_moy( 2 , i , k ) ^2) ;
end
92 end
s c r s z = get (0 , ' ScreenSize ' ) ;
figure ( ' Position ' ,[1 scrsz (4) scrsz (3) scrsz (4) ] ) ;
Charlie BARRAUD
page 71
A.3. PIV
2013
97
s 1=s u b p l o t ( 2 , 2 , 1 ) ;
imagesc ( video ( : , : , 1 ) ) ;
colormap gray ;
daspect ( [ 1 1 1 ] ) ;
h o l d on ;
102 f o r i =1: f e n e t r e −1
l i n e ( [ i * f l o o r ( s i z e ( video , 2 ) / f e n e t r e ) i * f l o o r ( s i z e ( video , 2 ) /
f e n e t r e ) ] , [ 1 s i z e ( video , 1 ) ] , ' Color ' , [ 1 0 0 ] )
end
107
112
117
122
127
f o r i =1: f e n e t r e −1
l i n e ( [ 1 s i z e ( video , 2 ) ] , [ i * f l o o r ( s i z e ( video , 1 ) / f e n e t r e ) i *
f l o o r ( s i z e ( video , 1 ) / f e n e t r e ) ] , ' Color ' , [ 1 0 0 ] )
end
hold o f f
s 2=s u b p l o t ( 2 , 2 , 2 ) ;
s e t ( gca , ' F o n t Si z e ' , 2 0 ) ;
p l o t ( l i n s p a c e ( − 30 ,30 , s i z e (v_moy2 , 1 ) ) , 6 0 / diam*v_moy2( f l o o r (
f e n e t r e /2) +1 ,:) , ' * ' ) ;
s e t ( s2 , ' YGrid ' , ' on ' ) ;
s e t ( g e t ( s2 , ' XLabel ' ) , ' S t r i n g ' , ' D i s t a n c i a a l Centro [mm] ' , '
F o nt S i z e ' , 2 0 ) ;
s e t ( g e t ( s2 , ' YLabel ' ) , ' S t r i n g ' , ' V e l o c i d a d Media [mm/ s ] ' , ' F o n t Si z e
' ,20) ;
t i t l e ( ' V e l o c i d a d A b s o l u t a en Linea C e n t r a l H o r i z o n t a l ' ) ;
s 3=s u b p l o t ( 2 , 2 , 3 ) ;
s e t ( gca , ' F o n t Si z e ' , 2 0 ) ;
p l o t ( l i n s p a c e ( − 30 ,30 , s i z e (v_moy2 , 2 ) ) , 6 0 / diam*v_moy2 ( : , f l o o r (
f e n e t r e / 2 ) +1) , ' * ' ) ;
s e t ( s3 , ' YGrid ' , ' on ' ) ;
s e t ( g e t ( s3 , ' XLabel ' ) , ' S t r i n g ' , ' D i s t a n c i a a l Centro [mm] ' , '
F o nt S i z e ' , 2 0 ) ;
s e t ( g e t ( s3 , ' YLabel ' ) , ' S t r i n g ' , ' V e l o c i d a d Media [mm/ s ] ' , ' F o n t Si z e
' ,20) ;
t i t l e ( ' V e l o c i d a d A b s o l u t a en Linea C e n t r a l V e r t i c a l ' ) ;
s 4=s u b p l o t ( 2 , 2 , 4 ) ;
imagesc ( video ( : , : , 1 ) ) ;
daspect ( [ 1 1 1 ] ) ;
h o l d on ;
Charlie BARRAUD
page 72
A.3. PIV
132
2013
q u i v e r ( C e n t r o s ( 2 , : , : ) , C e n t r o s ( 1 , : , : ) ,v_moy ( 2 , : , : ) ,v_moy ( 1 , : , : ) , '
g ') ;
s e t ( gca , ' YDir ' , ' r e v e r s e ' ) ;
%
%
137 %
%
%
%
%
142 %
%
%
%
%
147 %
figure ;
l o n g e u r f e n e t r e x=f l o o r ( s i z e ( video , 2 ) / f e n e t r e ) ;
l o n g e u r f e n e t r e y=f l o o r ( s i z e ( video , 1 ) / f e n e t r e ) ;
[ x y z ]= meshgrid ( l o n g e u r f e n e t r e x / 2 : l o n g e u r f e n e t r e x : ( f e n e t r e −1)
* l o n g e u r f e n e t r e x+l o n g e u r f e n e t r e x / 2 , . . .
l o n g e u r f e n e t r e y / 2 : l o n g e u r f e n e t r e y : ( f e n e t r e −1) *
l o n g e u r f e n e t r e y+l o n g e u r f e n e t r e y / 2 , [ 0 1 ] ) ;
u ( : , : , 1 )=v_moy ( 2 , : , : ) ;
v ( : , : , 1 )=v_moy ( 1 , : , : ) ;
w ( : , : , 1 )=z e r o s ( s i z e ( v ) ) ;
u ( : , : , 2 ) =0;
v ( : , : , 2 ) =0;
w ( : , : , 2 ) =0;
c o n e p l o t ( x , y , z , u , v , w, x , y , z , s q r t ( u.^2+v . ^ 2 ) , 1 ) ; s h a d i n g i n t e r p ;
colorbar
end
A.3.2 Le programme de traitement d'image bpass
1
f u n c t i o n r e s = bp as s ( a r r , l n o i s e , l o b j e c t )
%
%
%
6 %
%
%
%
%
11 %
%
%
%
%
; NAME:
;
bpass
; PURPOSE:
;
Implements a r e a l −space bandpass f i l t e r which
suppress
;
p i x e l n o i s e and long −w a v e l e n g t h image
variations while
;
retaining information of a c h a r a c t e r i s t i c s i z e
.
;
; CATEGORY:
;
Image P r o c e s s i n g
; CALLING SEQUENCE:
;
r e s = b p a s s ( image , l n o i s e , l o b j e c t )
; INPUTS :
Charlie BARRAUD
page 73
A.3. PIV
16 % ;
% ;
% ;
% ;
% ;
21 % ;
%
%
%
%
26 %
%
%
%
%
31 %
%
%
%
%
36 %
%
%
%
%
41 %
%
%
filtered .
pixels .
length should
f l o a t i n g value .
than a t y p i c a l
2013
image :
The two−d i m e n s i o n a l array t o be
l n o i s e : C h a r a c t e r i s t i c l e n g t h s c a l e o f n o i s e in
A d d i t i v e n o i s e a v er a g e d over t h i s
v a n i s h . MAy assume any p o s i t i v e
l o b j e c t : A l e n g t h in p i x e l s somewhat l a r g e r
o b j e c t . Must be an odd v a l u e d i n t e g e r .
; OUTPUTS:
;
res :
f i l t e r e d image .
; PROCEDURE:
;
simple ' wavelet ' convolution y i e l d s s p a t i a l
bandpass f i l t e r i n g .
; NOTES:
; MODIFICATION HISTORY:
;
Written by David G. Grier , The U n i v e r s i t y o f
Chicago , 2/93.
;
G r e a t l y r e v i s e d v e r s i o n DGG 5/95.
;
Added / f i e l d keyword JCC 12/95.
;
Memory o p t i m i z a t i o n s and f i x e d n o r m a l i z a t i o n ,
DGG 8/99.
Converted t o Matlab by D. B l a i r 4/2004 − i s h
Fixed some bugs w i t h conv2 t o make s u r e t h e
e d g e s are
removed D.B. 6/05
Removed i n a d v e r t e n t image s h i f t ERD 6/05
Added t h r e s h o l d t o o u t p u t . Now s e t s a l l
p i x e l s with
n e g a t i v e v a l u e s e q u a l t o z e r o . Gets r i d o f
r i n g i n g which
was d e s t r o y i n g sub − p i x e l accuracy , u n l e s s
window s i z e in
c n t r d was p i c k e d p e r f e c t l y . Now c e n t r d g e t s
sub − p i x e l
accuracy much more r o b u s t l y ERD 8/24/05
;
;
This code ' b p a s s . pro ' i s c o p y r i g h t 1997 , John C.
Crocker and
;
David G. Grier . I t s h o u l d be c o n s i d e r e d ' freeware ' −
and may be
Charlie BARRAUD
page 74
A.3. PIV
% ;
%
46 %
51
56
2013
d i s t r i b u t e d f r e e l y in i t s o r i g i n a l form when p r o p e r l y
attributed .
b = double ( l n o i s e ) ;
w = round ( l o b j e c t ) ;
N = 2*w + 1 ;
% Gaussian C on vo l ut io n k e r n e l
sm = 0 :N− 1;
r = (sm − w) / ( 2 * b ) ;
gx = exp ( − r . ^ 2 ) / ( 2 * b * s q r t ( p i ) ) ;
gy = gx ' ;
%Boxcar a v e r a g e k e r n e l : background
61
bx = z e r o s ( 1 ,N)
by = bx ' ;
+ 1/N;
% Do some c o n v o l u t i o n s w i t h t h e matrix and our k e r n e l s
76
res = arr ;
g = conv2 ( r e s , gx , ' v a l i d ' ) ;
tmpg = g ;
g = conv2 ( tmpg , gy , ' v a l i d ' ) ;
tmpres = r e s ;
r e s = conv2 ( tmpres , bx , ' v a l i d ' ) ;
tmpres = r e s ;
r e s = conv2 ( tmpres , by , ' v a l i d ' ) ;
tmpg= 0 ;
tmpres =0;
a r r _ r e s=z e r o s ( s i z e ( a r r ) ) ;
arr_g = z e r o s ( s i z e ( a r r ) ) ;
81
a r r _ r e s ( ( l o b j e c t +1) : end− l o b j e c t , ( l o b j e c t +1) : end− l o b j e c t ) = r e s
;
arr_g ( ( l o b j e c t +1) : end− l o b j e c t , ( l o b j e c t +1) : end− l o b j e c t ) = g ;
%r e s = arr_g−arr_res ;
r e s=max( arr_g −a r r _ r e s , 0 ) ;
66
71
end
Charlie BARRAUD
page 75
A.3. PIV
2013
A.3.3 Le petit programme de calcul de la vitesse utilisant correl2d
1 %** [ l a g t o t , B1 ] = v e l o c i d a d _ s y n t h e s e (A, B, ventanas , time )
%
************************************************************************
%**
%** VELOCIDAD_SYNTHESE C a l c u l a t e in each window t h e speed o f t h e
fluid
%** u s i n g a c o r r e l a r ? t i o n method o f a two image sequence
6 %**
%** Run as :
%**
[ l a g t o t , B1 , B2 ] = v e l o c i d a d _ s y n t h e s e (A, B, ventanas ,
time )
%**
%**
11 %** A : f i r s t image
%** B : second image
%** ventanas : number o f windows t o s h a r e in t h e image
%** time : time between t h e s h o t o f t h e images
%** l a g t o t : c o n t a i n s t h e speed o f p a r t i c l e s in a l l t h e
interrogation
16 %**
windows
%** B1 : c e n t e r s o f a l l windows
%**
%**
cbarraud 2013
%
************************************************************************
21
f u n c t i o n [ l a g t o t , B1 ] = v e l o c i d a d _ s y n t h e s e (A, B, ventanas , time )
%c u t o f a l l windows in t h e two images
26
[ F1 , B1]= v e n t a n a c y l i n d r e (A, v e n t a n a s ) ;
[ F2 ,~]= v e n t a n a c y l i n d r e (B, v e n t a n a s ) ;
%memory a l l o c a t i o n
l a g t o t=z e r o s ( 2 , ventanas , v e n t a n a s ) ;
31
%c a l c u l a t i o n o f t h e speed in each window
f o r i =1: v e n t a n a s
f o r k=1: v e n t a n a s
Charlie BARRAUD
page 76
A.3. PIV
36
end
end
2013
[ l a g ,~ ,~ ,~]= c o r r e l 2 d ( F1 ( : , : , i , k ) , F2 ( : , : , i , k ) ) ;
l a g t o t ( : , i , k )=l a g / time ;
end
A.3.4 Le programme d'achage de toutes les fenêtres d'interrogation
découpée pour vérier si l'image est entièrement recouverte
%** f u n c t i o n [ ] = l e e r v e n t a n a (F)
%
**************************************************************************
3 %**
%**LEERVENTANA d i s p l a y a l l t h e
i n t e r r o g a t i o n windows on t h e
same image t o
%make v e r i f i c a t i o n
%**
%** Run as :
8 %**
[ ] = l e e r v e n t a n a (F)
%**
%** F : matrix c o n t a i n i n g a l l t h e windows ( i , i n d e x o f t h e
v e r t i c a l window
%**
number , k , i n d e x o f t h e h o r i z o n t a l window number )
%**
13 %**
cbarraud 2013
%
**************************************************************************
f u n c t i o n [ ] = l e e r v e n t a n a (F)
18 A=z e r o s ( s i z e (F , 1 ) , s i z e (F , 2 ) ) ;
f o r k=1: s i z e (F , 3 )
f o r i =1: s i z e (F , 3 )
A=A+F ( : , : , i , k ) ;
end
23
i m a g e s c (A) ; colormap ( gray ) ;
end
Charlie BARRAUD
page 77
A.4. DÉTERMINATION DE LA VITESSE DE ROTATION DU CYLINDRE
EXTÉRIEUR
2013
A.4 Détermination de la vitesse de rotation du cylindre extérieur
%** [A, v , s ] = s p e e d c y l i n d e r ( video , d e l t a _ t , c on v er si on , mult )
%
************************************************************************
%**
4 %** CALCULATE THE ROTATION SPEED OF THE OUTER CYLINDER
%**
%** RUN AS :
%**
[A, v , s ] = s p e e d c y l i n d e r ( video , d e l t a _ t , c on ve r si on , mult )
%**
9 %**
v : mean speed
%**
s : standard deviation
%**
v i d e o : v i d e o sequence t o p r o c e s s ( matrix 3D (M,N, I ) :
MxN p i x e l s ,
%**
I frames , gray , not r g b )
%**
d e l t a _ t : time between two frames
14 %**
c o n v e r s i o n : c o n v e r s i o n p x l −mm (1mm=c o n v e r s i o n s p i x e l s )
%**
%**
cbarraud
2013
%
************************************************************************
19
f u n c t i o n [ A, v , s ] = s p e e d c y l i n d e r ( video , delta_t , c o n v e r s i o n , mult )
%memory a l l o c a t i o n
24
BW=z e r o s ( s i z e ( v i d e o ) ) ;
D=z e r o s ( s i z e ( v i d e o ) ) ;
%Load o f t h e map
load t r e e s
%Image p r o c e s s i n g : we d e l e t e t h e backgrounds e l e m e n t s by
s u b t a c t i n g each
29 %time two c o n s e c u t i v e images , t h e we change t h e t h e images in
binary
%images .
Charlie BARRAUD
page 78
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
34
2013
f o r i =1: s i z e ( video , 3 ) −mult
D ( : , : , i )=v i d e o ( : , : , i )− v i d e o ( : , : , i+mult ) ;
BW( : , : , i )= im2bw (D ( : , : , i ) ,map , 0 . 9 9 9 9 9 9 ) ;
end
39
44
A=z e r o s ( s i z e ( video , 3 ) −mult − 1 ,1) ;
f o r j =1: s i z e ( video , 3 ) −mult −1
[ l a g , ~ , ~ , ~ ] = c o r r e l 2 d (BW( : , : , j ) ,BW( : , : , j +1) ) ;
A( j )=s q r t ( l a g ( 1 ) ^2+ l a g ( 2 ) ^2) / d e l t a _ t / c o n v e r s i o n ;
end
%
%
%
%
49 %
%
%
%
%
54
a=max(A) ;
b=s i z e (A, 1 ) ;
f i g u r e (1) ;
[AX, H1 , H2 ] = p l o t y y ( 1 : s i z e (A) ,A, 1 : s i z e (A) ,A/(60 * p i ) , ' p l o t ' )
x l a b e l ( ' Numero de l image ' )
s e t ( g e t (AX( 1 ) , ' Y l a b e l ' ) , ' S t r i n g ' , 'mm/s ' )
s e t ( g e t (AX( 2 ) , ' Y l a b e l ' ) , ' S t r i n g ' , ' t o u r s /s ' )
s e t (AX( 1 ) , 'YLim ' , [ 0 a +20])
s e t (AX( 2 ) , 'YLim ' , [ 0 a /(60 * p i ) + 0 . 3 ] )
v=mean (A) ;
s=s t d (A) ;
59 % F=( f f t (A) ) ;
% f=l i n s p a c e ( 0 , s i z e ( video , 3 ) , l e n g t h (F) ) ;
% f i g u r e (3) ;
% p l o t ( f , abs (F) )
64
end
A.5 Détermination de la trajectoire du cylindre
A.5.1 Détermination de la trajectoire
%** [A, B,C] = t r a j e c t o r y c e n t e r o f l i g h t m a s s (F , d e l t a _ t )
%
**************************************************************************
Charlie BARRAUD
page 79
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
2013
%** C a l c u l a t e t h e i n n e r c y l i n d e r t r a j e c t o r y by doing t h e
calculation , after
4 %** a s e r i e o f image p r o c e s s i n g , o f t h e c e n t e r o f l i g h t mass
%**
%** RUN as :
%** [A,B] = t r a j e c t o r y c e n t e r o f l i g h t m a s s (F , d e l t a _ t )
%**
9 %** A : speed o f t h e i n n e r c y l i n d e r
%** B : c e n t e r c o o r d i n a t e s f o r a l l sequence
%** C : c e n t e r s o f t h e i n n e r c y l i n d e r among time
%** F : v i d e o sequence t o t r e a t ( matrix 3D (M,N, I ) : MxN p i x e l s ,
I frames ,
%**
gray , not r g b )
14 %** d e l t a _ t : time betwenn each frame
%**
%**
cbarraud
2013
%
************************************************************************
19
24
f u n c t i o n [ A, B,C] = t r a j e c t o r y c e n t e r o f l i g h t m a s s (F , d e l t a _ t )
%Memory a l l o c a t i o n
A=z e r o s ( s i z e (F , 3 ) − 1 ,2) ;
B=z e r o s ( s i z e (F , 3 ) − 1 ,2) ;
C=z e r o s ( s i z e (F , 3 ) − 1 ,2) ;
%f i l t r a t i o n o f t h e p i c t u r e s
[ F ] = f i l t e r s (F) ;
%c a l c u l a t i o n o f t h e i n i t i a l c e n t e r ( c e n t e r o f l u z mass )
29 s = r e g i o n p r o p s ( l o g i c a l (F ( : , : , 1 ) ) , ' c e n t r o i d ' ) ;
c = [ s . Centroid ] ;
new_centre =[ c ( 2 ) c ( 1 ) ] ;
34
39
%c a l c u l o f t h e speed
f o r i =1: s i z e (F , 3 ) −1
[ l a g ,~ ,~ ,~]= c o r r e l 2 d (F ( : , : , i ) ,F ( : , : , i +1) ) ;
A( i , : ) =l a g *1/ d e l t a _ t ;
%update o f t h e c e n t e r
s = r e g i o n p r o p s ( l o g i c a l (F ( : , : , i +1) ) , ' c e n t r o i d ' ) ;
c = [ s . Centroid ] ;
Charlie BARRAUD
page 80
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
2013
new_centre1 =[ c ( 2 ) c ( 1 ) ] ;
44 %B
c o n t a i n t h e c e n t e r o f t h e segment between t h e i n n e r c y l i n d e r
centers of
%two c o n s e c u t i v e frames
B( i , : ) =(new_centre1+new_centre ) / 2 ;
C( i , : ) =new_centre1 ;
49
end
54
%d i s p l a y o f t h e speed in each frame
q u i v e r (B ( : , 1 ) ,B ( : , 2 ) ,A( : , 1 ) ,A( : , 2 ) ) ;
59
%d i s p l a y c y l i n d e r path .
figure ;
p l o t (C ( : , 2 ) ,C ( : , 1 ) ) ;
a x i s ( [ 1 s i z e (F , 2 ) 1 s i z e (F , 1 ) ] ) ;
s e t ( gca , ' YDir ' , ' r e v e r s e ' ) ;
end
A.5.2 Traitement d'image
%** [BW2s] = f i l t e r s ( v i d e o )
%
**************************************************************************
%**
%** IMAGE PROCESSING TO TRACK THE INNER CYLINDER
5 %**
%** RUN AS :
%**
[BW2s] = f i l t e r s ( v i d e o )
%**
%**
BW2s : p r o c e s s e d v i d e o sequence
10 %**
v i d e o : v i d e o sequence t o p r o c e s s ( matrix 3D (M,N, I ) :
MxN p i x e l s ,
%**
I frames , gray , not r g b )
%**
%**
cbarraud
2013
Charlie BARRAUD
page 81
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
%
15
2013
************************************************************************
f u n c t i o n [ BW2s ] = f i l t e r s ( v i d e o )
%memory a l l o c a t i o n
BWs=z e r o s ( s i z e ( v i d e o ) ) ;
20 BWsdil=z e r o s ( s i z e ( v i d e o ) ) ;
BWdfill=z e r o s ( s i z e ( v i d e o ) ) ;
BWnobord=z e r o s ( s i z e ( v i d e o ) ) ;
BWfinal=z e r o s ( s i z e ( v i d e o ) ) ;
BW2s=z e r o s ( s i z e ( v i d e o ) ) ;
25
%d e f i n i t i o n o f t h e fudgeFactor , se90 , se0 : parameters f o r t h e
image
%p r o c e s s i n g
30
fudgeFactor =0.8;
se90 = s t r e l ( ' l i n e ' , 3 , 90) ;
se0 = s t r e l ( ' l i n e ' , 3 , 0) ;
%We a p p l y t h i s f i l t e r t o t h e v i d e o :
35
f o r i =1: s i z e ( video , 3 )
%d e t e c t i o n o f t h e contour
[ ~ , t h r e s h o l d ] = edge ( v i d e o ( : , : , i ) , ' s o b e l ' ) ;
BWs ( : , : , i ) = edge ( v i d e o ( : , : , i ) , ' s o b e l ' , t h r e s h o l d * f u d g e F a c t o r )
;
40 %d i l a t a t i o n o f t h e p i c t u r e
BWsdil ( : , : , i ) = i m d i l a t e (BWs ( : , : , i ) , [ s e 9 0 s e 0 ] ) ;
%we f i l l in t h e h o l e s
45
BWdfill ( : , : , i ) = i m f i l l ( BWsdil ( : , : , i ) , ' h o l e s ' ) ;
%we g e t r i d o f t h e o b j e c t s on t h e s i d e s
BWnobord ( : , : , i )= i m c l e a r b o r d e r ( BWdfill ( : , : , i ) , 4 ) ;
50
% Smooth o f t h e c o n t o u r s
seD = s t r e l ( ' diamond ' , 1 ) ;
BWfinal ( : , : , i ) = imerode ( BWnobord ( : , : , i ) , seD ) ;
BWfinal ( : , : , i ) = imerode ( BWfinal ( : , : , i ) , seD ) ;
Charlie BARRAUD
page 82
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
55
60
2013
end
%We g e t r i d o f t h e n o i s e t h a n k s t o t h e m e d f i l t 2 f o n c t i o n
f o r i =1: s i z e ( video , 3 )
BW2s ( : , : , i ) = m e d f i l t 2 ( BWfinal ( : , : , i ) , [ 2 0 2 0 ] ) ;
end
end
A.5.3 Création d'une image articielle : cercle blanc sur fond noir
%** [A] = c r e a t i o n c y l i n d e r ( c e n t r e , rayon , s i z e )
%
**************************************************************************
3 %**
%** CREATIONCYLINDER c r e a t e a w h i t e c y l i n d e r on a b l a c k
%**
%**
%**
8 %**
%**
%**
%**
%**
13 %**
%**
%
18
23
background
Run as :
[A] = c r e a t i o n c y l i n d e r ( c e n t r e , rayon , s i z e )
centre : center of the cylinder
rayon : r a d i u s o f t h e c y l i n d e r
s i z e : s i z e o f t h e image
A : f i n a l image
cbarraud 2013
**************************************************************************
f u n c t i o n [A] = c r e a t i o n c y l i n d e r ( c e n t r e , rayon , s i z e )
A=z e r o s ( s i z e , s i z e ) ;
f o r a =1: s i z e
f o r b=1: s i z e
i f s q r t ( ( a− c e n t r e ( 1 ) ) ^2+(b− c e n t r e ( 2 ) ) ^2)<rayon
A( a , b ) =255;
end
end
Charlie BARRAUD
page 83
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
2013
28 end
end
A.5.4 Création d'un lm à partir des images articielles (spirale)
%**
%
[A,C] = t r a j _ a r t i f i c i a l ( a , b , rayon , s i z e , nb_image )
************************************************************************
%**
4 %** TRAJ_ARTIFICIELLE c r e a t e a v i d e o sequence ( w i t h n o i s e ) where
t h e i n n e r c y l i n d e r does
%** a s p i r a l as t r a j e c t o r y
%**
%** Run as :
%**
[A,C] = t r a j _ a r t i f i c i a l ( a , b , rayon , s i z e , nb_image )
9 %**
%** a : a m p l i t u d e
%** b : " time " a m p l i t u d e
%** rayon : c y l i n d e r r a d i u s
%** s i z e : s i z e o f t h e image
14 %** nb_image : number o f p i c t u r e s in t h e v i d e o
%**
%** A : v i d e o sequence o f t h e s p i r a l
%** C : c o n t a i n s t h e c e n t e r s o f each i n n e r c y l i n d e r in a l l t h e
sequence
%**
19 %**
%**
cbarraud
2013
%
************************************************************************
24
f u n c t i o n [ A, C] = t r a j _ a r t i f i c i a l ( a , b , rayon , s i z e , nb_image )
B=z e r o s ( s i z e , s i z e , nb_image ) ;
A=z e r o s ( s i z e , s i z e , nb_image ) ;
centre_image =[ s i z e /2 s i z e / 2 ] ;
29 C=z e r o s ( 2 , nb_image ) ;
f o r i =1: nb_image
Charlie BARRAUD
page 84
A.5. DÉTERMINATION DE LA TRAJECTOIRE DU CYLINDRE
t=i * 3 . 1 4 / 6 ;
x=f l o o r ( a * exp ( b* t ) * c o s ( t ) ) ;
y=f l o o r ( a* exp ( b* t ) * s i n ( t ) ) ;
34
39
2013
B ( : , : , i )=c r e a t i o n c y l i n d r e ( [ y x]+ centre_image , rayon , s i z e ) ;
A ( : , : , i )=i m n o i s e (B ( : , : , i ) , ' g a u s s i a n ' ) ;
C ( : , i ) =[y x]+ centre_image ;
end
end
A.5.5 Calcul des erreurs entre trajectoire articielle et calculée
%** [ e ] = e r r o r s (A,B)
2 %
**************************************************************************
%** ERROR c a l c u l a t e t h e e r r o r between t h e images o f s i n t h e s i s
and t h e ones
%** c a l c u l a t e d w i t h t h e c o r r e l a t i o n method
%**
%** Run as :
7 %**
[ e ] = e r r o r s (A,B)
%**
%** A : matrix o f r e f e r e n c e
%** B : matrix o f t h e c a l c u l a t i o n
%**
12 %** e : e r r o r
%**
cbarraud
2013
%
**************************************************************************
17
f u n c t i o n [ e ] = e r r o r s (A, B)
n b _ c a l c u l=s i z e (A, 2 ) ;
e=z e r o s ( 2 , n b _ c a l c u l ) ;
22
f o r i =1: n b _ c a l c u l
e ( 1 , i ) =(A( 1 , i )−B( 1 , i ) ) /A( 1 , i ) ; %e r r e u r s e l o n y
e ( 2 , i ) =(A( 2 , i )−B( 2 , i ) ) /A( 2 , i ) ; %e r r e u r s e l o n x
Charlie BARRAUD
page 85
A.6. DÉTERMINATION DE LA VITESSE DE ROTATION DU CYLINDRE
INTÉRIEUR
27
32
2013
end
figure (1) ;
p l o t ( 1 : nb_calcul , e ( 1 , : ) , ' * ' ) ; t i t l e ( ' y ' ) ;
figure (2) ;
p l o t ( 1 : nb_calcul , e ( 2 , : ) , ' * ' ) ; t i t l e ( ' x ' ) ;
end
A.6 Détermination de la vitesse de rotation du cylindre intérieur
1 %** [ omega ] = r o t a t i o n ( video ,R, d e l t a _ t , l )
%
%**
%**
%**
6 %**
%**
%**
%**
%**
11 %**
%**
%**
%**
%**
16 %
************************************************************************
CALCULATE t h e mean r o t a t i o n o f t h e i n n e r c y l i n d e r .
[ omega ] = r o t a t i o n ( video ,R, d e l t a _ t , l )
v i d e o : v i d e o sequence t o a n a l y s e
R : r e f e r e n c e image , t h e i n n e r c y l i n d e r
C a r e f u l : R must be a s qu a re d matrix
d e l t a _ t : time between each frame
l : l a g between each i t e r a t i o n
omega : mean r o t a t i o n speed
2013
cbarraud
************************************************************************
f u n c t i o n [ omega ] = r o t a t i o n ( video , R, delta_t , l )
21
%memory a l l o c a t i o n
s=s i z e (R, 1 ) ;
a=s i z e ( video , 1 ) ;
a2=s i z e ( video , 2 ) ;
maximo=z e r o s ( a , a ) ;
omega=z e r o s ( 1 , s i z e ( video , 3 ) −1) ;
Charlie BARRAUD
page 86
A.6. DÉTERMINATION DE LA VITESSE DE ROTATION DU CYLINDRE
INTÉRIEUR
26
2013
l 1 =10;%l a g o f t h e f i r s t d e t e c t i o n ( must be between 5 and 10)
f u d g e F a c t o r = 0 . 6 ; %parameter f o r t h e edge f u n c t i o n
%i t e r a t i o n : we s l i p t h e r e f e r e n c e image on t h e whole p i c t u r e t o
t e s t with
31 % a l a g o f l1 , which i s a c o a r s e s e a r c h . Then , we r e f i n e i t w i t h
the l lag .
f o r j =1: s i z e ( video , 3 ) −1
%Image p r o c e s s i n g f o r R t o a l l o w i t a r o t a t i o n w i t h o u t b l a c k
edge
36 % appearance .
[ ~ , t h r e s h o l d ] = edge (R, ' s o b e l ' ) ;
Rbin= edge (R, ' s o b e l ' , t h r e s h o l d * f u d g e F a c t o r ) ;
41 %Each time , we c a l c u l a t e t h e c o r r e l a t i o n between b o t h o f them
%( t h e c o r r e l a t i o n i s k e p t in t h e C matrix ) . Then , we t a k e i t s
maximum which
%i s p l a c e d in t h e matrix maimo .
46
51
f o r i =1: f l o o r ( ( a−s ) / l 1 )+1
f o r k=1: f l o o r ( ( a2−s ) / l 1 )+1
[ ~ , ~ , ~ ,C] = c o r r e l 2 d (R, v i d e o ( l 1 * ( i − 1)+1: l 1 * ( i − 1)+s ,
l 1 * ( k − 1)+1: l 1 * ( k − 1)+s , j +1) ) ;
maximo ( i , k )=max(C ( : ) ) ;
end
end
%We s e a r c h f o r t h e maximum o f c o r r e l a t i o n between a l l t h e
maximum
%( which c o r r e s p o n d s t o t h e r e f e r e n c e image ) , t h e we f i n d i t s
position .
56
[ ~ , p o s i t i o n ] = max( maximo ( : ) ) ;
[m, n ] = i n d 2 s u b ( s i z e ( maximo ) , p o s i t i o n ) ;
%Update o f t h e image in which we have t o f i n d t h e r e f e r e n c e
v i d e o p r i m e=v i d e o ( l 1 * (m− 1)+1: l 1 * (m− 1)+s , l 1 * ( n − 1)+1: l 1 * ( n − 1)+s , j
+1) ;
Charlie BARRAUD
page 87
A.6. DÉTERMINATION DE LA VITESSE DE ROTATION DU CYLINDRE
INTÉRIEUR
2013
61 %We r e f i n e t h e s e a r c h
aprime=s i z e ( videoprime , 1 ) ;
a2prime=s i z e ( videoprime , 2 ) ;
f o r i =1: f l o o r ( ( aprime −s ) / l )+1
f o r k=1: f l o o r ( ( a2prime −s ) / l )+1
[ ~ , ~ , ~ ,C ] = c o r r e l 2 d (R, v i d e o p r i m e ( l * ( i − 1)+1: l * ( i − 1)+
s , l * ( k − 1)+1: l * ( k − 1)+s ) ) ;
maximo ( i , k )=max(C ( : ) ) ;
66
71
end
end
[ ~ , p o s i t i o n ] = max( maximo ( : ) ) ;
[m, n ] = i n d 2 s u b ( s i z e ( maximo ) , p o s i t i o n ) ;
76 %update o f t h e r e f e r e n c e image
Rprime=v i d e o p r i m e ( l * (m− 1)+1: l * (m− 1)+s , l * ( n − 1)+1: l * ( n − 1)+s ) ;
%Image p r o c e s s i n g f o r new R t o a l l o w i t t o be compared w i t h t h e
r o t a t e d R.
81 maximo=z e r o s ( 1 , 9 0 ) ;
[ ~ , t h r e s h o l d ] = edge ( Rprime , ' s o b e l ' ) ;
Rprimebin= edge ( Rprime , ' s o b e l ' , t h r e s h o l d * f u d g e F a c t o r ) ;
86 %Ro t a t i o n o f t h e r e f e r e n c e image
f o r i =1:90 %c a r e f u l : t h e v a l u e o f end o f t h e r o t a t i o n has t o be
adjusted !
91
Rrot=i m r o t a t e ( Rbin , i , ' b i l i n e a r ' , ' crop ' ) ;
[ ~ , ~ , ~ ,C ] = c o r r e l 2 d ( Rprimebin , Rrot ) ;
maximo ( i )=max(max( abs (C) ) ) ;
end
%We s e a r c h f o r t h e maximum o f c o r r e l a t i o n
[ ~ , p o s i t i o n ] = max( maximo ) ;
96 omega ( j )=p o s i t i o n / d e l t a _ t ;
%update o f t e h r e f e r e n c e image
R=Rprime ;
i m a g e s c ( Rprimebin )
Charlie BARRAUD
page 88
A.6. DÉTERMINATION DE LA VITESSE DE ROTATION DU CYLINDRE
INTÉRIEUR
2013
101 end
%p l o t o f t h e r o t a t i o n speed between each p i c t u r e
106
figure (1) ;
p l o t ( omega , ' * ' )
a x i s ( [ 0 120 200 9 0 0 ] )
end
Charlie BARRAUD
page 89
Téléchargement