formato de publicación de la escuela técnica superior de...
TRANSCRIPT
Trabajo de Fin de Máster
Máster Universitario en Ingeniería Industrial
Auscultación geométrica de carriles mediante
sensores inerciales y filtros complementarios
Autor: Jesús Ortega Almirón
Tutor: Dr. José Luis Escalona Franco
Dep. Ingeniería Mecánica y Fabricación
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Trabajo de Fin de Máster
Máster Universitario en Ingeniería Industrial
Auscultación geométrica de carriles mediante
sensores inerciales y filtros complementarios
Autor:
Jesús Ortega Almirón
Tutor:
José Luis Escalona Franco
Profesor titular
Dep. de Ingeniería Mecánica y Fabricación
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, 2016
Trabajo de Fin de Máster: Auscultación geométrica de carriles mediante sensores inerciales y filtros
complementarios
Autor: Jesús Ortega Almirón
Tutor: José Luis Escalona Franco
El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:
Presidente:
Vocales:
Secretario:
Acuerdan otorgarle la calificación de:
Sevilla, 2016
El Secretario del Tribunal
1
Resumen
El proceso de auscultación de vías es fundamental para garantizar la seguridad y el confort en
el transporte ferroviario, ya que permite a las administraciones de infraestructuras ferroviarias
determinar las irregularidades geométricas en los carriles y la respuesta dinámica de los vehículos.
En este trabajo se pretende desarrollar un algoritmo eficaz para la auscultación de vías en
tiempo real. Para ello se van recorriendo diversas posibilidades que pasan por sistemas meramente
frecuenciales, para pasar al uso de la transformada Z en el empleo de filtros IIR. Por último se realiza
un desarrollo inicial con el uso del filtro de Kalman.
El objetivo es poder analizar los resultados de diversos métodos para determinar la adecuación
de cada uno según las condiciones de auscultación como velocidad de avance o tipo y magnitud del
ruido de los sensores.
El trabajo se realiza con miras a seguir profundizando en el futuro, por ejemplo considerando
un modelado más preciso de la geometría del vehículo en un contacto tridimensional. Es por ello que
la función de este trabajo es también servir como guía futura de partida para posteriores evoluciones
del modelo.
Índice de Figuras
2
3
Índice
Resumen 1
Índice 3
Índice de Figuras 4
1. Introducción 7 1.1. Defectos de la geometría de las vías, la seguridad de la marcha y el confort 8
2. Fusión de sensores. Aproximación frecuencial 12 2.1. Determinación del perfil a partir de datos existentes 14 2.2. Determinación del perfil mediante la transformada de Fourier 19 2.2.1. Truncamiento de funciones de transferencia 20 2.2.2. Fusión de sensores 21 2.3. Determinación del perfil mediante la transformada Z 24 2.4. Corrupción de medidas y análisis en frecuencia 32 2.4.1. Análisis en frecuencia 32 2.4.2. Corrupción de medidas 34
3. Velocidad variable 37 3.1. Filtro adaptativo 38 3.2. Derivadas numéricas 44 3.3. Extrapolación polinómica 49
4. Auscultación con filtro de Kalman 56 4.1. Introducción al filtro de Kalman 57 4.2. Algoritmo e implementación 58 4.3. Resultados 63
5. Comparación y conclusiones 66
Referencias 71
Anexos 73 Anexo A Filtros FIR y IIR 73 Anexo B Transformada Z 74 Anexo C Transformación bilineal 76 Anexo D Cálculo numérico de medidas IMU simuladas 77 Anexo E Auscultación mediante Fourier con truncamiento inferior independiente 78 Anexo F Auscultación mediante Fourier con fusión de sensores 79 Anexo G Auscultación con filtro mediante transformada Z con fusión de sensores 80 Anexo H Corrupción de medidas y análisis en frecuencia 81 Anexo I Auscultación para velocidad variable con filtro adaptativo 82 Anexo J Auscultación para velocidad variable con extrapolación lineal 83 Anexo K Cálculo simbólico de la extrapolación cuadrática 84 Anexo L Auscultación para velocidad variable con extrapolación cuadrática 85 Anexo M Auscultación mediante filtro de Kalman 86
Índice de Figuras
4
ÍNDICE DE FIGURAS
Fig 1-1. Medida de defectos de los carriles en función de la distancia 8
Fig 1-2. Representación del espectro de potencia de defectos de los carriles 9
Fig 1-3. Tiempo de cansancio para aceleraciones verticales 11
Fig 1-4. Tiempo de cansancio para aceleraciones horizontales 11
Fig 2-1. Modelo 2D 12
Fig 2-2. Función de transferencia entre aceleración e irregularidad 15
Fig 2-3. Ejemplo de frecuencia ciega para el acelerómetro 16
Fig 2-4. Función de transferencia entre giróscopo e irregularidad 17
Fig 2-5. Ejemplo de frecuencia ciega para el giróscopo 18
Fig 2-6. Perfiles calculados por truncamiento de cada función de transferencia 20
Fig 2-7. Error del perfil obtenido desde el acelerómetro 21
Fig 2-8. Error del perfil obtenido desde el giróscopo 21
Fig 2-9. Perfil calculado por fusión de sensores 22
Fig 2-10. Error del perfil obtenido mediante fusión de sensores 22
Fig 2-11. Perfil calculado por fusión de sensores para 100 m 23
Fig 2-12. Perfil calculado por fusión de sensores con transformada Z 26
Fig 2-13. Perfil con inicio horizontal calculado por fusión de sensores con transformada Z 26
Fig 2-14. Perfil con inicio horizontal calculado con transformada Z con giro corregido 27
Fig 2-15. Perfil calculado con transformada Z con ambas correcciones 28
Fig 2-16. Perfil global calculado con transformada Z con ambas correcciones 29
Fig 2-17. Perfil global calculado con filtro de orden 3 29
Fig 2-18. Perfil global calculado con filtro de orden 1 30
Fig 2-19. PSDs de los perfiles real y calculado. Ampliación para frecuencia 0,1. 33
Fig 2-20. Funciones de coherencia de los perfiles real y calculado. 34
Fig 2-21. Precisón y exactitud. 34
Fig 2-22. Perfil calculado con transformada Z incluyendo corrupción de medidas 35
Fig 2-23. PSDs de ambos perfiles 35
Fig 2-24. Funciones de coherencia 36
Fig 3-1. Velocidad de avance de la odometría 40
Fig 3-2. Perfil calculado con transformada Z para velocidad variable 40
Fig 3-3. PSDs de ambos perfiles 41
Fig 3-4. Funciones de coherencia 41
Fig 3-5. Perfil calculado con transformada Z para velocidad variable y errores de medición 42
Fig 3-6. PSDs de ambos perfiles 42
Fig 3-7. Funciones de coherencia 43
Fig 3-8. Perfil calculado numéricamente para velocidad variable 46
5
Fig 3-9. PSDs de ambos perfiles 46
Fig 3-10. Funciones de coherencia 46
Fig 3-11. Perfil calculado numéricamente con velocidad variable y errores de medición 47
Fig 3-12. PSDs de ambos perfiles 47
Fig 3-13. Funciones de coherencia 48
Fig 3-14. Perfil calculado con interpolación para velocidad variable 52
Fig 3-15. PSDs de ambos perfiles 52
Fig 3-16. Funciones de coherencia 53
Fig 3-17. Perfil calculado con interpolación para velocidad variable y errores de medición 53
Fig 3-18. PSDs de ambos perfiles 54
Fig 3-19. Funciones de coherencia 54
Fig 3-20. Ángulo real y calculado 55
Fig 4-1. Perfil calculado con interpolación para velocidad variable y errores de medición 63
Fig 4-2. PSDs de ambos perfiles 63
Fig 4-3. Funciones de coherencia 64
Fig 4-4. Perfil calculado con Kalman para velocidad variable y errores de medición 64
Fig 4-5. PSDs de ambos perfiles 65
Fig 4-6. Funciones de coherencia 65
Fig 5-1. Perfil calculado con filtro complementario y corrupción de medidas 66
Fig 5-2. Perfil calculado con algoritmo actual incluyendo corrupción de medidas 67
Fig 5-3. PSDs con filtro complementario (izda) y actual (dcha) incluyendo corrupción de medidas 67
Fig 5-4. Funciones de coherencia del filtro complementario 67
Fig 5-5. Funciones de coherencia con el algoritmo actual 68
Fig 5-6. Comparación de perfiles con filtro complementario (izda) y adaptativo (dcha) 68
Fig 5-7. PSDs con filtro complementario (izda) y adaptativo (dcha) 68
Fig 5-8. Funciones de coherencia con filtro complementario 69
Fig 5-9. Funciones de coherencia con filtro adaptativo 69
Fig 5-10. Perfil calculado con Kalman del artículo (izda) y el actual (dcha) 69
Fig 5-11. PSDs del artículo (izda) y el actual (dcha) 70
Índice de Figuras
6
7
1. INTRODUCCIÓN
a auscultación de vías es un área importante para el mantenimiento de la infraestructura
ferroviaria, y combinada con la simulación computacional permite el desarrollo y validación
de nuevos diseños de vehículos ferroviarios. El perfil de la vía obtenido puede utilizarse en
una simulación dinámica del vehículo para estudiar su comportamiento a lo largo del recorrido e
identificar zonas en las que pueda existir riesgo o pérdida de confort, como se muestra en el trabajo
de Bonaventura et al [1].
Sin embargo, para permitir una comunicación con el vehículo en funcionamiento y la
interacción con el material rodante, es necesario un procesamiento en tiempo real de la geometría de
la vía. Otra de las ventajas de esto sería la posibilidad de que los operarios de la auscultación
realizaran observaciones oculares a partir de la información en tiempo real. Aparte de la geometría
de la vía, mediante un modelo dinámico podrían detectarse zonas de baja adhesión, como trata [2].
El campo de la instrumentación en ingeniería mecánica ha experimentado un gran avance gracias
al descenso del precio de los sensores y su popularización. Esto, junto con una instrumentación basada en
el modelo del sistema objeto de estudio, permite una adquisición de datos precisa y eficaz a traves de la
auscultación dinámica. Para ello es necesario desarrollar los modelos adecuados de modo que sea posible
aprovechar la información procedente de los sensores de un modo eficaz, fusionándolos de una manera
que lo permita. A lo largo del trabajo se desarrollarán distintos algoritmos para conseguirlo. La
auscultación del perfil vertical puede conseguirse con distintos métodos, L. Grassie planteó una
comparación de distintas técnicas para ello [3].
El uso del filtro de Kalman es de aplicación en este sentido, ya que permite obtener el estado de
un sistema a partir de un conjunto incompleto de medidas experimentales y permite ajustar modelos
teóricos, como ya ha sido empleado en diversos campos relacionados con tracking.
En el campo de la auscultación ferroviaria varios trabajos se basan en el filtro de Kalman, como
Ward et al. [4], que estiman las fuerzas tangenciales de contacto basándose en el filtrado de Kalman y en
un modelo computacional de la dinámica del vehículo.
L
Introducción
8
1.1. Defectos de la geometría de las vías, la seguridad de la marcha y el confort
Los defectos se toman respecto a la posición de la cabeza de los carriles. Dicha posición viene
dada por un vector respecto al sistema de referencia, de eje X en la dirección del sentido de la marcha,
eje Y en la dirección horizontal transversal y eje Z en la dirección vertical. Los defectos de los carriles
se pueden dar en los siguientes parámetros principalmente [5]:
- Perfil vertical: media aritmética de la altura de cada carril 2/)( deriz zz .
- Alineación: media aritmética de la posición horizontal de cada carril 2/)( deriz yy .
- Nivelación: 2/)( deriz zz .
- Ancho de vía: 2/)( deriz yy .
Los defectos suelen tener asociada una longitud de onda característica. Los carriles corrugados
tienen defectos de alineamiento o nivelación con una longitud de onda bien determinada, y suelen
aparecer en tramos curvos.
La evolución de los defectos a lo largo de la vía puede presentarse de distintas formas con el
objetivo de presentar información relevante. La más directa consiste en presentar el defecto en
función de la coordenada de avance a lo largo de la vía [6], como se muestra en la Fig 1-1:
Fig 1-1. Medida de defectos de los carriles en función de la distancia
9
Otra forma de presentarlos consiste en representar el espectro de potencia (Power Spectral
Density, PSD) obtenido mediante FFT (Fast Fourier Transform). Esto permite obtener información
relevante ya que muestra de forma clara las frecuencias asociadas a cada valor del defecto. El
resultado se muestra en la Fig 1-2:
Fig 1-2. Representación del espectro de potencia de defectos de los carriles
Esta forma de representación permite detectar qué frecuencias se registran mejor por cada tipo
de sensor, así como tener en cuenta la respuesta oscilatoria del vehículo en análisis dinámicos.
Además, es relevante para el cumplimiento de la normativa, ya que esta establece los límites de
defectos referidos en función de la longitud de onda.
Los defectos comentados deben permanecer por debajo de cierto límite, tal y como establece la
norma europea prEN 13848-5 [7]. Los niveles considerados, en función de su severidad, son:
- AL: límite de alerta. Supone una consecuencia en la política de mantenimiento de la vía, de
repercusión baja.
- IL: límite de intervención. Supone una consecuencia en la política de mantenimiento de la vía,
pero de mayor repercusión que la anterior.
- IAL: límite de acción inmediata. Supone la existencia de riesgo de descarrilamiento de los
trenes y requiere tomar medidas de mayor importancia, como reducir la velocidad, corregir la
geometría o cerrar la vía.
Los límites se establecen para distintas longitudes de onda de los defectos y distintas velocidades
de avance de los vehículos. Las bandas de longitud de onda para los casos de defectos de nivelación y
alineamiento son:
- D1: 3 m < < 25 m.
- D2: 25 m < < 70 m.
Introducción
10
- D3 (nivelación): 70 m < < 150 m.
- D3 (alineación): 70 m < < 200 m.
A partir de dichas bandas se establecen los límites para los distintos niveles. Para vehículos con
velocidad entre 160 y 230 km/h los límites IAL son:
- D1 (nivelación): 20 mm.
- D1 (alineación): 12 mm.
- D2 (nivelación): 33 mm.
- D2 (alineación): 24 mm.
Aparte de dichas limitaciones anteriores, aplicadas directamente al defecto geométrico de la vía,
las normativas establecen límites para otros parámetros que también dependen de dichos defectos y están
relacionados con el comportamiento dinámico del vehículo.
Por ejemplo, según [8] durante la marcha, debido al riesgo de descarrilamiento o falta de confort,
los vehículos ferroviarios no deben superar los siguientes valores para los siguientes parámetros:
- Carga vertical de cada rueda: Nunca inferior al 10% de la carga estática.
- Ángulo de vuelco del coche: Menor de 6º de pico a pico.
- Aceleración vertical del coche: Inferior a 0,6 g.
Además de las consideraciones para la seguridad de la marcha, existen índices para determinar la
suavidad y confort de la misma, muy relacionados con las irregularidades de la vía, que se basan en el
espectro de potencia de las aceleraciones de los coches, como el índice de marcha de Sperling y el índice
de marcha de British Railways.
El malestar es una medida subjetiva. Existen varios métodos para medirla pero no pueden ser
comparados directamente porque siguen diferentes pautas. Sin embargo coinciden en que el rango de la
aceleración vertical más sensible para el cuerpo humano es entre 4 y 8 Hz y menor de 2 Hz para
aceleración horizontal. En las Fig 1-3 y Fig 1-4 se muestran tiempos de cansancio:
11
Fig 1-3. Tiempo de cansancio para aceleraciones verticales
Fig 1-4. Tiempo de cansancio para aceleraciones horizontales
Donde se observa que, por lo general, la tolerancia es mayor para las aceleraciones verticales que
para las horizontales.
Fusión de sensores. Aproximación frecuencial
12
2. FUSIÓN DE SENSORES. APROXIMACIÓN
FRECUENCIAL
ntes de emplear algoritmos basados en optimización aplicados a la señal de los sensores,
merece la pena abordar el problema de auscultación y fusión de sensores desde el
dominio de la frecuencia. Esto permite también observar la influencia de la frecuencia de
las irregularidades en la lectura de los sensores.
Fig 2-1. Modelo 2D
Para llevar a cabo la auscultación se empleará el vehículo simplificado de dos ruedas
bidimensional del a Fig 2-1. La auscultación se realizará teniendo en cuenta las relaciones geométricas,
es decir, sólo la cinemática del vehículo. Aunque se considerará una simplificación 2D, sería interesante
para un trabajo futuro incorporar las ecuaciones genéricas dadas en [9]. Se situarán dos sensores en el
centro del vehículo, un acelerómetro y un giróscopo, tal y como se muestra en la figura superior, donde:
- L es la longitud del vehículo y distancia de separación entre ambos puntos de contacto.
- v es la velocidad de avance.
- s es la coordenada espacial en dirección del avance de la rueda delantera.
- y es la altura del perfil.
- x es la altura del centro del vehículo (IMU).
A
13
- es el ángulo de inclinación del vehículo.
Para ello se considerarán las siguientes hipótesis:
- El vehículo es un sólido rígido sin suspensión.
- La velocidad de avance del vehículo es constante.
- Las ruedas tienen diámetro despreciable, por lo que a efectos de cálculo el contacto es puntual
en los extremos del vehículo.
- Las ruedas mantienen el contacto con el suelo en todo momento sin separarse.
- La amplitud de las irregularidades es despreciable con respecto a la longitud del vehículo.
- Las medidas de los sensores son exactas.
En primer lugar se llevará a cabo la auscultación suponiendo datos ya recogidos por los sensores,
para posteriormente proceder a realizarla en tiempo real.
Fusión de sensores. Aproximación frecuencial
14
2.1. Determinación del perfil a partir de datos existentes
A continuación se presenta el desarrollo matemático del proceso a seguir. Las ecuaciones que
relacionan el perfil con las variables del sistema son:
2
)()( Lsysyx
(1)
L
Lsysy )()( (2)
Y sus derivadas respecto la variable espacial:
2
)()( Lsysyx
(3)
L
Lsysy )()( (4)
La aceleración del punto medio se relaciona con su posición según:
xvdt
ds
ds
dxx (5)
xdt
dv
dt
ds
ds
xdvx
dt
dv
dt
xdv
dt
xdx
, y como 0
dt
dv:
xvx 2 (6)
Y la velocidad angular:
vdt
ds
ds
d (7)
Que relacionan directamente las derivadas espaciales y temporales y, por tanto, la geometría con
las medidas de los sensores.
A continuación, para determinar la geometría a partir de los datos de la IMU, se procede a su
estudio en frecuencia. Para ello se supone que la altura del perfil puede descomponerse en funciones
armónicas de distintas amplitudes para cada frecuencia, del modo:
sisi
YeYesy
2
)( (8)
Donde es la longitud de onda espacial y la frecuencia espacial.
15
Su segunda derivada será:
siYesy 2)( (9)
De manera análoga, la segunda derivada espacial de x:
siAesx )( (10)
Y utilizando la ecuación (1) en la (10):
YTeYA
eYeYeYeAe
Li
LisiLsisisi
1
2
222
12
1
12
1
2
1
(11)
Donde 1T es la función de transferencia entre aceleración e irregularidad.
...5,3,,012,01)cos(,00
)cos(12
1)sin()cos(2)cos(1
2
1
)sin()cos(12
11
2
1
1
2222
1
22
1
jLLT
LLLLT
LiLeT Li
(12)
Lo que indica que dicha función será nula para longitudes de onda del terreno = , 2L,
2L/3, 2L/5, etc. La forma de dicha función se observa en la Fig 2-2:
Fig 2-2. Función de transferencia entre aceleración e irregularidad
Fusión de sensores. Aproximación frecuencial
16
La interpretación física corresponde a valores nulos del acelerómetro para dichas longitudes
de onda, ya que el vehículo gira pero mantiene su punto medio a la misma altura, por lo que para
dichas frecuencias el acelerómetro no ofrece ninguna información sobre el terreno. Se muestra un
ejemplo para la frecuencia 3 L/ en la Fig 2-3, donde se observa que el centro del vehículo permanece
sin variar su cota.
Fig 2-3. Ejemplo de frecuencia ciega para el acelerómetro
Hasta aquí la aportación del acelerómetro. Para el giróscopo se sigue un desarrollo análogo al
anterior. La primera derivada espacial de será:
sies )( (13)
Y la primera derivada espacial de y:
siYeisy )( (14)
Con la ecuación (2):
YTeYiL
eYeiL
YeiYeiL
e
Li
LisiLsisisi
211
111
(15)
Donde 2T es la función de transferencia entre giróscopo e irregularidad.
17
...6,4,2,01)cos(0
)cos(12
)sin()cos(2)cos(11
)sin()cos(1
)sin()cos(11
11
2
22
2
2
LLT
LL
LLLL
T
LLiiL
LiLiL
eiL
T Li
(16)
Lo que indica que dicha función será nula para longitudes de onda del terreno = , L,
L/2, L/3, etc. La forma de dicha función se observa en la Fig 2-4:
Fig 2-4. Función de transferencia entre giróscopo e irregularidad
La interpretación física corresponde a valores nulos del giróscopo para dichas longitudes de
onda, ya que el movimiento del vehículo se corresponde con una traslación pura, por lo que para
dichas frecuencias no cambia su orientación y el giróscopo no ofrece ninguna información sobre el
terreno. Se muestra un ejemplo para la frecuencia 2 L/ en la Fig 2-5, donde se observa que el centro
del vehículo permanece sin variar su cota.
Fusión de sensores. Aproximación frecuencial
18
Fig 2-5. Ejemplo de frecuencia ciega para el giróscopo
A continuación es necesario combinar la información obtenida de ambos sensores para determinar
el perfil inicial del terreno, es decir, la fusión de sensores. Para ello, en esta aproximación frecuencial
habrá que tener en cuenta los valores de frecuencias en que cada sensor ofrece información.
19
2.2. Determinación del perfil mediante la transformada de Fourier
El proceso se llevará a cabo mediante la transformada de Fourier. Las transformadas de las
variables empleadas son las siguientes:
)]([)(
)]([)(
)]([)(
sF
sxFA
syFY
(17)
Y empleando la funciones de transferencia vistas antes:
)()()(
)()()(
2
1
YT
YTA
(18)
A partir de los datos del acelerómetro:
)()()()()(1
12 )(// syYAsxtx FTFv
A partir de los datos del giróscopo:
)()()()()(1
2 )(// syYst FTFv
Nótese que, aunque en teoría ambos sensores pueden proporcionar la función de irregularidad del
terreno, el hecho de que haya zonas de frecuencias ciegas para cada uno hace que sea necesaria la fusión
de ambos.
El problema surge en las cercanías de dichas frecuencias, donde las funciones de transferencia
toman valores cercanos a cero. Esto genera problemas numéricos e indeterminaciones en los puntos
mencionados. Para solucionar esto, la fusión a emplear consiste en escoger cada función de transferencia
en función de cuál de las dos es mayor.
De esta manera cuando una de las funciones de transferencia se aproxima a una frecuencia que la
anula, al disminuir por debajo del valor de la otra función de transferencia, se calcula la )(Y por medio
de ella. Esto es posible ya que los valores de frecuencias en los que dichas funciones de trasferencia se
anulan son diferentes, lo que permite su complementación de esta manera, a excepción de frecuencia cero.
Debido a que a frecuencia nula ambas funciones valen cero es necesario truncar ambas.
A continuación se aplicará dicho método para el caso ejemplificado. Se utilizará como entrada un
perfil de vía generado aleatoriamente, en el archivo IrrVia.txt. A partir de estos datos de irregularidad se
calcularán las medidas teóricas proporcionadas por los sensores para posteriormente aplicar la fusión de
sensores a la auscultación.
Fusión de sensores. Aproximación frecuencial
20
El cálculo de medidas de los sensores se lleva a cabo en el siguiente código. Se ha supuesto una
longitud del vehículo de 5 m y una velocidad inicial de 20 m/s. La longitud de la vía es de 10 km. Los
códigos en MatLab de esto se adjuntan en el Anexo D.
Ahora se parte de las medidas proporcionadas por los sensores para aplicar las relaciones
cinemáticas expuestas anteriormente y Fourier, como se observa en el Anexo E.
2.2.1. Truncamiento de funciones de transferencia
Antes de proceder a la fusión de sensores se observarán los resultados al truncar simplemente cada
una de las funciones de transferencia para evitar las cercanías de los valores nulos, introduciendo de esta
forma un error.
Para este ejemplo, el truncamiento se llevará a cabo cuando el valor absoluto de la función de que
se trate disminuya por debajo de 0,001. Los códigos se observan en el Anexo E.
La siguiente figura, Fig 2-6, muestra los perfiles calculados junto con el real:
Fig 2-6. Perfiles calculados por truncamiento de cada función de transferencia
El error medio, en valor absoluto y relativo respecto a la RMS del perfil, entre el 10% y el 90%
del recorrido es:
- Perfil desde el acelerómetro: 61016,3 m y 6,06%. Fig 2-7.
21
Fig 2-7. Error del perfil obtenido desde el acelerómetro
- Perfil desde el giróscopo: 61088,1 m y 3,61%. Fig 2-8.
Fig 2-8. Error del perfil obtenido desde el giróscopo
2.2.2. Fusión de sensores
Aunque los resultados a partir de cada sensor puedan ser aceptables, cada uno de ellos proporciona
valores más precisos para diferentes frecuencias. Por ello se propone combinar las lecturas de ambos y
fusionarlas dando prioridad al rango de mayor precisión en cada caso. Esto es análogo a lo que emplearon
Smith y Wu [18], combinando medidas de desplazamiento, precisas para baja frecuencia, y aceleración,
precisas para alta frecuencia, para obtener datos de desplazamiento de alta precisión.
A continuación se lleva a cabo la fusión de sensores para este caso. Es necesario realizar
truncamiento en la cercanía de cero ya que ambas se anulan. Para la selección de la función se da
preponderancia a la del giróscopo multiplicándola por un factor de 100, ya que crece más lentamente y
ha mostrado menor error medio. Los códigos se muestran en el Anexo F.
Fusión de sensores. Aproximación frecuencial
22
La Fig 2-9 muestra el perfil calculado con la fusión de sensores junto con el real:
Fig 2-9. Perfil calculado por fusión de sensores
Puede observarse claramente una mejor aproximación del perfil real que sin el uso de la fusión.
El error medio entre el 10% y el 90% del recorrido calculado con la fusión es de 61021,1 m y 2,32%
relativo a la RMS, como muestra la Fig 2-10.
Fig 2-10. Error del perfil obtenido mediante fusión de sensores
Sin embargo, aunque los resultados obtenidos son aceptables, este método no es apto para ser
utilizado en auscultación de vías debido a la imposibilidad de implantación en tiempo real y sus
consiguientes usos potenciales en ferrocarriles.
23
Además, cuando la longitud del recorrido no tiene suficientes puntos aparecen errores
importantes, esto se observa cuando se aplica la fusión a un tramo de sólo 100 m, en la Fig 2-11.
Fig 2-11. Perfil calculado por fusión de sensores para 100 m
Para la consecución de dicho objetivo será necesario utilizar otro método, aplicando la
transformada Z a través de filtros causales, como se verá a continuación. Esto permitirá que el cálculo
pueda ser realizado en tiempo real.
Fusión de sensores. Aproximación frecuencial
24
2.3. Determinación del perfil mediante la transformada Z
El objetivo es conseguir los coeficientes de dos filtros que, al ser aplicados sobre las medidas del
acelerómetro y del giróscopo, permitan obtener el desplazamiento y el álgulo del punto central del
vehículo en cada punto del terreno.
De cada filtro puede obtenerse su función de transferencia en el dominio de z con la transformada
Z, quedando una expresión de la siguiente forma:
)()()(
11
1
0 zXzHzX
za
zb
zYM
m
m
m
L
l
l
l
(19)
Esta función de transferencia en el dominio de z, )(zH , tiene su función de transferencia
equivalente en el dominio de s, )(sH , de modo que )()( sXsHsY . Por tanto, hallando la función de
transferencia en el dominio de s puede obtenerse fácilmente el filtro necesario.
A continuación se obtienen las funciones de transferencia de ambos sensores. Para el caso del
acelerómetro, dicha función relaciona la lectura del sensor con la posición vertical del mismo. De la
ecuación (6) y aplicando la transformada de Laplace:
221
222 1
vssX
sXsHsXvssXxvx
(20)
Para el caso del giróscopo, dicha función relaciona la lectura del sensor con el giro del vehículo.
De la ecuación (7) y aplicando la transformada de Laplace:
svs
ssHssvsv
12
(21)
A partir de dichas funciones de transferencia en el dominio de s se pueden calcular las funciones
de transferencia en el dominio de z por medio de la transformación bilineal. Teniendo en cuenta que:
1
12
z
z
Ts (22)
Lo que permitirá obtener los coeficientes de los filtros buscados. Aplicando la relación anterior a
la función de transferencia de la posición vertical:
25
21
2
2
21
2
2
2
2
2
2
2
2
121
424
12
12
4
zz
zv
Tz
v
T
v
T
zz
zz
v
TzH (23)
De ahí pueden obtenerse los coeficientes siguientes:
1;2;4
;2
;4
212
2
22
2
12
2
0 aav
Tb
v
Tb
v
Tb
Siguiendo el mismo desarrollo para el ángulo de giro, la función de transferencia queda:
1
1
21
22
1
1
2
z
zv
T
v
T
z
z
v
TzH (24)
Y los coeficientes para dicho filtro:
1;22
110 av
Tb
v
Tb
Al aplicar dichos filtros se obtiene la posición del punto central del vehículo y el ángulo de giro
en cada punto. Con dicha información es posible determinar la geometría del terreno fusionando la
información de ambos sensores. En este caso la fusión puede conseguirse de manera eficaz aplicando la
relación existente entre ambos parámetros:
)(2
)( sL
sxsy (25)
Pero con esto se obtiene sólo el perfil recorrido por la rueda izquierda, por lo que faltaría un tramo
final sin determinar, igual a la longitud del vehículo. Para dicho tramo se puede emplear el perfil recorrido
por la otra rueda, para obtener el perfil completo:
)(2
)( sL
sxsy (26)
También podría haberse calculado el tramo inicial y posteriormente el resto del recorrido, con
mismo resultado.
A continuación se observa en la Fig 2-12 el resultado obtenido por este método.
Fusión de sensores. Aproximación frecuencial
26
Fig 2-12. Perfil calculado por fusión de sensores con transformada Z
Aquí puede observarse que el perfil calculado de este modo acumula un error creciente. Esto es
debido a que el perfil predicho es resultado de una integración, lo que supondrá un error de traslación que
al integrarse dos veces toma forma creciente, generando dicha diferencia. Este error surge al no comenzar
la posición del acelerómetro en tangente horizontal, es decir, con comenzar con velocidad vertical nula.
Este error será resuelto posteriormente.
A continuación, para poder realizar una comparación útil se toma un perfil que comience con
pendiente nula. En dicho caso se observa en la Fig 2-13.
Fig 2-13. Perfil con inicio horizontal calculado por fusión de sensores con transformada Z
Se observa como el error acumulativo de integración en este caso no aparece, permitiendo un error
medio de 61025,5 m y 10% relativo a la RMS. Sin embargo, sigue habiendo un error, originado en parte
por la integración de la velocidad del sensor, y por otra parte por la integración de la velocidad angular.
El error ahora no es acumulativo, ya que se produce al integrar una vez. El error debido a la integración
de la velocidad del sensor no es relevante, ya que sólo produce una traslación del perfil.
27
Para solucionar el error de integración de la velocidad angular se impone la condición de que el
perfil bajo la rueda izquierda tenga la misma elevación que el perfil de la rueda derecha en un punto
desfasado la longitud del vehículo:
)(2
)()()(2
)()( LsL
LsxLsysL
sxsy izquierdaderecha
)()(2
)()( sLsL
sxLsx (27)
Sin embargo, esto no se cumplirá debido al error de integración de la velocidad angular, que
genera un desplazamiento constante en el ángulo de giro. Teniendo en cuenta dicho error e imponiendo
la condición anterior, es posible hallarlo:
L
sxLsxsLssLsL
sxLsx errerrerr
2)()()()(2)()(
2)()(
2
2)()()()(
LLsxsxsLs
err
(28)
Este error se puede calcular con un solo punto, por ejemplo el inicial, y restando dicho error de la
función del ángulo calculada por integración se obtiene la función sin el error de traslación.
Obteniendo el nuevo perfil con el ángulo corregido y trasladando la geometría del perfil para no
introducir error debido a la media, se muestra en la Fig 2-14.
Fig 2-14. Perfil con inicio horizontal calculado con transformada Z con giro corregido
Fusión de sensores. Aproximación frecuencial
28
La corrección de dicho error del ángulo (suponiendo que no existe error de media, ya que es
irrelevante) supone el paso de un error medio de 610215,1 m a 610204,1 m (2,33% a 2,31% relativos)
sobre el perfil con la corrección introducida. En este caso la disminución del error es muy pequeña, debido
a que el error en el ángulo era de sólo 61043,4 radianes, pero en caso de ser mayor el error sobre el
perfil se apreciaría mucho más.
Sin embargo este resultado se obtiene para el caso de perfil con la posición del acelerómetro en
tangente horizontal. Para el caso general en que esto no ocurra es necesario solucionar el problema de la
doble integración, que genera un error acumulativo.
Una posible solución del problema consiste en pasar la medida del acelerómetro a través de un
filtro paso alto, como un filtro Butterworth. Este filtro permite eliminar las bajas frecuencias, de modo
que desaparezca el error por traslación o valor medio no nulo de la velocidad obtenida por integración del
acelerómetro. Al desaparecer dicha traslación la segunda integración no producirá el defecto acumulativo
visto anteriormente.
Para eliminar sólo la frecuencia respondable del valor medio, es decir, la frecuencia cero, es
necesario situar la frecuencia de corte lo más próxima posible a cero. Sin embargo, como no es posible
obtener el caso ideal, es necesario variar la frecuencia de corte y el orden hasta conseguir resultados
aceptables. Se empieza comprobando un filtro Butterworth paso alto de orden 2 y con una frecuencia de
corte de 0,001 rad. Los resultados se observan en la Fig 2-15.
Fig 2-15. Perfil calculado con transformada Z con ambas correcciones
Y en la Fig 2-16 se observa el recorrido global:
29
Fig 2-16. Perfil global calculado con transformada Z con ambas correcciones
El error medio, en valor absoluto, entre el 10% y el 90% del recorrido es de 510491,1 m y 28,5%
de la RMS. Como se observa, debido a la magnitud del error y la imposibilidad de una corrección exacta,
el efecto sigue teniendo una importancia relevante, sobre todo en la primera parte del recorrido.
Si se emplean valores distintos se llegan a soluciones más o menos aptas en función de lo que se
busque. Por ejemplo, para una frecuencia de corte de 0,0001 rad y orden 3 se obtendría, como se muestra
en la Fig 2-17.
Fig 2-17. Perfil global calculado con filtro de orden 3
Fusión de sensores. Aproximación frecuencial
30
Donde el perfil calculado tarda mucho más en conseguir valores aproximados al real, teniendo un
error medio de 410637,2 m y 505% relativo, pero a partir de la mitad el perfil calculado se ajusta mejor
que en los casos anteriores, consiguiendo un error medio de sólo 610671,2 m y 5,12%.
Como último ejemplo, se observa en la Fig 2-18 el resultado empleando un filtro de primer orden
con una frecuencia de corte de 0,001 rad, igual al primer caso:
Fig 2-18. Perfil global calculado con filtro de orden 1
Este parece aproximar mejor el perfil que el de segundo orden, en efecto, el error entre el 10% y
el 90% del recorrido es de 51001,1 m y 19,3% relativo frente al 510491,1 m y 28,59% relativo del de
segundo orden.
La implementación en código quedaría tal como aparece en el anexo G.
No obstante, las comparativas realizadas sólo permiten visualizar la aproximación geométrica a
simple vista, por lo que sería interesante realizar un análisis frecuencial para comprobar la adecuación del
31
algoritmo en la detección de distintas frecuencias de la vía, a lo que además se encuentran referidos los
límites de defectos establecidos en la normativa.
Otro efecto que no se ha contemplado se refiere a la precisión de los sensores y el ruido de la
medición, por lo que en el siguiente apartado se considerarán los efectos de errores de calibración y errores
aleatorios de los sensores.
Fusión de sensores. Aproximación frecuencial
32
2.4. Corrupción de medidas y análisis en frecuencia
2.4.1. Análisis en frecuencia
Para comprobar la adecuación del perfil calculado al real para las distintas frecuencias se empleará
el análisis de la densidad espectral. Esta función muestra cómo está distribuída la potencia o energía de la
señal para las distintas frecuencias [10]. La energía de una señal es:
dttxE2
(29)
La Relación de Parseval o Teorema de Parseval demuestra que la integral del cuadrado de una
función es igual a la integral del cuadrado de su transformada de Fourier:
dffXdftxFdttx222
(30)
Siendo fXtxF la transformada de Fourier de la señal anterior. De este modo, puede
expresarse la energía para cada frecuencia, conformando así la ESD (Energy Spectral Density):
2fXfEfSxx (31)
Sin embargo, para señales continuas en el tiempo, como procesos estacionarios, es más apropiado
utilizar la PSD (Power Spectral Density), que será empleado en este caso ya que el perfil se puede
considerar como una señal definida en potencia (energía infinita). Esta función describe cómo se
distribuye la potencia sobre la frecuencia. Al ser la potencia energía por unidad de tiempo, la aplicación
a señales se define como:
𝑃 = lim𝑇→∞
1
2T
T
T
dttx2
(32)
Y la PSD se define como:
xxxx RFfPfS (33)
Donde xxR es la función de autocorrelación:
dttxtxRxx (34)
33
Dicha función se implementa en MatLab con el método de estimación de Welch, en el que se
representa la PSD escalada por la frecuencia de muestreo, lo que permite su integración para obtener la
potencia media. La función utilizada es:
% Power Spectral Density [Pxx F] = pwelch(yl);
Para la fusión de sensores vista en el apartado anterior, las gráficas de la Power Spectral Density
para los perfiles real y calculado se muestran en la Fig 2-19.
Fig 2-19. PSDs de los perfiles real y calculado. Ampliación para frecuencia 0,1.
Donde se observa un buen ajuste para gran parte del rango de frecuencias.
Aparte de la PSD para comprobar la precisión de la auscultación en el dominio de la frecuencia
se utilizarán otras funciones adicionales, las funciones de coherencia. La función de coherencia en
magnitud de dos señales se define como:
fSfS
fSfC
yyxx
xy
xy
2
(35)
Donde fSxy es la densidad espectral cruzada de ambas señales. Análogamente a la PSD de una
señal, la densidad espectral cruzada se define como la transformada de Fourier de la función de correlación
cruzada de ambas señales:
dttytxFRFfS xyxy (36)
Los valores de la función de coherencia estarán siempre entre 0 y 1. Para un ajuste ideal dicho
valor sería de 1. Además de esta función se puede evaluar la coherencia de fase de ambas señales,
definiéndola como el arcotangente de las partes real e imaginaria de la función de correlación cruzada de
las señales. La implementación en MatLab quedaría:
Fusión de sensores. Aproximación frecuencial
34
% Coherencia csd_f = cpsd(yl,y); coh_f = abs(csd_f).^2./(Pxx.*Pxx_f); phase_f = atan2(-imag(csd_f),real(csd_f))*180/pi;
Aplicando dichas funciones de coherencia al caso anterior:
Fig 2-20. Funciones de coherencia de los perfiles real y calculado.
La Fig 2-20 pone de manifiesto el nivel de ajuste conseguido por el algoritmo de auscultación
implementado. Sin embargo, este nivel no es realista aún, ya que obvia los efectos de ruido y errores de
los sensores. Este hecho puede provocar que ambas difieran considerablemente, así que a continuación se
procederá a comprobar el efecto de la corrupción de sensores.
2.4.2. Corrupción de medidas
El objetivo es comprobar la idoneidad del algoritmo en condiciones más próximas a las reales.
Para ello se afectarán a los sensores por dos errores, que tendrán repercusión en su precisión y exactitud.
Fig 2-21. Precisón y exactitud.
El error de exactitud se modelará como un desplazamiento de todas las medidas, bias o
descentramiento, que afectará a la media. La precisión afectará a la varianza, generando el error de forma
aleatoria. La implementación en MatLab sería:
35
A continuación se mostrarán los resultados del algoritmo de auscultación cuando se tienen en
cuenta estos efectos en los sensores. El perfil calculado se muestra en la Fig 2-22.
Fig 2-22. Perfil calculado con transformada Z incluyendo corrupción de medidas
El error medio respecto al perfil real resulta de 51027,2 m o 43,5% respecto a la RMS. La
comparación de las PSDs de ambos perfiles se muestra en la Fig 2-23.
Fig 2-23. PSDs de ambos perfiles
Y las funciones de coherencia y coherencia de fase en la Fig 2-24.
Fusión de sensores. Aproximación frecuencial
36
Fig 2-24. Funciones de coherencia
Se comprueba que, a pesar de arrojar resultados muy similares al caso de sensores ideales cuando
se compara sólo el perfil geométrico, sin embargo las funciones de comparación en frecuencia muestran
el efecto de dichos errores de medición. Es por tanto una herramienta imprescindible para poder tener una
clara visualización de la eficacia del algoritmo de auscultación.
Sin embargo, para comprobar la validez del algoritmo es conveniente tener en cuenta también los
resultados previos a la corrupción de medidas, ya que de ese modo puede asegurarse que la causa de las
posibles discrepancias observadas no se encuentra en el error de medición.
Los códigos para la corrupción de medidas y el análisis en frecuencia se adjuntan en el Anexo H.
37
3. VELOCIDAD VARIABLE
l caso considerado hasta ahora partía de la hipótesis de una velocidad constante, para mayor
sencillez del modelo. Sin embargo, aunque la velocidad en régimen permanente variará
lentamente, sería útil comprobar la importancia de este efecto así como cuando las
aceleraciones son mayores.
Si la velocidad de avance cambia con el tiempo, como suele ser el caso de los vehículos de
laboratorio, deben implementarse algoritmos diferentes. Para ello se supondrá que, además de los datos
proporcionados por el acelerómetro y el giróscopo, se dispone de la medida de la posición, velocidad y
aceleración en cada paso de tiempo. Estas señales pueden obtenerse de un tacómetro o un encoder.
Para el caso de velocidad de avance variable, el proceso de medida usará un período de muestreo
constante y, por tanto, una distancia de muestreo variable. Eso será tenido en cuenta en los algoritmos de
auscultación.
Se implementará de dos formas, en una primera aproximación se considerará una simplificación
en la transformada de Laplace y en la segunda se empleará interpolación matemática.
E
Velocidad variable
38
3.1. Filtro adaptativo
En una primera aproximación se intentará considerar la velocidad variable sin dejar de hacer uso
de filtros en el algoritmo de auscultación. Para ello se parte de las ecuaciones anteriores (6) y (7) que
relacionaban las medidas de los sensores. Para el acelerómetro:
xdt
dv
dt
ds
ds
xdvx
dt
dv
dt
xdv
dt
xdx
, y como 0
dt
dv:
xvxvx 2 (37)
Que en este caso, al no ser la velocidad constante, incluye el término de aceleración. Para el
giróscopo:
vdt
ds
ds
d (7)
Que es igual a la original, ya que sólo llega a la primera derivada.
Sin embargo, no es posible aplicar Laplace del mismo modo que se hizo anteriormente, ya que en
este caso la velocidad no es independiente y no puede extraerse de la transformada. La aproximación
consiste en suponer que la variación de la velocidad de avance es lo suficientemente lenta como para
poder considerar la velocidad constante en cada paso. Con esto se incurrirá en cierto error, que
posteriormente se comprobará si es suficientemente relevante como para invalidar el método o pueden
obtenerse resultados satisfactorios.
La función de transferencia correspondiente al acelerómetro sería:
vsvssX
sXsHsXvssXvssXxvxvx
221
222 1 (38)
Y la del giróscopo:
svs
ssHssvsv
12
(39)
Aplicando la transformación bilineal a la función de transferencia de la posición vertical:
T
vz
T
vz
T
v
T
vz
T
v
zz
z
z
T
v
zz
zz
T
vzH
2242
44
12
1
12
21
214
1
2
2
2
2
22
2
2
2
2
2
2
21
39
2
2
21
2
2
2
2
21
2
2
2
2
2
2
2
22
2
2
2
1
2
2
2
41
24224
2442
24
12
zvTv
vTvz
vTv
v
zvTv
Tz
vTv
T
vTv
T
T
v
T
vz
T
vz
T
v
T
v
zzzH
(40)
De ahí pueden obtenerse los coeficientes siguientes:
vTv
vTva
vTv
va
vTv
Tb
vTv
Tb
vTv
Tb
2
2
22
2
12
2
22
2
12
2
02
2;
2
4;
24;
2;
24
Siguiendo el mismo desarrollo para el ángulo de giro, la función de transferencia queda:
1
1
21
22
1
1
2
z
zv
T
v
T
z
z
v
TzH (41)
Y los coeficientes para dicho filtro:
1;22
110 av
Tb
v
Tb
Al ser filtros que dependen de la velocidad y la aceleración en cada paso, deben ser recalculados
y aplicados a cada nuevo punto del recorrido, lo que incrementa el coste computacional y reduce su
aplicabilidad al tiempo real.
También en este caso se emplea un tercer filtro paso alto para eliminar posibles errores de bias y
de integración de la señal del acelerómetro, que en este caso será de orden 3.
Para implementar lo anterior se cargan datos del odómetro, que incluye la posición y velocidad
de avance en cada instante, y para poder aplicar los filtros se remuestrean interpolando en los puntos del
recorrido. La implementación del algoritmo se muestra en el Anexo I.
A continuación se comprueban los resultados de la aplicación. Para este caso se emplea la
velocidad registrada en la Fig 3-1.
Velocidad variable
40
Fig 3-1. Velocidad de avance de la odometría
En primer lugar se procede sin incluir los errores de medición de los sensores. El perfil calculado
de este modo se muestra en la Fig 3-2.
Fig 3-2. Perfil calculado con transformada Z para velocidad variable
El error medio respecto al perfil real resulta de 51028,2 m y 43,7%. La comparación de las PSDs
de ambos perfiles se observa en la Fig 3-3.
41
Fig 3-3. PSDs de ambos perfiles
Y las funciones de coherencia y coherencia de fase en la Fig 3-4.
Fig 3-4. Funciones de coherencia
Para que la auscultación se afecte por los errores de medición propios de los sensores se
considerarán errores medios y errores variables aleatorios tanto para el giróscopo como para el
acelerómetro, de entre el 1% y el 5% de los valores medios. El perfil calculado se representa en la Fig 3-
5.
Velocidad variable
42
Fig 3-5. Perfil calculado con transformada Z para velocidad variable y errores de medición
El error medio respecto al perfil real resulta de 5104,2 m o 46%. En la gráfica superior apenas
se aprecia diferencia con la anterior debido a los errores de los sensores, esto es porque el efecto más
importante viene causado por la velocidad variable y los errores de integración, así como las discrepancias
introducidas por el filtro. Para tener mejor perspectiva de la comparación es interesante observar las
funciones en el dominio de la frecuencia, donde el efecto se observa más claramente, en especial en la
función de coherencia.
La comparación de las PSDs de ambos perfiles se representa en la Fig 3-6.
Fig 3-6. PSDs de ambos perfiles
Y las funciones de coherencia en la Fig 3-7.
43
Fig 3-7. Funciones de coherencia
Teniendo en cuenta la imprecisión del método y considerando la función de coherencia los
resultados son bastante satisfactorios para gran parte del rango de frecuencia, como se observa en las
gráficas superiores.
Sin embargo, el coste computacional de este método es ciertamente elevado, dado que tiene que
recalcular los filtros y aplicarlos en cada paso, a parte de ser necesario remuestrear la señal de la velocidad
de avance para que los pasos de la coordenada espacial sean constantes y puedan aplicarse los filtros.
Se plantea entones una nueva aproximación que considera interpolación matemática en lugar de
la transformada z para calcular los puntos del perfil.
Velocidad variable
44
3.2. Derivadas numéricas
En esta aproximación se aproximarán las derivadas espaciales de las funciones de posición y
ángulo del sensor. Se supondrá que el paso temporal y espacial es lo suficientemente pequeño como para
permitir aproximar las derivadas espaciales por su cálculo numérico a partir de los valores en pasos
anteriores.
Se aplica dicho procedimiento tanto a las lecturas del acelerómetro como del giróscopo utilizando
sus ecuaciones de relación. Para el caso del acelerómetro, las derivadas numéricas son:
1
1
ii
iii
ss
xxx ,
21
211
ii
iii
ss
xxx
121
21
2
1
1
1
21
21
1
1
1
1
iiii
ii
ii
ii
ii
ii
ii
ii
ii
ii
iii
ssss
xx
ss
xx
ss
ss
xx
ss
xx
ss
xxx (42)
Y se sustituyen estas expresiones en la ecuación (37) del acelerómetro:
1
1
121
21
2
1
122
ii
ii
iiii
ii
ii
ii
ss
xxv
ssss
xx
ss
xxvxvxvx (43)
De la expresión (43) se despeja el valor de la función ix , como se desarrolla a continuación:
1
1
1121
21
2
1
12
2
1
2
ii
ii
ii
ii
iiii
ii
ii
ii
ii
iii
ss
xv
ss
xv
ssss
xx
ss
xv
ss
xvx
1
2
1
2
1
1
121
21
2
1
12
ii
i
ii
i
ii
ii
iiii
ii
ii
iii
i
ss
v
ss
v
ss
xv
ssss
xx
ss
xvx
x
(44)
Que es una expresión del tipo:
iiiiiiiiii vvsssxxxxx ,,,,,,, 2121
Que sólo depende de valores en pasos anteriores, por lo que es una función causal que puede ser
evaluada en tiempo real a partir de los valores previos de x, y los valores anteriores y actual de la posición,
velocidad y aceleración longitudinal del vehículo.
45
Para la aplicación práctica de dicha expresión hay que tener en cuenta que la velocidad de avance
no debe ser próxima a cero, ya que en tal caso el denominador tiende a cero y la expresión no puede ser
evaluada. Esto es consecuencia de que cuando la velocidad de avance es nula, la irregularidad no genera
ninguna lectura en el sensor. Por tanto, cuando la velocidad es demasiado baja los valores calculados
pueden tener formas extrañas, a parte de la mayor influencia en caso de ruído e imprecisión en la lectura.
Por ello se establece una velocidad de corte mínima que, para este caso, se toma de 0,5 m/s.
A continuación se aplica el mismo procedimiento a la lectura del giróscopo. En este caso la
derivada numérica es:
1
1
ii
iii
ss
(45)
Y se sustituye la expresión en la del giróscopo:
1
1
ii
ii
ssvv
(46)
De esta expresión se despeja el valor de i , como se muestra a continuación:
1
1
1 ii
ii
ii
iii
ssv
ssv
1
1
1
ii
i
ii
iii
i
ss
v
ssv
(47)
Que es una expresión de tipo:
iiiiiii vss ,,,, 11
A continuación se implementan estas expresiones calculadas en el algoritmo de auscultación.
Antes de implementar el algoritmo es necesario remuestrear antes a intervalos de tiempo constante para
calcular las lecturas de los sensores. La implantación del algoritmo se observa en el anexo J.
Tras obtener las curvas se filtra la lectura del acelerómetro al igual que en el caso anterior y se
fusionan los sensores para calcular el perfil. Los resultados se muestran a continuación, en primer lugar
para resultados sin corrupción de lectura, en la Fig 3-8.
Velocidad variable
46
Fig 3-8. Perfil calculado numéricamente para velocidad variable
El error medio respecto al perfil real resulta de 51011,3 m o 59,6%. La comparación de las PSDs
de ambos perfiles se muestra en la Fig 3-9.
Fig 3-9. PSDs de ambos perfiles
Y las funciones de coherencia y coherencia de fase en la Fig 3-10.
Fig 3-10. Funciones de coherencia
47
A pesar de los resultados que se observan en las gráficas de PSD y comparación de los perfiles,
las funciones de coherencia muestran clara discrepancia. A continuación se considerarán errores medios
y errores variables aleatorios tanto para el giróscopo como para el acelerómetro, de entre el 1% y el 5%
de los valores medios. El perfil calculado se observa en la Fig 3-11.
Fig 3-11. Perfil calculado numéricamente con velocidad variable y errores de medición
El error medio respecto al perfil real resulta de 51024,5 m o 100,49%. En la gráfica superior se
observa clara diferencia respecto al caso sin corrupción de sensores, se comprueba que estos efectos son
más notables en este algoritmo de velocidad variable que en el anterior. Para tener una visión más
completa se observan las funciones en el dominio de la frecuencia y de coherencia.
La comparación de las PSDs de ambos se muestra en la Fig 3-12.
Fig 3-12. PSDs de ambos perfiles
Velocidad variable
48
Donde se observa peor aproximación que en el caso anterior. Y las funciones de coherencia se
muestran en la Fig 3-13.
Fig 3-13. Funciones de coherencia
Se observan también aquí discrepancias claras, sobre todo manifestadas en las funciones de
coherencia. Lo que se ha intentado en este caso, realmente es aproximar la función por dos rectas que
pasan por los puntos anteriores al que se pretende calcular. Sin embargo, esto partía de la suposición de
unos pasos de muestreo lo suficientemente pequeños, por lo que los resultados pueden reflejar que dicha
hipótesis no se adecúa a la realidad.
Para intentar aproximar mejor la forma de la función, en lugar de dos rectas se planterará una
forma cuadrática. Para intentar solucionar las discrepancias se intentará imponiendo una forma
polinómica de segundo grado a las funciones, y comprobar si el error disminuye o, por el contrario, no
influye la forma empleada.
49
3.3. Extrapolación polinómica
En esta aproximación se considerará una cierta evolución matemática de las curvas a calcular, a
partir de la que se implementará el algoritmo de auscultación.
Los sensores obtienen las lecturas a partir de la posición y ángulo del centro del vehículo. Lo que
se pretende en esta aproximación es asumir una evolución cuadrática de ambas curvas en cada paso a
partir de los valores obtenidos en los pasos anteriores, y con dicha imposición extrapolar el valor actual
de ambas funciones, posición y ángulo del centro.
Cada función se aproximará en cada paso por un polinomio de la forma:
CssBssAs ii 2
2
2 (48)
Cuyas derivadas espaciales primera y segunda serían:
BssAs i 22 (49)
As 2 (50)
Que para poder definir por completo necesita los 3 coeficientes A, B y C. Se impone que la función
pase por el punto actual que se pretende calcular y por los 2 correspondientes a los pasos anteriores ya
calculados:
Cs
CssBssAs
CssBssAs
ii
iiiiii
iiiiii
22
21
2
2111
2
2
2
(51)
Lo que suponen 3 ecuaciones para resolver 4 incógnitas, los 3 coeficientes y el valor de la función
en el paso actual i . La última ecuación necesaria es la relación de derivadas espaciales y temporales de
cada sensor. Para el acelerómetro y giróscopo:
xvxvx 2 (37)
v (7)
Por lo que se disponen de 4 ecuaciones y 4 incógnitas. Para implementarlo en MatLab se obtiene
la expresión de i en forma simbólica. Despejando los coeficientes en forma matricial:
Velocidad variable
50
2
1
21
21
21
21
2
21
2
2
2
2
1
100
1
1
i
i
i
iii
iii
iii
iiii
iiii
i
i
i
CCC
BBB
AAA
C
B
A
C
B
A
ssss
ssss
(52)
Los coeficientes del polinomio A, B y C son lineales respecto a los valores de la función i , 1i
y 2i respectivamente, por lo que los coeficientes de la matriz inversa pueden calcularse sin necesidad
de invertirla, calculando las derivadas parciales de A, B y C:
2212121121 ,,,,,, iiiiiiiiiiiiiii sssAsssAsssAA
i
i
AA
,
1
1
i
i
AA
,
2
2
i
i
AA
(53.a)
Y análogamente para B y C:
i
i
BB
,
1
1
i
i
BB
,
2
2
i
i
BB
(53.b)
i
i
CC
,
1
1
i
i
CC
,
2
2
i
i
CC
(53.c)
La implementación numérica en MatLab con variables simbólicas se muestra en el anexo K.
Se aplica dicho procedimiento tanto a las lecturas del acelerómetro como del giróscopo utilizando
sus ecuaciones de relación. Para el caso del acelerómetro:
BssAvAvsvsvxvxvx i 2
222 22 (54)
Y se sustituyen en esta ecuación las expresiones generales de los coeficientes del polinomio,
quedando:
2211
221122211
222
iiiiiii
iiiiiiiiiiiiiiiii
BBBv
AAAssvAAAvx
(55)
De la expresión (55) se despeja el valor de la función i , como se desarrolla a continuación:
221122112
2211
2
2
2
2
222
iiiiiiiiiiii
iiiiiiiiiiiiii
BBvAAssv
AAvxBvAssvAv
51
iiiiiiii
iiiiiiiiiiiiiiiiiiii
BvAssvAv
BBvAAssvAAvxx
2
2
2211221122211
2
22
22 (56)
Que sustituyendo con las expresiones de los coeficientes de la matriz quedará en una expresión
simbólica del siguiente tipo:
iiiiiiiiii vvsssxxxx ,,,,,,, 2121
Que sólo depende de valores en pasos anteriores, por lo que es una función causal que puede ser
evaluada en tiempo real a partir de los valores previos de x, y los valores anteriores y actual de la posición,
velocidad y aceleración longitudinal del vehículo.
Para la aplicación práctica de dicha expresión, al igual que en caso anterior, hay que tener en
cuenta que la velocidad de avance no debe ser próxima a cero, ya que en tal caso el denominador tiende
a cero y la expresión no puede ser evaluada. Por ello se establece una velocidad de corte mínima que, para
este caso, se toma de 0,5 m/s.
La expresión simbólica para el acelerómetro se implementa en el anexo K.
A continuación se aplica el mismo procedimiento a la lectura del giróscopo:
BssAvsvv i 22 (57)
Y se sustituyen en esta ecuación las expresiones generales de los coeficientes del polinomio,
quedando:
2211221122 iiiiiiiiiiiiiiiii BBBvAAAssv (58)
De esta expresión se despeja el valor de la función i , como se desarrolla a continuación:
2211
221122 22
iiiii
iiiiiiiiiiiiiii
BBv
AAssvBvAssv
iiiiii
iiiiiiiiiiiiiii
BvAssv
BBvAAssv
2
221122112
2
2
(59)
Que sustituyendo con las expresiones de los coeficientes de la matriz quedará en una expresión
simbólica del siguiente tipo:
iiiiiiiii vsss ,,,,,, 2121
Velocidad variable
52
Y por tanto una función causal. La expresión simbólica para el giróscopo se implementa también
en el anexo K. Este desarrollo se contempla también en el algoritmo seguido por [11].
A continuación se implementan estas expresiones calculadas en el algoritmo de auscultación.
Antes de implementar el algoritmo es necesario remuestrear antes a intervalos de tiempo constante para
calcular las lecturas de los sensores, del mismo modo que se hizo para el caso anterior. Y la
implementación numérica para ambos sensores se muestra en el anexo L.
Tras obtener las curvas se filtra la lectura del acelerómetro al igual que en el caso anterior y se
fusionan los sensores para calcular el perfil. Los resultados se muestran a continuación, en primer lugar
para resultados sin corrupción de lectura, en la Fig 3-14.
Fig 3-14. Perfil calculado con interpolación para velocidad variable
El error medio respecto al perfil real resulta de 51012,3 m o 59,84%. La comparación de las
PSDs de ambos perfiles se observa en la Fig 3-15.
Fig 3-15. PSDs de ambos perfiles
Y las funciones de coherencia y coherencia de fase en la Fig 3-16.
53
Fig 3-16. Funciones de coherencia
Al igual que en el caso anterior son las funciones de coherencia las que muestran mayor
discrepancia. A continuación se considerarán para los sensores errores de entre el 1% y el 5% de los
valores medios. El perfil calculado se observa en la Fig 3-17.
Fig 3-17. Perfil calculado con interpolación para velocidad variable y errores de medición
El error medio respecto al perfil real resulta de 51072,6 m o 128,8%. En la gráfica superior se
observa clara diferencia respecto al caso sin corrupción de sensores, se comprueba que estos efectos son
más notables en este algoritmo de velocidad variable que en el anterior. Para tener una visión más
completa se observan las funciones en el dominio de la frecuencia y de coherencia.
La comparación de las PSDs de ambos perfiles se observa en la Fig 3-18.
Velocidad variable
54
Fig 3-18. PSDs de ambos perfiles
Donde también se observa peor aproximación que en el caso anterior. Y las funciones de
coherencia se representan en la Fig 3-19.
Fig 3-19. Funciones de coherencia
Los resultados se muestran bastante similares a lo que se obtenía en el caso anterior, por lo que se
plantea la posibilidad de que las discrepancias respecto al método anterior de aproximación de las
transformadas de Laplace, más que a causa de la complejidad de la interpolación, sean debidas a no
considerar el paso variable en espacio. Esto provocaría que la corrección del ángulo vista anteriormente
no pueda ser planteada en términos de paso constante, por lo que tendría que implementarse en el
algoritmo un cálculo de los pasos que completan la longitud del vehículo.
Sin embargo esto supondría añadir un nuevo bucle al algoritmo, incrementando el coste
computacional. Además, como se observa en la Fig 3-20, el error en el que incurre el ángulo es lo
suficientemente pequeño como para que su influencia no sea relevante en las discrepancias observadas,
por lo que esta causa puede descartarse:
55
Fig 3-20. Ángulo real y calculado
Las discrepancias deben ser por tanto debido a los errores causados por velocidades bajas y la
aproximación polinómica que se ha supuesto. Estas velocidades generan zonas en las que la auscultación
no puede aportar información relevante, corrompiendo por tanto los resultados y causando las diferencias
observadas.
En cualquier caso la mejora respecto al caso anterior no es significativa por lo que no compensa
la complejidad añadida, e incluso parecen reducirse ciertos errores. Esto puede ser debido a los problemas
numéricos y de convergencia que conlleva la complejidad de la interpolación polinómica. Si el error
hubiese disminuido podría haberse pensado en seguir aumentando el grado del polinomio de ajuste de las
funciones, pero eso no será necesario ya que el hecho de incrementar el grado del polinomio para el ajuste
de las funciones no ha servido respecto a las dos rectas anteriores.
Auscultación con filtro de Kalman
56
4. AUSCULTACIÓN CON FILTRO DE KALMAN
l último algoritmo que se empleará en el siguiente trabajo es la auscultación utilizando el
filtro de Kalman. Se propone el empleo de este algoritmo matemático en el campo de la
auscultación ferroviaria como alternativa a los algoritmos anteriores. A partir de los datos
obtenidos es posible llevar a cabo simulaciones dinámicas de los vehículos. Algo análogo fue
realizado por Charles para monitorización continua de vehículos ferroviarios basado en la simulación
dinámica [12].
El filtro de Kalman, conocido en teoría de control como estimador lineal cuadrático (LQE), fue
desarrollado por Rudolf E. Kalman en 1960 [13], para estimar el estado de un sistema dinámico lineal a
partir de mediciones de la entrada y la salida que pueden contener ruido blanco. Una de sus principales
ventajas es la posibilidad de su aplicación en tiempo real, ya que necesita únicamente las mediciones de
entrada actuales, el estado calculado previamente y una matriz de incertidumbre. Además, su estimación
basada en el uso de distintas medidas lo ha convertido en un algoritmo común en la fusión de sensores.
Se ha utilizado extensamente para la medida de trayectorias en sectores como el aeronáutico,
donde se emplean comúnmente técnicas que combinan la señal de sensores inerciales con señales GPS, y
mediante Kalman se obtienen las trayectorias por integración de la señal de los sensores y se corrigen con
la señal del GPS.
Posteriormente han surgido variaciones del filtro para la aplicación a problemas no lineales, como
el filtro de Kalman Extendido, que permite su aplicación a sistemas no lineales. También aparecen otras
como el filtro Kalman-Schmidt, para tener en cuenta sesgos de la señal no observables sin perder la
posibilidad de implantación en tiempo real. Por último, el filtro de Kalman Unscented, que se utiliza
cuando los modelos de transición de estado y observación son altamente no lineales, caso en el que el
modelo extendido no da buenos resultados.
E
57
4.1. Introducción al filtro de Kalman
Ante la necesidad de la estimación del estado de un sistema a partir de una serie de medidas
que pueden contener ruido e imprecisiones, el filtro de Kalman obtiene estimaciones de sus variables
de estado más precisas que las basadas en una sola medida. Esto se consigue mediante el uso de la
inferencia bayesiana, un tipo de inferencia estadística en la que las observaciones previas se emplean
para actualizar la probabilidad de ocurrencia, a partir de la que el algoritmo estima una distribución
de probabilidad conjunta de las variables.
El algoritmo funciona en un proceso de dos pasos, predicción y corrección. En el paso de
predicción, el filtro de Kalman genera estimaciones sobre el estado actual de las variables junto con
sus incertidumbres. Una vez que las medidas siguientes, con su correspondiente error y ruido, son
observadas, las estimaciones son actualizadas utilizando una media ponderada, con mayor
ponderación para aquellas estimaciones de menor incertidumbre. Es un algoritmo recursivo.
El filtro de Kalman utiliza un modelo dinámico del sistema, como el obtenido mediante la
física del modelo, y múltiples medidas secuenciales, por ejemplo de varios sensores, para estimar el
estado del sistema. Todas las medidas y cálculos basados en modelos son estimados en algún grado.
El algoritmo utiliza una media ponderada para estimar la predicción. Las ponderaciones son
calculadas de la covarianza, una medida de la incertidumbre estimada de la predicción del estado del
sistema. El resultado es un nuevo estado que se encuentra entre el estado predicho y el medido, y que
tiene menor incertidumbre que cada uno por separado. El proceso se repite en cada paso, con la nueva
estimación y su covarianza para la predicción utilizada en la siguiente iteración.
Debido a que la precisión de ciertas medidas es normalmente difícil de medir, es común que
el comportamiento del filtro se discuta en términos de ganancia. La ganancia de Kalman es una
función de las certidumbres relativas de las medidas y la estimación del estado actual [14]. Con una
ganancia alta, el filtro pondera más las medidas, mientras que con una ganancia baja se ponderan más
las predicciones del modelo. En el extremo, cuando la ganancia vale uno el filtro ignora el estado
estimado por completo mientras que una ganancia de cero ignora por completo las medidas.
Auscultación con filtro de Kalman
58
4.2. Algoritmo e implementación
La implementación del algoritmo del filtro de Kalman toma de partida los modelos dinámico
y de observación del sistema [15]. Para ello se determinan las que serán variables de estado, aquellas
que permiten definir el estado del sistema considerado, y se agrupan en el vector de estado. El modelo
dinámico viene representado por un sistema de ecuaciones diferenciales y define el comportamiento
físico del sistema, toma la forma siguiente:
tttt wuxfx ,, (60)
Donde x es el vector de estado, u es el vector de entradas del sistema y w corresponde al ruido
que afecta al modelo dinámico. El ruido se representa por una variable independiente que sigue una
distribución probabilística normal:
QNp ,0~w
En el caso de la auscultación se tomarán como variables de estado la posición del punto medio
y el ángulo de inclinación. El modelo dinámico que se empleará es de 0tx , es decir, considerar
que el perfil vertical no varía con el tiempo. La congruencia con la auscultación se consigue al
considerar la función de ruido del sistema dinámico de varianza equivalente a la del perfil real, lo que
permitirá ponderar el modelo dinámico en su justa medida.
Por otra parte se establece el modelo de observación, que representa la relación entre el estado
real del sistema y las medidas que se obtienen. Se describe por la siguiente ecuación:
ttt vxhz , (61)
Donde z es el vector de observación y v corresponde al ruido de la medida, que sigue también
una distribución probabilística normal independiente del otro ruido:
RNp ,0~v
Para el sistema concreto se emplean las medidas de los sensores, es decir, aceleración y
velocidad angular, x y respectivamente. Esto conlleva el uso de 3 puntos para el perfil vertical y
2 para el ángulo, para el cómputo de las correspondientes derivadas numéricas asociadas a las
medidas en cada caso. El ruido asociado a las medidas se caracteriza con una varianza igual a la de
los correspondientes sensores.
Los modelos descritos anteriormente se representan en un sistema lineal del tipo:
59
tttttt
tttttt
vuDxHy
wuBxAx
(62)
Donde y es el vector de salida, A es la matriz de estados, B es la matriz de entrada, H es la
matriz de salida de mediciones y D es la matriz de transmisión directa, que se toma como nula.
Para ser aplicable a pasos de tiempo finitos se discretizan las ecuaciones. Si los pasos de
tiempo son más pequeños la solución se aproximará mejor. Las ecuaciones discretizadas quedan en
forma general:
kkk
kkkk
vHxz
wBuAxx
111 (63)
El sistema de auscultación se define entonces como sigue. El vector de estados será:
1
2
1
i
i
i
i
i
x
x
x
x
Y el vector de observación:
xz
Las ecuaciones del modelo dinámico, aparte de considerar el perfil constante, actualizan los
puntos en valores anteriores como el estado calculado en el paso anterior, quedando discretizadas de
la siguiente forma:
0
0
0
01000
01000
00010
00001
00001
1
1
1
k
x
k
kk
w
w
xx (64)
Donde las ecuaciones de actualización de los puntos son exactas por lo que no incorporan
ruido. Las ecuaciones del modelo de observación consistirían en las derivadas:
g
k
a
k
kki
k
i
k
i
k
i
k
i
k
kv
v
tt
ttt
t
t
xxx
xvz11
000
001212
222
1
2
21
(65)
Auscultación con filtro de Kalman
60
Las matrices a emplear en el algoritmo serán por tanto las siguientes:
01000
01000
00010
00001
00001
A ,
tt
ttt11
000
00121
222
H ,
00000
0000
00000
00000
0000
V
xV
Q ,
gV
aV
0
0R
Con el filtro modelado el primer paso del algoritmo es la predicción. El estado predicho, o a
priori, se calcula desde el estado anterior utilizando la ecuación del modelo discretizada, omitiendo
el término del ruido:
11ˆˆ
kkk BuxAx (66)
También es necesario estimar la matriz de covarianza, tal que:
QAAPP
T
kk 1 (67)
Con la predicción hecha se pasa a la corrección, donde se obtiene la estimación del vector de
estado a posteriori. Primero se calcula la mencionada ganancia de Kalman:
1 RHHPHPKT
k
T
kk (68)
A continuación se estima el vector de estados mediante una corrección de la predicción, para
lo que se usa la ganancia de Kalman, la medida realizada y la predicción realizada:
kkkkk xHzKxx ˆˆˆ (69)
Por último se calcula la covarianza a posteriori, que se utilizará en la siguiente iteración:
kkk PHKIP (70)
El primer paso en el algoritmo es establecer los valores iniciales para el vector de estados y la
matriz de covarianzas. Es conveniente que el valor inicial establecido para la covarianza no sea cero,
ya que esto supondría asumir que el vector de estados supuesto es correcto y acarrearía una
61
convergencia más lenta [16]. Sin embargo, en este caso se hará cero para ponderar más la medida de
los sensores, ya que el modelo se ha definido con una varianza muy alta:
0
0
0
0
0
0x ,
00000
00000
00000
00000
00000
0P
Una condición necesaria pero no suficiente para que el filtro de Kalman funcione
correctamente es que el sistema cuyos estados quieren ser estimados sea observable. La
observabilidad se cumple si existe un número finito de pasos de integración tal que conociendo la
secuencia de entradas y salidas es suficiente para determinar el estado inicial del sistema. Para
comprobarlo se toma el modelo del sistema con entradas nulas por simplicidad, y se desarrollan n
pasos de integración:
0
1
1
011
00
xHAz
HAxHxz
Hxz
n
n
(71)
Que puede expresarse como:
1
1
0
00
1
n
n z
z
z
Oxx
HA
HA
H
(72)
Donde O es la denominada matriz de observación:
1nHA
HA
H
O
Para que el sistema sea observable la matriz de observación debe tener rango igual al número
de estados del sistema.
En este caso el rango de dicha matriz, es decir el índice de observabilidad, es de 3, lo cual es
menor de 5, por lo que en teoría no sería observable. Sin embargo, dicho índice indica el máximo de
variables observables y controlables a partir de las mediciones, y en este caso no es necesario
Auscultación con filtro de Kalman
62
conocerlas todas, ya que algunas son simplemente otras en pasos anteriores. Para comprobar si es
suficiente se implementa el filtro de Kalman y se comprueba que arroja resultados congruentes, por
lo que no parece ser determinante. Con el filtro modelado se implementa en Matlab según el código
adjunto en el anexo M.
A continuación se exponen los resultados obtenidos por esta vía.
63
4.3. Resultados
A continuación se muestran los resultados de la auscultación con filtro de Kalman. Se
empleará en el recorrido con velocidad variable. Primero se muestran los resultados sin tener en
cuenta los errores de los sensores, por lo que la ponderación de las medidas será mayor. Los perfiles
real y auscultado de esta forma se observan superpuestos en las gráficas de la Fig 4-1.
Fig 4-1. Perfil calculado con interpolación para velocidad variable y errores de medición
El error medio respecto al perfil real resulta de 51011,3 m o 59,64%. Para tener una visión más
completa se observan las funciones en el dominio de la frecuencia y de coherencia. La comparación de
las PSDs de ambos perfiles se observa en la Fig 4-2.
Fig 4-2. PSDs de ambos perfiles
Y las funciones de coherencia en la Fig 4-3.
Auscultación con filtro de Kalman
64
Fig 4-3. Funciones de coherencia
Donde se observa una clara discrepancia a pesar del aparente ajuste de los perfiles. A continuación
se considerarán para los sensores errores de entre el 1% y el 5% de los valores medios y se actualizarán
las matrices de covarianzas del algoritmo para tenerlo en cuenta. Estos resultados se muestran en la Fig
4-4.
Fig 4-4. Perfil calculado con Kalman para velocidad variable y errores de medición
El error medio respecto al perfil real resulta de 51092,4 m o 94,36%. Para tener una visión más
completa se observan las funciones en el dominio de la frecuencia y de coherencia. La comparación de
las PSDs de ambos perfiles se muestra en la Fig 4-5.
65
Fig 4-5. PSDs de ambos perfiles
Y las funciones de coherencia en la Fig 4-6.
Fig 4-6. Funciones de coherencia
Se puede ver que al aplicar el filtro considerando errores en las medidas la auscultación no es
capaz de ajustar con el mismo detalle las frecuencias altas. Las funciones de coherencia muestran patrones
similares al caso anterior, a pesar del ajuste que se observa en la comparativa geométrica.
Comparación y conclusiones
66
5. COMPARACIÓN Y CONCLUSIONES
n este caso la validación real resulta complicada por no disponer de un vehículo ferroviario
con los instrumentos y sensores necesarios. Sin embargo, los resultados obtenidos con la vía
virtual permiten extrapolar muchas de las conclusiones obtenidas, teniendo en cuenta que las
diferencias son principalmente referentes a la naturaleza de los sensores empleados y la frecuencia
real de muestreo.
A continuación se muestran comparativas del algoritmo del trabajo actual con resultados
publicados en documentos y artículos con algoritmos de auscultación para sistemas similares.
El primero establece un algoritmo de auscultación también para dos sensores, acelerómetro y
giróscopo, también con señales corrompidas con error, pero situados directamente sobre un eje en lugar
del centro del vehículo. El algoritmo de fusión que emplea consiste en un filtro complementario que
combina las medidas del acelerómetro para frecuencias altas con las del giróscopo para frecuencias bajas.
Los perfiles para velocidad constante se muestran en las Fig 5-1 y Fig 5-2.
Fig 5-1. Perfil calculado con filtro complementario y corrupción de medidas
E
67
Fig 5-2. Perfil calculado con algoritmo actual incluyendo corrupción de medidas
Donde el perfil calculado mediante la fusión tratada en este trabajo parece adecuarse mejor al real,
al menos geométricamente. Para analizarlo en frecuencia se muestran las PSDs y coherencia en la Fig 5-
3.
Fig 5-3. PSDs con filtro complementario (izda) y actual (dcha) incluyendo corrupción de medidas
Las funciones de coherencia de la fusión con filtro complementario se muestran en la Fig 5-4.
Fig 5-4. Funciones de coherencia del filtro complementario
Y las del algoritmo del presente trabajo en la Fig 5-5.
Comparación y conclusiones
68
Fig 5-5. Funciones de coherencia con el algoritmo actual
Se observan similitudes en las PSDs, ya que ambas tienen un rango similar de mejor ajuste de la
auscultación. Las funciones de coherencia parecen indicar un mejor ajuste para el algoritmo actual, sobre
todo a bajas frecuencias. Sin embargo, para frecuencias más altas aparecen una serie de picos en ambos,
aunque menos pronunciados para el filtro complementario. A continuación, en las Fig 5-6, Fig 5-7, Fig
5-8 y Fig 5-9 se comparan los resultados para velocidad variable de la publicación con los obtenidos en
este trabajo utilizando el filtro adaptativo.
Fig 5-6. Comparación de perfiles con filtro complementario (izda) y adaptativo (dcha)
Fig 5-7. PSDs con filtro complementario (izda) y adaptativo (dcha)
69
Fig 5-8. Funciones de coherencia con filtro complementario
Fig 5-9. Funciones de coherencia con filtro adaptativo
Donde se observa una mejor aproximación de nuevo para el algoritmo utilizado en este trabajo
con el filtro adaptativo. Las funciones de coherencia muestran claramente la diferencia.
Sin embargo, hay que tener en cuenta que es posible que en dichas diferencias influyan otros
factores aparte de los mencionados y que los resultados obtenidos por los distintos algoritmos aplicados
al mismo muestreo no mostraran diferencias tan acusadas.
Para tener una referencia de comparación del filtro de Kalman, a continuación se muestra otra
comparativa en las Fig 5-10 y Fig 5-11 con un artículo [17] en el que también se ha empleado el filtro de
Kalman para la auscultación, considerando velocidad variable.
Fig 5-10. Perfil calculado con Kalman del artículo (izda) y el actual (dcha)
Comparación y conclusiones
70
Fig 5-11. PSDs del artículo (izda) y el actual (dcha)
Donde se observa un aparente mejor ajuste de la geometría a simple vista, mientras que el análisis
de las PSDs revela que para las altas frecuencias la discrepancia del Kalman implementado aquí es mayor.
Por último se enumeran una serie de aspectos y trabajo futuro que quedan fuera del alcance de
este trabajo pero cuyo desarrollo sería interesante contemplar:
- Mejoras en los distintos algoritmos que contemplen la velocidad variable para extender la
eficiencia a mayor rango de velocidades.
- Tener en cuenta la ausencia de contacto directo con el perfil en algunos tramos de modo que
puedan ser identificados, presumiblemente mediante simulación dinámica en tiempo real,
especialmente cuando se ausculta la alineación.
- Contemplar la geometría real de la rueda modificando las ecuaciones para comprobar el efecto
que puede tener en la auscultación.
- Determinar un algoritmo genérico de auscultación en función de la posición de los sensores,
acelerómetro y giróscopo, en el vehículo o bogie.
- Considerar el uso de varios sensores en distintos puntos, especialmente empleando Kalman,
de modo que permitan mayor eficiencia en la auscultación, y diseñar un sistema para optimizar
el número y distribución de los mismos.
- Ampliar el algoritmo de Kalman para el uso de sensores adicionales que permitan
complementar mejor las medidas, como GPS y sensores láser, de forma similar a [18].
- Establecer a partir de un modelo dinámico un sistema de decisión en tiempo real que permita
comunicarse con el vehículo para indicar posibles zonas de riesgo para el material rodante e
incluso disminuir la marcha o parar.
71
REFERENCIAS
[1] Bonaventura C.S, Zarembski, A.M y Palese, J.W, “Tracksafe: a track geometry car based realtime
dynamics simulator”, Proceedings of JRC2005, Pueblo, Colorado, 2005.
[2] Charles, G, Goodall, R, Dixon, R, “Model-based condition monitoring at the wheel-rail interface”,
Vehicle System Dynamics, 46, Supplement, 415-430, 2008.
[3] Stuart L. Grassie, “Measurement of railhead longitudinal profiles: a comparison of different
techniques”, Wear, 191, 245-251, 1996.
[4] Ward, C.P., Goodall, R.M., Dixon, R., “Contact force estimation in the railway vehicle wheel-rail
interface”, 18 IFAC Word Congress, Milano, Italy, 2011.
[5] Garg, V.K. y Dukkipati, R.V., Dynamics of railway vehicle systems, Academic Press Canada,
1984.
[6] Li, M.X.D, Berggren, E.G, Berg, M. y Persson, I., “Assessing track geometry quality based on
wavelength spectra and track-vehicle dynamic interaction”, Vehicle System Dynamics, 46, Suppl.,
261-276, 2008.
[7] Norma Española UNE-EN 13848, “Aplicaciones Ferroviarias. Vía. Calidad de la Geometría de la
Vía”, Aenor, 2009.
[8] Department of Transportation – Federal Railroad Administration – Office of Safety, “Track safety
standards, Part 213, Subpart G, Class of Track 6 and Higuer”, Simmons-Boardman Books, Inc.,1998.
[9] Kane, T. R. “Fundamental kinematical relationships for the single-track vehicles”, International
Journal of Mechanical Sciences, 17, pp. 499-504, 1975.
[10] Sen M. Kuo, Bob H. Lee, Wenshun Tian, Real-Time Digital Signal Processing: Implementations
and Applications, John Wiley & Sons, 2006.
[11] Escalona, J.L., “Vertical track geometry monitoring using inertial sensors and complementary
filters”, Proceedings of the IDETC/CIE 2016, August 21-24, 2016, Charlotte, NC, paper DETC2016-
59477, 2016.
[12] Charles, G, Goodall, R, Dixon, R, “Wheel-Rail Profile Estimation”, International Conference
on Railway Condition Monitoring, November, Birmingham, UK 32-37, 2006.
Referencias
72
[13] Kalman, R. E. 1960. “A New Approach to Linear Filtering and Prediction Problems”,
Transaction of the ASME, Journal of Basic Engineering, pp. 35-45 (March 1960).
[14] Greg Welch, Gary Bishop, “An Introduction to the Kalman Filter”, Course 8, SIGGRAPH 2001.
[15] Grewal, M.S, Andrews, A.P, Kalman filtering: theory and practice, Prentice Hall, 1993.
[16] Brookner, E, Tracking and Kalman filtering made easy, John Wiley & Sons, 1998.
[17] Andrés F. Hidalgo, Javier Ros, José Luís Escalona, “A Kalman filter-based algorithm for IMU
signals fusion applied to track geometry estimation”, ECCOMAS Thematic Conference on Multibody
Dynamics, June 29 – July 2, 2015.
[18] Smith, A, Wu, M, “Multi-rate Kalman filtering for the data diffusion of displacement and
acceleration response measurements in dynamic system monitoring”, Mechanical System and Signal
Processing, 21, 706-723, 2007.
73
Anexos
Anexo A Filtros FIR y IIR
Un filtro digital discreto puede clasificarse como FIR o filtro de respuesta finita a impulso y
filtro IIR o filtro de respuesta infinita a impulso. Un filtro FIR causal tiene la forma:
1
0
L
l
l lnxbny
La longitud de la respuesta a impulso es un número finito de términos, L, y sus coeficientes
son idénticos a los coeficientes de la respuesta al impulso. Para obtener la salida sólo se basan en
entradas actuales y anteriores. Un ejemplo de este tipo de filtros sería una media móvil.
En un filtro IIR la salida depende no sólo de las entradas sino también de las respuestas en
instantes anteriores, por lo que tendría una respuesta infinita para la entrada de impulso. Un filtro
IIR causal tiene la forma siguiente:
M
m
m
L
l
l mnyalnxbny1
1
0
Como las salidas son realimentadas y combinadas con las entradas estos sistemas son
sistemas de realimentación. Los filtros FIR son un caso particular de filtros IIR en los que no hay
realimentación.
74
Anexo B Transformada Z
Para el análisis de señales de sistemas continuos se emplea comúnmente la transformada de
Laplace. Para sistemas discretos, la transformada correspondiente a la transformada de Laplace es la
transformada Z.
La transformada Z convierte una señal definida en el dominio del tiempo discreto nx en
una función en el dominio de la frecuencia compleja zX . La transformada Z de una señal digital
se define como la siguiente serie:
n
nznxnxZzX }{
Esta definición se denomina como transformada Z bilateral. Para señales causales, la
definición empleada es la de transformada Z unilateral, que se define como:
0
}{n
nznxnxZzX
Sólo existe transformada Z en la región donde esta serie converge. Dicha región es la región
de convergencia, ROC, una región del plano complejo donde la transformada Z tiene una suma
finita.
La transformada Z tiene inversa, conocida como la transformada Z inversa, y se define
como:
C
n dzzzXj
zXZnx 11
2
1}{
Donde C denota un círculo cerrado que envuelve el origen y la región de convergencia en
sentido contrario a las agujas del reloj. Hay varios métodos para calcular la transformada Z inversa.
La transformada Z tiene tres propiedades que serán útiles para el tratamiento de señales
discretas:
- Linealidad (superposición): la transformada Z de la suma de dos señales es la suma de
las transformadas Z de las dos señales, como se observa a continuación:
zXazXaznxaznxaznxanxazXn
n
n
n
n
n
221122112211
75
- Desplazamiento en el tiempo: debido a que la señal de entrada es nula para instantes
negativos, la transformada Z de una señal desplazada en el tiempo un periodo k será:
)(0
)(
0
zXzzjxzzjxzzjxzknxzX k
j
jk
kj
jk
kj
kj
n
n
k
- Convolución: la transformada Z de la convolución de dos señales es el producto de las
transformadas Z de las dos señales, como se observa a continuación:
zXzXznxzlx
zlnxlxzlnxlxznxnxzX
n
n
l
l
l
n
nn
n
ln
n
2121
212121
Para aplicar la transformada Z a un filtro genérico IIR es necesario tener en cuenta las
propiedades de linealidad y desplazamiento en el tiempo. Esto conduce a la siguiente expresión:
M
m
m
m
L
l
l
l
M
m n
n
m
L
l n
n
l
n
n
M
m
m
L
l
l
zYzazXzb
zmnyazlnxbzmnyalnxbzY
1
1
0
1 0
1
0 00 1
1
0
Reordenando los términos, la función de transferencia del filtro IIR sería:
)()()(
11
1
0 zXzHzX
za
zb
zYM
m
m
m
L
l
l
l
76
Anexo C Transformación bilineal
El filtro se aplica mediante la siguiente ecuación de entrada/salida:
M
m
m
L
l
l mnyalnxbny1
1
0
El problema de diseñar filtros IIR es determinar la función en el dominio de z a partir de la función de
transferencia del filtro en el dominio de s. Hay dos métodos para obtenerlo, el método del impulso invariante y la
transformación bilineal. Esta última es la que se va a emplear.
Para transformar la representación en tiempo continuo de las señales en tiempo discreto y
viceversa, se utiliza la transformada bilineal. Permite convertir una función de transferencia de un
filtro lineal e invariante en el tiempo, definido en el dominio continuo del tiempo, en una función de
transferencia perteneciente a un filtro definido en el dominio discreto del tiempo. Para pasar de
Laplace a Z, se define la transformación bilineal como:
1
1
1
12
1
12
z
z
Tz
z
Ts
Donde T es el periodo de muestreo. Hay una relación directa entre la frecuencia del plano s ( js ) y
la frecuencia del plano z ( jez ). Sustituyendo en la ecuación anterior:
)2/tan(2
)2/cos(
)2/sin(22
1
122/2/
2/2/
Tj
Tj
ee
ee
Te
e
Tj
jj
jj
j
j
2tan2)2/tan(
2 1 T
T
Esto muestra que cada punto del plano s es mapeado de forma única en el plano z, por lo que las
frecuencias transformadas de tiempo discreto a tiempo continuo son íntegramente mapeadas por la transformación
bilineal.
77
Anexo D Cálculo numérico de medidas IMU simuladas
%%%%%%%%%%%%%%%%%%%%%%%% % AUSCULTACIÓN FOURIER % %%%%%%%%%%%%%%%%%%%%%%%%
load IrrVia.txt
dist=IrrVia(:,1); yl=IrrVia(:,2);
%% Medidas IMU %%
v=20; %velocidad (m/s) L=5; %longitud vehículo (m) h=dist(2)-dist(1); Lp=L/h; distt=dist(Lp/2+1:length(dist)-Lp/2); %longitud recorrida por el centro
del vehículo disty=dist(Lp+1:length(dist)); %lonitud recorrida por la rueda delantera
del vehículo
x=(yl(Lp+1:length(yl))+yl(1:length(yl)-Lp))/2; %desplazamiento vertical
real del acelerómetro % x(1)=x(2); %Error theta=(yl(Lp+1:length(yl))-yl(1:length(yl)-Lp))/L; %giro real del
acelerómetro
xd=diff(x)/h; xd=[xd;xd(length(xd))]; % derivada espacial numérica de x thetad=[diff(theta);0]/h; % derivada espacial numérica de theta
xdd=[diff(xd);0]/h; % segunda derivada espacial numérica de x
acel=xdd*v^2; % aceleración vertical real medida por el acelerómetro vela=thetad*v; % velocidad angular real medida por el giróscopo
78
Anexo E Auscultación mediante Fourier con truncamiento inferior independiente
%%%%%%%%%%%%%%%%%%%%%%%% % AUSCULTACIÓN FOURIER % %%%%%%%%%%%%%%%%%%%%%%%%
%% Cálculo mediante Fourier %%
xddf=acel/v^2; % segunda derivada espacial de x thetadf=vela/v; % derivada espacial de theta
A=fft(xddf); % Transformada de Fourier de x'' Om=fft(thetadf); % Transformada de Fourier de theta'
w=(-(length(distt)-1)/2:(length(distt)-1)/2)*2*pi/length(distt)/h; %
Vector de frecuencias
% Reordenación de los vectores A=[A((length(A)-1)/2+2:length(A));A(1:(length(A)-1)/2+1)]; Om=[Om((length(Om)-1)/2+2:length(Om));Om(1:(length(Om)-1)/2+1)];
%% Truncamiento inferior %%
for k=1:length(w) T1(k)=-1/2*(1+exp(-1i*w(k)*L))*w(k)^2; T2(k)=1i/L*(1-exp(-1i*w(k)*L))*w(k); if abs(T1(k))<0.001 % Truncamiento en 0,001 T1(k)=0.001*(cos(angle(T1(k)))+1i*sin(angle(T1(k)))); end if abs(T2(k))<0.001 T2(k)=0.001*(cos(angle(T2(k)))+1i*sin(angle(T2(k)))); end end
Y1=A./T1.'; Y2=Om./T2.';
% Ordenación de los vectores para aplicar la antitransformada Y1=[Y1(length(Y1)-((length(Y1)-1)/2):length(Y1));Y1(1:length(Y1)-
((length(Y1)-1)/2+1))]; Y2=[Y2(length(Y2)-((length(Y2)-1)/2):length(Y2));Y2(1:length(Y2)-
((length(Y2)-1)/2+1))];
y1=ifft(Y1); % Perfil generado a partir del acelerómetro y2=ifft(Y2); % Perfil generado a partir del giróscopo
plot(dist,yl,disty,y1,'r',disty,y2,'g') title('Perfil real y calculado') xlabel('s') ylabel('y') legend('Perfil real','Acelerómetro','Giróscopo')
%%%%
79
Anexo F Auscultación mediante Fourier con fusión de sensores
%%%%%%%%%%%%%%%%%%%%%%%% % AUSCULTACIÓN FOURIER % %%%%%%%%%%%%%%%%%%%%%%%%
%% Cálculo mediante Fourier %%
xddf=acel/v^2; % segunda derivada espacial de x thetadf=vela/v; % derivada espacial de theta
A=fft(xddf); % Transformada de Fourier de x'' Om=fft(thetadf); % Transformada de Fourier de theta'
w=(-(length(distt)-1)/2:(length(distt)-1)/2)*2*pi/length(distt)/h; %
Vector de frecuencias
% Reordenación de los vectores A=[A((length(A)-1)/2+2:length(A));A(1:(length(A)-1)/2+1)]; Om=[Om((length(Om)-1)/2+2:length(Om));Om(1:(length(Om)-1)/2+1)];
%% Fusión de sensores %%
for k=1:length(w) T1(k)=-1/2*(1+exp(-1i*w(k)*L))*w(k)^2; T2(k)=1i/L*(1-exp(-1i*w(k)*L))*w(k); if abs(T1(k))<0.001 && abs(T2(k))<0.001 % Truncamiento de ambas Y(k)=A(k)/(0.001*(cos(angle(T1(k)))+1i*sin(angle(T1(k))))); else if abs(T1(k))>abs(100*T2(k)) % Selección de función de
transferencia Y(k)=A(k)/T1(k); else Y(k)=Om(k)/T2(k); end end end
% Ordenación para aplicar la antitransformada Y=[Y(length(Y)-((length(Y)-1)/2):length(Y)),Y(1:length(Y)-((length(Y)-
1)/2+1))];
y=ifft(Y);
figure plot(dist,yl,disty,y,'r') title('Perfil real y calculado') xlabel('s') ylabel('y') legend('Perfil real','Perfil calculado')
dif=yl(Lp+1:length(dist))-y.'; difme=mean(abs(dif(10000:90000))); figure plot(disty,dif) title('Error del perfil') xlabel('s') ylabel('error')
%%%%
80
Anexo G Auscultación con filtro mediante transformada Z con fusión de sensores
%%%%%%%%%%%%%%%%%%%%%%% % AUSCULTACIÓN FILTRO % %%%%%%%%%%%%%%%%%%%%%%%
%% Transformada Z %%
[num1,den1]=bilinear(1,[v^2 0 0],1/h); % Transformación bilineal para
obtener el filtro para la función de transferencia de la posición [num2,den2]=bilinear(1,[v 0],1/h); % Transformación bilineal para obtener
el filtro para la función de transferencia del giro [num3,den3]=butter(1,0.001,'high'); % Filtro paso alto para disminuir el
error de integración
xm=filter(num1,den1,acel); % Aplicación del filtro para cálculo de
posición xm=filter(num3,den3,xm); % Aplicación del filtro paso alto para la
posición thetam=filter(num2,den2,vela); % Aplicación del filtro para cálculo de
giro
corran=mean((thetam(1:length(xm)-Lp)+thetam(Lp:length(xm)-
1)+(xm(1:length(xm)-Lp)-xm(Lp:length(xm)-1))*2/L)/2); % Cálculo del error
del ángulo thetam=thetam-corran;
y=xm-thetam*L/2; % Determinación del perfil a partir de los datos del
centro y(length(y):length(y)+Lp)=xm(length(xm)-
Lp:length(xm))+thetam(length(thetam)-Lp:length(thetam))*L/2; %
Determinación del perfil en la longitud L final del recorrido y=y+mean(yl-y); % Traslación de la función para obviar el error de media
81
Anexo H Corrupción de medidas y análisis en frecuencia
%% Corrupción de medidas %%
bias_acel = 0.04*mean(acel); var_acel = 0.01*mean(acel);
bias_vela = -0.05*mean(vela); var_vela = 0.03*mean(vela);
acel_clean = acel; vela_clean = vela;
acel = acel+bias_acel+sqrt(abs(var_acel))*randn(length(acel),1); vela = vela+bias_vela+sqrt(abs(var_vela))*randn(length(vela),1);
%% Análisis en frecuencia %%
% Power Spectral Density [Pxx F] = pwelch(yl); [Pxx_f F_f] = pwelch(y); figure(4) loglog((1/(2*h*pi))*F,Pxx,'b',(1/(2*h*pi))*F_f,Pxx_f,'k') title('PSDs del perfil real y calculado'); xlabel('Frecuencia espacial (1/m)'); ylabel('Cuadrado de la amplitud (m^2/(1/m))') legend('Perfil real','Perfil calculado')
% Coherencia csd_f = cpsd(yl,y); coh_f = abs(csd_f).^2./(Pxx.*Pxx_f); phase_f = atan2(-imag(csd_f),real(csd_f))*180/pi;
figure(5) plot(F,coh_f) title('Función de coherencia'); xlabel('Frecuencia'); ylabel('Coherencia') axis([0 0.5 0 1.3]);
figure(6) plot(F,phase_f) title('Coherencia de fase'); xlabel('Frecuencia'); ylabel('Coherencia de fase (º)') axis([0 0.5 -200 280]);
82
Anexo I Auscultación para velocidad variable con filtro adaptativo
load odom.txt; tod = odom(1:8901,1); % Tiempo sod = odom(1:8901,2); % Posición vod = odom(1:8901,3); % Velocidad de avance aod = [0; diff(vod)/(tod(2)-tod(1))]; % Aceleración de avance
% Remuestreo en s i=2; while i<length(sod) if abs(sod(i)-sod(i-1))<0.01 sod(i)=[]; tod(i)=[]; vod(i)=[]; aod(i)=[]; i=i-1; end i=i+1; end
vis = interp1(sod,vod,distt,'linear','extrap'); ais = interp1(sod,aod,distt,'linear','extrap');
% Mediciones de los sensores acel=xdd.*vis.^2+xd.*ais; vela=thetad.*vis;
for i=1:length(vis) [num1,den1]=bilinear(1,[vis(i)^2 ais(i) 0],1/h); [num2,den2]=bilinear(1,[vis(i) 0],1/h);
if i==1 xm(i)=num1(1)*acel(i); thetam(i)=num2(1)*vela(i); end
if i==2 xm(i)=num1(1)*acel(i)+num1(2)*acel(i-1)-den1(2)*xm(i-1); thetam(i)=num2(1)*vela(i)+num2(2)*vela(i-1)-den2(2)*thetam(i-1); end
if i>2 xm(i)=num1(1)*acel(i)+num1(2)*acel(i-1)+num1(3)*acel(i-2)-
den1(2)*xm(i-1)-den1(3)*xm(i-2); thetam(i)=num2(1)*vela(i)+num2(2)*vela(i-1)-den2(2)*thetam(i-1); end end
83
Anexo J Auscultación para velocidad variable con extrapolación lineal
% Remuestreo en t
sodt=sod(Lp/2+1:length(sod)-Lp/2); vodt=vod(Lp/2+1:length(vod)-Lp/2); aodt=aod(Lp/2+1:length(aod)-Lp/2); ylod = interp1(dist,yl,sod,'linear','extrap'); xdod = interp1(distt,xd,sodt,'linear','extrap'); xddod = interp1(distt,xdd,sodt,'linear','extrap'); thetaod = interp1(distt,theta,sodt,'linear','extrap'); thetadod = interp1(distt,thetad,sodt,'linear','extrap');
% Mediciones de los sensores
acel=xddod.*vodt.^2+xdod.*aodt; vela=thetadod.*vodt;
% Cálculo acelerómetro
xm(1:2)=[0 0]; for i=3:length(sodt) if vod(i)<0.5 vi=0.5; else vi=vod(i); end x_2=xm(i-2); x_1=xm(i-1); s_2=sod(i-2); s_1=sod(i-1); si=sod(i); ai=aod(i); aceli=acel(i); xmnum=aceli+(vi^2)*(x_1/(si-s_1)^2+(x_1-x_2)/((s_1-s_2)*(si-
s_1)))+ai*(x_1/(si-s_1)); xmden=(vi^2)/(si-s_1)^2+ai/(si-s_1); xm(i)=xmnum/xmden; if 0*xm(i)~=0 xm(i)=0; % Hace cero los valores NaN end end [num3,den3]=butter(3,0.001,'high'); xm=filter(num3,den3,xm); % Aplicación del filtro paso alto para la
posición
% Cálculo giróscopo
thetam(1)=0; for i=2:length(sodt) if vod(i)<0.5 vi=0.5; else vi=vod(i); end th_1=thetam(i-1); s_1=sod(i-1); si=sod(i); ai=aod(i); velai=vela(i); thetam(i)=(velai+vi*th_1/(si-s_1))/(vi/(si-s_1)); if 0*thetam(i)~=0 thetam(i)=0; % Hace cero los valores NaN end end
84
Anexo K Cálculo simbólico de la extrapolación cuadrática
% Cálculo simbólico
syms fi f_1 f_2 si s_1 s_2 real
% Matriz del sistema original M(1,1:3) = [(si-s_2)^2 si-s_2 1]; M(2,1:3) = [(s_1-s_2)^2 s_1-s_2 1]; M(3,1:3) = [0 0 1];
% Valores de la función en los 3 puntos ff = [fi f_1 f_2]';
% Resolución y cálculo de coeficientes del polinomio xx = M\ff; A = xx(1); B = xx(2); C = xx(3);
% Cálculo de coeficientes de la matriz Ai = diff(A,fi); A_1 = diff(A,f_1); A_2 = diff(A,f_2); Bi = diff(B,fi); B_1 = diff(B,f_1); B_2 = diff(B,f_2);
% Derivadas del polinomio df = 2*A*(si-s_2)+B; ddf = 2*A;
%%%%%%%%%%%%%%%%%%%%% % Para acelerómetro % %%%%%%%%%%%%%%%%%%%%%
C1 = (2*(si-s_2)*(A_1*f_1+A_2*f_2)+(B_1*f_1+B_2*f_2))*ai; C2 = 2*(A_1*f_1+A_2*f_2)*vi^2;
xm = simplify((aceli-C1-C2)/((2*(si-s_2)*Ai+Bi)*ai+2*Ai*vi^2));
%%%%%%%%%%%%%%%%%% % Para giróscopo % %%%%%%%%%%%%%%%%%%
thetam = simplify((velai-(2*(si-
s_2)*(A_1*f_1+A_2*f_2)+(B_1*f_1+B_2*f_2))*vi)/((2*(si-s_2)*Ai+Bi)*vi));
%%%%%%%%%%%%%%%%%%%%%
85
Anexo L Auscultación para velocidad variable con extrapolación cuadrática
% Remuestreo en t
sodt=sod(Lp/2+1:length(sod)-Lp/2); vodt=vod(Lp/2+1:length(vod)-Lp/2); aodt=aod(Lp/2+1:length(aod)-Lp/2); ylod = interp1(dist,yl,sod,'linear','extrap'); xdod = interp1(distt,xd,sodt,'linear','extrap'); xddod = interp1(distt,xdd,sodt,'linear','extrap'); thetaod = interp1(distt,theta,sodt,'linear','extrap'); thetadod = interp1(distt,thetad,sodt,'linear','extrap');
% Mediciones de los sensores
acel=xddod.*vodt.^2+xdod.*aodt; vela=thetadod.*vodt;
% Cálculo por interpolación acelerómetro
xm(1:2)=[0 0]; for i=3:length(sodt) if vod(i)<0.5 vi=0.5; else vi=vod(i); end f_2=xm(i-2); f_1=xm(i-1); s_2=sod(i-2); s_1=sod(i-1); si=sod(i); ai=aod(i); aceli=acel(i); % Expresión calculada simbólicamente para el acelerómetro xm(i)=(aceli*s_1*s_2^2 - aceli*s_1^2*s_2 - aceli*s_1*si^2 +
aceli*s_1^2*si + aceli*s_2*si^2 - aceli*s_2^2*si + 2*f_1*s_2*vi^2 -
2*f_2*s_1*vi^2 - 2*f_1*si*vi^2 + 2*f_2*si*vi^2 - ai*f_1*s_2^2 +
ai*f_2*s_1^2 - ai*f_1*si^2 + ai*f_2*si^2 + 2*ai*f_1*s_2*si -
2*ai*f_2*s_1*si)/((s_1 - s_2)*(- 2*vi^2 + ai*s_1 + ai*s_2 - 2*ai*si)); if 0*xm(i)~=0 xm(i)=0; % Hace cero los valores NaN end end
% Cálculo por interpolación giróscopo
thetam(1:2)=[0 0]; for i=3:length(sodt) if vod(i)<0.5 vi=0.5; else vi=vod(i); end f_2=thetam(i-2); f_1=thetam(i-1); s_2=sod(i-2); s_1=sod(i-1); si=sod(i); ai=aod(i); velai=vela(i); % Expresión calculada simbólicamente para el giróscopo thetam(i)=(- velai*s_1^2*s_2 + velai*s_1^2*si + velai*s_1*s_2^2 -
velai*s_1*si^2 - velai*s_2^2*si + velai*s_2*si^2)/(vi*(s_1 - s_2)*(s_1 +
s_2 - 2*si)) - (f_1*s_2^2 - f_2*s_1^2 + f_1*si^2 - f_2*si^2 - 2*f_1*s_2*si
+ 2*f_2*s_1*si)/((s_1 - s_2)*(s_1 + s_2 - 2*si)); if 0*thetam(i)~=0 thetam(i)=0; % Hace cero los valores NaN end end
86
Anexo M Auscultación mediante filtro de Kalman
%% Filtro de Kalman %%
% Matriz de estados A=zeros(5); A([1,2,8,19,20])=ones(5,1);
% Matriz de mediciones dt=tod(2)-tod(1); H=[1/dt^2 -2/dt^2 1/dt^2 0 0; 0 0 0 1/dt -1/dt];
% Matriz de covarianzas modelo dinámico var_perfil=1e-5; var_pend=1e-10; Q=zeros(5); Q(1,1)=var_perfil; Q(4,4)=var_pend;
% Matriz de covarianzas modelo observación R=[var_acel, 0; 0 var_vela];
% Inicialización Pk=zeros(5); xk=zeros(5,1);
% Aplicación del algoritmo
for i=1:length(sodt)
% Predicción estado xk_=A*xk;
% Predicción covarianza Pk_=A*Pk*A.'+Q;
% Ganancia de Kalman S=H*Pk_*H.'+R; K=Pk_*H.'*inv(S);
% Corrección estado z(1)=acel(i); z(2)=vela(i); xk=xk_+K*(z.'-H*xk_);
% Corrección covarianza Pk=Pk_-K*H*Pk_;
% Almacena xm(i)=xk(1); thetam(i)=xk(4);
end