Introducción (planteamiento)
Dado el siguiente modelo lineal de tiempo discreto, elaborar un programa de Simulink que implemente los métodos recursivos RLS y RIV, y analizar los resultados con diferentes opciones del modelo de la perturbación:
G(z)=1.4576z+0.2456z(z2−0.2234z+0.6879)Ts=1 seg
Método (plan de solución)
Pasos: (i) implementar los algoritmos RLS y RIV en MATLAB utilizando una sola S-Function para ser utilizada en Simulink; (ii) implementar un diagrama de simulación en Simulink; (iii) probar con un modelo ARX y el algoritmo RLS; (iv) probar con un modelo ARX y el algoritmo RIV; (v) probar con un modelo BJ y el algoritmo RLS; (vi) probar con un modelo BJ y el algoritmo RIV; (vii) probar con un modelo BJ, el algoritmo RIV y cambiando un parámetro del numerador y luego uno del denominador con factores de olvido de 1 y menor que 1 (aquí es útil usar la opción Simulation Pacing de Simulink o cambiando en la pestaña Debug la opción Pause Time); (viii) analizar los resultados.
Resultados (solución)
En este enlace se encuentra el código de MATLAB que implementa los métodos RLS y RIV en una S-Function, cuyo estudio detallado ayuda a entender el funcionamiento de estos métodos de estimación recursiva de parámetros de un función de transferencia de tiempo discreto. Esta función se implementa en Simulink de la siguiente manera:
El siguiente diagrama de Simulink permite realizar los experimentos propuestos (la varianza de la entrada de identificación es igual a 1):
El bloque del proceso permite implementar diferentes tipos de estructuras del modelo. Para un modelo BJ se tiene (la varianza del ruido blanco es igual a 0.52):
Figura 1 con los resultados con un algoritmo RLS, una estructura ARX y un factor de olvido igual a 1:
Figura 2 con los resultados con un algoritmo RLS, una estructura ARX y un factor de olvido igual a 0.98 (observar el aumento de la varianza en la estimación):
Figura 3 con los resultados con una estructura BJ y un factor de olvido igual a 1, a la izquierda con un algoritmo RLS y a la derecha con un algoritmo RIV (observar una mejor estimación en el segundo caso):
Figura 4 con los resultados con un algoritmo RIV, una estructura BJ, un factor de olvido igual a 1 y un cambio de signo del parámetro a1 y luego un cambio de signo de b2 (observar la lentitud de convergencia en cada caso):
Figura 5 con los resultados con un algoritmo RIV, una estructura BJ, un factor de olvido igual a 0.99 y un cambio de signo del parámetro a1 y luego un cambio de signo de b2 (observar la mayor velocidad de convergencia, pero mayor varianza):
Análisis y verificación
Los diferentes experimentos muestran el correcto funcionamiento de los algoritmos recursivos RLS y RIV implementados en MATLAB y Simulink, incluyendo el caso cuando se aplica un algoritmo a una estructura incorrecta: algoritmo RLS aplicado a un modelo BJ o un algoritmo RIV aplicado a un modelo ARX (caso que no se muestra), pero que exige un ajuste innecesario que lleva a inexactitudes.
El algoritmo RIV detecta adecuadamente el cambio de los parámetros y lo hace de manera más rápida entre menor sea el factor de olvido, aunque con una mayor varianza.
Comentarios