Diseño e implementación de sistemas de control de tiempo ...

86
UNIVERSITAT POLITÈCNICA DE CATALUNYA ESCOLA POLITÈCNICA S UPERIOR D’ENGINYERIA DE VILANOVA I LA GELTRÚ Diseño e implementación de sistemas de control de tiempo real mediante herramientas de generación automática de código Proyecto Final de Carrera de Ingeniería en Automática y Electrónica Industrial Autora: Adriana Fernández Caño Director: Pau Martí Colom Departamento de Ingeniería de Sistemas, Automática y Informática Industrial 26 de junio de 2013

Transcript of Diseño e implementación de sistemas de control de tiempo ...

Page 1: Diseño e implementación de sistemas de control de tiempo ...

UNIVERSITAT POLITÈCNICA DE CATALUNYA

ESCOLA POLITÈCNICA SUPERIOR D’ENGINYERIA DE VILANOVA I LA GELTRÚ

Diseño e implementación de sistemas decontrol de tiempo real mediante herramientas

de generación automática de código

Proyecto Final de Carrera de Ingeniería en Automática y Electrónica Industrial

Autora: Adriana Fernández CañoDirector: Pau Martí Colom

Departamento de Ingeniería de Sistemas, Automática y Informática Industrial

26 de junio de 2013

Page 2: Diseño e implementación de sistemas de control de tiempo ...
Page 3: Diseño e implementación de sistemas de control de tiempo ...

Título: Diseño e implementación de sistemas de control mediante tecnologías de gene-ración automática de código.

Apellidos: Fernández Caño Nombre: Adriana

Titulación: Ingeniería en Automática y Electrónica Industrial Plan: 2003

Director: Pau Martí Colom

Departamento: Ingeniería de Sistemas, Automática y Electrónica Industrial

Calificación

TRIBUNAL

Presidente Secretario Vocal

Fecha de lectura:

Page 4: Diseño e implementación de sistemas de control de tiempo ...
Page 5: Diseño e implementación de sistemas de control de tiempo ...

Resumen (máximo 50 líneas)

Este proyecto expone el diseño de una aplicación de control de tiempo real median-te herramientas de generación de código automática. El caso práctico desarrolladoconsiste en un sistema bola-plato, un sistema no lineal e inestable, extensión en dosdimensiones del problema bola-biga, controlado vía un sistema microprocesador.

Las herramientas de generación automática de código ayudan a los programadores desistemas embebidos permitiendo diseñar los controladores desde modelos descritos enniveles de abstracción altos, como puede ser un diagrama de bloques, y luego generarel código máquina a implementar sobre el sistema empotrado.

Tras una primera etapa de estudio del sistema a bola-plato, se han diseñado varios con-troladores para obtener el código de cuatro controladores diseñados para la regulacióndel sistema y para que el sistema siga una señal de referencia.

La implementación de los sistemas de control sobre la maqueta se ha realizado medianteel generador de código para sistemas embebidos E4Coder, que tiene funcionalidadesespecíficas para gestionar sistemas de tiempo real.

De todo el proceso de estudio y diseño, se presentan varias conclusiones y se proponenfuturas vías de trabajo.

Palabras clave

Sistema de Control Tiempo Real Generación de Código Ball & PlateControl No Lineal Sistemas Empotrados

Page 6: Diseño e implementación de sistemas de control de tiempo ...
Page 7: Diseño e implementación de sistemas de control de tiempo ...

Agradecimientos

Quiero agradecer a mi familia el soporte que me han proporcionado durante eltiempo que han durado mis estudios. Siempre me han alentado a continuar adelante.

Quiero agradecer a Xavi toda su ayuda y los ánimos que me ha insuflado día trasdía. Sin él, este proyecto no hubiera sido el mismo.

No puedo dejar de mencionar a Pau, el director de este proyecto, que me ha ayudadoen todo lo que ha podido y más.

Y a mis amigos, por los momentos que no he podido pasar con ellos, y que prometono volver a perder.

Page 8: Diseño e implementación de sistemas de control de tiempo ...
Page 9: Diseño e implementación de sistemas de control de tiempo ...

Índice

Índice

Estructura 17

1. Introducción 19

2. Sistemas de control de tiempo real 212.1. Definición de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2. Características de los sistemas de tiempo real . . . . . . . . . . . . . . . . . . . . 222.3. Aplicaciones de los sistemas de tiempo real . . . . . . . . . . . . . . . . . . . . . 23

3. Generación automática de código 253.1. E4Coder Code Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2. Uso de la generación automática de código en este proyecto . . . . . . . . . . . 26

4. Estudio del sistema bola-plato 294.1. Descripción del sistema bola-plato: Amazing ball . . . . . . . . . . . . . . . . . . 294.2. Modelado de la planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5. Diseño de los controladores para el sistema bola-plato 375.1. Puntos de equilibrio naturales del sistema . . . . . . . . . . . . . . . . . . . . . . 375.2. Aproximación lineal del sistema bola-plato alrededor de un punto de equilibrio 375.3. Simplificación del modelo de la planta . . . . . . . . . . . . . . . . . . . . . . . . 395.4. Realimentación de estado: regulación . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.4.1. Asignación de polos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Elección de los polos en lazo cerrado del sistema . . . . . . . . . . . . . . 41Elección del periodo de muestreo . . . . . . . . . . . . . . . . . . . . . . . 42Discretización del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Matriz de realimentación de estados . . . . . . . . . . . . . . . . . . . . . 44

5.4.2. Observador de estado de orden completo . . . . . . . . . . . . . . . . . . 44Observabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Matriz de ganancias del observador . . . . . . . . . . . . . . . . . . . . . . 45

5.5. Seguimiento de señales de referencia: tracking . . . . . . . . . . . . . . . . . . . 465.5.1. Tracking con control feedforward . . . . . . . . . . . . . . . . . . . . . . . 465.5.2. Tracking con control integral . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6. Simulación de los controladores 496.1. Simulación 1: Sistema en lazo abierto . . . . . . . . . . . . . . . . . . . . . . . . . 496.2. Simulación 2: Sistema con realimentación de estados . . . . . . . . . . . . . . . 50

6.2.1. Sistema con acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.2.2. Sistema sin acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.3. Simulación 3: Sistema con realimentación de estados observados a partir dederivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.4. Simulación 4: Sistema con realimentación de estados observados. Estimador deorden completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.5. Simulación 5: Sistema con realimentación de estados observados y tracking concontrol feedforward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

11

Page 10: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

6.6. Simulación 6: Sistema con realimentación de estados observados y tracking concontrol integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.7. Efecto de las condiciones iniciales y de la amplitud de las señales de referenciaen las simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7. Proceso de la generación de código y juego de pruebas 617.1. Proceso de generación automática de código . . . . . . . . . . . . . . . . . . . . 617.2. Juego de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

7.2.1. Regulación con observador a partir de derivadas . . . . . . . . . . . . . . 667.2.2. Regulación con observador de orden completo . . . . . . . . . . . . . . . 687.2.3. Tracking con control feedforward . . . . . . . . . . . . . . . . . . . . . . . 707.2.4. Tracking con control integral . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.3. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

8. Conclusiones 77

Referencias 79

A. Consideraciones físicas 81A.1. Cálculo del grado de libertad del sistema . . . . . . . . . . . . . . . . . . . . . . . 81A.2. Relación entre los ángulos de los servomotores y del plato . . . . . . . . . . . . . 83

B. Códigos 87B.1. Código Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

12

Page 11: Diseño e implementación de sistemas de control de tiempo ...

ÍNDICE DE FIGURAS

Índice de figuras

3.1. Bloques específicos de la herramienta de generación de código E4Coder . . . . 26

3.2. Diagrama del proceso de generación de código utilizado . . . . . . . . . . . . . . 27

4.1. Maqueta Amazing ball, sistema bola-plato . . . . . . . . . . . . . . . . . . . . . . 29

4.2. Diagrama de cuerpo libre del sistema bola-plato para la coordenada x . . . . . 30

5.1. Sistema de control en lazo cerrado con realimentación de estados . . . . . . . . 42

5.2. Disposición de los polos en lazo cerrado sobre el círculo unitario del plano z . . 43

5.3. Sist. de control en lazo cerrado con realimentación de estados observados . . . 45

5.4. Sistema de control con entrada de referencia y control feedforward . . . . . . . 47

5.5. Sistema de control con entrada de referencia y control integral . . . . . . . . . . 47

6.1. Diagrama de bloques del sistema en lazo abierto . . . . . . . . . . . . . . . . . . 49

6.2. Diagrama de bloques de la planta no lineal con acoplamiento . . . . . . . . . . 49

6.3. Bloque F cn del esquema de la planta no lineal con acoplamiento . . . . . . . . 50

6.4. Diagrama de bloques del sistema no lineal con acoplamiento y realimentaciónde estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.6. Diagrama de bloques de la planta no lineal sin acoplamiento . . . . . . . . . . . 51

6.5. Diagrama de bloques del sistema no lineal sin acoplamiento y con realimenta-ción de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.7. Bloque F cn del esquema de la planta no lineal sin acoplamiento . . . . . . . . . 52

6.8. Diagrama de bloques del sistema no lineal con realimentación de estados obser-vados a partir de derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.9. Diagrama de bloques del sistema no lineal con realimentación de estados obser-vados y observador de orden completo . . . . . . . . . . . . . . . . . . . . . . . . 53

6.10.Diagrama de bloques del sistema no lineal sin acoplamiento con control feedfor-ward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.11.Diagrama de bloques del sistema no lineal con realimentación de estados obser-vados y seguimiento de referencia por control integral . . . . . . . . . . . . . . . 54

6.12.Malfuncionamiento del controlador a causa del valor de las condiciones iniciales 55

6.13.Respuesta de la coordenada x del sistema en lazo abierto . . . . . . . . . . . . . 55

6.14.Respuesta de la coordenada y del sistema en lazo abierto . . . . . . . . . . . . . 56

6.15.Respuesta del sistema no lineal con acoplamiento y realimentación de estadospara la coordenada x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6.16.Respuesta del sistema no lineal con acoplamiento y realimentación de estadospara la coordenada x con diferentes condiciones iniciales . . . . . . . . . . . . . 57

6.17.Respuesta del sist. no lineal sin acoplamiento y realimentación de estados . . . 57

6.18.Respuesta sistema no lineal realimentación estados observados a partir de deri-vadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

13

Page 12: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

6.19.Respuesta sistema no lineal realimentación estados estimados por observadorde orden completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.20.Respuesta del sistema no lineal sin acoplamiento a una señal de referenciacuadrada con tracking feedforward . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.21.Respuesta onda cuadrada del sistema no lineal con seguimiento de señal concontrol integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.1. Diagrama de bloques principal del sistema bola-plato para E4Coder . . . . . . 61

7.2. Primer paso en la generación de codigo mediante E4Coder . . . . . . . . . . . . 62

7.3. Segundo paso en la generación de código mediante E4Coder . . . . . . . . . . . 63

7.4. Tercer paso en la generación de código mediante E4Coder . . . . . . . . . . . . 63

7.5. Selección del dispositivo de destino . . . . . . . . . . . . . . . . . . . . . . . . . . 64

7.6. Mapeo de los bloques de Entrada/Salida . . . . . . . . . . . . . . . . . . . . . . . 64

7.7. Cuarto paso en la generación automática de código mediante E4Coder . . . . . 65

7.8. Paso adicional en la generación automática de código mediante E4Coder . . . 65

7.9. Bloque de filtro de la señal de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 66

7.10.Diagrama de bloques completo del sistema bola-plato con observador paraE4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7.11.Diagrama de bloques del controlador y el observador a partir de derivadas paraE4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

7.12.Bloque de corrección de ángulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

7.13.Diagrama de bloques del controlador y el observador de estado completo paraE4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

7.14.Diagrama de bloques del observador de estado de orden completo para E4Coder 70

7.15.Diagrama de bloques del observador de orden completo para tracking concontrol feedforward para E4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7.16.Diagrama de bloques del controlador de orden completo para tracking concontrol feedforward para E4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

7.17.Señales de referencia para el sistema de tracking con control feedforward . . . 71

7.18.Diagrama de bloques completo del sistema bola-plato con tracking de señalesde referencia para E4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.19.Diagrama de bloques del controlador para tracking con control integral paraE4Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7.20.Diagrama de un bloque integrador en tiempo discreto . . . . . . . . . . . . . . . 74

A.1. Esquema del acoplamiento mecánico de la maqueta bola-plato . . . . . . . . . 82

A.2. Esquema del acoplamiento mecánico de la maqueta bola-plato con rótulas . . 82

A.3. Esquema de enlaces entre los componentes del sistema bola-plato . . . . . . . 83

14

Page 13: Diseño e implementación de sistemas de control de tiempo ...

ÍNDICE DE TABLAS

Índice de tablas

4.1. Características físicas de la maqueta Amazing ball . . . . . . . . . . . . . . . . . 30

4.2. Parámetros y variables para describir el sistema físico . . . . . . . . . . . . . . . 35

7.1. Puntos de referencia para tracking de diagonal . . . . . . . . . . . . . . . . . . . 73

7.2. Puntos de referencia para tracking de forma cuadrad . . . . . . . . . . . . . . . . 73

A.1. Medidas de los enlaces de la maqueta . . . . . . . . . . . . . . . . . . . . . . . . . 85

15

Page 14: Diseño e implementación de sistemas de control de tiempo ...
Page 15: Diseño e implementación de sistemas de control de tiempo ...

ESTRUCTURA

Estructura

Este trabajo está dividido en ocho capítulos y dos anexos, donde se aporta informacióncomplementaria.

En el primer capítulo se realiza una introducción al trabajo realizado y al por qué de es-te proyecto.

El capítulo segundo realiza una pequeña aproximación a los sistemas de control tiemporeal y a sus características principales, así como algunas aplicaciones de este tipo de sistemas.

En el tercer capítulo se presenta una visión general sobre la generación automática decódigo, además de la herramienta de generación de código utilizada en este proyecto.

En el cuarto capítulo se introduce el caso de estudio de este proyecto, el sistema bola-plato,y se expone el modelo matemático que define su comportamiento.

En el quinto capítulo se desarrolla el diseño de los distintos controladores que se hanimplementado para el sistema bola-plato.

En el sexto capítulo se muestran las simulaciones realizadas de los controladores, y en elséptimo, se describen las pruebas llevadas a cabo sobre la maqueta del sistema bola-plato,ambos para la validación de los controladores diseñados en el quinto capítulo.

En el octavo y último capítulo se exponen las conclusiones obtenidas durante la realizacióndel proyecto, así como futuras líneas de trabajo para el control del sistema bola-plato.

Para finalizar, el apéndice A aporta información sobre el sistema físico de la maquetabola-plato y el apéndice B muestra el código MATLAB utilizado para diseñar los controladores.

17

Page 16: Diseño e implementación de sistemas de control de tiempo ...
Page 17: Diseño e implementación de sistemas de control de tiempo ...

1 INTRODUCCIÓN

1. Introducción

El proceso tradicional para desarrollar código de sistemas de control embebidos se basaen el modelado y simulación del sistema y la posterior programación manual. A medida queaumenta la complejidad de los sistemas, este tipo procedimiento consume más recursos y laprobabilidad de errores de origen humano se hace más alta.

Por este motivo, la tendencia es la utilización de herramientas de generación de códigoautomático que, desde modelos descritos en niveles de abstracción altos, como puede ser undiagrama de bloques, producen el código máquina a implementar sobre el sistema empotrado.

Este proyecto expone el diseño de una aplicación de control de tiempo real mediante estetipo de tecnología. El caso práctico desarrollado consiste en un sistema bola-plato, un sistemano lineal e inestable, extensión en dos dimensiones del problema bola-biga, controlado vía unsistema microprocesador.

El sistema bola-plato no tiene salida comercial, pero presenta un entorno perfecto parael estudio de diferentes técnicas de control. El objetivo es mantener una posición estáticade la bola sobre el plato, hecho no trivial, ya que el controlador no puede manipular la boladirectamente, sino que actúa sobre el ángulo de giro del plato.

La conjunción en un solo proyecto del estudio de técnicas de control para un sistema nolineal e inestable y del uso de herramientas de diseño de código en proceso de desarrollo,hacen de éste un reto muy atractivo a llevar a cabo.

Para poder lograr el objetivo principal del proyecto, controlar el sistema bola-plato uti-lizando generación automática de código, se han marcado los siguientes subobjetivos detrabajo:

Estudiar el sistema bola-plato y hacer su modelado.

Diseñar el controlador o controladores utilizando técnicas de control no lineal.

Puesta en marcha del sistema microprocesador y del sistema bola-plato.

Puesta en marcha del sistema de generación automática de código.

Simular el controlador en el sistema de generación automática de código.

Generar el código y comprobar su correcto funcionamiento.

Realizar un juego de pruebas sobre el sistema bola-plato.

19

Page 18: Diseño e implementación de sistemas de control de tiempo ...
Page 19: Diseño e implementación de sistemas de control de tiempo ...

2 SISTEMAS DE CONTROL DE TIEMPO REAL

2. Sistemas de control de tiempo real

Tradicionalmente los sistemas informáticos han sido utilizados para funciones de procesadode información. Sin embargo, en la actualidad la mayoría de éstos se utilizan para aplica-ciones en las que ésta no es su función principal. Los sistemas de tiempo real son sistemasinformáticos con una relación muy estrecha entre hardware y software, que interaccionancon su entorno físico y, generalmente, pertenecen a sistemas de ingeniería más amplios a losque supervisan o controlan. A este tipo de sistemas también se les llama sistemas de controlembebidos o empotrados [1]-[3].

Los sistemas de tiempo real se encuentran en multitud de aplicaciones, desde procesos defabricación en la industria hasta la electrónica de consumo. Un lavavajillas controlado me-diante un microprocesador es un buen ejemplo: diferentes programas de lavado se ejecutaránen función de la suciedad de la vajilla, la duración del programa de lavado, la temperatura delagua, etc.

2.1. Definición de tiempo real

No existe una sola definición para tiempo real, aún así todas tienen en común que el tiempode respuesta1 es primordial. De acuerdo con [4] un sistema de tiempo real es:

“Any system in which the time at which output is produced is significant. This isusually because the input corresponds to some movement in the physical world,and the output has to relate to that same movement. The lag from input to outputtime must be sufficiently small for acceptable timeliness... ... Real-time systems areusually considered to be those in which the response time is of order milliseconds”

Lo que se puede traducir como que un sistema de tiempo real es cualquiera en el que elmomento en que se produce su salida es significativo. Esto suele ser debido a que la entradacorresponde a algún evento en el mundo físico y la salida está relacionada a este evento. Elintervalo de tiempo entre el momento en que se produce la entrada y el momento en que segenera la salida, tiene que ser suficientemente pequeño para asegurar su puntualidad.

En general, se puede decir que los sistemas de tiempo real tienen la capacidad de ejecutartareas en intervalos de tiempo bien definidos y que la corrección en la ejecución de sus tareasno sólo depende de la corrección de la misma ejecución, sino también del momento en elque se produce el resultado. Es decir, cada una de las tareas en el sistema tiene un plazo deejecución durante el cual la tarea debe ser procesada. Si este plazo no se cumple se produceuna falla.

Se pueden clasificar dos tipos de tareas en función de las consecuencias de la pérdida de unplazo:

Tareas de tiempo real estricto (hard real-time tasks): Son aquellas tareas en las quees imprescindible que sus resultados se obtengan dentro del plazo especificado. Seconsidera que el sistema ha fallado cuando cualquiera de sus tareas no se ejecutadentro de los límites temporales requeridos. Generalmente las aplicaciones con estetipo de tareas se consideran críticas, es decir, cualquier falla repercutirá en severasconsecuencias para el sistema (ej. marcapasos, control de frenado, sistema antimisiles).

1El tiempo que toma el sistema en generar una salida a partir de una entrada

21

Page 20: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Tareas de tiempo real flexible (soft real-time tasks): Son aquellas tareas en las que sepueden perder plazos ocasionalmente, el sistema continuará funcionando aunque latarea no se haya ejecutado a tiempo. En este tipo de sistemas la respuesta pierde valordespués de que finalice el plazo (ej: audio/vídeo streaming2).

Habitualmente en un mismo sistema de tiempo real tendrán lugar tanto tareas hard comosoft real-time.

2.2. Características de los sistemas de tiempo real

Aunque no todos los sistemas deben tenerlas presentes, las características específicas de lossistemas de tiempo real son:

Determinismo temporal: El determinismo temporal es una cualidad fundamental paralos sistemas de tiempo real. Se trata de la capacidad de determinar con una alta proba-bilidad los intervalos en los que se llevarán a cabo cada una de las tareas del sistema.Esta característica se refiere al tiempo que tarda el sistema en aceptar responder a unainterrupción.

Sensibilidad: Esta característica se refiere al tiempo que tarda una tarea en ejecutarseuna vez reconocida la interrupción.

Concurrencia: Esta propiedad hace referencia a la capacidad del sistema de manejar di-ferentes eventos de forma simultánea. En un sistema físico, los diferentes componentesdel sistema controlado funcionan simultáneamente y el sistema de control (o de tiemporeal) debe ser capaz de atenderlos y de generar acciones de control simultáneamente.

Control de usuario: En un sistema de tiempo real el usuario tiene control sobre lafunción de planificación del sistema operativo. Es esencial que el programador tengacontrol sobre la prioridad de las tareas, la ubicación en memoria y los derechos sobre elsistema.

Fiabilidad: Esta característica se refiere a la probabilidad de que el sistema proporcioneel servicio especificado. Trata de asegurar que un fallo no cause una avería del sistema.Es importante asegurar que si el sistema de control falla lo haga de forma que el sistemacontrolado quede en un estado seguro. Por lo tanto los posibles fallos o excepciones sedeben tener en cuenta en el diseño.

2Distribución de audio/vídeo a través de internet.

22

Page 21: Diseño e implementación de sistemas de control de tiempo ...

2 SISTEMAS DE CONTROL DE TIEMPO REAL

2.3. Aplicaciones de los sistemas de tiempo real

Existen infinidad de ejemplos de sistemas de tiempo real y sistemas empotrados correspon-dientes a un gran abanico de áreas de aplicación. Algunos de estos ejemplos se muestran acontinuación:

Electrónica de consumo: vídeos, hi-fi, lavadoras, frigoríficos, lavavajillas.

Automóviles: control de velocidad, climatización, airbag, control de frenado.

Telecomunicaciones: radios, gps, teléfonos móviles.

Industria: procesos de fabricación.

Aviónica: computadoras de vuelo.

Sociedad: control de tráfico.

23

Page 22: Diseño e implementación de sistemas de control de tiempo ...
Page 23: Diseño e implementación de sistemas de control de tiempo ...

3 GENERACIÓN AUTOMÁTICA DE CÓDIGO

3. Generación automática de código

El proceso tradicional para desarrollar el código de sistemas de control embebidos se basa enel modelado y simulación del sistema y, posteriormente, su programación manual. A medidapasa el tiempo, el proceso se vuelve más complejo, a causa de la cantidad de funcionalidades yde componentes que se incorporan a un único sistema empotrado. Esta complejidad implicaque cada vez el procedimiento de programación se vuelva más lento y que no se puedagarantizar el correcto comportamiento del sistema, pues la probabilidad de aparición deerrores humanos se multiplica. Esto último es especialmente preocupante cuando se trata desistemas hard real-time, ya que un error puede conllevar terribles consecuencias, ya sea por laavería de componentes o prototipos costosos, o por el riesgo que la aplicación puede implicarpara las personas que les hacen uso.

Esta situación requiere herramientas para ayudar a los desarrolladores a sobrellevar dichacomplejidad, tales como herramientas de generación automática de código. Este tipo degeneración de código es una clase de programación en la cual algún mecanismo generacódigo a partir de la descripción del sistema en un nivel de abstracción más alto, medianteherramientas que permiten el modelado de sistemas complejos en un entorno virtual para sudiseño y validación, para luego generar, desde el mismo modelo, el código a utilizar [5]-[8].

Otra de las ventajas de este tipo de generación de código, a parte del ahorro de tiempo y dela eliminación de errores en la programación, es la capacidad de reducir la cantidad de trabajo.Es decir, se evita duplicar el esfuerzo sobre un mismo diseño, primero realizar el modelo ydespués programarlo.

No obstante, este tipo de herramientas aún no está extendido, pues el código obtenidoacostumbra a ser largo y de difícil comprensión. Además, el coste del aprendizaje, así como elcoste de la herramienta en sí y de su mantenimiento, no siempre superan los beneficios queésta conlleva.

Existen varias herramientas de generación de código orientadas al desarrollo de sistemas em-bebidos como Embedded Coder de MathWorksr o el generador de código libre Gene-Auto delproyecto ITEA3 <http://geneauto.gforge.enseeiht.fr/>. En este proyecto, la herramientautilizada es E4Coder Code Generator [9] de Evidence srl. [10].

3.1. E4Coder Code Generator

E4Coder es un conjunto de herramientas gráficas, lanzada al mercado en octubre de 2012,para simular y generar código destinado a ejecutarse en sistemas empotrados trabajandode forma independiente o en un entorno de tiempo real. El conjunto de herramientas queforman parte de E4Coder son:

SicosLab: Un paquete de software que provee un entorno multiplataforma para elcálculo y la simulación científica.

E4Coder: El generador de código embebido.

SMCube: Un modelador de máquina de estados.

E4Coder GUI: Una herramienta de prototipado para interfaces gráficas de usuario.

3Information Technology for European Advancement

25

Page 24: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 3.1: Bloques específicos de la herramienta de generación de código E4Coder

E4Coder genera código a partir de diagramas de bloques. El grupo de bloques proporcio-nado por la herramienta para el diseño y la generación de código se puede dividir en lascategorías:

Bloques relacionados con herramientas externas: Estos bloques trabajan en simulaciónejecutando programas en la misma máquina para gestionar las entradas y salidas desimulación (p. ej. bloque SMCube)

Bloques de utilidades: Proporcionan funciones disponibles para la simulación y lageneración de código (p. ej. senos, ondas cuadradas).

Bloque de propiedades de la generación de código: Este bloque almacena la configura-ción y los parámetros necesarios para la generación de código.

Bloques de E/S: Los bloques genéricos que se pueden mapear a periféricos externos(p. ej. PWM, ADC).

En la figura 3.1 se pueden ver algunos de estos bloques específicos.

Este generador produce código C y lo compila para su descarga en el dispositivo de destino.El origen del código a generar puede ser un diagrama de bloques entero, o uno o variossubbloques en el mismo. En el caso de generar código para subbloques, los únicos bloquesque pueden tener comunicación con el exterior, es decir, las líneas de conexión entrando y/osaliendo del subbloques, deben ser bloques de periféricos. Si alguna línea de conexión queno corresponde a un periférico sale del subbloque, en el momento de generar el código, setraducirá por funciones de lectura y/o escritura, pues se supone que se están intercambiandodatos con otros procesos.

3.2. Uso de la generación automática de código en este proyecto

En la figura 3.2 se muestra el procedimiento utilizado en este proyecto para la generación yvalidación de los controladores diseñados para el sistema bola-plato.

Este procedimiento se puede dividir en dos etapas. En la primera se toma como partidael modelo de la planta y se diseñan los controladores para las aplicaciones específicas quese deseen llevar a cabo (llevar la bola a un punto de equilibrio, seguir una referencia, etc.) .Finalmente se emplean técnicas de simulación para la validación de los sistemas de control.

26

Page 25: Diseño e implementación de sistemas de control de tiempo ...

3 GENERACIÓN AUTOMÁTICA DE CÓDIGO

Una vez simulado, y por lo tanto validado el controlador en esta primera etapa, empieza lasegunda, en la que se genera el código del sistema de control y se descarga en el dispositivo dedestino.

Una vez descargado el código, se reajusta el diseño del controlador para corregir los posibleserrores que se hayan cometido en el diseño. Cuando el comportamiento sobre la maqueta seconsidera correcto, el controlador queda validado en esta segunda etapa.

Figura 3.2: Diagrama del proceso de generación de código utilizado

27

Page 26: Diseño e implementación de sistemas de control de tiempo ...
Page 27: Diseño e implementación de sistemas de control de tiempo ...

4 ESTUDIO DEL SISTEMA BOLA-PLATO

4. Estudio del sistema bola-plato

En este apartado se presenta el sistema bola plato que se ha utilizado en este proyecto,proporcionado por la sección del departamento de ESAII4 de la EPSEVG5, así como el modelomatemático que describe su comportamiento.

4.1. Descripción del sistema bola-plato: Amazing ball

La maqueta Amazing ball es un sistema completo, listo para usar, diseñado por Evidence srl.enfocado para la enseñanza y el aprendizaje de control en tiempo real, que permite al usuarioexplorar diferentes técnicas de control para mantener la bola en posición de equilibrio sobreun plato oscilante controlado por dos servomotores y una pantalla táctil.

Figura 4.1: Maqueta Amazing ball, sistema bola-plato

El sistema físico consiste en un plato de acero que pivota sobre una articulación cen-tral, sobre el cual hay depositada una pantalla táctil de alta resolución que proporciona laposición de la bola en tiempo real. El sistema completo tiene dos grados de libertad gra-cias a dos servomotores unidos al plato que controlan el ángulo de giro del mismo sobrelas coordenadas x e y .

Los algoritmos de control que se diseñen, corren sobre un microcontrolador MicrochipdsPIC®33F montado sobre una placa FLEX Light Base Board. El dispositivo tiene hardwareespecífico para adquirir la posición de la bola y para generar las señales de control de losPWM6. La ejecución en tiempo real está asegurada por el kernel de ERIKA Enterprise [11], unsistema operativo de tiempo real para microcontroladores.

En la tabla 4.1 se muestran las características físicas del sistema bola-plato.

4Ingeniería de Sistemas, Automática y Informática Industrial5Escola Politècnica Superior d’Enginyeria de Vilanova i la Geltrú6Pulse-Width Modulator: Modulador por ancho de pulsos.

29

Page 28: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Característica Valor Unidades

Dimensiones de la base 180x338 mmDimensiones del plato 180x230 mm

Altura 95 mmPeso 1,5 (aprox.) kg

Diámetro de la bola 26 mmTiempo de muestreo mínimo 20 ms

Alimentación 12 DC, 1500 V, mA

Tabla 4.1: Características físicas de la maqueta Amazing ball

4.2. Modelado de la planta

Se necesita un modelo de la planta muy preciso para poder predecir lo mejor posible elcomportamiento de la bola y así diseñar un controlador que funcione lo mejor posible [12]-[14]. En este proyecto se ha utilizado el método de Lagrange para obtener las ecuaciones quedescriben el comportamiento de la bola:

L(t ) = Ec (t )−Ep (t ) (4.1)

Donde Ec (t ) y Ep (t ) son, correspondientemente, la energía cinética y potencial del sistema.

Figura 4.2: Diagrama de cuerpo libre del sistema bola-plato para la coordenada x

El modelo completo del sistema se elabora tomando como partida el diagrama de cuerpolibre del sistema (figura 4.2), en el que se ha omitido la fricción entre el plato y la bola, y lostipos de movimiento que experimenta la bola:

1. Cuerpo rígido uniforme con movimiento de rodamiento suave.

2. Partícula en movimiento que sigue una trayectoria circular.

La energía cinética de un sistema se puede expresar como la suma de la energía cinéticade traslación y de la energía cinética de rotación del mismo, y cada una de ellas como lasuma del correspondiente tipo de energía cinética para los dos tipos de movimiento descritosanteriormente:

Ec (t ) = Er ot1(t )+Er ot2(t )+Etr as1(t )+Etr as2(t ) (4.2)

30

Page 29: Diseño e implementación de sistemas de control de tiempo ...

4 ESTUDIO DEL SISTEMA BOLA-PLATO

Donde:

Er ot1(t ) = 1

2Ieω

2b(t ) = 1

2Ie

[r (t )

R

]2

Er ot2(t ) = 1

2Ie θ

2(t )

Etr as1(t ) = 1

2mr 2(t )

Etr as2(t ) = 1

2ms2(t )

Por otro lado, tomando como punto de referencia el plato oscilante, la energía potencialdel sistema es la descrita en 4.3. Todas las variables y parámetros utilizados para describir ladinámica del sistema se pueden consultar en la tabla 4.2.

Ep t (t ) =−mg h (4.3)

La ecuación de Lagrange del sistema completo es el descrito en la ecuación 4.4:

L(t ) = 1

2Ie

[θ2(t )+

(r (t )

R

)2]+ 1

2m

[r 2(t )+ s2(t )

]]+mg h (4.4)

Si expandimos todos los términos del lagrangiano, se obtiene:

L(t ) = 1

2Ie

[θ2

x (t )+ θ2y (t )+ x2

R2 + y2

R2

]+ 1

2m

[x2 + y2 + (

xθx + y θy)2

]+mg

(x sinθx + y sinθy

)(4.5)

Para continuar con la descripción física del sistema se utiliza la ecuación de Lagrange-Euler(4.6), mediante la cual se obtienen las ecuaciones necesarias para definir el movimiento de labola y la inclinación del plato.

d

d t

(δL

δq j

)−

(δL

δq j

)=Q j (4.6)

Se aplica la ecuación de Lagrange-Euler a cada una de las componentes del movimiento (po-sición de la bola y ángulo de inclinación del plato) sobre las coordenadasmovimiento x e y .

d

d t

(δL

δx

)−

(δL

δx

)= 0 (4.7)

d

d t

(δL

δy

)−

(δL

δy

)= 0 (4.8)

d

d t

(δL

δθx

)−

(δL

δθx

)= Tx (4.9)

d

d t

(δL

δθy

)−

(δL

δθy

)= Ty (4.10)

31

Page 30: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Evaluando 4.7 se obtiene la aceleración lineal de la bola sobre la coordenada x, que per-mite, a su vez, obtener la información sobre la posición de la bola sobre este mismo eje decoordenadas:

δL(t )

δx(t )= 1

2m

[2xθ2

x +2y θx θy]+mg sinθx

δL(t )

δx(t )= 1

2Ie

2x

R2 + 1

2m2x

d

d t

δL(t )

δx(t )= Ie

R2 x +mx

x

[Ie

R2 +m

]−mxθ2

x −my θx θy −mg sinθx = 0 (4.11)

Evaluando 4.8 se obtiene la aceleración lineal de la bola sobre la coordenada y , que per-mite, a su vez, obtener la información sobre la posición de la bola sobre este mismo eje decoordenadas:

δL(t )

δy(t )= 1

2m

[2y θ2

y +2xθx θy

]+mg sinθy

δL(t )

δy(t )= 1

2Ie

2y

R2 + 1

2m2y

d

d t

δL(t )

δy(t )= Ie

R2 y +my

y

[Ie

R2 +m

]−my θ2

y −mxθx θy −mg sinθy = 0 (4.12)

Evaluando 4.9 se obtiene la aceleración angular del plato sobre la coordenada x, que permite,a su vez, obtener la información sobre el ángulo de giro del plato sobre este mismo eje decoordenadas:

δL(t )

δθx (t )= mg x cosθx

δL(t )

δθx (t )= 1

2Ie 2θx + 1

2m

[2x2θx +2x y θy

]= Ie θx +mx2θx +mx y θy

d

d t

δL(t )

δθx (t )= Ie θx +m

(x2θx +2xxθx

)+m(x y θy +x y θy +x y θy

)Ie θx +m

(x2θx +2xxθx

)+m(x y θy +x y θy +x y θy

)−mg x cosθx = Tx (4.13)

Evaluando 4.10 se obtiene la aceleración angular del plato sobre la coordenada y , quepermite, a su vez, obtener la información sobre el ángulo de giro del plato sobre este mismoeje de coordenadas:

δL(t )

δθy (t )= mg y cosθy

δL(t )

δθy (t )= 1

2Ie 2θy + 1

2m

[2y2θy +2x y θx

]= Ie θy +my2θy +mx y θx

(4.14)

32

Page 31: Diseño e implementación de sistemas de control de tiempo ...

4 ESTUDIO DEL SISTEMA BOLA-PLATO

d

d t

δL(t )

δθy (t )= Ie θy +m

(y2θy +2y y θy

)+m(x y θx +x y θx +x y θx

)

Ie θy +m(y2θy +2y y θy

)+m(x y θx +x y θx +x y θx

)−mg y cosθy = Ty (4.15)

Finalmente, a partir de las ecuaciones 4.11, 4.12, 4.13 y 4.15, se obtienen las aceleracioneslineales de la bola y las aceleraciones angulares del plato sobre las coordenadas x e y , que sonlas que describen el comportamiento dinámico del sistema completo:

x = mIe

R2 +m

[xθ2

x + y θx θy + g sinθx]

(4.16)

y = mIe

R2 +m

[y θ2

y +xθx θy + g sinθy

](4.17)

θx = 1

Ie +mx2

[Tx −m

(2xxθx + x y θy +x y θy +x y θy − g x cosθx

)](4.18)

θy = 1

Ie +my2

[Ty −m

(2y y θy + x y θx +x y θx +x y θx − g y cosθy

)](4.19)

Para controlar el sistema se necesitan entradas de control, las cuales se definen comoU = [UA UB ]T , que corresponden a θx y θy , además de las variables del espacio estado quedescriben el sistema:

x1 = x

x2 = x

x3 = θx

x4 = θx

x5 = y

x6 = y

x7 = θy

x8 = θy

La dinámica de la bola y el plato en espacio de estados se muestra en 4.20. Se puedecomprobar que el sistema es no lineal, pues la dependencia entre variables de estados es nolineal, y que existe acoplamiento entre las componentes x e y en la velocidad lineal. Es decir,la velocidad lineal sobre el eje x depende de la velocidad angular del plano sobre el eje y yla velocidad lineal sobre el eje y depende de la velocidad angular del plano sobre el eje x.También se puede ver que la dinámica del sistema no depende de la masa ni del radio de labola, pues una vez evaluada la inercia del sistema (Ib) los dos parámetros que de la bola sesimplifican.

x1

x2

x3

x4

x5

x6

x7

x8

=

x257

(x1x2

4 +x4x5x8 + g sin x3)

x4

0x6

57

(x5x2

8 +x1x4x8 + g sin x7)

x8

0

+

0 00 00 01 00 00 00 00 1

[UA

UB

](4.20)

33

Page 32: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Para facilitar el diseño del controlador se asume que la bola siempre mantendrá contactocon el plato y que no patina al moverse, lo que implica que la aceleración de rotación del platoy, por lo tanto, también la velocidad angular del plato, serán bajas.

|θx |¿ 1 y |θy |¿ 1 →|x4|¿ 1 y |x8|¿ 1 (4.21)

Gracias a esta asunción, se puede omitir el término de acople entre coordenadas:

x1

x2

x3

x4

x5

x6

x7

x8

=

x257

(x1x2

4 + g sin x3)

x4

0x6

57

(x5x2

8 + g sin x7)

x8

0

+

0 00 00 01 00 00 00 00 1

[UA

UB

](4.22)

De esta forma se obtienen los dos modos de movimiento desacoplados (para el eje x ypara el eje y) y se puede dividir el modelo en espacio de estados del sistema bola plato endos subsistemas que permiten controlar de forma independiente las dos coordenadas demovimiento:

Movimiento sobre el eje x.

x1

x2

x3

x4

=

x2

57

(x1x2

4 + g sin x3)

x4

0

+

0001

UA (4.23)

Movimiento sobre el eje y .

x5

x6

x7

x8

=

x6

57

(x5x2

8 + g sin x7)

x8

0

+

0001

UB (4.24)

34

Page 33: Diseño e implementación de sistemas de control de tiempo ...

4 ESTUDIO DEL SISTEMA BOLA-PLATO

variable unidades descripción

x [m] desplazamiento de la bola a lo largo del eje “x”x [m/s] velocidad de la bola a lo largo del eje “x”x

[m/s2

]aceleramiento de la bola a lo largo del eje “x”

y [m] desplazamiento de la bola a lo largo del eje “y”y [m/s] velocidad de la bola a lo largo del eje “y”y

[m/s2

]aceleramiento de la bola a lo largo del eje “y”

θx [r ad ] ángulo entre el eje “x” del plato y el plano horizontalθy [r ad ] ángulo entre el eje “y” del plato y el plano horizontalm

[kg

]masa de la bola

R [m] radio de la bolaIe

[kg ·m2

]momento de inercia esfera maciza Ie = 2

5 mR2

s [m/s] velocidad lineal debido a la rotación s2 = (xθx + y θy

)2

r [m/s] velocidad lineal de la esfera r 2 = x2 + y2

ωb [r ad/s] velocidad angular de la bola ω= rR

θ [r ad/s] velocidad angular del plato θ2 = θ2x + θ2

y

h [m] altura de la bola h = x sinθx + y sinθy

g[m/s2

]gravedad g = 9,81m/s2

Tabla 4.2: Parámetros y variables para describir el sistema físico

35

Page 34: Diseño e implementación de sistemas de control de tiempo ...
Page 35: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

5. Diseño de los controladores para el sistema bola-plato

En esta sección se presentan los controladores que se han diseñado, uno para regular elsistema y otro para que el sistema siga una señal de referencia. Los controladores se handiseñado a partir de la aproximación lineal del sistema alrededor de un punto de equilibrio.

5.1. Puntos de equilibrio naturales del sistema

Un punto de equilibrio es aquel en los que el estado no cambia, es decir, el estado semantiene estable indefinidamente y no hay ningún tipo de variación (5.1). En concreto unpunto de equilibro natural además cumple que su señal de control es nula (5.2). El primerpaso para diseñar el controlador del sistema es determinar los puntos de equilibro que existenen este.

χ∗f = {x ∈Rn | f (x,u) = 0} (5.1)

χ∗n = {x ∈Rn | f (x) = 0} (5.2)

Con

X = f (x,u)

Para el sistema bola-plato se aplica 5.1 sobre el conjunto de ecuaciones que describen elsistema no lineal al completo (sistema de ecuaciones 4.20):

x1 = x2 = 0

x2 = 5

7

(x1x2

4 +x4x5x8 + g sin x3)= 0

x3 = x4 = 0

x4 = 0

x5 = x6 = 0

x6 = 5

7

(x5x2

8 +x1x4x8 + g sin x7)= 0

x7 = x8 = 0

x8 = 0

(5.3)

Resolviendo el sistema de ecuaciones 5.3 se obtienen los diferentes puntos de equilibrionaturales a los que se puede llevar el sistema (5.4). En este caso el sistema tiene infinitos puntosde equilibrio, cualquier posición sobre el plato es punto de equilibrio, siempre y cuando lavelocidad lineal de la bola y el ángulo de giro y la velocidad angular del plato sean nulos.

x1

x2 = 0

x3 = 0

x4 = 0

x5

x6 = 0

x7 = 0

x8 = 0(5.4)

5.2. Aproximación lineal del sistema bola-plato alrededor de un punto deequilibrio

Al aproximar un sistema alrededor de un punto de equilibrio se está considerando que elsistema se comporta de forma lineal alrededor de dicho punto. En este caso el controlador

37

Page 36: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

deseado se diseñará mediante técnicas de control lineal y posteriormente se implementarásobre el sistema no lineal. Para hacer esta aproximación se aplica 5.5 donde X y U correspon-den al cambio de variable 5.6 y X0 y U0 al punto de equilibro alrededor del cual se hace laaproximación.

X =[δ fi

δX

](P.E .)

X +[δ fi

δU

](P.E .)

U (5.5)

X = X −X0 y U =U −U0 (5.6)

La aproximación que se presenta en este trabajo se ha obtenido a partir del modelo 4.20 yalrededor del punto de equilibrio (0,0,0,0,0,0,0,0), el centro del plato. Desarrollando 5.5 sobreel modelo del sistema bola-plato, a falta de evaluar sobre el punto de equilibrio, se obtiene:

[δ fi

δX

](P.E .)

=

0 1 0 0 0 0 0 057 x2

4 0 57 g cos x3

57 [2x1x4 +x5x8] 5

7 x4x8 0 0 57 x4x5

0 0 0 1 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 1 0 0

57 x4x8 0 0 5

7 x1x857 x2

8 0 57 g cos x7

57 [x1x4 +2x5x8]

0 0 0 0 0 0 0 10 0 0 0 0 0 0 0

(P.E .)

[δ fi

δU

](P.E .)

=

0 00 00 01 00 00 00 00 1

(P.E .)

(5.7)

Al evaluar 5.7 sobre el punto de equilibrio y, teniendo en cuenta que, como el punto deequilibrio es P.E =−→

0 , el cambio de variable es directamente X = X y U =U y no es necesariodeshacerlo para conseguir la aproximación, se llega al modelo lineal en espacio de estados dela planta 5.8.

X =

0 1 0 0 0 0 0 00 0 5

7 g 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 5

7 g 00 0 0 0 0 0 0 10 0 0 0 0 0 0 0

X +

0 00 00 01 00 00 00 00 1

U (5.8)

Al observar las matrices de descripción del sistema, se ve que se puede dividir en dos sub-sistemas, uno para cada una de las coordenadas del movimiento. Como los dos subsistemas

38

Page 37: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

tienen el mismo comportamiento, a partir de ahora solamente se presentarán los controlado-res para uno de los subsistemas.

Movimiento sobre el eje x.

x1

x2

x3

x4

=

0 1 0 00 0 5

7 g 00 0 0 10 0 0 0

x1

x2

x3

x4

+

0001

UA (5.9)

Movimiento sobre el eje y .

x5

x6

x7

x8

=

0 1 0 00 0 5

7 g 00 0 0 10 0 0 0

x5

x6

x7

x8

+

0001

UB (5.10)

5.3. Simplificación del modelo de la planta

En el modelo que se ha descrito hasta ahora se toma como entrada de control la acelera-ción angular del plato, o lo que se puede considerar lo mismo, la aceleración angular de losmotores que controlan el plato. Esto sería válido en el supuesto que los motores que dirigen lainclinación del plato se pudieran controlar con la aceleración angular de los mismos. En lamaqueta comercial Amazing ball el ángulo de giro del plato, y por lo tanto la posición de labola, se consiguen a través de dos servomotores que se controlan a partir de un dispositivoPWM cada uno. Es decir, tan sólo se pueden controlar desde el ángulo de inclinación del plato(o por extensión, del motor).

En el modelo lineal del sistema bola-plato para la coordenada x (5.11) se pueden observardos dobles integradores, uno para las variables de estado x1 y x2, marcado en naranja, y otropara las variables x3 y x4, marcado en magenta. El modelo en espacio de estados para un dobleintegrador es el que se muestra en 5.12.

x1

x2

x3

x4

=

0 1 0 00 0 5

7 g 00 0 0 10 0 0 0

x1

x2

x3

x4

+

0001

UA (5.11)

x(t ) =[

0 10 0

](t )x +

[01

]u(t ) (5.12)

La señal de control del sistema bola-plato entra en él por la variable de estado x4 y, pasandopor el doble integrador marcado en magenta, llega a la variable de estado x3:

x4 =UA → x4 =∫

x4 =∫

UA

x3 =∫

x3 y x3 = x4 → x3 =∫ ∫

UA (5.13)

39

Page 38: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Siguiendo este razonamiento, se puede definir como nueva entrada de control x3 =Ux quealimenta el sistema desde la variable de estado x2:

x2 = 5

7g x3 → x2 = 5

7gUx (5.14)

Una vez definida esta nueva variable de control, que, al ser el ángulo de inclinación delplato, sí es válida para controlar la posición de los servomotores de la maqueta, se define elmodelo simplificado de la planta para la coordenada x como:

[x1

x2

]=

[0 10 0

][x1

x2

]+

[0

57 g

]Ux (5.15)

Esta deducción también es válida para las ecuaciones que describen el movimiento sobre lacoordenada y :

[x5

x6

]=

[0 10 0

][x5

x6

]+

[0

57 g

]Uy (5.16)

Visto esto, y siguiendo el mismo argumento, se puede recorrer el camino inverso para obte-ner el modelo no lineal de nuestra planta, que se utilizará en las simulaciones del controladordiseñado a partir del sistema lineal, sobre la planta del sistema no lineal. Partiendo del modelono lineal completo (4.20) y de las nuevas entradas de control definidas (x3 =Ux y x7 =Uy ), seobtienen los nuevos modelos del sistema no lineal:

[x1

x2

]=

[x2

57

[x1U 2

x +x5UxUy + g sinUx] ]

(5.17)

[x5

x6

]=

[x6

57

[x5U 2

y +x1UxUy + g sinUy

] ](5.18)

Por último, como x3, x4, x7 y x8 no se utilizan en el modelo simplificado, se renombran lasvariables de estado quedando el modelo lineal como se muestra en 5.19, el modelo no linealcon acoplamiento como se muestra en 5.20 y el modelo no lineal sin acoplamiento como semuestra en 5.21.

x1

x2

x3

x4

=

0 1 0 00 0 0 00 0 0 10 0 0 0

x1

x2

x3

x4

+

0 0

57 g 00 00 5

7 g

[

Ux

Uy

](5.19)

x1

x2

x3

x4

=

x2

57

[x1U 2

x +x3UxUy + g sinUx]

x457

[x3U 2

y +x1UxUy + g sinUy

] (5.20)

40

Page 39: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

x1

x2

x3

x4

=

x2

57

[x1U 2

x + g sinUx]

x457

[x3U 2

y + g sinUy

] (5.21)

Los modelos 5.15 y 5.16 son los que se han utilizado para diseñar el controlador.

5.4. Realimentación de estado: regulación

El sistema bola-plato en lazo abierto se describe por las matrices (5.22), a partir de las cualesse puede obtener la función de transferencia del sistema.

A =[

0 10 0

]B =

[0

−57 g

]C = [

1 0]

D = [0

](5.22)

Al examinar la función de transferencia del sistema (5.23), se ve que el sistema en lazoabierto tiene dos polos en 0, lo que indica que el sistema, además de no ser lineal, es inestable.Frente a esta situación se hace evidente el uso de un controlador para estabilizar el sistema.

G(s) =C (s · I − A)−1B +D =− 981

140s2 (5.23)

En primer lugar se diseña un controlador para regulación que es aquel que conduce alsistema bajo control a su punto de equilibrio. La regulación se adquiere realimentando elsistema con una señal de control que cumple 5.24.

uk =−(k1 k2 · · · kn

)

x1

x2...

xn

(5.24)

En la figura 5.1 se muestra el diagrama de bloques para un sistema de control en lazo cerradocon realimentación de estados.

5.4.1. Asignación de polos

El regulador se ha diseñado utilizando el método de asignación de polos, mediante el cualse determinan los polos en lazo cerrado que se desean para el sistema [15]-[16]. La elecciónde los polos se realiza fijando las características deseadas de la respuesta transitoria para unaentrada escalón unitario del sistema de segundo orden bola-plato.

Elección de los polos en lazo cerrado del sistema Las caracterísitcas utilizadas parala elección de los polos son la sobreelongación (Mp ) y el tiempo de asentamiento (ts). Lasobreelongación es la máximo valor de pico de la curva de respuesta, expresada en porcentaje,y el tiempo de asentamiento es el tiempo que se requiere para que la curva de respuestaalcance un rango alrededor del valor final.

41

Page 40: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 5.1: Sistema de control en lazo cerrado con realimentación de estados

El tiempo de asentamiento para que la curva alcance un valor alrededor del 2% requierecuatro veces la constante de tiempo del sistema (5.25) y alcanza un valor mínimo cuandoξ= 0,76

ts = 4T = 4

ξωn(5.25)

Si se desea un tiempo de asentamiento de 0,7s:

ωn = 4

t sξ= 4

0,7 ·0,76 ≈7,52

Para estos valores de ξ y de ωn se tiene una sobreelongación aproximadamente igual a:

Mp (%) = e− ξp

1−ξ2π ·100 = e

− 0,76p1−0,762

π ·100 ≈ 31%

Teniendo en cuenta que los polos complejos conjugados se expresan como se indica en5.26, los polos deseados en lazo cerrado para el sistema bola-plato son los que se muestran en5.27. Estos son los valores que se han utilizado para diseñar la matriz de realimentación deestados Kd .

s1,2 =−ξωn ± jωn

√1−ξ2 (5.26)

s1,2 =−0,76 ·7,52± j 7,52√

1−0,762 ≈−5,72±4,89 j (5.27)

Elección del periodo de muestreo La ecuación 5.28 describe el periodo de muestreo parapolos complejos conjugados.

h = 2π

Nωn

√ξ2 −1

(5.28)

donde N es el número de muestras por oscilación y 10 ≤ N ≤ 20.

42

Page 41: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

A partir de los polos en lazo cerrado del sistema (5.27) y del número muestras por oscilaciónescogido, N = 15, se obtiene el periodo de muestreo mínimo necesario para el sistema bolaplato:

h = 2π

15 ·4,89= 85,66ms (5.29)

Finalmente, para asegurar que se cumple el período de muestreo, se escoge h = 80ms.

Discretización del sistema Una vez seleccionado el periodo de muestreo, se pasa el sistemabola-plato en espacio de estados de tiempo continuo a tiempo discreto. Las matrices quedescriben el sistema en tiempo continuo se han mostrado en 5.19. Las matrices que describenel sistema en tiempo discreto se muestran en 5.30.

Ad =[

1 0,080 1

]Bd =

[0,022420,5606

]Cd = [

1 0]

D = [0] (5.30)

Del mismo modo los polos del sistema en lazo cerrado también tienen que pasar por elproceso de discretización. Los polos del sistema en tiempo discreto son:

polos_di s = [ 0,5850+0,2413 j 0,5850−0,2413 j ]

Falta por comprobar que los polos en el dominio discreto estén dentro del círculo unitario(criterio de estabilidad del sistema). Para comprobarlo se pueden utilizar dos métodos, calcularel módulo del polo, el cual debe ser menor a uno (5.31), o representar los polos sobre el circulounitario y verificar si están dentro o fuera de él (figura 5.2). Se constata por ambos métodosque los polos escogidos llevan el sistema a la estabilidad.

|polo_di s| =√

(0,5850)2 + (0,2413)2 ≈ 0,6328 ≤ 1 (5.31)

−1 −0,5 0 0,5 1−1

−0,5

0

0,5

1

Re z

Im z

círculo unitario(0,5850 ; 0,2413)(0,5850 ; −0,2413)

Figura 5.2: Disposición de los polos en lazo cerrado sobre el círculo unitario del plano z

43

Page 42: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Controlabilidad Antes de continuar con el diseño del regulador se comprueba que el sistemaes controlable. Para que un sistema de orden n sea completamente controlabe es necesario ysuficiente que el rango de la matriz de controlabilidad (5.32) sea máximo.

Q = [Bd Ad Bd A2

d Bd · · · An−1d Bd

](5.32)

Para el sistema en tiempo discreto de la maqueta bola-plato la matriz de controlabilidad es5.33 y su rango igual a 2, y por lo tanto máximo. Por consiguiente el modelo linealizado delsistema que se está estudiando es controlable.

Q =[

0,0224 0,06730,5606 0,5606

](5.33)

Matriz de realimentación de estados El polinomio característico de un sistema en lazoabierto es:

|zI − Ad |

Cuando se añade al sistema la matriz de realimentación de estados Kd , el polinomio carac-terístico se ve modificado a:

|zI − (Ad −Bd Kd )|

Y el polinomio característico deseado es:

pd (z) = (z −λ1)(z −λ2) · · · (z −λn)

donde λi son los polos deseados en tiempo discreto para el sistema en lazo cerrado.

El cálculo de la matriz Kd se puede hacer desarrollando el polinomio característico delsistema en lazo cerrado e igualándolo al polinomio característico deseado o aplicando lafórmula de Ackermann. En cualquier caso, la matriz de realimentación de estados para laregulación del sistema obtenida es:

Kd = [5,1387 1,2751

](5.34)

5.4.2. Observador de estado de orden completo

En el sistema físico hay variables de estado no disponibles para su medición, en concreto laúnica variable que se puede medir es la posición de la bola. Para poder aplicar el controladordiseñado se hace necesaria la adición de un observador de estado al sistema. Conociendo laentrada, la salida y la dinámica del sistema, se puede estimar el valor de las variables que nose pueden medir. La ecuación que describe la obtención de los estados observados es 5.35.

Xk+1 = Ad Xk +Bd uk +H(yk − yk ) (5.35)

44

Page 43: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

Figura 5.3: Sist. de control en lazo cerrado con realimentación de estados observados

En la figura 5.3 se muestra el diagrama de bloques para un sistema de control en lazo cerradocon realimentación de estados y estimador de estados de orden completo.

Observabilidad Antes de continuar con el desarrollo del observador hay que comprobarque el sistema sea observable. Para que un sistema de orden n sea completamente observablees necesario y suficiente que el rango de la matriz de observabilidad (5.36) sea máximo.

O =

C

C Ad

C A2d

...C An−1

d

(5.36)

Para el sistema en tiempo discreto de la maqueta bola-plato la matriz de observabilidad es5.37 y su rango igual a 2, y por lo tanto máximo. Por consiguiente el modelo linealizado delsistema que se está estudiando es observable.

O =[

1 01 0,0800

](5.37)

Matriz de ganancias del observador El proceso para determinar la matriz de ganancias delobservador es el mismo que para determinar la matriz de realimentación de estados (5.4.1). Lamatriz de ganancias del observador H debe ser tal que el polinomio característico del sistemacon observador sea igual al polinomio característico deseado, el cual viene determinado apartir de los polos en tiempo discreto deseados para el estimador de estado. Los polos deeste subsistema se seleccionan en función de la dinámica que se desee del sistema: si lospolos son muy rápidos, los errores transitorios debidos a errores en el estado inicial reduciránrápidamente, pero las estimaciones serán muy sensibles al ruido. En este caso los polosseleccionados son:

45

Page 44: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

polos_obs = [0,2 0,2

]El polinomio característico para el sistema observador es:

|zI − (Ad −HC )| (5.38)

Y el polinomio característico deseado para el sistema es:

pdobs (z) = (z −µ1)(z −µ2) · · · (z −µn)

donde µi son los polos deseados en tiempo discreto para el sistema en del estimador.

El cálculo de la matriz H se puede hacer desarrollando el polinomio característico delobservador e igualándolo al polinomio característico deseado o aplicando la fórmula deAckermann. En cualquier caso, la matriz de ganancias del observador de orden completoobtenida es:

H =[

1,68

]

5.5. Seguimiento de señales de referencia: tracking

En muchas aplicaciones el objetivo del sistema de control es seguir una entrada de referencia(tracking), en lugar de dirigir el sistema a un estado de equilibrio. En el caso del sistema bola-plato este tipo de controlador sirve para que la bola siga una trayectoria sobre el plato.

En este subapartado se han diseñado dos controladores para el tracking de señales dereferencia: un controlador feedforward y un controlador integral.

5.5.1. Tracking con control feedforward

El tracking con control feedforward es uno de los esquemas que se pueden utilizar para queun sistema siga una señal de referencia. En la figura 5.4 se muestra el diagrama de bloques deun sistema de control con realimentación de estados observados y señal feedforward.

Las matrices que definen el sistema de seguimiento se obtienen resolviendo 5.39.

(Nx

Nu

)=

(Ad − I Bd

Cd 0

)−1 (01

)(5.39)

que evaluando sobre las matrices del espacio de estados del sistema bola-plato:

Nx =[

10

]Nu = [0]

46

Page 45: Diseño e implementación de sistemas de control de tiempo ...

5 DISEÑO DE LOS CONTROLADORES PARA EL SISTEMA BOLA-PLATO

Figura 5.4: Sistema de control con entrada de referencia y control feedforward

5.5.2. Tracking con control integral

Otro de los esquemas que se puede utilizar para que un sistema siga una señal de referenciaes el que utiliza un control integral, que además elimina el error permanente en estadoestacionario. Para conseguirlo se aumenta el estado del sistema con la integral del error entrela salida y la referencia. En la figura 5.5 se muestra el diagrama de bloques de un sistema decontrol con realimentación de estados observados y control integral.

Figura 5.5: Sistema de control con entrada de referencia y control integral

El nuevo modelo de la planta aumentado es:

(x I

k+1Xk+1

)=

(1 Cd

0 Ad

)(x I

kXk

)+

(0

Bd

)uk −

(10

)rk (5.40)

A continuación se diseña el controlador para el modelo aumentado de la planta mediantela técnica de ubicación de polos, de la misma forma que se ha hecho para sistema de controlde regulación (5.4). Los polos del sistema aumentado son:

polos_i nt = [ −5,72+4,89i −5,72−4,89i −5]

47

Page 46: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Y en tiempo discreto:

polosd_i nt = [0,5850+0,2413i 0,5850−0,2413i 0,6703

]Las nuevas matrices de realimentación de estados se pueden obtener desarrollando el nuevo

polinomio característico del sistema aumentado e igualándolo al polinomio característicodeseado o aplicando Ackermann. En cualquier caso, los nuevos valores para la realimentaciónde estados son:

K d = [10,3934 1,6530

]Ki = [1,6941] (5.41)

Nota Los cálculos para determinar las matrices que caracterizan a los diferentes contro-ladores diseñados se han hecho con MATLAB. El código utilizado se puede consultar en elapéndice B.1.

48

Page 47: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

6. Simulación de los controladores

En este apartado se presentan las simulaciones realizadas de los diferentes controladoresque se han diseñado para el sistema bola-plato, para su validación.

6.1. Simulación 1: Sistema en lazo abierto

En esta primera simulación se muestra el comportamiento del sistema en lazo abierto, sinningún tipo de control. En la figura 6.1 se muestra el diagrama de bloques Simulink utilizado.

Figura 6.1: Diagrama de bloques del sistema en lazo abierto

La planta corresponde al modelo no lineal del sistema bola-plato con acoplamiento descritoen 5.20, representado por el diagrama de bloques de la figura 6.2. Los bloques F cn (6.3) creanla relación de variables que alimentan a las variables x2 y x4. Esta es la planta que se usará entodas las simulaciones del modelo no lineal con acoplamiento.

Figura 6.2: Diagrama de bloques de la planta no lineal con acoplamiento

La respuesta del sistema en lazo abierto sobre la coordenada x se puede ver en la figura 6.13 ysobre la coordenada y en 6.14. Analizando la respuesta obtenida se comprueba que el sistemaes inestable, pues todas las variables de estado implicadas incrementan indefinidamente sinalcanzar ningún punto de equilibrio.

49

Page 48: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 6.3: Bloque F cn del esquema de la planta no lineal con acoplamiento

6.2. Simulación 2: Sistema con realimentación de estados

En la segunda simulación se comprueba el funcionamiento del controlador para regulación,diseñado mediante técnicas de control lineal, sobre el modelo no lineal de la planta. Elcontrolador se ha simulado sobre la planta con y sin acoplamiento, de esta forma se haverificado que la simplificación correspondiente al acoplamiento del sistema es correcta.

6.2.1. Sistema con acoplamiento

El diagrama de bloques utilizado para el sistema de regulación con realimentación deestados del sistema bola-plato con acoplamiento se muestra en la figura 6.4. Este diagramautiliza la planta presentada en 6.2.

Figura 6.4: Diagrama de bloques del sistema no lineal con acoplamiento y realimentación deestados

La respuesta del sistema para las condiciones iniciales de posición (0,3 ; 0,3) es igual paralas dos coordenadas de movimiento y se puede ver en la figura 6.15.

Si el sistema bola-plato no tuviera acoplamiento, al cambiar las condiciones iniciales deposición de una de las dos coordenadas, por ejemplo la posición de la bola sobre el eje y , laotra no se tendría que ver afectada. Para comprobar el efecto que tiene el acoplamiento en elsistema de control, se cambian las condiciones iniciales a (0,3 ; 0,15). La respuesta obtenidasobre la coordenada x al implementar este cambio se muestra en la figura 6.16, en la que tam-bién está representada la respuesta obtenida con condiciones iniciales (0,3 ; 0,3) para apreciar

50

Page 49: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

Figura 6.6: Diagrama de bloques de la planta no lineal sin acoplamiento

el impacto del acoplamiento. Se observa que hay una pequeña diferencia entre las señalesobtenidas que está causada por el término del acoplamiento. No obstante, como la diferenciaes mínima, se puede desestimar este término y se considera correcta la simplificación tenidaen cuenta al diseñar el modelo de la planta.

6.2.2. Sistema sin acoplamiento

El diagrama de bloques utilizado para el sistema de regulación con realimentación deestados del sistema bola-plato sin acoplamiento se muestra en la figura 6.5. En este caso laplanta (figura 6.6) corresponde al modelo no lineal del sistema bola-plato sin acoplamientodescrito en 5.21, en la que tan solo se tratan dos de las variables de estado del sistema completo,las correspondientes a la coordenada x. El bloque F cn (6.7) crea la relación de variables quealimenta a la variable x2, siendo el mismo bloque que el presentado en (6.3) eliminando eltérmino de acople.

Figura 6.5: Diagrama de bloques del sistema no lineal sin acoplamiento y con realimentaciónde estados

51

Page 50: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 6.7: Bloque F cn del esquema de la planta no lineal sin acoplamiento

La respuesta del sistema para una posición inicial de 0,3m se muestra en la figura 6.17, en laque también está representada la respuesta sobre eje x del sistema no lineal con acoplamientoy realimentación estados con las mismas condiciones iniciales. Se puede apreciar que hay unapequeña diferencia entre las dos respuestas causada por el término del acoplamiento.

Al examinar la respuesta se confirma que la simplificación del acoplamiento no implicaintroducir un error excesivo en el sistema y que se puede tratar el sistema completo como dossubsistemas independientes, uno para cada una de las componentes del movimiento.

6.3. Simulación 3: Sistema con realimentación de estados observados apartir de derivadas

En la tercera simulación se comprueba el funcionamiento del regulador al introducir unobservador en el sistema. En esta simulación los estados observados se obtienen directamentea partir de la derivada de la posición, ya que los estados que no se pueden medir son lasvelocidades lineales de la bola sobre los ejes x e y y se tiene a disposición la posición de labola. En la figura 6.8 se muestra el diagrama de bloques utilizado para esta simulación.

Figura 6.8: Diagrama de bloques del sistema no lineal con realimentación de estados observa-dos a partir de derivadas

La respuesta del sistema para una condición inicial de la posición de la bola de 0,3m semuestra en la figura 6.18. Se comprueba que el controlador hace efecto sobre el sistema conobservador y lo estabiliza cumpliendo en gran medida con las especificaciones de la respuestatransitoria del sistema descritas en el capítulo 5.4.1.

52

Page 51: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

6.4. Simulación 4: Sistema con realimentación de estados observados.Estimador de orden completo

En esta simulación se comprueba el funcionamiento del regulador al introducir el obser-vador de estado de orden completo en el sistema. En la figura 6.9 se muestra el diagrama debloques utilizado para esta simulación.

Figura 6.9: Diagrama de bloques del sistema no lineal con realimentación de estados observa-dos y observador de orden completo

La respuesta del sistema para una condición inicial de la posición de la bola de 0,3m semuestra en la figura 6.19. Del mismo modo que con el observador a base de derivadas, elcontrolador estabiliza el sistema llevándolo al punto de equilibrio.

6.5. Simulación 5: Sistema con realimentación de estados observados ytracking con control feedforward

La quinta simulación muestra el comportamiento teórico del sistema no lineal sin aco-plamiento ante el seguimiento de una señal de referencia. En la figura 6.10 se muestra eldiagrama de bloques del sistema de control con realimentación de estados observados ycontrol feedforward utilizado.

La simulación realizada con este controlador es para seguir una señal de onda cuadrada. Larespuesta se puede consultar en la figura 6.20. Cuando más adelante se descargue el códigodel controlador en la maqueta del sistema bola-plato, si la señal de referencia para las doscoordenadas es una onda cuadrada, la bola seguirá una trayectoria diagonal o describirá uncuadrado sobre el plato.

6.6. Simulación 6: Sistema con realimentación de estados observados ytracking con control integral

La última simulación presenta los resultados cuando se aplica sobre el sistema no lineal sinacoplamiento un controlador con realimentación de estados observados y seguimiento deseñal de referencia a través de control integral.

53

Page 52: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 6.10: Diagrama de bloques del sistema no lineal sin acoplamiento con control feedfor-ward

Igual que en la simulación anterior, se ha probado el sistema para una señal de referenciacuadrada. La respuesta obtenida se muestra en las figura 6.21.

Figura 6.11: Diagrama de bloques del sistema no lineal con realimentación de estados obser-vados y seguimiento de referencia por control integral

6.7. Efecto de las condiciones iniciales y de la amplitud de las señales dereferencia en las simulaciones

Los controladores utilizados en las simulaciones se han diseñado sobre la aproximaciónlineal del sistema bola-plato alrededor de un punto de equilibrio, pero en las simulaciones,igual que pasa al implementar el control sobre la maqueta, el sistema sobre el que se aplica elcontrol no es lineal. Esto significa que el sistema de control funciona correctamente cuandola bola se encuentra cerca del punto de equilibrio y que a medida que se aleja de éste, ladinámica del control empeora.

Cuando las condiciones iniciales sobrepasan este rango alrededor del cual el controladorfunciona o la señal de referencia hace que los estados del sistema sobrepasen el rango, elcontrolador deja de funcionar. En la figura 6.12 se puede ver esta situación.

54

Page 53: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 51.5

2

2.5

3

3.5

4

tiempo (s)

posi

ción

(m

)

posición x

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

0

1

2

3

4

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.12: Malfuncionamiento del controlador a causa del valor de las condiciones iniciales

0 1 2 3 4 5 6 7 8 9 100

100

200

300

tiempo (s)

posi

ción

(m

)

posición x

0 1 2 3 4 5 6 7 8 9 100

20

40

60

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.13: Respuesta de la coordenada x del sistema en lazo abierto

55

Page 54: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

0 1 2 3 4 5 6 7 8 9 100

100

200

300

tiempo (s)

posi

ción

(m

)

posición y

0 1 2 3 4 5 6 7 8 9 100

20

40

60

tiempo (s)

velo

cida

d (m

/s)

velocidad y

Figura 6.14: Respuesta de la coordenada y del sistema en lazo abierto

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−0.1

0

0.1

0.2

0.3

tiempo (s)

posi

ción

(m

)

posición x

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

−0.625

−0.25

0.125

0.5

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.15: Respuesta del sistema no lineal con acoplamiento y realimentación de estadospara la coordenada x

56

Page 55: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 1.125 1.25 1.375 1.5−0.1

0

0.1

0.2

0.3

tiempo (s)

posi

ción

(m

)

0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 1.125 1.25 1.375 1.5−1

−0.625

−0.25

0.125

0.5

tiempo (s)

velo

cida

d (m

/s)

CI=(0,3 ; 0,3)CI=(0,3 ; 0,15)

CI=(0,3 ; 0,3)CI=(0,3 ; 0,15)

Figura 6.16: Respuesta del sistema no lineal con acoplamiento y realimentación de estadospara la coordenada x con diferentes condiciones iniciales

0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 1.125 1.25 1.375 1.5−0.1

0

0.1

0.2

0.3

tiempo (s)

posi

ción

(m

)

0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 1.125 1.25 1.375 1.5−1

−0.625

−0.25

0.125

0.5

tiempo (s)

velo

cida

d (m

/s)

sist. acopladosist. no acoplado

sist. acopladosist. no acoplado

Figura 6.17: Respuesta del sistema no lineal sin acoplamiento y realimentación de estados

57

Page 56: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−0.1

0

0.1

0.2

0.3

tiempo (s)

posi

ción

(m

)

posición x

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−2

−1.5

−1

−0.5

0

0.5

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.18: Respuesta sistema no lineal realimentación estados observados a partir dederivadas

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−0.1

0

0.1

0.2

0.3

tiempo (s)

posi

ción

(m

)

posición x

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−0.8

−0.6

−0.4

−0.2

0

0.2

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.19: Respuesta sistema no lineal realimentación estados estimados por observador deorden completo

58

Page 57: Diseño e implementación de sistemas de control de tiempo ...

6 SIMULACIÓN DE LOS CONTROLADORES

0 2 4 6 8 10 12 14 16 18 20−0.05

0

0.05

0.1

0.15

0.2

tiempo (s)

pos

ició

n (m

)

posición xseñal referencia

0 2 4 6 8 10 12 14 16 18 20−1

−0.5

0

0.5

1

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.20: Respuesta del sistema no lineal sin acoplamiento a una señal de referencia cua-drada con tracking feedforward

0 1 2 3 4 5 6 7 8 9 10−0.1

0

0.1

0.2

0.3

tiempo (s)

pos

ició

n (m

)

posición xseñal referencia

0 1 2 3 4 5 6 7 8 9 10−1

−0.5

0

0.5

1

tiempo (s)

velo

cida

d (m

/s)

velocidad x

Figura 6.21: Respuesta onda cuadrada del sistema no lineal con seguimiento de señal concontrol integral

59

Page 58: Diseño e implementación de sistemas de control de tiempo ...
Page 59: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

7. Proceso de la generación de código y juego de pruebas

Este capítulo se divide en dos secciones que presentan el proceso de generación auto-mática de código mediante la herramienta E4Coder por un lado, y el conjunto de pruebasexperimentales llevadas a cabo para validar los controladores diseñados, por el otro.

7.1. Proceso de generación automática de código

La generación automática de código mediante E4Coder empieza en el diagrama de bloquesde Scicos que se quiera implementar, por ejemplo el de la figura 7.1, seleccionando el bloqueCG USER PREF y entrando en el menú E4Coder Code Generator del menú de Scicos. Estebloque almacena la información, es decir, las preferencias, de la generación de código.

Figura 7.1: Diagrama de bloques principal del sistema bola-plato para E4Coder

La primera ventana una vez empezado el proceso de generación de código se muestra en 7.2.Esta es la pantalla de configuración global de parámetros. En esta pantalla se puede puedenconfigurar los parámetros siguientes:

Project name: el nombre que se quiere dar al proyecto.

Output directory: la ruta de la carpeta donde se generará el código. Si la carpeta dedestino no existe, se creará automáticamente.

Scope: indica qué tipo de generación se llevará a cabo.

• Superblock selection: al seleccionar esta opción se mostrará una pantalla adicio-nal que permite seleccionar el conjunto de subbloques (llamados Superblock enScicos) de los que se desea generar código (figura 7.8).

• Entire diagram: el código generado corresponde a todos los bloques presentes enel diagrama para el que se esté generando el código.

Project type:

• Library: esta opción configura E4Coder para producir código sin ninguna refe-rencia a tareas o sistemas operativos. Cuando se selecciona este tipo de proyectolos pasos 2 (figura 7.3) y 3 (figura 7.4) del procesos de generación de código no sellevan a cabo.

• EE_project: con esta opción el generador es configurado para obtener código parael sistema operativo OSEK/VDX de Erika Enterprise [11].

61

Page 60: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 7.2: Primer paso en la generación de codigo mediante E4Coder

• Linux_project: esta opción configura E4Coder para obtener código para los siste-mas operativos Linux.

• Windows_project: con esta opción el generador de código E4Coder se configurapara obtener código para los sistemas operativos Microsoft Windows.

La siguiente ventana del proceso de generación de código se muestra en 7.3. Esta es lapantalla de definición de las tareas del proceso, en la que se pueden añadir y/o editar tareas.Hay que tener en cuenta que añadir tareas solamente se permite cuando la generación decódigo es sobre subbloques. Para la generación de código del diagrama entero tan sólo seimplementará una tarea. Los parámetros que se pueden modificar en este panel son:

Task name: el nombre de la tarea.

Task period: el periodo de ejecución de la tarea.

Task priority: la prioridad de ejecución de la tarea.

Task offset: el tiempo inicial después del cual la tarea empezará a ejecutarse.

En la misma pantalla también hay disponible un menú para configurar diferentes opcionesdel compilador en función del sistema operativo seleccionado en el primer paso.

La tercera pantalla del proceso de generación de código (figura 7.4) presenta los diferentesdispositivos de destino disponibles y del mapeo entre los bloques de entrada y salida deldiagrama de bloques con los periféricos del dispositivo elegido.

Lo primero en esta ventana es seleccionar el dispositivo sobre el que se volcará el códigogenerado (figura 7.5), y lo segundo, realizar el mapeo entre los bloques de Entrada/Salidadel diagrama de bloques y los periféricos disponibles en dispositivo de destino seleccionado(figura 7.6).

62

Page 61: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

Figura 7.3: Segundo paso en la generación de código mediante E4Coder

Figura 7.4: Tercer paso en la generación de código mediante E4Coder

63

Page 62: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 7.5: Selección del dispositivo de destino

Figura 7.6: Mapeo de los bloques de Entrada/Salida

En esta ventana también se pueden configurar mensajes para ser enviados por los bloquesde lectura y escritura, si los hay en el diagrama de bloques.

El cuarto y último paso en el proceso de generación automática de código es la configuraciónde símbolos. Este panel permite personalizar el nombre de las variables en el código a generar(figura 7.7). El nombre de todas las variables a generar sigue el mismo formato, el cual sedetermina en esta pantalla. Por defecto todas las variables siguen el patrón:

%BLOCK_TYPE%_%BLOCK_ID%_%BLOCK_NUMBER%_%_outport_%_%OUTPORT_NUMMBER%

Al generar el código las siguientes partes del patrón se sustituyen por:

%BLOCK_TYPE%: el tipo de bloque al que pertenece la variable, p.ej. un bloque de ganan-cia gain.

%BLOCK_ID%: el identificador interno del bloque al que pertenece la variable.

%BLOCK_NUMBER%: el número del bloque.

%OUTPORT_NUMMBER%: el número del puerto de salida del bloque al que pertenece lavariable.

Por último, el paso adicional para la generación de código de subbloques se muestra enla figura 7.8. Esta ventana permite habilitar y deshabilitar los diferentes subbloques para lageneración de código y relacionar los diferentes subbloques disponibles con las distintastareas definidas en el sistema.

Una vez hechos todos los pasos, E4Coder genera automáticamente el código C para con-trolar el sistema y también lo compila, obteniendo el fichero ejecutable para descargar en eldispositivo de destino.

64

Page 63: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

Figura 7.7: Cuarto paso en la generación automática de código mediante E4Coder

Figura 7.8: Paso adicional en la generación automática de código mediante E4Coder

65

Page 64: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

7.2. Juego de pruebas

En este apartado se muestran las diferentes pruebas llevadas a cabo sobre la maqueta delsistema bola-plato y los diagramas de bloques Scicos que se han utilizado para la generaciónde código.

7.2.1. Regulación con observador a partir de derivadas

La primera prueba es para el sistema de control de regulación con observador a partirde derivadas, cuyo diseño y cuya simulación se han presentado en los capítulos 5.4 y 6.3,respectivamente.

Todos los diseños empiezan desde el diagrama de primer nivel de la figura 7.1 en el que, aparte del bloque “CG USER PREF”, hay un subbloques llamado “ball & plate”, dentro del cualse implementan los controladores diseñados, y el bloque del reloj del sistema que provee eltiempo de muestreo para el resto del sistema.

El diagrama de bloques completo para la generación de código del regulador con estadosobservados a partir de derivadas se muestra en la figura 7.10. En este esquema se pueden verdos líneas de control, una para la coordenada x y otra para la coordenada y del movimiento.Las dos líneas de control son exactamente iguales, por lo tanto solamente se explicará el usode cada una de los bloques para la coordenada x (la línea superior).

Empezando por la izquierda, el primer bloque corresponde al periférico de la pantallatáctil de la maqueta bola-plato. Este bloque adquiere la posición de la bola y provee las doscoordenadas de la posición al sistema de control. Los siguientes dos bloques realizan laconversión de entero a real, que es el tipo de datos con el que trabajan el resto de bloques delcontrolador, y la conversión de la posición de la bola de píxels a metros. El siguiente bloquerealiza una función de filtrado para disminuir el ruido de la señal de posición adquirida. Elfiltro se muestra en la figura 7.9.

Figura 7.9: Bloque de filtro de la señal de entrada

66

Page 65: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

Fig

ura

7.10

:Dia

gram

ad

eb

loq

ues

com

ple

tod

elsi

stem

ab

ola

-pla

toco

no

bse

rvad

or

par

aE4

Code

r

67

Page 66: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

El bloque “Controller & Observer” implementa tanto el control como el observador (figura7.11). Tal y como se puede ver en la imagen, primero se hace la derivada de la posición ydespués se implementa el control por realimentación de estados.

Figura 7.11: Diagrama de bloques del controlador y el observador a partir de derivadas paraE4Coder

Por último, los dos últimos bloques realizan la conversión de radianes a grados y la correc-ción del ángulo del plato que se explica en el apéndice A. El bloque de corrección de ángulo sepuede ver en la figura 7.12.

Figura 7.12: Bloque de corrección de ángulo

7.2.2. Regulación con observador de orden completo

La segunda prueba realizada es para el sistema de regulación con observador de estado deorden completo cuyo diseño y simulación se han presentado correspondientemente en loscapítulos 5.4.2 y 6.4.

El diagrama de bloques completo para la generación de código de este diseño es igual queel que se ha mostrado en el apartado anterior (figura 7.10), cambiando el bloque “Controller &Observer” por el que se muestra en la figura 7.13.

Una de las limitaciones del E4Coder es que no permite que las dimensión de las líneas deconexión entre bloques sea mayor a uno, lo cual implica que no se puedan utilizar bloquesde operaciones para matrices en los diagramas para la generación de código y se tengan queexpandir las operaciones realizadas en el controlador.

68

Page 67: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

Figura 7.13: Diagrama de bloques del controlador y el observador de estado completo paraE4Coder

La señal de control para el sistema con realimentación de estados observados es

uk =−Kd xk (7.1)

con

Kd = [Kd1 Kd2

]= [5,1387 1,2751

]xk =

[x1k

x2k

](7.2)

Por otro lado, la ecuación que define el conjunto de variables estimadas es

xk = Ad xk−1 +Bd uk−1 +H (C xk−1 −Cd xk−1) (7.3)

donde

Ad =[

Ad11 Ad12

Ad21 Ad22

]=

[1 0,080 1

]Bd =

[Bd1

Bd2

]=

[0,022420,5606

]

H =[

H1

H2

]=

[1,68

]C =Cd = [

C1 C2]= [

1 0]

(7.4)

Si se expanden ambas ecuaciones se obtiene la señal de control

uk =−k1xe1−k2xe2 (7.5)

con

x1k = Ad11 x1k−1 + Ad12 x2k−1 +Bd1 uk−1 +H1(xk−1 − x1k−1

)x2k = Ad21 x1k−1 + Ad22 x2k−1 +Bd2 uk−1 +H2

(xk−1 − x1k−1

) (7.6)

La ecuación 7.5 es la que se implementa en el diagrama de bloques de la figura 7.13 y lasecuaciones 7.6 son las que se implementan en los esquemas de las figuras 14(a) y 14(b).

69

Page 68: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

(a) Observador del estado xe1 (b) Observador del estado xe2

Figura 7.14: Diagrama de bloques del observador de estado de orden completo para E4Coder

7.2.3. Tracking con control feedforward

La tercera prueba llevada a cabo es para el sistema de seguimiento de señales de referenciacon control feedforward, cuyo diseño y simulación se han presentado en los capítulos 5.5.1 y6.5 respectivamente.

En este caso el diagrama de bloques del sistema completo (figura 7.18) es algo diferente al dela prueba anterior. En este caso el controlador y el observador están en subbloques separados.

El observador (figura 7.2.3) lleva a cabo las mismas operaciones descritas en el apartadoanterior y que se pueden consultar en la ecuación 7.6.

Figura 7.15: Diagrama de bloques del observador de orden completo para tracking con controlfeedforward para E4Coder

Por otro lado, el controlador (figura 7.2.3) ahora también tiene que tener en cuenta la señalde referencia. La nueva señal de control a implementar es

uk = Kd (Nx rk − xk )+Nurk (7.7)

70

Page 69: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

donde rk es la señal de referencia y

Nx =[

Nx1

Nx2

]=

[10

]Nu = [

Nu1

]= [0] (7.8)

Expandiendo la nueva ecuación de control se tiene:

uk = Kd1

(Nx1 rk − x1k

)+Kd2

(Nx2 rk − x2k

)+Nu1 rk (7.9)

Figura 7.16: Diagrama de bloques del controlador de orden completo para tracking con controlfeedforward para E4Coder

Como señales de referencia se han utilizado dos ondas cuadradas, una para la coordenadax y otra para la coordenada y del movimiento, de amplitud 0,1m y de 12s de período.

0 2 4 6 8 10 12

0

0.05

0.1

tiempo (s)

refe

renc

ia x

(m

)

0 2 4 6 8 10 12

0

0.05

0.1

tiempo (s)

refe

renc

ia y

(m

)

(a) Señales de referencia para que la bola siga una tra-yectoria diagonal

0 2 4 6 8 10 12

0

0.05

0.1

tiempo (s)

refe

renc

ia x

(m

)

0 2 4 6 8 10 12

0

0.05

0.1

tiempo (s)

refe

renc

ia y

(m

)

(b) Señales de referencia para que la bola siga una tra-yectoria cuadrada

Figura 7.17: Señales de referencia para el sistema de tracking con control feedforward

71

Page 70: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Fig

ura

7.18

:Dia

gram

ad

eb

loq

ues

com

ple

tod

elsi

stem

ab

ola

-pla

toco

ntr

acki

ng

de

señ

ales

de

refe

ren

cia

par

aE4

Code

r

72

Page 71: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

La fase entre ambas ondas indica el tipo de movimiento que realiza la bola:

Ondas en fase: la bola realiza un movimiento en diagonal sobre el plato.

Intervalo de tiempo Posición(0+kT , T

2 +kT)

(0,1 ; 0,1)( T

2 +kT , T +kT ) (0 ; 0)

con k = 0, 1, 2 · · ·

Tabla 7.1: Puntos de referencia para tracking de diagonal

Ondas en desfase de T4 : la bola realiza un movimiento con forma de cuadrado sobre el

plato.

Intervalo de tiempo Posición(0+kT , T

4 +kT)

(0,1 ; 0,1)( T

4 +kT , T2 +kT ) (0,1 ; 0)

( T2 +kT , 3

4 T +kT ) (0 ; 0)( 3

4 T +kT , T +kT ) (0 ; 0,1)

con k = 0, 1, 2 · · ·

Tabla 7.2: Puntos de referencia para tracking de forma cuadrad

7.2.4. Tracking con control integral

La última prueba se ha realizado para el sistema de tracking con control integral cuyo diseñose ha presentado en el capítulo 5.5.2 y cuya simulación se ha mostrado en el capítulo 6.6.

En esta prueba lo único que cambia respecto a la anterior es el bloque del controlador en elque se cambia el sistema de seguimiento de control feedforward a control integral. En la figura7.19 se muestra el controlador diseñado y en la figura 7.20 el bloque integrador.

La nueva señal de control a generar por el controlado sigue la expresión

uk = Kd (Nx rk − xk )+ Ki T

z −1(yk − rk ) (7.10)

donde rk es la señal de referencia y

Kd =[

Kd1

Kd2

]=

[10,39341,6530

]K − i = [1,6941] (7.11)

Expandiendo, se obtiene la expresión implementada por el controlador.

uk = Kd1

(Nx1 rk − x1

)+Kd2

(Nx2 rk − x2

)+ Ki T

z −1

(yk − rk

)(7.12)

7.3. Resultados

De los diferentes sistemas de control implementados funcionan correctamente los dos deregulación con observadores y el de tracking con control feedforward.

73

Page 72: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura 7.19: Diagrama de bloques del controlador para tracking con control integral paraE4Coder

Figura 7.20: Diagrama de un bloque integrador en tiempo discreto

Las dos pruebas de regulación funcionan perfectamente, la bola se estabiliza en el centrodel plato.

El sistema de tracking con control feedforward no sigue trayectorias completamente rectasde un punto a otro de la diagonal o del cuadrado marcado. No obstante, esto es debido a queen realidad, al ser las señales de referencia ondas cuadradas, lo que se le indica al controladorque debe seguir son los puntos, los extremos, de la diagonal y del cuadrado y no el camino aseguir de un punto a otro.

En cuanto al comportamiento del sistema de tracking con control integral, éste no escorrecto. El control hace que el plato no se estabilice nunca y la bola “baila” constantementesobre él.

Como a menudo se tienen que acabar de ajustar los valores de las matrices de gananciassobre el sistema físico, se han modificado los valores de Kd y de Ki para este último controladorpara conseguir que funcionase. Finalmente se ha conseguido, pero el valor de Kd era tan

74

Page 73: Diseño e implementación de sistemas de control de tiempo ...

7 PROCESO DE LA GENERACIÓN DE CÓDIGO Y JUEGO DE PRUEBAS

parecido al de los controladores anteriores y el de Ki tan bajo, que se puede considerar que,en la práctica, en realidad se implementaba un sistema de tracking con control feedforward.

Lamentablemente la herramienta de generación automática de código E4Coder no permiteaún la incorporación a de bloques de comunicación entre el dispositivo de destino y un PC,como podrían ser bloques de comunicación UDP o RS-232, y el resultado experimental de losdiferentes controladores no se puede mostrar mediante gráficos que comparen el resultadoobtenido y la entrada de referencia del sistema.

Aún así, en la url <https://drive.google.com/folderview?id=0B0ch3ct-2603eXpfdFRnelFGSmM&usp=sharing >hay algunos ví-deos del comportamiento del sistema para su consulta.

75

Page 74: Diseño e implementación de sistemas de control de tiempo ...
Page 75: Diseño e implementación de sistemas de control de tiempo ...

8 CONCLUSIONES

8. Conclusiones

A continuación se presentan las conclusiones que se han producido en la realización deeste proyecto.

Se ha cumplido el objetivo principal de este proyecto, controlar el sistema bola-platoutilizando herramientas de generación automática de código y a partir de técnicas decontrol no lineal.

Se ha visto que el modelo completo de la planta del sistema bola-plato no es apropiadopara la maqueta Amazing ball. En función de las características físicas de los actuadoresse debe adaptar el modelo para obtener la señal de control apropiada.

Se ha demostrado que la aproximación lineal alrededor de un punto de equilibrio parala aplicación de técnicas de control lineal es válida para el sistema bola-plato.

En este proyecto se ha mostrado el proceso de diseño de controladores mediante herra-mientas de generación de código. Se ha comprobado que este tipo de tecnología ofreceherramientas potentes y flexibles que facilitan en gran medida el diseño y la evaluaciónde sistemas de control embebidos.

La herramienta de generación de código E4Coder utilizada en este trabajo, es unaherramienta nueva que aún está bajo desarrollo y que presenta ciertas limitaciones.Estas limitaciones, como puede ser el impedimento del uso de matrices en los modelospara E4Coder, han ralentizado en gran medida el avance de este proyecto.

Se ha constatado que poner en marcha el sistema de generación automática de códigorequiere una gran curva de aprendizaje. Por lo tanto, este proceso aportará abundantesbeneficios en el caso de realizar diseño de sistemas de control empotrados de grancomplejidad o en el caso la realización de gran variedad de diseños.

A raíz de las conclusiones obtenidas, se proponen las líneas futuras líneas de trabajo si-guiente:

La aplicación de otras técnicas de control sobre la maqueta del sistema bola-plato, comopuede ser el control basado en Lyapunov o la linealización exacta por realimentación deestados.

La utilización de otros generadores de código con funcionalidades para sistemas detiempo real, para comparar diferentes herramientas de la misma clase sobre una únicaaplicación. De este modo se pueden comparar resultados así como la facilidad de uso,las opciones de generación de código, el código, etc. obtenido, etc.

Continuar trabajando con la herramienta E4Coder a medida que aparecen en el merca-do nuevas versiones, pudiendo así comprobar si incluye nuevas funcionalidades quefaciliten el uso del programador.

77

Page 76: Diseño e implementación de sistemas de control de tiempo ...
Page 77: Diseño e implementación de sistemas de control de tiempo ...

REFERENCIAS

Referencias

[1] BURNS, A. & WELLINGS, A. Real-time systems and programming languages, tercera edi-ción, Addison Wesley, 2001.

[2] KOPETZ, H., Real-time systems. Design principles for distributed embedded applications,segunda edición, Kluwer Academic Publishers, 1998.

[3] MALL, R. Real-time systems. Theory and practice, segunda edición, Pearson Education ,2008.

[4] DAINTITH, J. & WRIGHT, E. A dictionary of computing. Online version, Oxford UniversityPress, 2012.

[5] MOREIRA, T.G.; WEHRMEISTER, M.A.; PEREIRA, C.E.; PÉTIN, J. & LEVRAT, E. AUTOMATIC

CODE GENERATION FOR EMBEDDED SYSTEMS: FROM UML SPECIFICATIONS TO VHDL CODE,IEEE, Jul 2010.

[6] SHU, Z.; LI, D.; HU, Y.; YE, F.; XIAO, S. & WAN, J. From models to code: automaticdevelopment process for embedded control system, IEEE, Abr 2008.

[7] SAMEK, M. Turning automatic code generation upside down [Consulta: 5 deabril de 2013]. Disponible en <http://embeddedgurus.com/state-space/2012/02/turning-automatic-code-generation-upside-down>

[8] SAMEK, M. Economics 101: UML in embedded systems [Consulta: 5 de abril de2013]. Disponible en <http://embeddedgurus.com/state-space/2012/04/economics-101-uml-in-embedded-systems/>

[9] E4CODER website www.e4coder.com

[10] EVIDENCE EMBEDDING TECHNOLOGY website www.evidence.eu.com

[11] ERIKA website erika.tuxfamily.org

[12] AWTAR, S.; BERNARD, C.; BOKLUND, N.; MASTER, A.; UEDA, D. & CRAIG K.C. Mechatronicdesign of a ball-on-plate balancing system, Mechatronics, Vol. 12, Nº 2, Feb 2002, 217-228.

[13] BAMBAGINI, M. & DI NATALE, M. Ball&Plate Model ReTiS Lab, Sculoa Superiore San’Anna,Pisa, Italy, 2012.

[14] PÉREZ OLVERA, C.A. Control visual difuso de un sitema no-lineal. Tesis final de grado,Centro de investigación en computación, Instituto Politécnico Nacional, México D.F,México, 2009.

[15] OGATA, K. Ingeniería de Control Moderna, cuarta edición, Prentice Hall, 2005.

[16] OGATA, K. Sistemas de Control en Tiempo Discreto, segunda edición, Prentice Hall, 1996.

79

Page 78: Diseño e implementación de sistemas de control de tiempo ...
Page 79: Diseño e implementación de sistemas de control de tiempo ...

A CONSIDERACIONES FÍSICAS

A. Consideraciones físicas

A.1. Cálculo del grado de libertad del sistema

El grado de libertad de un mecanismo es un parámetro que indica la libertad de movimientoen el espacio que tiene el sistema. El número de grados de libertad indica el número de ecua-ciones necesarias para describir el movimiento del mismo. Este parámetro viene determinadopor el conjunto de barras y uniones entre los diferentes elementos del sistema

El criterio de Grübler-Kutzbach para mecanismos espaciales (ecuación A.1) permite obtenereste parámetro:

G = 6(n − j −1)+j∑

i=1fi (A.1)

Donde:

n: número de enlaces.j : número de pares cinemáticos.∑ j

i=1 fi : sumatorio de los grados de libertad de cada par cinemático.

Otra forma de expresar el criterio de Grübler-Kutzbach es:

G = 6(n −1)− j5 −2 j4 −3 j3 −4 j2 −5 j1 (A.2)

Donde:

n: número de enlaces.j1: número de pares cinemáticos de un grado de libertad.j2: número de pares cinemáticos de dos grados de libertad.j3: número de pares cinemáticos de tres grados de libertad.j4: número de pares cinemáticos de cuatro grados de libertad.j5: número de pares cinemáticos de cinco grados de libertad.

En la figura A.1 se puede ver el esquema del acoplamiento mecánico que forman el platocon los enlaces a los servomotores y a la base de la maqueta. A partir de esta imagen se puededecir que la maqueta del sistema bola-plato utilizada en este proyecto tiene:

n = 6j1 = 6 (pares 1−2, 2−3, 3−4, 4−5, 5−6 y 6−1)j2 = 1 (par 4−1)

Operando:

G = 6(6−1)−3 ·1−6 ·5 =−3

81

Page 80: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

Figura A.1: Esquema del acoplamiento mecánico de la maqueta bola-plato

Según este cálculo, como G ≤ 0, el mecanismo no se puede mover. Mirando con atenciónla maqueta se puede ver que el diseño no es completamente correcto desde un punto devista teórico. Cuando se produce una rotación en el sentido de la coordenada x, la barra quehace de unión entre el motor en la coordenada y y el plato, sale de su plano, flexionándosehacia el exterior o el interior en función del sentido de la rotación que se ha provocado en x, yviceversa cuando la rotación se provoca sobre la coordenada y . Teóricamente, sea cuál seala rotación que se provoque, el conjunto de barras de unión entre los motores y el plato, nopueden salir de su plano. Este es el motivo por el cual el criterio utilizado para determinar elgrado del libertad de la maqueta indica que el sistema no se puede mover.

En la realidad el sistema sí que tiene movimiento y que se mueve gracias a la flexibilidad delos materiales de las barras y del juego de las tuercas con las que éstas están sujetas.

Figura A.2: Esquema del acoplamiento mecánico de la maqueta bola-plato con rótulas

82

Page 81: Diseño e implementación de sistemas de control de tiempo ...

A CONSIDERACIONES FÍSICAS

Para poder simular el movimiento real que permiten las articulaciones, se sustituyen lasarticulaciones cilíndricas de la figura A.1 por rótulas (figura A.2). Los nuevos valores paraaplicar el criterio de Kutzbach son:

n = 6j1 = 2 (pares 1−2 y 6−1)j2 = 1 (par 4−1)j3 = 4 (pares 2−3, 3−4, 4−5 y 5−6)grados de libertad no esenciales = 2 (rotación alrededor del eje z de los enlaces 3 y 5 )

A partir de este nuevo esquema, sus correspondientes datos y teniendo en cuenta los gradosde libertad no esenciales7 se obtiene que el plato tiene dos grados de libertad:

G = 6(n −1)−3 j3 −4 j2 −5 j1 −GDL_no_esenci al es

G = 6(6−1)−3 ·4−4 ·1−5 ·2−2 = 2

El sistema completo tiene dos grados de libertad adicionales correspondientes al movimien-to de la bola en dirección x e y .

A.2. Relación entre los ángulos de los servomotores y del plato

A causa de la geometría física de la maqueta del sistema bola-plato, cuando el servomotorestá en la posición 0◦, el ángulo del plato θ no es 0◦. A partir del esquema de los enlaces entrelos diferentes componentes del sistema para la coordenada x (figura 3(a)), se puede obtener larelación entre los ángulos de los servomotores y del plato para dicha coordenada8.

(a) Esquema de enlaces (b) Aplicación del teorema de Pitágoras

Figura A.3: Esquema de enlaces entre los componentes del sistema bola-plato

7Grados de libertad que no influencian al sistema8El esquema para la coordenada y es equivalente.

83

Page 82: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

La correspondencia entre αx y θx se consigue mediante la relación trigonométrica entre lasdiferentes barras y enlaces que componen la maqueta:

{x : px cosθx + c sinθx = dx +a cosαx +b sinβ

z : h +px sinθx = a sinαx +b cosβ+ c cosθx(A.3)

El ángulo β es aproximadamente igual a 0, por lo tanto se puede simplificar la ecuación A.3de la siguiente forma:

{x : px cosθx + c sinθx = dx +a cosαx

z : h +px sinθx = a sinαx +b + c cosθx(A.4)

Para poder finalmente obtener la correspondencia entre los ángulos, hay que relacionar lasdos componentes que se muestran en A.4. Esto se consigue gracias al teorema de Pitágoras9

aplicado sobre el triángulo rectángulo resaltado en la figura 3(b):

b2 = a2 [sinα2

x +cosα2x

]+ c2 [sinθ2

x +cosθ2x

]+p2x

[sinθ2

x +cosθ2x

]+h2 +d 2x +2ac sinαx cosθx−

−2ah sinαx −2apx sinαx sinθx −2ch cosθx +2hpx sinθx −2ac cosαx sinθx +2adx cosαx−−2apx cosαx cosθx −2cdx sinθx −2dx px cosθx

(A.5)

Asumiendo que los movimientos del plato serán pequeños, es decir, los valores de θx noserán muy elevados, se supone que sinθx ≈ θx y cosθx ≈ 1. También se puede simplificar laecuación A.5 aplicando la identidad trigonométrica sinφ2 +cosφ2 = 1:

b2 = a2 + c2 +p2x +h2 +d 2

x +2ac sinαx −2ah sinαx −2apxθx sinαx −2ch +2hpxθx−−2acθx cosαx +2adx cosαx −2apx cosαx −2cdxθx −2dx px

Finalmente la relación entre el ángulo del plato y el ángulo del servomotor para la coorde-nada x es:

θx = a2 + c2 +p2x +h2 +d 2

x −b−2(ch +dx px )+2a sinαx (c −h)+2a cosαx (dx −px )

2(cdx −hpx +apx sinαx +ac cosαx )(A.6)

Del mismo modo, la relación entre el ángulo del plato y el ángulo del servomotor para lacoordenada y es:

θy =a2 + c2 +p2

y +h2 +d 2y −b−2(ch +dy py )+2a sinαy (c −h)+2a cosαy (dy −py )

2(cdy −hpy +apy sinαy +ac cosαy )(A.7)

Como se puede comprobar en las relaciones obtenidas, el ángulo del plato y el ángulodel motor no son los mismos y siguen una relación no lineal. Cuando los dos servomotores

9h2 = a2 +b2, donde h es la hipotenusa y a y b los dos lados de un triángulo rectángulo

84

Page 83: Diseño e implementación de sistemas de control de tiempo ...

A CONSIDERACIONES FÍSICAS

mantienen la posición de 0◦, en realidad el ángulo del plato para las coordenadas x e ycorrespondientemente, son:

{θx = 0,1029r ad = 5,89◦

θy = 0,1258r ad = 7,21◦

El problema reside en que el controlador diseñado utiliza como señal de control el ángulodel plato (θx y θy ), pero en realidad actúa sobre el ángulo de los servomotores (αx y αy ).Cuando el controlador manda al servomotor de la coordenada x que mantenga la posición 0◦,en realidad el plato tiene un ángulo de inclinación de 5,89◦. Esta diferencia hace que existaun error en la posición de la bola, pues una vez llega al punto de equilibrio, la inclinación delplato hace que éste no corresponda con el deseado. Para que θx y θy sean nulos:

{αx ≈ 5,93◦

αy ≈ 5,94◦

Finalmente, y debido a las limitaciones físicas del sistema, el ángulo a corregir se tieneque calibrar manualmente antes de poner en marcha la maqueta y para cada una de lassuperficies sobre las que se coloque ésta. En caso contrario el punto de equilibrio escogido(0,0) no correspondería con el centro del plato.

Las dimensiones de las barras con las que se ha hecho los cálculos se muestran en latabla A.1.

Enlace Medida

a 20mmb 40mmc 16mmdx 66,5mmdy 53mmpx 76mmpy 62mmh 48mm

Tabla A.1: Medidas de los enlaces de la maqueta

85

Page 84: Diseño e implementación de sistemas de control de tiempo ...
Page 85: Diseño e implementación de sistemas de control de tiempo ...

B CÓDIGOS

B. Códigos

B.1. Código Matlab

% Definición de constantes

g=9.81; % gravedad

h=0.08; % tiempo de muestreo

syms s

% Matrices del espacio de estados

A=[0 1 ; 0 0];

B=[0 5/7*g]’;

C=[1 0];

D=[0];

% Función de transferencia del sistema

F=C*inv(s*eye(2)-A)*B

% Sistema espacio de estados lineal

sys_lin=ss(A,B,C,D);

% Discretitzación del modelo del ball&plate linealizado

sys_dis=c2d(sys_lin,h,’zoh’)

% Controlabilidad

Ad=sys_dis.a;

Bd=sys_dis.b;

Q=[Bd,Ad*Bd]

rank (Q)

% Observabilidad

Cd=sys_dis.c;

O=[Cd; Cd*Ad]

rank(O)

% Polos del control

polos=[-5.72+4.89i -5.72-4.89i];

polosd=exp(polos*h)

87

Page 86: Diseño e implementación de sistemas de control de tiempo ...

Diseño e implementación de sistemasde control de tiempo real mediante herramientas de generación automatica de código

% Cálculo del control por realimentación de estados del sistema discreto

Kd=acker(sys_dis.a,sys_dis.b,polosd)

% Diseño del observador de estado

polos_obs=[0.2 0.2];

H=acker(Ad’,Cd’,polos_obs’)

% Matrices para el seguimiento de señales

track=[Ad-eye(2) Bd; Cd 0];

track2=inv(track)*[0 0 1]’;

Nx=[track2(1) track(2)]’;

Nu=track2(3);

% Diseño del control integral para el seguimiento de señales

Ahat=[1 Cd(1) Cd(2);0 Ad(1,1) Ad(1,2) ;0 Ad(2,1) Ad(2,2) ];

Bhat=[0 Bd(1,1) Bd(2,1) ]’;

polos_int=[-5.72+4.89i -5.72-4.89i -5];

polosd_int=exp(polos_int*h)

Kd_int=acker(Ahat,Bhat,polosd_int);

Ki=Kd_int(1);

Kd1=[Kd_int(2) Kd_int(3)]

88