Identificación sistema masa-muelle no-lineal: Matlab, idnlgrey

Antonio Sala, UPV

Dificultad: *** ,       Relevancia: PIC,      Duración: 18:04

Materiales:    [ Cód.: idnlg.zip ] [ PDF ]

Resumen:

En este vídeo se discute cómo utilizar las rutinas de la System Identification Toolbox de Matlab para identificar los parámetros de un modelo en representación interna no lineal de un sistema masa-muelle-amortiguador con cuatro parámetros físicos (𝜃1, …, 𝜃4):

dp dt = v dv dt = 𝜃1p 𝜃2p3 𝜃 3v + 𝜃4u + ξ y = ( p v ) + ψ

a partir de lecturas de dos salidas (posición, velocidad) y una entrada. Este tipo de modelos es denominado “nonlinear grey-box” (nlgrey).

Sin utilizar la toolbox de identificación, pero sí la de algoritmos genéticos (global optimization toolbox), el vídeo [identga] aborda un problema bastante similar, donde sólo se identifica un modelo lineal masa-muelle-amortiguador; depende de tu familiaridad con estas ideas, podría ser conveniente que lo visualizaras previamente.

En la primera parte del vídeo, se generan los datos con ode45 y una ecuación de estado del proceso “real”. Para más detalles sobre el uso y opciones de ode45, ver vídeo [sim1] introductorio a la simulación.

Obviamente, ese proceso “real” no es conocido, ni el ruido de proceso ξ(t) que se an~ade a la ecuación de estado para acercar más a una situación realista la simulación. También se an~ade ruido de medida aleatorio ψ a las muestras de las salidas.

En la segunda parte del vídeo (a partir del instante [06:04]), se usan las muestras de entrada, posición y velocidad para ajustar un modelo con la estructura de la ecuación anterior (que debe ser creada en un fichero .m separado), mediante el comando idnlgrey que inicializa la estructura, parámetros iniciales y estados iniciales, y la aplicación posterior del comando nlgreyest que, alimentado con un iddata adecuado, realiza propiamente el ajuste de los parámetros, para intentar que la simulación en bucle abierto ante la entrada proporcionada coincida con los datos medidos (minimizando error cuadrático).

Es importante remarcar que nlgreyest hace un ajuste con optimización no-lineal iterativa que, con modelos más complejos o nolinealidades más severas, podría tardar mucho en converger o incluso no obtener una solución aceptable (el optimizador puede quedarse atrapado en un mínimo local espúreo inaceptable). Si deseamos estimar un modelo en representación interna black box de un sistema lineal, podemos optar por comandos de identificación subespacio n4sid (tiempo discreto) o ssest (continuo). Ver, por ejemplo, el vídeo [stsb2].

Nota: La identificación de modelos en espacio de estados requiere, simultáneamente, estimar (observar) la trayectoria de las variables internas no directamente medibles. Incluso los parámetros podrían ser variantes en el tiempo. Se recomienda la visualización de los vídeos [ekfid1] y [ekfid2] para poder comparar el enfoque en los mismos (con filtro de Kalman extendido) con las ideas del problema planteado en el presente vídeo.

Colección completa [VER]:

© 2024, A. Sala. Se reservan todos los derechos en materiales cuyo autor pertenezca a UPV.
Para condiciones de uso de material de terceros referenciado, consulte a sus autores.