Prácticas identificación de sistemas
-
Upload
jaime-martinez-verdu -
Category
Documents
-
view
1.633 -
download
1
description
Transcript of Prácticas identificación de sistemas
MODELADO E IDENTIFICACIÓN DE SISTEMAS 5º INGENIERÍA INDUSTRIAL
PRÁCTICA 1
Filtrado de Señales: Análisis y diseño de filtros continuos
Curso 2004-2005
OBJETIVOS
• Diseño de filtros analógicos de Butterworth, Chebyshev y Bessel.
• Estudio de las características más importantes de los filtros anteriormente
citados por medio de diagramas de Bode.
• Utilización en simulación de los filtros propuestos ante señales con ruidos de
distintas frecuencias.
1.- DIAGRAMAS DE BODE.
El diagrama de Bode es una herramienta potente a la hora de interpretar y
analizar el comportamiento en frecuencia de un determinado sistema o filtro. Dicho
diagrama se compone de dos partes: el diagrama de magnitud y el de fase. En el primero
se representa el módulo de la función de transferencia asociada a un determinado
sistema, y en el segundo el argumento de dicha función.
En Matlab, el comando que nos permite obtener un diagrama de Bode de una
función de transferencia de un sistema continuo dado es el comando bode. Este
comando tiene la siguiente sintaxis:
bode(num,den)
donde num y den contienen los coeficientes en orden descendiente de potencias de s
del numerador y denominador de la función de transferencia.
Como se puede apreciar, no es necesario especificar el rango de frecuencias
sobre el cual queremos que se trace el diagrama, esto se realiza automáticamente. No
obstante se puede especificar dicho rango empleando el comando con la siguiente
sintaxis:
bode(num,den,w)
donde w es un vector que contiene (en rad/seg) las frecuencias para las que queremos
que se trace el diagrama.
NOTA: En Matlab, podemos crear vectores de datos de la siguiente forma:
nomvar=v_ini:incr:v_fin
donde v_ini es el valor inicial, incr el incremento de un valor a otro y v_fin el
valor final.
Además, es posible obtener los valores de la magnitud, la fase y la frecuencia
empleada con el fin de analizarlos numéricamente. Para esto basta con utilizar el
comando bode con la siguiente sintaxis:
[mag,phase,w]= bode(num,den)
De esta forma obtenemos en mag la magnitud en escala decimal, en phase la fase en
grados y en w las frecuencias empleadas en rad/seg.
Veamos un ejemplo:
Se quiere obtener el diagrama de bode de la siguiente función de transferencia:
G s ss
( ) = ++102
Para obtener el diagrama de bode correspondiente a esta función de transferencia
haremos:
» bode([1 10],[1 2])
con lo cual se obtiene la siguiente gráfica:
2
10-1
100
101
102
0
5
10
15
Frequency (rad/sec)
Gain (dB)
10-1
100
101
102
-30
0
Frequency (rad/sec)
Phase(deg)
Para obtener diagramas de bode de sistemas discretos, el comando a utilizar es :
dbode(num,den,T)
donde num y den contienen los coeficientes en orden descendiente de potencias de z
del numerador y denominador de la función de transferencia, y T el periodo de muestreo
de dicho sistema discreto. El resto de opciones (especificación del rango de frecuencias
y obtención de los valores numéricos de magnitud fase y rango de frecuencias) es
idéntico al caso continuo.
2.- Diseño de Filtros Analógicos con Matlab.
El paquete Matlab posee una librería denominada Signal Processing Toolbox.
Dicha librería incluye gran cantidad de funciones que permiten tanto diseñar como
estudiar la mayoría de los elementos relacionados con el procesamiento de señales,
entre ellos los filtros. Nos vamos a centrar pues en cómo diseñar filtros polinomiales
(Butterworth, Bessel y Chebyshev) mediante las funciones proporcionadas por dicha
librería.
2.1.- Diseño de filtros de Butterworth.
El diseño de un filtro de Butterworth continuo paso bajo en Matlab se realiza de
la siguiente forma : [b,a] = butter(N,Wc,’s’)
3
Este comando crea un filtro de Butterworth continuo paso bajo de orden N con una
frecuencia de corte Wc rad./seg. y devuelve en b y en a los coeficientes (en orden
descendente de potencias de s) asociados al numerador y denominador de la función de
transferencia resultante.
Por ejemplo, si deseamos diseñar un filtro de Butterworth de segundo orden y
frecuencia de corte 1 rad/seg, el comando sería : » [b,a]=butter(2,1,'s')
b =
0 0 1
a =
1.0000 1.4142 1.0000
Es posible también diseñar filtros de Butterworth paso alto, pasa banda y rechaza
banda :
• Paso Alto : [b,a] = butter(N,Wc,’high’,’s’)
• Pasa Banda : [b,a] = butter(N, Wc,’s’) con Wc=[w1,w2], deja pasar frecuencias
comprendidas entre w1 y w2.
• Rechaza Banda : [b,a] = butter(N,Wc,’stop’,’s’) con Wc=[w1,w2], rechaza
frecuencias comprendidas entre w1 y w2.
2.2.- Diseño de filtros de Chebyshev.
Para diseñar un filtro de Chebyshev continuo paso bajo utilizamos :
[b,a] = cheby1(N,R,Wc,’s’)
Con dicho comado se calcula un filtro de Chebyshev de orden N, con una oscilación
máxima de R decibelios en la banda de paso y frecuencia de corte Wc rad./seg.,
obteniendo en b y en a el numerador y denominador de la función de transferencia
asociada. De la misma forma podemos diseñar filtros de Chebyshev paso alto, pasa
banda y elimina banda de la siguiente forma :
• Paso Alto : [b,a] = cheby1(N,R,Wc,’high’,’s’)
4
• Pasa Banda : [b,a] = cheby1(N,R,Wc,’s’) con Wc=[w1,w2], deja pasar
frecuencias comprendidas entre w1 y w2.
• Rechaza Banda : [b,a] = chevy1(N,R,Wc,’stop’,’s’) con Wc=[w1,w2], rechaza
frecuencias comprendidas entre w1 y w2.
2.3.- Diseño de filtros de Bessel.
Para diseñar un filtro de Bessel continuo paso bajo utilizamos : [b,a] = besself(N,Wc)
Con este comando se calcula un filtro de Bessel continuo paso bajo de orden N y
frecuencia de corte Wc rad./seg., obteniendo en b y en a el numerador y denominador
de la función de transferencia del filtro calculado. Para calcular los restantes :
• Paso Alto : [b,a] = besself(N,Wc,’high’)
• Pasa Banda : [b,a] = besself(N,Wc) con Wc=[w1,w2], deja pasar frecuencias
comprendidas entre w1 y w2.
• Rechaza Banda : [b,a] = besself(N,Wc,’stop’) con Wc=[w1,w2], rechaza
frecuencias comprendidas entre w1 y w2.
Para más información tanto de estas funciones como de las restantes del Signal
Processing Toolbox se puede utilizar la ayuda en línea de Matlab (help signal o help
comando).
3.- Realización de la práctica.
Para realizar la práctica es necesario crear un esquema Simulink en el que se van a
probar por simulación los filtros que se diseñen. Este esquema es el siguiente :
5
++Sum
s filtradaTo Workspace
senyal
ruido
Filtro
senyalTo Workspace2
s ruidoTo Workspace1
Como vemos, se dispone de dos generadores de señal, uno que proporciona la señal
propiamente dicha (p.e. senoidal de frecuencia 2 rad./seg. y amplitud 1) y otro que
genera un ruido (p.e. ruido de frecuencia 200 rad./seg. y amplitud 0.3) que se superpone
a la señal original. Esta señal con ruido (salida del sumador) es la entrada al filtro que
no es más que una función de transferencia continua con el numerador y el
denominador del filtro calculado. Se han añadido también variables del espacio de
trabajo de Matlab para recoger los resultados obtenidos.
Se pide :
1.- Diseñar filtros paso bajo de Butterworth, Chebyshev y Bessel de distintos órdenes
(p.e. N=2,4,8) que atenúe el ruido de la red eléctrica (50 Hz). Obtener sus diagramas de
Bode y simular el sistema anterior comentando los resultados obtenidos (para el filtro
de Chebyshev probar también con distinta amplitud máxima de oscilación en la banda
de paso).
2.- Diseñar un filtro de Butterworth pasa banda que elimine ruidos entre 8 y 12 Hz.
Comentar el diagrama de Bode y el resultado de la simulación obtenida.
6
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 1
1.1. Introducción.
En principio, en esta práctica se pretendía introducir al alumno en el diseño de
filtros de Butterworth, Chebyshev y Bessel, aunque por recomendaciones del profesor
Rafael Puerto sólo estudiaremos los dos primeros. Para su análisis es necesario el
estudio de las características de los mismos por medio de sus respectivos Diagramas
de bode.
Otro de los objetivos de esta práctica reside en la simulación de cada filtro
diseñado. De hecho, se experimentará con cada uno de ellos bajo simulación para
diversos valores de frecuencias. Efectivamente, para realizar la simulación, es
necesario confeccionar un esquema Simulink como el de la figura siguiente, donde
ensayaremos los filtros diseñados:
Figura 1.1: Imagen sin filtrar.
1.2. Diseño de filtros pasa bajo.
Se van a diseñar filtros de Butterworth, Chebyshev y Bessel de distintos
órdenes (N = 2,4,8), que atenúen el ruido de una red eléctrica de 50 Hz. A pesar de que
deban trabajar para atenuar un ruido de 50 Hz, no se diseñarán para tal frecuencia.
Si deseamos una verdaderamente labor eficiente de los filtros, deberán
diseñarse para una frecuencia de corte de 40 Hz. Puesto que como trabajaremos a
frecuencias de 2 rad/s, la salida no se verá alterada debido a efectos de aliasing u
otros. A continuación, intentaremos responder a la siguiente pregunta:
1.- Diseñar filtros paso bajo de Butterworth, Chebyshev y Bessel de distintos órdenes
(p.e. N=2,4,8) que atenúe el ruido de la red eléctrica (50 Hz). Obtener sus diagramas
de Bode y simular el sistema anterior comentando los resultados obtenidos (para el
filtro de Chebyshev probar también con distinta amplitud máxima de oscilación en la
banda de paso).
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 2
1.2.1. Filtro Butterworth.
Diagrama de Bode. Para el diseño del filtro de tipo Butterworth se han
empleado las siguientes líneas de código:
>> [num1,den1a]=butter(2,40*2*pi,'s')
num1 =
1.0e+004 *
0 0 6.31654681669719
den1 =
1.0e+004 *
0.00010000000000 0.03554306350527 6.31654681669719
>> tf(num1,den1)
Transfer function:
6.317e004
-------------------------
s^2 + 355.4 s + 6.317e004
>> [num1,den2]=butter(4,40*2*pi,'s')
num2 =
1.0e+009 *
0 0 0 0 3.98987636875273
den2 =
1.0e+009 *
0.00000000100000 0.00000065675018 0.00021566039809 0.04148393245613
3.98987636875273
>> tf(num2,den2)
Transfer function:
3.99e009
--------------------------------------------------------
s^4 + 656.8 s^3 + 2.157e005 s^2 + 4.148e007 s + 3.99e009
>> [num3,den3]=butter(8,40*2*pi,'s')
num3 =
1.0e+019 *
Columns 1 through 5
0 0 0 0 0
Columns 6 through 9
0 0 0 1.59191134379316
den3 =
1.0e+019 *
Columns 1 through 5
0.00000000000000 0.00000000000000 0.00000000000008 0.00000000003468
0.00000001024934
Columns 6 through 9
0.00000219065622 0.00033108363240 0.03246708456760 1.59191134379316
>> tf(num3,den3)
Transfer function:
1.592e019
----------------------------------------------------------------------------------------
s^8 + 1288 s^7 + 8.298e005 s^6 + 3.468e008 s^5 + 1.025e011 s^4 + 2.191e013 s^3
+ 3.311e015 s^2 + 3.247e017 s + 1.592e019
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 3
A continuación mostraremos los diagramas de bode de un filtro Butterworth
para N = 2 azul, 4 rojo y 8 verde.
Figura 1.2: Diagrama de Bode para el filtro de Butterworth.
Como se puede observar en el diagrama de Bode, conforme aumentamos el
orden del polinomio mejor y más fuertemente va a atenuarse el ruido de 50 Hz. De
hecho, para un orden N = 2 el ruido se atenúa en 5 decibelios, para N = 4 el ruido se
atenúa en 8 decibelios, y para N = 8 el ruido se atenúa en 16 decibelios.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 4
Simulación.
Figura 1.3.A: Salida simulada para un filtro de orden 2.
Figura 1.3.B: Salida simulada para un filtro de orden 4.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 5
Figura 1.3.C: Salida simulada para un filtro de orden 8.
Si nos fijamos en las tres anteriores gráficas 1.3.A, 1.3.B y 1.3.C podemos
comprobar cómo el rizado de la señal filtrada (señal de color más intenso) va
disminuyendo conforme aumenta el orden del filtro de Butterworth.
En efecto, podríamos decir que la amplitud del rizado del ruido que persiste en
la señal filtrada es inversamente proporcional al orden del filtro de Butterworth. Por
tanto, podemos afirmar que si aumenta el orden N, la salida de la señal filtrada va
corrigiéndose.
De un modo u otro, la simulación ha venido a ratificar lo que ya se había
observado en el diagrama de Bode.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 6
1.2.2. Filtro de Chebyshev.
Diagrama de Bode. Para el diseño del filtro de tipo Chebyshev se han empleado
las siguientes líneas de código:
>> [num1,den1] = cheby1(2,0.1,40*2*pi,'s')
num1 =
1.0e+005 *
0 0 2.06936491857243
den1 =
1.0e+005 *
0.00001000000000 0.00596238156135 2.09332703499408
>> tf(num1,den1)
Transfer function:
2.069e005
-------------------------
s^2 + 596.2 s + 2.093e005
>> [num2,den2] = cheby1(4,0.1,40*2*pi,'s')
num2 =
1.0e+009 *
0 0 0 0 3.26781009724838
den2 =
1.0e+009 *
0.00000000100000 0.00000045333748 0.00016592290165 0.03215525353257
3.30564955479950
>> tf(num2,den2)
Transfer function:
3.268e009
---------------------------------------------------------
s^4 + 453.3 s^3 + 1.659e005 s^2 + 3.216e007 s + 3.306e009
>> [num3,den3] = cheby1(8,0.1,40*2*pi,'s')
num3 =
1.0e+017 *
Columns 1 through 5
0 0 0 0 0
Columns 6 through 9
0 0 0 8.14884892786441
den3 =
1.0e+017 *
Columns 1 through 5
0.00000000000000 0.00000000000000 0.00000000000216 0.00000000056591
0.00000013639199
Columns 6 through 9
0.00002165211593 0.00268813766864 0.20676213291652 8.24320815129543
>> tf(num3,den3)
Transfer function:
8.149e017
----------------------------------------------------------------------------------------
s^8 + 422.5 s^7 + 2.156e005 s^6 + 5.659e007 s^5 + 1.364e010 s^4 + 2.165e012 s^3
+ 2.688e014 s^2 + 2.068e016 s + 8.243e017
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 7
A continuación mostraremos los diagramas de bode de un filtro Chebyshev
para N = 2 azul, 4 rojo y 8 verde y una amplitud máxima de oscilación de 0.1 dB.
Figura 1.4.A: Diagrama de Bode para el filtro de Chebyshev de 0.1 dB.
En la siguiente figura veremos los diagramas de bode de un filtro Chebyshev
para N = 2 azul, 4 rojo y 8 verde y una amplitud máxima de oscilación de 1 dB.
Figura 1.4.B: Diagrama de Bode para el filtro de Chebyshev de 1 dB.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 8
En la siguiente gráfica se observa los diagramas de bode de un filtro Chebyshev
para N = 2 azul, 4 rojo y 8 verde y una amplitud máxima de oscilación de 5 dB.
Figura 1.4.C: Diagrama de Bode para el filtro de Chebyshev de 5 dB.
A continuación, se observa los diagramas de bode de un filtro Chebyshev N = 2
azul, 4 rojo y 8 verde y una amplitud máxima de oscilación de 10 dB.
Figura 1.4.D: Diagrama de Bode para el filtro de Chebyshev de 10 dB.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 9
Tal y como se observa en las figuras, a medida que aumentamos el valor de la
amplitud máxima de oscilación, las oscilaciones aumentan antes de haber llegado la
frecuencia ωc puesto que, con esto, estamos permitiendo mayor amplitud de la
oscilación.
Por lo contrario, y a diferencia con los filtros de Butterworth obtenidos en el
apartado anterior, al aumentar la amplitud máxima de oscilación se atenúa más
enérgicamente el ruido de 50 Hz.
En efecto, para un orden de N = 2 y una amplitud máxima de oscilación igual a
0.1 dB se atenúa el ruido en 0.5 dB mientras que, para una amplitud máxima de
oscilación de 1 dB, se atenúa el ruido en 3.5 dB.
En efecto, se tiene que para una amplitud máxima de oscilación elevada (10 dB)
se atenúa la señal a frecuencias bajas (10 dB).
Simulación.
En páginas posteriores, vienen representadas las simulaciones de los filtros
diseñados. Tal y como el lector puede comprobar, existe una relación entre el orden
del filtro y la atenuación del ruido puesto que con el aumento de N la salida de la señal
filtrada mejora su aspecto.
Por otro lado, si acrecentamos la amplitud máxima de oscilación el ruido se
atenuará más potentemente. No obstante, como contrapunto tenemos que el
aumento de la amplitud máxima de oscilación se traduce en una modificación de la
amplitud de la señal de salida.
El criterio que deberíamos seguir para determinar qué valores asignarle al
orden del polinomio N y a la amplitud máxima de oscilación dependen de las
utilizaciones que se quieran dar al filtro (sobre todo para el segundo parámetro).
De hecho, si fuera fundamental no modificar la amplitud la señal, debería
escogerse una amplitud máxima de oscilación de pequeño valor. Por otro lado, si lo
fundamental fuera eliminar el ruido acoplado a la señal, sería necesario escoger un
valor de la amplitud máxima de oscilación elevada.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 10
Figura 1.5.A: Salida simulada para un filtro de orden 2 y oscilación máxima de 0.1 dB.
Figura 1.5.B: Salida simulada para un filtro de orden 4 y oscilación máxima de 0.1 dB.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 11
Figura 1.5.C: Salida simulada para un filtro de orden 8 y oscilación máxima de 0.1 dB.
Figura 1.6.A: Salida simulada para un filtro de orden 2 y oscilación máxima de 1 dB.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 12
Figura 1.6.B: Salida simulada para un filtro de orden 4 y oscilación máxima de 1 dB.
Figura 1.6.C: Salida simulada para un filtro de orden 8 y oscilación máxima de 1 dB.
Rafael Puerto nos dijo que no era necesario diseñar el filtro de tipo Bessel por
lo que pasaremos directamente al segundo apartado de la práctica.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 13
2.- Diseñar un filtro de Butterworth pasa banda que elimine ruidos entre 8 y 12 Hz.
Comentar el diagrama de Bode y el resultado de la simulación obtenida.
Diagrama de Bode. Para el diseño del filtro de tipo Chebyshev se han empleado
las siguientes líneas de código:
>> Wc=[8*pi*2,12*pi*2]
Wc =
50.26548245743669 75.39822368615504
>> [b,a]=butter(2,Wc,'stop','s');
>> [d,c]=butter(4,Wc,'stop','s');
>> [f,e]=butter(8,Wc,'stop','s');
A continuación mostraremos los diagramas de bode de un filtro Butterworth
para N = 2 azul, 4 rojo y 8 verde.
Figura 1.7: Diagrama de Bode para el filtro de Butterworth rechaza badno.
Como se puede observar en el diagrama de Bode, conforme aumenta N más
ideal parece la respuesta en frecuencia y mejor se eliminaría el ruido.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 14
Simulación.
Para la simulación se han introducido 3 ruidos, uno a 8 Hz, otro a 10 Hz y un
último a 12 Hz; y la señal original posee una frecuencia de 2 rad/s.
Figura 1.8.A: Salida simulada para un filtro de orden 2.
Figura 1.6.B: Salida simulada para un filtro de orden 4.
PRÁCTICA 1: FILTRADO DE SEÑALES
ANÁLISIS Y DISEÑO DE FILTROS CONTINUOS
Identificación de
Sistemas
Jaime Martínez Verdú 15
Figura 1.6.C: Salida simulada para un filtro de orden 8 y oscilación máxima de 1 dB.
Obviamente, a medida que vamos aumentando el orden del filtro, se produce
una disminución progresiva del ruido acoplado a la señal.
MODELADO E IDENTIFICACIÓN DE SISTEMAS 5º INGENIERÍA INDUSTRIAL
PRÁCTICA 2
Filtrado de Señales: Discretización de filtros analógicos
Curso 2004 - 2005
OBJETIVOS • Diseño de filtros digitales por discretización de los correspondientes analógicos mediante la
aplicación de diversas técnicas, atendiendo a la problemática existente en cada uno de los casos.
• Comparación de las características en el dominio frecuencial de los filtros analógicos y sus
correspondientes discretos en virtud de diferentes parámetros.
1.- Discretización de sistemas continuos con Matlab.
El paquete Matlab posee funciones que permiten discretizar un sistema continuo mediante
distintos métodos de discretización. El comando que realiza dicha tarea es c2dm. Dicho comando tiene la
siguiente sintaxis :
[numd,dend] = c2dm(num,den,Ts,'method')
de esta forma se convierte la función de transferencia continua G(s)=num(s)/den(s) en la función de
transferencia discreta G(z)=numd(z)/dend(z) a un periodo de muestreo Ts utilizando el método ‘method’,
donde num, den, numd y dend son los vectores cuyos elementos son los coeficientes en orden
decreciente de los polinomios del numerador y denominador de las funciones de transferencia continua y
discreta respectivamente.
Los distintos métodos de discretización que podemos utilizar son los siguientes :
• 'zoh' : discretiza asumiendo que existe un retenedor de orden cero a la entrada.
• 'foh' : discretiza asumiendo que existe un retenedor de orden uno a la entrada.
• 'tustin' : discretiza utilizando la transformación bilineal.
• 'prewarp' : discretiza utilizando la transformación bilineal con compensación de frecuencias
(prewarping). En este caso es necesario especificar la frecuencia de corte y el comando quedaría
[numd,dend]=c2dm(num,den,Ts,'prewarp',Wc), donde Wc es la frecuenca de corte en
rad./seg.
• 'matched' : discretiza utilizando el método de asiganación de polos y ceros.
Por ejemplo, si queremos discretizar el filtro continuo G sss
( ) =++102
con un periodo de muestreo de
0.1 seg. por el método de emparejamiento de polos y ceros, se haría :
» [numd,dend]=c2dm([1 10],[1 2],0.1,'matched')
numd =
1.4338 -0.5275
dend =
1.0000 -0.8187
2.- Realización de la práctica.
Supongamos que se dispone de un sistema de control que presenta una perturbación de unos 10
Hz. y un ruido superpuesto de la frecuencia de la red (50 Hz.). Se pide:
1) Diseñar dos filtros analógicos de Butterworth de cuarto orden que atenuen cada uno de los efectos
indeseables antes expuestos. Considerar la atenuación del ruido de red para frecuencias mayores de
40 Hz. y un rechazo de banda entre 8 y 12 Hz.
2) Obtener el filtro digital correspondiente, considerando las siguientes técnicas de discretización:
• Bilineal
• Bilineal con precompensación de frecuencias
• Emparejamiento de polos y ceros.
3) Analizar mediante diagramas de bode el efecto del periodo de muestreo seleccionado, repitiendo el
apartado anterior para otro valor de dicho periodo (tomar un periodo correcto y otro incorrecto).
4) Comprobar el funcionamiento de los filtros diseñados con Simulink.
2
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 1
2.1. Introducción.
En esta segunda práctica de Identificación de sistemas, se instruirá al alumno
en la obtención de filtros digitales por discretización de sus semejantes analógicos.
Para ello, emplearemos las diversas técnicas de discretización aprendidas en clase,
haciendo hincapié a las ventajas y desventajas de cada método.
También se tratará de realizar la comparación de las características en el
dominio frecuencial de los filtros analógicos y sus convenientes discretos en virtud de
diferentes parámetros.
2.2. Diseño de un filtro analógico (Realización de la práctica: Apartado 1).
Tal y como viene descrito en el enunciado, se considera un sistema de control
que presenta una perturbación de 10 Hz y un ruido superpuesto de la frecuencia de la
red (50 Hz).
Como parámetro fundamental del filtro pasa bajo deseado se va a seleccionar
una frecuencia de corte de ωc = 40 Hz (recomendado por el propio profesor Rafael
Puerto) que atenuará mejor el ruido de 50 Hz.
Para realizar el filtro pasa bajo se va a utilizar el comando butter() de MatLab©
.
De esta forma, se obtiene el siguiente filtro de orden cuarto:
>> [numc1,denc1]=butter(4,40*2*pi,'s')
numc1 =
1.0e+009 *
0 0 0 0 3.98987636875273
denc1 =
1.0e+009 *
0.00000000100000 0.00000065675018 0.00021566039809 0.04148393245613
3.98987636875273
>> tf(numc1, denc1)
Transfer function:
3.99e009
----------------------------------------------------------------------
s^4 + 656.8 s^3 + 2.157e005 s^2 + 4.148e007 s + 3.99e009
972534
9
10·99.310148.410157.28.656
10·99.3)(
+⋅+⋅++=
sssssF
BajoPaso
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 2
Figura 2.1: Diagrama de Bode del filtro paso bajo continuo.
De igual modo, podemos calcular el filtro de Butterworth necesario para un
rechazo de banda entre 8 y 12 Hz:
>> [numc2,denc2]=butter(4,[8*2*pi,12*2*pi],'stop','s')
numc2 =
1.0e+014 *
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0022 0.0000 2.0631
denc2 =
1.0e+014 *
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0025 0.0358 2.0631
>> tf(numc2,denc2)
Transfer function:
s^8 + 1.516e004 s^6 + 8.618e007 s^4 + 2.177e011 s^2 + 2.063e014
----------------------------------------------------------------------------------------------------------------------
s^8 + 65.68 s^7 + 1.732e004 s^6 + 7.882e005 s^5 + 1.029e008 s^4 + 2.987e009 s^3 + 2.487e011 s^2
+ 3.575e012 s + 2.063e014
1412211
3948556478
1421147648
10·063.210575.310487.2
10987.210029.110882.710732.1680.65
10·063.210177.210618.810516.1)(
+⋅+⋅++⋅+⋅+⋅+⋅++
+⋅+⋅+⋅+=
ss
ssssss
sssssF
BandaRechaza
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 3
Figura 2.2: Diagrama de Bode del filtro rechaza banda continuo.
Para la simulación se va a utilizar el siguiente diagrama de bloques:
Figura 2.3: Esquema Simulink utilizado.
En esta figura se puede observar que partimos de una señal de entrada de 2
rad/seg y que, a esta, se le suman dos ruidos senoidales:
• Uno a 10 Hz y con una amplitud de 0.3.
• Otro a 50 Hz y una amplitud de 0.3.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 4
2.3. Diseño de un filtro digital (Realización de la práctica: Apartado 2-3-4).
A. Diseño de un filtro digital con transformación bilineal.
En este punto de la práctica se va a discretizar sendos filtros obtenidos en el
apartado anterior empleando el método de la transformación bilineal.
NOTA: La transformación bilineal.
Dado que en el plano z, la frecuencia aparece en la forma z = ejωT
, si se intenta
trazar la respuesta en frecuencia del plano z, desaparece la simplicidad de las trazas
logarítmicas. La dificultad, no obstante, se puede soslayar si se utiliza la siguiente
transformación bilineal:
→
→
1 2 2
⋯ 2
1 ! 2 2
⋯ !2
1 2
1 ! 2
donde T es el período de muestreo involucrado en el sistema de control de tiempo
discreto. Utilizando esta transformación se hace corresponder el interior del círculo unitario
en el plano z con el semiplano izquierdo del plano ω.
Figura 2.4: Diagramas que muestran las correspondencias del plano s con el plano z y del plano z con el plano ω.
De este modo, se consigue que el plano ω y el plano s sean similares sobre las
regiones de interés del plano s (las bajas frecuencias es el rango donde la transformación
bilineal es realmente provechosa). Dicho de otra manera, las actuaciones o características
del sistema discreto dentro del círculo unitario se pueden estudiar considerando el
semiplano izquierdo del plano ω.
Así, para representar según el diagrama de Bode la respuesta en frecuencia de un
sistema discreto, en primer lugar, se realizará la transformación bilineal obteniendo BG(ω)
para, a continuación, representar BG(jv) recurrir a las aproximaciones estudiadas para
sistemas continuos.
Im
Re
Im Im
Re
Plano s Plano z Plano ω
Re
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 5
NOTA: El teorema de Nyquist-Shannon.
El teorema de muestreo de Nyquist-Shannon, también conocido como teorema de
muestreo de Whittaker-Nyquist-Kotelnikov-Shannon o simplemente criterio de Nyquist,
es un teorema fundamental de la teoría de la información, especialmente útil en las
telecomunicaciones. Este teorema fue formulado en forma de conjetura por primera vez
por Harry Nyquist en 1928 ("Certain topics in telegraph transmission theory"), y fue
probado formalmente por Claude E. Shannon en 1949 ("Communication in the presence of
noise").
Afirma que cuando se muestrea una señal, la frecuencia de muestreo debe ser
mayor que dos veces el ancho de banda de la señal de entrada, para poder reconstruir la
señal original de forma exacta a partir de sus muestras. Si B es el ancho de banda de la
señal y Fm es la frecuencia de muestreo, el teorema puede expresarse como Fm > B. Si el
criterio no es satisfecho, existirán frecuencias cuyo muestreo coincide con otras (el llamado
aliasing).
Está demostrado rigurosamente que para evitar el aliasing es necesario asegurarse
de que en la señal analógica a muestrear con una frecuencia s, no existen componentes
sinusoidales de frecuencia mayor a 2s. Esta condición es llamada el criterio de Nyquist, y es
equivalente a decir que la frecuencia de muestreo s debe ser al menos dos veces mayor que
el ancho de banda de la señal.
El Teorema de Nyquist indica que la frecuencia de muestreo mínima que tenemos
que utilizar debe ser mayor que 2·fmax, donde fmax es la frecuencia máxima de la señal
compleja. Si utilizamos esa frecuencia de muestreo, podremos reproducir posteriormente
la señal a partir de las muestras tomadas. Si utilizáramos una frecuencia más alta que la que
nos dice Nyquist obtendríamos una representación más exacta de la señal de entrada.
Puesto que debe verificarse el teorema de shannon-Nyquist se debe escoger un
periodo de muestreo ωs superior a 2·ωn. En el caso de escoger un valor por debajo del
recomendado, se produciría un indeseado solapamiento en frecuencia.
Para evitar un posible solapamiento, es recomendable escoger una ωs igual a
10· ωn, de modo que aseguremos con total certeza que no se origine un solapamiento
de frecuencias. En efecto,
ωn = 2·π·50 = 314.1593 ωs = 10·ωn = 3141.593 Ts = 2·π/ ws = 0.002 s
Finalmente, queda discretizar el sistema utilizando el comando de MatLab©
c2dm. De esta forma se obtiene la siguiente función de transferencia para el filtro:
0.2719 + z 1.4357 - z 2.9160 +z 2.7199- z
0.0021 + z 0.0083 + z 0.0125 + z 0.0083 + z 0.0021)(
2 34
234
=zFBajoPaso
0.88 + z 7.08 - z 25.05 + z 50.76 - z .4246 z 52.45 - z 26.74 + z 7.81 - z
0.94 + z 7.44 - z 25.89 + z 51.61 - z .4446 z 51.61 - z 25.89 + z 7.44 - z 0.94)(
2345678
2345678
++=zF
BandaRechaza
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 6
>> [numd1,dend1] = c2dm(numc1,denc1,0.002,'tustin')
numd1 =
0.0021 0.0083 0.0125 0.0083 0.0021
dend1 =
1.0000 -2.7189 2.9160 -1.4357 0.2719
>> [numd2,dend2] = c2dm(numc2,denc2,0.002,'tustin')
numd2 =
0.9367 -7.4368 25.8886 -51.6100 64.4431 -51.6100 25.8886 -7.4368 0.9367
dend2 =
1.0000 -7.8098 26.7433 -52.4460 64.4233 -50.7581 25.0497 -7.0798 0.8774
>> tf(numd1,dend1,0.002)
Transfer function:
0.00208 z^4 + 0.008321 z^3 + 0.01248 z^2 + 0.008321 z + 0.00208
-----------------------------------------------------------------------------------------
z^4 - 2.719 z^3 + 2.916 z^2 - 1.436 z + 0.2719
Sampling time: 0.002
>> tf(numd2,dend2,0.002)
Transfer function:
0.9367 z^8 - 7.437 z^7 + 25.89 z^6 - 51.61 z^5 + 64.44 z^4 - 51.61 z^3 + 25.89 z^2 - 7.437 z
+ 0.9367
--------------------------------------------------------------------------------------------------------------------------
z^8 - 7.81 z^7 + 26.74 z^6 - 52.45 z^5 + 64.42 z^4 - 50.76 z^3 + 25.05 z^2 - 7.08 z + 0.8774
Sampling time: 0.002
NOTA: El teorema de Nyquist-Shannon.
El Sol tiene un movimiento aparente de este a oeste en la bóveda celeste, con 24
horas entre cada amanecer. Si tomásemos una fotografía del cielo cada 23 horas, el sol
parecería moverse de oeste a este, con 24·23=552 horas entre cada amanecer. El mismo
fenómeno causa que las aspas de un ventilador parezcan a veces girar en el sentido inverso
del que en realidad lo hacen, cuando se les filma o cuando son iluminadas por una fuente
de luz parpadeante, tal como una lámpara estroboscópica, un tubo de rayos catódicos o
una lámpara fluorescente. Cuando se obtienen muestras periódicas de una señal sinusoidal,
puede ocurrir que se obtengan las mismas muestras que se obtendrían de una señal
sinusoidal igualmente pero con frecuencia más baja. Específicamente, si una sinusoide de
frecuencia f Hz es muestreada s veces por segundo, y s ≤ 2·f, entonces las muestras
resultantes también serán compatibles con una sinusoide de frecuencia fm - f, donde fm es
la frecuencia de muestreo. En la jerga inglesa de procesamiento de señales, cada una de las
sinusoides se convierte en un "alias" para la otra.
Figura 2.5: Dos sinoidales diferentes que producen las mismas muestras.
Por tanto, si se muestrea a la frecuencia s una señal analógica que contiene las dos
frecuencias, la señal no podrá ser reconstruida con exactitud.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 7
Figura 2.6: Diagrama de Bode del filtro paso bajo.
Figura 2.7: Diagrama de Bode del filtro rechaza banda.
Tal y como podemos observar, el ruido de 50 Hz se atenúa en 9,4 dB y a una
frecuencia de 40 Hz se atenúa en 3.45 dB, lo que quiere decir que ha habido un
corrimiento de frecuencias al realizar la transformación.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 8
Figura 2.8: Magnitud del filtro Pasa Bajo.
Si se simula se tiene la siguiente salida:
Figura 2.9: Señal con ruido y señal filtrada.
Si se comparan ambas gráficas podemos observar claras diferencias.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 9
B. Diseño de un filtro digital con transformación bilineal con precompensación.
Procediendo de forma similar al apartado anterior, discretizaremos el filtro
continuao utilizando un periodo de muestreo de 0.002 seg y, con el comando de c2dm
de MatLab©
(utilizando como comando del método ‘prewarp’) se tienen los siguientes
los filtros discretizados:
0.2645 + z 1.403 - z 2.867 + z 2.693 - z
0.002235 + z 0.00894 + z 0.01341 + z 0.00894 + z 0.002235)(
234
234
=zFBajoPaso
0.88 + z 7.08 - z 25.05 + z 50.75 - z .4146 z 52.44 - z 26.74 + z 7.81 - z
0.94 + z 7.44 - z 25.89 + z 51.60 - z .4346 z 51.60 - z 25.89 + z 7.44 - z 0.94)(
2345678
2345678
++=zF
BandaRechaza
>> [numd1,dend1] = c2dm(numc1,denc1,0.002,'prewarp',2*pi*40)
numd1 =
0.0022 0.0089 0.0134 0.0089 0.0022
dend1 =
1.0000 -2.6926 2.8674 -1.4035 0.2645
>> [numd2,dend2] = c2dm(numc2,denc2,0.002,'prewarp',2*pi*(8+12)/2)
numd2 =
0.9366 -7.4360 25.8855 -51.6034 64.4346 -51.6034 25.8855 -7.4360 0.9366
dend2 =
1.0000 -7.8094 26.7413 -52.4404 64.4148 -50.7505 25.0456 -7.0785 0.8772
>> tf(numd1,dend1,0.002)
Transfer function:
0.002235 z^4 + 0.00894 z^3 + 0.01341 z^2 + 0.00894 z + 0.002235
---------------------------------------------------------------
z^4 - 2.693 z^3 + 2.867 z^2 - 1.403 z + 0.2645
Sampling time: 0.002
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 10
El diagrama de Bode del filtro es el siguiente:
Figura 2.10: Diagrama de Bode del filtro paso bajo.
Figura 2.11: Diagrama de Bode del filtro rechaza banda.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 11
Para 40 Hz se tiene una atenuación de la señal de 3 dB y para 50 Hz se tiene una
atenuación de la señal de 8.75 dB, de esta forma se elimina el corrimiento de
frecuencias en el instante en que la frecuencia vale 40 Hz.
Figura 2.12: Magnitud del filtro Pasa Bajo.
Si se simula se tiene la siguiente salida:
Figura 2.13: Señal con ruido y señal filtrada.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 12
C. Diseño de un filtro digital mediante emparejamiento de polos y ceros.
Procediendo de forma similar al apartado anterior, discretizaremos el filtro
continuao utilizando un periodo de muestreo de 0.002 seg y, con el comando de c2dm
de MatLab©
(utilizando como comando del método ‘matched’) se tienen los siguientes
los filtros discretizados:
0.27 + z 1.42 - z 2.89 + z 2.71 - z
0.0041 + z 0.0124 + z 0.0124 + z 0.0041 )(
234
23
=zFBajoPaso
0.88 + z 7.08 - z 25.04 + z 50.74 - z .4046 z 52.43 - z 26.74 + z 7.81 - z
0.94 + z 7.44 - z 25.88 + z 51.59 - z .4246 z 51.59 - z 25.88 + z 7.44 - z 0.94)(
2345678
2345678
++=zF
BandaRechaza
>> [numd1,dend1] = c2dm(numc1,denc1,0.002,'matched')
numd1 =
0 0.0041 0.0124 0.0124 0.0041
dend1 =
1.0000 -2.7091 2.8959 -1.4226 0.2689
>> [numd2,dend2] = c2dm(numc2,denc2,0.002,'matched')
numd2 =
0.9364 -7.4348 25.8812 -51.5948 64.4239 -51.5948 25.8812 -7.4348 0.9364
dend2 =
1.0000 -7.8091 26.7390 -52.4338 64.4040 -50.7398 25.0393 -7.0765 0.8769
>> tf(numd1,dend1,0.002)
Transfer function:
0.004138 z^3 + 0.01241 z^2 + 0.01241 z + 0.004138
-------------------------------------------------
z^4 - 2.709 z^3 + 2.896 z^2 - 1.423 z + 0.2689
Sampling time: 0.002
>> tf(numd2,dend2,0.002)
Transfer function:
0.9364 z^8 - 7.435 z^7 + 25.88 z^6 - 51.59 z^5 + 64.42 z^4 - 51.59 z^3 + 25.88 z^2 - 7.435 z
+ 0.9364
---------------------------------------------------------------------------------------------------
z^8 - 7.809 z^7 + 26.74 z^6 - 52.43 z^5 + 64.4 z^4 - 50.74 z^3 + 25.04 z^2 - 7.076 z + 0.8769
Sampling time: 0.002
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 13
El diagrama de Bode del filtro es el siguiente:
Figura 2.14: Diagrama de Bode del filtro paso bajo.
Figura 2.15: Diagrama de Bode del filtro rechaza banda.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 14
Si se simula se tiene la siguiente salida:
Figura 2.16: Señal con ruido y señal filtrada.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 15
2.4. Definir un Ts menor (Realización de la práctica: Apartado 3).
A. Diseño de un filtro digital con transformación bilineal.
A continuación, volveremos a discretizar pero, en este caso, emplearemos un
periodo de muestreo en el que no se cumpla el teorema de Nyquist-Shannon, por
ejemplo Ts = 0.02 segundos. Para este periodo de muestreo se tiene la siguiente
función de transferencia para el filtro:
>> [numd1,dend1] = c2dm(numc1,denc1,0.02,'tustin')
numd1 =
0.3610 1.4441 2.1661 1.4441 0.3610
dend1 =
1.0000 2.0398 1.8301 0.7760 0.1304
>> [numd2,dend2] = c2dm(numc2,denc2,0.02,'tustin')
numd2 =
0.6224 -2.2424 5.5193 -8.5464 10.2033 -8.5464 5.5193 -2.2424 0.6224
dend2 =
1.0000 -3.1794 6.8684 -9.4102 9.9517 -7.4283 4.2792 -1.5598 0.3874
>> tf(numd1,dend1,0.02)
Transfer function:
0.361 z^4 + 1.444 z^3 + 2.166 z^2 + 1.444 z + 0.361
---------------------------------------------------
z^4 + 2.04 z^3 + 1.83 z^2 + 0.776 z + 0.1304
Sampling time: 0.02
>> tf(numd2,dend2,0.02)
Transfer function:
0.6224 z^8 - 2.242 z^7 + 5.519 z^6 - 8.546 z^5 + 10.2 z^4 - 8.546 z^3 + 5.519 z^2 - 2.242 z
+ 0.6224
---------------------------------------------------------------------------------------------------
z^8 - 3.179 z^7 + 6.868 z^6 - 9.41 z^5 + 9.952 z^4 - 7.428 z^3 + 4.279 z^2 - 1.56 z + 0.3874
Sampling time: 0.02
0.13 + z 0.78 z 1.83 +z 2.04 z
0.361 + z 1.444 + z 2.166 + z 1.444 + z 0.361)(
2 34
234
++=zF
BajoPaso
0.39 + z 1.56 - z 4.28 + z 7.43 - z .959 z 9.41 - z 6.87 + z 3.18 - z
0.62 + z 2.244 - z 5.52 + z 8.55 - z .2010 z 8.55 - z 5.52 + z 2.24 - z 0.62)(
2345678
2345678
++=zF
BandaRechaza
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 16
En las siguientes páginas vienen representados los diagramas de bode.
Figura 2.17: Diagrama de Bode del filtro paso bajo.
Figura 2.18: Diagrama de Bode del filtro rechaza banda.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 17
Si se observa detenidamente el diagrama de Bode se ve que para w = 157 rad/s
la señal se atenúa en 300 dB. Pero como se sabe que para ese periodo de muestreo se
produce aliasing, el diagrama obtenido no nos aporta información de interés.
Figura 2.19: Señal con ruido y señal filtrada.
Como se puede observar en la gráfica 2.18, para lo único que sirve el filtro es
para retrasar la salida. Esto es debido a que se produce aliasing y el ruido no se
atenúa.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 18
B. Diseño de un filtro digital con transformación bilineal con precompensación.
A continuación, volveremos a discretizar pero, en este caso, emplearemos un
periodo de muestreo en el que no se cumpla el teorema de Nyquist-Shannon, por
ejemplo Ts = 0.02 segundos. Para este periodo de muestreo se tiene la siguiente
función de transferencia para el filtro:
>> [numd1,dend1] = c2dm(numc1,denc1,0.02,'prewarp',2*pi*40)
numd1 =
1.5466 6.1865 9.2798 6.1865 1.5466
dend1 =
1.0000 -6.0652 22.5765 -25.9669 33.2018
>> [numd2,dend2] = c2dm(numc2,denc2,0.02,'prewarp',2*pi*(8+12)/2)
numd2 =
0.6056 -1.5861 3.9802 -5.4382 6.8604 -5.4382 3.9802 -1.5861 0.6056
dend2 =
1.0000 -2.2938 4.9902 -6.0004 6.6457 -4.6745 3.0295 -1.0798 0.3668
>> tf(numd1,dend1,0.02)
Transfer function:
1.547 z^4 + 6.187 z^3 + 9.28 z^2 + 6.187 z + 1.547
--------------------------------------------------
z^4 - 6.065 z^3 + 22.58 z^2 - 25.97 z + 33.2
Sampling time: 0.02
>> tf(numd2,dend2,0.02)
Transfer function:
0.6056 z^8 - 1.586 z^7 + 3.98 z^6 - 5.438 z^5 + 6.86 z^4 - 5.438 z^3 + 3.98 z^2 - 1.586 z + 0.6056
--------------------------------------------------------------------------------------------------
z^8 - 2.294 z^7 + 4.99 z^6 - 6 z^5 + 6.646 z^4 - 4.675 z^3 + 3.03 z^2 - 1.08 z + 0.3668
Sampling time: 0.02
33.202 + z .96752 z 22.577 +z 6.065 z
1.547 + z 6.187 + z 9.280 + z 6.187 + z 1.547)(
2 34
234
−−=zF
BajoPaso
0.37 + z 1.08 - z 3.03 + z 4.67 - z .656 z 6.00 - z 4.99 + z 2.29 - z
1.58 + z 1.58 - z 3.98 + z 5.44 - z .866 z 5.44 - z 3.98 + z 1.58 - z c)(
2345678
2345678
++=zF
BandaRechaza
En las siguientes páginas vienen representados los diagramas de bode.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 19
Figura 2.20: Diagrama de Bode del filtro paso bajo.
Figura 2.21: Diagrama de Bode del filtro rechaza banda.
Si se observa detenidamente el diagrama de Bode se ve que para w = 157 rad/s
la señal se atenúa en 300 dB. Pero como se sabe que para ese periodo de muestreo se
produce aliasing, el diagrama obtenido no nos aporta información de interés.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 20
Figura 2.22: Señal con ruido y señal filtrada.
Como se puede observar en la gráfica 2.18, para lo único que sirve el filtro es
para retrasar la salida. Esto es debido a que se produce aliasing y el ruido no se atenúa
sino que el sistema se vuelve inestable.
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 21
C. Diseño de un filtro digital con emparejamiento de polos y ceros.
Procediendo de forma similar al apartado anterior, discretizaremos el filtro
continuao utilizando un periodo de muestreo de 0.02 seg y, con el comando de c2dm
de MatLab©
(utilizando como comando del método ‘matched’) se tienen los siguientes
los filtros discretizados:
6-234
23
1.975·10 + z 0.0001 z 0.0216 + z 0.0266 z
0.1310 + z 0.3931 + 0.3931z + z 0.1310 )(
++=zF
BajoPaso
0.27 + z 0.83 - z 2.39 + z 3.85 - z .655 z 5.35 - z 4.61 + z 2.24 - z
0.52 + z 1.38 - z 3.45 + z 4.76 - z .975 z 4.76 - z 3.45 + z 1.38 - z 0.52)(
2345678
2345678
++=zF
BandaRechaza
>> [numd1,dend1] = c2dm(numc1,denc1,0.02,'matched')
numd1 =
0 0.1310 0.3931 0.3931 0.1310
dend1 =
1.0000 0.0266 0.0216 0.0001 0.0000
>> [numd2,dend2] = c2dm(numc2,denc2,0.02,'matched')
numd2 =
0.5185 -1.3816 3.4546 -4.7579 5.9743 -4.7579 3.4546 -1.3816 0.5185
dend2 =
1.0000 -2.2419 4.6049 -5.3521 5.6543 -3.8552 2.3926 -0.8301 0.2689
>> tf(numd1,dend1,0.02)
Transfer function:
0.131 z^3 + 0.3931 z^2 + 0.3931 z + 0.131
---------------------------------------------------------------------------------
z^4 + 0.02663 z^3 + 0.02157 z^2 + 0.0001437 z + 1.975e-006
Sampling time: 0.02
>> tf(numd2,dend2,0.02)
Transfer function:
0.5185 z^8 - 1.382 z^7 + 3.455 z^6 - 4.758 z^5 + 5.974 z^4 - 4.758 z^3 + 3.455 z^2 - 1.382 z + 0.5185
------------------------------------------------------------------------------------------------------------------------------------
z^8 - 2.242 z^7 + 4.605 z^6 - 5.352 z^5 + 5.654 z^4 - 3.855 z^3 + 2.393 z^2 - 0.8301 z + 0.2689
Sampling time: 0.02
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 22
El diagrama de Bode del filtro es el siguiente:
Figura 2.23: Diagrama de Bode del filtro paso bajo.
Figura 2.24: Diagrama de Bode del filtro rechaza banda.
Si se simula se tiene la siguiente salida:
PRÁCTICA 2: FILTRADO DE SEÑALES DISCRETIZACIÓN DE FILTROS ANALÓGICOS
Identificación de Sistemas
Jaime Martínez Verdú 23
Figura 2.25: Señal con ruido y señal filtrada.
1
8.1 Objetivo. En el presente capítulo se pretende que el alumno aplique los conocimientos sobre análisis y diseño de filtros adquiridos en los capítulos anteriores. En los capítulos 1 a 7 se han presentado las herramientas básicas para el procesamiento de señales, con una breve introducción teórica de los conceptos involucrados y haciendo especial énfasis en la forma de llevarlos a cabo de una forma práctica mediante las herramientas existentes en el toolbox de procesado de señal del paquete Matlab/Simulink. Como se verá en el transcurso de este capítulo, a veces es necesario tener ficheros de datos para realizar la práctica. Estos ficheros se pueden conseguir en la página Web asociada a las asignaturas que imparten los autores o bien solicitándolos directamente a éstos (ver prólogo).
8.2 Introducción. Tal y como se dijo en el capítulo 2 de introducción, las aplicaciones del procesamiento de señal son muy variadas, y precisamente debido a ello se ha producido el gran desarrollo que estas técnicas han experimentado en las tres últimas décadas. De entre todas las aplicaciones posibles se han seleccionado las referentes a: § Procesamiento de señales en el espectro audible. § Tratamiento de la imagen. § Transmisión de señales. § Ingeniería biomédica. § Automatización y control. § Exploración espacial. A pesar de la diversidad de campos de la ciencia enumerados, las técnicas asociadas a todos ellos son básicamente las mismas. En todas las aplicaciones que se verán, las señales, a pesar de que su origen físico es bien diferente, tienen la característica común de que todas ellas son una representación de un concepto físico medible con una información sobre el comportamiento de un proceso en el que las señales referidas o bien son entradas o bien son salidas del sistema. A veces se pretende analizar y/o controlar un sistema, otras se pretende diseñar un sistema que procese la señal para algún fin concreto y otras veces el objetivo es restaurar señales que han sido degradadas en algún sentido o simplemente se pretende mejorar un sonido o imagen.
8 APLICACIONES DEL PROCESAMIENTO
DE SEÑAL.
2 Aplicaciones del Procesamiento de Señal. __________________________________
8.3 Tratamiento de Imagen.
Estimados señores: Les remitimos el presente escrito desde la Sede Central del Kennedy Space Center (KSC) (Cape Cañaveral, Florida, west Orlando) para solicitar su ayuda.
Como ustedes sabrán, actualmente, el vehículo Pathfinder se encuentra en Marte tomando muestras de la superficie del planeta. Cada 13,27 horas, el vehículo nos envía los resultados de las pruebas tanto de los análisis realizados en la superficie como imágenes tomadas a lo largo del periodo entre transmisiones. Además, Pathfinder es capaz de detectar cualquier movimiento que se produzca en su campo de visión con el fin de detectar indicios de posible vida extraterrestre, en este caso marciana. Cuando esto sucede, es decir, se detecta algún movimiento, el ordenador del Pathfinder entra en modo de máxima alerta y envía la imagen captada a la tierra junto con una señal de alarma.
El pasado Jueves 19 de Marzo, a las 3:07 AM (hora de cabo cañaveral) se recibió un mensaje de alarma junto con una imagen. Inmediatamente, los técnicos del KSC se pusieron a trabajar para analizar la imagen, pero cual fue nuestra sorpresa al comprobar que la imagen era completamente ininteligible. Comprobando las condiciones en que se realizó la transmisión desde Marte, comprobamos que a esa hora una enorme tormenta eléctrica azotaba la superficie del planeta, con lo cual las interferencias sobre el equipo de transmisión ocasionaron la distorsión de la señal. Para más desgracia, en estos momentos no nos encontramos operativos debido a una incursión en nuestro sistema del temido virus Melocomo acaecida horas después de la recepción del mensaje.
Siendo conscientes de la importancia de semejante hallazgo, necesitamos con la máxima premura posible analizar la imagen, y es por esto por lo que solicitamos de ustedes , dada su renombrada valía, su ayuda y cooperación en este asunto.
Les enviamos un fichero (imagen.mat) que contiene la imagen, el mapa de colores con el que se tomó la imagen, map y una variable Fs con la frecuencia de muestreo en Hertzios a la cual se envió la señal.
Sin otro particular, y agradeciéndoles de antemano su colaboración, se despide atentamente:
Austin Powers Director del KSC
_________________________________________ Tratamiento de Imagen. 3
8.3.1 Tratamiento de Imagen con Matlab. Una imagen se trata numéricamente como una matriz cuyos elementos dan el valor del color de la imagen en dicho punto. En Matlab, una imagen viene representada como una matriz de valores reales donde cada una de los componentes se asocia a un color de la paleta de colores activa en ese momento. En Matlab, una imagen tiene dos parámetros asociados, uno es la matriz que representa la imagen y otro es el mapa de colores que se debe utilizar para representar la imagen. De esta forma, por ejemplo, si se trabaja con un mapa de colores de escala de grises y de 8 bits de profundidad, es decir, 256 tonos de grises, un 0 correspondería al color blanco, el 128 al gris y el 256 al negro.
Dada una matriz de imagen (en general cualquier matriz), la forma de representarla en Matlab es la siguiente: » image(imagen) donde image es el comando que representa en una ventana gráfica la imagen denotada por la matriz imagen. Una vez tenemos la imagen representada sólo resta asociarle el mapa de colores. Para ello utilizamos el siguiente comando: » colormap(map) donde colormap asigna a la ventana activa el mapa de colores map.
Cuando se captura una imagen, se suele suministrar el mapa de colores empleado, pero si esto no fuera sí, podemos utilizar cualquiera de los mapas que Matlab tiene predefinidos: hsv, hot, gray, bone, copper, pink, white, flag, lines, colorcube, jet, prism, cool, autumn, spring, winter, summer .
8.3.2 Realización de la Práctica. Para la realización de la práctica se suministran los siguientes elementos:
• La matriz imagen que es la señal recibida en la tierra. • La función m2v que convierte una matriz en un vector. • La función v2m que convierte un vector en una matriz. • La función espec que calcula el espectro de frecuencias de una señal.
Lo primero que se debe hacer es representar la imagen para ver si se puede extraer algo
de ella. Si no somos capaces de identificar la imagen, el siguiente paso consistiría en hallar el espectro de frecuencias para ver si existe alguna perturbación (ruido) que esté distorsionando la imagen. Para ello, primero debemos convertir esta imagen (matriz) en un vector mediante el comando m2v de la siguiente forma: >> [imvec,n] = m2v(imagen);
4 Aplicaciones del Procesamiento de Señal. __________________________________
donde imagen es la matriz que define la imagen, imvec es la matriz transformada en vector y n es el número de columnas de la matriz original, necesario para la posterior reconstrucción de la matriz. Una vez expresada la matriz como un vector, debemos obtener su espectro de frecuencias (sólo es necesario el de magnitud) mediante la función espec cuya sintaxis es: >> [esf,esm]=espec(imvec,fs); donde esf y esm son los vectores de frecuencia y la magnitud asociada a cada frecuencia respectivamente y imvec y fs denotan el vector de la señal de imagen y la frecuencia de muestreo. Para representar el espectro de frecuencias de la señal: >> plot(esf,esm); Mediante el espectro obtenido veremos si existe alguna anomalía en alguna de sus componentes en frecuencia.
En el caso de ser así, debemos ser capaces de identificar el ruido que afecta a la señal y eliminarlo mediante un filtro. Probaremos filtros de Butterworth y Chebyshev discretos (del orden apropiado, y comprobando previamente su respuesta en frecuencia mediante un diagrama de Bode), y también filtros elípticos (consultar en la ayuda de Matlab ellipord y ellip) . Una vez diseñado el filtro debemos filtrar la señal mediante el comando filter:
>> imvf=filter(b,a,imvec); donde imvf el vector de la señal de imagen filtrada por los polinomios b y a correspondientes al numerador y denominador del filtro discreto obtenido en el paso anterior.
Una vez filtrada la señal, debemos comprobar si la imagen ha cambiado y somos capaces de identificarla. Para ello debemos primero expresar este vector en forma de matriz mediante el comando v2m como se muestra a continuación: >> [imagen1] = v2m(imvecf,n); donde imagen1 es la nueva imagen filtrada, imvecf es el vector filtrado y n el número de columnas de la imagen (matriz) original. Ahora sólo nos resta representar de nuevo la señal para ver el efecto del filtrado. Obviamente debemos repetir este paso para cada uno de los filtros que diseñemos hasta conseguir una imagen lo más nítida posible.
Esta es la práctica a realizar. El profesor suministrará en la sesión de prácticas los ficheros necesarios. Los filtros a realizar son filtros elípticos (ver documentación adjunta)
_________________________________________ Ingeniería Biomédica. 5
Transmisión de señales. Se pretende construir en Simulink un esquema que permita la simulación de un sistema de transmisión de señales basado en la tecnología de modulación/demodulación FSK (Frequency Shift Keying). Este tipo de modulación ha sido empleada para la transmisión de datos en algunos modelos de módem. Su funcionamiento es relativamente sencillo en comparación con otros tipos de modulación, ya que tan solo consiste en conmutar entre dos frecuencias dependiendo de que el bit de la palabra binaria a emitir sea un cero o un uno lógico. Un esquema de este tipo de modulación se muestra en la figura 8.1.
Figura 8.1. Esquema de la modulación FS K.
En función de las distintas frecuencias de transmisión elegidas se deberá realizar la
apropiada conmutación entre ellas en función de los valores de la entrada, que será la palabra binaria. Por ejemplo, para una transmisión a 1200 baudios, el ancho de cada bit es de 1/1200 segundos. Se pueden elegir en este caso frecuencias de 12KHz cuando el bit está a uno lógico y de 120KHz cuando el bit esta a cero, con lo que se tendrán 10 periodos de ondas de 12KHz en cada bit a 1 lógico y 100 periodos de ondas de 120KHz en cada bit a 0 lógico. Para una transmisión en 2400 baudios el ancho de cada bit es de 1/2400 segundos y atendiendo al mismo criterio que en el caso de 1200 baudios se pueden seleccionar las frecuencias de 24KHz cuando el bit esta a 1 lógico y de 240 KHz cuando el bit esta a 0 lógico.
Se pretende construir un esquema en Matlab de un sistema de modulación-demodulación que permita la emisión tanto en 1200 baudios como en 2400 baudios. Con el fin de que el receptor pueda saber en que frecuencia se está emitiendo para demodular correctamente la información, se deberá añadir a la señal modulada una señal senoidal de 400 KHz dependiendo de la frecuencia de emisión. El receptor analizará la señal modulada y, si existe señal de 400 KHz, entenderá que la frecuencia de emisión es de 1200 baudios; si esta senoide no aparece en la señal modulada, se entenderá que la frecuencia de emisión es de 2400 baudios.
6 Aplicaciones del Procesamiento de Señal. __________________________________
8.6 Ingeniería Biomédica.
8.6.1. Introducción. Uno de los registros que más información aporta sobre un órgano vital como es el corazón es el electrocardiograma, abreviadamente ECG. Dicha información puede resultar, por si sola, vital para multitud de diagnósticos clínicos, dado que de todos los potenciales que se registran, para tratamientos clínicos, el generado por el corazón, es el único que presenta unas pautas que no varían demasiado de un individuo a otro, permitiendo la detección de multitud de anomalías cardiacas, tales como arritmias, bloqueos, etc. Desde un punto de vista eléctrico un ECG no es sino la detección a nivel de la piel de las señales eléctricas extracelulares que se generan en las fibras de conducción y sobre todo, musculares del corazón. Para hacernos una idea de la magnitud de estas señales captadas en la piel, en comparación con las señales generadas en otros órganos, podemos observar la tabla 8.2. TIPO DE SEÑAL AMPLITUD BANDA TECNICA Potencial de acción 50 mV – 150 mV 0,1 Hz – 1 KHz Microelectrodos Electrocardiograma 0,5 mV – 4 mV 0,01 Hz – 250 Hz Electrodo de superficie Electroencefalograma 5 µV – 300 µV 0,01 Hz – 150 Hz Electrodo de superficie Electromiograma 100 µV – 5 mV 0,01 Hz – 10 KHz Electrodos de aguja
Tabla 8.2. Rangos de señales biomédicas.
8.6.2. El corazón El corazón es una bomba pulsatoria encargada de mantener el flujo sanguíneo a la presión y caudal necesarios. Este órgano se compone de cuatro cámaras dos superiores (aurículas) y dos inferiores (ventrículos) comunicadas por dos válvulas. Para mantener el flujo sanguíneo se contrae rítmicamente dando lugar al ciclo cardiaco, de este modo, es la contractilidad de las fibras cardiacas la responsable del mantenimiento del flujo sanguíneo. Podemos, por tanto, considerar al corazón como un automatismo, ya que ciertas células especializadas, las del nódulo sinoauricular, en condic iones normales generan impulsos eléctricos responsables de la contracción rítmica y organizada del músculo cardíaco. Estos impulsos son conducidos por unas fibras especializadas y poco contráctiles, encargadas de distribuir y acondicionar estas señales hasta el músculo cardiaco. Para entender la relación que existe entre los potenciales de acción generados en el corazón y el ECG, es necesario describir el ciclo cardiaco, por lo que haremos un brevísimo resumen.
Tradicionalmente el ciclo cardiaco se ha dividido en dos estados. Al comenzar la diástole las válvulas A-V se abren, fluyendo la sangre hacia los ventrículos, gracias a la diferencia de presión existente. Cuando el ventrículo esta casi lleno, fluye algo de sangre hacia el corazón directamente desde las venas (diástasis). La ultima fase de la diástole es la sístole auricular
_________________________________________ Ingeniería Biomédica. 7
en la cual las aurículas se contraen, para que la sangre que aún queda en ellas pase a los ventrículos. La segunda fase del ciclo es la sístole, que comienza con una contracción ventricular isométrica (sin variación sensible de volumen) al mismo tiempo que se cierran las válvulas A-V, creciendo rápidamente la presión, hasta que alcanza un valor lo suficientemente alto como para abrir las válvulas aortica y pulmonar comenzando el vaciamiento, cuando la presión ya ha descendido la sangre sigue saliendo por contracción ventricular (protodiástole). Por ultimo tiene lugar la relajación isométrica, en la que se relajan las fibras ventriculares.
Para provocar la contracción de la aurícula y los ventrículos en las sístoles correspondientes, es necesaria la existencia de una fibras musculares en el corazón a las cuales llega el potencial de acción que provoca las contracciones, a este tipo de tejido se le denomina miocardio. Para provocar la contracción rítmica del corazón es necesario, también la existencia de fibras especializadas en la conducción de potenciales desde la zona donde se originan (nódulo sinoauricular) hasta la zona muscular (miocardio). El nódulo sinoauricular o nodo sinusal, localizado en la parte superior de la aurícula derecha, tiene la propiedad de ser autoexcitable, de tal forma que el potencial de acción generado en el nodo presenta el fenómeno de la despolarización diastólica, fenómeno que pasamos a describir. El potencial de acción disminuye durante la repolarización hasta alcanzar un valor negativo, el potencial se recupera en ese momento, aumentando de forma prácticamente lineal hasta valores menos negativos, alcanzándose en un determinado momento el umbral de disparo, generándose un nuevo potencial de acción, repitiéndose este ciclo aproximadamente con una frecuencia de 1 Hz. La secuencia de potenciales de acción generados en el nodo sinusal se propaga a las aurículas a través de fibras, provocando la contracción de estas. Además, los potenciales se desplazan hacia los ventrículos a través de las vías internodales hasta alcanzar el nodo aurico-ventricular, en el que se produce el retardo necesario para decalar temporalmente la sístole auricular de la ventricular, permitiendo las contracciones rítmicas del corazón.
8.6.3. Relación ECG y potencial de acción. Para poder establecer la relación entre el electrocardiograma y los potenciales de acción seria necesario modelizar el corazón, de tal forma que podamos obtener los potenciales extracelulares (medibles mediante electrodos en la piel) resultantes de los potenciales de acción cardiacos cuyo estudio permite la detección de anomalías cardiacas. Pero esto escapa a los propósitos de este trabajo, por lo que asumiremos el modelo de dipolo cardiaco sin justificar este modelo ni realizar una comparación con el resto de modelos. Realmente la relación que obtenemos es entre la parte del electrocardiograma correspondiente a la sístole y diástole ventricular y el potencial de acción del miocardio. En el electrocardiograma, es necesario distinguir entre la fase de despolarización del miocardio y la de repolarización. La despolarización dura aproximadamente 1 ms. en cada fibra y se propaga a una velocidad aproximada de 0.5 m/s, siendo por tanto la longitud de
8 Aplicaciones del Procesamiento de Señal. __________________________________
onda resultante ser de 0.5 mm.; ello hace que el potencial recogido por un electrodo en la piel este lo suficientemente lejos de las células (epicardio) como para que no se vea apenas afectado por la forma exacta del potencial de acción. Dadas así las cosas cabe esperar que durante la fase de despolarización, en el electrocardiograma solo se refleje el valor máximo del potencial de acción que se presenta a nivel de la piel. En cuanto a la fase de repolarización sabemos que esta se produce en todo el miocardio, teniendo en cuenta además que la repolarización en cada fibra dura unos 100 ms., y asumiendo una velocidad de propagación similar a la de la despolarización, resulta una longitud de onda de unos 0.4 cm., por lo que los electrodos situados en el torso están lo suficientemente cerca de las fibras cardiacas como para registrar la forma exacta del potencial de acción. Así la señal que representa un ECG es una deflexión (la onda T) que dependerá de estos dos factores.
8.6.4. Derivaciones electrocardiograficas. La posición de los electrodos sobre la piel se denomina derivación, dando como consecuencia que señales de ECG de diferentes derivaciones presenten formas de onda distintas, podríamos pensar que existen infinitas derivaciones pero solo unas pocas presentan interés clínico. § Derivaciones de extremidades. Cronológicamente las más antiguas, existen tres derivaciones de este tipo; los puntos de medida son los que se indican en la tabla 8.3.
Terminal positivo
Terminal negativo
Derivación I Brazo izquierdo
Brazo derecho
Derivación II Pierna izquierda
Brazo derecho
Derivación III Pierna izquierda
Brazo izquierdo
Tabla 8.3. Derivaciones de extremidades.
§ Derivaciones de extremidades aumentadas.
Estas derivaciones de extremidades aumentadas, utilizan los tres mismos puntos que las anteriores, para los terminales positivos; mientras que como terminal negativo se emplea un punto promedio, existen tres derivaciones de este tipo, como se muestraen la tabla 8.4.
Terminal Positivo Terminal negativo Der aVR Brazo Derecho Intermedio entre Brazo y Pierna Izquierda Der aVL Brazo Izquierdo Intermedio ente Pierna Izq. y Brazo Der Der a VF Pierna Izquierda Intermedio entre Brazo Der e Izq.
Tabla 8.4. Derivaciones de extremidades aumentadas. § Derivaciones precordiales. En las derivaciones precordiales uno de los electrodos, llamado explorador, se sitúa en una zona del hemotorax cerca del corazón mientras que el otro se sitúa muy lejos del corazón.
_________________________________________ Ingeniería Biomédica. 9
Al punto que situamos alejado, idealmente en el infinito, se le denomina punto central terminal de Wilson, este punto central es el punto común de tres resistencias de 5KΩ cuyos extremos opuestos se conectan a la pierna izquierda, brazo izquierdo y brazo derecho respectivamente.
8.6.5. Descripción del electrocardiograma standard. Para estudiar la forma de onda y el espectro frecuencial del ECG, deberemos elegir una de las derivaciones que hemos explicado como base de estudio, siendo los resultados extrapolables al resto de derivaciones dada la fuerte correlación que existe entre ellas. Elegiremos la derivación I dado que es una de las más empleada en cardiología.
§ Descripción del ECG normal. Podemos apreciar en la figura 8.5 un ciclo cardiaco completo correspondiente a una persona sin ninguna patología cardiaca. Cada una de las letras identifica a los lóbulos del ECG, que también reciben el nombre de ondas.
Figura 8.5. ECG de una persona sana.
La primera onda que aparece en un ECG normal es la onda P, que es consecuencia de la
actividad eléctrica que precede a la contracción de fibras de las aurículas durante la sístole auricular. Su amplitud tan baja se debe a que las fibras que la provocan existen en un número muy inferior a las del miocardio, responsables del resto de ondas; esta onda tiene una duración típica de 100 ms. Aproximadamente unos 100 ms después del final de la sístole auricular comienza la despolarización de las fibras del miocardio. Durante el periodo comprendido entre el final de la repolarización auricular y el principio de la despolarización ventricular (segmento P-R), la actividad eléctrica cardiaca se limita a un conjunto de fibras especializadas, no apreciándose potenciales al nivel de la piel.
La contracción de las fibras ventriculares produce tres ondas en el registro de derivación I
del ECG. La primera es la onda Q, de muy baja amplitud y polaridad negativa. La segunda es
S
0 0.2 0.4 0.6 0.8-0.2
0
0.2
0.4
0.6
0.8
Tiempo (s)
Amplitud (mV)
T
R
Q
P
10 Aplicaciones del Procesamiento de Señal. __________________________________
la onda R de gran amplitud frente a las otras y de polaridad inversa a la anterior. La ultima, la onda S semejante a la onda Q pero de amplitud ligeramente mayor. Estas tres ondas forman el complejo QRS cuya duración total es aproximadamente de 70 ms. Tal y como se aprecia en la figura, aproximadamente 210 ms después de comenzar la despolarización ventricular tiene lugar la repolarización, esto provoca la aparición de una onda T de mayor amplitud que la onda P y de la misma polaridad que la onda R. Por último apreciamos que más de la mitad del ECG (final de la onda T a principio de la onda P) está formado por una línea horizontal, denominada línea base que se corresponde a las fases isoeléctricas del ciclo cardiaco. § Espectro de frecuencias del ECG standard. El ancho de banda de un ECG standard es de unas pocas decenas de Hz, la frecuencia fundamental es de un valor aproximado de 1 Hz y el contenido en armónicos va disminuyendo hasta ser despreciable a partir de los 60 Hz.
En condiciones normales podemos afirmar que el espectro de frecuencias de un ECG
normal se extiende hasta los 150 Hz aproximadamente. En cuanto a amplitud, el nivel captado en la piel del complejo QRS es del orden de 1 mV.
8.6.6. Objetivo de la práctica. Se pretende desarrollar un programa en MATLAB que tenga como entrada un registro cardiográfico cualquiera y sea capaz de discernir entre un registro de una persona sana y otro patológico, indicando el tipo de patología posible y una idea de su gravedad. Para ello, y con el fin de diseñar el programa y comprobar que funciona correctamente, se proporcionan los ficheros muestreados a 500 Hz: sano (ecg normal), arlev (arritmia leve), argrav (arritmia grave), isqlev (isquemia leve), isqgrav (isquemia grave), taqlev (taquicardia leve) y taqgrav (taquicardia grave).
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 1
3.1. Introducción.
En MatLab®, se representa las imágenes en forma de matriz de datos con valor
de número real. A cada componente de dicha matriz se le asocia un paso referente a
un color de la paleta de colores activa en ese momento. Efectivamente, cualquier
imagen que podamos cargar en MatLab® tiene dos parámetros distintos asociados:
• Por un lado, la matriz que representa las posiciones de cada punto de la
imagen.
• El otro valor hace referencia al alcance dentro del mapa de colores que
se debe utilizar para representar la imagen.
De esta forma, por ejemplo, si se trabaja con un mapa de colores de escala de
grises y de 8 bits de profundidad, es decir, 256 tonos de grises (28
= 256), un 0
correspondería al color blanco, el 127 al gris y el 255 al negro.
Necesariamente tenemos que ver cómo es realmente la imagen, y ver si al
representarla podemos extraer algún tipo de información (útil y provechosa) de ella.
Si, por lo contrario, no somos capaces de identificar la imagen, precisaremos obtener
su espectro de frecuencias para comprobar si existe algún tipo de perturbación que
esté distorsionando la imagen.
3.2. Realización de la práctica.
Empleando los comandos image() y
colormap(), a la imagen imm y al valor map
respectivamente, se obtiene el resultado
mostrado en la imagen de la derecha.
Tal y como se puede observar en la
figura anterior, no podemos distinguir
ningún detalle de la imagen por lo que se
tratará de eliminar todo tipo de señal en
forma de perturbación ajena a la imagen original.
A continuación, obtendremos el espectro de frecuencias para buscar en que
rango de frecuencias se encuentra la perturbación que está distorsionando la imagen.
Para ello, primero debemos convertir esta imagen (almacenada como matriz) en un
vector mediante el comando m2v(). Una vez expresada la matriz como un vector,
debemos obtener su espectro de frecuencias (sólo es necesario el de magnitud)
empleando para ello la función espec():
>> [imvec,n] = m2v(imm);
>> [esf,esm]=espec(imvec,fs);
>> plot(esf,esm)
Figura 3.1: Imagen sin filtrar.
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 2
donde esf y esm son los vectores de frecuencia y la magnitud asociada a cada
frecuencia respectivamente y imvec y fs denotan el vector de la señal de imagen y la
frecuencia de muestreo. Para representar el espectro de frecuencias de la señal. En la
siguiente gráfica se representa el espectro de frecuencias de la imagen:
Figura 3.2: Espectro en frecuencias de la imagen con ruido.
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 3
En la figura 3.2.2 se observa que se tiene un pico a 5 Hz y otro a 95 Hz. Lo que
se tratará de hacer es obtener un filtro rechaza banda que elimine las frecuencias
entre 4.5 y 5.5 Hz. Puesto que las frecuencias se repiten cada ωs intervalos, y también
se repite en el semiplano negativo, con realizar sólo un filtro será más que suficiente.
3.A. Aplicación de un Filtro Butterworth.
A continuación intentaremos eliminar los picos de ruido diseñando un filtro
Butterworth elimina banda. Recordando los resultados obtenidos en prácticas
anteriores, sabemos que este tipo de filtro presentará un mejor comportamiento
conforme incrementemos el orden del filtro N. Comenzaremos probando con un filtro
de orden N = 2. El filtro calcula mediente el siguiente fragmento de código:
>> [b,a]=butter(2,[4.5/(fs/2),5.5/(fs/2)],'stop')
b =
0.9565 -3.6407 5.3773 -3.6407 0.9565
a =
1.0000 -3.7216 5.3754 -3.5598 0.9150
Su diagrama de bode, tal y como ya se ha comprobado en otras prácticas, es el
siguiente:
Figura 3.3: Diagrama de bode de un filtro de Butterworth de orden 2.
En la página siguiente se muestra la imagen obtenida una vez hemos filtrado la
imagen con ruido empleando un filtro de Butterworth de segundo orden. Tal y como
puede observarse, se ha obtenido una imagen más clara y carente de gran parte del
ruido que impedía identificarla correctamente.
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 4
Figura 3.4: Imagen filtrada con un filtro Butterworth de orden 2.
Figura 3.5: Espectro en frecuencias de la imagen filtrada.
Si aumentamos, a continuación, el orden del polinomio del filtro, tenemos que
para un orden de N = 4 se obtiene el siguiente diagrama de bode para este tipo de
filtro de Butterworth:
>> [b,a]=butter(4,[4.5/(fs/2),5.5/(fs/2)],'stop')
b =
0.9212 -7.0121 23.7014 -46.4317 57.6426 -46.4317 23.7014 -7.0121 0.9212
a =
1.0000 -7.4560 24.6857 -47.3727 57.6139 -45.4670 22.7396 -6.5919 0.8486
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 5
Figura 3.6: Diagrama de bode del filtro de orden 4.
Figura 3.7: Imagen filtrada con un filtro Butterworth de orden 4.
Como se ve en la gráfica 3.2.6 realmente se eliminará el ruido que está a una
frecuencia de 5 Hz, pero el que está 4.5 o 5.5 Hz no se atenuará lo suficiente.
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 6
Finalmente, para N = 8 se obtiene el siguiente diagrama de bode para un filtro
Butterworth:
Figura 3.8: Diagrama de bode del filtro de orden 8.
Figura 3.9: Imagen filtrada con un filtro Butterworth de orden 8.
Tal y como podemos observar, no se puede identificar nada en la imagen
puesto que la utilización de un filtro de orden 8 presenta en este caso un peor
comportamiento que los anteriores filtros.
PRÁCTICA 3: FILTRADO DE SEÑALES
PROCESAMIENTO DE IMÁGENES
Identificación de
Sistemas
Jaime Martínez Verdú 7
3.B. Filtro elíptico.
Para diseñar un nuevo filtro en esta práctica nos basamos en el comando
ellipord. Tenemos que los parámetros que debemos introducir en el filtr elíptico son
N = 5 y de ωn = [0,0907 0,11] mediante el comando ellipord. Como resultado
obtenemos la función de transferencia del filtro. El diagrama de Bode del filtro es:
Figura 3.10: Diagrama de bode del filtro elíptico.
Si se filtra la imagen se obtiene la siguiente imagen:
Figura 3.11: Imagen filtrada con un filtro elíptico.
1
1. Objetivos En el desarrollo teórico del tema de identificación se ha estudiado el método de identificación paramétrica basado en el algoritmo de Mínimos Cuadrados. Este algoritmo es de gran importancia debido a que a partir de él se deducen otros de mayor complejidad que se adaptan a problemas concretos. Es por esto por lo que, por medio de esta práctica, se va a desarrollar los aspectos vistos en teoría dentro de un marco práctico que ayude a comprender el funcionamiento del mismo. Así, en esta práctica se pretenden alcanzar los siguientes objetivos:
• Comprensión práctica de la identificación de sistemas • Asociación teórico – práctica de los conceptos de “modelado” e
“identificación” • Conocimiento y aplicación de la técnica de Mínimos Cuadrados para la
obtención de modelos discretos • Utilización de la aplicación Matlab/Simulink para realizar los procesos de
identificación y de validación mediante simulación.
2. Identificación de Sistemas. Método de Mínimos Cuadrados Para el diseño de un regulador es importante, si no imprescindible, disponer de la función de transferencia de sistema a controlar. Por tanto, en el caso de no disponer del citado modelo, éste se deberá estimar a través de la identificación. Así pues, se podría decir que la identificación de sistemas e un planteamiento experimental para la construcción de modelos. Dicho planteamiento se puede estructurar en los siguientes apartados:
a) Planificación experimental: consiste en la excitación del sistema a identificar mediante una determinada señal de entrada y registrar para cada instante la entrada y la salida producida por la misma.
b) Selección de la estructura del modelo: Atendiendo a la salida del sistema
observada en el apartado anterior, se deduce el aspecto de la función de transferencia del sistema a identificar (primer orden, segundo, etc., retardos…)
MODELADO E IDENTIFICACIÓN DE SISTEMAS 5º INGENIERÍA INDUSTRIAL
PRÁCTICA 4
IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Curso 2002-2003
2
c) Estimación de parámetros: Supuesta la estructura del modelo del sistema, se obtiene, a través de diversas técnicas de identificación el valor de los parámetros incógnitas.
d) Validación: Una vez obtenido el modelo es necesario comprobar si éste
responde, ante la misma señal de entrada (u otras), de un modo aceptablemente similar como el sistema original. Si la validación resulta insatisfactoria repetiríamos los pasos desde el apartado b), seleccionando una nueva estructura.
2.1 El principio de los Mínimos Cuadrados El principio de los Mínimos Cuadrados indica que los parámetros de un modelo se deben elegir de tal forma que
La suma de los cuadrados de las diferencias entre los valores de la salida observados (reales) y los estimados, multiplicada por factores que midan el grado de precisión sea un mínimo.
Así pues, considerando un modelo genérico
dn
n
mm zzaza
zbzbbzG −
−−
−−− ⋅
+++++
=LL
11
1101
1)(
la identificación del mismo consistirá en la estimación de los parámetros desconocidos a1, a2 ,…, an, b0, b1, …, bm. Para ello procederemos como se expone a continuación. Dados los k+1 valores de la entrada y los k de la salida, la siguiente salida estimada,
)1(ˆ +ky será
θTkxky 1)1(ˆ +=+
donde [ ]
[ ])1(,),(),1(),1(,),1(),(,,,,,,,
1
1021
dmkudkudkunkykykyxbbbaaa
k
mn
−+−−−++−−−−−==
+ LLLLθ
La discrepancia entre la salida real en el instante k+1, y(k+1) y la estimada
)1(ˆ +ky viene dada por la siguiente expresión de error
)1(ˆ)1()1( +−+=+ kykyke Repitiendo este planteamiento para N medidas sucesivas, las salidas correspondientes a esos N instantes se pueden expresar mediante la ecuación matricial siguiente
−+−−−+−+
−+−−+−+
−+−−−+
+−−−+−−+−
+−−−+−
+−−−−−
=
+
+
+
m
n
b
b
a
a
dNpkudNkudNku
dmkudkudku
dmkudkudku
NnkyNkyNky
nkykyky
nkykyky
Nky
ky
ky
M
M
L
MMML
L
L
MMML
L
M 0
1
)()1()(
)2()1()2(
)1()()1(
)()2()1(
)2()()1(
)1()1()(
)(
)2(
)1(
3
Dicha ecuación (Y=Xθ) presenta infinitas soluciones. De todas ellas, elegiremos, utilizando el método de Mínimos Cuadrados, aquella que minimice el error. En otras palabras, el estimador de mínimos cuadrados será aquel que proporcione los valores de los parámetros que minimizan la suma de los cuadrados de los errores, Jk.
∑+
+=
=Nk
kik ieJ
1
2 )(21
Minimizando dicho índice, los parámetros que minimizan el error se obtienen resolviendo el siguiente producto matricial
YXXX TT 1)(ˆ −=θ La matriz (XTX) es cuadrada, y en determinadas condiciones, que se denominan de excitación permanente, es invertible. Como consecuencia de esta característica, para esta técnica de identificación no sirven las entradas usuales como escalón, impulso, etc., ya que no provocarán una excitación permanente y hacen que dicha matriz no sea invertible, lo cual hace impracticable la identificación.
3. Identificación de un sistema de primer orden En esta primera parte se identificará un sistema de primer orden utilizando la técnica de los mínimos cuadrados. La función de transferencia a encontrar tendrá pues la siguiente forma:
dzazb
zG −− ⋅
+= 11
)(
donde a y b son los parámetros a estimar y d es el retardo que presenta el sistema a identificar. Además el sistema en cuestión se está operando mediante computador a un periodo de muestreo de 1 segundo. Con estas consideraciones previas iniciaremos la identificación del sistema al cual se le proporciona las entradas expuestas a continuación.
a) La primera entrada proporcionada consiste en la secuencia uk=1,0,1,0,1,0,0,…
b) b) la segunda entrada utilizada para excitar al sistema a identificar corresponde a la secuencia uk=1,0,1,0,1,1,1,…
Con dichas entradas se excitó al sistema dos veces (una con cada entrada) y las salidas obtenidas para cada experiencia se muestran en la figura 1 y 2. Además, en la tabla 1 se presenta los datos numéricos más relevantes de la salida obtenida al realizar ambos experimentos.
4
Figura 1. Salida del sistema con la entrada a)
Figura 2. Salida del sistema con la entrada b)
Tabla 1. Valores de la salida para las entradas a) y b)
Entrada a) Entrada b) Instante (k) Salida (y) Instante (k) Salida (y)
0 0.0000 0 0.0000 1 0.5000 1 0.5000 2 0.2500 2 0.2500 3 0.6250 3 0.6250 4 0.3125 4 0.3125 5 0.6562 5 0.6562 6 0.3281 6 0.8281 7 0.1641 7 0.9141 8 0.0820 8 0.9570 9 0.0410 9 0.9785 10 0.0205 10 0.9893 …. … …. … 30 0.0000 30 1.0000
5
Una vez conocidas las medidas se procederá a la identificación de los parámetros a y b. Para ello, y según el desarrollo realizado en el apartado anterior, realizaremos el siguiente planteamiento:
⋅
−+−+−
−++−−+−
=
+
++
=ba
dNkuNky
dkukydkuky
Nky
kyky
Y
)()1(
)2()1()1()(
)(
)2()1(
MMM
donde k se corresponde con el instante en el que se produce la primera salida significativa del sistema, d es el retardo, N el número de medidas sucesivas empleadas para la estimación y a y b son los parámetros a estimar. La estimación de los parámetros se obtendrá como resultado de evaluar la expresión
YXXX TT 1)(ˆ −=θ Consideraremos para la identificación, un número de muestras N = 6. Este desarrollo se aplicará dos veces, una para cada una de las entradas y sus correspondientes salidas. Una vez identificado el sistema comprobaremos la validez del mismo mediante simulación. En dicha simulación se deberá obtener el mismo resultado que se presenta en las figuras 1 y 2 introduciendo como entrada al sistema las entradas a) y b). Para introducir dichas entradas al proceso utilizaremos en Simulink un bloque From Workspace cuyos parámetros serán (para cada entrada):
Ea = [0 1; 1 0; 2 1; 3 0; 4 1; 5 0; 6 0; 7 0; 8 0; 9 0] Eb = [0 1; 1 0; 2 1; 3 0; 4 1; 5 1; 6 1; 7 1; 8 1; 9 1]
4. Identificación de un sistema de segundo orden En este caso se tiene un sistema al cual se le ha proporcionado la entrada que en el apartado anterior hemos denominado b). Los valores numéricos de la salida obtenida se muestra en la tabla 2. En la figura 3 se muestra gráficamente la salida de dicho sistema para la entrada elegida.
6
Tabla 2. Salida del sistema de segundo orden para la entrada b)
Instante (k) Salida (y) 0 0.0000 1 1.0000 2 1.1000 3 1.3200 4 0.9180 5 1.1020 6 1.8491 7 2.2348 8 2.2122 9 2.0675 10 1.9884 …. … 30 2.0270
Figura 3. Salida del sistema de segundo orden con entrada b)
En principio, cuando se realiza la identificación de un sistema, no se conoce la estructura de la función de transferencia del mismo. Se puede, a priori, establecer algún tipo de hipótesis, y si esto no es posible, se comienza asumiendo que el sistema corresponde a una función de transferencia de primer orden. Así, el método a seguir consiste en suponer una determinada estructura para la función de transferencia, estimar los parámetros y comprobar la validez del modelo obtenido. Si la respuesta obtenida es lo suficientemente similar a la del proceso, la tarea de identificación ha terminado; en caso contrario debemos modificar la hipótesis de partida (suponer otra estructura para la función de transferencia) y volver a estimar los parámetros de la misma.
7
Así pues, suponiendo que desconocemos la estructura de la función de transferencia de este sistema, asumiremos en principio que se trata de un sistema de primer orden y si el resultado no es satisfactorio supondremos una estructura de segundo orden. Por tanto, aparte de la identificación para una función de transferencia de primer orden, las identificaciones para la función de transferencia de segundo orden corresponderán a las siguientes suposiciones sobre la estructura de la misma:
F.D.T. 1 F.D.T. 2 F.D.T. 3 dz
zazab
zG −−− ⋅
++= 2
21
1
0
1)(
dzzaza
zbbzG −
−−
−
⋅++
+= 2
21
1
110
1)(
dzzazazbzbb
zG −−−
−−
⋅++++
= 22
11
22
110
1)(
El proceso de identificación terminará cuando el modelo obtenido para una de las funciones de transferencia anteriores tenga un comportamiento equivalente a la salida real de proceso. En el caso más complejo (F.D.T. 3), el planteamiento matricia l para la identificación será:
⋅
−−+−−+−+−−−−+−
−−+−+−+−−−−−+−−−
=
+
++
2
1
0
2
1
)1()1()()2()1(
)()1()2()()1()1()()1()1()(
)(
)2()1(
b
bbaa
dNkudNkudNkuNkyNky
dkudkudkukykydkudkudkukyky
Nky
kyky
MMMMMM
La estimación de los parámetros se obtendrá resolviendo la ecuación matricial:
YXXX TT 1)(ˆ −=θ Se debe pues, calcular la función de transferencia correcta del modelo utilizando para ello la simulación como método de validación.
5. Identificación de un sistema con ruido Una vez identificado el sistema anterior, comprobaremos en este apartado, qué comportamiento presenta el método de Mínimos Cuadrados cuando el sistema a identificar se encuentra perturbado por un ruido. Para ello, al sistema del apartado anterior se ha superpuesto un ruido, por lo que para la entrada b) utilizada anteriormente, se ha obtenido la salida que se detalla en la tabla 3. La tarea a realizar, consiste en este caso en identificar el sistema con dicha combinación entrada – salida y utilizando la función de transferencia correcta deducida del apartado anterior.
8
Tabla 3. Salida del sistema de segundo orden con ruido para entrada b)
Instante (k) Salida (y) 0 0.0000 1 0.9802 2 1.1098 3 1.3794 4 0.8979 5 1.0859 6 1.8955 7 2.3221 8 2.2904 9 2.0957 10 1.9207 …. … 30 2.0245
6. Informe a presentar Se debe entregar un informe que contenga los aspectos relatados a continuación:
• Identificación de un sistema de primer orden: Matrices X e Y y funciones de transferencia para ambas entradas así como las gráficas que se crean convenientes.
• Identificación de un sistema de segundo orden:
o Identificación como sistema de primer orden: matrices X, Y y función
de transferencia así como la gráfica de la salida del modelo. ¿Es válido el modelo obtenido? ¿Se podría haber obviado esta identificación? ¿Porqué?
o Identificación como sistema de segundo orden: matrices X, Y y funciones de transferencia obtenidas así como las gráficas de las salidas de los modelos.
• Identificación de un sistema con ruido : matrices X, Y, función de
transferencia y gráfica de la salida del modelo. ¿A qué conclusión se llega tras la simulación?
Aparte se puede incluir cualquier aspecto de la práctica que se quiera hacer notar.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 1
4.1. Introducción.
Uno de los objetivos fundamentales, que promueve el desarrollo de esta cuarta
práctica, es el de aprender e instruirse en el método de identificación de carácter
paramétrico basado en el algoritmo de mínimos cuadrados.
Nuestro estudio no será excesivamente intenso ni se realizará de forma
profunda, sino que tan sólo se trata de arañar la superficie de éste algoritmo, como si
de un mar de posibilidades se tratara. No obstante, a pesar de la levedad de nuestro
estudio, es conveniente recalcar la gran importancia de este algoritmo debido
fundamentalmente a que a partir de él, se deducen otros de mayor complejidad que se
adaptan a problemas concretos.
Así pues, considerando un modelo genérico como el que sigue:
n
n
m
m
zaza
zbzbbzG −−
−−−
++++++
=···1
···)(
11
1101
, la identificación del mismo consistirá en la estimación de los parámetros
desconocidos a1, a2 ,…, an, b0, b1, …, bm.
El vector Y de salida se puede expresar de la siguiente forma:
⋮ ⋯ ⋯ ⋯ ⋯ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋯ ⋮⋮
En efecto, este sistema de ecuaciones Θ presenta infinitas
soluciones pues el sistema es compatible indeterminado. En cualquier caso, utilizando
el método de Mínimos Cuadrados, seleccionaremos aquella solución que minimice el
error cuadrático.
En otras palabras, el estimador de mínimos cuadrados será aquel que
proporcione los valores de los parámetros que minimizan la suma de los cuadrados de
los errores, Jk.
∑+
+=
=Nk
ki
kieJ
1
2 )(2
1
Minimizando dicho índice, los parámetros que minimizan el error se obtienen
resolviendo el siguiente producto matricial
YXXXTT 1)( −=θ
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 2
4.2. Identificación de un sistema de primer orden.
En esta primera parte se identificará un sistema de primer orden utilizando la
técnica de los mínimos cuadrados. La función de transferencia a encontrar tendrá pues
la siguiente forma:
dz
az
bzG
−−+
=11
)(
donde a y b son los parámetros a estimar y d es el retardo estructural o
intrínseco que presenta el sistema a identificar, que en nuestro caso es uno.
Con estas consideraciones previas, iniciaremos la identificación del sistema al
cual se le proporciona las entradas expuestas a continuación:
a) La primera entrada proporcionada consiste en la secuencia uk = 1,0,1,0,1,0,0,….
b) La segunda entrada utilizada para excitar al sistema a identificar corresponde a la
secuencia uk = 1,0,1,0,1,1,1,….
En la siguiente tabla se expone los valores de la salida para distintas entradas:
Entrada a Entrada b
Instante (k) Salida (y) Instante (k) Salida (y)
0 0 0 0
1 0.5 1 0.5
2 0.25 2 0.25
3 0.625 3 0.625
4 0.3125 4 0.3125
5 0.6562 5 0.6562
6 0.3281 6 0.8281
7 0.1641 7 0.9141
8 0.082 8 0.9570
9 0.0410 9 0.9785
10 0.0205 10 0.9893
… … … …
30 0 30 1
Considerando para la identificación, un número de muestras N = 6, las matrices e para la entrada a y b son las siguientes:
−−−−−+
=
06562.013125.006250.012500.005000.010000.0
aX
=
3281.06562.03125.06250.02500.05000.0
aY
−−−−−+
=
06562.013125.006250.012500.005000.010000.0
bX
=
8281.06562.03125.06250.02500.05000.0
bY
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 3
El código empleado ha sido el siguiente:
>> XA=[0,1;-0.5,0;-0.25,1;-0.625,0;-0.3125,1;-0.6562,0]
XA =
0 1.0000
-0.5000 0
-0.2500 1.0000
-0.6250 0
-0.3125 1.0000
-0.6562 0
>> YA=[0.5000;0.2500;0.6250;0.3125;0.6562;0.3281]
YA =
0.5000
0.2500
0.6250
0.3125
0.6562
0.3281
>> (XA'*XA)^(-1)*XA'*YA
ans =
-0.5000
0.5000
>> XB=[0,1;-0.5,0;-0.25,1;-0.625,0;-0.3125,1;-0.6562,0]
XB =
0 1.0000
-0.5000 0
-0.2500 1.0000
-0.6250 0
-0.3125 1.0000
-0.6562 1.0000
>> YB=[0.5000;0.2500;0.6250;0.3125;0.6562;0.8281]
YB =
0.5000
0.2500
0.6250
0.3125
0.6562
0.8281
>> (XB'*XB)^(-1)*XB'*YB
ans =
-0.5000
0.5000
En ambos casos se obtiene la misma función de transferencia:
115.01
5.0)( −
−−= z
zzG
a
115.01
5.0)( −
−−= z
zzG
b
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 4
Figura 4.1: Salida del sistema simulada con la entrada a.
Figura 4.2: Salida del sistema simulada con la entrada b.
Las gráficas obtenidas en la simulación coinciden exactamente con las que se
deberían, por lo que se puede afirmar que la identificación ha sido correcta.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 5
4.3. Identificación de un sistema de segundo orden
En este caso, tenemos otra situación distinta de modo que los datos principales
vienen enumerados a continuación. En la siguiente tabla se expone los valores de la
salida para la entrada b:
Instante(k) Salida(k)
0 0
1 1
2 1.1
3 1.32
4 0.918
5 1.102
6 1.8491
7 2.2348
8 2.2122
9 2.0675
10 1.9884
… …
30 2.027
A. Identificación como sistema de primer orden.
Al igual que en el caso anterior, tomaremos para el proceso de identificación un
número de muestras N = 6. En efecto, las matrices e para nuestro algoritmo
son las siguientes:
−−−−−+
=
1102.11918.00320.11100.10000.11000.0
X
=
849.1102.1918.0320.1100.1000.1
Y
Luego la función de transferencia viene dada por:
1
10.75551
0.7285)( −
−−= z
zzG
El resultado obtenido no se parece a la salida deseada y ni siquiera cuando el
tiempo tiende a infinito toma el valor final deseado pues en lugar de tender a 2 tiene
una tendencia a 3 aproximadamente.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 6
>> X=[0,1;-1,0;-1.1,1;-1.32,0;-0.918,1;-1.102,1]
X =
0 1.0000
-1.0000 0
-1.1000 1.0000
-1.3200 0
-0.9180 1.0000
-1.1020 1.0000
>> Y=[1;1.1;1.32;0.918;1.102;1.849]
Y =
1.0000
1.1000
1.3200
0.9180
1.1020
1.8490
>> (X'*X)^(-1)*X'*Y
ans =
-0.7555
0.7285
Si se simula se obtiene la siguiente salida:
Figura 4.3: Salida del sistema simulada supuesto de primer orden.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 7
B. Identificación como sistema de segundo orden de Tipo 1.
La matriz es la misma que en el apartado anterior y la matriz es la
siguiente:
−−−−−−
−−−
=
1918.0102.11320.1918.00100.1320.111100.1001100
X
No volveremos a implementar el código puesto que es muy sencillo y no
proporciona información de interés. Después de escribir las líneas de código, la función
de transferencia obtenida ha sido la siguiente:
1
21 639.01.15761
0.9322)( −
−− +−= z
zzzG
Figura 4.4: Salida del sistema simulada supuesto de primer orden de Tipo 1.
La salida obtenida no es exactamente la salida propuesta por el enunciado. No
existe gran diferencia aunque, no obstante, podemos achacarle este error de similitud
a no haber escogido una buena aproximación.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 8
C. Identificación como sistema de segundo orden de tipo 2.
La matriz es la misma que en el apartado anterior y la matriz es la
siguiente:
−−−−−−
−−−
=
11918.0102.101320.1918.010100.1320.1011100.110010100
X
No volveremos a implementar el código puesto que es muy sencillo y no
proporciona información de interés. Después de escribir las líneas de código, la función
de transferencia obtenida ha sido la siguiente:
1
21
-1
34.06.01
0.5z1)( −
−− +−+= z
zzzG
Figura 4.5: Salida del sistema simulada supuesto de primer orden de Tipo 2.
Tal y como se puede observar en la gráfica, hemos obtenido un resultado muy
parecido a la propuesta por el enunciado; incluso, podríamos decir que es idéntica, lo
cual nos podría inducir a pensar que la estructura del sistema a identificar podría ser
de tipo 2. No obstante, tal y como sugiere el enunciado probaremos con uno de tipo 3.
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 9
D. Identificación como sistema de segundo orden de tipo 3.
La matriz es la misma que en el apartado anterior y la matriz es la
siguiente:
−−−−−−
−−−
=
011918.0102.1101320.1918.0010100.1320.11011100.10100100100
X
La función de transferencia viene dada por:
1
21
26-1
34.06.01
10·83438.00.5z1)( −
−−
−−
+−++= z
zz
zzG
Se observa que la función de transferencia es semejante a la anterior puesto
que tan sólo se ha añadido un término cuyo coeficiente es insignificante. Si se simula
se obtiene la siguiente salida:
Figura 4.6: Salida del sistema simulada supuesto de primer orden de Tipo 3.
Llegamos a la conclusión de que la mejora obtenida pasando de un tipo 2 a uno
3 es imperceptible (tan sólo debemos comparar las gráficas 4.5 y 4.6).
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 10
4.4. Identificación de un sistema con ruido.
Para finalizar con esta práctica, procederemos a identificar el sistema pero esta
vez, a partir de una salida con ruido. A continuación, en la siguiente tabla vienen
detallados los valores de la salida, perturbada por un ruido desconocido, para la
entrada:
Instante(k) Salida(k)
0 0
1 0.9802
2 1.1098
3 1.3794
4 0.8979
5 1.0859
6 1.8955
7 2.3221
8 2.2904
9 2.0957
10 1.9207
… …
30 2.0245
Considerando para la identificación, un número de muestras N = 6 y un sistema
de tipo 3, las matrices e para la entrada dada son las siguientes:
−−−−−−−−
−=
0118979.00859.11013794.18979.00101098.13794.11019802.01098.101009802.000100
X
=
8955.10859.18979.03794.11098.19802.0
Y
Luego la función de transferencia viene dada por:
1
21
-1
3810.06451.01
0.4273z1.0286)( −
−− +−+= z
zzzG
Tal y como podemos observar, la función de transferencia obtenida es similar a
la obtenida en el apartado c obteniendo un error máximo absoluto de
aproximadamente 0.07 en los coeficientes de las potencias negativas de z:
1
21
-1
34.06.01
0.5z1)( −
−− +−+= z
zzzG
1
21
-1
3810.06451.01
0.4273z1.0286)( −
−− +−+= z
zzzG
PRÁCTICA 4: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS
Identificación de Sistemas
Jaime Martínez Verdú 11
Si se simula se obtiene la siguiente salida:
Figura 4.7: Salida del sistema simulada supuesto de primer orden de Tipo 2 con ruido.
Si comparamos la gráfica 4.5 con la gráfica 4.7 se observa que ambas salidas no
son exactamente iguales (aunque el parecido es altísimo), por lo que podemos afirmar
que el algoritmo empleado en la práctica es sensible al ruido y no es capaz de escapar
a su influencia.
El sistema identificado en este apartado corresponde a uno con ruido y, por esa
razón, al simular empleando Simulink, obviamente, se obtiene como salida aquella que
se obtenía utilizando el sistema original más el ruido.
1
1. Objetivos En el desarrollo teórico del tema de identificación se ha estudiado el método de identificación paramétrica basado en el algoritmo de Mínimos Cuadrados Recursivo. Este algoritmo es de gran importancia debido a que permite realizar la identificación de los parámetros de un sistema “en línea” lo cual resulta imprescindible para abordar el estudio de estructuras de control adaptativo. Es por esto por lo que, por medio de esta práctica, se va a desarrollar los aspectos vistos en teoría dentro de un marco práctico que ayude a comprender el funcionamiento del mismo. Así, en esta práctica se pretenden alcanzar los siguientes objetivos:
• Comprensión práctica de la identificación de sistemas “en línea” mediante el algoritmo de Mínimos Cuadrados Recursivo.
• Conocimiento y aplicación de la técnica de Mínimos Cuadrados Recursivo para la obtención de modelos discretos
• Utilización de la aplicación Matlab/Simulink para realizar los procesos de identificación y de validación mediante simulación.
Aunque la práctica se realiza con un conjunto de datos suministrados por el profesor, el desarrollo de la misma debe permitir comprender cómo se realizaría una identificación en línea en tiempo real con un sistema físico real.
2. Identificación de Sistemas. Método de Mínimos Cuadrados Recursivo
El algoritmo de Mínimos Cuadrados Recursivo permite estimar en tiempo real los parámetros de un determinado sistema. Obviamente, esta variante del algoritmo de Mínimos Cuadrados está sujeta a las mismas restricciones que su homólogo iterativo (conocimiento a priori de la estructura de la función de transferencia del modelo, y de su retardo, etc.). El algoritmo de Mínimos Cuadrados Recursivo se puede resumir matemáticamente en las siguientes fórmulas:
MODELADO E IDENTIFICACIÓN DE SISTEMAS 5º INGENIERÍA INDUSTRIAL
PRÁCTICA 5
IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Curso 2002-2003
2
1111
111
111
11
111
1
1
++++
+++
+++
++
+++
+=−=
+=
+−=
kkkkk
kT
kkk
kkT
k
kk
kkT
k
kT
kkkkk
exK
xye
xPxP
K
xPx
PxxPPP
θθθ
donde: θk+1 denota el vector de parámetros estimados en un instante θk denota el vector de parámetros estimados en el instante anterior Kk+1 es una matriz de ganancias xk+1 es el vector de regresión en ese instante ek+1 es el error de predicción Así pues, dadas las fórmulas expuestas anteriormente, los pasos a seguir para la utilización de este algoritmo se describen a continuación:
1. Definir los valores iniciales del vector θ y de la matriz P 2. Tomar medidas de las señales de entrada y salida 3. Formar el vector de regresión x 4. Calcular la matriz de ganancias K 5. Calcular el error de predicción e 6. Calcular los parámetros estimados 7. Calcular la matriz P para el instante siguiente 8. Volver al punto 2 en el siguiente muestreo
Como se puede observar, se necesita a priori dar un valor inicial a la matriz P y al vector de parámetros estimados. La matriz P se suele inicializar como P = a I(m+n)x(m+n) y θ, si no se tiene ningún tipo de conocimiento acerca de los parámetros, a 0. El problema que presenta este algoritmo es el apagado del mismo (incapacidad para detectar cambios en parámetros) a lo largo del tiempo debido a que la traza de la matriz P se hace muy pequeña. Esto se puede solucionar empleando el algoritmo de Mínimos Cuadrados Recursivo con Factor de Olvido. Este algoritmo introduce un factor de olvido, λ, de forma que se pondera más a las muestras más recientes, permitiendo así detectar un posible cambio de parámetros cuando el algoritmo lleva un tiempo considerable funcionando y la traza de la matriz P es muy pequeña. Matemáticamente, dicho algoritmo se puede resumir en las siguientes fórmulas, siendo su procedimiento de aplicación el mismo que en el caso anterior:
3
1111
111
111
11
111
1
++++
+++
+++
++
+++
+=−=
+=
+−=
kkkkk
kT
kkk
kkT
k
kk
kkT
k
kT
kkkkk
exKxye
xPxP
K
xPxPxxP
PP
θθθ
λ
λλ
Dependiendo del valor de λ, 0 < λ <1, se obtienen los siguientes comportamientos:
• λ pequeño: Se descartan datos pasados demasiado pronto, los elementos de las matrices P y K se hacen grandes, lo cual supone la posibilidad de detección de posibles cambios en parámetros
• λ grande: (cercano a la unidad) se presentan problemas a la hora de detectar cambios de parámetros.
Normalmente se suele elegir λ entre 0.9 y 0.98 pero la elección depende bastante de los valores asociados a los parámetros del sistema.
3. Realización de la práctica La práctica a realizar consiste en:
• Identificar un modelo de segundo orden cuya función de transferencia corresponde a
dzzaza
zbbzG −
−−
−
⋅++
+= 2
21
1
110
1)(
mediante los datos de entrada salida que suministrará el profesor. El periodo de muestreo empleado ha sido de T = 0.1 seg.
• Realizar la experiencia anterior pero con un conjunto de datos de entrada –
salida donde se produce una variación de parámetros. Dicha experiencia va a permitir comprobar el apagado del algoritmo y cómo se evita éste mediante la utilización del Algoritmo de Mínimos Cuadrados Recursivo con Factor de Olvido.
Recordemos, por si puede servir de ayuda, que el modelo matricial de regresión para esta estructura de segundo orden viene dado por:
⋅
−−+−+−−−−+−
−+−+−+−−−+−−−
=
+
++
1
0
2
1
)1()()2()1(
)1()2()()1()()1()1()(
)(
)2()1(
b
baa
dNkudNkuNkyNky
dkudkukykydkudkukyky
Nky
kyky
MMMMM
4
Notemos, que aunque la experiencia se va a realizar mediante el algoritmo recursivo fuera de línea, la mecánica del trabajo a realizar se adapta perfectamente a su realización en línea. Los datos para realizar ambas experiencias se suministran en el fichero Matlab datos.mat que contiene las siguientes variables: Variable Nº Datos Descripción U1 1001 Entrada para experiencia sin cambio de parámetros Y1 1001 Salida para experiencia sin cambio de parámetros Yesc1 1001 Salida ante entrada escalón para experiencia sin cambio de
parámetros (para validar el modelo obtenido) U2 1001 Entrada para experiencia con cambio de parámetros Y2 1001 Salida para experiencia con cambio de parámetros Yesc2 1001 Salida ante entrada escalón para experiencia con cambio de
parámetros (para validar el modelo obtenido) Lo primero que se debe hacer es un programa Matlab que implemente el algoritmo de Mínimos Cuadrados Recursivo. Dicho programa tendrá la siguiente forma: % Identificación mediante RLS % Inicialización de variables theta = ...; alpha = ...; % Para inicializar la matriz P. Por ejemplo 10 lambda = ...; % En el caso de tener factor de olvido % Ojo, en este caso también cambia la formulación % de las matricesP y K P = ...; % Puesto que los vectores en Matlab comienzan por % la componente 1, conviene realizar la primera % estimación antes de entrar en el bucle x = ...; % Vector de regresión de la primera estimación K = ...; % Matriz de ganancias de la primera estimación e = ...; % Error de predicción de la primera estimación theta = ...; % Primera estimación % Guardamos los parámetros estimados en cada iteración % así como la traza de la matriz P params = theta; traza = trace(P); % El valor final de este bucle depende de las medidas que tengamos for i=1:Nmuestras x = ...; % Calculamos el nuevo vector de regresión P = ...; % Calculamos la nueva matriz P K = ...; % Calculamos la nueva matriz K e = ...; % Calculamos el nuevo error de predicción theta = ...; % Estimamos los nuevos parámetros % Guardamos traza y parámetros params = [params theta]; traza = [traza trace(P)]; end
5
% Representación gráfica de parámetros y traza figure; plot(params(1,:)); hold; plot(params(2,:),'--'); plot(params(3,:),'r'); plot(params(4,:),'r--'); figure; plot(traza); Obviamente, nuestro algoritmo utilizará las variables de entrada – salida que tenemos en el workspace de Matlab. Así pues, las tareas a realizar son:
a) Determinación del retardo que presenta el sistema. b) Identificación del modelo del proceso mediante Mínimos Cuadrados Recursivo
utilizando los datos Y1, U1. Utilizar a =10 y repetir la experiencia con a =50. c) Validación del los modelos obtenido en a) mediante simulación ante entrada
escalón y comparando con la salida Yesc1. d) Identificación del modelo del proceso mediante Mínimos Cuadrados Recursivo
utilizando los datos Y2, U2. e) Validación del modelo obtenido en d) mediante simulación ante entrada escalón
y comparando con la salida Yesc2. f) Identificación del modelo del proceso mediante Mínimos Cuadrados Recursivo
con Factor de Olvido utilizando los datos Y2, U2. g) Validación del modelo obtenido en f) mediante simulación ante entrada escalón
y comparando con la salida Yesc2. h) Repetir el apartado f) para distintos valores del factor de olvido comprobando el
efecto sobre la identificación obtenida y sobre la traza de la matriz P. ¿Qué sucede para valores pequeños del factor del olvido?
4. Informe de prácticas a entregar En el informe de prácticas se debe detallar:
• Procedimiento detallado de la identificación de los sistemas, comentando y justificando todos los aspectos y valores de parámetros empleados en el algoritmo.
• Gráficas de convergencia de parámetros y traza de la matriz P comentando los aspectos relevantes de éstas para cada identificación.
• Justificación de los distintos comportamientos del algoritmo para los distintos valores de parámetros del mismo (inicialización de P, factor de olvido, etc.).
• Suponiendo que se dispone de las funciones aplicar_entrada(), leer_salida() y retardo(t), esbozar el programa que permitiría realizar la identificación en línea.
• Cualquier aspecto relevante de la práctica que se quiera hacer notar.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 1
5.1. Introducción.
En el desarrollo teórico de los capítulos 6, 7 y 8 de Introducción a la
Identificación, Identificación en Línea (Algoritmo LS) y Propiedades del Algoritmo LS se
ha estudiado el método de identificación paramétrica basado en el algoritmo de
Mínimos Cuadrados y su vertiente recursiva.
La gran importancia de este algoritmo reside en la característica dinámica que
permite su utilización para realizar la identificación de los parámetros de un sistema
on-line. Esto resulta fundamental para abordar el estudio de estructuras de control
adaptativo. Es por esto por lo que, por medio de esta práctica, se van a desarrollar los
aspectos estudiados en clases de teoría dentro de un marco práctico que facilite la
comprensión del funcionamiento de ésta tan importante algoritmo.
A pesar de que el desarrollo de la práctica está basado en un conjunto de datos
suministrados por el profesor Rafael Puerto, la realización de la misma puede
permitirnos entender cómo se realizaría una identificación on-line en tiempo real con
un sistema físico real.
5.2. Realización.
Entrada 1 Entrada 2
Entrada (k) Salida (y) Entrada (k) Salida (y)
+0,35652 +0,00000 +0,97945 +0,00000
+2,38670 +0,04877 –0,26561 +0,13399
–0,85743 +0,43198 –0,54837 +0,25346
+1,28530 +0,69927 –0,09627 +0,14969
+0,19620 +0,74685 –1,38070 –0,02234
–0,38789 +0,76587 –0,72837 –0,31143
–0,91980 +0,55608 +1,88600 –0,65526
+0,13782 +0,13116 –2,94140 –0,50906
+0,57709 –0,22431 +0,98002 –0,48216
+0,25212 –0,26845 –1,19180 –0,56059
… … … …
a) Determinación del retardo que presenta el sistema.
Primeramente se debe de obtener el retardo del sistema. Si nos fijamos en la
tabla anterior, podemos observar que en el primer instante la entrada tiene un valor
no nulo mientras que la salida es nula; en el instante posterior tanto la entrada como
la salida tienen un valor no nulo. Además, podemos observar las salidas reales del
sistema ante entrada escalón (Yesc1 o Yesc2). De esta forma se concluye como resultado
que el sistema presenta un retardo de valor la unidad.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 2
Identificación con α = 10 y λ = 1 sin cambio de parámetros.
b) Identificación del modelo del proceso mediante Mínimos Cuadrados
Recursivo utilizando los datos Y1, U1. Utilizar α = 10 y repetir la
experiencia con α = 50.
El Para resolver este apartado necesitamos implementar el siguiente código:
% Inicialización de variables
theta = [0 0 0 0]';
alpha = 10; % Para inicializar la matriz P. Por ejemplo 10
lambda = 1; % En el caso de tener factor de olvido
P0 = alpha*eye(4);
P=P0;
X0=[-Y1(1) 0 U1(1) 0]';
K0=P/(lambda+X0'*P*X0);
e0=Y1(2)-(X0'*theta);
params = theta;
traza = trace(P);
% El valor final de este bucle depende de las medidas que tengamos
for i=1:900
X= [-Y1(i+1) –Y1(i) U1(1+i) U1(i)]'; % Calculamos el nuevo vector de regresión
K=P/(lambda+X'*P*X);
e=Y1(i+2)-(X'*theta);
theta=theta+(K*X*e);
P=(1/lambda)*(P-(P*X*X'*P)/(lambda+X'*P*X));
params = [params theta];
traza = [traza trace(P)];
end
% Representación gráfica de parámetros y traza
figure;
plot(params(1,:));
hold;
plot(params(2,:),'--');
plot(params(3,:),'r');
plot(params(4,:),'r--');
figure;
plot(traza);
donde las variables U1 y Y1 corresponden con los parámetros que se han
obtenido en el experimento y que viene mostrados en la tabla. Una vez ejecutado el
código, el algoritmo convergerá los siguientes valores:
+++−
=
=
1185.0
1367.0
5451.0
2963.1
1
0
2
1
b
b
a
a
θ
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 3
A continuación, mostraremos la evolución de los parámetros a lo largo de la
estimación. Tal evolución se puede observar en la siguiente gráfica:
Figura 5.1: Evolución de los parámetros.
Observando la gráfica anterior, se puede comprobar que todos y cada uno de
los cuatro parámetros convergen a los valores reales. Por otro lado, tenemos que la
traza de la matriz P se puede observar en la siguiente gráfica:
Figura 5.2: Evolución de la traza de la matriz P.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 4
En la figura 5.2 se puede observar como los valores de la traza de la matriz P
sufren una depreciación conforme avanza la ejecución del algoritmo; este hecho viene
a decir que la matriz P sufre una pérdida de energía para poder detectar cambios en
los parámetros. En la siguiente gráfica se visualiza la salida real y la salida predicha
obtenida a partir de los parámetros dados por el algoritmo:
c) Validación del los modelos obtenido en a) mediante simulación ante
entrada escalón y comparando con la salida Yesc1.
Figura 5.3: Visualización de la salida real y la predicción.
Tal y como podemos comprobar en la gráfica de arriba, ambas salidas son
prácticamente iguales pues la diferencia entre ambas es prácticamente imperceptible.
De hecho, el error entre ambas es inferior a 0,0001, aproximadamente.
Identificación con α = 50 y λ = 1 sin cambio de parámetros.
b) Identificación del modelo del proceso mediante Mínimos Cuadrados
Recursivo utilizando los datos Y1, U1. Utilizar α =10 y repetir la
experiencia con α =50.
El algoritmo es el mismo que en el apartado anterior, solo que se cambia el
valor de α por 50. Una vez ejecutado el código, el algoritmo convergerá los siguientes
valores:
−
=
=
1181.0
1368.0
5481.0
2995.1
1
0
2
1
b
b
a
a
θ
La evolución de los parámetros a lo largo de la estimación y la de la traza de la
matriz P se pueden observar a continuación.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 5
Figura 5.4: Evolución de los parámetros.
Figura 5.5: Evolución de la traza de la matriz P.
Si se compara la gráfica 5.2 con la gráfica 5.5 se observa que, cuanto mayor
sean los valores iniciales de la matriz P, más aplaza el apagado del algoritmo y mejor
estimación se obtiene pues tarda más en perderse la energía pues disponíamos de
mayor energía inicial.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 6
Figura 5.6: Visualización de la salida real y la predicción.
c) Validación del los modelos obtenido en a) mediante simulación ante
entrada escalón y comparando con la salida Yesc1.
Figura 5.7: Visualización de la salida real y la predicción.
Se observa en la gráfica 5.7 que el error entre ambas gráficas es prácticamente
nulo.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 7
d) Identificación del modelo del proceso mediante Mínimos Cuadrados
Recursivo utilizando los datos Y2, U2 (Identificación mediante cambio de
parámetros).
Para llevar a cabo este apartado de la práctica, emplearemos el mismo código
utilizado anteriormente exceptuando que, en este caso, el algoritmo utilizado se
diferencia en que se debe sustituir el vector U1 por U2 y el vector Y1 por Y2. El código
es el siguiente:
% Inicialización de variables
theta = [0 0 0 0]';
alpha = 10; % Para inicializar la matriz P. Por ejemplo 10
lambda = 1; % En el caso de tener factor de olvido
P0 = alpha*eye(4);
P=P0;
X0=[-Y2(1) 0 U2(1) 0]';
K0=P/(lambda+X0'*P*X0);
e0=Y2(2)-(X0'*theta);
params = theta;
traza = trace(P);
% El valor final de este bucle depende de las medidas que tengamos
for i=1:900
X= [-Y2(i+1) -Y2(i) U2(1+i) U2(i)]'; % Calculamos el nuevo vector de regresión
K=P/(lambda+X'*P*X);
e=Y2(i+2)-(X'*theta);
theta=theta+(K*X*e);
P=(1/lambda)*(P-(P*X*X'*P)/(lambda+X'*P*X));
params = [params theta];
traza = [traza trace(P)];
end
% Representación gráfica de parámetros y traza
figure;
plot(params(1,:));
hold;
plot(params(2,:),'--');
plot(params(3,:),'r');
plot(params(4,:),'r--');
figure;
plot(traza);
Los valores a los que ha convergido el algoritmo son:
−
=
=
1921.0
2547.0
8626.0
8620.1
1
0
2
1
b
b
a
a
θ
La evolución de los parámetros estimados a lo largo de la ejecución del
algoritmo se pueden observar en la siguiente figura:
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 8
Figura 5.8: Evolución de los parámetros.
Echando un vistazo a la gráfica anterior, podemos comprobar que a los 6
segundos de simulación, aproximadamente, se produce en un cambio en el sistema y
la evolución de los parámetros se altera convergiendo a otros nuevos valores que no
tiene porque ser los correctos. En la siguiente gráfica se puede ver como varía la traza
de la matriz P:
Figura 5.9: Evolución de la traza de la matriz P.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 9
Se puede ver en la anterior gráfica que se produce un “apagado” del algoritmo
y de modo ya no tiene energía para seguir estimando si se produce un cambio en los
valores. En la gráfica anterior podemos comprobar cómo la matriz P pierde energía
demasiado rápido por lo que cuando se produce el cambio en el sistema no existe
suficiente energía para detectar ese cambio en la estimación de los parámetros.
En la siguiente gráfica se visualiza la salida real y la salida obtenida con los
parámetros dados por el algoritmo:
e) Validación del modelo obtenido en d) mediante simulación ante
entrada escalón y comparando con la salida Yesc2.
Figura 5.10: Visualización de la salida real y la predicción.
Obviamente, los datos estimados no son los correctos puesto que ambas
salidas son diferentes. El sistema real es inestable mientras que el sistema estimado es
estable.
f) Identificación del modelo del proceso mediante Mínimos Cuadrados
Recursivo con Factor de Olvido (0.8) utilizando los datos Y2, U2.
Los valores de los parámetros para este factor de olvido son:
−
=
=
4.0
5.0
9.0
9.1
1
0
2
1
b
b
a
a
θ
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 10
La evolución de los parámetros durante toda la estimación es la que sigue y se
puede observar en la siguiente figura:
Figura 5.11: Evolución de los parámetros.
Como se puede observar, se produce una explosión de parámetros. Este hecho
se contempla en el aumento de valor de los parámetros (en forma de pico) que se
produce a los 6 segundos. En la siguiente figura se puede observar como varía la traza
de la matriz P:
Figura 5.12: Evolución de la traza de la matriz P.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 11
Se observa como el valor de la traza va variando con el tiempo. La traza intenta
no perder la energía de la que dispone hasta el momento en el que se produce el
cambio y se apaga el algoritmo.
g) Validación del modelo obtenido en f) mediante simulación ante entrada
escalón y comparando con la salida Yesc2.
En la siguiente figura se observa la salida real y la salida obtenida con los
parámetros a los cuales converge el algoritmo:
Figura 5.13: Visualización de la salida real y la predicción.
Se ve claramente que ambas gráficas coinciden en su totalidad.
f) Identificación del modelo del proceso mediante Mínimos Cuadrados
Recursivo con Factor de Olvido (0.5) utilizando los datos Y2, U2.
Los valores de los parámetros para este factor de olvido son:
−
=
=
4.0
5.0
9.0
9.1
1
0
2
1
b
b
a
a
θ
Tal y como podemos observar, se obtiene como resultado los mismos
parámetros que en el apartado anterior.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 12
La evolución de los parámetros durante toda la estimación es la que sigue y se
puede observar en la siguiente figura:
Figura 5.14: Evolución de los parámetros.
En la siguiente gráfica se puede ver como varía la traza de la matriz P:
Figura 5.15: Evolución de la traza de la matriz P.
La explosión de parámetros se refleja claramente en esta gráfica al igual que en
el caso anterior.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 13
h) Repetir el apartado f) para distintos valores del factor de olvido
comprobando el efecto sobre la identificación obtenida y sobre la traza de
la matriz P. ¿Qué sucede para valores pequeños del factor del olvido?
Identificación mediante cambio de parámetros utilizando un factor de olvido (0.95).
Los valores de los parámetros para este factor de olvido son:
−
=
=
3999.0
4988.0
8994.0
8994.1
1
0
2
1
b
b
a
a
θ
La evolución de los parámetros estimados viene representados a continuación
en la siguiente gráfica:
Figura 5.16: Evolución de los parámetros.
En la gráfica de la página siguiente se puede ver como varía la traza de la matriz
P.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 14
Figura 5.17: Evolución de la traza de la matriz P.
En la siguiente gráfica se visualiza la salida real y la salida obtenida con los
parámetros dados por el algoritmo:
Figura 5.20: Visualización de la salida real y la predicción.
Se obtiene una salida semejante.
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 15
Identificación mediante cambio de parámetros utilizando un factor de olvido (0.01).
Los valores de los parámetros para este factor de olvido
son vienen dados a la izquierda. La evolución de los parámetros a
lo largo de la estimación se pueden observar en la siguiente
gráfica:
Figura 5.21: Evolución de los parámetros.
Figura 5.22: Evolución de la traza de la matriz P.
Se observa como la explosión de parámetros es muy elevada. Se puede
comprobar que escogiendo un valor del factor de olvido menor va a llevar a que los
valores intermedios de los parámetros sean más elevados.
−
=
=
4.0
5.0
9.0
9.1
1
0
2
1
b
b
a
a
θ
PRÁCTICA 5: IDENTIFICACIÓN DE SISTEMAS IDENTIFICACIÓN POR MÍNIMOS CUADRADOS RECURSIVO
Identificación de
Sistemas
Jaime Martínez Verdú 16
5.3. Programa para la identificación en línea.
Mediante la utilización de este código de programa se tratará de realizar un
proceso de identificación on-line. Para ello se emplearán tres funciones ya existentes:
una para obtener el retardo retardo(t), otra para aplicar la entrada al sistema
aplicar_entrada() y otra para leer la salida leer_salida().
% Inicialización de variables
theta = [0 0 0 0]';
alpha = 10; % Para inicializar la matriz P. Por ejemplo 10
lambda = 1; % En el caso de tener factor de olvido
P0 = alpha*eye(4);
P=P0;
Retardo=retardo(t);
params = theta;
traza = trace(P);
% bucle de obtención de parámetros
for i=1:900
if retardo < i
X = [0 0 0 0]';
aplicar_entrada(i);
K=P/(lambda+X'*P*X);
e=Y(i+2)-(X'*theta);
theta=theta+(K*X*e);
P=(1/lambda)*(P-(P*X*X'*P)/(lambda+X'*P*X));
params = [params theta];
traza = [traza trace(P)];
Y(i) = leer_entrada();
else if retardo == i
Y(i) = leer_entrada();
X = [-Y(i) 0 U(i + 1 - retardo) 0]';
K=P/(lambda+X'*P*X);
e=Y(i+2)-(X'*theta);
theta=theta+(K*X*e);
P=(1/lambda)*(P-(P*X*X'*P)/(lambda+X'*P*X));
params = [params theta];
traza = [traza trace(P)];
aplicar_entrada(i);
else
Y(i) = leer_entrada();
X = [-Y(i) 0 U(i + 1 - retardo) 0]';
K=P/(lambda+X'*P*X);
e=Y(i+2)-(X'*theta);
theta=theta+(K*X*e);
P=(1/lambda)*(P-(P*X*X'*P)/(lambda+X'*P*X));
params = [params theta];
traza = [traza trace(P)];
Aplicar_entrada(i);
end
% Representación gráfica de parámetros y traza
figure; hold;
plot(params(1,:)); plot(params(2,:),'--');bplot(params(3,:),'r'); plot(params(4,:),'r--');
figure; plot(traza);
An
tes
de
en
tra
r e
n e
l b
ucl
e s
e d
eb
e d
e o
bte
ne
r e
l re
tard
o d
el
sist
em
a,
ya
qu
e s
i n
o s
e s
up
iera
el
reta
rdo
no
se
po
drí
a s
ab
er
los
pri
me
ros
va
lore
s d
el ve
cto
r d
e r
eg
resi
ón
.
Las
est
ruct
ura
s co
nd
icio
na
les
se e
mp
lea
n p
ara
ase
gu
rars
e d
e
qu
e l
os
pri
me
ros
pa
rám
etr
os
sea
n c
orr
ect
os.