Está en la página 1de 98

Universidad de Alcalá

Escuela Politécnica Superior

GRADO EN INGENIERÍA EN ELECTRÓNICA Y


AUTOMÁTICA INDUSTRIAL

Control y estimación de sistemas basados en modelo


caja negra

Autor: Naoufal Bellahsan

Tutor: Felipe Espinosa Zapata

2022

1
UNIVERSIDAD DE ALCALÁ
Escuela Politécnica Superior

GRADO EN INGENIERÍA EN ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL

Trabajo Fin de Grado

Control y estimación de sistemas basados en modelo caja negra

Autor: Naoufal Bellahsan

Tutor/es: Felipe Espinosa Zapata

TRIBUNAL:

Presidente: Elena López Guillén

Vocal 1º: Juan Carlos García García

Vocal 2º: Felipe Espinosa Zapata

FECHA: septiembre 2022

2
Agradecimientos.
Quisiera transmitir mi más sincero agradecimiento a todas aquellas personas que me
han apoyado y ayudado durante esta etapa académica y toda mi vida.

En primer lugar, a mi madre Jamila, mi padre Ali y mis hermanos Marouan y Mohamed
que han estado a lo largo de la carrera apoyándome y animándome a seguir y no
rendirse nunca.

En segundo lugar, a mi tutor Felipe Espinoza Zapata, por su ayuda en la información,


planificación y organización en este Trabajo de Fin de Grado.

Por último, quisiera expresar mi agradecimiento a la Universidad de Alcalá por


acogerme dentro de sus aulas y darme esta oportunidad de desarrollar este estudio
que ha sido un periodo de aprendizaje personal y científico.

Estoy seguro de que sin vosotros no habría llegado a este momento. Por tanto, mil
gracias a todos.

3
Contenido
Contenido ...................................................................................................................................... 4
I. Resumen................................................................................................................................ 9
I.1. Resumen. ............................................................................................................................. 9
I.2 Palabras clave. ...................................................................................................................... 9
I.3. Abstract. ............................................................................................................................ 10
I.4. Key words. ......................................................................................................................... 10
II. Memoria. ............................................................................................................................. 11
II.1. Introducción y objetivos. .................................................................................................. 11
II.1.1. Introducción. ............................................................................................................. 11
II.1.2. Objetivos. .................................................................................................................. 12
II.2. Identificación y modelado de robot P3-DX. ..................................................................... 12
II.2.1. Registro de datos....................................................................................................... 13
II.2.2. Modelo estructurado (Grey Box). ............................................................................. 14
II.2.3. Modelo caja negra (Black Box Best y Standard). ....................................................... 39
II.2.4. Estudio comparativo. ................................................................................................ 44
II.3. Diseño de servosistema. .................................................................................................. 45
II.3.1. Servo basado en modelo estructurado. .................................................................... 49
II.3.2. Servo basado en modelo caja negra. ........................................................................ 54
II.3.3. Estudio comparativo. ................................................................................................ 62
II.4. Diseño de observador. ..................................................................................................... 63
II.4.1. Observador determinístico predictor........................................................................ 63
II.4.2. Observador lineal estocástico KF. ............................................................................. 75
II.4.3. Estudio comparativo. ................................................................................................ 78
II.5. Implementación de servo de velocidad con FK para robot P3-DX. .................................. 83
II.5.1. Introducción .............................................................................................................. 83
II.5.2 Entorno experimental ................................................................................................ 83
II.5.3 Resultados experimentales ........................................................................................ 84
II.5.4. Estudio comparativo. ................................................................................................ 90
II.6. Conclusiones..................................................................................................................... 92
III. Anexos y Apéndices. ............................................................................................................... 93
III.1 Configuración para la implementación. ........................................................................... 93
III.2. Funciones de interés de Matlab. ..................................................................................... 96
Bibliografía y Referencias. ........................................................................................................... 98

4
Índice de figuras

Ilustración 1: Esquema del objetivo del TFG. .............................................................................. 11


Ilustración 2: Modelo simulink del lazo abierto para el registro de datos.................................. 12
Ilustración 3: Workspace Matlab. ............................................................................................... 12
Ilustración 4: Entrada y salida real del robot P3-DX.................................................................... 13
Ilustración 5: Zoom entrada y salida de la velocidad lineal del primer escalón. ........................ 13
Ilustración 6: Fichero de datos de la entrada y salida de la velocidad lineal del primer escalón.
..................................................................................................................................................... 14
Ilustración 7: Zoom entrada y salida de la velocidad lineal del segundo escalón....................... 14
Ilustración 8: Fichero de datos de la entrada y salida de la velocidad lineal del segundo escalón.
..................................................................................................................................................... 14
Ilustración 9: Zoom entrada y salida de la velocidad lineal del tercer escalón........................... 15
Ilustración 10: Fichero de datos de la entrada y salida de la velocidad lineal del tercer escalón.
..................................................................................................................................................... 15
Ilustración 11: Zona muerta positiva de la velocidad lineal. ....................................................... 16
Ilustración 12: Zona muerta negativa de la velocidad lineal....................................................... 16
Ilustración 13: Saturación positiva de la velocidad lineal. .......................................................... 16
Ilustración 14: Saturación negativa de la velocidad lineal. ......................................................... 17
Ilustración 15: Zoom entrada y salida de la velocidad angular del primer escalón. ................... 17
Ilustración 16: Fichero de datos de la entrada y salida de la velocidad angular del primer
escalón. ....................................................................................................................................... 17
Ilustración 17: Zoom entrada y salida de la velocidad angular del segundo escalón. ................ 18
Ilustración 18: Fichero de datos de la entrada y salida de la velocidad angular del segundo
escalón. ....................................................................................................................................... 18
Ilustración 19: Zoom entrada y salida de la velocidad angular del tercer escalón. .................... 18
Ilustración 20: Fichero de datos de la entrada y salida de la velocidad angular del tercer
escalón. ....................................................................................................................................... 18
Ilustración 21: Zoom entrada y salida de la velocidad angular del cuarto escalón. ................... 19
Ilustración 22: Fichero de datos de la entrada y salida de la velocidad angular del cuarto
escalón. ....................................................................................................................................... 19
Ilustración 23: Zona muerta positiva de la velocidad angular. ................................................... 20
Ilustración 24: Zona muerta negativa de la velocidad angular. .................................................. 20
Ilustración 25: Saturación positiva de la velocidad angular. ....................................................... 20
Ilustración 26: Saturación negativa de la velocidad angular....................................................... 21
Ilustración 27: Modelo matemático del robot P3-DX. ................................................................ 21
Ilustración 28: Modelo identificado. ........................................................................................... 22
Ilustración 29: Conjunto de datos para la identificación y validación. ....................................... 25
Ilustración 30: Resultado del modelo identificado de caja gris tras la primera iteración de la
opción 1. ...................................................................................................................................... 27
Ilustración 31: Resultado del modelo identificado de caja gris tras la última iteración de la
opción 1. ...................................................................................................................................... 29
Ilustración 32: Comparación de la respuesta simulada de la opción 1 de la caja gris. ............... 29
Ilustración 33: Resultado del modelo identificado de caja gris tras la última iteración de la
opción 2. ...................................................................................................................................... 34
Ilustración 34: Comparación de respuesta simulada de la opción 2 de la caja gris. ................... 34
Ilustración 35: Modelo caja gris diseñado................................................................................... 35
Ilustración 36: Simulink del modelo P3-DX caja gris diseñado. .................................................. 35
Ilustración 37: Matrices C y D del bloque Discrete State-Space. ................................................ 36
Ilustración 38: Salida del modelo caja gris P3-DX. ...................................................................... 37
Ilustración 39: Resultado del modelo identificado de la caja negra best. .................................. 40
Ilustración 40: Comparación de respuesta simulada de caja negra best.................................... 40

5
Ilustración 41: Resultado del modelo identificado de la caja negra estándar. ........................... 41
Ilustración 42: Comparación de respuesta simulada de caja negra estándar. ........................... 42
Ilustración 43: Diagrama de bloque del servosistema. ............................................................... 46
Ilustración 44: Modelo simulink del servosistema caja gris. ....................................................... 49
Ilustración 45: Referencia (V, W). ............................................................................................... 49
Ilustración 46: Las señales salida y error Grey Box ante la referencia. ....................................... 49
Ilustración 47: La señal entrada Grey Box ante la referencia. .................................................... 50
Ilustración 48: Las perturbaciones Vd y Wd................................................................................ 50
Ilustración 49: Las señales salida y error Grey Box ante la referencia y perturbaciones............ 51
Ilustración 50: Código para el efecto de la incertidumbre del modelo. ..................................... 52
Ilustración 51: Las señales salida y error Grey Box ante el cambio de parámetro. .................... 52
Ilustración 52: Las señales salida y error best black box ante la referencia. .............................. 54
Ilustración 53: La señal entrada best balck box ante la referencia. ............................................ 54
Ilustración 54: La señal entrada del servo lento best black box ante la referencia. ................... 55
Ilustración 55: Las señales salida y error best black box ante la referencia y perturbaciones. .. 55
Ilustración 56: Las señales salida y error del servo lento best black box ante la referencia y
perturbaciones. ........................................................................................................................... 56
Ilustración 57: La señal salida best black box ante el cambio de parámetro. ............................. 56
Ilustración 58: Las señales salida y error standard black box ante la referencia. ....................... 58
Ilustración 59: La señal entrada standard black box ante la referencia. .................................... 58
Ilustración 60: La señal entrada del servo lento standard black box ante la referencia. ........... 59
Ilustración 61: Las señales salida y error standar black box ante la referencia y perturbaciones.
..................................................................................................................................................... 59
Ilustración 62: Las señales salida y error del servo lento standard black box ante las
perturbaciones. ........................................................................................................................... 60
Ilustración 63: La señal salida del servo standard black box ante la perturbación. .................... 60
Ilustración 64: La señal salida standard black box ante el cambio de parámetro. ..................... 61
Ilustración 65: Esquema del observador predictor. .................................................................... 62
Ilustración 66: Modelo simulink del observador predictor Grey Box. ....................................... 63
Ilustración 67: Modelo simulink del sistema total (servo + observador + planta) Grey Box. ..... 64
Ilustración 68: Estado real y estado estimado Grey Box. ............................................................ 64
Ilustración 69: Las señales salida y error ante la referencia Grey Box. ....................................... 65
Ilustración 70: La señal entrada ante la referencia Grey Box. .................................................... 65
Ilustración 71: Las señales salida y error ante las no-linealidades Grey Box. ............................. 65
Ilustración 72: La señal entrada ante las no-linealidades Grey Box............................................ 66
Ilustración 73: La señales salida y error ante las perturbaciones Grey Box. ............................... 66
Ilustración 74: La señal entrada ante las perturbaciones Grey Box. ........................................... 66
Ilustración 75: Estado real y estado estimado best black box. ................................................... 68
Ilustración 76: Las señales salida y error ante la referencia best black box. .............................. 68
Ilustración 77: La señal entrada ante la referencia best black box. ............................................ 68
Ilustración 78: La señal entrada del servo lento ante la referencia best black box. ................... 69
Ilustración 79: Las señales salida y error del servo lento ante las no-linealidades best black box.
..................................................................................................................................................... 69
Ilustración 80: La señal entrada del servo lento ante las no-linealidades best black box. ......... 70
Ilustración 81: Las señales salida y error ante la perturbación best black box. .......................... 70
Ilustración 82: La señal entrada ante la perturbación best black box. ....................................... 70
Ilustración 83: Estado real y estado estimado standard black box. ............................................ 72
Ilustración 84: Las señales salida y entrada antela referencia standard black box. ................... 72
Ilustración 85: La señal entrada ante la referencia standard black box. .................................... 72
Ilustración 86: Las señales salida y entrada ante las no-linealidades standard black box. ......... 73
Ilustración 87: La señal entrada ante las no-linealidades standard black box. ........................... 73
Ilustración 88: Las señales salida y error ante las perturbaciones standard black box. ............. 73

6
Ilustración 89: La señal entrada ante las perturbaciones standard black box. ........................... 74
Ilustración 90: Vinput y Voutput. ................................................................................................ 74
Ilustración 91: Winput y Woutput............................................................................................... 75
Ilustración 92: Modelo simulink incluido el filtro Kalman........................................................... 76
Ilustración 93: Las señales entrada del FK y la salida con ruido Grey Box. ................................. 76
Ilustración 94: Las señales entrada del FK y la salida con ruido Best Black Box. ........................ 77
Ilustración 95: Las señales entrada del FK y la salida con ruido Standard Black Box. ................. 77
Ilustración 96: función RMSE del error. ...................................................................................... 78
Ilustración 97: RMSE Grey Box de la velocidad lineal. ................................................................ 78
Ilustración 98: RMSE Grey Box de la velocidad angular. ............................................................. 79
Ilustración 99: Las señales entrada del FK y del observador Grey Box. ...................................... 81
Ilustración 100: Las señales error del FK y del observador Grey Box. ........................................ 81
Ilustración 101: Las señales entrada del FK y del observador best black Box. ........................... 81
Ilustración 102: Las señales entrada del FK y del observador best black Box. ........................... 82
Ilustración 103: Entorno experimental. ...................................................................................... 83
Ilustración 104: Simulink del ensayo KF. ..................................................................................... 83
Ilustración 105: Las señales de salida real y simulada de la velocidad lineal Grey Box. ............. 84
Ilustración 106: Las señales de salida real y simulada de la velocidad angular Grey Box........... 84
Ilustración 107: Las señales de error real y simulada de V y W Grey Box. ................................. 85
Ilustración 108: Las trayectorias real y referencia Grey Box....................................................... 85
Ilustración 109: Las señales de salida real y simulada de la velocidad lineal Best Black Box. .... 86
Ilustración 110: Las señales de salida real y simulada de la velocidad angular Best Black Box. . 86
Ilustración 111: Las señales de error real y simulada de V y W Best Black Box. ......................... 87
Ilustración 112: Las trayectorias real y referencia Best Black Box. ............................................. 87
Ilustración 113: Las señales de salida real y simulada de la velocidad lineal y angular Standard
Black Box. .................................................................................................................................... 88
Ilustración 114: Las señales de error real y simulada de la velocidad lineal y angular y la
trayectoria Standard Black Box. .................................................................................................. 88
Ilustración 115: Las señales de salida de V y W de Grey Box y Best Black Box. .......................... 89
Ilustración 116: Las señales de error de V y W de Grey Box y Best Black Box. ........................... 89
Ilustración 117: Las señales de trayectorias real y referencia de Grey Box y Best Black Box. .... 90
Ilustración 118: Bloque S-Function. ............................................................................................ 92
Ilustración 119: aplicación putty. ................................................................................................ 92
Ilustración 120: Configuración putty. .......................................................................................... 93
Ilustración 121: Fichero dibuja.m................................................................................................ 94

7
Índice de tablas

Tabla 1: Resumen de resultados del modelo caja gris. ............................................................... 38


Tabla 2: Resultados de RMSE del modelo rápido sin no-linealidades. ....................................... 80
Tabla 3: Resultados de RMSE del modelo rápido con no-linealidades. ...................................... 80
Tabla 4: Resultados de RMSE del modelo lento con no-linealidades. ........................................ 81
Tabla 5: Resultados de RMSE del modelo lento sin no-linealidades. ......................................... 81
Tabla 6: RMSE de Grey Box y Best Black Box real vs simulado. .................................................. 91
Tabla 7: Configuración simulink para la implementación. .......................................................... 92

8
I. Resumen.

I.1. Resumen.

Este TFG aborda el control y estimación de un sistema real basado en el modelado caja negra,
es decir sin partir de una estructura previa que relacione entradas, salida y estados. Se analizan
dos versiones: estandard y best
A partir del modelo obtenido en el espacio de estados, se aplican técnicas de control y
estimación lineal. Y se compararán con los obtenidos a partir de modelo caja gris. Por último,
el mismo control/estimación diseñados se aplicará a una planta real para comparar soluciones
simuladas e implementadas. Como ejemplo de aplicación se diseña e implementa el control
remoto de velocidades de un robot P3-DX utilizando la herramienta Matlab/Simulink.

I.2 Palabras clave.

Modelo caja negra, identificación, servosistema, observador, filtro de Kalman, implementación


de control electrónico, Matlab, Simulink Coder.

9
I.3. Abstract.

This Project addresses the control and estimation of a real system based on black box model,
that is, without starting from a structure that relates inputs, outputs and states. Two versions
are evaluated: standard and best.
From the model obtained in the state space, control and linear estimation techniques are
applied. And they are compared with those obtained from the grey box model.
Finally, the same designed control/estimation are applied to a real plant to compare simulated
and implemented solutions.
As an application example, the Robot P3DX velocities are remotely controlled. The
Matlab/Simulink tools are applied in the complete process.

I.4. Key words.

Black box modeling, identification, servosystem, observer, Kalman filter, electronic control
implementation, Matlab, Simulink Coder.

10
II. Memoria.

II.1. Introducción y objetivos.

II.1.1. Introducción.

En este Trabajo Fin de Grado (TFG) se aborda el control y estimación de un sistema real basado
en modelo caja negra, es decir sin partir de una estructura que relacione entradas, salida y
estados.
En los modelos estructurados (caja gris) se requiere una estructura de modelo como paso
previo a la identificación de parámetros. En el caso caja negra se deja a la herramienta
(programa de modelado) libertad para proporcionar tanto la estructura como los parámetros
que permitan, para una misma entrada, reducir la diferencia entre la salida real y la
proporcionada por el modelo.
En resumen, la utilización de una u otra alternativa depende de:
• Caja gris (Grey Box): cuando se conoce la estructura de la relación entre variables (entradas,
salidas y estados), generalmente obtenida de la comprensión de los principios físicos asociados
al proceso bajo estudio.
• Caja negra (Black Box): cuando no se tiene conocimiento de tales principios físicos y por
tanto no se parte de una estructura previa de interrelación de variables. En este caso, se
recurre a algoritmos que, mediante iteración, proporcionan modelos (estructura y parámetros)
apropiados desde el punto de vista del error de estimación, pero con difícil interpretación
física.
En este TFG se va a estudiar la opción caja negra, evaluando dos alternativas que nos permite
la herramienta de identificación de Matlab (estándar y best).
A partir del modelo obtenido en el espacio de estados, se aplican técnicas de control y
estimación lineal. Y se compararán con los obtenidos a partir de modelo caja gris. Por último,
el mismo control/estimación diseñados se aplica a una planta real para comparar soluciones
simuladas e implementadas. Como ejemplo de aplicación se utiliza un robot P3-DX controlado
en velocidad remotamente desde un PC externo.
En la siguiente imagen se resume el TFG:

11
Ilustración 1: Esquema del objetivo del TFG.

Para el control lineal de velocidades (lineal y angular) se diseñan soluciones basada en modelo
caja gris y caja negra una vez seleccionado el periodo de muestreo Ts. Ambas soluciones se
implementan sobre la planta real para obtener conclusiones sobre ambas alternativas de
modelado. Para la implementación electrónica se utilizará la herramienta Simulink Coder de
Matlab que permite la generación de código del proyecto Simulink ejecutable sobre el target
PC con Windows10.

II.1.2. Objetivos.

El objetivo principal del TFG es evaluar el comportamiento de una planta real controlada con
una solución diseñada en el espacio de estados a partir de modelos caja negra.
Para ello se plantean los siguientes objetivos específicos:
• Revisar conceptos de modelado e identificación de sistemas en el espacio de estados.
• A partir de registros reales de un robot P3-DX, identificar diferentes modelos tipo caja negra,
y compararlos con una solución caja gris.
• Diseñar el controlador y observador para los modelos obtenidos, validando los resultados en
simulación.
• Implementación de las soluciones de control remoto de velocidades en la planta real (Robot
P3-DX)
• Análisis de resultados simulados y obtenidos experimentalmente.

II.2. Identificación y modelado de robot P3-DX.

En este apartado se va a explicar la identificación y modelado de robot P3-DX para poder


realizar un control de planta que consiste en el seguimiento de la velocidad lineal y angular.

El modelo se va a identificar en el espacio de estados VVEE mediante técnicas de identificación


y validación a través de un ensayo experimental que se explicarán en los siguientes apartados
para poder luego diseñar un control con la herramienta Matlab/Simulink.

12
II.2.1. Registro de datos.

Para poder identificar la planta del robot P3-DX, se crea el siguiente modelo Simulink y
configurado de acuerdo con el anexo III.1 Configuración para la implementación.
.

Ilustración 2: Modelo Simulink del lazo abierto para el registro de datos.

Donde se generan las señales de la velocidad lineal y angular en un PC remoto y luego son
enviadas al robot para registrar su respuesta en lazo abierto.

Las señales reales generadas con el robot P3-DX

Ilustración 3: Workspace Matlab.

Siendo:

• La señal input_real es la señal generada en el Signal Builder y enviada al robot (trazo


azul en la ilustración 4).

• La señal output_real es la señal real (trazo rojo en la ilustración 4).

Ilustración 4: Entrada y salida real del robot P3-DX.

13
II.2.2. Modelo estructurado (Grey Box).

Una vez registrados los datos, se procede a identificar la planta del modelo estructurado (Grey
Box) mediante la siguiente técnica que consiste en comparar las señales anteriores, la
excitación (entrada) y la señal real (respuesta) para calcular las no linealidades: saturación,
tiempo muerto y el retardo.
Para ello, se usa el comando de “plot” de Matlab y se observa la diferencia entre ambas
señales tanto para la velocidad lineal como la angular.
1. No-linealidades de la velocidad lineal:
Retardo:
Para el retardo, se observa en la figura 5 de la velocidad lineal los tramos donde hay excitación
de escalones:

Ilustración 5: Zoom entrada y salida de la velocidad lineal del primer escalón.

Como se observa en la figura de arriba, en t=7.075s, el cual le corresponde el dato 7.075s/Ts=


283.

Ilustración 6: Fichero de datos de la entrada y salida de la velocidad lineal del primer escalón.

Se puede apreciar en la figura 6 que son 6 muestras lo que tarda la salida para tener un valor
no nulo cuando la entrada es constante.
Dado que el retardo es un parámetro muy importante porque es el que va a fijar el orden del
sistema. Se comprueba en varios tramos de excitación escalón, por ejemplo, el siguiente
escalón:

14
Ilustración 7: Zoom entrada y salida de la velocidad lineal del segundo escalón.

En t=8.075s le corresponde el dato 8.075s/Ts= 323.

Ilustración 8: Fichero de datos de la entrada y salida de la velocidad lineal del segundo escalón.

Se observa que la salida cambia en el dato 326 donde la entrada es constante desde el dato
321 hasta por lo que son 5 muestras de retardo.
Comprobando en otro diferente escalón:

Ilustración 9: Zoom entrada y salida de la velocidad lineal del tercer escalón.

En t=12s le corresponde el dato 12s/Ts= 480.

15
Ilustración 10: Fichero de datos de la entrada y salida de la velocidad lineal del tercer escalón.

Se aprecia que son 5 muestras lo que tarda la salida en cambiar.


Comprobando en varios escalones más, se llega a la conclusión de que el retardo en la
velocidad lineal es de 5 muestras.
Zona muerta:
Respecto a la zona muerta, hay que considerar el valor de entrada que provoca una salida no
nula (primera muestra no nula), teniendo en cuenta el retardo del apartado. En esta zona de
transición, se toma el valor de salida. Luego con la medida anterior, se va a la entrada y se
toma el valor del eje Y que coincide con la velocidad lineal tras restarle 5 muestras de retardo.

Restando 5 muestras: +dead zone de +0.05 m/s

Ilustración 11: Zona muerta positiva de la velocidad lineal.

Restando 5 muestras: -dead zone de -0.0052 m/s

Ilustración 12: Zona muerta negativa de la velocidad lineal.

16
Saturación:
Para el parámetro de saturación, se realiza el mismo proceso, pero fijándose, tanto en el pico
positivo como negativo, cuando la salida se mantiene constante y no crece/decrece al ritmo de
la entrada.

Ilustración 13: Saturación positiva de la velocidad lineal.

La saturación positiva tiene un valor de 0.749 m/s.

Ilustración 14: Saturación negativa de la velocidad lineal.

La saturación negativa se da en -0.7495 m/s.


Se puede concluir que son valores muy similares.

2. No-linealidades de la velocidad angular:


Realizando el mismo proceso utilizado para la velocidad lineal, se obtiene:
Retardo:

17
Ilustración 15: Zoom entrada y salida de la velocidad angular del primer escalón.

En t=24.125s le corresponde el dato 24.125s/Ts= 965.

Ilustración 16: Fichero de datos de la entrada y salida de la velocidad angular del primer escalón.

Se observa que son 5 muestras de retardo.


Comprobamos en otro escalón:

Ilustración 17: Zoom entrada y salida de la velocidad angular del segundo escalón.

En t=25.15s le corresponde el dato 25.15s/Ts= 1006.

Ilustración 18: Fichero de datos de la entrada y salida de la velocidad angular del segundo escalón.

18
Se observa que son 6 muestras de retardo.
Comprobando en otro diferente escalón:

Ilustración 19: Zoom entrada y salida de la velocidad angular del tercer escalón.

En t=26.05s le corresponde el dato 26.05s/Ts= 1042.

Ilustración 20: Fichero de datos de la entrada y salida de la velocidad angular del tercer escalón.

Se observa que son 6 muestras de retardo.


Comprobando en un último escalón:

Ilustración 21: Zoom entrada y salida de la velocidad angular del cuarto escalón.

En t=21.125s le corresponde el dato 21.125s/Ts= 845.

19
Ilustración 22: Fichero de datos de la entrada y salida de la velocidad angular del cuarto escalón.

Se observa que son 6 muestras de retardo.


Para la velocidad angular, predomina 6 muestras de retardo.

Zona muerta:
Respecto a la zona muerta, se sigue el mismo proceso que con la velocidad lineal,

+dead zone= +0.05 rad/s

Ilustración 23: Zona muerta positiva de la velocidad angular.

-dead zone= -0.025 rad/s

Ilustración 24: Zona muerta negativa de la velocidad angular.

20
Saturación:
Para la saturación, se utiliza el mismo proceso, pero fijándose, tanto en el pico positivo como
negativo, cuando empieza a saturar la curva salida por no alcanzar a la entrada.

Ilustración 25: Saturación positiva de la velocidad angular.

La saturación positiva se da en 1.7362 rad/s.

Ilustración 26: Saturación negativa de la velocidad angular.

La saturación positiva se da en -1.7301 rad/s.


Se puede observar que son valores muy similares.

3. Modelado e identificación de la componente lineal del proceso real en variables de estado:


El vector de estados del conjunto incluye tanto los estados de la cadena de velocidad lineal
como los de la velocidad angular. Para cada cadena, el número de estados coincide con el
número de retardos.
A partir del conocimiento que se tiene del comportamiento del robot, y de la respuesta
obtenida en lazo abierto, se propone la estructura de la ilustración 27. Del ensayo realizado,

21
tenemos un retardo de 5 muestras (q=3) para la velocidad lineal y 6 muestras (q=4) para la
velocidad angular. Por tanto, se puede diferenciar 11 estados diferentes.
Se procede a calcular las matrices características del modelo lineal discreto que dependen de
α, β y γ.

Ilustración 27: Estructura lineal del modelo “caja gris” del robot P3-DX.

Para justificar el uso de un modelo de segundo orden, se tienen que las dos respuestas son
infra-amortiguadas con un coeficiente de amortiguamiento ζ entre 0 y 1. Y polos/autovalores
complejos conjugados.
Como el vector de estados del conjunto incluye los de la cadena de velocidad lineal y angular,
‘q’ tendrá un valor igual a 3 para la velocidad lineal y 4 para la velocidad angular.

Ilustración 28: Modelo identificado.

Relacionando las entradas y salidas de los bloques para sacar las ecuaciones características:
Opción 1: Estado 𝑥1𝑘 equivalente a 𝑥2𝑘-1
En esta opción el estado x1 es el estado x2 retardado una muestra.
𝑥1𝑘+2 + βv * 𝑥1𝑘+1 + γv ∗ 𝑥1𝑘 = αv * 𝑥3𝑘
𝑥1𝑘+1 = 𝑥2𝑘
𝑥2𝑘+1 + βv * 𝑥2𝑘 + γv ∗ 𝑥1𝑘 = αv * 𝑥3𝑘
𝑥3𝑘+1 = 𝑥4𝑘
𝑥4𝑘+1 = 𝑥5𝑘
𝑥5𝑘+1 = 𝑉𝑖𝑘
𝑉𝑜𝑘 = 𝑥1𝑘 + Kw * 𝑥8𝑘

22
𝑥6𝑘+2 + βw * 𝑥6𝑘+1 + γw ∗𝑥6𝑘 = αw * 𝑥8𝑘
𝑥6𝑘+1 =𝑥7𝑘
𝑥7𝑘+1 + βw * 𝑥7𝑘 + γw ∗ 𝑥6𝑘 = αw * 𝑥8𝑘
𝑥8𝑘+1 = 𝑥9𝑘
𝑥9𝑘+1 = 𝑥10𝑘
𝑥10𝑘+1 = 𝑥11𝑘
𝑥11𝑘+1 = 𝑊𝑖𝑘
𝑊𝑜𝑘 = 𝑥6𝑘 + Kv 𝑥3𝑘

Teniendo en cuenta las ecuaciones que representan el sistema:


xk+1 = A xk + B uk
yk = C xk + D uk

𝑥1𝑘+1 0 1 0 0 0 0 0 0 0 0 0 𝑥1𝑘 0 0
𝑥2𝑘+1 −γ𝑣 −β𝑣 α𝑣 0 0 0 0 0 0 0 0 𝑥2𝑘 0 0
𝑥3𝑘+1 0 0 0 1 0 0 0 0 0 0 0 𝑥3𝑘 0 0
𝑥4𝑘+1 0 0 0 0 1 0 0 0 0 0 0 𝑥4𝑘 0 0
𝑥5𝑘+1 0 0 0 0 0 0 0 0 0 0 0 𝑥5𝑘 1 0 𝑉𝑖
𝑥6𝑘+1 = 0 0 0 0 0 0 1 0 0 0 0 * 𝑥6 𝑘 + 0 0 *[ 𝑘 ]
𝑊𝑖𝑘
𝑥7𝑘+1 0 0 0 0 0 −γ𝑤 −β𝑤 α𝑤 0 0 0 𝑥7𝑘 0 0
𝑥8𝑘+1 0 0 0 0 0 0 0 0 1 0 0 𝑥8𝑘 0 0
𝑥9𝑘+1 0 0 0 0 0 0 0 0 0 1 0 𝑥9𝑘 0 0
𝑥10𝑘+1 0 0 0 0 0 0 0 0 0 0 1 𝑥10𝑘 0 0
[𝑥11𝑘+1 ] [ 0 0 0 0 0 0 0 0 0 0 0] [𝑥11𝑘 ] [0 1]

𝑥1𝑘
𝑥2𝑘
𝑥3𝑘
𝑥4𝑘
𝑥5𝑘
𝑉𝑜𝑘 1 0 0 0 0 0 0 𝐾𝑤 0 0 0 0 0 𝑉𝑖𝑘
[ ] = [ ]* 𝑥6𝑘 +[ ]*[ ]
𝑊𝑜𝑘 0 0 𝐾𝑣 0 0 1 0 0 0 0 0 0 0 𝑊𝑖𝑘
𝑥7𝑘
𝑥8𝑘
𝑥9𝑘
𝑥10𝑘
[𝑥11𝑘 ]

Para la identificación de parámetros se sigue el procedimiento indicado:

23
A. Inicialización de los parámetros incógnitas:
Se inicializan los parámetros para que las raíces del sistema del segundo orden sean estables:
Z^2 + β *Z + γ =0. Solucionamos la siguiente ecuación: z^2-0.5z+0.5=0

x
x

dentro de la circunferencia unidad.


Por tanto: β= -0.5 y γ= 0.5
Para calcular el valor inicial de α se sabe de la respuesta registrada, se tiene que la ganancia
estática es próxima a la unidad:
Vo,ss/Vi,ss= 1 = α/(1+β+γ) = α/2=1 -> α=2
Y 𝐾𝑣 =𝐾𝑤 =0.75.

B. Configuración del modelo caja gris:


En este apartado se va a parametrizar el modelo caja gris. Para ellos, primero, se inicializan los
parámetros a los valores obtenidos en la fase 1.
Se dimensiona e inicializa esas matrices creadas usando el comando “idss” de Matlab,
diferenciando valores 0, 1 y coeficientes identificables (iniciales).
Se crean otras matrices con los parámetros a identificar (NaN). Y, por último, se identifica el
modelo usando un conjunto de datos con el comando “pem” que actualiza los parámetros de
un modelo inicial para ajustarse a los datos de estimación. Por último, validamos en el modelo
en un conjunto de datos distinto al de identificación.
A continuación, se muestra el código usado en Matlab para identificar el modelo.
Código Matlab para modelado caja gris, opción 1:
Se cargar los datos

load(‘input_real.mat’);
load(‘output_real.mat’);
Ts=0.025;

Dimensionado e inicialización de matrices A, B, C, D en función de los parámetros α, β, γ, 𝐾𝑣 y


𝐾𝑤 con 5 muestras de retardo en la velocidad lineal y 6 muestras en la velocidad angular. Por
tanto, se tienen 11 estados en total.

A=2; b=-0.5; g=0.5; Kv=0.005; Kw=0.005; % valores iniciales:


A= [0,1,0,0,0,0,0,0,0,0,0; -0.4672,1.372,0.08916,0,0,0,0,0,0,0,0;
0,0,0,1,0,0,0,0,0,0,0; 0,0,0,0,1,0,0,0,0,0,0; 0,0,0,0,0,0,0,0,0,0,0;

24
0,0,0,0,0,0,1,0,0,0,0; 0,0,0,0,0,-0.6122,1.504,0.1067,0,0,0; 0,0,0,0,0,0,0,0,1,0,0;
0,0,0,0,0,0,0,0,0,1,0; 0,0,0,0,0,0,0,0,0,0,1; 0,0,0,0,0,0,0,0,0,0,0];

B= [0,0;0,0;0,0;0,0;1,0;0,0;0,0;0,0;0,0;0,0;0,1];
C= [1,0,0,0,0,0,0,0.004205,0,0,0; 0,0,-0.00853,0,0,1,0,0,0,0,0];
D= [0,0;0,0];

Construir el modelo inicial con la función idss que se utiliza para crear un modelo de espacio de
estado con coeficientes identificables.

M=idss(A, B, C, D);

Indicación de los parámetros a identificar

m.As= [0,1,0,0,0,0,0,0,0,0,0; NaN, NaN, NaN,0,0,0,0,0,0,0,0;


0,0,0,1,0,0,0,0,0,0,0; 0,0,0,0,1,0,0,0,0,0,0; 0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,1,0,0,0,0; 0,0,0,0,0, NaN, NaN, NaN,0,0,0; 0,0,0,0,0,0,0,0,1,0,0;
0,0,0,0,0,0,0,0,0,1,0; 0,0,0,0,0,0,0,0,0,0,1; 0,0,0,0,0,0,0,0,0,0,0];
m.Bs= [0,0;0,0;0,0;0,0;1,0;0,0;0,0;0,0;0,0;0,0;0,1];
m.Cs= [1,0,0,0,0,0,0, NaN,0,0,0; 0,0, NaN,0,0,1,0,0,0,0,0];
m.Ds= [0,0;0,0];
m.x0s= [0;0;0;0;0;0;0;0;0;0;0];

Para identificar el modelo, se ha usado un determinado conjunto de datos distinto al conjunto


que usaremos para validación como hemos mencionado anteriormente.
Por ejemplo, en la siguiente gráfica se observa:
• El conjunto de datos desde t=6.25s (dato=250) hasta t=11.5s (dato=460) donde se
tiene solo velocidad lineal.
• El conjunto de datos desde t=24.525s (dato=981) hasta t=30s (dato=1200) donde se
tiene tanto velocidad lineal como velocidad angular.
• El conjunto de datos desde t=30s (dato=1200) hasta t=37.5s (dato=1500) donde se
tiene solo velocidad angular ya que la velocidad lineal es constante.

25
Validación Identificación

Identificación

Validación

Validación

Ilustración 29: Conjunto de datos para la identificación y validación.

Mientras para la validación, se usa un conjunto de entradas/salidas distintas a las utilizadas


para identificación, y comparar la respuesta del modelo con la obtenida del sistema real. Por lo
que cogemos los siguientes conjuntos de datos:
• El conjunto de datos desde t=11.525s (dato=461) hasta t=13.15 (dato=526) y desde
t=14.225 (dato=569) hasta t=14.675 (dato=587) quitando esa pequeña zona de
saturación, donde se tiene solamente velocidad lineal.
• El conjunto de datos desde t=21s (dato=840) hasta t=24.5s (980) donde se tiene
solamente velocidad angular.
• El conjunto de datos desde t=37.525s (dato=1501) hasta t=50s (dato=2000) así se tiene
tanto velocidad lineal como velocidad angular.

% Usando las variables ini y fin para un conjunto de datos para identificar
% Conjunto de datos 1 (donde tenemos solo velocidad lineal)
ini1=250;
fin1=460;
% Conjunto de datos 2 (donde tenemos velocidad angular y V es cte)
ini2=981;
fin2=1200;
% Conjunto de datos 3 (donde tenemos tanto V como W)
ini3=1200;
fin3=1500;
% identificacion velocidad lineal
entrada_V=input_real(2,:)';
entrada1=entrada_V([ini1:fin1 ini2:fin2 ini3:fin3]);
salida_V=output_real(2,:)';
salida1=salida_V([ini1:fin1 ini2:fin2 ini3:fin3]);
% identificacion velocidad angular
entrada_W=input_real(3,:)';
entrada2=entrada_W([ini1:fin1 ini2:fin2 ini3:fin3]);

26
salida_W=output_real(3,:)';
salida2=salida_W([ini1:fin1 ini2:fin2 ini3:fin3]);
% validacion: otro conjunto de datos distinto al de identificacion
% Conjunto de datos 1 (donde tenemos solo V quitando zona saturación)
ini4=461;
fin4=526;
ini5=569;
fin5=587;
% Conjunto de datos 2 (donde tenemos solo W)
ini6=840;
fin6=980;
% Conjunto de datos 3 (donde tenemos tanto V como W)
ini7=1501;
fin7=2000;
% Conjunto de datos para la validación
entradaV=input_real(2,:)';
entrada01=entradaV([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
salidaV=output_real(2,:)';
salida01=salidaV([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
entradaW=input_real(3,:)';
entrada02=entradaW([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
salidaW=output_real(3,:)';
salida02=salidaW([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);

Modelo identificado: usando el comando "pem" que es un comando básico de estimación,


actualiza los parámetros de un modelo inicial para ajustarse a los datos de estimación. La
función utiliza un algoritmo de minimización de errores de predicción para actualizar los
parámetros del modelo inicial.

data=iddata([salida1 salida2],[entrada1 entrada2],Ts);


data2=iddata([salida01 salida02],[entrada01 entrada02],Ts);
m =pem(data,m);

Validación con el comando compare

compare (data2, m);

Los métodos de validación proporcionados por el Toolbox de Identificación se basan en la


simulación del modelo obtenido, y la comparación entre su salida y la respuesta real del
sistema. Una de las funciones disponibles para ello es compare.
Se obtiene los siguientes resultados:

27
Ilustración 30: Resultado del modelo identificado de caja gris tras la primera iteración de la opción 1.

Identificación del modelo final:


Para una identificación válida, hay que hacer más iteraciones dado que los valores con los que
hemos inicializado es una estimación y se hacen más iteraciones hasta obtener unos

28
parámetros iguales o parecidos con un mínimo error porque al hacer muchas iteraciones el
error aumenta.
Parámetros iniciales Parámetros 1
Parámetros 1 Parámetros 2
Parámetros 2 Parámetros 2
Stop error < umbral
Función identificación
Iteraciones programables
Después de 3 iteraciones, obtenemos los siguientes resultados:

29
Ilustración 31: Resultado del modelo identificado de caja gris tras la última iteración de la opción 1.

Donde la gráfica de la respuesta se observa que en esos conjuntos de validación se obtiene un


FIT del 82% en velocidad lineal y del 92% en velocidad angular.

Ilustración 32: Comparación de la respuesta simulada de la opción 1 de la caja gris.

30
Autovalores dominantes:

Como se observa, los autovalores como ya se sabía anteriormente son complejos conjugados,
la respuesta es infra-amrotiguada.

Opción 2: Estado 𝑥2𝑘 equivalente a la velocidad de 𝑥1𝑘


En esta opción se considera que si x1K es velocidad la x2K es aceleración, que es más próximo a
la realidad. En definitiva 𝑥2𝑘 = (𝑥1𝑘+1 - 𝑥1𝑘 )/T.
Relacionando las variables en tiempo discreto para llegar a las matrices características se tiene:
𝑥1k+1 = T * 𝑥2k + 𝑥1k => 𝑥1k+2 = T * 𝑥2 𝑘+1 + 𝑥1 𝑘+1,
𝑥1𝑘+2 + βv * 𝑥1𝑘+1 + γv ∗ 𝑥1𝑘 = αv * 𝑥3𝑘
Desarrollando la siguiente expresión, se obtiene:
T * 𝑥2𝑘+2 = -T * 𝑥2𝑘 *(1+βv) – (1+βv +γv) * 𝑥1𝑘 = αv * 𝑥3𝑘.
Por tanto:
𝑥1k+1 = T * 𝑥2 𝑘 + 𝑥1𝑘
αv
𝑥2𝑘+1 = ((-1+βv+γv) /T) * 𝑥1𝑘 - (1+βv) ∗ 𝑥2𝑘 = * 𝑥3𝑘
𝑇

𝑥3𝑘+1 = 𝑥4𝑘
𝑥4𝑘+1 = 𝑥5𝑘
𝑥5𝑘+1 = Vi𝑘
Vo𝑘 = 𝑥1𝑘 + Kw * 𝑥8𝑘

Lo mismo hacemos para el bloque de segundo grado de la velocidad angular:

𝑥6k+1 = T * 𝑥7 𝑘 + 𝑥6𝑘
αw
𝑥7𝑘+1 = ((-1+βw+γw) /T) * 𝑥6𝑘 - (1+βw) ∗ 𝑥7𝑘 = 𝑇
* 𝑥8𝑘

𝑥8𝑘+1 = 𝑥9𝑘
𝑥9𝑘+1 = 𝑥10𝑘
𝑥10𝑘+1 = 𝑥11𝑘
𝑥11𝑘+1 = Wik
Wo𝑘 = 𝑥6𝑘 + Kv 𝑥3𝑘

31
𝑥1, 𝑘
𝑥2, 𝑘
𝑥3, 𝑘
𝑥4, 𝑘
𝑉𝑜, 𝑘 1 0 0 0 0 0 0 𝐾𝑤 0 0 0 𝑥5, 𝑘 0 0 𝑉𝑖, 𝑘
[ ] = [ ]* +[ ]*[ ]
𝑊𝑜, 𝑘 0 0 𝐾𝑣 0 0 1 0 0 0 0 0 𝑥6, 𝑘 0 0 𝑊𝑖, 𝑘
𝑥7, 𝑘
𝑥8, 𝑘
𝑥9, 𝑘
[𝑥10, 𝑘 ]
Para la identificación con Matlab se sigue el mismo procedimiento de la opción 1.
Código matlab para modelado caja gris, opción 2:

Se cargar los datos

load('input_real.mat');
load('output_real.mat');
Ts=0.025;

Dimensionado e inicialización de matrices A, B, C, D en función de los parámetros α, β, γ, 𝐾𝑣 y


𝐾𝑤 con 5 muestras de retardo en la velocidad lineal y 6 muestras en la velocidad angular. Por
tanto, tenemos: 11 estados en total

a=2; b=-0.5; g=0.5; Kv=0.005; Kw=0.005; % valores iniciales:


% A21=-3.75;
A= [1,0.025,0,0,0,0,0,0,0,0,0;-3.75,0.372,3.576,0,0,0,0,0,0,0,0;
0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,1,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,1,0.025,0,0,0,0;0,0,0,0,0,-4.342,0.5037,4.268,0,0,0;
0,0,0,0,0,0,0,0,1,0,0;0,0,0,0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,0,0,0,1;
0,0,0,0,0,0,0,0,0,0,0];
B= [0,0;0,0;0,0;0,0;1,0;0,0;0,0;0,0;0,0;0,0;0,1];
C= [1,0,0,0,0,0,0,0.004205,0,0,0;0,0,-0.00853,0,0,1,0,0,0,0,0];
D= [0,0;0,0];

Construir el modelo inicial con la función idss que se utiliza para crear un modelo de espacio de
estado de tiempo continuo o de tiempo discreto con coeficientes identificables(estimables)

32
m=idss(A, B, C, D);

Indicación de los parámetros a identificar

m.As= [1,0.025,0,0,0,0,0,0,0,0,0; NaN, NaN, NaN,0,0,0,0,0,0,0,0;


0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,1,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,1,0.025,0,0,0,0;0,0,0,0,0, NaN, NaN, NaN,0,0,0;
0,0,0,0,0,0,0,0,1,0,0;0,0,0,0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,0,0,0,1;
0,0,0,0,0,0,0,0,0,0,0];
m.Bs= [0,0;0,0;0,0;0,0;1,0;0,0;0,0;0,0;0,0;0,0;0,1];
m.Cs= [1,0,0,0,0,0,0, NaN,0,0,0;0,0, NaN,0,0,1,0,0,0,0,0];
m.Ds= [0,0;0,0];
m.x0s= [0;0;0;0;0;0;0;0;0;0;0];

Modelo identificado: usando el comando "pem" que aplica un algoritmo de minimización de


errores de predicción para actualizar los parámetros del modelo inicial.

% Usando las variables ini y fin para un conjunto de datos para identificar
% Conjunto de datos 1 (donde tenemos solo velocidad lineal)
ini1=250;
fin1=460;
% Conjunto de datos 2 (donde tenemos velocidad angular y V es cte)
ini2=981;
fin2=1200;
% Conjunto de datos 3 (donde tenemos tanto V como W)
ini3=1200;
fin3=1500;
% identificacion velocidad lineal
entrada_V=input_real(2,:)';
entrada1=entrada_V([ini1:fin1 ini2:fin2 ini3:fin3]);
salida_V=output_real(2,:)';
salida1=salida_V([ini1:fin1 ini2:fin2 ini3:fin3]);
% identificacion velocidad angular
entrada_W=input_real(3,:)';
entrada2=entrada_W([ini1:fin1 ini2:fin2 ini3:fin3]);
salida_W=output_real(3,:)';
salida2=salida_W([ini1:fin1 ini2:fin2 ini3:fin3]);
% validacion: otro conjunto de datos distinto al de identificacion
% Conjunto de datos 1 (donde tenemos solo V quitando zona saturación)
ini4=461;
fin4=526;
ini5=569;
fin5=587;
% Conjunto de datos 2 (donde tenemos solo W)
ini6=840;
fin6=980;
% Conjunto de datos 3 (donde tenemos tanto V como W)
ini7=1501;

33
fin7=2000;
% Validación
entradaV=input_real(2,:)';
entrada01=entradaV([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
salidaV=output_real(2,:)';
salida01=salidaV([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
entradaW=input_real(3,:)';
entrada02=entradaW([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);
salidaW=output_real(3,:)';
salida02=salidaW([ini4:fin4 ini5:fin5 ini6:fin6 ini7:fin7]);

Identificación modelo

data=iddata([salida1 salida2],[entrada1 entrada2],Ts);


data2=iddata([salida01 salida02],[entrada01 entrada02],Ts);
m =pem(data,m);

Validación con el comando compare

compare (data2, m);

Se obtiene el siguiente resultado después de 3 iteraciones:

34
Ilustración 33: Resultado del modelo identificado de caja gris tras la última iteración de la opción 2.

Donde se puede identificar los siguientes valores: αv = 0.0897, βv = -1.372 y yv= 0.46575, αw =
0.1067, βw = -1.5037y yw = 0.61225 que son valores parecidos a los de la opción 1.
En cuanto al FIT, es igual al de la opción 1:

Ilustración 34: Comparación de respuesta simulada de la opción 2 de la caja gris.

35
Y los autovalores dominantes son:

similares a la opción 1.
Una vez identificada la planta, se dispone del modelo para diseñar en Matlab/Simulink según
muestra la ilustración 35.

Ilustración 35: Modelo caja gris diseñado para el robot P3-DX.

Donde el bloque “Model_P3DX” tiene la siguiente configuración, incluyendo componentes


lineales y no lineales:

Ilustración 36: Simulink de la estructura interna del modelo P3-DX caja gris diseñado.

Se ha modificado el modelo de Simulink poniendo en el bloque “Discrete State-Space” en las


matrices C y D lo siguiente:

Ilustración 37: Matrices C y D del bloque Discrete State-Space.

36
Para obtener tanto el vector de estado como el de salida accesibles. Y con el “manual switch”,
se podrá simular con/sin no linealidades.
Y tendrá los siguientes datos:
Opción 2:

Carga de datos

Ts=0.025; % Tiempo de muestreo


T=50; % Tiempo de simulación
T1=90;
% valores de las no linealidades de la velocidad lineal
vdead_pos=0.05;
vdead_neg=-0.0052;
vsat_pos=0.749;
vsat_neg=-0.7495;
% valores de las no linealidades de la velocidad angular
wdead_pos=0.05;
wdead_neg=-0.025;
wsat_pos=1.7362;
wsat_neg=-1.7301;

Las matrices del modelo identificado de la caja gris opción 2:

A= [1,0.025,0,0,0,0,0,0,0,0,0; -3.765,0.3695,3.589,0,0,0,0,0,0,0,0;
0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,1,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,1,0.025,0,0,0,0;0,0,0,0,0,-4.342,0.5037,4.268,0,0,0;
0,0,0,0,0,0,0,0,1,0,0;0,0,0,0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,0,0,0,1;
0,0,0,0,0,0,0,0,0,0,0];
B= [0,0;0,0;0,0;0,0;1,0;0,0;0,0;0,0;0,0;0,0;0,1];
C= [1,0,0,0,0,0,0,0.004202,0,0,0;0,0,-0.00853,0,0,1,0,0,0,0,0]

C = 2×11
1.0000 0 0 0 0 0 0⋯
0 0 -0.0085 0 0 1.0000 0

D= [0,0;0,0];

Simulando con las no linealidades, se obtiene la siguiente salida. Comparando con la


ilustración 4, se observa la aproximación del modelo a la respuesta real del robot para el
mismo vector de entrada.

37
Ilustración 38: Salida del modelo caja gris P3-DX.

Resumen de resultados:
Parámetros Resultados
Velocidad lineal (v) Retardo 5 muestras
+dead zone +0.05
-dead zone -0.0052
sat_pos +0.749
sat_neg -0.7495
Varianza 1.1906e-06
Velocidad angular (w) Retardo 6 muestras
+dead zone +0.05
-dead zone -0.025
sat_pos 1.7362
sat_neg -1.7301
Varianza 1.0538e-04
Tabla 1: Resumen de resultados del modelo caja gris.

38
II.2.3. Modelo caja negra (Black Box Best y Standard).

En este apartado se va a realizar la identificación de la planta en el modelo caja negra. La


alternativa caja negra se aplica cuando no se tiene conocimiento de los principios físicos del
comportamiento de la planta, y por tanto no se conoce una estructura previa de interrelación
de variables. En este caso, se recurre a algoritmos que, mediante iteración, proporcionan
modelos (estructura y parámetros) apropiados desde el punto de vista del error de estimación,
pero con difícil interpretación física.

En este TFG se van a evaluar dos alternativas que nos permite la herramienta de identificación
de Matlab (estándar y óptima).
Estándar (estandard): Matlab permite fijar el número de estados previsto al inicializar el mo-
delo.
Óptima (Best): Matlab establece la estructura (incluido el número de estados) y los paráme-
tros que permiten reducir el error de estimación.

Opción 1: estándar:
Se puede representar el modelo y estimar los parámetros usando el comando ssest o n4sid:
m= n4sid(data,nx) siendo nx el número de estados del modelo.
La función n4sid, con los argumentos arriba indicados, estima un sistema de modelo de
espacio de estado de tiempo discreto de orden nx.
Para obtener el modelo, a partir del conocimiento mínimo del ensayo en lazo abierto (valores
de las no linealidades y tamaño de los vectores) seguimos los siguientes pasos:
1. Load data. Split data: data_1, data_2.
2. data_1=iddata(outputs, inputs, Ts)
3. m= n4sid(data,nx)
4. model=pem(data_1, m)
5. compare (data_2, m)
Se obtienen los siguientes resultados:

39
40
Ilustración 39: Resultado del modelo identificado de la caja negra estándar.

Como se puede observar el FIT es superior al 97% tanto para la velocidad lineal como
para la velocidad angular, superior a los valores (82% y 93%) del modelo caja gris. Del
mismo modo el valor FPE (Final Prediction Error) es del orden de 100 veces inferior al
modelo caja gris, y el valor MSE (Mean Squared Error) 10 veces inferior. Con estos
valores se puede afirmar que el modelo caja negra mejora cuantitativamente la
estimación paramétrica obtenida con el modelo caja gris. Además, hay que hacer notar,
por una parte, la complejidad del modelo (cantidad de parámetros ajustados) y la
pérdida de significado físico de los estados, incluso su relación con las variables de
salida.
En la ilustración 40 se muestran los resultados de validación, realizada con un conjunto de
datos distintos a los utilizados en el proceso de identificación.

Ilustración 40: Comparación de respuesta simulada de caja negra estándar.

41
Comparando con la ilustración 34, los resultados de validación con caja negra estándar son
similares en el caso de velocidad angular (92% de ajuste) pero un 2% inferior en el caso de
velocidad lineal (80%).
Opción 2: Best:

Esta versión de modelo caja negra es totalmente libre, no requiere indicación del número de
estados. Los pasos a seguir son:
1. Load data. Split data: data_1, data_2.
2. data_1=iddata(outputs, inputs, Ts)
3. init_sys=n4sid (data_1, ‘best’)
4. model=pem(data_1, init_sys)
5. compare (data_2, model)
Se obtienen los siguientes resultados:

42
Ilustración 41: Resultado del modelo identificado de la caja negra best.

Los resultados cuantitativos de la estimación (Fit, FPE y MSE) son similares al caso estándar. Lo
más relevante es la reducción del número de estados, solo 6 frente a 11 en los modelos
previamente analizados.

Comparando las ilustraciones 40 y 42, tampoco se aprecias diferencias relevantes en la


validación de las dos versiones de modelo caja negra.

43
Ilustración 42: Comparación de respuesta simulada de caja negra best.

II.2.4. Estudio comparativo.

En cuanto al estudio comparativo, se van a comparar las métricas más relevantes en la


identificación como FIT, MSE y FPE. El primero indica el porcentaje de ajuste de la salida del
modelo a la salida real, para el mismo conjunto de datos de entrada. MSE y FPE son dos formas
de evaluar el error de predicción para un conjunto de datos determinado.
FPE MSE Fit fase Fit fase
identificación validación
Caja gris 5.744e-06 0.00489 [82.66;93.76]% [82.7;92.21]%
Caja negra Best 2.636e-08 0.0003728 [97.18;97.52]% [80.89;92.71]%
Caja negra 2.246e-08 0.0003473 [97.47;97.56]% [80.45;92.41]%
Estándar

En la tabla de arriba, se muestra un resumen de los resultados de los parámetros más


relevantes. Donde Se aprecia que los modelos caja negra son los mejores en cuanto a los
parámetros MSE y FIT en la identificación donde el modelo caja negra estándar tiene MSE=
0.0003473 y FIT= [97.47% 97.56%] y el modelo caja negra best tiene MSE= 0.0003728 y FIT=
[97.18% 97.52%]. Mientras en el modelo caja gris se obtiene MSE= 0.0003728 y FIT= [97.18%
97.52%]. Esto se explica porque el modelo caja negra es muy bueno en cuanto a identificación
porque estima varios valores de las matrices mientras el de caja gris se cambiaban unos
determinados parámetros.
También se justifica por la matriz Ce del modelo caja negra (Estándar) obtenida en el proceso
de identificación que es de 2x11. Tanto la matriz Ce como la Cb, presentan componentes
diferentes a 0 y 1, lo que supone una mayor dependencia de las salidas con los estados, lo que
no ocurre con el modelo caja gris.

44
En la fase de validación, a la vista de los resultados gráficos, el modelo caja gris tiene un mejor
ajuste, especialmente la velocidad angular.

II.3. Diseño de servosistema.

En este apartado, se va a comparar el diseño de un servocontrol de velocidades angulares del


robot, a partir de los diferentes modelos obtenidos en el espacio de estados. El diseño se
realiza en tiempo discreto ya que se realizará una implementación digital en la unidad robótica
P3-DX. Antes de diseñar el control se analizan las propiedades de los modelos obtenidos:
estabilidad, controlabilidad y observabilidad.

Propiedades del modelo caja gris

Obtenidas las matrices (A, B, C y D), se comprueban las propiedades del modelo

Estabilidad: es estable dado que los autovalores de la matriz A están dentro de la circunferen-
cia unidad.

aut=eig(A)
mod=abs(aut)
fase=angle(aut)

aut = 11×1 complex mod = 11×1 fase = 11×1

0.7573 + 0.0000i 0.7573 0


0.6122 + 0.0000i 0.6122 0
0.7519 + 0.2167i 0.7825 0.2807
0.7519 - 0.2167i 0.7825 0.2807
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0
0.0000 + 0.0000i 0 0

Controlabilidad: es controlable cuando el rango de la matriz de controlabilidad es igual que el


número de estados.

CO=ctrb (A, B);


r1=rank (CO)

r1 = 11

Observabilidad: es observable la planta si el rango de la matriz de observabilidad es igual que


el número de estados.

OB=obsv (A, C);


r2=rank (OB)

r2 = 11

45
Propiedades del modelo caja negra best

Obtenidas las matrices (Ab, Bb, Cb y Db), se comprueba las propiedades del modelo

Estabilidad: es estable dado que los autovalores de la matriz A están dentro de la circunferen-
cia unidad.

autb=eig(Ab)
modb=abs(autb)
faseb=angle(autb)

autb = 6×1 complex modb = 6×1 faseb = 6×1

0.7708 + 0.3311i 0.8389 0.4057


0.7708 - 0.3311i 0.8389 -0.4057
0.8821 + 0.0548i 0.8838 0.0621
0.8821 - 0.0548i 0.8838 -0.0621
0.9067 + 0.1279i 0.9156 0.1401
0.9067 - 0.1279i 0.9156 -0.1401

Se observa que son autovalores más lentos que los del modelo caja gris.

Controlabilidad: es controlable cuando el rango de la matriz de controlabilidad es igual que el


número de estados.

COb=ctrb (Ab,Bb);
r1b=rank (COb)

r1b = 6

Observabilidad: es observable la planta si el rango de la matriz de observabilidad es igual que


el número de estados.

OBb=obsv (Ab,Cb);
r2b=rank (OBb)

r2b = 6

Propiedades del modelo caja negra estándar

A partir de las matrices características (Ae, Be, Ce y De), se comprueban las propiedades del
modelo.

Estabilidad: es estable dado que los autovalores de la matriz A están dentro de la circunferen-
cia unidad.

aute=eig(Ae)
mode=abs(aute)
fasee=angle(aute)

aute = 11×1 complex mode = 11×1 fasee = 11×1

46
-0.9446 + 0.0000i 0.9446 3.1416
-0.7429 + 0.5862i 0.9464 2.4735
-0.7429 - 0.5862i 0.9464 -2.4735
0.7636 + 0.3101i 0.8242 0.3858
0.7636 - 0.3101i 0.8242 -0.3858
0.7530 + 0.2246i 0.7858 0.2899
0.7530 - 0.2246i 0.7858 -0.2899
0.9662 + 0.0000i 0.9662 0
0.9467 + 0.0000i 0.9467 0
0.8459 + 0.0253i 0.8463 0.0299
0.8459 - 0.0253i 0.8463 -0.0299

Controlabilidad: es controlable cuando el rango de la matriz de controlabilidad es igual que el


número de estados.

COe=ctrb (Ae,Be);
r1e=rank (COe);
r1e

r1e = 11

Observabilidad: es observable la planta si el rango de la matriz de observabilidad es igual que


el número de estados.

OBe=obsv (Ae,Ce);
r2e=rank (OBe);
r2e

r2e = 11
se puede concluir que los tres modelos son estables. También son controlables y observables,
por lo que cabe diseñar el control a partir de la realimentación del estado estimado.

El servosistema que se va a diseñar para el seguimiento de la velocidad lineal y angular tiene la


siguiente estructura:

Ilustración 43: Diagrama de bloque del servosistema con ganancias Kr y Ki.

Donde en el bloque de Simulink “state space” haciendo que C=I (matriz identidad de tamaño
nxn) y D=0 (Matriz ceros de tamaño nxp), se obtiene a su salida el vector de estados. Este
vector multiplicado por la matriz C proporciona el vector de salida como se indica en la figura.

47
Las ecuaciones del servosistema son las siguientes:
Planta: xk+1 = 𝐺 xk + 𝐻 uk
yk = C xk + D uk
Integrador: 𝜂k+1 = 𝜂k + 𝑒k 𝑑𝑜𝑛𝑑𝑒 𝑒k = 𝑟k – yk = 𝑟k – 𝐶 xk - D uk es el error
𝜂k+1 = 𝜂k + 𝑟k – yk

Donde el tamaño de los vectores anteriores es el siguiente:


• xk ∈ Rnx1
• uk ∈ Rmx1
• yk ∈ Rpx1
• rk ∈ Rpx1
• ek ∈ Rpx1
• 𝜂k ∈ Rpx1
• G ∈ Rnxn
• H ∈ Rnxm
• C ∈ Rpxn
• D ∈ Rpxm
Siendo n es el número de estados, m es el número de entradas y p es el número de salidas.
Por tanto, en formato matricial se obtienen las siguientes matrices:

𝐺 0 𝐻
Siendo Ga = [ ] y Ha = [ ] las matrices ampliadas del vector ampliado xa = [x, 𝜂]T.
−𝐶 𝐼 −𝐷
La matriz de ceros es de nxp.
La matriz identidad es cuadrada, pxp, siendo p el número de salidas de la planta, que coincide
con el número de referencias y con el número de estados del integrador.
Sabemos que la ley de control es:
uk = −𝐾r*xk + 𝐾i*𝜂k que se puede expresar de la siguiente manera:
𝑥𝑘
uk = − [𝐾r −𝐾i] * [𝜂 ] = −Ka*xa,k
𝑘

El objetivo del diseño del servosistema es determinar la matriz Ka que está formada por las
matrices Ki del integrador y Kr de realimentación de estados.
Para obtener la matriz Ka se puede realizar algunas técnicas como la ubicación de autovalores o
la técnica LQR (Linear Quadratic Regulator). En nuestro caso se va a optar por la primera.
Teniendo en cuenta las matrices ampliadas del vector ampliado Xa:
• Ga Є 𝑅(n+p) x (n+p).
• Ha Є 𝑅(n+p) x m .
• µi Є 𝑅n+p.

48
En cuanto a las ganancias Kr y Ki del sistema (objetivo de diseño):

• Ka Є 𝑅mx(n+p), matriz la cual contiene Kr y Ki de la forma Ka = [𝐾r −𝐾i]


• Kr Є 𝑅mxn, matriz objetivo de diseño.
• Ki Є 𝑅mxp, matriz objetivo de diseño.

II.3.1. Servo basado en modelo estructurado.

En este modelo, se parte de los siguientes datos: 11 estados, 2 entradas y 2 salidas. Por tanto:
Los pasos para seguir para diseñar el servosistema son los siguientes:

ng=11; %número de estados


pg=2; %número de salidas
mg=2; %número de entradas

a) Ya se había comprobado anteriormente las propiedades del modelo (estabilidad,


controlabilidad y observabilidad)
b) Empezamos planteando las especificaciones del diseño. Para ello, Para ello, tenemos que
decidir qué tipo de respuesta queremos que en nuestro caso hemos elegido una respuesta
sobreamortiguada. Después, nos disponemos a elegir nuestros 13 autovalores donde
proponemos que 2 de ellos dominantes (lentos) aproximados a los de la planta y el resto no
dominantes. Sabemos que estos autovalores (dominantes) tienen que estar en el eje real
positivo en tiempo discreto y dentro de la circunferencia unidad ya que la respuesta elegida es
sobreamortiguada obteniendo así dos autovalores dominantes próximos a z=1. Para los
autovalores no dominantes los elegiremos de forma que sus módulos son iguales o menores el
de dominantes elevado a 5.
Los autovalores de la planta:

Los autovalores elegidos con la técnica de ubicación de autovalores para el servosistema son:

eigv=[0.85;0.85;0.85^5;0.85^5;0.85^6;0.85^6;0.85^7;0.85^7;0.85^8;0.85^8;
0.85^9;0.85^9;0.85^10];

c) Posteriormente, calculamos las ganancias en formato matricial correspondientes a la


ganancia del integrador y del regulador. Primero, tenemos que obtener las matrices ampliadas
a partir del modelo obtenido.
𝐺 0nxp 𝐻
Ga = [ ] Ha = [ ]
−𝐶 𝐼𝑝𝑥𝑝 −𝐷

Ga=[A zeros(ng,pg) ;-C eye(pg)];

49
Ha=[B;-D];

Una vez obtenidos nuestras matrices ampliadas y nuestros autovalores


Usamos el comando “place” para obtener nuestras ganancias deseadas como se puede
observar en el siguiente Live Script “Servosistema.mlx”:

Ka=place(Ga,Ha,eigv)
Kr=Ka(:,1:ng)
Ki=-Ka(:,ng+1:ng+pg)

Ka = 2×13
1.6075 0.0664 0.2393 0.3359 -0.1260 -0.0043 -0.0002 -0.0000 -0.0000 -0.0000 -0.0000 -0.2200
0.0009
0.0089 0.0004 -0.0000 -0.0000 -0.0000 0.6874 0.0418 0.1985 0.2022 0.3706 -0.1887 -0.0013 -0.1486

Kr = 2×11
1.6075 0.0664 0.2393 0.3359 -0.1260 -0.0043 -0.0002 -0.0000 -0.0000 -0.0000 -0.0000
0.0089 0.0004 -0.0000 -0.0000 -0.0000 0.6874 0.0418 0.1985 0.2022 0.3706 -0.1887

Ki = 2×2

0.2200 -0.0009
0.0013 0.1486

d) Como ya hemos obtenido todos los valores necesarios, nos disponemos a simular nuestro
circuito ante la siguiente referencia y sin perturbación.

Ilustración 44: Modelo simulink del servosistema caja gris.

La referencia:

50
Ilustración 45: Referencia (V, W).

Se obtiene los siguientes resultados:

Ilustración 46: Las señales salida y error de seguimiento a partir del modelo Grey Box.

Ilustración 47: La señal entrada a la planta del modelo Grey Box.

Aplicando una referencia de 0.5 m/s de velocidad lineal y de 1 rad/s de velocidad angular que
están por debajo del valor de saturación la salida sigue a la referencia con una respuesta
sobreamortiguada.
En cuanto al error, se observa que pasa a ser nulo en régimen permanente dado que la salida
sigue a la referencia constante.

51
e) En este apartado, realizamos el mismo ensayo, pero añadiendo tanto la perturbación
mostrada en la siguiente figura como la referencia diseñada anteriormente. Tenemos que
añadir un valor de perturbación bajo para que no sature en la entrada de la planta.

Ilustración 48: Las perturbaciones Vd y Wd, junto a las referencias de velocidad.

Se obtienen los siguientes resultados:

Ilustración 49: Las señales salida y error a partir del modelo Grey Box ante la referencia y perturbaciones.

La salida sigue la entrada como lo anterior, pero se aprecia también la perturbación aplicada
tanto en la salida como en el error.
f) Por último, veremos el efecto de la incertidumbre del modelo, aplicando sólo la referencia
sin perturbaciones, realizamos un cambio de parámetros. Para ello cambiamos los parámetros
αv y βw de la matriz A haciéndolos que valgan su valor determinado por el modelo en el primer
tramo de la señal y un nuevo valor equivalente al valor anterior incrementado en 50% en el
segundo tramo de la señal.
αv1 = 0.0894 si t0 ≤ t ≤ t2
αv =
αv2 = 0.1341 si t2 < t ≤ tf

βw1 = -1.5037 si t0 ≤ t ≤ t1 y t2 < t <≤t3


βw =
βw2 = -1.5338 si t1 ≤ t ≤ t2 y t3 < t ≤ tf (2%)

52
siendo: t1 = 15s, t2 = 23s, t3 = 38s y tf = 50s.

Con el siguiente código, realizamos el efecto de la incertidumbre del modelo en función del
tiempo:

Ilustración 50: Código para evaluar el efecto de la incertidumbre del modelo.

Al incrementar el parámetro βw en 50% se hacía inestable el sistema dado que ese parámetro
hace variar mucho el elemento A7,6 que pasa de -4.342 a 25.732 por la ecuación siguiente:

Por lo que se optó por la opción de incrementarlo en un 2% mientras el parámetro αv en un


50%. Se obtiene las siguientes gráficas.

53
Ilustración 51: Las señales salida y error a partir del modelo Grey Box con variación de parámetros αv y βw.

Donde se observa que cuando hay un cambio de un parámetro se genera un transitorio que se
aprecia mejor en la señal de la velocidad angular que es la más afectada del cambio de
parámetro. Mientras en la velocidad lineal no se aprecia un gran cambio.

II.3.2. Servo basado en modelo caja negra.

Se analiza en primer lugar la versión óptima y después la estándar.

II.3.2.1. Servo basado en modelo caja negra best.

Siguiendo los mismos pasos que en el modelo caja gris. En este caso hay que tener en cuenta
que el número de estados que nos estimó Matlab es 6.

nb=6; %número de estados


pb=2; %número de salidas
mb=2; %número de entradas

Por tanto, los autovalores del servosistema serán de tamaño (nb+pb), es decir, 8.
a) Como antes, este modelo se ha visto que cumple las propiedades (controlabilidad y
observabilidad).
b) Los autovalores elegidos para servosistema son los mismos elegidos en el caso del modelo
caja gris para comparar:

eigvb=[0.85;0.85;0.85^5;0.85^5;0.85^6;0.85^6;0.85^7;0.85^7];

c) se obtienen las siguientes matrices ampliadas en el mismo Live Script:

Gab=[Ab zeros(nb,pb) ;-Cb eye(pb)];


Hab=[Bb;-Db];

Obtención de la ganancia mediante la función place

Kab=place(Gab,Hab,eigvb)
Krb=Kab(:,1:nb)

54
Kib=-Kab(:,nb+1:nb+pb)

Kab = 2×8

175.5088 238.3931 -30.7572 51.1722 -3.5276 18.2479 -14.2857 -8.2420


-7.4441 74.9624 -22.9363 1.2029 -7.7362 11.6702 0.2373 -1.2162

Krb

Krb = 2×6

175.5088 238.3931 -30.7572 51.1722 -3.5276 18.2479


-7.4441 74.9624 -22.9363 1.2029 -7.7362 11.6702

Kib

Kib = 2×2

14.2857 8.2420
-0.2373 1.2162

Se observa que la ganancia Ka en este caso tiene valores mayores que el modelo de caja gris
dado que el de caja negra estimaba el número de estados y también los valores.
d) Aplicando la misma referencia, se obtienen las siguientes señales:

Ilustración 52: Las señales salida y error best black box ante la referencia.

Ilustración 53: La señal entrada best balck box ante la referencia.

55
Se observa que la salida en el modelo caja gris sigue mejor a la entrada que el de caja negra. El
resultado con el modelo caja negra óptimo tiene un transitorio más rápido, pero sobre todo
una mayor dependencia de la velocidad lineal a los cambios en la angular, justificada por la
matriz Cb obtenida en el proceso de identificación.
Comparando las matrices C que teníamos los parámetros 𝐾𝑣 y 𝐾𝑤 de cada modelo:

C = 2×11
1 0 0 0 0 0 0 0.0042 0 0 0
0 0 -0.0085 0 0 1 0 0 0 0 0

Cb = 2×6
2.6990 0.3477 0.0079 0.1026 0.0150 -0.0050
-0.4822 4.6470 0.0146 0.0008 -0.0876 -0.0043

Se puede deducir que esos parámetros son mayores en el caso del modelo caja negra (best)
donde la matriz Cb tienen valores mayores que los de C. por eso hay mayor dependencia
mientras en el modelo caja gris son de milésimas. Donde Kv era -0.0085 y Kw era 0.0042.
Además, se ha de tener en cuenta que los autovalores dominantes de la matriz Ab eran 0.9 y al
llevarlo a 0.85 las ganancias resultan más grandes y por tanto la entrada u_control más grande
Por último, en cuanto a la señal u_control se observa que los niveles de la velocidad lineal
superan la saturación de la planta. Por tanto, hay que diseñar un servosistema más lento, para
que no llegue a la saturación. Se proponen autovalores más lentos que (autovalores de la
planta).
Nuevos autovalores del servo:

eigvb=[0.95;0.95;0.95^2;0.95^2;0.95^3;0.95^3;0.95^4;0.95^4];

y se obtiene esta señal u_control donde se observa que ahora los niveles de la velocidad lineal
no se pasan de la saturación de la planta dado que los autovalores dominantes son cercanos a
los de la planta con los que la ganancia ahora no es muy grande y por tanto las entradas a la
planta no son grandes.

Ilustración 54: La señal entrada del servo lento best black box ante la referencia.

56
e) Aplicando además las mismas perturbaciones, al servosistema inicial se obtienen las
siguientes señales:

Ilustración 55: Las señales salida y error a partir del modelo best black box ante la referencia y perturbaciones.

Lo mismo que el caso anterior, se observa una mayor dependencia de la velocidad angular
sobre la velocidad lineal, justificada por la matriz Cb obtenida en el proceso de identificación
más las perturbaciones aplicadas.
Aplicando esas mismas perturbaciones a la segunda versión de servosistema (más lento), se
obtienen las siguientes gráficas:

Ilustración 56: Las señales salida y error del servo lento best black box ante la referencia y perturbaciones.

f) Aplicando solamente la referencia, realizamos el cambio de parámetros. Dado que en este


caso no sabemos el significado físico de los parámetros, nos centramos en el elemento con
mayor valor de la matriz A incrementándolo en 20%.

1.035 si t0 ≤ t ≤ t1 y t3 ≤ t ≤ tf
A3,3 =
1.2420 si t1 < t ≤ t3

Así tenemos 2 cambios durante la simulación.


siendo: t0 = 0s, t1 = 15s, t2 = 23s, t3 = 38s y tf = 50s.

57
Ilustración 57: La señal salida best black box ante un cambio en el parámetro A3,3.

En este caso, con un incremento del 50% se hacía inestable el sistema y con un 20% se observa
cómo afecta el cambio de parámetro introduciendo oscilaciones. Eso se debe a que en la caja
negra las dependencias entre los valores de la matriz A son muy fuertes.
II.3.2.2. Servo basado en modelo caja negra estándar.

Siguiendo los mismos pasos que en el modelo caja gris. En este caso hay que tener en cuenta
que el número de estados que nos estimó Matlab es 11.

ne=11; %número de estados


pe=2; %número de salidas
me=2; %número de entradas

a) Como antes, este modelo se ha visto que cumple las propiedades de controlabilidad y
observabilidad.
b) Los autovalores elegidos para servosistema son los mismos elegidos en el caso del modelo
caja gris para comparar:

eigve=[0.85;0.85;0.55;0.55;0.5;0.5;0.4;0.4;0.3;0.3;0.2;0.2;0.1];

c) se obtienen las siguientes matrices ampliadas en el mismo Live Script:

Gae=[Ae zeros(ne,pe) ;-Ce eye(pe)];


Hae=[Be;-De];

Obtención de la ganancia mediante la función place

Kae=place(Gae,Hae,eigve);
Kre=Kae(:,1:ne)
Kie=-Kae(1,ne+1:ne+pe)

Kae = 2×13
104 ×
-0.7498 0.3935 -0.1007 -0.1348 -0.0433 0.0129 -0.0227 -0.2042 0.1995 -0.0543 -0.0764 0.0006
0.0014
2.0227 -1.0596 0.2842 0.3590 0.1198 -0.0376 0.0669 0.5300 -0.5269 0.1779 0.1678 -0.0021 -0.0043

58
Kre = 2×11
104 ×
-0.7498 0.3935 -0.1007 -0.1348 -0.0433 0.0129 -0.0227 -0.2042 0.1995 -0.0543 -0.0764
2.0227 -1.0596 0.2842 0.3590 0.1198 -0.0376 0.0669 0.5300 -0.5269 0.1779 0.1678

Kie = 2×2
-6.2643 -14.2393
20.9697 43.4714

Se puede observar que la ganancia Ka en este caso es muy grande dado que el de caja negra
estimaba los valores, aunque le indicamos el número de estados.
d) Aplicando la misma referencia, se obtienen las siguientes señales:

Ilustración 58: Las señales salida y error a partir del modelo standard black box.

Ilustración 59: La señal entrada a la planta del modelo standard black box.

Pasa algo parecido al modelo anterior (caja negra best) pero ahora se observa una mayor
dependencia de cada uno de los cambios de velocidad en la otra. También se observa que los
transitorios superan los niveles de saturación de la planta por tanto habrá que hacer el
servosistema mucho más lento para que no se sature igual que en el caso de la alternativa best
de la caja negra.
En cuanto al error de observa que es de mayor nivel y también tiene un transitorio rápido que
el de caja gris.

59
Todo esto, también se justifica por la matriz Ce del modelo caja negra estándar obtenida en el
proceso de identificación que es de 2x11. Por tanto, más valores que hacen que haya mayor
dependencia de los estados en el vector de salida:
Ce = 2×11
-2.662 -0.3643 -0.0091 -0.05898 -0.00753 -0.01593 0.01239 -0.03695 0.01027 0-0.01058 -0.0003843
0.5004 -4.63 -0.01561 -0.01531 0.07011 -0.01116 0.03566 -0.02702 -0.005875 0.01098 -0.01679

Cb = 2×6
2.6990 0.3477 0.0079 0.1026 0.0150 -0.0050
-0.4822 4.6470 0.0146 0.0008 -0.0876 -0.0043

Eligiendo otros autovalores más cercanos a los autovalores de la planta para hacer que el
servosistema sea lento:

eigve=[0.98;0.98;0.98^1.5;0.98^1.5;0.95^2.5;0.95^2.5;0.98^3.5;0.98^3.5;0
.98^4.5;0.98^4.5;0.98^5.5;0.98^5.5;0.98^6];

Se obtiene la siguiente gráfica u_control:

Ilustración 60: La señal entrada a la planta del modelo standard black box con la versión lenta de servo.

Se observa que ahora no se satura la entrada, pero al ser muy lento el servosistema no sigue
bien la referencia.
e) Aplicando además las mismas perturbaciones, se obtienen las siguientes señales:

60
Ilustración 61: Las señales salida y error a partir del modelo standar black box ante la referencia y perturbaciones.

Se observa una mayor dependencia de la velocidad angular sobre la velocidad lineal y


viceversa, justificada por la matriz C obtenida en el proceso de identificación más las
perturbaciones aplicadas.
Aplicando las mismas perturbaciones sobre el servosistema lento diseñado anteriormente, se
obtienen las siguientes gráficas:

Ilustración 62: Las señales salida y error del servo lento standard black box ante las perturbaciones.

Se observan unos niveles inaceptables para la planta real, por lo que habría que reajustar el
diseño.
f) Para evaluar el efecto de variación de parámetros, se eligen los mismos elementos de la
matriz A donde estaban los parámetros αv y βw incrementando su valor en un 5%.
Sobre el servosistema lento diseñados anteriormente:

Los elementos de la matriz A correspondientes parámetros αv y βw son respectivamente A2,3 y


A7,6
A2,3 = -0.07107 si t0 ≤ t ≤ t2
A2,3 =
A2,3 = -0.0746 si t2 < t ≤ tf
A7,6 = 0.2798 si t0 ≤ t ≤ t1 y t2 < t <≤t3
A7,6 =
A7,6 = 0.2938 si t1 ≤ t ≤ t2 y t3 < t ≤ tf

61
siendo: t0 = 0s, t1 = 15s, t2 = 23s, t3 = 38s y tf = 50s.
Dado que los niveles de los transitorios de la velocidad lineal y angular superaban la
saturación, lo hacemos para el servosistema más lento y con la referencia con la que no se
satura.
Con el modelo caja negra alternativa estándar hay que reducir el porcentaje del incremento al
5% para que sea estable.

Ilustración 64: La señal salida del servo lento a partir del modelo standard black box ante un cambio de parámetros.

II.3.3. Estudio comparativo.

En este apartado, se va a realizar un resumen de las diferencias entre los tres modelos después
de diseñar el servosistema.
La diferencia más relevante es la mayor dependencia de los cambios de referencia de una
velocidad en la salida de la otra, justificada por la matriz C obtenida en el proceso de
identificación en cada caso.
Comparando las matrices C que contiene los parámetros 𝐾𝑣 y 𝐾𝑤 de cada modelo:
C = 2×11
1 0 0 0 0 0 0 0.0042 0 0 0
0 0 -0.0085 0 0 1 0 0 0 0 0

Ce = 2×11
-2.662 -0.3643 -0.0091 -0.05898 -0.00753 -0.01593 0.01239 -0.03695 0.01027 0-0.01058 -0.0003843
0.5004 -4.63 -0.01561 -0.01531 0.07011 -0.01116 0.03566 -0.02702 -0.005875 0.01098 -0.01679

Cb = 2×6
2.6990 0.3477 0.0079 0.1026 0.0150 -0.0050
-0.4822 4.6470 0.0146 0.0008 -0.0876 -0.0043

62
Por otra parte, al fijar los dos autovalores dominantes del servo en 0.9, este valor es más lento
que los correspondientes al modelo caja gris, pero más rápido que los correspondientes a los
modelos caja negra. Esto condiciona los valores de la señal de control aplicados a la planta,
más grandes en los casos de modelo caja negra, llegando a superar los niveles de saturación.
Por ello, se han diseñado servosistemas más lento para las versiones caja negra.

II.4. Diseño de observador.

Una vez se ha comprobado que el modelo es observable, se diseña un observador predictor


basado tanto en modelo estructurado como en modelo caja negra para poder realizar una
comparativa entre los distintos modelos.

II.4.1. Observador determinístico predictor.

Este observador se caracteriza porque con la medida en una muestra se predice el estado en la
muestra siguiente: yk-1 -> 𝑥̂ k donde yk € Rp y 𝑥̂ k € Rn , siendo el error de estimación:
x̃k = xk - 𝑥̂k -> 0

El observador tiene la siguiente estructura:


xk+1 = G xk + H uk
Planta: yk = C xk + D uk

Observador:
𝑥̂k+1 = G 𝑥̂k + H uk + Ke (yk –𝑦̂k)
𝑥̂k+1 = G 𝑥̂k + H uk + Ke (C xk + D uk – C 𝑥̂k + D uk)
= G 𝑥̂k + H*uk + Ke Cx̃k
Ilustración 65: Esquema del observador predictor.

̂k+1 = (G-Ke C) x̃k


Por tanto: x̃k+1 = xk+1 - 𝒙
Si [G-Ke C] es estable, entonces x̃ss ->0, independiente de x̃0
Dado que yk ϵ Rp y 𝑥̂k ϵ Rn, la matriz de ganancia del observador tiene dimensiones Ke ϵ Rnxp.
II.4.1.1 Observador con modelo caja gris:

Donde n=11, p=2.


Para poder diseñarlo, debemos seguir los siguientes pasos:
1) Se ha comprobado que la planta es observable.
2) El siguiente paso es elegir nuestros autovalores. En nuestro caso tendremos 11 diferentes ya
que tenemos 11 estados distintos. Además, los valores de los autovalores tienen que hacer
que la respuesta del sistema sea más rápida que la del servosistema. Por lo tanto, nuestros
autovalores son más rápidos que los dominantes del servosistema elevado a 5:

autv= [0.85^5;0.85^5;0.85^6;0.85^6;0.85^7;0.85^7;0.85^8;0.85^8;0.85^9;
0.85^9; 0.85^10];

63
3) A continuación, pasamos a calcular la ganancia Ke. Para ello, aplicando el principio de
dualidad tenemos que introducir a través de la función place nuestros autovalores y nuestras
matrices G y C como se muestra en el siguiente código del fichero “Servosistema.mlx”:

Ke=place (A’, C', autv)';


Ke

Ke = 11×2

-0.2732 0.0181
19.9933 -0.8761
-3.7951 0.1485
0.6009 -0.0197
-0.0375 0.0011
-0.1040 -0.3361
4.7720 24.2874
-0.9787 -5.1614
0.2640 1.1351
-0.0382 -0.1310
0.0023 0.0062

Por último, solo tenemos que crear el observador en Simulink a través de las matrices
obtenidas quedándonos el siguiente subsistema:

Ilustración 66: Modelo Simulink del observador predictor a partir del modelo Grey Box.

Y así el sistema total queda:

Ilustración 67: Modelo Simulink del sistema total (servo + observador) diseñados para el modelo Grey Box.

Al comprobar el sistema sin añadirle ni la referencia ni la perturbación y poniéndole unas


condiciones iniciales distintas de 0 por ejemplo 1, obtenemos que el error de estimación
(diferencia de error entre el estado real y el estimado) tras un transitorio llega a anularse. A
modo de ejemplo, si analizamos el error de estimación del estado x8, asociado a la velocidad
angular, la evolución temporal se muestra en la ilustración 68.

64
Ilustración 68: Estado x8, real y estado estimado de la planta con modelo Grey Box.

4) Validación del sistema completo mediante simulación:


• Primero, empezamos con la conexión de la referencia, pero sin añadir las no
linealidades,

Ilustración 69: Las señales salida y error del sistema completo diseñado a partir del modelo Grey Box.

65
Ilustración 70: La señal entrada al modelo Grey Box formando parte del sistema de seguimiento con observador.

Se observa que la salida sigue la entrada, el error se hace nulo en régimen permanente ya que
la salida sigue la referencia.

• El segundo caso, implicaría añadir las no linealidades calculadas, pero sin añadir la
perturbación ya que solo aplicaremos la señal de referencia:

Ilustración 71: Las señales salida y error, del sistema completo, teniendo en cuenta las no-linealidades del modelo
Grey Box.

Ilustración 72: La señal entrada a la planta, en el sistema de control completo, considerando las no-linealidades del
modelo Grey Box.

66
Como podemos apreciar, lo único que varía es la señal a la entrada de la planta llamada u de
control. Donde se observa que los valores máximos y mínimos aumentan un poco respecto al
caso anterior.
Dado que las entradas no saturan a la planta, la no linealidad que interviene es la asociada a la
zona muerta. Se comprueba que la salida de control compensa este defecto pues el error se
anula en régimen permanente.
• El tercer y último ensayo, es añadir la perturbación sin las no linealidades:

Ilustración 73: La señales salida y error ante las perturbaciones, en el sistema completo diseñado a partir del modelo
de planta Grey Box.

Ilustración 74: La señal de entrada a la planta con modelo Grey Box, en el sistema de control completo.

En este último experimento, apreciamos cambios en la señal de control, es donde más


variación podemos apreciar donde hay una gran perturbación en la señal de control de la
velocidad angular. Respecto al error, solo notamos que también se hace nulo cuando la
perturbación es constante a parte de la referencia. Por lo tanto, la perturbación afecta
generando nuevos transitorios en las señales evaluadas.
En el diseño del observador actualizado, se ha comprobado que da error al utilizar la función
“place” de Matlab, teniendo en cuenta el principio de dualidad.

II.4.1.2 Observador con modelo caja negra óptimo:

Ahora n=6, p=2. Por lo que Ke ϵ R6x2

67
Usando el mismo procedimiento utilizado en el modelo caja gris.
1) Se ha comprobado que la planta es observable.
2) El siguiente paso es elegir nuestros autovalores. En nuestro caso tendremos 6 diferentes ya
que tenemos 6 estados distintos. Elegiremos los siguientes valores:

autvb=[0.85^5;0.85^5;0.85^6;0.85^6;0.85^7;0.85^7];

3) A continuación, pasamos a calcular la ganancia Ke de nuestro observador.

Keb=place(Ab',Cb',autvb)';
Keb

Keb = 6×2

0.6151 -0.0448
-0.7164 0.2966
9.8881 0.4337
2.1115 0.0697
-11.6582 1.1693
-1.0961 1.0581

Comprobamos nuestro sistema como en el caso de caja gris, sin añadirle ni la referencia ni la
perturbación y poniéndole unas condiciones iniciales distintas de 0, el observador es estable,
pero con transitorios mayores a los obtenidos con el modelo caja gris. A modo de ejemplo, si
analizamos el estado x4, con valor inicial 1, se obtiene el resultado de la ilustración 75.

Ilustración 75: Estado real y estado estimado best black box.

4) Validación del sistema completo mediante simulación:


• Primero, empezamos con la conexión de la referencia, pero sin añadir las no
linealidades.

68
Ilustración 76: Las señales salida y error, del sistema completo diseñado a partir del modelo best black box.

Ilustración 77: La señal entrada a la planta best black box en el sistema de control completo.

Lo más relevante está en la señal u de control, con valores que superan ampliamente los
niveles de saturación de la planta.
Por tanto, para no superar esos niveles habrá que diseñar un servosistema más lento como se
había hecho antes y se obtiene abajo que ahora los niveles no superan la saturación.

Ilustración 78: La señal entrada al modelo best black box dentro del sistema de control completo con versión lenta
del servo.

69
• El segundo caso, implicaría añadir las no linealidades calculadas, pero sin añadir la
perturbación ya que solo aplicaremos la señal de referencia:
Dado que el control con servo y observador más rápidos, los niveles de u_control superan los
niveles de saturación. Por tanto, realizamos este ensayo con el servosistema más lento, se
obtienen los siguientes resultados:

Ilustración 79: Las señales salida y error del sistema completo con servo lento teniendo en cuenta las no-linealidades
del modelo best black box.

Ilustración 80: La señal entrada a la planta best black box, considerando las no linealidades, dentro del sistema de
control completo con servo lento.

En este caso, como podemos apreciar, lo único que varía es la señal a la entrada de la planta
llamada u de control. Donde se observa que los valores máximos y mínimos aumentan un poco
respecto al caso anterior.
Dado que las entradas no saturan a la planta, la no linealidad que interviene es la asociada a la
zona muerta. Se comprueba que la salida de control compensa este defecto pues el error se
estabiliza a cero.

• El tercer y último ensayo, es añadir la perturbación sin las no linealidades:

70
Ilustración 81: Las señales salida y error ante la perturbación best black box.

Ilustración 82: La señal entrada ante la perturbación best black box.

Lo mismo que en el caso de solamente con la referencia con la diferencia que ahora la
perturbación genera nuevos transitorios en las señales evaluadas que también superan los
niveles de saturación de la planta.

II.4.1.3 Observador con modelo caja negra estándar:

Ahora n=11, p=2. Por lo que Ke es de R11x2


Usando el mismo procedimiento utilizado anteriormente.
1) Se ha comprobado que la planta es observable.
2) El siguiente paso es elegir los 11 autovalores.

autve=[0.85^5;0.85^5;0.85^6;0.85^6;0.85^7;0.85^7;0.85^8;0.85^8;0.85^9;
0.85^9; 0.85^10];

3) A continuación, pasamos a calcular la ganancia Ke del observador. Para ello, solo tenemos
que introducir a través de la función place nuestros autovalores y nuestras matrices G y C
como se muestra en el siguiente código:

Kee=place(Ae',Ce',autve)';

Kee = 11×2

71
-0.1136 -0.0176
-0.2441 -0.2487
1.1165 1.4500
-4.5472 0.7100
15.2123 0.5131
30.4853 12.8025
3.3197 11.4399
14.3879 6.8419
25.4914 10.9686
22.9155 11.2521
16.8914 8.1293

Comprobamos nuestro sistema como en el caso de caja gris, sin añadirle ni la referencia ni la
perturbación y poniéndole unas condiciones iniciales distintas de 0), obtenemos una solución
estable. A modo de ejemplo, analizamos el estado x8 con valor inicial 1, obteniéndose la
respuesta de la ilustración 86, con valores transitorios muy elevados.

Ilustración 83: Evolución del estado x8, real y estimado, del modelo standard black box.

4) Validación del sistema completo mediante simulación:


• Primero, empezamos con la conexión de la referencia, pero sin añadir las no
linealidades, es decir, mantenemos la planta como estaba originalmente

72
Ilustración 84: Las señales salida y entrada del sistema de control completo, diseñado a partir del modelo standard
black box.

Ilustración 85: La señal entrada al modelo standard black box, dentro del sistema de control completo.

La respuesta es similar a la alternativa best pero con niveles muy superiores, lo que requiere el
rediseño del control.
• El segundo paso, implica añadir las no linealidades identificadas, pero sin añadir
perturbaciones. Los resultados gráficos se muestran a continuación.

Ilustración 86: Las señales salida y error del sistema de control completo, considerando las no-linealidades del
modelo standard black box.

73
Ilustración 87: La señal entrada de entrada a la planta con las no-linealidades del modelo standard black box.

Los niveles de excitación, muy por encima de los de saturación, provocan la inestabilidad del
sistema de control completo.

• El tercer y último ensayo, consiste en añadir la perturbación sin las no linealidades del
modelo. Los resultados gráficos se muestran a continuación.

Ilustración 88: Las señales salida y error del sistema de control completo, considerando perturbaciones, a partir del
modelo standard black box.

Ilustración 89: La señal entrada a la planta, ante perturbaciones, con modelo standard black box.

74
Los resultados son similares a los obtenidos en el paso 2, con la diferencia de que ahora la
perturbación genera nuevos transitorios con oscilaciones en las señales evaluadas. Habría que
reajustar el diseño para reducir el comportamiento oscilante en el transitorio.

II.4.2. Observador lineal estocástico KF.

Para el estudio del observador lineal estocástico KF se parte del siguiente modelo lineal con
ruido incorporado, según las ecuaciones:

xk+1 = 𝐺*xk + 𝐻*uk + wk


yk = C*xk + vk

Donde wk representa el ruido de estado con media nula y covarianza Q y vk representa el ruido
de medida con media nula y covarianza R, siendo la varianza cruzada entre ambas variables
nula.
Para obtener una estimación óptima el filtro de Kalman considera que ambas variables de
ruido deben ser modeladas con una distribución gaussiana de media cero.
Dado que la matriz R0 obtenida experimentalmente (ensayo en laboratorio) es muy pequeña
(indicar valores) para apreciar el efecto del FK se ha decidido utilizar R=50·R0
Para modelar el ruido de medida vk, lo aproximamos al ruido gaussiano que se refiere a un tipo
de ruido cuya función de densidad de probabilidad obedece a la distribución normal gaussiana,
con media cero y desviación σ, N(μ,σ2) que se puede determinar con funciones de Matlab.
Evaluación del ruido de medida de la velocidad lineal

Ilustración 90: Datos del ensayo en lazo abierto del robot: Vinput y Voutput.

Evaluación del ruido de medida de velocidad angular

Ilustración 91: Datos del ensayo en lazo abierto del robot: Winput y Woutput.

En el siguiente “Live Script” Modelado_Ruido.mlx, se evalúa el ruido de medida, a partir de


datos reales de media nula.

75
load('input_real.mat');
load('output_real.mat');
ini=591;
fin=1145;
entrada_V=input_real(2,:)';
entrada1=entrada_V(ini:fin);
salida_V=output_real(2,:)';
salida1=salida_V(ini:fin);
varianzaV=cov(salida1); % varianza_Velocidad_lineal
desvV=std(salida1); % desviación_velocidad_lineal

pd1 =

NormalDistribution

Normal distribution

mu = -0.000311712 [-0.000402688, -0.000220735]

sigma = 0.00109113 [0.0010305, 0.00115941]

donde sigma es la desviación de la velocidad lineal.

velocidad angular (Conjunto de datos donde hay ruido)

ini1=1610;
fin1=1900;
entrada_W=input_real(3,:)';
entrada2=entrada_W(ini1:fin1);
salida_W=output_real(3,:)';
salida2=salida_W(ini1:fin1);
varianzaW=cov(salida2); %varianza_velocidad_angular
desvW=std(salida2);% desviación_velocidad_angular
% Restamos el valor medio
pd2 = fitdist(salida2-mean(salida2),'Normal')

pd2 =

NormalDistribution

Normal distribution

mu = 5.18867e-17 [-0.00118441, 0.00118441]

sigma = 0.0102656 [0.00949378, 0.011175]

donde sigma es la desviación de la velocidad angular. Por tanto, la matriz R será una matriz
diagonal formada por las dos desviaciones: R = diag([Sigma_V^2 Sigma_W^2])
Mientras que para modelar el ruido de estado wk no es tan sencillo y por tanto este valor se va
a modelar de forma heurística donde la matriz Q sería igual a: Q = eye(n)*1e-6, admitiendo
que el ruido de modelado es inferior al de medida.

76
Una vez modelados la varianza del ruido de medida y la del ruido de estado se va a simular el
modelo obteniendo la ventaja del Filtro de Kalman comparando la salida con ruido y la salida
después del modelo con Filtro de Kalman.

Ilustración 92: Modelo Simulink del servocontrol de velocidades incluido el filtro Kalman.

II.4.2.1. Observador estocástico KF basado en modelo estructurado.

A partir del esquema de la ilustración 92 se analiza el efecto del FK en el diseño del


servocontrol de velocidades del robot. Hay que tener en cuenta que el efecto del ruido es
especialmente negativo en la etapa de potencia de excitación de los motores del robot. En la
ilustración 93 izquierda se muestra la salida de la planta incluido el ruido de medida, y en la
derecha la entrada de la planta una vez filtrados los estados. Se puede observar que el FK
realiza la función prevista si se tiene caracterizado el ruido de estado y de medida.

Ilustración 93: Señales de entrada de control (dcha) y salida del sistema completo (izda), con FK, diseñado a partir
del modelo Grey Box.

II.4.2.2. Observador estocástico KF basado en modelo caja negra óptimo.

En cuanto al modelo caja negra (Best) también se observa que el FK realiza la función de
filtrado esperada, reduciendo la componente de ruido de la señal de control aplicada a la
planta.

77
Ilustración 94: Señales de entrada a la planta (dcha) y salida del sistema completo (izda) del sistema de control
completo, con FK, diseñado a partir del modelo Best Black Box.

II.4.2.3. Observador estocástico KF basado en modelo caja negra estándar.

Sustituyendo el modelo caja negra óptimo anterior por la versión estándar, rediseñando el FK,
se obtienen los resultados gráficos de la ilustración 95. Se confirma de nuevo la correcta
función del FK.

Ilustración 95: Las señales entrada del FK y la salida con ruido Standard Black Box.

II.4.3. Estudio comparativo.

En este apartado, se va a realizar una comparativa que va a consistir en dos apartados. El


primero se va a simular los servosistemas creados tanto los lentos (solución diseñada para que
no se sature) como los rápidos (los servosistemas diseñados con la ubicación de lo autovalores
cercanos a los autovalores de la planta) según los distintos modelos de planta y sin tener en
cuenta más efectos que las referencias de velocidad. Esta comparativa consiste en calcular el
RMSE (Root Mean Square Error) que es una medida de uso frecuente para evaluar la diferencia
entre el valor real y el esperado o alcanzado en régimen permanente.
Un segundo apartado se va a centrar en comparar el observador predictor y el filtro de
Kalman, cuando se considera ruido de medida.

78
II.4.3.1. Comparación de servos según modelo planta aplicando sólo la referencia:

Los errores RMSE (se va a calcular mediante la siguiente expresión:

1
Para el error de seguimiento e -> RMSE: √∑𝑁 2
𝑖=1 𝑒𝑖 ∗ 𝑁

1
Para la señal de control u -> RMSE: √∑𝑁 2
𝑖=1(𝑢𝑖 − 𝑢𝑠𝑠 ) ∗ 𝑁

Creamos la función que va a calcular el RMSE de la señal del error que va a ser la misma para
todos los casos:

Ilustración 96: función RMSE del error.

Servosistema rápido:
Para cada servosistema, se va a calcular el RMSE tanto con no-linealidades como sin
linealidades.
Sin No linealidades:
Mientras para la entrada de la planta u_control habrá que hacerla por tramos observando el
valor de la señal en régimen permanente:
En la siguiente imagen, se muestra una de las funciones usadas para calcular RMSE de
u_control de la caja gris:

Ilustración 97: RMSE Grey Box de la velocidad lineal.

79
Ilustración 98: RMSE Grey Box de la velocidad angular.

Resultados obtenidos:
Grey-Box Best Black-Box Estándar Black-Box
ev (RMSE) 0.0738 m/s 0.0660 m/s 0.9273 m/s
ew (RMSE) 0.1557 rad/s 0.1361 m/s 0.8944 rad/s
uv (máx) 0.5245 m/s 8.7689 m/s 35.2467 m/s
uw (máx) 1.0219 rad/s 1.2240 rad/s 43.4782 rad/s
uv (RMSE) 0.1365 m/s 0.1632 m/s 0.2507 m/s
uw (RMSE) 0.1843 rad/s 0.1855 rad/s 0.3370 rad/s
Tabla 2: Resultados de RMSE del modelo rápido sin no-linealidades.

Se observa que los errores RMSE del error son menores en el caso de caja negra (best) pero
con desventaja de que los parámetros no tienen una interpretación física. Mientras que los
RMSE del error de la caja negra (Estándar) son mayores que los de la alternativa (Best) que se
puede justificar que la diferencia que hay entre el best y el estándar es que el estándar le
obligas a que el número de estados sea 11 mientras en el best estima también el número de
estados y los valores.
En cuanto a la señal de u_control son mejores en la caja gris dado que en la caja negra se
observaba dependencia de las señales y transitorios que superaban la saturación de la planta
que se refleja en los parámetros uv (máx).
Con No linealidades:
Como se había visto anteriormente que los modelos rápidos (modelos con los autovalores
elegidos en el primer diseño) de la caja negra se saturan. Por eso había que diseñar servos más
lentos (modelos con autovalores cercanos a 1). Mientras el de caja gris tiene los siguientes
valores:
Grey-Box Best Black-Box Estándar Black-Box
ev (RMSE) 0.0752 m/s NaN NaN
ew (RMSE) 0.1557 rad/s NaN NaN
uv (máx) 0.5745 m/s NaN NaN
uw (máx) 1.0719 rad/s NaN NaN
uv (RMSE) 0.1543 m/s NaN NaN
uw (RMSE) 0.207 rad/s NaN NaN
Tabla 3: Resultados de RMSE del modelo rápido con no-linealidades.

80
Servosistema lento:
Con No linealidades:
En la siguiente imagen, se muestra una de las funciones usadas para calcular RMSE de
u_control de la caja gris:
Resultados obtenidos:
Grey-Box Best Black-Box Estándar Black-Box
ev (RMSE) 0.0752 m/s 0.1266m/s NaN
ew (RMSE) 0.1557 rad/s 0.2480 m/s NaN
uv (máx) 0.5745 m/s 0.6641 m/s NaN
uw (máx) 1.0719 rad/s 1.0690 rad/s NaN
uv (RMSE) 0.1543 m/s 0.1547 m/s NaN
uw (RMSE) 0.207 rad/s 0.2096 rad/s NaN
Tabla 4: Resultados de RMSE del modelo lento con no-linealidades.

En cuanto al modelo caja gris dado que no se saturaba es el mismo modelo por eso se
obtienen los mismos resultados. Sin embargo, los errores ev y ew del modelo best son mayores
que en la versión rápida del servo.
Se observa que, en este caso los valores máximos tanto de la velocidad lineal como angular no
supera los niveles de saturación.
Sin No linealidades:
Lo mismo que antes, llegamos a la siguiente tabla:
Grey-Box Best Black-Box Estándar Black-Box
ev (RMSE) 0.0738 m/s 0.1129 m/s 0.2902 m/s
ew (RMSE) 0.1557 rad/s 0.2504 m/s 0.5115 rad/s
uv (máx) 0.5245 m/s 0.6143 m/s 0.5447 m/s
uw (máx) 1.0219 rad/s 1.0190 rad/s 0.9795 rad/s
uv (RMSE) 0.1365 m/s 0.1392 m/s 0.3206 m/s
uw (RMSE) 0.1843 rad/s 0.1844 rad/s 0.5139 rad/s
Tabla 5: Resultados de RMSE del modelo lento sin no-linealidades.

Al no saturar con el modelo sin No linealidades, no hay cambios en el modelo con No


linealidades.
II.4.3.2. Comparación entre el observador predictor y FK.

Por último, se va a mostrar las entradas tanto del observador predictor como las del filtro de
Kalman
Modelo caja gris:

81
Ilustración 99: Señales de control en el sistema completo con ruido de medida. Estimador de estados con FK (dcha) y
con observador predictor (izda). Modelo Grey Box.

Ilustración 100: Señales de error de seguimiento del sistema completo con ruido de medida. Estimador de estados
con FK (dcha) y con observador predictor (izda). Modelo Grey Box.

Se puede observar que, para los niveles de ruido de medida aplicados, el efecto del filtro de
Kalman no es muy relevante. Donde se aprecia una mejora es en la señal del error.
Modelo caja negra óptimo:
En la ilustración 101 se indican los resultados gráficos trabajando con el modelo caja negra
óptimo. Se observa claramente el efecto del filtro de Kalman, obteniendo una señal de entrada
a la planta más limpia cuando el estimador de estados se diseña con el FK.

Ilustración 101: Señales de control en el sistema completo con ruido de medida. Estimador de estados con FK (dcha)
y con observador predictor (izda). Modelo Best Black Box.

82
Modelo caja negra estándar:

En este último modelo, dados los altos niveles de la señal de control obtenidos con el
observador predictor no se aprecia el nivel de ruido.

Ilustración 102: Señales de control en el sistema completo con ruido de medida. Estimador de estados con FK (dcha)
y con observador predictor (izda). Modelo Standard Black Box.

Por último, como conclusión el filtro de Kalman es una herramienta matemática muy buena
dado que consta de dos etapas (predicción y corrección) lo que le diferencia del observador
predictor que no solo permite estimar sino también filtrar de manera óptima la señal como se
puede observar en los tres anteriores modelos.

II.5. Implementación de servo de velocidad con FK para robot P3-DX.

II.5.1. Introducción

En este capítulo se van a mostrar los resultados obtenidos de los ensayos experimentales
realizados en la zona oeste de laboratorios de la EPS de la Universidad de Alcalá. Donde se han
llevado a cabo diferentes ensayos relacionados con las simulaciones realizadas en el punto II.4
con el objetivo de comparar resultados simulados y registrados experimentalmente.
El resto del capítulo tiene la siguiente estructura:
II.5.2. Se describen los aspectos más relevantes del entorno donde se han desarrollado los
ensayos.
II.5.3. Se muestran los resultados obtenidos en los distintos ensayos de control de velocidad
del robot P3-DX.

II.5.2 Entorno experimental

Los experimentos se llevan a cabo en el pasillo de los laboratorios OL01-06 (zona oeste) de la
Escuela Politécnica de la Universidad de Alcalá.

83
Ilustración 103: Entorno experimental de control remoto de velocidades de robot P3-DX.

A partir del sistema de control diseñado en Simulink de la ilustración 104, se genera código
ejecutable en tiempo real sobre W10 y se implementa sobre un PC conectado a la misma red
WiFi del robot. Como se aprecia en la figura, se ejecutan en tiempo real y simultáneamente, el
control aplicado al modelo (parte superior) y el mismo control aplicado al robot a través del
driver diseñado para el robot P3DX (parte inferior recuadrada).
Terminado el ensayo se analizan los datos reportados en el mismo PC de control del
laboratorio.

Ilustración 104: Diseño Simulink del sistema de control remoto de velocidades con FK.

II.5.3 Resultados experimentales

84
En este apartado se muestran los resultados de los ensayos realizados. Como se ha comentado
anteriormente, los resultados se van a centrar en la implementación con el control y estimador
FK basados en los tres modelos planteados en el TFG: Grey Box, Best Black Box y Standard
Black Box.

II.5.3.1. Solución basada en modelo Grey Box.

En trazo negro se indican las referencias aplicadas al robot P3-DX de valor 0.25 m/s de
velocidad lineal y 0.25 rad/s de velocidad angular que permiten que el robot haga la
trayectoria en ocho.

La referencia vs salida:

Ilustración 105: Señales de velocidad lineal: referencia, salida real y salida simulada. Modelo Grey Box.

Ilustración 106: Señales de velocidad angular: referencia, salida real y salida simulada. Modelo Grey Box.

85
Se puede observar que tanto la entrada real como la simulada siguen la misma trayectoria
incluso con el mismo tiempo de respuesta.
También se observa que las salidas reales tienen un nivel mayor de ruido sobre todo en la
velocidad lineal.
En las siguientes figuras, estudiamos el error de seguimiento.
Error de seguimiento:

Ilustración 107: Señales de error de seguimiento, real y simulada, de V y W. Modelo Grey Box.

En cuanto al error, se hace nulo con la única diferencia que los errores reales llevan un nivel
alto de ruido que los simulados.
Trayectoria:

Ilustración 108: Las trayectorias real y referencia Grey Box.

86
Se observa que la trayectoria real seguida por el robot difiere de la trayectoria de referencia
debido a los errores transitorios de seguimiento. Téngase en cuenta que se ha implementado
un control de velocidades. Para conseguir un mejor seguimiento de trayectorias se ha de
diseñar e implementar un control (no lineal) de pose del robot, cuestión que no estaba
prevista entre los objetivos del TFG.
II.5.3.2. Solución basada en modelo Black Box Best.

El mismo esquema de la ilustración 104, pero diseñado a partir del modelo caja negra óptimo,
se utiliza para generar código y realizar el control con las mismas referencias anteriores.
La referencia vs salida:

Ilustración 109: Señales de velocidad lineal: referencia, salida real y salida simulada. Modelo Best Black Box.

Ilustración 110: Señales de velocidad angular: referencia, salida real y salida simulada. Modelo Best Black Box.

87
Igual que en el caso del modelo caja gris, se puede observar que tanto la entrada real como la
simulada siguen la misma trayectoria incluso con el mismo tiempo de respuesta.
La diferencia más relevante entre la simulación y el ensayo real es que se aprecia que las
salidas reales tienen un nivel mayor de ruido sobre todo en la velocidad lineal.
La principal diferencia con el modelo caja gris está en la dependencia observada en la
velocidad lineal ante cambios de la angular.

Error de seguimiento:

Ilustración 111: Señales de error de seguimiento, real y simulada, de V y W. Modelo Best Black Box.

En cuanto al error, tanto el error real como el simulado de las dos velocidades se hace nulo con
la única diferencia que los errores reales llevan un nivel alto de ruido que los simulados.
Comparando con la ilustración 107, se aprecian niveles mayores de error transitorio en el caso
de modelo caja negra óptimo.

Trayectoria:
En la ilustración 112 se muestra el recorrido realizado por el robot en el ensayo de control
basado en caja negra óptimo. El trazado realizado no sirve de comparación entre modelos
porque no se trata de un control de trayectorias.

88
Ilustración 112: Las trayectorias real y referencia Best Black Box.

II.5.3.3. Solución basada en modelo Black Box Standard

Después del estudio anteriormente descrito cabía esperar que los resultados con esta
alternativa fuesen los peores. La experimentación de esta solución de control resultó inestable
con los resultados gráficos mostrados a continuación.

La referencia vs salida:

Ilustración 113: Señales de velocidad lineal: referencia, salida real y salida simulada. Modelo Standard Black Box.

El error y la trayectoria:

89
Ilustración 114: Las señales de error real y simulada de la velocidad lineal y angular y la trayectoria Standard Black
Box.

II.5.4. Estudio comparativo.

En esta parte, a modo de resumen, se hace un estudio comparativo entre los tres sistemas de
control diseñados a partir de los distintos modelos y ensayados en el laboratorio.
Dado que el control caja negra estándar es inestable, se va a estudiar únicamente las gráficas
de los restantes controles.
Primero, comparamos las gráficas más características de estos modelos.

Ilustración 115: Señales de salida ensayadas de V y W de Grey Box y Best Black Box.

En las gráficas de arriba, se observa que tanto la velocidad lineal y angular de los modelos caja
gris y caja negra best son del mismo nivel con la diferencia de que en la caja negra se aprecia
una mayor dependencia de la velocidad angular sobre la velocidad lineal, justificada por la
matriz C obtenida en el proceso de identificación.
En cuanto a las señales del error de seguimiento, se aprecia que en el modelo caja negra best
tiene mayor nivel y duración, y por tanto mayor área. Por lo que el transitorio es más lento que
el de caja gris. Y se observa también que el error en la caja negra best va acompañado con
mayor nivel de ruido.

90
Ilustración 116: Señales de error de seguimiento de V y W de Grey Box y Best Black Box.

La gráfica siguiente describe la trayectoria en ocho del robot P3DX experimentada en el


laboratorio. Se puede apreciar que tanto el modelo caja gris como el de caja negra best
defieren de la trayectoria referencia lo que es debido al error de seguimiento de velocidades.
Con todo, este aspecto no es relevante pues no se ha implementado un sistema de
seguimiento de trayectorias sino de velocidades.

Ilustración 117: Trayectorias reales y de referencia con control basado en Grey Box y Best Black Box.

A continuación, se muestra un comparativa cuantitativa entre los controles implementados,


evaluando las señales de error de seguimiento y de entrada a la planta.

91
Grey-Box Best Black-Box
Real Simulado Real Simulado
ev (RMSE) 0.0131 0.0144 0.0241 0.0283
m/s m/s m/s m/s
ew (RMSE) 0.0225 0.0229 0.0553 0.0599
rad/s rad/s rad/s rad/s
uv (máx) 0.2704 0.3119 0.2779 0.3417
m/s m/s m/s m/s
uw (máx) 0.2585 0.2639 0.2661 0.3023
rad/s rad/s rad/s rad/s
Tabla 6: Tabla comparativa de errores de seguimiento y niveles máximos de control resultantes de la
implementación del esquema de la figura 104 en el robot P3-DX.

Primero, se aprecia que, tras la implementación de los controles de velocidad desarrollados,


tanto los basados en modelo Grey-Box como Best Black-Box, los valores experimentales son
muy similares (en algunos casos ligeramente inferiores) a los simulados. Lo cual pone de
manifiesto el interés de disponer de modelos válidos para el diseño de controladores como
paso previo a su implementación sobre la planta real.
Segundo, como comparativa entre los dos modelos de partida de la planta, se observa que la
solución de control con menor error de seguimiento es la basad en en modelo caja gris tanto
en la simulación como en la implementación.

II.6. Conclusiones

Del trabajo realizado cabe anotar las siguientes conclusiones:

• El modelado e identificación de un proceso real es muy importante para el diseño de la


solución de control. Permite predecir la dinámica y el comportamiento del sistema
ante referencias, perturbaciones, variación de parámetros y ruidos (estado y medida)..
• El modelo estructurado (caja gris) requiere un conocimiento previo del proceso,
mientras que la solución caja negra prescinde de esta tarea inicial.
Independientemente de la solución adoptada, las componentes no lineales del modelo
(saturación y zona muerta) son las mismas.
• En el caso del robot estudiado, el modelo caja gris proporciona un ajuste (FIT) de
velocidad lineal mejor y aproximadamente igual de velocidad angular que el modelo
caja negra óptimo.
• Las componentes del modelo caja negra son relativamente complejas, y difícil de
interpretar el vector de estado a partir del vector de salida. Sin embargo, en el modelo
caja gris muchos elementos son de valor 1, 0 y el resto asociado a parámetros físicos.
• De las opciones que proporciona Matlab para el modelado caja negra, la opción
óptima (Best Black Box) es claramente mejor que la estándar. En principio la opción
estándar presenta un tamaño del vector de estados igual al modelo estructurado pero
el comportamiento en el diseño del control final es peor y genera problemas de
inestabilidades.
• Tras los ensayos de implementación de los controles diseñados, con soluciones
basadas en los tres modelos estudiados, se deduce que el modelo caja gris presenta
una mayor aproximación entre simulación e implementación. La solución basada en
modelo caja negra estándar genera problemas de inestabilidad por lo que exigiría un
tratamiento adicional de ajuste. La solución caja negra óptima es una alternativa a
considerar cuando no se tiene información suficiente para plantear un modelo

92
estructurado, proporcionando resultados aceptables tanto de estimación de estados
con Filtro de Kalman como de sistema de seguimiento de velocidades.

III. Anexos y Apéndices.

III.1 Configuración para la implementación.

Ajustada la simulación, se ha de preparar el diseño para la generación de código ejecutable en


tiempo real con la herramienta Simulink Coder. Se han de cambiar Scope por To File y la planta
por el driver de los modelos Simulink creados anteriormente. Y cambiamos la referencia para
obtener una trayectoria aproximada.
En cuanto a la configuración se resume en la siguiente tabla:
Tab Configuration
Solver Type: Fixed‐Step
Solver: discrete (no continuous states)
Fixed‐step size: Ts (the chosen sample time)
Tasking and sample time options: the following options must be
selected:
Allow tasks to execute concurrently on target
Automatically handle rate transition for data transfer

Hardware implementation Hardware board: Determine by Code Generation system target file
Device vendor: Intel (or AMD, depending on the PC hardware
characteristics)
Device Type: x86‐64 (Windows 64)

Code generation Toolchain: MinGW64 | gmake (64-bit Windows)


Build configuration: Faster Runs
Select objective: Execution efficiency

Interface Accessing to "Advanced parameters" by clicking on the three points that


appear at the bottom of the window "Interface". After doing this, new
options appear. In the first one: "Standard math library", the option "C99
(ISO)" must be chosen.

Tabla 7: Configuración Simulink para la generación de código e implementación.

Segundo, compilamos el driver comunica_dr_cam_w10 donde nos hacen falta los siguientes
ficheros:
‐ comunica_dr_cam_w10.c: archivo de código fuente
‐ centro_remoto.h: archivo de cabecera con las definiciones
‐ WS2_32.lib: librería para comunicaciones de socket
El comando usado para compilar el driver es el siguiente:

93
Tercero, incluimos en Simulink la función s-function para el driver y configurarla como se
observa abajo:

Ilustración 118: Bloque S-Function.

Cuarto, se completa el modelo y se genera el ejecutable mediante ctrl+B en Simulink o usando


el comando rtwbuild(‘model_name’);
Finalmente, se establece la conexión. Para ello:
Verificar la conexión remota entre el PC y el robot mediante el comando ping: ping nuc3
Para acceder a los robots desde el PC del laboratorio usamos la aplicación Putty que se observa
abajo:

Ilustración 119: aplicación putty.

94
Ilustración 120: Configuración putty.

Siendo Password: nucX‐L03.


Y lanzamos el ejecutable del robot con el siguiente comando:
# ./robot ‐v ‐f t_execution
Siendo t_execution el tiempo de simulación que, en nuestro caso, es de 90 s.
Y así obtenemos todos los ficheros con extensión (.mat).
Dado que se quiere hacer un estudio comparativo entre la simulación y el ensayo experimental
de las soluciones creadas, creamos primero un fichero llamado dibuja.m para abrir los ficheros
y representar las señales necesarias (error, entrada de la planta, trayectoria… etc.):

95
Ilustración 121: Fichero dibuja.m.

III.2. Funciones de interés de Matlab.

Compare [1]
Este comando se usa como un método de validación proporcionados por el Toolbox de
Identificación que se basan en la simulación del modelo obtenido, y la comparación entre su
salida y la respuesta real del sistema. Es decir, con la función compare se puede volver a
comprobar cómo de bueno es el ajuste entre los datos utilizados para la identificación del
modelo y los datos generados por el mismo modelo.
Pem [2]

El comando "pem" que es un comando básico de estimación, actualiza los parámetros de un


modelo inicial para ajustarse a los datos de estimación. La función utiliza un algoritmo de mini-
mización de errores de predicción para actualizar los parámetros del modelo inicial.

Esta función devuelve un conjunto de parámetros como MSE, FIT y FPE. Los dos primeros
indican cómo se ajusta el modelo creado a los datos originales registrados en la fase de
identificación, mientras que el último devuelve el error que cometería el modelo si se usa para
predicción.
N4sid [3]

96
sys = n4sid(data,nx) estima un sistema de modelo de espacio de estados de tiempo
discreto de orden nx utilizando datos, que pueden ser datos en el dominio de tiempo o
frecuencia.
Eig [4]
e= eig(A)Devuelve un vector que contiene los autovalores de la matriz A.
Place [5]
Para seleccionar la ganancia del estimador.
Set_param y get_param [6]
set_param('vdp/Mu','Gain','10').

establece un valor de 10 de ganancia en el bloque llamado Mu.


Get_param devuelve el valor del parámetro especificado para el modelo del bloque
especificado.
Std [7]
Devuelve la desviación estándar.

97
Bibliografía y Referencias.

• System Identification: Theory for the User, Second Edition, Prentice-Hall 1999 by
Lennart Ljung.

• Identificación y control adaptativo”, Prentice-Hall 2003. Alberto Aguado and Miguel


Martínez.

• System Identification Toolbox: Getting Starting & User’s Guide, Matlab 20xx. Lennart
Ljung.

• Tools for communication and execution of experiments with the P3-DX in Windows 10.
[1] https://es.mathworks.com/help/ident/ref/compare.html
[2] https://es.mathworks.com/help/ident/ref/idgrey.pem.html
[3] https://es.mathworks.com/help/ident/ref/n4sid.html
[4] https://es.mathworks.com/help/matlab/ref/eig.html?s_tid=doc_ta
[5]
https://es.mathworks.com/help/control/ref/place.html?searchHighlight=place&s_tid=
srchtitle_place_1
[6] https://es.mathworks.com/help/simulink/slref/set_param.html?s_tid=doc_ta y
https://es.mathworks.com/help/simulink/slref/get_param.html?s_tid=doc_ta
[7]
https://es.mathworks.com/help/matlab/ref/std.html?searchHighlight=std&s_tid=srcht
itle_std_1

98

También podría gustarte