1
UNIVERSIDAD POLITÉCNICA DE CARTAGENA
Escuela Técnica Superior de Ingeniería Industrial
Control de un Motor de Corriente Continua con Carga Asimétrica y
Variable
TRABAJO FIN DE GRADO
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
Autor: PABLO ROSIQUE MOLINA Director: JOSE MANUEL CANO IZQUIERDO Codirector: JULIO JOSÉ IBARROLA LACALLE
Cartagena, 2021-2022
2
3
ÍNDICE
CAPÍTULO 1. INTRODUCCIÓN 5
1.1 Motivación del Trabajo Fin de Grado 5
1.2 Objetivos 6
1.3 Planificación Temporal 6
1.4 Materiales y Metodología. 7
1.5 Contexto Histórico 9
1.5 Estructura Del Trabajo 9
1.6 Líneas de extensión futuras 10
CAPÍTULO 2. TÉCNICAS Y MÉTODOS DE CONTROL 11
2.1 Controladores PID 11
2.2 Controlador De Espacio de Estados 13
2.3 Controlador Adaptativo STC y MRAC 14
2.4 Controlador Robusto 17
2.5 Control Predictivo MPC 18
CAPÍTULO 3. MODELOS MATEMÁTICOS 19
3.1 Modelo Matemático del Motor en Horizontal 19
3.2 Modelo Matemático del Motor en Vertical 24
CAPÍTULO 4. DISEÑO DE CONTROLADORES 29
4.1 Controlador PID 29
4.2 Controlador en Espacio de Estados 31
4.3 Controlador Adaptativo 33
4.4 Controlador Robusto 35
4.5 Controlador Predictivo MPC 39
CAPÍTULO 5. RESULTADOS Y DISCUSIÓN 42
4
5.1 Experimentos de identificación 42
5.1.1 Modelo en Posición Horizontal 42
5.1.2 Modelo en Posición Vertical 45
5.2 Experimentos Del Controlador PD 52
5.2.1 PD en Motor Horizontal 52
5.2.2 PD en Motor Vertical 57
5.3 Experimentos del Controlador en Espacio de Estados 61
5.3.1 Control en Espacio de Estados en Motor Horizontal 61 5.3.2 Control en Espacio de Estados en Motor Vertical 64
5.4 Experimentos Controlador Adaptativo 66
5.4.1 Control Adaptativo en Motor Horizontal. 66
5.4.2 Control Adaptativo en Motor Vertical. 71
5.5 Experimentos Controlador Robusto 75
5.5.1 Control Robusto en Motor Horizontal. 75
5.5.2 Control Robusto en Motor Vertical. 79
5.6 Experimentos Controlador Predictivo 84
5.6.1 Control Predictivo en Motor Horizontal 84
5.6.2 Control Predictivo en Motor Vertical 90
5.7 Discusión Global de Controladores 94
5.7.1 Análisis Controladores en Motor Horizontal 94
5.7.2 Análisis Controladores en Motor Vertical 100
CAPÍTULO 6. CONCLUSIÓN 106
6.1 Conclusiones de la identificación del motor 106
6.2 Conclusiones de controladores 107
6.2.1 Controlador PD/PID 107
6.2.2 Controlador Espacio de Estados 107
6.2.3 Controlador Adaptativo 108
6.2.3 Controlador Robusto 108
6.2.3 Controlador Predictivo 109
6.3 Aprendizaje 109
BIBLIOGRAFÍA 111
ANEXO I PROGRAMACIÓN Y OTROS CÁLCULOS 112
Código de Programación Motor DC Horizontal 112
Código de Programación Motor DC Vertical 131
Otros Cálculos 150
ANEXO II FICHAS TÉCNICAS 152
5
Capítulo 1. Introducción
El presente capítulo se establece como sumario para comentar la motivación, objetivos, recorrido histórico, planificación temporal, estructura del trabajo y un breve resumen de resultados.
1.1 Motivación del Trabajo Fin de Grado
Una de las principales áreas en las que se hace hincapié durante la carrera y que más me ha atraído es el control y simulación de sistemas. Este trabajo es fruto de todo lo aprendido sobre el control y dinámica de sistemas durante estos últimos años.
En los cursos de control avanzado se suele estudiar el comportamiento del motor de corriente continua, en el presente trabajo se estudian las diferentes técnicas de control que se utilizan en la actualidad aplicadas al modelo de motor DC. Por lo tanto, este proyecto surge de la necesidad de estudiar y observar como las diferentes técnicas de control resuelven el problema del control del motor en diferentes circunstancias.
Además del estudio y observación del comportamiento del motor en posición natural (ver figura 1.1), uno de los aspectos más interesantes de esta publicación es cómo resolver la no linealidad que presenta el motor DC cuando este está colocado de manera vertical (ver figura 1.1.2).
En esa posición, el motor presenta el siguiente problema: cuando el eje del motor sobrepasa la posición correspondiente a 𝜋 rad o 180º (aprox.) la dinámica del sistema cambia totalmente, ya que el momento de inercia que adquiere el eje vence el propio peso de este. A este ángulo concreto a partir del cual el sistema cambia totalmente su comportamiento lo llamaremos Ángulo crítico.
Por lo tanto, el estudio del motor con esta orientación se realiza en el intervalo [0, 𝜋], sin llegar a superar el ángulo crítico que se encuentra entre [π ,3π/2]. (véase figura 1.1.3)
El estudio del modelo de identificación del motor en posición en vertical comienza centrándose en la región delimitada [0-π]. Aunque luego veremos que hay ciertos controladores que se adaptan
Figura 1.2.1 Maqueta del motor DC en posición horizontal
Figura 1.1.1 Maqueta del motor DC en posición vertical
6 perfectamente al cambio que se produce en la planta al superar el ángulo crítico y entonces sí que podremos controlar el motor en cualquier punto de funcionamiento.
En la siguiente figura se muestra la región donde se va a realizar la identificación del motor en vertical.
Durante el proyecto se ha ido cambiando la carga del motor, este hecho añade al trabajo un punto bastante interesante ya que se expone como cada controlador se va adaptando a las modificaciones en la planta del sistema. De todas estas necesidades nace el entusiasmo de este trabajo fin de estudios
1.2 Objetivos
Los objetivos que marcan el proyecto son:
o Identificar el modelo dinámico de la maqueta que se va a controlar
o La necesidad de demostrar cómo las diferentes técnicas (PD,PID, Control en Espacio de Estados, Control Adaptativo, Control Robusto, Control Predictivo) de control estudiadas en la universidad se adaptan a los diferentes tipos de modelos dinámicos que ofrece la orientación del motor.
o Implementación de las técnicas de control en Matlab controlando el motor en tiempo real, recoger los datos obtenidos y mostrarlos en gráficas.
o Análisis y estudio de la zona muerta del motor.
o Estudiar el efecto que produce el cambio de carga.
o Análisis de resultados de manera que se pueda observar gráficamente como actúa cada técnica de control en cada caso, haciendo hincapié en cómo afecta el error y el gasto energético.
1.3 Planificación Temporal
Para la correcta organización a la hora de realizar el trabajo fin de grado ha sido necesaria una previa planificación que divida el trabajo en unas tareas ordenadas temporalmente. Las fases de las que se compone el trabajo son las siguientes:
o Reunión con los tutores asociados para fijar unos objetivos.
Figura 1.1.3 Región de estudio del motor vertical
7 o Búsqueda y estudio en diferentes fuentes bibliográficas sobre teoría de control avanzada o Selección y recapitulación de la información más relevante
o Diseño e implementación de los diferentes controladores para cada técnica de control o Programación en Matlab de todo lo necesario para el control del motor: programación del
menú inicial donde se ajustan los parámetros, cálculo del modelo de referencia, cálculo de todas las técnicas de control, programación de resultados, etc.
o Realización de numerosos experimentos para cada técnica de control implementada y observación e interpretación de resultados.
o Simultáneamente a las dos fases anteriores he realizado diversas tutorías con el tutor y cotutor asociados comentando los resultados y resolviendo los diferentes problemas que han ido surgiendo.
o Interpretación más detallada de los resultados obtenidos y en casos puntuales he vuelto a las fases de programación y realización de experimentos.
o Redacción de la presente memoria.
1.4 Materiales y Metodología.
Son diferentes los materiales utilizados que han hecho posible la realización de este trabajo. En cuanto al Hardware utilizado, cabe destacar la importancia de la maqueta que ha sido proporcionada por el Departamento de Automática de la Universidad Politécnica de Cartagena.
Dicha maqueta cuenta en su interior con:
o Transformador al que le entra la corriente AC que se obtiene de la red eléctrica de la pared y la transforma a corriente DC y la adapta al voltaje requerido por el motor
o Placa Arduino que hace posible la comunicación de Matlab con el servomotor, en la placa se carga el programa y como tiene continua comunicación con el PC se pueden observar los resultados obtenidos.
o Motor DC, (las características del motor vienen en Anexo II)
o Encoder de tipo incremental que registra la posición del motor. (Véase figura 1.4.1) o Se han utilizado arandelas para variar la carga del motor.
A continuación, en la figura 1.4.2, se muestra el interior de la maqueta con todas las partes comentadas anteriormente.
Figura 1.4.1 Arandelas que se han utilizado para variar la carga del motor
8
Figura 1.4.2 Interior de la maqueta
En las dos siguientes figuras se ve cómo queda el motor en ambas posiciones cuando se colocan las arandelas que modifican la carga del motor.
Figura 1.4.3. Motor en ambas posiciones con variación de carga
9 En cuanto al Software utilizado además del uso de Matlab ya comentado en apartados anteriores, se ha hecho uso de la toolbox de Matlab llamada Simulink que ofrece un entorno gráfico de programación diseñado para trabajar con modelos de control, simular e implementar sin necesidad de escribir código.
1.5 Contexto Histórico
Es interesante enmarcar la teoría de control en un contexto histórico para que nos permita entender cómo ha evolucionado esta ciencia, que hasta la actualidad sigue en desarrollo constante.
El primer regulador automático surge a finales del siglo XVIII, con el descubrimiento de la máquina de vapor por James Watt. Cuando Watt inventa la máquina de vapor y se inicia la revolución Industrial se inicia paralelamente la necesidad de crear un sistema de control que permita manipular los diferentes parámetros de esta máquina.
Durante la primera mitad del siglo XX, tuvieron una vital importancia los estudios de estabilidad de sistemas donde destacan por su presencia los ingenieros Hendirk Bode y Harry Nyquist, ambos tienen un papel clave en el estudio de comportamiento de sistemas.
A partir del año 1955 con el fin de solucionar diferentes problemas en el área aeroespacial, se comienzan a desarrollar los primeros métodos de control a través del computador, es entonces cuando se empieza a representar los sistemas según variables de estado y se empieza a trabajar fundamentalmente en el dominio del tiempo.
La aparición del microprocesador y su desarrollo en la década de los setenta supone un mayor estudio (empieza a ser más rentable) sobre el control automático y provoca que se implanten los primeros controladores digitales. Al mismo tiempo los lenguajes de programación tienen cada vez una mayor abstracción.
Durante los últimos cuarenta años se han ido mejorando los lenguajes de programación provocando un mejor estudio sobre la teoría de control moderna, centrándose a partir de la década de los ochenta en el control robusto.
1.5 Estructura Del Trabajo
El actual proyecto se presenta estructurado en una serie de capítulos, cada uno de ellos se centra en un propósito que se explican a continuación.
o Este mismo capítulo está dedicado a ofrecer una visión general del trabajo sin necesidad de leer todo el documento.
o En Técnicas y Métodos de Control se explican teóricamente cada tipo de control utilizado.
o Para el Cálculo de Modelos Matemáticos se ha destinado el tercer capítulo.
o En Diseño de Controladores se demuestra cómo se ha obtenido el controlador en cada caso, tanto para el motor en posición horizontal como en vertical.
o En el quinto capítulo, Resultados y Discusión, se analizan y se discuten todos los resultados obtenidos de las simulaciones realizadas, tanto para el motor en posición vertical como en posición horizontal.
o En Conclusiones se expone un resumen de los resultados obtenidos.
10 o El Anexo De Programación y Cálculos se muestran todas las líneas de código que se
han introducido en Matlab además de los diferentes cálculos que se han considerados como más importantes.
o Para las fichas técnicas y hojas de características se ha dedicado el Anexo II.
Además de los anteriores capítulos existe:
o Una revisión bibliográfica con todas las fuentes consultadas para la realización del proyecto.
1.6 Líneas de extensión futuras
Uno de los objetivos inicialmente marcados era conocer la potencia del programa Octave, este aspecto no ha sido incluido en el presente proyecto y se propone como una posible extensión para alumnos futuros. De tal manera que se realice un estudio para comprobar si Octave puede ser utilizado como sustituto de Matlab ya que el primero ofrece la ventaja de que es totalmente libre.
11
Capítulo 2. Técnicas y métodos de control
El presente capítulo recoge las diferentes técnicas de control utilizadas y se explican teóricamente cada una de ellas.
2.1 Controladores PID
Los controladores PID, permiten controlar un sistema realimentado de tal manera que el sistema alcance la salida deseada. En ellos encontramos tres acciones de control: acción proporcional, acción integral y acción derivativa. Para entender cómo funcionan es necesario entender cada una de las acciones que lo componen.
Acción de Control Proporcional.
La parte proporcional se define como la multiplicación del error del sistema por una constante, que llamaremos constante proporcional.
𝑃 = 𝐾𝑝⋅ ⅇ(𝑡)
(2.1.1)
El error lo definimos como la diferencia entre la salida y la señal de entrada. En estado estacionario será cuando el tiempo tienda a infinito.
ⅇ(𝑡) = 𝑦(𝑡) − 𝑟(𝑡) ⅇ𝑠𝑠 = 𝑙𝑖𝑚
𝑡→∞ⅇ(𝑡)
(2.1.2)
La función de la acción proporcional es minimizar el error del sistema acercándolo lo más posible a 0. A medida que aumenta el error, la acción de control aumenta y tiende a disminuir el error.
Cuando aumentamos la parte proporcional en un sistema conseguimos los siguientes resultados sobre la salida:
o Reducimos el error.
o Aumentamos la velocidad de respuesta del sistema, es decir, reducimos el tiempo de respuesta.
o Aumentamos el sobre impulso.
Acción de Control Integral.
La parte integral se define como la integral del error y tiene como propósito disminuir el error en estado estacionario.
𝐼 =𝑘𝑝
𝑇𝑖 ∫ ⅇ(𝜏) ⅆ𝜏
𝑡 0
= 𝑘𝐼∫ ⅇ(𝜏) ⅆ𝜏
𝑡
0
(2.1.3)
Cuando aumentamos la parte integral en un sistema esperamos los siguientes efectos sobre la señal de salida:
o Aumenta el sobre impulso.
o Reducimos el tiempo de respuesta del sistema
12 o Aumenta el tiempo de establecimiento de la salida.
o Elimina el error en estado estacionario.
Acción de Control Derivativa
La parte derivativa se define como la derivada del error y su propósito es estabilizar la respuesta reduciendo las oscilaciones.
𝐷 = 𝑘𝑝𝑇𝐷 𝜕ⅇ
𝜕𝑡 = 𝑘𝐷𝜕ⅇ
𝜕𝑡
(2.1.4)
El hecho de aumentar la parte derivativa provoca una serie de efectos en la respuesta del sistema:
o Aumenta la estabilidad del sistema o Disminuye el tiempo de establecimiento o Disminuye el sobre impulso
Combinando estas tres acciones podemos diseñar distintos controladores de la familia PID. La expresión genérica que describe el controlador PID queda como en la ecuación 2.1.6. La siguiente figura hace referencia a el lazo de control de un PID.
Figura 2.1.5 Diagrama de bloques de un controlador PID
𝑢(𝑡) = 𝐾𝑝ⅇ(𝑡) + 𝑘𝐼∫ ⅇ(𝜏) ⅆ𝜏
𝑡 0
+ 𝑘𝐷𝜕ⅇ
𝜕𝑡
(2.1.6)
El controlador PID es la acción combinada de las tres acciones, de esta forma podemos controlar nuestra variable del proceso y hacer que siga la referencia que queremos. El bucle cerrado hace que el sistema pueda comparar el error con la salida y se regulen todas las variables.
13 2.2 Controlador De Espacio de Estados
En ingeniería de control un recurso muy utilizado para representar los sistemas es la representación de espacio de estados. Es un modelo que describe el comportamiento del sistema agrupando las entradas y salidas en variables de estado que a su vez forman ecuaciones diferenciales de primer orden. Estas ecuaciones diferenciales se estructuran de una forma matricial. Las variables se representan de forma vectorial, de tal manera que las diferentes entradas y salidas del sistema quedan recogidas en dos vectores.
Antes de nada, es conveniente explicar los dos siguientes conceptos en los que se basa este sistema de control.
Estado: es la información del sistema, el estado está representado por las variables que describen el comportamiento del sistema.
Variables de estado: son las variables que componen el estado del sistema, en nuestro caso las forman la posición angular y la derivada de la posición angular. En cualquier sistema habrá tantas variables como orden tenga el propio sistema.
En la siguiente ecuación se define el vector de estados.
𝑥̅ = (𝜎
𝑤) = (𝜎
𝜎̇) = (𝑥1 𝑥2)
(2.2.1)
Este método se basa en describir la dinámica del sistema mediante ecuaciones diferenciales en forma matricial. Anteriormente, en el controlador PID, describíamos el comportamiento del sistema mediante funciones de transferencia, ahora el sistema está descrito mediante ecuaciones diferenciales, hecho que como se podrá observar en todo este capítulo simplifica de manera importante los cálculos.
En la figura que se adjunta a continuación se muestra el esquema general de un control en espacio de estados.
Figura 2.2.2 Diagrama de bloques de un controlador en espacio de estados
14 2.3 Controlador Adaptativo STC y MRAC
En ocasiones, necesitamos que nuestro sistema de control se vaya adaptando a las diferentes circunstancias que puedan ir apareciendo en el entorno. El control adaptativo, como su nombre indica es un tipo de control en el que el regulador cambia sus parámetros en función de perturbaciones o cambios en la dinámica del sistema.
Entre las muchas definiciones que tiene el control adaptativo, una de las que más se ajusta sería que el Control Adaptativo es un control no lineal en el que el estado del proceso puede ser separado en dos escalas de tiempo que evolucionan a diferente velocidad. La escala lenta corresponde a cambios de los parámetros y por consiguiente a la velocidad con la cual los parámetros del regulador son modificados, y la escala rápida que corresponde a la dinámica del bucle ordinario de realimentación (López & Rubio, 1996)
En el diagrama que aparece a continuación se observa el esquema básico de Control Adaptativo.
Figura 2.3.1 Esquema básico Control Adaptativo (Rubio & López, 1996)
Dentro de este tipo de control podemos encontrar dos grupos diferentes de controladores adaptativos: el Control Adaptativo con modelo de referencia (MRAC) y el controlador autoajustable o self-tunning controllers (STC).
El Control Adaptativo con modelo de referencia (MRAC) se basa en conseguir que la salida del sistema alcance el comportamiento que el diseñador establece como referencia mediante un modelo. En general se puede representar esquemáticamente de la siguiente manera. (véase figura 2.3.2) Se componen de cuatro partes: una planta que describe nuestro proceso, un modelo de referencia que será la salida deseada del sistema, una ley de control de retroalimentación que contiene parámetros ajustables y un mecanismo de adaptación para actualizar los parámetros ajustables.
15 En este tipo de control no es necesario conocer los parámetros de la planta, pero si debemos saber su estructura, es decir, el número de polos y de ceros. En cuanto al modelo de referencia si es importante un adecuado diseño ya que este modelo será la salida deseada por lo tanto debemos ajustar el tiempo de establecimiento, el tiempo de subida, el sobre pico.
El controlador o regulador autoajustable (STC) recoge la información del proceso mediante variables y trata de alcanzar la salida adecuada, es decir, el controlador realiza la identificación de
la planta. El esquema que siguen los controles adaptativos STC es el siguiente:
El funcionamiento del controlador autoajustable es el siguiente: en cada instante de tiempo, el estimador envía al controlador un conjunto de parámetros estimados en la planta que se calculan en función de la entrada 𝑢 y la salida Y de la planta; la computadora encuentra los parámetros del controlador correspondientes y luego calcula una entrada de control 𝑢 basada en los parámetros del controlador y las señales medidas; esta entrada de control estimada hace que se genere una nueva salida de planta, y se repite todo el ciclo de actualización de parámetros y entradas. El
Figura 2.3.2 Esquema básico general del controlador MRAC (Rubio & López, 1996)
Figura 2.3.3 Esquema básico general del controlador STC (Rubio & López, 1996)
16 controlador autoajustable puede entenderse más fácilmente como el proceso de encontrar un conjunto de parámetros que se ajusten a los datos de la entrada y salida disponibles en la planta.
Ambas técnicas ofrecen sus ventajas e inconvenientes. El primer controlador (MRAC), ofrece una robustez mayor ya que se encarga de seguir el modelo de referencia por lo que tiene una adaptación más rápida, se utiliza en casos en los que el diseñador conoce la señal de salida que desea para su sistema. El segundo (STC), tiene la ventaja que se adapta para cualquier circunstancia, se utiliza cuando pueden ocurrir perturbaciones de diferente naturaleza ya que se adapta ante casi cualquier situación.
Toda la información complementaria respecto a la teoría de Control Adaptativo puede consultarse en Stoline, J.(1991). Applied Nonlinear Control.
17 2.4 Controlador Robusto
En este capítulo, al igual que en el anterior, vamos a poder permitirnos no conocer el modelo del sistema. La imprecisión del modelo puede venir dada por la planta, por ejemplo, no conocer los parámetros de la planta. O bien por estimar una representación no muy ajustada de la dinámica del sistema. Desde el punto de vista del control automático las imprecisiones pueden ser clasificadas en dos grandes grupos:
o Incertidumbres estructurales (o bien paramétricas).
o Incertidumbres no estructurales (dinámica no modelada).
El primer grupo corresponde con las imprecisiones de los términos incluidos en el modelo, mientras que el segundo corresponde a las imprecisiones en el orden del sistema. Las inexactitudes pueden tener grandes efectos adversos en el control de sistemas no lineales. Por lo tanto, cualquier práctica de diseño debe abordarlas explícitamente. Dos enfoques principales para abordar estas incertidumbres del modelo son el control adaptativo visto en el anterior capítulo y el control robusto que explicaremos en la presente sección.
La estructura típica de un controlador robusto se compone de una parte nominal, similar a una linealización de retroalimentación o ley de control inversa, y de términos adicionales destinados a tratar con la incertidumbre del modelo. Un enfoque simple para el control robusto, y el tema principal de este capítulo es la llamada metodología de Control Deslizante o Sliding.
Intuitivamente, se basa en la observación de que es mucho más fácil controlar sistemas de primer orden (es decir, sistemas descritos por ecuaciones diferenciales de primer orden) que de sistemas de tercer orden (es decir, sistemas descritos por ecuaciones diferenciales de orden tres). En consecuencia, se introduce una simplificación que, en efecto permite que los problemas transformados, en principio se puedan lograr un rendimiento “perfecto” en presencia de inexactitudes arbitrarias de los parámetros. Tal desempeño, sin embargo, se obtiene al precio de una actividad de control extremadamente alta. Esto nos lleva a una modificación de las leyes de control que tiene como objetivo lograr un equilibrio efectivo entre el rendimiento del seguimiento y la incertidumbre paramétrica. En el caso del control de motores eléctricos (como es el del presente proyecto) las leyes de control no modificadas pueden usarse directamente.
El diseño de control deslizante o Sliding proporciona un enfoque sistemático al problema de mantener la estabilidad y el rendimiento constante frente a las imprecisiones del modelado. Este tipo de control automático se ha aplicado en numerosos campos de la ingeniería como son: el control de vehículos submarinos, manipuladores de robots, transmisiones y motores de automóviles, motores eléctricos de alto rendimiento y sistemas de potencia. Toda la información complementaria respecto a la teoría de Control Robusto puede consultarse en Stoline, J.(1991).
Applied Nonlinear Control.
18 2.5 Control Predictivo MPC
Se denomina Control MPC al control predictivo basado en modelo, el sistema utiliza este modelo para predecir estados o salidas. Este sistema de control realiza una predicción en las variables, ya sean dependientes o independientes del proceso.
Este cálculo se realiza con la información que se obtiene de la evolución del proceso hasta el instante 𝑡, es decir:
o Valores pasados de las entradas o actuaciones del proceso.
o Valores presentes y pasados de las salidas del proceso.
o Secuencia señales de control futuras.
Uno de los conceptos importantes en este tipo de control es el de “horizonte de predicción” que hace referencia al intervalo de tiempo que se va a estudiar, en nuestro caso sería el tiempo de experimento (𝑡 + 𝑁). Este horizonte de predicción está formado por todos los tiempos de muestreo que se conocen como “horizonte de control” que comprenden todos los intervalos desde 𝑡 hasta 𝑡 + 𝑁𝑢, siendo 𝑁𝑢 < 𝑁. Para los instantes de tiempo que superen el horizonte de control, es decir, los instantes futuros, se supone que la señal es constante.
El control predictivo es una de las técnicas de control avanzado que más importancia han tenido en los últimos años, sobre todo, en la industria petroquímica y de procesos. Esta técnica ofrece numerosas ventajas como son:
o Es aplicable a casi todos los procesos, ya sean estables o inestables.
o Facilidad a la hora de compensar perturbaciones.
o Ofrece soluciones a los sistemas multivariables.
o Es capaz de aprovechar el conocimiento que se tenga sobre la evolución de la referencia a lo largo del horizonte de predicción de manera que la acción de control tenga en cuenta los cambios de referencia antes de que se produzcan.
Sin embargo, el control predictivo tiene algunos inconvenientes como es la necesidad de proponer un modelo que se ajuste al proceso que se requiere. Otro de los inconvenientes es el cálculo de la señal de control. Esta señal de control 𝑢(𝑡) es más difícil de obtener que en los métodos de control clásicos pues el cálculo es notablemente más complejo, en los últimos años el avance de la tecnología ha favorecido el desarrollo de esta técnica pues la complejidad de obtener la señal de control se ha reducido. Para un conocimiento más detallado de la teoría de control predictivo, consultar el siguiente libro: Sánchez J. (2005). Control Predictivo Experto.
19
Capítulo 3. Modelos Matemáticos
Como anteriormente se ha explicado, existen diferentes técnicas de control que requieren el conocimiento de la planta de nuestro sistema. Los dos siguientes apartados están dedicados al estudio de la función de transferencia del motor, en posición horizontal y en posición vertical respectivamente. Encontrar una función de transferencia que defina el sistema es básicamente encontrar un modelo matemático que describa el comportamiento del motor, en otras palabras, una función en el dominio de Laplace que relacione la respuesta del sistema (el ángulo del motor) con una señal de entrada (voltaje). En este proyecto, el modelo matemático que describe el sistema se ha obtenido a través de una técnica experimental, pero creo conveniente comentar que existen diversas maneras como por ejemplo obtener la función de transferencia (f.d.t) de mediante el uso ecuaciones diferenciales para modelar el sistema.
Una vez que hallemos la función de transferencia o planta del sistema ya podremos dar paso al diseño de controladores, que vendrán a partir del punto 3.2.
3.1 Modelo Matemático del Motor en Horizontal
En este apartado veremos todo lo relacionado con la función de transferencia cuando el motor está colocado en posición horizontal.
Para el diseño de un modelo matemático que describa el funcionamiento del sistema he utilizado una técnica experimental estudiada en clase. Con esto identificaremos el comportamiento del sistema, algo necesario para el posterior diseño de controladores.
Lo que haremos será obtener el modelo matemático para una función de transferencia cuya respuesta de salida será la velocidad, una vez que tengamos esta f.d.t añadiremos un integrador en el denominador, recordemos que la posición es la integral de la velocidad, y ya tendremos la f.d.t de la posición del motor.
Partimos de la premisa que el sistema (para el caso de la velocidad) es un 1º orden puro, que carece de sobre pico, y que nunca llegan a alcanzar el valor exacto de la consigna.
20 Comparando las dos figuras anteriores, vemos que el comportamiento del motor se asemeja a un sistema de primer orden. Si observamos detenidamente la figura 3.1.3 vemos que hay
un pequeño retraso el cual es tan pequeño frente al tiempo de simulación que los podemos despreciar.
Como sabemos que el sistema es un primer orden puro realizamos varios experimentos y anotamos los parámetros (véase figura 3.1.2) en una tabla, de la que obtenemos lo siguiente:
Figura 3.1.1 Comportamiento de un sistema de 1º orden puro
Figura 3.2.3 Respuesta de la velocidad del motor ante un escalón de 30.
Tabla 3.1.4 Diferentes experimentos realizados para obtener la función de transferencia del motor horizontal
21 Una vez que se realiza la tabla anterior obtenemos los siguientes valores medios:
o K_media: 0.7891 o Ꞇ_media: 0.70592
Una vez hecho esto podemos escribir la función de transferencia que describe la velocidad del motor:
𝐺(𝑆)= 0,7891 0,70592s + 1
(3.1.5) Lo que realmente nos interesa es la posición ya que lo que queremos controlar es el ángulo del brazo de la maqueta únicamente tendremos que añadir un integrador en el denominador, por lo que, tendremos un sistema de 2º orden con un polo en el origen.
𝐺(𝑆) = 0,7891 s(0,70592s + 1)
(3.1.6) Además, para comprobar la veracidad de la f.d.t que relaciona la entrada con la velocidad del eje he acudido a Simulink, de tal forma que podemos ver cuanto dista la ecuación que hemos calculado con el comportamiento real del motor en lazo abierto.
Figura 3.1.7 Diagrama de bloques en lazo abierto de la velocidad
Figura 3.1.8 Respuesta de la velocidad en lazo abierto.
22 Comparando la figura 3.1.3 y la figura 3.1.8 se comprueba que, obviando el ruido que aparece en la primera, ambas se corresponden entre sí por lo que podemos tomar como válido el modelo matemático de la velocidad.
Si además comparamos los modelos de la posición vemos que también es válida la expresión 3.1.6, como se puede ver a continuación.
Ahora veremos que sucede cuando añadimos masa en el eje del motor, tendremos que estudiar la influencia del cambio de inercia en el modelo matemático del motor, para ello necesitamos observar las expresiones de la ganancia y de la constante de tiempo ya que estos son los únicos parámetros variables.
A continuación, se exponen las ecuaciones dinámicas diferenciales que rigen el comportamiento del motor, en el siguiente desarrollo se ha obtenido una expresión para la función de transferencia del motor.
Figura 3.1.9 Diagrama de bloques en lazo abierto de la posición y su respuesta en Simulink
Figura 3.1.10 Respuesta de la posición del motor ante un escalón de 30.
23 En un motor DC se cumple lo siguiente:
𝑇(𝑡) = 𝐾𝑖𝑖(𝑡) 𝑉𝑖(𝑡) = 𝐾𝑏𝜃̇(𝑡)
(3.1.11) El voltaje del anterior circuito (hacer referencia al dibujo del motor) viene dado por la siguiente expresión:
𝑉(𝑡) = 𝑅𝑖(𝑡) + 𝐿𝜕𝑖(𝑡)
𝜕𝑡 + 𝑉𝑏(𝑡) 𝑉(𝑡) = 𝑅
𝐾𝑖𝑇(𝑡) + 𝐿 𝐾𝑖
𝜕𝑇(𝑡)
𝜕𝑡 + 𝐾𝑏𝜕𝜃(𝑡)
𝜕𝑡
(3.1.12) Cuando el motor tiene carga:
𝑇(𝑡) − 𝐵𝜃̇ = 𝐼𝜃̈
𝑇(𝑡) = 𝐼𝜃̈ + 𝐵𝜃̇
(3.1.13) Despreciamos la inductancia del motor e introducimos la última ecuación
𝑉(𝑡) = 𝑅
𝐾𝑖(𝐼𝜃̈ + 𝐵𝜃̇) + 𝐾𝑏𝜃̇
𝑉(𝑡) = 𝑅
𝐾𝑖𝐼𝜃̈ + (𝐵 𝑅
𝐾𝑖 + 𝐾𝑏) 𝜃̇
Por último, tenemos que aplicar la transformada de Laplace y ya tendríamos la f.d.t de la posición.
𝜃(𝑠) 𝑉(𝑠)=
𝐾𝑖 𝑅 𝑆 (𝐼𝑆 +𝐾𝑖𝐾𝑏
𝑅 + 𝐵)
=
𝐾𝑖 𝐵𝑅 + 𝐾𝑏𝐾𝑖 𝑠 ( 𝐼𝑆
𝐵𝑅+𝐾𝑏𝐾𝑖𝑆 + 1)
(3.1.14)
Donde:
24 o 𝐾 = 𝐾𝑖
𝐵𝑅+𝐾𝑏𝐾𝑖
o Ꞇ = 𝐼𝑆
𝐵𝑅+𝐾𝑏𝐾𝑖
(3.1.15) Por lo tanto, queda comprobado que solo la constante de tiempo (Ꞇ) depende de la inercia. Esta constante de tiempo será directamente proporcional a la inercia, de la misma manera cuando aumentemos la carga en la maqueta aumentará la constante de tiempo.
3.2 Modelo Matemático del Motor en Vertical
Antes de nada, es importante conocer una serie de singularidades que presenta el motor cuando se coloca en la posición vertical.
Como ya hemos dicho el motor en esta posición presenta una zona muerta bastante considerable, la tensión que se le aplica al motor para que este empiece a girar tiene que superar cierto valor, de lo contrario el eje permanece parado. Dicho esto, lo primero es ver qué valor mínimo debe tener la entrada 𝑉𝑖𝑛 para superar esta ZM y que el motor comience a girar. El valor mínimo lo tomaremos como 𝑉𝑖𝑛=5, a partir de ese valor el motor comienza a girar.
Las siguientes figuras corresponden a experimentos con el motor colocado en posición vertical.
En la figura 3.2.1 se observa cómo el motor permanece quieto aún con una entrada de valor 5.
Si aumentamos la amplitud de la señal de referencia el motor sí que comienza a moverse, esto se observa en la figura 3.2.2 donde se ha ampliado la gráfica para poder visualizar correctamente la señal de control y la posición. El experimento se ha realizado con una referencia de 10 y no se ha modificado la carga al motor.
Figura 3.2.1 Experimento en lazo abierto para motor vertical sin carga ante escalón de amplitud 5.
25 Cuando aumentamos la señal para la identificación, concretamente cuando sobrepasamos una amplitud de 5, el motor comienza a moverse y la posición comienza a describir una respuesta típica de un sistema de segundo orden.
Como ya se ha comentado en el primer capítulo, cuando el eje del motor alcanza el Ángulo crítico el sistema cambia su comportamiento, cambiando su modelo matemático. Esto es debido a que la inercia que adquiere el motor vence al propio peso del eje hecho que no ocurre en la región [0-π]
Para analizar la planta del sistema nos centraremos en esa región. Obsérvese la siguiente figura, donde se muestra la región correspondiente a [0,π].
Figura 3.2.2 Experimento en lazo abierto para motor vertical sin carga ante escalón de amplitud 10.
Figura 3.2.3 Región donde se va a realizar la identificación de la planta cuando se coloca el motor en posición vertical.
26 Recordar, que la región [0,π] que se observa en la figura anterior, en Matlab viene descrita por [- π,+π].
En la siguiente figura se muestra la respuesta del sistema cuando se introduce una referencia elevada y el motor sobrepasa el Ángulo crítico.
La respuesta pasa de ser la típica señal de un sistema de segundo orden subamortiguado que observábamos en la figura 3.2.2 a ser una función de segundo orden con un polo en el origen Es decir, podemos decir que el comportamiento del motor cuando se coloca en vertical es diferente cuando sobrepasa cierto ángulo (Ángulo crítico), e
Es decir, podemos decir que cuando el motor está colocado en posición vertical tenemos dos funciones de transferencia asociadas al mismo sistema. Una cuando la posición es menor que el Ángulo crítico (respuesta clásica de un sistema de segundo orden) y otra cuando la posición supera el Ángulo crítico, una respuesta clásica de segundo orden y una respuesta de segundo orden con un polo en el origen.
o Respuesta de la figura (3.2.4): 𝑘
𝑠(𝜏𝑠+1)
o Respuesta de la figura (3.2.2): 𝑘𝑊𝑛2
𝑠2+2𝜁𝑤𝑛2 𝑆+𝜔𝑛2
Una vez aquí, llegamos al problema de encontrar una expresión que defina el comportamiento del motor. A priori, tenemos dos opciones, bien encontrar un modelo de transferencia mediante las ecuaciones diferenciales de no linealidad que definen física y dinámicamente el motor. O bien analizar la respuesta del motor con un experimento donde la posición sea inferior en todo momento al ángulo crítico.
Figura 3.2.4 Experimento en lazo abierto para motor vertical sin carga ante escalón de amplitud 40.
27 Para hacerlo de una manera más experimental y que la función de transferencia se ajuste al máximo al comportamiento real del motor, la identificación del modelo se ha decidido realizarlo de una manera experimental. Pues plantear un modelo de identificación no lineal a partir de las ecuaciones diferenciales que describen el problema es un proceso más complejo que cuando el motor estaba en posición en horizontal (entran en juego vectores de tensión, peso, etc.) y la posibilidad de error es mayor que si se realiza la identificación de manera experimental.
Lo primero es elegir una referencia que sea lo suficientemente alta para que se genere una salida de posición lo más elevada posible, pero sin que se supere el ángulo crítico. Así que se ha elegido una señal de referencia en escalón de amplitud 30. Se ha realizado ese experimento obteniéndose el siguiente resultado
Por lo tanto, para obtener el modelo matemático que describe el comportamiento del motor en vertical hay que obtener los parámetros 𝑘, 𝜔𝑛 y 𝜉. Estos parámetros se obtienen mediante la observación de los experimentos. Los respectivos cálculos están en el Anexo de Cálculos y Programación.
Una vez que se obtienen los valores correspondientes, la función de transferencia quedaría de la siguiente manera:
𝐺(𝑠) = 1.2086
𝑠2+ 6.9627𝑠 + 48,094
Figura 3.2.5. Experimento para identificación del motor Vertical. Entrada escalón de amplitud 30.
28 (3.2.6) Para comprobar la veracidad del modelo calculado, una de las opciones es introducir dicho modelo en Simulink y comprobar que el comportamiento es similar al de la simulación con el motor real.
En la siguiente figura se muestra el esquema realizado en Simulink.
Si ejecutamos el lazo de control de la figura anterior se obtiene la siguiente salida:
Comparando esta salida con la producida por el experimento 3.2.5 se comprueba su semejanza: el pico máximo entre ambas difiere en aproximadamente 0.1 radianes, el tiempo de establecimiento de la señal en ambos casos muy parecido y la forma de las dos señales es similar. Así que en este punto es cuando se decide tomar la función de transferencia de la ecuación 3.2.6 como el modelo matemático que describe el comportamiento del motor cuando este está en el intervalo [0,π/2] o su equivalente en Matlab [-π/2,π/2].
Figura 3.2.7. Diagrama del lazo abierto del motor vertical.
Figura 3.2.8. Respuesta obtenida en Simulink en lazo abierto con una entrada escalón de amplitud 30.
29
Capítulo 4. Diseño de Controladores
En el presente capítulo se procederá al diseño de los diferentes controladores que se han llevado a cabo, estos controladores han sido diseñados para la orientación horizontal.
4.1 Controlador PID
Como ya se ha comentado anteriormente, la planta de nuestro sistema es un segundo orden con un polo en el origen, es decir, ya tenemos un término integral en la propia f.d.t. Por eso mismo no será necesario implementar un controlador PID con todos sus términos (proporcional, integral y derivativo), podemos controlar el motor con un controlador que carezca de parte integral, así que a continuación se diseña un controlador PD.
El método elegido para obtener el diseño del controlador ha sido el método por cancelación de polos.
𝐻(𝑠) =
𝐾𝑝 ⋅ (1 + 𝑇ⅆ ⋅ 𝑠) ⋅ 0.7891 𝑠(0.70592𝑠 + 1) 1 + 𝐾𝑝 ⋅ (1 + 𝑇ⅆ ⋅ 𝑠) ⋅ 0.7891
𝑠(0.70592𝑠 + 1)
= 0.7891 ⋅ 𝐾𝑝(1 + 𝑇ⅆ ⋅ 𝑠)
𝑠(0.70592𝑠 + 1) + 0.7891 ⋅ 𝐾𝑝(1 + 𝑇ⅆ ⋅ 𝑠)
𝐸𝑐. 𝑐𝑎𝑟𝑎𝑐𝑡ⅇ𝑟í𝑠𝑡𝑖𝑐𝑎 => 𝑠 ⋅ (0.70592𝑠 + 1) + 0.7891𝐾𝑝(1 + 𝑇ⅆ𝑠) 𝑠2+ 𝑠 ⋅ (1.41659 + 1.117𝐾𝑝 ⋅ 𝑇ⅆ) + 0.7891 ⋅ 𝐾𝑝 < => 𝑠2+ 2 ⋅ 𝜉 ⋅ 𝑊𝑛 ⋅ 𝑊𝑛2
𝑡𝑠 = 3𝑠ⅇ𝑔 𝜉 = 0.591; 𝑊𝑛 = 2.256 𝑲𝒑 = 𝟒. 𝟓𝟓 ; 𝑇ⅆ = 0.45735 ;
𝐷 = 𝐾𝑝 ⋅ 𝑇ⅆ = 𝟑. 𝟒𝟓𝟖 = 𝑫 Finalmente, la estructura del controlador quedaría como:
𝑢(𝑡) = 𝑘
𝑝ⅇ(𝑡) + 𝐷 𝜕ⅇ(𝑡)
𝜕𝑡
Figura 4.1.1 Diagrama de Bloques del controlador PD
30
𝑢(𝑡) = 4.55 ⅇ(𝑡) + 3.458 𝜕ⅇ(𝑡)
𝜕𝑡 𝐶
𝑃𝐷(𝑠) = 𝑘
𝑃(1 + 𝑇
𝑑𝑠) = 𝑘
𝑃+ 𝐷𝑠
𝐶
𝑃𝐷(𝑠) = 4.55 + 3.458𝑠
(4.1.2) NOTA: Para el motor en posición vertical, el controlador se ha diseñado de manera experimental siguiendo los siguientes pasos:
o Igualamos todas las constantes a 0 y vamos aumentando la constante proporcional hasta que veamos que la respuesta es parecida a la deseada. En este punto el error en régimen en estacionario puede ser que sea diferente a 0.
o Para corregir el error en estacionario aumentamos la constante integral. Lo normal es que aumente el sobre impulso
o Ajustar la constante derivativa hasta reducir el sobre impulso y las sobre oscilaciones que puedan aparecer.
En el capítulo destinado a resultados y discusiones se muestran los experimentos y cómo se ha ido diseñando el controlador PID de manera experimental.
31 4.2 Controlador en Espacio de Estados
Las siguientes expresiones muestran el procedimiento que se ha seguido para obtener el controlador 𝑢(𝑡).
𝑥̇ = 𝐴𝑥 + 𝐵𝑢 𝑦 = 𝑐𝑥 𝑢 = 𝑟 + 𝑘𝑥 𝑥̇ = 𝐴𝑥 + 𝐵(𝑟 + 𝑥) = (𝐴 + 𝐵𝑘)𝑋 + 𝐵𝑟 Controlador => 𝑥̇ = (𝐴 + 𝐵𝑘)𝑋 + 𝐵𝑟
Modelo de referencia => 𝑥̇_𝑀𝑅 = 𝐴_𝑀𝑅 + 𝐵𝑟_𝑀𝑅 𝐺(𝑠) = 0,7841
𝑠(0,70592𝑆)= 𝑘 (Ꞇ + 1)s 𝑥̅ = (𝜎
𝜎̇) ; 𝑥̇2 = −Ꞇ1𝑥1 +𝑘Ꞇ𝑢 => 𝑥̇2 = 1Ꞇ(𝑘𝑢 − 𝑥1) ; 𝑥̇1 = 𝑥2 (𝑥̇1
𝑥̇2) = (
0 1
0 −1 Ꞇ
) ⋅ (𝑥1
𝑥2) + ( 0
𝑘 ∕ Ꞇ) + 𝑢
(4.2.1) Una vez que he representado la dinámica del sistema en forma de ecuaciones matriciales hay que representar el modelo de referencia.
𝑦𝑀𝑅
𝑟 = 𝑘𝑚𝑅𝑤𝑛2
𝑠2+ 2𝑤𝑛𝑠 + 𝑤𝑛2 = 𝑏0
(𝑠2+ 𝑎1+ 𝑎0) 𝑦̈𝑚𝑟+ 𝑎1⋅ 𝑦̇𝑚𝑟+ 𝑎0𝑦𝑚𝑟 = 𝑏0 𝑟
𝑋̇1𝑚𝑟 = 𝑋2𝑚𝑟 𝑋̇2𝑚𝑟 = −𝑎1𝑋2𝑚𝑟− 𝑎0𝑋1𝑚𝑟+ 𝑏0 𝑟
(𝑥̇1𝑚𝑟
𝑥̇2𝑚𝑟) = ( 0 1
−𝑎0 −𝑎1) ⋅ (𝑥1𝑚𝑟
𝑥2𝑚𝑟) + ( 0
𝐾𝑚𝑟) + 𝑟
(4.2.2) Donde cada matriz será:
𝐴 = (
0 1
0 −1 Ꞇ
) ; 𝐵 = ( 0
𝑘 Ꞇ⁄ ) ; 𝐴𝑀𝑅 = ( 0 1
−𝑎0 −𝑎1) ; 𝐵𝑀𝑅= ( 0 𝐾𝑚𝑟) 𝐴𝑀𝑅 = 𝐴 + 𝐵𝐾
(4.2.3) Donde K es (𝑞1, 𝑞2)
( 0 1
−𝑎0 −𝑎1) = (
0 1
0 −1 Ꞇ
) + ( 0
𝑘 Ꞇ⁄ ) (𝑞1, 𝑞2) = (
0 1
𝑘 ⋅ 𝑞1
Ꞇ 𝑘 ⋅ 𝑞2
Ꞇ − 1
Ꞇ )
(4.2.3) Resolviendo la ecuación matricial obtengo los siguientes valores
32 𝒒𝟏=−𝑎0⋅ Ꞇ
𝑘 𝒒𝟐 = (−𝑎1+1
𝑘) ⋅Ꞇ 𝑘 Falta el parámetro P que hace que se cumpla que 𝐵 = ( 0
𝑘 Ꞇ⁄ ) = 𝐵𝑀𝑅⋅ 𝑃 = ( 0
𝐾𝑚𝑟) ⋅ 𝑃 𝑷 =Ꞇ ⋅ 𝑘𝑚𝑟
𝑘
Por lo tanto, el controlador quedaría de la siguiente manera:
𝒖(𝒕) = 𝒒𝟏⋅ 𝒑𝒐𝒔𝒊𝒄𝒊𝒐𝒏 + 𝒒𝟐⋅ 𝒗𝒆𝒍𝒐𝒄𝒊𝒅𝒂𝒅 + 𝑷 ⋅ 𝒓𝒆𝒇𝒆𝒓𝒆𝒏𝒄𝒊𝒂
(4.2.4)
33 4.3 Controlador Adaptativo
En el diseño del control adaptativo hay que tener en cuenta tres pasos necesarios:
o Establecer una ley de control con parámetros variables.
o Elegir una ley de adaptación que se encargará de cómo ajustar esos parámetros.
o Analizar las propiedades de convergencia del sistema de control resultante.
A continuación, se exponen los cálculos para obtener los parámetros necesarios para la correcta adecuación del controlador 𝑢(𝑡).
𝐺(𝑠) = 𝑏𝑝 𝑠(𝑠 + 𝑎𝑝) 𝐺𝑀𝑅(𝑠) = 𝐾𝑀𝑅
𝑆2+ 𝐴𝑠 + 𝐵 A continuación, he definido la planta y el modelo de referencia.
Planta => 𝑢 = 𝑎2𝑧+𝑎1𝑦̇ + 𝑎0𝑦
Modelo referencia => 𝑟 = 𝑎𝑚2𝑦̈𝑚+ 𝑎𝑚1𝑦̇𝑚+ 𝑎𝑚0𝑦𝑚
Es necesario establecer una ley de control con parámetros variables Ley de control => 𝑧(𝑡) = 𝑦̈𝑚− 𝛽1ⅇ̇ − 𝛽0ⅇ
Ahora establezco el controlador que quedaría de la siguiente manera:
Controlador => 𝑢 = 𝑎̂2𝑧 + 𝑎̂1𝑦̇ + 𝑎̂0𝑦
Ahora queda igualar de forma matricial las anteriores ecuaciones, pero antes defino el vector de estados del error que quedaría de la siguiente manera: 𝑥⃗ = (ⅇ
ⅇ̇) (𝑥̇1
𝑥̇2) = ( 0 1
−𝛽0 −𝛽1) ⋅ (𝑥1 𝑥2) + (0
1) ⋅ (𝑧 𝑦̇ 𝑦) ⋅ ( 𝑎̂2 𝑎̂1 𝑎̂0
)
ⅇ = (1 0) (𝑥1 𝑥2)
34 (
𝑎̂2 𝑎̂1 𝑎̂0
) = (
𝛾1 0 0
0 𝛾2 0
0 0 𝛾3
) ⋅ ( 𝑧 𝑦̇
𝑦̇
) ⋅ (0 1) ⋅ (𝑃11 𝑃12 𝑃21 𝑃22) ⋅ (ⅇ
ⅇ̇)
La matriz diagonal de 3x3 está formada por unas constantes que he definido de la siguiente manera 𝛾1 = 0.1 , 𝛾2 = 10 , 𝛾3 = 10
𝑎̂2 = −𝛾1⋅ 𝑧 ⋅ (𝑃12ⅇ ⋅ 𝑃22ⅇ̇)
(4.3.1) 𝑎̂1 = −𝛾2⋅ 𝑦̇ ⋅ (𝑃12ⅇ ⋅ 𝑃22ⅇ̇)
(4.3.2) 𝑎̂0 = −𝛾3⋅ 𝑦 ⋅ (𝑃12ⅇ ⋅ 𝑃22ⅇ̇)
(4.3.3) Necesito los valores de 𝑃12 y 𝑃22, para ello aplico el teorema de Lyapunov directamente desde Matlab. 𝑃12 = 0.0313 , 𝑃22= 0.0664
Los parámetros 𝛽0 y 𝛽1los calculo considerando un polinomio con dos raíces negativas, por ejemplo (𝑝 − 4)2, de ahí obtengo que 𝛽0 = 16 y 𝛽1 = 8.
De la ecuación matricial obtengo los parámetros del controlador, estos parámetros irán variando de forma automática a medida que vaya cambiando la dinámica del sistema.
Finalmente, la ecuación que describe el controlador adaptativo quedaría de la siguiente forma:
𝒖 = 𝒂̂𝟐𝒛 + 𝒂̂𝟏⋅ 𝒗𝒆𝒍𝒐𝒄𝒊𝒅𝒂𝒅(𝒕) + 𝒂̂𝟎⋅ 𝒑𝒐𝒔𝒊𝒄𝒊ó𝒏 (𝒕)
(4.3.4)
35 4.4 Controlador Robusto
En este punto es cuando nos preguntamos cómo plantear el problema de control. Lo primero es identificar la planta que deseamos controlar. Esta viene dada por la siguiente expresión:
𝑥̅ = 𝑓(𝑥̅) + 𝑏(𝑥̅)𝑢 ′
Donde 𝑥̅ es el vector donde se recogen todas las salidas a estudiar, en el caso del motor DC las salidas serían la posición y el ángulo, la forma genérica del vector de estados sería:
𝑥̅ = [𝑥, 𝑥̇, 𝑥𝑛−1].
La salida deseada o el modelo de referencia que debe seguir el sistema viene expresado con la siguiente notación:
𝑥̅𝑑 = [𝑥𝑑, 𝑥̇𝑑, 𝑥̅𝑑𝑛−1]
El problema de control queda resuelto cuando el estado 𝑥̅ siga correctamente al estado deseado 𝑥̅𝑑. La complejidad de esto radica en que el modelo que vamos a estudiar presenta dos incertidumbres, que son; 𝑏(𝑥̅) y 𝑓(𝑥̅).
Volviendo al caso del motor:
𝜃
𝑢= 𝑘
𝑠(𝜏𝑠 + 1)
𝜃̈ =−1
𝜏 𝜃̇ +𝑘
𝜏𝑢 {𝑓(𝜃, 𝜃̇) = −1
𝜏
𝑏(𝜃, 𝜃̇) =𝑘
𝜏
Tenemos que fijar unos intervalos de nuestras incertidumbres, estos quedan definidos de la siguiente manera:
Para que el problema de seguimiento de 𝑥̅ a 𝑥̅𝑑.se pueda lograr correctamente utilizando un controlador se requiere que se cumpla la siguiente condición necesaria:
𝑥̅𝑑(0) = 𝑥̅(0)
El error de seguimiento se puede definir como la diferencia entre la salida del sistema y la salida deseada: 𝑥̃ = 𝑥 − 𝑥𝑑, siguiendo la misma notación empleada hasta el momento, el vector de errores de seguimiento se expresa como;
𝑥̅̃ = 𝑥̅ − 𝑥̅𝑑 = [𝑥̃, 𝑥̃̇, … , 𝑥̃𝑛−1]
36 A continuación, se define la superficie de deslizamiento que varía en el tiempo: 𝑆(𝑥̅, 𝑡) = 0, donde:
𝑆(𝑥̅, 𝑡) = (𝜕
𝜕𝑡+ 𝜆)𝑛−1𝑥̃ ; 𝜆 > 0
En nuestro caso, la superficie de deslizamiento quedaría de la siguiente manera:
𝑆(𝑥̅, 𝑡) = (𝜕
𝜕𝑡+ 𝜆)
2−1
⋅ 𝑥̃ = 𝜕
𝜕𝑡 𝑥̃ + 𝜆𝑥̃ = 𝑥̃̇ + 𝜆𝑥̃
Dada la condición (hacer referencia a la ecuación 𝑥̅𝑑(0) = 𝑥̅(0), mediante un numero rollo 7.1) el problema de seguir 𝑥̅ = 𝑥̅𝑑 es equivalente a permaneces en la superficie 𝑆(𝑡) para t >0, de hecho 𝑆 ≡ 0 representa una ecuación lineal diferencial que tiene como única solución, 𝑥̃ ≡ 0. Por lo tanto el problema de seguir al vector n-dimensional (en nuestro caso tiene dimensión 2) 𝑥̅𝑑 es reducido a mantener el escalar 𝑆 a un valor nulo.
Concretamente el problema de seguimiento puede ser remplazado por un problema de estabilización de primer orden en 𝑆. Un hecho necesario a tener en cuenta es, calcular el tiempo que tarda 𝑆 en hacerse 𝑆 = 0. Ese tiempo lo denominamos, tiempo de establecimiento 𝑡𝑟𝑒𝑎𝑐ℎ. El problema simplificado de primer orden de mantener el escalar s en cero ahora se puede resolver eligiendo la ley de control 𝑢, para ello:
1 2
𝜕
𝜕𝑡𝑠2 ≤ −𝜂|𝑠|
(4.4.1) La ecuación anterior establece que la mitad de la distancia al cuadrado de la superficie disminuye a lo largo de todas las trayectorias del sistema, donde 𝜂 es una constante estrictamente positiva.
Por lo tanto, restringe las trayectorias para que apunten hacia la superficie 𝑆(𝑡), como se ilustra en la gráfica (ver figura 4.1.4.2).
Resolviendo la ecuación anterior (4.1.4.1) tenemos:
𝑠𝜕𝑠
𝜕𝑡 ≤ −𝜂|𝑠|
Figura 4.1.4.2 Condición de deslizamiento
37 𝑠𝜕𝑠 ≤ −𝜂|𝑠|𝜕𝑡
∫ 𝑠𝜕𝑠 ≤ 𝑠 ∫ −𝜂 |𝑠|𝜕𝑡
𝑡𝑟 0 𝑠(𝑡𝑟𝑒𝑎𝑐ℎ)=0
s(0)
𝑠2(0) ≤ −𝜂|𝑠(0)|𝑡𝑟𝑒𝑎𝑐ℎ 𝑡𝑟𝑒𝑎𝑐ℎ ≤ |𝑠(0)|
𝜂
(4.4.3) En este punto se observa que cuando mayor sea 𝜂, menor será 𝑡𝑟𝑒𝑎𝑐ℎ.
Una vez explicado esto, procedo a diseñar la ley de control 𝑢:
𝑆 = 𝑥̃̇ + 𝜆𝑥̃
𝜕𝑠
𝜕𝑡 = 𝑥̃̈ + 𝜆𝑥̃̇ = 𝑥̈ − 𝑥̈𝑑+ 𝜆𝑥̃̇ = 𝑓 + 𝑢 − 𝑥̈𝑑 + 𝜆𝑥̃̇ = 0 𝑢̂ = −𝑓̂ + 𝑥̈𝑑− 𝜆𝑥̃̇
Tenemos que asegurar que se cumple la condición de deslizamiento 1
2
𝜕
𝜕𝑡𝑠2 ≤ −𝜂|𝑠|
Para ello utilizo la siguiente ley de control:
𝑢 = 𝑢̂ − 𝑘 ⋅ 𝑠𝑖𝑔𝑛(𝑠)
𝒖 = −𝒇̂ + 𝒙̈𝒅− 𝝀𝒙̃̇ − 𝒌 ⋅ 𝒔𝒊𝒈𝒏(𝒙̃̇ + 𝝀𝒙̃) ∀ 𝒌 ≤ 𝑭 + 𝜼 El valor de 𝑘 ha sido estimado de la siguiente manera:
1 2
𝜕
𝜕𝑡𝑠2 = 𝑠𝜕𝑠
𝜕𝑡 = 𝑠[𝑓 − 𝑓̂ − 𝑘 𝑠𝑖𝑔𝑛(𝑠)]
(𝑓 − 𝑓̂)𝑠 − 𝑘|𝑠| ≤ −𝜂|𝑠| ⇒ 𝑘 ≤ 𝐹 + 𝜂
En la siguiente ecuación, (4.1.4.3) tenemos incertidumbre en 𝑓 𝑦 𝑏, las cuales tenemos que acotar como:
𝑥̈ = 𝑓(𝑥̇, 𝑥) + 𝑏(𝑥̇, 𝑥)𝑢
(4.4.4)
|𝑓̂ − 𝑓| ≤ 𝐹(𝑥̇, 𝑥); 0 ≤ 𝑏𝑚𝑖𝑛 ≤ 𝑏 ≤ 𝑏𝑚á𝑥
Dado que la entrada de control entra multiplicativamente en la dinámica, es natural estimar la ganancia 𝑏 como la media geométrica de los limites anteriores:
𝑏̂ = (𝑏𝑚𝑖𝑛, 𝑏𝑚á𝑥)1/2 Estos límites pueden ser expresados como:
38 𝛽−1≤ 𝛽̂
𝛽≤ 𝛽
Definitivamente la ley de control que utilizaremos para resolver el problema es la siguiente:
𝒖 = 𝒃−𝟏[𝒖̂ − 𝒌 ⋅ 𝒔𝒊𝒈𝒏(s)]
(4.4.5) 𝒌 ≤ 𝜷(𝑭 + 𝜼) + (𝜷 − 𝟏)|𝒖̂|
(4.4.6)
39 4.5 Controlador Predictivo MPC
En este apartado abordaremos la tarea de minimización de la señal de control para los controladores predictivos MPC.
Consideremos el problema de minimización definido en los siguientes términos: en cada instante de muestreo 𝑘, hallar la secuencia de control 𝑢̂(𝑘|𝑘), 𝑢̂(𝑘 + 1|𝑘), … , 𝑢̂(𝑘 + 𝜆 − 1|𝑘) con las siguientes condiciones:
o Se conocen las salidas del proceso 𝑦(𝑘), … , 𝑦(𝑘 + 1 − 𝑛̂) en el instante 𝑘 y en instantes previos y los controles 𝑢(𝑘 − 1), …, 𝑢(𝑘 + 1 − 𝑚̂ ) en 𝑘 − 1 y en instantes previos.
o La secuencia de salidas predichas 𝑦̂(𝑘 + 1|𝑘), … , 𝑦̂(𝑘 + 𝜆|𝑘) se relaciona con la secuencia de control 𝑢̂(𝑘|𝑘), 𝑢̂(𝑘 + 1|𝑘), . . . , 𝑢̂(𝑘 + 𝜆 − 1|𝑘).
o Los valores de la trayectoria de referencia 𝑦𝑟(𝑘 + 1|𝑘), … , 𝑦𝑟(𝑘 + 𝜆|𝑘) se calculan independientemente teniendo en cuenta los valores de consigna en el intervalo de predicción.
Utilizando el siguiente modelo predictivo:
𝑦̂(𝑘 + 𝑗|𝑘) = ∑ 𝑎̂𝑖𝑦̂(𝑘 + 𝑗 − 𝑖|𝑘)
𝑛̂
𝑖=1
= ∑ 𝑏̂𝑖𝑢̂(𝑘 + 𝑗 − 𝑖|𝑘)
𝑚̂
𝑖=1
(4.5.1) 𝑗 = 1,2,3, … , 𝜆, Podemos escribir la siguiente ecuación:
𝑦̂(𝑘 + 𝑗|𝑘) = ∑ ⅇ̂𝑖(𝑗)𝑦(𝑘 + 𝑗 − 𝑖)
𝑛̂
𝑖=1
+ ∑ 𝑔̂𝑖(𝑗)𝑢̂(𝑘 + 1 − 𝑖) +
𝑚̂
𝑖=2
∑ 𝑔̂1(𝑗−1)𝑢̂(𝑘 + 𝑖|𝑘);
𝑗−1
𝑖=0
(4.5.2) 𝜆 = 1,2, … , 𝜆, Donde ⅇ̂𝑖(𝑗) y 𝑔̂𝑖(𝑗) son coeficientes que pueden obtenerse de los parámetros 𝑎̂𝑖 y 𝑏̂𝑖 del modelo predictivo mediante el siguiente algoritmo recursivo:
ⅇ̂𝑖(𝑗) = ⅇ̂𝑖(𝑗−1)+ ⅇ̂𝑖+1(𝑗−1); 𝑖 = 1, … , 𝑛;̂ 𝑗 = 2, … , 𝜆 𝑔̂𝑖(𝑗) = ⅇ̂𝑖(𝑗−1)𝑏̂𝑖+ 𝑔̂𝑖+1(𝑗−1); 𝑖 = 1, … , 𝑚;̂ 𝑗 = 2, … , 𝜆
(4.5.3) Con:
ⅇ̂𝑖(1) = 𝑎̂𝑖; 𝑖 = 1, … , 𝑛̂;
𝑔̂𝑖(1) = 𝑏̂𝑖; 𝑖 = 1, … , 𝑚̂;
ⅇ̂𝑛̂+1(𝑗−1) = 0; 𝑗 = 2, … , 𝜆;
𝑔̂𝑚̂ +1(𝑗−1)= 0; 𝑗 = 2, … , 𝜆;