ER5.7. Método del error de predicción

Introducción (planteamiento)

Dado el siguiente modelo de una planta, generar en simulación "datos experimentales" con una estructura OE , implementar el método del error de predicción en MATLAB (para una estructura con na = 1, nb = 1 y nk = 1), aplicarlo y analizar los resultados:

G(z)=0.2357z+0.4876Ts=1 seg

Método (plan de solución)

Pasos: (i) obtener las expresiones matemáticas para las estructuras oe111 y arx111 y los métodos del gradiente descendente y Newton-Raphson; (ii) generar "datos experimentales" en MATLAB con una estructura oe111; (iii) implementar el algoritmo del gradiente descendente en un programa en MATLAB para la estimación con estructuras arx111 y oe111 (en el libro se deducen las formulas para este caso); (iv) implementar el algoritmo de Newton-Raphson en un programa en MATLAB para la estimación con estructuras oe111; (v) estimar con la función pem de MATLAB; (vi) analizar los resultados.

Resultados (solución)

El código de MATLAB de este enlace implementa las tareas anteriores y ayuda a entender la idea del método del error de predicción y de los algoritmos del gradiente descendente y Newton-Raphson.

Partiendo de diferentes valores iniciales de los parámetros se observa que el método del gradiente con un modelo ARX siempre converge, incluso iniciando con valores inestables (cualquier método con filtrado y un modelo inicial inestable implica un problema). Con los valores iniciales dados en el código se obtienen los siguientes resultados:

Resultados de la identificación

Los modelos OE y ARX con la función pem del System Identification Toolbox de MATLAB, similares a los resultados del código de arriba de MATLAB (ver en el gráfico la convergencia final de cada parámetro), son:

Resultado de MATLAB

Resultado de MATLAB 2

Análisis y verificación

Este ejercicio implementa el método del error de predicción para un modelo arx111 y un modelo oe111 con los algoritmos del gradiente y Newton-Raphson, donde las ecuaciones corresponden a las que se deducen arriba en la explicación del método. Los resultados se comparan con la función pem de MATLAB y la coincidencia de las estimaciones muestra el correcto funcionamiento de los algoritmos implementados. La coincidencia verifica que el código es correcto. Aunque solo se aplica para un modelo de orden 1, el código se puede generalizar para un modelo de orden superior. Sin embargo, para otras estructuras es necesario deducir las fórmulas generales. 

Este ejemplo muestra que el algoritmo del gradiente descendente funciona si la estructura propuesta es ARX e incluso si los valores iniciales de los parámetros están lejos de los valores reales (posiblemente por fuera del círculo unitario), lo que no sucede con otras estructuras donde generalmente es necesario filtrar los datos iniciales. Dado que la estructura del modelo exacto no es ARX, la estimación no converge a los parámetros exactos si se propone una estructura ARX (un análisis residual mostraría que los residuos no corresponden a un ruido blanco y la hipótesis del modelo no es correcta). Con una estructura OE y cualquier algoritmo numérico de optimización, la estimación converge a los parámetros exactos, pero lo hace más rápido con el método de Newton-Raphson. 

En todos los casos se utiliza un paso constante αk=α0=0.5, pero se puede hacer más grande o pequeño. Con un paso más grande (α0>0.6) hay problemas de convergencia con el método del gradiente y una estructura oe111, pero el método de Newton-Raphson converge bien y rápidamente. En general, en este ejemplo se observa que al disminuir el paso el método de Newton-Raphson no entrega resultados más rápidos que el método del gradiente, pero al aumentarlo la velocidad de convergencia mejora.

Comentarios