ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
GRADO EN INGENIERÍA ELECTROMECÁNICA
Especialidad Mecánica
GENERACIÓN Y CARACTERIZACIÓN
POR PIV DE UN FLUJO
TURBULENTO
Autor: David Román Gaztañaga
Directores: Gautier Verhille y Fabien Anselmet
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
GRADO EN INGENIERÍA ELECTROMECÁNICA
Especialidad Mecánica
GENERACIÓN Y CARACTERIZACIÓN
POR PIV DE UN FLUJO
TURBULENTO
Autor: David Román Gaztañaga
Directores: Gautier Verhille y Fabien Anselmet
GENERACIÓN Y CARACTERIZACIÓN POR PIV DE UN FLUJO
TURBULENTO
Autor: Román Gaztañaga, David.
Directores: Verhille, Gautier y Anselmet, Fabien.
Entidad Colaboradora: IRPHE (Institut de Recherche sur les Phénomènes
Hors Équilibre).
Resumen del proyecto
Introducción
El estudio de flujos en régimen turbulento se
realiza cada día con más frecuencia con la ayuda de
métodos numéricos. Sin embargo, los cálculos numéricos
están todavía limitados y, en numerosas ocasiones, es
imposible tener acceso a ciertos números de Reynolds
sin la utilización de hipótesis. Es por ello que los
estudios experimentales son todavía enormemente
necesarios, siendo los encargados de ayudar a mejorar
más aún los métodos numéricos y de probar sus
resultados.
El dispositivo
Existen numerosos dispositivos experimentales
dedicados al estudio de flujos en régimen turbulento, que
varían en función de las características de cada estudio.
Con el fin de estudiar una turbulencia homogénea isótropa, hemos construido un
dispositivo inspirado en el utilizado por W. Hwang et J.
K. Eaton, basándose a su vez en el flujo de von Karmán.
Hoy en día, este tipo de flujo es frecuentemente
estudiado y utilizado con fines experimentales, si bien su
generación no es nada sencilla, ya que como se explica
en este proyecto, la zona de homogeneidad es muy
pequeña frente a las dimensiones del dispositivo
utilizado para generarla.
A lo largo de los dos meses en el IRPHE, nuestro
primer objetivo es el montaje y la configuración de un
nuevo dispositivo formado por un cubo lleno de agua
donde se genera la turbulencia, con un motor en cada
vértice, cada uno de estos haciendo girar un disco en el
interior del cubo. El sistema estará controlado por
Fig 1. Flujo de von Karmán
Fig 2. Nuestro cubo. Discos en el interior.
servos, uno por cada par de motores opuestos entre sí. Estos servos serán configurados y
controlados por ordenador.
Aproximadamente a las dos semanas , una vez terminado el montaje del nuevo
dispositivo de generación de la turbulencia, han habido problemas con los servos y estos
han tenido que ser reenviados a su fábrica en Italia. Hemos tenido por lo tanto que
centrarnos directamente en nuestro segundo objetivo, la caracterización del flujo, sobre
cuyo método debemos trabajar antes de poderlo implementar en nuestro dispositivo.
Particle Image Velocimetry
El flujo generado por nuestro dispositivo será caracterizado con el método de la
PIV (Particle Image Velocimetry) en su versión de 2 dimensiones. Este método utiliza
dos fotos del flujo en
las cuales se aprecian
puntos brillantes.
Estos puntos son
efecto del reflejo de la
luz de un laser por
unas partículas de
cristal previamente
añadidas. Una vez
tomadas las dos
imágenes se calcula
por correlación cruzada
el desplazamiento de
cada partícula entre los dos instantes. Ya que en algunas zonas la velocidad del fluido
puede llegar a implicar Reynolds del
orden de 107, nuestras cámaras PIV
no serán aptas para su utilización, ya
que no ofrecen intervalos entre las
dos imágenes lo suficientemente
cortos.
Nuestro segundo objetivo es
desarrollar un método previo a la
PIV, de forma que sustituimos
nuestra cámara PIV por dos cámaras
normales controladas por Labview.
Una vez tomadas las dos imágenes,
esta vez con un intervalo de tiempo
tan pequeño como queramos, se
transformará una de las imágenes al sistema de la otra mediante una proyección
biyectiva, de forma que se pueda medir el desplazamiento. Una vez realizada esta
transformación con la ayuda de Matlab, y tras algún otro proceso necesario para el buen
Fig 3. Modificaciones en la toma de las imágenes.
Fig 4. Imagen original para PIV.
funcionamiento del método, se tratarán las imágenes con el algoritmo DPIV-Soft
desarrollado por Patrice Meunier en el IRPHE en 2010.
Resultados
Hemos dedicado el resto
del tiempo disponible en el
laboratorio al desarrollo de este
nuevo método, en parte por el
trabajo requerido a la hora de pulir
los errores generados durante el
proceso, pero en parte también por
el simple hecho de que el
fabricante de los servos ha tardado
meses en darnos noticias sobre los
problemas, sufridos por los cuatro
servos a la vez.
Se llevan a cabo dos
pruebas del método de
transformación, las cuales nos dan resultados aceptables. Hemos conseguido a partir de
una imagen tomada con una cámara, construir la imagen que habría sido tomada por una
segunda cámara situada a unos centímetros de la primera. Tras esta transformación,
podemos calcular el campo de velocidades en el flujo tal y como habríamos hecho con
una cámara PIV.
Conclusiones
Tras analizar los errores, se concluye al final del estudio que buena parte de
estos son causados fundamentalmente por tres factores: parámetros no óptimos para el
cálculo de la función de correlación en zonas donde la velocidad es próxima a cero, una
densidad no adecuada de partículas PIV en el fluido (algo muy fácil de comprobar pero
para lo cual no hemos tenido tiempo), y los errores generados en el cálculo de los
parámetros de la transformación (relacionados con la matriz de proyección).
Si bien no hemos podido comprobar el buen funcionamiento del método en
nuestro dispositivo, no cabe duda de que, a pesar de que queden errores a pulir, el
método es física y matemáticamente posible de realizar. Se deberá sin duda continuar
con el trabajo de mejora de los errores en las rutinas de Matlab antes de poder ser
utilizado con fiabilidad.
Fig 5. Representación del campo de velocidad.
GENERATION AND CHARACTERIZATION BY PIV OF A
TURBULENT FLUX
Introduction
The study of turbulent flux is more and more
often done by the means of numerical methods.
However, numerical calculus is still limited and in many
cases it's impossible to arrive to some Reynolds
numbers without the use of certain hypothesis. This is
why experimental studies are still highly necessary,
being in charge of improving the numerical methods as
well as of testing their results.
Our new device
There are many different experimental devices
for the study of flux in turbulent conditions, that vary
depending on the specific characteristics of the
experiments. In order to study an homogeneous
isotropic turbulence, we have built a device inspired on
the one used by W. Hwang and J. K. Eaton, which at the same time is inspired on the
von Karmán flux. This type of turbulence is nowadays frequently used and studied,
even though its generation is not that easy given the small size of the homogeneous
region.
During these two months at the IRPHE,
our main objective is the installation and
configuration of de new device, composed by a
cube full of water, with an electric engine on
each corner, each of these making a stainless
steel disk turn. The electric system will be
controlled by four servo drivers, each one of
them controlling a pair of opposed engines.
These servos will be configured by computer.
About two weeks after the start at the
IRPHE, and once the installation of the new
device finished, we have had some problems
with the servos, with the four of them at the
same time. They have been sent to the factory
to be analysed by their experts, in Italy. We
have then slightly changed our objectives,
focusing on the adaptation of a PIV method to
our flux, specially fast.
Fig 1. Von Karmán's turbulence
Fig 2. Cube with stainless steel disks inside.
Particle Image Velocimetry
Our flux will be characterized by a PIV (Particle Image Velocimetry) method, in
its 2D version. This method uses two photos of the flux, on which we can distinguish
brilliant dots. These are the reflex of a laser on the PIV particles, very little glass
marbles. Once the two photos are taken, cross correlation is used to find the same
particle on both images and estimate the displacement. Given the 107 Reynolds numbers
in some zones of our flux, traditional PIV cameras don't offer a short enough time
interval between the two images.
Our second
objective is then to
develop a new
method to use
before sending the
images to the PIV
method. This way
we will be able to
use two different
cameras placed one
next to another,
replacing the
traditional PIV
camera. Once we have got both images, taken with the wished interval, we will
transform one of the two images to
the coordinate system of the other by
the means of a bijective application.
We will use Matlab to implement
these methods as well as some other
changes in format and size needed for
using DPIV-Soft, a PIV algorithm
developed by Patrice Meunier at the
IRPHE in 2010.
Results
The rest of the time at the
laboratory was spent on the
development of this new method, on
one side due to the big amount of
work required by this job, but also due
to the problems with the servos, about the which we still have no news.
Fig 3. Modifications in the image taking process.
Fig 4. Raw picture taken by camera.
Two tests have been put
in place for the new
transformation method. The
results have been good enough
to say that the method works.
We are able to estimate the
speed field from the projected
images, replacing our PIV
camera.
Conclusions
After analysing the errors
we have deduced three main
causes. First of all there are the parameters for the correlation function that need to be
optimised, as they cause an increase in error where the speed of the particles is close to
zero. In second place, a low density in PIV particles causes the apparition of errors.
Thirdly, the parameters calculated for the transformation of the images (the
transformation matrix) create a third component of the error.
Even though we haven't been able to test this method on our device, there is no
doubt that it will work. However, there is still the need to improve the results before
making of it a real measure method. We must still analyse and work on the Matlab code
in order to arrive to an acceptable level of liability.
Fig 5. Representation of the speed field.
Página 9/85
Agradecimientos
Esta página está reservada al reconocimiento y mi muestra de gratitud a todos
aquellos que me han ayudado en la realización de este proyecto en el IRPHE.
En primer lugar, agradecer a M. Gautier Verhille, mi tutor en el IRPHE, por
ofrecerme la oportunidad de trabajar con él, y por su paciencia, su apoyo y sus
consejos a lo largo de estos dos meses.
A su vez quiero agradecer a M. Fabien Anselmet, mi tutor en el École Centrale
Marseille y también investigador en el IRPHE, por haber confiado en mí y haberme
puesto en contacto con el laboratorio.
Igualmente, mis agradecimientos a mis compañeros en el IRPHE, los cuales han
ofrecido su ayuda y consejos desde el primer momento.
Finalmente, me gustaría dar las gracias a mi familia por los consejos y el apoyo
diario durante todos mis años de estudios, que han hecho más fácil superar todas las
pruebas y desafíos que surgen, tanto en los estudios, como en la vida en general.
Página 11/85
Índice
Capítulo 1.- Presentación de la Institución de acogida y de la problemática a
tratar....................................................................................................................13
1.1 El IRPHE........................................................................................................................15
1.1.1 Presentación del IRPHE............................................................................15
1.1.2 Campos de invastigación..........................................................................15
1.2 Presentación del equipo de Ecoulements Tournants et Géohysiques..........16
1.3 Problemática a tratar.................................................................................................17
1.3.1 Presentación de la problemática............................................................17
1.3.2 Motivación del estudio..............................................................................17
1.3.3 Objetivos del proyecto.............................................................................18
Capítulo 2.- Dispositivo a construir..................................................................20
2.1 Presentación................................................................................................................22
2.2 Características del flujo a crear...............................................................................24
2.2.1 Flujo de von Karmán.................................................................................24
2.2.2 Solución propuesta....................................................................................24
2.3 Circuito hidráulico......................................................................................................25
2.4 Circuito eléctrico.......................................................................................................26
2.5 Conclusión...................................................................................................................29
Capítulo 3.- Medida del campo de velocidad: un nuevo tipo de PIV ............31
3.1 Principio de funcionamiento y límites de la PIV.................................................33
3.1.1 Principio de funcionamiento....................................................................33
3.1.2 Límites de la PIV.........................................................................................35
3.2 Solución propuesta.....................................................................................................37
Página 12/85
3.2.1 Principio de funcionamiento....................................................................37
Homografía...............................................................................................38
Calibración...............................................................................................44
Determinación del campo de velocidad............................................46
Capítulo 4.- Prueba del nuevo método............................................................49
4.1 Primer test PIV............................................................................................................51
Análisis de error...................................................................................................56
Conclusión.............................................................................................................56
4.2 Segundo test PIV.........................................................................................................59
Análisis de error...................................................................................................60
Conclusión.............................................................................................................60
4.3 Estudio del rotacional................................................................................................63
4.4 Error cometido por LabView..................................................................................65
Capítulo 5.- Conclusiones..................................................................................69
5.1.- Conclusiones sobre la metodología.....................................................................71
5.2.- Conclusiones sobre los resultados......................................................................72
Capítulo 6.- Bibliografía.....................................................................................73
Capítulo 7.- Anexos............................................................................................77
Anexo 1. Ficha técnica del TC 80 4 17........................................................................79
Anexo 2. Cámara PIV.......................................................................................................81
Anexo 3. Función main3D.mat........................................................................................82
Anexo 3. Funciones implementadas para main3D.mat..............................................83
Anexo 5. Parámetros Calibración Estéreo..................................................................85
Página 15/85
1.1 El IRPHE
1.1.1 Presentación del IRPHE
Este proyecto se ha realizado durante mi periodo de prácticas en el IRPHE en
Junio y Julio de 2015. En el contexto de mi segundo curso de Doble Diploma en el
Ecole Centrale Marseille, las prácticas han tenido lugar en el Instituto de Investigación
sobre Fénomenos Fuera de Equilibrio, IRPHE por sus siglas en francés (Instutit de
Recherche sur les Phénoménes Hors Équilibre). Se trata de una colaboración entre el
CNRS (Centre National de Recherche Scientifique), el Ecole Centrale Marseille y la Aix-
Marseille Université, dedicado fundamentalmente a la modelización de sistemas
macroscópicos complejos, con aplicaciones en diversos campos.
El IRPHE también cuenta con colaboraciones con diversas empresas, entre las
que destacan Air Liquide, Airbus Industrie, EADS, Snecma, Renault y Peugeot. De igual
manera, trabaja con las universidades de Berkeley y Guadalajara, además de UCLA.
1.1.2 Campos de investigación
El IRPHE está compuesto por 8 equipos de investigación:
Aerodinámica
Auto-organización
Biofísica
Biomecánica
Flujos rotacionales y geofísica
Estructuras Atmósfera y Océano
Fragmentación de la Mezcla de Combustión
Turbulencias
Mi trabajo se ha realizado dentro del equipo de Flujos rotacionales y geofísica.
Al mismo tiempo, mi tutor durante las prácticas ha sido Gautier Verhille, investigador
del CNRS desde 2011 en el mismo equipo.
Página 16/85
1.2 Presentación del equipo de Flujos Rotacionales y
Geofísicos
El equipo "Écoulements tournants et géophysiques" fue creado en septiembre
de 2005, para seguir con la temática de sus equipos predecesores "Écoulements
tournants" y "Dinámica de Vortex" proponiendo una apertura pluridisciplinar hacia los
flujos geo y astrofísicos. En el momento de mis prácticas, estaba formado por 6
investigadores-profesores permanentes, 3 estudiantes de doctorado y 2 de post-
doctorado.
La temática de la investigación se organiza alrededor de dos eje principales. Por
un lado trabaja sobre los flujos rotatorios industriales, con colaboraciones con
SNECMA et Liebherr Aerospace. Por otra parte, se centra en la dinámica de los
sistemas naturales[1]. Las distintos temas dentro de cada uno de los dos ejes son los
siguientes:
Eje1. Flujos rotatorios industriales.
-Flujo turbulento rotor/stator.
-Transferencia de calor dentro de una turbomáquina de tipo Taylor-Couette con flujo
axial.
Eje 2. Dinámica de los sistemas naturales:
-Los mecanismos en el impacto de las olas.
-Inestabilidades inerciales de los flujos rotatorios
-Dinámica de los flujos estratificados: estabilidad en los torbellinos, inestabilidad
estratorotacional.
-Magnetohidrodinámica y dinamo.
Página 17/85
1.3 Problemática a tratar
1.3.1 Presentación de la problemática
Dentro del campo de la caracterización estadística de la turbulencia, uno de los
modelos más sencillos de estudiar teóricamente es el de la turbulencia homogénea
isotrópica. Es este tipo de turbulencia el que queremos conseguir, añadiendo el hecho
de que queremos estudiarla en un dispositivo cerrado, por lo que la media del campo
de velocidad será nulo.
Una vez hayamos caracterizado el flujo, éste servirá para llevar a cabo un gran
número de experimentos, para el estudio del transporte de partículas, de la
sedimentación o para la física estadística.
1.3.2 Motivación del estudio
Durante el tiempo en el laboratorio se intentará por lo tanto crear un flujo en
régimen turbulento sin desplazamiento medio. Para ello, mi tutor Gautier Verhille me
ha mostrado a mi llegada al IRPHE el dispositivo experimental ya existente, basado en
los trabajos de W. Hwang et J. K. Eaton en 2004 [2]. Mi trabajo consistirá, por una
parte, en terminar el montaje y caracterizar el flujo. Este dispositivo servirá
fundamentalmente para el estudio de la dinámica de una fibra en el seno de la
turbulencia, un campo ya abordado en el IRPHE por Gautier Verhille y Patrice Le Gal.
Estos estudios previos se han basado en el estudio del comportamiento de una fibra en
un flujo de von Karmán. Hasta el momento, los trabajos han estado limitados por la
falta de homogeneidad en la turbulencia, debido a la utilización dicho tipo de flujo.
Página 18/85
Figura 1.1. Dispositivo utilizado en los estudiosde G. Verhille y P.Le Gal.
El IRPHE ya ha comenzado la construcción de un nuevo dispositivo en el que se
pretende cruzar 4 flujos de von Karmán en el centro del dispositivo, para así aumentar
la homogeneidad y disminuir la influencia de las grandes escalas del flujo. Durante las
primeras semanas, nuestro objetivo es terminar el montaje de esta máquina.
1.3.3 Objetivos del proyecto
Si bien es cierto que durante estos dos meses de prácticas se va a trabajar
alrededor del mismo proyecto, podemos distinguir fácilmente dos partes del trabajo.
En un primer lugar, se quiere finalizar la construcción y configuración de los motores
con la ayuda de la documentación aportada por el fabricante. Se implementará el
sistema de cableado además de los circuitos hidráulicos. Una vez terminada la
instalación se pasará a la configuración del sistema de comunicación con el ordenador.
En un segundo lugar, se pretende caracterizar el flujo turbulento con PIV,
incluyendo modificaciones en el proceso estándar. Así será posible cuantificar la
homogeneidad en el seno del flujo.
Página 22/85
2.1 Presentación
La primera parte de este proyecto está dedicada a la obtención de un flujo más
homogéneo que el flujo de von Karmán. Esto pasa por una disminución de la energía
de las grandes escalas del flujo [3].
Las ideas al origen del nuevo diseño serán estudiadas en el punto 2.2. Por
ahora, veamos las características más importantes.
Esta vez vamos a utilizar un cubo de dimensiones más grandes que las del
dispositivo de la figura 2.1. El flujo será creado por ocho motores, en lugar de los dos
del von Karmán, dispuestos sobre cuatro ejes de rotación siguiendo las diagonales del
cubo.
En la figura siguiente se puede ver una foto de una buena parte del dispositivo
en el momento de su montaje. En la imagen no aparece el ordenador utilizado para la
comunicación con los motores ni el sistema de medidas.
Página 23/85
Figura 2.1. Foto del dispositivo. Ver leyenda debajo.
Leyenda
(5) Servo Driver
(1) Cubo de acero inoxidable (6) Toma de 400V
(2) Ventanas de plexiglás (7) Entrada de agua principal
(3) Motor (8) Circuito de filtrado
(4) Rotor del motor en acero
inoxidable
(9) Circuito de refrigeración
Página 24/85
2.2 Características del régimen buscado
2.2.1 Flujo de von Karmán
El flujo de von Karmán es generado por la rotación de dos discos en un tubo
cilíndrico. La rotación genera una componente de velocidad acimutal o radial, y una
componente poloidal, esta segunda debida a la fuerza centrífuga de los discos. El
cizallamiento creado por los discos genera una zona de fuerte turbulencia, poco
homogénea.
Figura 2.2. Flujo de Von Karmán [4].
2.2.2 Solución propuesta
Esta vez vamos a intentar disminuir la componente de velocidad media local,
utilizando cuatro flujos de von Karmán cuyos ejes se cruzan en el centro del
dispositivo. Esto ayudará a dar más homogeneidad a la turbulencia. El von Karmán da
acceso a números de Reynolds muy grandes, lo que nos asegura una turbulencia
plenamente desarrollada [5]. En nuestro caso, buscamos números de Reynolds del
orden de 106 o 107. El Reynolds es proporcional a la frecuencia de rotación de los
discos, el parámetro ajustable durante los experimentos. La frecuencia máxima
impuesta por el tipo de motor será de 30 Hz, 1800 rpm.
Página 25/85
2.3 Circuito hidráulico
El circuito hidráulico principal del dispositivo está compuesto por una entrada
de agua y una salida, para el llenado y vaciado de la cuba. También hay dispuestos dos
circuitos auxiliares. El primero sirve para limpiar el agua una vez el dispositivo esté
lleno, sin necesidad de vaciarlo. Para esto se usa una bomba y un filtro. El segundo es
un circuito de refrigeración independiente, necesario por la fuerte disipación térmica
de los motores, de alrededor de 1'5kW por motor. En la figura 2.3 aparece en líneas
discontinuas.
Todas estas entradas y salidas están controladas por sus respectivas válvulas.
Además, se ha aplicado teflón para asegurar la estanqueidad del dispositivo. La presión
interior de la cuba será máximo de 2 bares, gracias a una válvula de seguridad.
El cubo ha sido diseñado con ventanas en plexiglás que permiten ver qué
ocurre durante los experimentos. Además, permitirán en un futuro realizar, entre
otros, la PIV, de la cual hablaremos más adelante. Entre las placas de plexiglás y el
acero del cubo se han colocado láminas de silicona, para sellar bien todas las posibles
pérdidas de agua.
Figura 2.3. Esquema del circuito hidráulico.
Página 26/85
2.4 Circuito eléctrico
El sistema eléctrico está compuesto por ocho motores pilotados por cuatro
drivers Basic PRO 5A. La velocidad de rotación será fijada con la ayuda de una tarjeta
NI cDAQ-9184 de National Instruments.
Figura 2.4. Esquema del sistema eléctrico.
Página 27/85
Los ocho motores son del tipo TC 80 4 17, fabricados por Motor Power
Company. Están alimentados con 400V alternos, y son capaces de girar a hasta 3900
rpm. Este tipo de motores se controlan a través un Basic PRO, del cual hablamos en el
siguiente párrafo. Los motores han sido especialmente elegidos por su buena relación
potencia/volumen. En el anexo 1 se puede encontrar su ficha técnica.
Los Servo Drives son unos amplificadores especiales para el control de la
potencia en sistemas servo. Miden la señal de feedback y llevan a cabo un control
permanente del error. En nuestro caso, se utilizarán cuatro Basic PRO 5A adaptados a
los motores brushless, también comprados a la casa Motor Power Company. Pueden
regular la fuerza, la posición o la velocidad. Los Basic PRO utilizados permiten trabajar
en un sistema de dos ejes paralelos.
Figure 2.5. Disposición final de los Basic PRO.
Los drivers deben estar conectados a una toma de 400 VAC. Una segunda
conexión de 24 VDC es utilizada como fuente de alimentación auxiliar. La
programación puede hacerse con la ayuda de una conexión RS232 y un programa
Página 28/85
específico proporcionado por el fabricante o con el sistema CANopen [6]. En nuestro
caso, para evitarnos la programación previa requerida por el CANopen, utilizaremos el
sistema RS232.
Los cuatro drivers están dispuestos como se muestra en la figure 2.5, siempre
respetando la separación mínima entre ellos. Esto es muy importante ya que la
evacuación del calor se realiza por convección natural, y un sobrecalentamiento puede
poner en peligro los sistemas electrónicos.
Una vez conectados los componentes, se ha procedido a la instalación del
software para el control de los Servo Drivers[7]:
Boot loader. Se encarga de la inicialización del dispositivo. También se asegura
de una restauración de los servos en caso de apagado bajo cualquier
circunstancia.
Motion Control Firmware. Es el software a través el cual vamos a controlar los
servos en tiempo real, además de con Labview. El Motion Control Firmware
también permite modificar los parámetros de los motores, los cuales los
separa en tres grupos: Generic Parameter, Axis 1 Parameters y Axis 2
Parameters.
Application Software. Sirve para controlar el dispositivo bajo circunstancias
especiales.
Página 29/85
2.5 Conclusión
Tras haber dedicado alrededor de tres semanas a la instalación del nuevo
dispositivo, los cuatro Servo Drivers han tenido que ser devueltos a Motor Power
Company debido a su mal funcionamiento. Tras contactar con sus intermediarios en
Francia MDP, aún se está a la espera de noticias sobre la causa de la avería.
Esta parte del proyecto se queda por lo tanto en "standby" hasta la vuelta de
los servos. Sin embargo, este parón nos permite tomar una dirección ligeramente
distinta, como explicado en el punto 1.3.3: el desarrollo de un sistema de medidas del
campo de velocidad de las partículas en el fluido. Con este método PIV modificado
seremos capaces de caracterizar nuestro flujo. Sin embargo, debido a los imprevistos
sufridos los servos, los primeros ensayos de nuestra PIV se realizarán sobre un flujo en
una pecera, como veremos en los capítulos que siguen a continuación.
Página 33/85
3.1 Principio de funcionamiento y límites de la PIV
tradicional
3.1.1 Principio de funcionamiento de la PIV
La PIV (Particle Image Velocimetry) es un método de medida del
desplazamiento utilizado frecuentemente tanto en la investigación como en la industria.
Permite obtener estimaciones muy precisas del campo de velocidad en un plano
creado por un laser en un fluido, utilizando la correlación cruzada de imágenes. El
software define una ventana de interrogación alrededor de cada punto y calcula la
función de correlación entre dos imágenes separadas por un intervalo de tiempo ∆t,
utilizando la Transformada Rápida de Fourier para agilizar el proceso [8].
Figura 3.1. Deformación de la ventana de interrogación.
Página 34/85
La PIV tradicional permite medir las componentes de la velocidad dentro del
plano. La PIV estereoscópica ha sido desarrollada con el fin de medir la tercera
componente, la exterior al plano. Dos cámaras capturan el mismo campo en dos
instantes diferentes bajo dos ángulos distintos. Así se consigue la proyección de la
velocidad en el espesor del plano laser.
Esta componente fuera del plano, sin embargo, puede influir en las medidas si se
trata de la PIV simple con una cámara. Hará falta asegurarse de que nuestras cámaras
están colocadas lo más perpendicularmente posible al plano.
Durante nuestro estudio trabajaremos sobre un método de PIV de dos
componentes modificado, que utiliza dos cámaras en vez de una sola. Este proceso
será aplicable al método de tres componentes, utilizando cuatro cámaras en vez de
dos.
Figura 3.2. Imagen utilizada y campo de velocidad calculado con DPIV-Soft
Página 35/85
3.1.2 Límites de la PIV
El método de PIV tradicional presenta ciertas limitaciones. La primera está
relacionada por su carácter intrusivo: las partículas y el agua deben ser isodensas y la
talla de las primeras debe ser pequeña frente a las escalas del fluido [9]. Si no, varios
efectos podrían manifestarse, como la simple gravedad, haciendo que el
desplazamiento de las partículas sea distinto que el del fluido.
Otro inconveniente, pero que va a seguir siéndolo en nuestro caso, es que el
fluido debe ser transparente, para permitir la detección de las partículas por la cámara.
Si analizamos la técnica de PIV de una forma más técnica, debemos nombrar
que la PIV está limitada en cuanto la velocidad del flujo aumenta. Si estimamos el orden
de magnitud de la velocidad dentro del cubo, vemos que es del orden de los 20 ms-1, lo
que implica un ∆t del orden de los microsegundos (tomando 1 µm como diámetro de
la partícula).
6
Sin embargo, resulta imposible conseguir estos ∆t con las cámaras utilizadas
tradicionalmente para la PIV. El ∆t mínimo de nuestra cámara es 0,2 ms.
Otro problema de la PIV es el efecto de velocidad que se muestra en la imagen.
El pequeño tamaño de las partículas y la utilización de un laser de potencia media nos
obliga a establecer un tiempo de exposición relativamente largo en comparación con la
velocidad de las partículas. Sin embargo, tengamos también en cuenta que el hecho de
utilizar cámaras PIV conlleva un peor aprovechamiento de la luz emitida por la
partículas (Ver anexo 1). Esto quiere decir que además de utilizar cámaras mucho más
baratas, nos van a permitir un mayor aprovechamiento de la potencia lumínica emitida
Página 36/85
por las partículas. Desafortunadamente, esto no quiere decir que podamos bajar la
guardia en cuanto a la aparición de este efecto, ya que nuestro flujo podrá desplazarse
localmente a velocidades muy altas.
Figura 3.3. Ejemplo de un tiempo de exposición demasiado largo [10].
Página 37/85
3.2 Solución propuesta
3.2.1 Principio de funcionamiento
En los apartados anteriores ya se ha hecho una descripción del método PIV
comúnmente utilizado tanto en la investigación como en la industria. También hemos
visto el problema que supone para la toma de medidas un flujo demasiado rápido y
consecuentemente un ∆t demasiado pequeño.
A lo largo del proyecto hemos desarrollado una nuevo método de PIV que
utiliza dos cámaras en lugar de una sola. Esto nos permitirá fijar el ∆t que nos
convenga, tan pequeño como queramos. Sin embargo, el uso de dos cámaras supone la
necesidad de cambiar el centro de coordenadas de una de las dos imágenes hacia el de
la otra. En la figura 3.4 vemos a grandes rasgos la diferencia entre la PIV tradicional y
nuestro nuevo método. Las imágenes tomadas por las cámaras son las que aparecen en
gris.
Figura 3.4. PIV original y con nuestra modificación.
Página 38/85
Vamos a establecer un ∆t entre las dos cámaras, este sin ningún tipo de
restricción. En un principio vamos a establecer un ∆t grande, con el fin de tener una
medida de referencia. Se le aplicará a la imagen tomada por la cámara 2 una
transformación proyectiva al eje de la cámara 1. A continuación, podremos aplicar el
método de PIV tradicional. En la siguiente imagen se muestra la disposición en el
laboratorio de las cámaras y la pecera donde se han realizado nuestros ensayos.
Figura 3.5. Disposición de cámaras y pecera.
Homografía
De aquí en adelante se muestran funciones de Matlab incluidas en la toolbox
siguientes: Camera Calibration Toolbox, Image Processing Toolbox® y Computer
Vision System Toolbox®. Además, hemos utilizado funciones desarrolladas por Peter
Kovesi (University of Western Australia), que podemos encontrar en la página de la
referencia [11], y de Adrien Bartoli (Université d'Auvergne) en el caso de la función
SfM2_F2Epipoles.m. El resto del código de nuestro método se encuentra en los anexos.
Página 39/85
Si definimos un punto en el plano real por sus coordenadas homogéneas
, y siendo P y P' las matrices de proyección 4x3 obtenidas a partir de la
calibración, obtenemos fácilmente m y m', las proyecciones del punto M sobre los
sistemas de coordenadas de las cámaras:
Si ahora elegimos P y P' tales que , lo que viene a significar un
cambio de base, podemos encontrar la matriz de homografía entre los sistemas de las
dos cámaras tal que:
,
siendo
son las coordenadas homogéneas del plano afin. El
epipolo e' puede ser obtenido a partir de las matrices de proyección, con el método
SfM2_F2Epipoles.m desarrollada por Adrien Bartoli.
Antes de pasar las imágenes a la función DPIV, debemos recortarlas, de forma
que el campo visto por las dos cámaras sea el mismo. Sin embargo, esto no lo
podemos hacer directamente. Antes debemos cambiar el formato de las imágenes con
la rutina preparationimages.m.
Página 40/85
Con esta rutina vamos a pasar la imagen de su color real (compuesto por la
combinación del rojo, el azul y el verde) a un colormap que sólo contendrá el grado de
luminosidad. Además, pasaremos la variable que contiene cada pixel de nuestros maps
al tipo double. En tercer lugar, preparationimage.m se encarga de corregir buena parte
de las aberraciones geométricas a partir de los datos de la calibración con la rutina
rect.m.
Una vez corregidas las imágenes, se calcula la transformación proyectiva
biyectiva entre las dos bases, la homografía.
Figuras 3.6 y 3.7. Imágenes brutas. Cam_1 y Cam_2.
Figuras 3.7 y 3.8. Imágenes después de preparationimages.mat. Imbw1r y Imbw2r.
Página 41/85
El método determina por completo los parámetros de esta aplicación. Hemos
desarrollado en Matlab una serie de funciones que detectan los puntos de interés
compartidos por las dos imágenes, para a partir de ellos calcular nuestra matriz de
homografía. En la imagen se aprecia que hay puntos erróneos, que no aparecen en las
dos imágenes. Esto no va a impedir que nuestro resultado tenga una precisión muy
buena, debido fundamentalmente al gran número de puntos seleccionados. En nuestros
próximos ensayos podremos definir, sin embargo, parámetros más restrictivos en
cuanto a la selección de los puntos, para así reducir los errores, los cuales pueden
parecer muy pequeños individualmente, pero cuya acumulación puede hacer que
nuestro método no tenga la precisión requerida.
En nuestra rutina, utilizamos el método iterativo Ransac para obtener una
estimación robusta de la matriz de homografía H. La definimos tal que , en
nuestro caso x . Todo esto en coordenadas homogéneas.
Una vez conocemos H, podemos calcular las ventanas compartidas por las dos
imágenes. Para esto proyectamos las coordenadas de las cuatro esquinas de cada
imagen sobre la base de la otra. Guardamos los píxeles compartidos y hacemos la
transformación inversa, hacia la base original. Esto nos da un mask, una matiz binaria
Figuras 3.10 y 3.11. Imágenes brutas con
puntos seleccionados.
Página 42/85
con ceros en las zonas que no son compartidas por las dos imágenes, en nuestro caso
las zonas azules.
Figura 3.12. Esquema del proceso de cálculo de las ventanas.
Figuras 3.13 y 3.14. Imágenes cortadas antes de su proyección. Cam1coupee
y Cam2coupee.
Página 43/85
En este momento tenemos todos los datos para realizar la reconstrucción de
las dos imágenes. Mostramos las imágenes originales y las que hemos obtenido con
nuestro método. Se ve cómo, a partir de la segunda imagen (una vez realizado el
corte), podemos obtener la primera, y viceversa.
Figura 3.15. Proyecciones de las imágenes con la matriz H. P1sur2c y P2sur1c.
Con este método obtenemos proyecciones muy buenas. Sin embargo, además
de los puntos erróneamente seleccionados por no ser compartidos por ambas
imágenes, las funciones también pueden detectar puntos que no pertenecen al plano de
la imagen, como por ejemplo pequeñas burbujas de aire sobre el vidrio de la pecera.
Además, teóricamente suponemos que el plano de la imagen es realmente
plano, hipótesis que se ve afectada en cuanto las aberraciones geométricas entran en
Página 44/85
juego. Para corregirlas, debemos utilizar los datos guardados durante la calibración en
el archivo Calib_Results_Stereo.mat. El proceso de calibración, del cual hablamos en el
siguiente apartado, debe ser realizado antes de la toma de imágenes, y ser repetido
cada vez que la disposición de las cámaras es modificado, ya que un cambio en el
ángulo de incidencia sobre el plano aire/agua conlleva modificaciones en la mayoría de
los parámetros.
Calibración
La calibración es realizada por dos razones fundamentales. En primer lugar es
necesaria a la hora de calcular la velocidad con la PIV, ya que deberemos conocer la
relación cm/pixel. Además, nos proporcionará los parámetros de distorsión,
necesarios para la corrección de las imágenes. Se lleva a cabo con Matlab y la Caltech
Toolbox (Camera Calibration Toolbox for Matlab®). Utiliza una veintena de imágenes
de cada cámara de un cuadro como el de la foto en diferentes posiciones.
Figura 3.16. Cuadro de calibración.
La primera parte del proceso es la calibración individual, la cual realizamos con
las dos cámaras. La función da como resultado un archivo Calib_Results.mat que
contiene los parámetros intrínsecos (punto focal, coeficientes de distorsión, punto
principal) y extrínsecos (posición del marco con respecto a la cámara).
Página 45/85
Una vez determinadas las matrices de proyección de cada cámara, aplicamos la
calibración estéreo, que optimiza los parámetros analizando el conjunto de las dos
cámaras y utiliza los ficheros del principio del apartado.
Durante las calibraciones individuales, debemos seleccionar cuatro puntos del
cuadrado e indicar la verdadera longitud de de cada pequeño cuadrado. Los cálculos
calculan directamente todas las esquinas de los pequeños cuadrados como muestra la
figura. En la referencia [12] se encuentra una guía para realizar la calibración. Los datos
del anexo 4 son un ejemplo del resultado de la calibración estéreo. Junto al código se
encuentra una pequeña explicación de cada uno de ellos.
Figura 3.17. Puntos detectados por el programa.
El fichero contiene los parámetros intrínsecos y extrísecos de las cámaras,
recalculados para minimizar los errores sobre el conjunto de las dos cámaras. Los
parámetros intrínsecos nos ayudarán a corregir los efectos de la distorsión, de la cuál
ya hemos hablado anteriormente. A continuación se muestra una reconstrucción 3D
de las cámaras y los cuadros a partir del archivo Calib_Results_Stereo.mat.
Página 46/85
Figura 3.18. Reconstrucción de las cámaras y del cuadro de calibración.
Determinación de la velocidad
Una vez corregidas las aberraciones ópticas y calculada la proyección de una de
las imágenes sobre la base de la otra, podemos lanzar la función PIV. Debemos ajustar
previamente algunos parametros, como el tamaño de las ventanas de interrogación. Si
elegimos una ventana demasiado pequeña, corremos el riesgo de que no contenga
suficientes puntos para calcular la correlación como se muestra en la figura 3.19. En las
páginas siguientes analizaremos el resto de parámetros a establecer.
Página 47/85
Figure 3.19. Ventana de interrogación demasiado pequeña con respecto a la
velocidad.
El DPIV calcula la velocidad de las partículas a partir de las dos imágenes. Sin
embargo, debemos decir que no es una velocidad en píxeles. Esto significa que hay que
establecer el parámetro cm/pixel. Además, debemos conocer el ∆t entre las dos
imágenes.
Página 51/85
4.1 Primer test PIV
Una vez terminada la implementación de los métodos individuales, estamos
listos a realizar un primer ensayo de todo el proceso en su conjunto, desde la toma de
las fotos hasta la obtención del campo de velocidad.
Utilizamos la disposición mostrada en la figura 3.5. El fluido es agua, a la cual
hemos añadido pequeñas esferas de 10µm. La reflexión de la luz incidente que
proviene del laser, además de una cobertura opaca colocada sobre el conjunto de las
cámaras y la pecera, es suficiente para tener un buen contraste en el momento de la
toma de las imágenes.
Hemos tomado una secuencia de 50 imágenes con cada cámara, con un ∆t nulo
entre las dos cámaras. Vamos a utilizar el intervalo impuestos por la cadencia de las
cámaras, la cual está establecida a 5 FPS, es decir, un ∆t de 200ms.
Figure 4.1. Imagen original para PIV.
A partir de nuestro primer test hemos concluido que el error generado en el
cálculo de las ventanas compartidas por las dos cámaras, además del generado por la
Página 52/85
matriz de homografía, son demasiado importantes con respecto al orden de magnitud
del desplazamiento. A partir de ahora vamos a utilizar, con el fin de conseguir una
mejor estimación, funciones pertenecientes al Computer Vision Toolbox. En el código
a continuación vemos la preparación de las imágenes, el cálculo de la tform que
contiene los parámetros de la transformación proyectiva incluida su matriz H, y la
transformación de las imágenes sacadas con la cámara 2 a la base de la primera:
m1=cornerPoints([1,1],'Metric',0);
m2=cornerPoints([1,1],'Metric',0);
i=0;
% Carga los dos grupos de imágenes de la carpeta y los pasa a escala de grises
while length(m1)<30 & i<20
i=i+1;
I=imread(['cam1_' int2str(i) '.tif'],'tif');
I1=rgb2gray(I);
I=imread(['cam2_' int2str(i) '.tif'],'tif');
I2=rgb2gray(I);
% Detecta los puntos de interés y lleva a cabo la correlación entre las imágenes
points1=detectBRISKFeatures(I1);
points2=detectBRISKFeatures(I2);
% Tomando en cuenta el tamaño de la ventana, selecciona los puntos de interés
[features1, valid_points1] = extractFeatures(I1, points1,'BlockSize',101);
[features2, valid_points2] = extractFeatures(I2, points2,'BlockSize',101);
% Relaciona los puntos de las dos imágenes
indexPairs = matchFeatures(features1, features2,'MaxRatio',0.5);
matchedPoints1 = valid_points1(indexPairs(:, 1), :);
matchedPoints2 = valid_points2(indexPairs(:, 2), :);
m1=cornerPoints([m1.Location;matchedPoints1.Location],'Metric',[m1.Metric;matchedPo
ints1.Metric]);
m2=cornerPoints([m2.Location;matchedPoints2.Location],'Metric',[m2.Metric;matchedPo
ints2.Metric]);
end
% Devuelve la tform, que contiene los parámetros de la transformación proyectiva
gte = vision.GeometricTransformEstimator;
gte.Transform = 'Projective';
[tform,inlierIdx] = step(gte, m2.Location, m1.Location); %in=1; out=2;
% Carga las imágenes
for i=0:49
I=imread(['cam1_' int2str(i) '.tif'],'tif');
I1=rgb2gray(I);
I=imread(['cam2_' int2str(i) '.tif'],'tif');
I2=rgb2gray(I);
% Aplica la transformación sobre I2
agt = vision.GeometricTransformer;
I2_new= step(agt, im2single(I2), tform);
% Reduce la imagen al marco compartido por ambas
Página 53/85
I1_PIV=I1.*uint8(I2_new>0);
I1_PIV(:,all(I1_PIV==0))=[];
I1_PIV(all(I1_PIV'==0),:)=[];
I2_PIV=I2_new;
I2_PIV(:,all(I2_PIV==0))=[];
I2_PIV(all(I2_PIV'==0),:)=[];
% Guarda las imágenes en la carpeta
imwrite(I1_PIV,['cam1_' int2str(i) '_PIV.png']);
imwrite(I2_PIV,['cam2_' int2str(i) '_PIV.png']);
end
Figuras 4.2 y 4.3. Imagen antes y después de las corrección y transformación.
En este momento podemos lanzar el cálculo PIV con los grupos de imágenes.
Por un lado, analizamos el desplazamiento a partir de las imágenes de la cámara 1, las
que en nuestro código llamamos Cam1_i_PIV. A continuación, repetimos el proceso
con las imágenes Cam2_i_PIV, que son las de la cámara 2 transformadas a la base de la
primera. Si todo va bien, deberíamos obtener el mismo resultado partiendo de los dos
grupos de imágenes. Antes de llamar a la función DPIV.m es necesario definir ciertos
parámetros como el tamaño de la ventana de interrogación donde se busca el máximo
de correlación. En el código siguiente, nuestra rutina principal test_PIV.m, se explican
los parámetros imprescindibles para la PIV.
Página 54/85
%%% test_DPIV
% Número de vectores de velocidad en cada dirección
Parameters.no_boxes_1_x=50;
Parameters.no_boxes_1_y =50;
% Tamaño de las ventanas de correlación en píxeles. Cada ventana debe contener por
% lo menos cuatro puntos, con 20 nos aseguramos una precisión óptima. También
% debenos respetar la relación box_size > 3*Umax.
Parameters.box_size_1_x=2^5;
Parameters.box_size_1_y=2^5;
% Ventana dentro de la cual se busca el máximo de correlación. Puede ser más
pequeña que la venta de correlación. Wx>2*Umax, Wy>2*Vmax.
Parameters.window_1_x=10;
Parameters.window_1_y=10;
% Al igual que arriba pero para la segunda estimación.
Parameters.no_boxes_2_x=50;
Parameters.no_boxes_2_y =50;
Parameters.box_size_2_x=2^5;
Parameters.box_size_2_y=2^5;
Parameters.window_2_x=10;
Parameters.window_2_y=10;
% Si hay zonas donde no se ven suficientes partículas, las podemos esconder. Por
% ahora no utilizamos esta opción.
Parameters.mask=0;
% Factor de calibración. Cm/pixel. El valor indicado es por defecto, no el
% utilizado en nuestros ensayos
Parameters.calibration=1 ;
% Intervalo de tiempo entre les das imágenes.
Parameters.delta_t=1 ;
% Filtro en función de la media para eliminar les vectores falsos.
Parameters.median_limit =0.5 ;
% Estudia la diferencia entre la amplitud del primer pico de correlación y el
% segundo. Si es demasiado grande --> 0
Parameters.peak_ratio =1 ;
% Número de iteraciones en la primera estimación
Parameters.no_calculation=1;
% Aumenta artificialmente el diámetro de las partículas. Desactivado.
Parameters.gaussian_size = 0;
% Utiliza cálculos directos en lugar de la transformada rápida de Fourier.
Parameters.direct_calculation=0;
% No interesa. Específico para la PIV stéréo.
Parameters.image_split=0;
% Estabiliza los cálculos si el número de iteraciones es menor que cuatro.
Parameters.weighting=0;
handles.Data.visible=0;
for i=1:49
im1=imread(['cam1_' int2str(i-1) '_PIV.png'],'png');
im2=imread(['cam1_' int2str(i) '_PIV.png'],'png');
im1_test=imread(['cam2_' int2str(i-1) '_PIV.png'],'png');
im2_test=imread(['cam2_' int2str(i) '_PIV.png'],'png');
[x_2(:,:,i),y_2(:,:,i),u_2(:,:,i),v_2(:,:,i),image_width,image_height] =
DPIV(im1 im2,Parameters,handles);
[x_2_test(:,:,i),y_2_test(:,:,i),u_2_test(:,:,i),v_2_test(:,:,i),image_width,image_
height] = DPIV(im1_test,im2_test,Parameters,handles);
end
Página 55/85
En las imágenes se muestra un ejemplo de la representación de la media de los
desplazamientos u_2 y v_2 sobre la imagen Cam1_0_PIV.
Figuras 4.4 y 4.5. Líneas del campo de velocidad, con zoom.
Página 56/85
Análisis de los errores y conclusión
Si analizamos el error cometido entre el desplazamiento calculado a partir de
las proyecciones y el obtenido con las imágenes de la cámara 1, vemos que hay zonas
donde no son despreciables, es especial en la zona superior izquierda. Esto es debido a
que la concentración en partículas en esa zona es más baja.
Figuras 4.6 y 4.7. Representación de las medias de los vectores u y v a partir de las
imágenes brutas y de las proyecciones, antes de la corrección de las distorsiones.
Página 57/85
Si vamos un poco más lejos en el análisis del error, podemos hacer un análisis
según las dos direcciones del plano (ver la imágenes de la página siguiente). El error
cometido sobre el vector u es más importante en las zonas donde la velocidad según x
es más cercana a 0. De la misma manera, el error en v es más grande allí donde la
velocidad sea más pequeña. Esta diferencia entre los campos calculados a partir de las
imágenes originales y las proyectadas podría resolverse eligiendo los parámetros para
la PIV de una manera más óptima (ventana de correlación, etc.) así como tomando en
cuenta las correcciones sobre las aberraciones ópticas, las cuales aún no hemos
aplicado.
Página 58/85
En una segunda prueba veremos la influencia de las aberraciones (y su
corrección) sobre los resultados obtenidos.
Figuras 4.8 y 4.9. Error normalizado según X (iqda) y según Y (dcha).
Figuras 4.10 y 4.11. Error normalizado según x (iqda) y según Y (dcha). Escala de color
logarítmica, para un mejor detalle.
Página 59/85
4.2 Segundo test
Durante este segundo test hemos utilizado el mismo proceso que en el
primero. Esta vez, sin embargo, hemos corregido las aberraciones con la ayuda del
parámetro kc almacenado en el archivo Calib_Results_Stereo.mat.
Figura 4.12. Campos de las cámaras 1 y 2 después de corrección. Zoom en la
página siguiente.
Página 60/85
Figura 4.13. Zoom de los campos 1 y 2.
Vemos que la diferencia entre los campos 1 (sin proyección) y 2 (a partir de la
proyección de la cámara 2 sobre la base 1) es notablemente pequeña. Sin embargo, es
difícil de cuantificar los errores de una manera precisa tan sólo con estas dos imágenes.
Veamos la diferencia normalizada entre los dos campos.
Análisis de los errores y conclusión
Si nos fijamos en los errores normalizados en función de los dos ejes, podemos
apreciar que hay una leve mejora de los resultados con la corrección de las
aberraciones ópticas. En las imágenes a continuación se muestra el error en escala
logarítmica.
Página 61/85
Figuras 4.14 y 4.15. Error según X antes y después de la corrección.
Figuras 4.16 y 4.17. Errores según Y antes y después de la corrección.
Página 62/85
Sobre las imágenes generadas por Matlab vemos que el error según y ha sido
parcialmente corregido. Además, se aprecia el error cometido sobre v causado por
una baja concentración en partículas.
Por el contrario, en la dirección x, el error ha incluso crecido en las zonas "de
peligro". Hará falta durante las próximas pruebas elegir los parámetros individualmente
para los dos ejes, puesto que es en función de la velocidad según cada uno de ellos que
vamos a elegir, por ejemplo, el tamaño de nuestra ventaja de interrogación.
Incluso si los parámetros elegidos no han sido los óptimos, la corrección de las
aberraciones geométricas ayuda notablemente a disminuir los errores. Sin embargo, la
mejor elección de los parámetros se vuelve imprescindible a partir de ahora, ya que
hemos visto la gran influencia que tiene sobre los resultados. Además, el DPIV-Soft nos
da la posibilidad de aplicar diversos filtros antes de calcular el campo de velocidad. Un
mejor reglaje de los parámetros, además de la aplicación de las correcciones, nos
llevará a resultados aún más precisos.
Página 63/85
4.3 Estudio del rotacional
Con la ayuda de la función curl de Matlab podemos fácilmente calcular la
vorticidad del campo de velocidad. En las imágenes que siguen a continuación vemos
que no hay una gran diferencia entre los rotacionales de los tres campos de velocidad.
El primero es el campo de la primera cámara una vez corregidas las distorsiones. El
segundo es aquel obtenido a partir de la proyección de las cámara 2, sin haber aplicado
las correcciones. En tercer lugar, tenemos el rotacional calculado con la cámara dos ya
corregidas las aberraciones.
Figura 4.18. Rotacional del campo obtenido a partir de las imágenes reales una vez
corregidas las aberraciones geométricas.
Página 64/85
Figura 4.19. Rotacional del campo obtenido con las imágenes proyectadas. Antes
de correcciones.
Figura 4.20. Rotacional del campo a partir de las imágenes proyectadas. Después
de las correcciones.
Podemos ver que tras haber calculado la media de los resultados sobre las 50
imágenes, los resultados son enormemente parecidos. Si prestamos atención, podemos
apreciar incluso que la proyección sin aplicar las correcciones presenta mejores
resultados, en este aspecto, que aplicándolas. Este hecho no tiene mayor relevancia; no
es equivalente a decir que la corrección de las aberraciones empeore los resultados
del método. Deberemos de aquí en adelante buscar una buena combinación entre la
elección de los parámetros y la corrección de las aberraciones.
Página 65/85
4.4 Estudio del error cometido por LabView
Durante el análisis de nuestros ensayos nos hemos nombrado los errores
cometidos en el momento de la toma de las fotografías. Es importante recordar que
una mala precisión sobre el ∆t es una fuente de error no despreciable.
En la etapa final de las prácticas, mi tutor G. Verhille ha desarrollado un
programa en LabView para controlar las cámaras y el ∆t entre ellas. En una pantalla
hemos puesto a contar un cronómetro, y hemos sacado 12 secuencias de 30 imágenes
cada una. La mitad de las 30 imágenes son tomadas con una cámara y la otra mitad con
la otra. Cada secuencia tiene dos intervalos de tiempo únicos. El primero, ∆t1, es el
impuesto entre las dos cámaras. El segundo, ∆t2, es el impuesto por la cadencia de cada
cámara. Esta idea la vemos resumida en el cuadro que sigue:
Características temporales de cada secuencia
Secuencia ∆t1 (ms) ∆t2 (ms) Figura
1 0 1000 4.21
2 0 200 4.23
3 10 1000 4.21
4 10 200 4.23
5 20 1000 4.21
6 20 200 4.23
7 50 1000 4.21
8 50 200 4.23
9 100 1000 4.22
10 200 1000 4.22
11 300 1000 4.22
12 500 1000 4.22
Página 67/85
Figura 4.23. 0-50 ms / 5 FPS
Si calculamos la media de los errores cometidos sobre las 15 imágenes, vemos
que crece en función de ∆t2. Se aprecia que, especialmente para las frecuencias más
bajas, los errores son considerables. Además, existe la posibilidad de que las medidas
se vean afectadas por la frecuencia de emisión de la pantalla del ordenador donde se
ha mostrado el cronómetro.
Figura 4.24. Media de los errores cometidos sobre ∆t2 en función de ∆t1 a lo largo de las 15 medidas.
Página 71/85
5.1 Conclusión sobre el método
Estas prácticas y su correspondiente proyecto han tenido como principal
objetivo el montaje de un dispositivo experimental, el cual no ha podido ser finalizado.
Debido a los inconvenientes con los Basic Pro, de los cuales hemos hablado en el
capítulo 2, no hemos conseguido llegar a hacer girar los motores. Los cuatro Basic Pro
no han sido devueltos al IRPHE, por lo que no hemos podido comprobar hasta qué
punto el cubo estaba bien diseñado, si el flujo creado tendría las características
buscadas, y si la PIV hubiese dado buenos resultados sobre este dispositivo.
Sin embargo, los imprevistos no nos han impedido aprovechar del tiempo en el
laboratorio. Hemos podido desviar ligeramente el tema de las prácticas, centrándonos
en la toma de medidas sobre los experimentos que tendrán lugar en el cubo. El trabajo
realizado sobre la PIV ha resultado, si bien notablemente desafiante debido a mi
carencia de conocimiento previo sobre el tema, realmente enriquecedor. He tenido la
oportunidad de descubrir un campo de estudio (el del tratamiento de imágenes) que
está además en pleno desarrollo.
Página 72/85
5.2 Conclusión sobre los resultados
En cuanto al trabajo realizado sobre la PIV, es obvio que debe ser mejorado.
Nuestros métodos han resultado válidos para el procedimiento de PIV. Sin embargo,
aún no son lo suficientemente eficientes, ni en cuanto a la velocidad de cálculo, ni en
cuanto a los errores cometidos, que son aún demasiado importantes, como hemos
visto al final del capítulo 4. Además, hemos encontrado en la Computer Vision System
Toolbox® funciones muy parecidas a las desarrolladas durante estos dos meses, pero
con resultados increíblemente mejores. A partir de ahora, la utilización de nuestro
método en el IRPHE se realizará con las funciones proporcionadas por Mathworks.
Hemos establecido la base para nuestro método de PIV, e incluso si aún quedan
errores por pulir, hemos llegado a los resultados pasando por la homografía, nuestro
principal objetivo en esta segunda parte del proyecto.
Página 75/85
1. Sitio web del IRPHE: www.irphe.fr. Équipes et projets de récherche.
2. Creating homogeneous and isotropic turbulence without a mean flow. W. Hwang, J. K.
Eaton, 2004.
3. The Lagrangian exploration module: An apparatus for the study of statistically
homogeneous and isotropic turbulence. Robert Zimmermann,1,a Haitao Xu,1,b Yoann
Gasteuil,2 Mickaël Bourgoin,3 Romain Volk,2 Jean-François Pinton,2 and Eberhard
Bodenschatz.
5. Comportement individuel de fils flexibles dans un écoulement turbulent. Christophe
Brouzet, 2013
6. Tetra & Tetra Compact Brushless Servo Motors. Motor Power Company.
7. Basic PRO 5A-(1X 2X) Digital Servo Drive Installation Guide. Décembre 2011.
8. Basic PRO Software Manual. Septembre 2011.
9. DPIV-Soft 2010, User Guide. IRPHE / CNRS / Université Aix-Marseille.
10. Principles and Applications of Particle Image Velocimetry. C. Brossard, J.-C. Monnier, P.
Barricau, F.-X. Vandernoot, Y. Le Sant, F. Champagnat, G. Le Besnerais.
11. www.peterkovesi.com/matlabfns/index. MATLAB and Octave Functions
for Computer Vision and Image Processing. Peter Kovesi
12. www.vision.caltech.edu. Sitio web de Caltech donde se puede encontrar la Toolbox y
una guía para su utilización.
Página 81/85
Anexo 2. Cámara PIV
Las cámaras especiales para realizar la PIV fijan un ∆t utilizando dos captadores
individuales a distancias diferentes, que reciben la mitad de la intensidad lumínica. El haz
de luz, en la entrada de la cámara, es dividido en dos con la ayuda de un beam splitter.
Cámara PIV
Página 82/85
Anexo 3. Función main3D.mat
cam_1=imread('cam1_0.tif','tif');
cam_2=imread('cam2_0.tif','tif');
[imbw1r, imbw2r] = preparationimage (cam_1, cam_2);
imbw1r=double(imbw1r-min(min(imbw1r)))/max(max(double(imbw1r)))*255;
imbw2r=double(imbw2r-min(min(imbw2r)))/max(max(double(imbw2r)))*255;
[HPK, x1, x2] = calculHPK(imbw1r, imbw2r);
[mask1, mask2]=donnemask(imbw1r, imbw2r,HPK);
[cam1coupee,cam2coupee]=coupeimages(imbw1r,imbw2r,HPK,mask1,mask2);
[p1sur2c] = imTrans(cam1coupee, HPK);
[p2sur1c] = imTrans(cam2coupee, inv(HPK));
Página 83/85
Anexo 4. Funciones implementadas para su uso en
main3D.mat
function [im1r, im2r] = preparationimage (im1, im2)
imbw1=rgb2gray(im1);
imbw1=double(imbw1);
im1r=rect(imbw1);
imbw2=rgb2gray(im2);
imbw2=double(imbw2);
im2r=rect(imbw2);
------------------------------------------------------------------------------------------------------------------------------------------------
function [H, xx1, xx2] = calculHPK(cam1, cam2 , n)
%obtiens points
[~, r1, c1] = harris(cam1, 2, 50, 2, 0);
[~, r2, c2] = harris(cam2, 2, 50, 2, 0);
if nargin==2
point1 = [r1 , c1]';
point2 = [r2 , c2]';
elseif n<length(c1)
ind1=rand(size(c1))<n/length(c1);
point1= [r1(ind1),c1(ind1)]';
point2= [r2 , c2]';
else
point1 = [r1 , c1]';
point2 = [r2 , c2]';
end
%correlation points 1-2
w=91;
[m1,m2] = matchbycorrelation(cam1, point1, cam2, point2, w);
xx1 = [m1(1,:); m1(2,:); ones(1,length(m1))];
xx2 = [m2(1,:); m2(2,:); ones(1,length(m1))];
H=ransacfithomography(xx1,xx2,0.01);
end
------------------------------------------------------------------------------------------------------------------------------------------------
function [mask1, mask2] = donnemask (imbw1r, imbw2r,HPK)
[TailleY1, TailleX1] = size(imbw1r);
[TailleY2, TailleX2] = size(imbw2r);
fenetre1 = [1,1,1;1,TailleX1,1;TailleY1,TailleX1,1;TailleY1,1,1];
fenetre2 = [1,1,1;1,TailleX2,1;TailleY2,TailleX2,1;TailleY2,1,1];
for i = 1:4
fenetre2_1(i,:)=inv(HPK)*fenetre2(i,:)';
end
for i = 1:4
fenetre2_1n(i,:) =
[fenetre2_1(i,1)/fenetre2_1(i,3),fenetre2_1(i,2)/fenetre2_1(i,3)];
end
for i = 1:4
Página 84/85
fenetre1_2(i,:)=HPK*fenetre1(i,:)';
end
for i = 1:4
fenetre1_2n(i,:) =
[fenetre1_2(i,1)/fenetre1_2(i,3),fenetre1_2(i,2)/fenetre1_2(i,3)];
end
x11 = fenetre2_1n(:,2)';
y11 = fenetre2_1n(:,1)';
x22 = fenetre1_2n(:,2)';
y22 = fenetre1_2n(:,1)';
mask1 = poly2mask(x11,y11,TailleY1,TailleX1);
mask2 = poly2mask(x22,y22,TailleY2,TailleX2);
------------------------------------------------------------------------------------------------------------------------------------------------
function [im1coupee,im2coupee]=coupeimages(im1,im2,HPK,mask1,mask2)
[TailleY1, TailleX1] = size(im1);
[TailleY2, TailleX2] = size(im2);
im1coupee=im1;
im2coupee=im2;
for a = 1:TailleX1
for b = 1:TailleY1
if mask1(b,a)~=1
im1coupee(b,a)=NaN;
end
end
end
for a = 1:TailleX2
for b = 1:TailleY2
if mask2(b,a)~=1
im2coupee(b,a)=NaN;
end
end
end
Página 85/85
Anexo 5. Parámetros de la calibración estéreo.
Stereo calibration parameters after optimization:
Intrinsic parameters of left camera:
Focal Lenght: fc_left = [ 533.52331 533.52699 ] ± [ 0.83147 0.84055 ] %
distance focale
Principal point: cc_left = [ 341.60435 235.48593 ] ± [ 1.23594 1.20193 ] %
point princale
Skew: alpha_c_left = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel
axes = 90.0000 ± 0.0000 degrees
Distortion: kc_left = [ -0.28394 0.09384 0.00109 -0.00030 0.00000 ] ±
[ 0.00621 0.02155 0.00028 0.00034 0.00000] % paramètres pour corriger la
distorsion et aberrations.
Intrinsic parameters of right camera:
Focal Lenght: fc_right = [ 536.55731 536.52439 ] ± [ 0.72147 0.72055 ]
Principal point: ccright = [ 341.60435 235.48593 ] ± [ 1.23594 1.20193 ]
Skew: alpha_c_right = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel
axes = 90.0000 ± 0.0000 degrees
Distortion: kc_right = [ -0.28394 0.14325 0.00453 -0.00014 0.00000 ] ±
[ 0.00451 0.08155 0.00028 0.00055 0.00000]
Extrinsic parameters (position of right camera wrt left camera):
Rotation vector: om = [ 0.000669 0.00434 -0.00350] ± [ 0.00270 0.00308
0.00029] % vecteur de Rodrigues de rotation
Translation vector: T = [ -99.80238 1.12443 0.05345 ] ± [ 0.14270 0.11308
0.49729] % vecteur représentant la translation entre les deux repères.