View
4
Download
0
Category
Preview:
Citation preview
Proyecto de Grado
Presentado ante la ilustre Universidad de Los Andes como requisito parcial para
obtener el Tıtulo de Ingeniero de Sistemas
DESARROLLO E IMPLANTACION DE
TECNICAS DE CONTROL ADAPTATIVO EN
TIEMPO DISCRETO PARA UN PENDULO
SIMPLE
Por
Br. Carlos A. Ratia V.
Tutor: Prof. Pablo Lischinsky.
Abril 2009
c©2009 Universidad de Los Andes Merida, Venezuela
DESARROLLO E IMPLANTACION DE TECNICAS DE
CONTROL ADAPTATIVO EN TIEMPO DISCRETO PARA
UN PENDULO SIMPLE
Br. Carlos A. Ratia V.
Proyecto de Grado — Control y Automatizacion, 115 paginas
Resumen: Actualmente el Laboratorio de Control y Automatizacion de la Escuela
de Ingenierıa de Sistemas de la Universidad de los Andes, cuenta con un equipo que
permite realizar control basado en un DSP (Procesador Digital de Senales), el cual
permite la ejecucion a tiempo real de tecnicas de control. El objetivo de este proyecto
es disenar e implementar leyes de control a tiempo real sobre el sistema electromecanico
subactuado, conocido como el Pendubot (Pendulo Robot). Se disenaron dos tipos de
leyes de control, leyes en tiempo continuo para el control de balanceo del Pendubot
en configuraciones inestables y leyes en tiempo discreto para el control de posicion de
un pendulo simple. El pendulo simple se obtiene al modificar la estructura mecanica
del Pendubot, esta modificacion consiste en desmontar la segunda articulacion del
sistema para obtener ası, un pendulo simple controlado por la accion de un motor
de corriente continua en modo torque. Para el control de balanceo del Pendubot,
se considera la tecnica de control lineal por realimentacion del vector de estado.
Para el control de posicion del pendulo simple, se considera un controlador RST el
cual es un controlador lineal de dos grados de libertad. Por otro lado, se diseno e
implemento una ley de control adaptativa en tiempo discreto para el pendulo simple
ante variaciones en sus parametros, esta ley se fundamenta en la tecnica adataptiva de
reguladores autoajustables. Este proyecto muestra los resultados experimentales para
las estrategias de control anteriormente descritas. La implementacion de las leyes de
control a tiempo real se llevan a cabo con el sistema de desarrollo dSPACE.
Palabras clave: Control a tiempo real, Control adaptativo, Controladores RST,
Control lineal, Pendulo simple, Pendubot.
Este trabajo fue procesado en LATEX.
A Sofia Camila, mi hija.
Indice
Indice de Tablas vii
Indice de Figuras viii
Agradecimientos xi
1 Introduccion 1
1.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Planteamiento y delimitacion del problema . . . . . . . . . . . . . . . . 2
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Marco Teorico y conceptual . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.1 Control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.2 Cambio por Tabla (Gain Scheduling) . . . . . . . . . . . . . . . 7
1.6.3 Control adaptativo por modelo de referencia (MRAS ) . . . . . . 7
1.6.4 Reguladores auto-ajustables (STR) . . . . . . . . . . . . . . . . 8
1.6.5 Pendulo simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 El Pendubot y dSPACE 12
2.1 Pendubot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Descripcion del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 dSPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
iv
3 Modelado y analisis del Pendubot 22
3.1 Ecuaciones de movimiento del Pendubot . . . . . . . . . . . . . . . . . 22
3.2 Obtencion de los parametros del Pendubot . . . . . . . . . . . . . . . . 28
3.3 Analisis del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Control de balanceo 40
4.1 Diseno del sistema de control . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Implementacion del sistema de control de balanceo . . . . . . . . . . . 46
4.3 Resultados experimentales del sistema de control de balanceo . . . . . . 48
5 Tecnicas de control avanzado para un pendulo simple 50
5.1 Control RST para el pendulo simple . . . . . . . . . . . . . . . . . . . 50
5.1.1 Implementacion del controlador RST . . . . . . . . . . . . . . . 55
5.1.2 Resultados experimentales del controlador RST . . . . . . . . . 58
5.2 Control adaptativo para el pendulo simple. . . . . . . . . . . . . . . . . 62
5.2.1 Algoritmo de identificacion de parametros por mınimos cuadrados 63
5.2.2 Algoritmo de control adaptativo para reguladores autoajustables 77
5.2.3 Implementacion del sistema de control adaptativo . . . . . . . . 79
5.2.4 Resultados experimentales del sistema de control adaptativo . . 84
6 Conclusiones 89
A Ecuaciones de linealizacion 91
B Control Swing-Up 93
B.1 Diseno del control Swing-Up . . . . . . . . . . . . . . . . . . . . . . . . 93
B.2 Implementacion del control Swing-Up . . . . . . . . . . . . . . . . . . . 97
B.3 Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . . 100
C Implementacion de los algoritmos de control 102
C.1 Control de balanceo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
C.2 Control RST para el Pendulo Simple . . . . . . . . . . . . . . . . . . . 105
C.3 Algoritmo de identificacion de parametros por mınimos cuadrados
recursivo con factor de olvido variable . . . . . . . . . . . . . . . . . . . 107
C.4 Control adaptativo para el Pendulo Simple . . . . . . . . . . . . . . . . 110
Bibliografıa 114
Indice de Tablas
3.1 Parametros fısicos del Pendubot. . . . . . . . . . . . . . . . . . . . . . 29
3.2 Parametros reagrupados del Pendubot. . . . . . . . . . . . . . . . . . . 29
4.1 Caracterısticas del sistema a lazo cerrado (P.O. Abajo). . . . . . . . . . 44
4.2 Caracterısticas del sistema a lazo cerrado (P.O. Arriba). . . . . . . . . 44
5.1 Parametros estimados con el algoritmo de identificacion recursiva ante
una entrada al sistema del tipo PRBS, en la region de operacion (0, 0). 70
vii
Indice de Figuras
1.1 Diagrama de bloques de un sistema adaptativo (Astrom & Wittenmark
1989). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Diagrama de bloques de un sistema con cambio por tabla (Rodrıguez &
Lopez 1996). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Diagrama de bloques control adaptativo con modelo de referencia
(MRAS ) (Astrom & Wittenmark 1989). . . . . . . . . . . . . . . . . . 8
1.4 Diagrama de bloques de un regulador auto-ajustable (STR) (Astrom &
Wittenmark 1989). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Diagrama de fuerzas de un pendulo simple. . . . . . . . . . . . . . . . . 10
2.1 Diagrama del Pendubot. . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Entorno grafico de las herramientas del software interactivo dSPACE. . 15
2.3 Tarjeta DS1102. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Arquitectura de bloques de la tarjeta DS1102 (dSPACE GmbH 2001). . 18
3.1 Descripcion de los centros de masa del Pendubot . . . . . . . . . . . . 23
3.2 Respuesta del sistema ante una entrada del tipo sinusoidal. . . . . . . . 30
3.3 Respuesta del sistema ante una entrada del tipo escalon. . . . . . . . . 30
3.4 Pendubot en la posicion de Abajo y Arriba respectivamente. . . . . . . 34
4.1 Esquema de control para el sistema lineal (Sira-Ramırez et al. 1997). . 41
4.2 Esquema de control lineal para el sistema no lineal (Sira-Ramırez et al.
1997). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Nuevo esquema de control lineal para el sistema no lineal. . . . . . . . 45
viii
4.4 Captura de pantalla del Cockpit para la implantacion del Control de
Balanceo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.5 Resultados experimentales del control de balaceo del Pendubot, punto
de equilibrio Abajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6 Resultados experimentales del control de balaceo del Pendubot, punto
de equilibrio Arriba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1 Diagrama de bloques del sistema de control RST (Rodrıguez & Lopez
1996). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Diagrama de bloques del sistema de control RST disenado (Ogata 1996). 55
5.3 Diagramas de flujo de los algoritmos del sistema de control RST. . . . . 56
5.4 Captura de pantalla de la implementacion del Control RST a traves de
Cockpit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5 Controlador RST para el control de posicion del pendulo con T =
0.01[seg], ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. Punto de operacion (0, 0). . 59
5.6 Controlador RST para el control de posicion del pendulo con T =
0.01[seg], ζ = 1.0, ωn = 40.0 radseg
y α = 5.0. Punto de operacion (0, 0). . 59
5.7 Controlador RST para el control de posicion del pendulo con varios
cambios de referencia. Punto de operacion (0, 0). . . . . . . . . . . . . . 61
5.8 Controlador RST para el control de posicion del pendulo con T =
0.01[seg], ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. Punto de operacion (π, 0). . 61
5.9 Diagrama de bloques del sistema de control adaptativo basado en STR. 62
5.10 Captura de pantalla del Cockpit para la implementacion del algoritmo
de identificacion recursivo. . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.11 Experiencia realizada para evaluar el comportamiento del algoritmo de
identificacion ante una entrada PRBS, en el punto de operacion (0, 0). . 69
5.12 Experimento para evaluar la conducta de la identificacion bajo la
modificacion de la medida de desempeno α en el punto de operacion
(0, 0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.13 Experimento para evaluar la conducta de la identificacion bajo la
modificacion de la medida de desempeno S0 en el punto de operacion
(0, 0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.14 Ensayo para evaluar las condiciones experimentales del algoritmo de
identificacion bajo entrada U1(k). . . . . . . . . . . . . . . . . . . . . . 75
5.15 Ensayo para evaluar las condiciones experimentales del algoritmo de
identificacion bajo entrada U2(k). . . . . . . . . . . . . . . . . . . . . . 76
5.16 Diagrama de bloques control adaptativo con supervision. . . . . . . . . 79
5.17 Diagrama de flujo del sistema de control adaptativo. . . . . . . . . . . . 81
5.18 Diagrama de flujo de la fase de preidentificacion. . . . . . . . . . . . . . 82
5.19 Diagrama de flujo de la fase de identificacion del sistema a lazo abierto. 82
5.20 Captura de pantalla del Cockpit para la implantacion del control
adaptativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.21 Sistema de pesas para el pendulo simple. . . . . . . . . . . . . . . . . . 84
5.22 Experimento para evaluar el comportamiento del sistema de control
adaptativo para el control de posicion del pendulo simple. Punto de
operacion (0, 0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.23 Comportamiento del supervisor y del ındice de desempeno. . . . . . . . 88
B.1 Diagrama de bloques de la parcial linealizacion del sistema. . . . . . . . 94
B.2 Simulacion del Swing Up punto de equilibrio Abajo. . . . . . . . . . . 96
B.3 Simulacion del Swing Up punto de equilibrio Arriba. . . . . . . . . . . 96
B.4 Captura de pantalla del Cockpit para la implementacion del Control
Swing-Up. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.5 Datos Experimentales tomados del Pendubot en el ejercicio del Swing
Up, con punto de equilibrio Abajo. . . . . . . . . . . . . . . . . . . . . 101
B.6 Datos Experimentales tomados del Pendubot en el ejercicio del Swing
Up, con punto de equilibrio Arriba. . . . . . . . . . . . . . . . . . . . . 101
Agradecimientos
A mi mama como una muestra de carino y agradecimiento por todo el amor y el apoyo
brindado.
A mi abuela y abuelo por todo el apoyo brindado a traves de mis estudios, con
la promesa de siempre seguir adelante.
A mi esposa por todo el amor y compresion dado al termino de esta etapa de
mi vida.
A mi tio Rafael y mi tia Desiree como un testimonio de gratitud y eterno reconocimiento
por el apoyo que siempre me han brindado.
Al profesor Pablo Lischinsky por su disposicion, atencion y ayuda brindada
para la realizacion de este proyecto.
Y a todos aquellos que de alguna forma ayudaron y participaron en la culminacion de
este proyecto.
Mil gracias y mi eterno reconocimiento....
xi
Capıtulo 1
Introduccion
1.1 Antecedentes
Gonzalez (2002) realizo desarrollos de experiencias de modelado y control a tiempo real
de un pendulo simple, tomando como objeto de estudio el Pendubot del Laboratorio
de Control y Automatizacion de la Escuela de Ingenierıa de Sistemas. El proceso de
modelado se baso en diferentes tecnicas como Newton-Euler y el modelado por energıa
acreditado como Lagrange.
Por otra parte, se implementaron tecnicas de control continua y discreta de la
familia de controladores del tipo PID. La importancia de este trabajo fue la obtencion
de un modelo matematico que representa la dinamica interna del sistema, estimado
por las distintas tecnicas de identificacion.
La investigacion de Gonzalez (2002) nos proporciona indicadores de comparacion
importantes para el analisis y conclusion de resultados del control e identificacion del
pendulo simple, tal como se pretende hacer en el presente estudio.
La investigacion sobre el control adaptativo ha sido muy activa desde principios de
los anos 50 hasta hoy en dıa una revision historica se puede encontrar en Astrom &
Wittenmark (1989), aunque hasta la decada de los 70, con el revolucionario desarrollo
de los computadores digitales, no se producen las primeras aplicaciones convencionales.
En efecto, aunque las tecnicas de control adaptativo han sido utilizadas en una extensa
gama de aplicaciones practicas, ha sido necesario en cada caso en que se ha obtenido
1.2 Justificacion 2
un resultado correcto, la realizacion de un importante esfuerzo de diseno previo y
fuertemente dependiente del proceso (Astrom & Wittenmark 1989).
1.2 Justificacion
Este proyecto surge por la complejidad que caracteriza al sistema fısico no lineal
(Pendubot) en la hora de emplear diferentes tecnicas de control. Dicho sistema permite
construir, bajo modificaciones en su arquitectura, otro modelo fısico conocido como el
pendulo simple y a su vez permite la ejecucion de algoritmos de control a tiempo real.
Este estudio plasmara el diseno e implementacion de distintos sistemas de control
a tiempo real, el cual puede ser empleado para el entrenamiento y aprendizaje de
estudiantes e ingenieros de sistemas, en los aspectos relacionados con la utilizacion de
la computadora para el control de procesos y familiarizacion de tecnicas de control
avanzadas.
Otro uso esta enmarcado en el area de investigacion y docencia, para instruir y
desarrollar nuevos metodos de control e identificacion, que de forma sencilla se incorpore
en el sistema de control desarrollado.
1.3 Planteamiento y delimitacion del problema
El Pendubot es un mecanismo robotico planar de dos grados de libertad, caracterizado
por ser un sistema subactuado. Un sistema subactuado es aquel sistema que carece de
al menos un actuador en uno de sus grados de libertad, en otras palabras es cuando
posee un numero mayor de grados de libertad que de actuadores (Spong 1996).
La inexistencia de actuadores representa un problema muy interesante para la teorıa
de control, puesto que se hace imposible tener un control directo sobre los grados de
libertad no actuados, de modo que el control de estos se deben realizar de forma
indirecta, por medio de los restantes grados de libertad actuados (Block 1991).
La dificultad de controlar al Pendubot, consiste basicamente en mover la primera
articulacion (actuada) para provocar movimiento en la segunda articulacion (no
actuada). Por lo tanto en este proyecto se solucionara el problema de balanceo y
1.4 Objetivos 3
estabilizacion en configuraciones inestables del Pendubot permitiendo ası, la regulacion
y el seguimiento de trayectorias.
Por otro lado, se disenaran tecnicas de control avanzado para el control de posicion
de un pendulo simple bajo modificaciones en sus parametros. Al tratar de implementar
tecnicas de control clasicas que permitan cumplir con ciertas especificaciones de
diseno y/o comportamiento deseado, encontramos que estas tecnicas se basan en
el conocimiento completo del modelo del sistema (Ogata 1993), siendo el pendulo
simple un sistema que esta bajo modificaciones e incertidumbre en sus parametros
nos vemos en la necesidad de disenar e implementar tecnicas de control adaptativas
para poder realizar control en este sistema, que permitan cumplir las expectativas antes
mencionados.
1.4 Objetivos
Objetivos Generales
Disenar e implantar leyes de control continuas y discretas para el control del Pendubot
y del pendulo simple.
Objetivos Especıficos
• Estudiar el comportamiento y los componentes que conforman al Pendubot.
• Obtener y analizar un modelo matematico que describa las relaciones entre los
parametros y variables del Pendubot.
• Disenar e implementar una ley de control lineal en tiempo continuo, que permita
el control de posicion del Pendubot en regiones inestables.
• Disenar e implementar un controlador RST en tiempo discreto para el control de
posicion del pendulo simple.
• Disenar e implementar un algoritmo de estimacion de parametros para el pendulo
simple a tiempo real.
1.5 Metodologıa 4
• Disenar e implementar un control adaptativo en tiempo discreto para el control
de posicion del pendulo simple.
1.5 Metodologıa
Para aplicar una metodologıa como solucion a los problemas planteados, se describen
un conjunto de actividades que se deben llevar a cabo para el desarrollo del presente
proyecto, estas son:
• Efectuar experiencias con el Pendubot que permitan familiarizarse con la planta,
estas experiencias se basan principalmente en adquisicion de datos de la misma
y familiarizacion con el sistema computacional dSPACE.
• Disenar los distintos sistemas de control, delineados para el cumplimiento de los
distintos objetivos planteados. Esta fase tambien consta de la elaboracion del
algoritmo de control para cada sistema.
• Implementar los algoritmos de control en el sistema computacional dSPACE.
Estos algoritmos seran desarrollados en el lenguaje C y a su vez ellos permitiran
el control del sistema a tiempo real.
• Disenar e implementar la pantalla de supervision y control a tiempo real, a
traves del software interactivo Cockpit, que cumpla con el objetivo de sencillez y
simplicidad en la hora de exponer informacion del sistema.
• Revision y prueba de los algoritmos que se implantaron en las actividades
anteriores en dSPACE, lo cual incluye una revision exhaustiva de todos los
posibles casos como es el de cambios forzosos en los parametros del sistema.
Por otra parte, cabe resaltar que el sistema de ensayo va a contener una pequena
modificacion, la cual se ve afectada en el desprendimiento de la segunda articulacion,
la articulacion no actuada. Ası el Pendubot, pasa de ser un sistema de articulaciones
de dos grados de libertad planar, a una unica articulacion de un grado de libertad,
actuado por un motor de corriente continua en modo torque.
1.6 Marco Teorico y conceptual 5
1.6 Marco Teorico y conceptual
1.6.1 Control adaptativo
Definicion : “Un sistema de control adaptativo es un sistema que continua y
automaticamente mide las caracterısticas dinamicas (como la funcion de transferencia)
de la planta, las compara con las caracterısticas dinamicas deseadas y usa la
diferencia para variar parametros ajustables del sistema (generalmente caracterısticas
del controlador) o para generar una senal de accionamiento de modo que pueda
mantener el funcionamiento optimo con independencia de las variables ambientales,
alternativamente este sistema puede medir continuamente su propio funcionamiento de
acuerdo con un ındice de comportamiento dado y modificar, en caso de ser necesario,
sus propios parametros para mantener el funcionamiento optimo con independencia de
los cambios ambientales.” (Ogata 1993).
Un controlador adaptativo es un controlador con parametros ajustables y
mecanismos para ajustar esos parametros (Astrom & Wittenmark 1989), este tipo
de control es no lineal y el mismo estado del proceso puede ser separado en dos escalas
de tiempo que evolucionan a diferente velocidad. La escala lenta corresponde a los
cambios de los parametros y por consiguiente a la velocidad con la cual los parametros
del regulador son modificados, y la escala rapida corresponde a la dinamica del lazo
ordinario de realimentacion. El esquema basico de control adaptativo puede verse en
la figura 1.1, esta compuesto por un lazo principal de realimentacion negativa, en el
que actua, al igual que en los sistemas convencionales, un regulador y el otro lazo es el
lazo de ajuste de parametros (Rodrıguez & Lopez 1996). El control adaptativo incluye
las siguientes etapas:
1. Identifica las caracterısticas dinamicas de la planta. La identificacion de la planta
puede ser necesaria no solo al inicio del funcionamiento sino tambien a intervalos
regulares o continuamente, para que el control se mantenga actualizado con
respecto a los parametros. Esto supone la aplicacion de una senal de prueba
y el analisis de resultados. Las entradas normales del sistema solo sirven como
senales de prueba si cuentan con las caracterısticas adecuadas de ancho de banda
1.6 Marco Teorico y conceptual 6
Figura 1.1: Diagrama de bloques de un sistema adaptativo (Astrom & Wittenmark
1989).
y amplitud. Una identificacion adecuada de la planta sera el resultado de un
conocimiento previo y de la informacion reunida para tal efecto.
2. Toma de decisiones basada en la identificacion de la planta. Cuando la planta
esta debidamente identificada, se toma la decision de cuales y como se deben
cambiar las variables segun los resultados de la comparacion, con el objetivo de
procurar el funcionamiento optimo.
3. Accion debida a la decision tomada. De acuerdo con lo anterior, la decision
tomada provoca una accion inmediata que se traduce en cambios de senales de
control. Los cuales se puede dar de dos formas:
• Modificacion de los parametros de control para compensar las variaciones
en el funcionamiento de la planta.
• Sıntesis de la senal de control, la cual se hace a partir del ındice de
funcionamiento optimo con la funcion de transferencia de la planta y la
respuesta deseada.
Existen muchos controladores que presentan caracterısticas adecuadas de regulacion
ante cambios en los parametros y dinamica del sistema. Los mas conocidos son Cambio
por Tabla (Gain Scheduling), Control Adaptativo con Modelo de Referencia (MRAS )
y Reguladores Auto-ajustables (STR).
1.6 Marco Teorico y conceptual 7
1.6.2 Cambio por Tabla (Gain Scheduling)
Este consiste en la modificacion de los parametros del controlador a partir de una tabla
que ha sido calculada previamente para distintos puntos de funcionamiento, en funcion
de una variable auxiliar (Rodrıguez & Lopez 1996).
En la figura 1.2 se muestra el diagrama de bloques de un sistema con Cambio por
Tabla (Gain Scheduling). Como se puede apreciar, esta compuesta por dos lazos, uno
de ellos es el lazo conformado por la planta y el controlador el cual forma el lazo de
realimentacion y el otro ajustas los parametros del controlador en base a las condiciones
de operacion (Astrom & Wittenmark 1989). Este tipo de adaptacion tiene la ventaja
de que el controlador puede ser cambiado muy rapidamente, dependiendo de la rapidez
con que la variable auxiliar refleje el cambio en la dinamica del proceso.
Figura 1.2: Diagrama de bloques de un sistema con cambio por tabla (Rodrıguez &
Lopez 1996).
1.6.3 Control adaptativo por modelo de referencia (MRAS)
El control adaptativo con modelo de referencia (MRAS ), del ingles Model-Reference
Adaptative System, es originalmente propuesto para resolver el problema con
especificaciones de desempeno a traves de un modelo de referencia. En la figura 1.3
se muestra el diagrama de bloques del sistema. Este controlador consiste en dos lazos:
un lazo es el de realimentacion unitaria, el cual radica en el controlador y la planta, el
1.6 Marco Teorico y conceptual 8
segundo lazo es el bucle de ajuste de los parametros del sistema a traves del error que
hay entre la salida deseada y la salida de la planta (Astrom & Wittenmark 1989).
Figura 1.3: Diagrama de bloques control adaptativo con modelo de referencia (MRAS )
(Astrom & Wittenmark 1989).
La clave del problema del MRAS es determinar el mecanismo de ajuste que
mantenga al sistema estable y que traiga consigo un error cero. El siguiente mecanismo
de ajuste, llamado regla MIT, ha sido originalmente usado para el MRAS :
dθ
dt= −γe
(∂e
∂ θ
)(1.1)
Donde e=y-ym denota el modelo del error y θ es el parametro de control, ∂e∂ θ
es la
funcion de sensibilidad del modelo ajustable con respecto al parametro. El parametro
determina la tasa de adaptacion.
1.6.4 Reguladores auto-ajustables (STR)
Astrom & Wittenmark (1989) propusieron el esquema que se muestra en la figura 1.4
para este tipo de controlador. Este esquema esta compuesto por dos lazos de control, un
lazo de realimentacion conformado por el controlador y la planta, el segundo conforma
la ley de ajuste de los parametros del controlador y esta compuesto por un estimador
1.6 Marco Teorico y conceptual 9
de parametros recursivo y la ley de diseno de los parametros del controlador. Ademas
Astrom & Wittenmark (1989) plantearon el uso de un regulador de estructura definida
de parametros variables.
Figura 1.4: Diagrama de bloques de un regulador auto-ajustable (STR) (Astrom &
Wittenmark 1989).
Estos controladores conforman una estructura sub-optima basada en el principio de
separacion de las tareas de control e identificacion. El diseno se hace de forma que se
suponen parametros conocidos y despues estos son sustituidos por sus estimados. Este
es un tipo de controlador que aplica el principio de equivalencia cierta (Rodrıguez &
Lopez 1996).
1.6.5 Pendulo simple
Se le denomina pendulo fısico a un dispositivo constituido por un hilo inextensible y
de masa despreciable sostenido por un extremo de un punto fijo, con una masa exacta
en su extremo que oscila libremente.
En el proyecto a realizar se desmantelara la segunda articulacion del Pendubot, con
el fin de adquirir el brazo perpendicular ideal, el cual sera objeto de estudio.
1.6 Marco Teorico y conceptual 10
Figura 1.5: Diagrama de fuerzas de un pendulo simple.
Modelado del pendulo
Las ecuaciones que describen el comportamiento de un pendulo, se pueden obtener
a partir de las leyes fısicas tales como las leyes de Newton-Euler y Lagrange. El
modelado por Newton-Euler, establece que la aceleracion de un objeto es directamente
proporcional a la fuerza neta que actua sobre el e inversamente proporcional a su masa.
Es decir: ∑T = Jω (1.2)
donde J es el momento de inercia y ω la aceleracion angular. Por lo tanto, las fuerzas
que actuan en el sistema son la fuerza de gravedad g que actua sobre la masa y el par
τ aplicado por el motor al eje.
Si descomponemos la fuerza de gravedad como la suma en sus componentes
tangenciales como se observa en la figura 1.5 y a su vez son sumados al par aplicado por
el motor, obtenemos las unicas fuerzas que ayudan al movimiento de la articulacion,
por lo tanto:
Jq = −mglc sin(q) + τ (1.3)
donde q es la aceleracion angular, q posicion angular, m es la masa y lc en el centro de
1.6 Marco Teorico y conceptual 11
gravedad. El momento de inercia de la articulacion J es obtenido al aplicar el teorema
de Steiner (teoremas de ejes paralelos), resultando:
J = ml2c + I. (1.4)
donde I es el momento de inercia de la articulacion respecto a su centroide. Como
resultado obtenemos la ecuacion que describe el comportamiento del sistema como:
(ml2c + I)q +mglc sin(q) = τ (1.5)
Modelado del pendulo con friccion
La friccion entre dos superficies se define como la fuerza que se opone al movimiento
de una superficie sobre la otra (fuerza de friccion cinetica) o la fuerza que se opone al
inicio del movimiento (fuerza de friccion estatica). Se genera por las imperfecciones
especialmente microscopicas entre las superficies en contacto. En el caso del pendulo
en estudio, la friccion se presenta entre el eje del rotor y los bujes o cojinetes del
servomotor. Por lo tanto, la fuerza de friccion se representa como:
(ml2c + I)q +mglc sin(q) = τ − F (1.6)
donde F representa el modelo de friccion el sistema y se expresa como:
F = αq (1.7)
y consiste en el termino amortiguador o disipacion de energıa del sistema, sustituyendo
la ecuacion (1.7) en (1.6) tenemos:
(ml2c + I)q + αq +mglc sin(q) = τ (1.8)
Reagrupando los parametros del pendulo de la siguiente forma:
θ1 = ml2c + I (1.9)
θ2 = mlc (1.10)
sustituyendo (1.9) y (1.10) en (1.8), obtenemos la siguiente ecuacion que representa la
dinamica el pendulo:
θ1q + αq + θ2g sin(q) = τ (1.11)
Capıtulo 2
El Pendubot y dSPACE
En este capıtulo daremos una breve resena del sistema electromecanico el cual
denominamos Pendubot. Esta descripcion esta formada por la definicion del sistema
y los componentes que conforman al mismo. Para ello se dara a conocer las
especificaciones tecnicas de la tarjeta controladora DS1102, la cual esta disenada para
el desarrollo de controladores a tiempo real. Para finalizar se proporcionara una concisa
explicacion del sistema de supervision y control a tiempo real conocido como dSPACE.
2.1 Pendubot
El Pendubot se define como un sistema electromecanico conformado por dos
articulaciones rıgidas interconectadas entre sı a traves de un eje o junta de revolucion
que permite un movimiento de 360 grados entre ellas. La primera articulacion esta
acoplado directamente al eje del motor de corriente continua a traves del cual se efectua
el control, mientras que la segunda articulacion es de movimiento libre (no motorizada)
respecto de la primera. Esto hace que el Pendubot pueda considerarse como un brazo
robotico planar de dos grados de libertad subactuado.
En la figura 2.1 puede apreciarse el esquema fısico del Pendubot. Su funcionamiento
se puede considerar como un pendulo doble, en el cual, la primera articulacion es
actuada por un motor de corriente continua y la segunda articulacion como un
pendulo simple, cuyo movimiento es controlado por la accion de la primera articulacion
2.2 Descripcion del hardware 13
Figura 2.1: Diagrama del Pendubot.
(Mechatronic 1998).
2.2 Descripcion del hardware
El Pendubot radica en dos articulaciones rıgidas de aluminio de 0.635 [cm] de ancho.
La primera articulacion posee 15.24 [cm] de longitud y esta directamente acoplada al
eje del motor de corriente continua de 90 [V ]. De igual forma, este incluye una junta
de revolucion que deja acoplar la segunda articulacion, lo cual le permite como antes
lo hemos mencionado en su definicion, un libre movimiento de 360 grados entre ambas.
La segunda articulacion posee 22.86 [cm] de longitud y contiene una junta, que permite
el acoplamiento entre ambas articulaciones (Mechatronic 1998).
Del mismo modo aloja codificadores opticos de 1250 [pulsos/rev] de resolucion, uno
lo reside en la junta de las dos articulaciones (el codo del brazo) y el otro en el eje del
motor de corriente continua. El motor es gobernado a traves de un servo amplificador
por modulacion de anchos de pulsos (PWM). Este amplificador es usado en modo de
torque y ajustado para una ganancia de 1[V ] = 1.2[Amp] (Mechatronic 1998).
El dispositivo final de nuestro sistema, consta en un controlador el cual consiste en
una PC1, la cual alojarıa la tarjeta de adquisicion de datos y el sistema de desarrollo
1PC es el acronimo del ingles Personal Computer, se refiere a computador personal u ordenador
2.3 dSPACE 14
de control a tiempo real. En este proyecto no se utilizo el controlador proporcionado
originalmente con el Pendubot, sino que se hizo uso del sistema dSPACE.
2.3 dSPACE
El dSPACE se describe como una herramienta computacional que permite realizar
control a tiempo real basado en un DSP2, el cual es implantado en una tarjeta DS1102
que se inserta al bus PCI3 de una PC estandar. El dSPACE constituye un sistema
de supervision y control al contar con las herramientas de software interactivo Trace y
Cockpit.
El Cockpit es un entorno grafico que nos permite la creacion de un panel de
control del programa en ejecucion, mediante una serie de controles graficos. Estos
controles son asociados a variables del programa y pueden ser de Entrada, de Salida
o de Entrada/Salida. Los controles graficos se exponen de distintas formas como son
barras deslizantes, indicadores digitales y analogicos, botones de encendido/apagado,
indicadores luminosos, entre otros.
En la figura 2.2(a), se exhibe el entorno del Cockpit, con algunos controladores
graficos. Respecto al seguimiento de valores de variables, el Cockpit nos permite
obtener una primera aproximacion del valor de la variable en tiempo real, pero no
permite en modo alguno la visualizacion de las senales. Para desarrollar esta funcion
el fabricante de la tarjeta DS1102 proporciona el programa Trace.
Trace permite observar las variables de estado y senales resultantes del sistema
como son las senales de entrada/salida por intermedio de pantallas de tipo osciloscopio
(ver figura 2.2(b)). En este programa se eligen las variables a muestrear mediante un
explorador de variables que muestra la jerarquıa de bloques (ver figura 2.2(c)). Una
de sus caracterısticas resaltantes es que los datos muestreados se pueden guardar en
formato .mat el cual puede ser procesado por Matlabr.
personal.2DSP es el acrimino ingles de Digital Signal Processor, significa Procesador Digital de Senales.3PCI es el acronimo del ingles Peripheral Component Interconnect, se refiere al bus de Interconexion
de Componentes Perifericos.
2.3 dSPACE 15
(a) Entorno grafico del Cockpit.
(b) Visualizacion de las senales a traves de Trace.
(c) Arbol de seleccion de las variables a observarse en el Trace.
Figura 2.2: Entorno grafico de las herramientas del software interactivo dSPACE.
2.3 dSPACE 16
Tarjeta controladora DS1102
La tarjeta DS1102 como se aprecia en la figura 2.3, es una tarjeta especıficamente
disenada para el desarrollo de controladores a tiempo real en campos diversos como
robotica, actuadores electricos e hidraulicos como tambien el control de vehıculos. esta
se basa en el DSP de punto flotante Texas Instruments. TMS320C31, que constituye
su unidad principal de proceso.
Figura 2.3: Tarjeta DS1102.
Especificaciones tecnicas de la tarjeta DS1102
La tarjeta DS1102 consta fundamentalmente de los siguientes elementos (dSPACE
GmbH 2001):
• La unidad central de procesamiento de senales, la cual esta constituida por el
procesador de senal de coma flotante TMS320C31, que se encuadra dentro de los
microprocesadores VLSI4 de tercera generacion. Sus principales caracterısticas
son:
– Tiempo de ejecucion de una instruccion simple de 33.33 ns.
– Dos bloques de memoria RAM de 1K x 32-bits de acceso dual.
– Tamano de instruccion de 32-bits.
4VLSI es el acronimo del ingles Very Large Scale of integration y este significa integracion escaladamuy grande.
2.3 dSPACE 17
– Tamano del bus de datos de 32-bits.
– Tamano del bus de direccion de 16-bits.
– 8 acumuladores de 40-bits.
– Acceso de memoria directa (DMA).
– 4 interrupciones externas.
– 2 temporizadores de 32-bits.
• 2 convertidores A/D5 de 16-bits a 250 kHz (tiempo de conversion de 4 µs).
• 2 convertidores A/D de 12-bits a 800 kHz (tiempo de conversion de 1.25 µs).
• 4 convertidores D/A6 de 12-bits, con un dispositivo de calibracion de posibles
errores de offset y/o ganancias del convertidor.
• Un subsistema de Entrada/Salida digital basado en el DSP-microcontrolador
TMS320P14. Este subsistema consta fundamentalmente de:
– Un DSP de coma fija de 16-bits.
– Un puerto paralelo de Entrada/Salida de 16-bits.
– 6 circuitos PWM.
– 4 entradas de captura
– Un puerto de comunicacion en serie.
• Una memoria RAM estatica 128K x32-bits, de acceso muy rapido.
• Un puerto de comunicacion en serie.
• Un dispositivo JTAG IEEE 1149.1, para la deteccion de fallos hardware.
El esquema de la arquitectura basica de la tarjeta DS1102 se muestra en la figura
2.4:
5A/D es el acronimo ingles Analogic to Digital converter y se refiere a los convertidores analogicodigital.
6D/A es el acronimo ingles Digital to Analogic converter y se refiere a los convertidores digitalanalogico.
2.3 dSPACE 18
Figura 2.4: Arquitectura de bloques de la tarjeta DS1102 (dSPACE GmbH 2001).
Programacion de la tarjeta DS1102 en C
La tarjeta DS1102 puede ser programada, en el lenguaje natural C. El proceso de
compilacion y carga a la tarjeta de un programa, esta automatizado por el fichero tipo
batch down31, suministrado por el fabricante. La carga de un determinado ejecutable ya
compilado se realiza mediante el programa ld31, tambien suministrado por el fabricante.
Este programa permite cargar tanto el ejecutable para el procesador principal como el
del auxiliar, ası como parar o reanudar el proceso activo.
En este proyecto los codigos en C estan conformados por la siguiente estructura:
• El procedimiento main(), conforma la funcion principal de nuestro programa
y en ella se inicializan el hardware, los codificadores opticos y la funcion de
interrupcion de la tarjeta controladora DS1102.
main(){
init();
2.3 dSPACE 19
*error = NO_ERROR;
while (c_tr < 0.5)
service_cockpit();
ds1102_inc_clear_counter(1);
ds1102_inc_clear_counter(2);
ds1102_inc_write_counter(1,0.0);
ds1102_inc_write_counter(2,0.0);
start_isr_t0(DT);
while (*error == NO_ERROR)
service_cockpit();
}
– La funcion init(), es la encarga de realizar las tareas de inicializacion del
hardware.
– El procedimiento service_cockpit(), es el facultado para la deteccion
de eventos o interrupciones en el entorno grafico Cockpit, a partir de sus
controles.
– Las funciones ds1102_inc_clear_counter(1) y
ds1102_inc_clear_counter(2), limpian los contadores incrementales
de los codificadores opticos (sensores de posicion).
– Los procedimientos ds1102_inc_write_counter(1,0.0) y
ds1102_inc_write_counter(1,0.0), inicializan los contadores
incrementales de los decodificadores opticos 1 y 2 en 0.0 (Estado de
Reposo) respectivamente.
– La funcion start_isr_t0(DT), inicializa el temporizador denominado
timer0, para que genere interrupciones cada DT [seg] (Tiempo de
muestreo). Implıcitamente la rutina de servicio de esta interrupcion se llama
void isr_t0().
• void isr_t0(), es la funcion de servicio de la interrupcion, en ella se enumeran
las instrucciones que se ejecutaran en el DSP para cada periodo de muestreo.
2.3 dSPACE 20
void isr_t0() {
begin_isr_t0(*error);
count0 = count_timer(TMR0);
service_trace();
service_cockpit();
LecturaDatos();
CalculoVelocidad();
Control();
ds1102_da(1,u/k);
exec_time += DT; //Actualizacion del tiempo
end_isr_t0();
}
– La funcion service_trace(), es la encargada de habilitar el sensado de las
variables para su posterior visualizacion.
– void LecturaDatos(), es la funcion facultada para obtener los valores de
las posiciones reales de las articulaciones del Pendubot.
void LecturaDatos(){
q1_a = q1; //Almacena la posicion anterior de q1
q2_a = q2; //Almacena la posicion anterior de q2
//Lectura de Datos
q1 = kq_cm*ds1102_inc(1);
q2 = kq_cm*ds1102_inc(2);
q1g= (180.0/pi)*q1; //Convierte de rad a grados
q2g= (180.0/pi)*q2; //Convierte de rad a grados
}
Los procedimientos ds1102_inc(1) y ds1102_inc(2), permiten el acceso a
los valores para los angulos generados por las interfaces de los codificadores
incrementales. La salida esta dada en un rango de [−1 , 1], que corresponden
2.3 dSPACE 21
a la interpretacion del valor del contador como un entero que varıa en un
rango de [−223 , 223 − 1] y su correspondiente escalado, ya que este consta
de 24 bits. La conversion de la salida en angulo [rad] viene dada por:
Posicion[rad] = 223 2π
4× {Resolucion del codificador}{Valor Contador}
– void CalculoVelocidad(), funcion encargada de calcular la velocidad de
las articulaciones de la forma siguiente:
V (k) =V (k − 2) + V (k − 1) + V (k)
3
V (k) =P (k − 1)− P (k)
DT
Donde P es la posicion de la articulacion. La velocidad es resultado directo
del promedio del instante actual con instantes anteriores.
void CalculoVelocidad(){
//Calculo de la velocidad de q1
qp1_2a = qp1_a;
qp1_a = qp1;
qp1 = (qp1_2a + qp1_a + (q1-q1_a)/DT)/3.0;
//Calculo de la velocidad de q2
qp2_2a = qp2_a;
qp2_a = qp2;
qp2 = (qp2_2a + qp2_a + (q2-q2_a)/DT)/3.0;
}
– void Control() procedimiento comisionado para calcular la senal de
control (u).
– La funcion ds1102_da(1,u/k), es la encargada de enviar la salida de u/k
al convertidor D/A numero 1. La constante k permite convertir la senal de
control en un rango de −1 6 u[volts] 6 1, y esta definida como:
k = (10)(1.2)(0.4006)
Capıtulo 3
Modelado y analisis del Pendubot
En este capıtulo nos proponemos a descifrar las ecuaciones de movimiento que rigen
el comportamiento dinamico del Pendubot. Este modelo se obtendra por medio
del metodo fısico conocido como la dinamica de Lagrange. Una vez obtenido el
modelo matematico que expresa las relaciones ente las variables de la planta y sus
parametros, procederemos a la obtencion de las magnitudes fısicas de sus caracterısticas
vıa medicion tanto directa como indirecta, para finalizar con un estudio y analisis del
sistema en tiempo continuo.
3.1 Ecuaciones de movimiento del Pendubot
El modelo dinamico que rige el comportamiento del Pendubot se obtuvo a partir de las
leyes fısicas conocidas como las leyes de la mecanica lagrangiana. Las ecuaciones que
describen la dinamica del sistema son:
d
dt
(∂L
∂q
)− ∂L
∂q= τ (i = 1 . . . n) (3.1)
donde q =[q1 . . . qn
]Tes el conjunto de coordenadas generalizadas para el sistema
y L es el lagrangiano del sistema. A las ecuaciones (3.1) se le conoce como ecuaciones
de Lagrange del movimiento de un sistema conservativo.
El lagrangiano de un sistema esta definido como la diferencia de la energıa cinetica
T y la energıa potencial U , de la siguiente forma:
3.1 Ecuaciones de movimiento del Pendubot 23
Figura 3.1: Descripcion de los centros de masa del Pendubot
L (q, q) = T (q, q)− U (q) (3.2)
Para los sistemas no conservativos, el uso de la funcion de disipacion de Rayleigh
D(q, q), transforma las ecuaciones de Lagrange en:
d
dt
(∂L
∂q
)− ∂L
∂q+∂D
∂q= τ (i = 1 . . . n) (3.3)
permitiendo ası describir las ecuaciones de movimiento de un sistema no conservativo.
Inicialmente encontraremos la energıa cinetica total del sistema, esta es obtenida
definiendo las posiciones de los centros de masa para cada articulacion. Conocemos
que la energıa cinetica de un solido rıgido en rotacion es calculada como la suma
de la energıa cinetica de traslacion1 y la energıa cinetica de rotacion2. La expresion
matematica para la energıa cinetica de un cuerpo solido en rotacion es de la forma:
T =1
2mvtv +
1
2IwTw (3.4)
1La energıa cinetica de traslacion, es la asociada al desplazamiento del centro de masa de un cuerpoa traves del espacio.
2La energıa cinetica de rotacion, es la asociada al movimiento de rotacion de un cuerpo con ciertavelocidad angular.
3.1 Ecuaciones de movimiento del Pendubot 24
La figura 3.1, exhibe el diagrama cartesiano de los centros de masa del Pendubot,
de el obtenemos la energıa cinetica de traslacion y rotacion asociado a los centros de
masas de las articulaciones, como se expresa de la siguiente forma:
T =1
2m1(x
2lc1
+ y2lc1) +
1
2m2(x
2lc2 + y2
lc2) +1
2I1q
21 +
1
2I2 (q1 + q2)
2 (3.5)
tal que m1 y m2 son la masa total de la primera y segunda articulaciones
respectivamente, lc1 y lc2 especifican las distancias de los centros de masas para cada
enlace, I1 y I2 definen los momentos de inercias de las articulaciones respecto a su
centro de masas, l1 precisa la longitud de la primera articulacion y g es la aceleracion
de la gravedad. De la figura 3.1 obtenemos las siguientes relaciones para la primera
articulacion: {xlc1 = lc1 sin (q1)
ylc1 = lc1 cos (q1)(3.6)
derivando (3.6) con respecto al tiempo:{xlc1 = lc1 cos (q1) q1
ylc1 = −lc1 sin (q1) q1(3.7)
de donde:
x2lc1 + y2
lc1 = l2c1q21 (3.8)
Las relaciones entre los centros de gravedad y el angulo de posicion de la segunda
articulacion estan expresadas como:{xlc2 = l1 sin (q1) + lc2 sin (q1 + q2)
ylc2 = l1 cos (q1) + lc2 cos (q1 + q2)(3.9)
derivando (3.9) con respecto al tiempo:{xlc2 = l1 cos (q1) q1 + lc2 cos (q1 + q2) (q1 + q2)
ylc2 = −l1 sin (q1) q1 − lc2 sin (q1 + q2) (q1 + q2)(3.10)
de donde:
x2lc2 + y2
lc2 =(l21 + lc22 + 2l1lc2 cos (q2)
)q21 + lc22q
22 + 2
(lc22 + l1lc2 cos (q2)
)q1q2 (3.11)
3.1 Ecuaciones de movimiento del Pendubot 25
Sustituyendo (3.8) y (3.11) en (3.5), se obtiene la energıa cinetica total de la planta:
T =1
2
(m1l
2c1 +m2
(l21 + lc22 + 2l1lc2 cos (q2)
)+ I1
)q21 +
1
2
(m2lc
22 + I2
)q22 + . . .
. . .+(m2lc
22 +m2l1lc2 cos (q2) + I2
)q1q2 (3.12)
La energıa potencial de la planta, la cual es asociada a los centros de masas de
ambas articulaciones (ver figura 3.1), en este caso se expresa como:
U = m1g (lc1 − lc1 cos (q1)) +m2g ((l1 + lc2)− l1 cos (q1)− lc2 cos (q1 + q2)) (3.13)
simplificando (3.13) se obtiene:
U = − (m1lc1g +m2l1g) cos (q1)− (m2lc2g) cos (q1 + q2) + ψ (3.14)
donde
ψ = m1glc1 +m2g(l1 + lc2) (3.15)
Calculando el Lagrangiano de (3.2), obtenemos lo siguiente:
L =1
2
(m1l
2c1 +m2
(l21 + lc22 + 2l1lc2 cos (q2)
)+ I1
)q21 +
1
2
(m2lc
22 + I2
)q22 + . . .
. . .+(m2lc
22 +m2l1lc2 cos (q2) + I2
)q1q2 + (m1lc1g +m2l1g) cos (q1) + . . .
. . .+ (m2lc2g) cos (q1 + q2)− ψ (3.16)
Para la obtencion del modelo matematico del Pendubot, debemos emplear las
siguientes operaciones matematicas:
d
dt
[δL
δq1
]−[δL
δq1
]+
[δD
δq1
]=τ (3.17)
d
dt
[δL
δq2
]−[δL
δq2
]+
[δD
δq2
]=0 (3.18)
donde la funcion de Rayleigh esta definida como:
D(q1, q2) =1
2α1q
21 +
1
2α2q
22 (3.19)
D(q1, q2) esta asociada a la friccion viscosa producida en el eje del rotor con los
cojinetes del servomotor y la junta de revolucion que permite la union de ambas
articulaciones.
3.1 Ecuaciones de movimiento del Pendubot 26
La representacion matricial del conjunto de ecuaciones de movimiento de la planta
se pueden expresar como:
H (q) q + C (q, q) q + g(q) + ϕ(q) = u (3.20)
donde H (q) ∈ R2×2 es la matriz de carga inercial, C (q, q) ∈ R2×2 es la matriz de fuerza
centrıpeta o de Coriolis y g (q) ∈ R2×1 es el vector gravitacional. Las matrices H (q),
C (q, q), g(q) y ϕ(q) tiene la siguiente forma:
H (q) =
[d11 d12
d21 d22
]→
d11 = m1l
2c1 +m2
(l21 + l2c2 + 2l1lc2 cos(q2)
)+ I1 + I2
d12 = d21 = m2
(l2c2 + l1lc2 cos(q2)
)+ I2
d22 = m2l2c2 + I2
(3.21)
C (q, q) =
[−(m2l1lc2 sin q2)q2 −(m2l1lc2 sin q2) (q1 + q2)
(m2l1lc2 sin q2)q2 0
](3.22)
g (q) =
[(m1lc1 +m2l1) g sin q1 +m2lc2q sin (q1 + q2)
m2glc2 sin (q1 + q2)
](3.23)
ϕ (q) =
α1q1
α2q2
(3.24)
Ahora para simplificar y facilitar las representaciones matriciales del conjunto de
ecuaciones de movimiento, reagruparemos los parametros de nuestro modelo de la
siguiente forma:
θ1 =m1l2c +m2l
21 + I1
θ2 =m2l2c2 + I2
θ3 =m2l1lc2
θ4 =m1lc1 +m2l1
θ5 =m2lc2
θ6 =α1
θ7 =α2
(3.25)
3.1 Ecuaciones de movimiento del Pendubot 27
Sustituyendo los parametros reagrupados en (3.25) en las matrices (3.21), (3.22),
(3.23) y (3.24), obtenemos las siguiente actualizacion de las mismas:
H (q) =
[θ1 + θ2 + 2θ3 cos q2 θ2 + θ3 cos q2
θ2 + θ3 cos q2 θ2
](3.26)
C (q, q) =
[−θ3 sin q2q2 −θ3 sin q2 (q1 + q2)
θ3 sin q2q1 0
](3.27)
g (q) =
[θ4g sin q1 + θ5g sin (q1 + q2)
θ5g sin (q1 + q2)
](3.28)
ϕ (q) =
θ6q1
θ7q2
(3.29)
Sustituyendo las matrices reflejadas en (3.26), (3.27), (3.28) y (3.29), en la ecuacion
(3.20), obtenemos un modelo equivalente de nuestro sistema:
[θ1 + θ2 + 2θ3 cos q2 θ2 + θ3 cos q2
θ2 + θ3 cos q2 θ2
][q1
q2
]+ . . .
. . .+
[−θ3 sin q2q2 −θ3 sin q2 (q1 + q2)
θ3 sin q2q1 0
][q1
q2
]+
[θ6q1
θ7q2
]+ . . .
. . .+
[θ4g sin q1 + θ5g sin (q1 + q2)
θ5g sin (q1 + q2)
]=
[τ
0
](3.30)
Las ecuaciones que representa el movimiento del sistema se pueden escribir de la
siguiente forma:
(θ1 + θ2 + 2 θ3 cos (q2)) q1 + (θ2 + θ3 cos (q2)) q2 − θ3 sin (q2) q1q2 − . . .
. . .− θ3 sin (q2) (q1 + q2) q2 + θ4g sin (q1) + θ5g sin (q1 + q2) + θ6q1 =τ (3.31)
(θ2 + θ3 cos (q2)) q1 + θ2q2 + θ3 sin (q2) (q1)2 + θ5g sin (q1 + q2) + θ7q2 =0 (3.32)
3.2 Obtencion de los parametros del Pendubot 28
3.2 Obtencion de los parametros del Pendubot
Para investigar los parametros fısicos del Pendubot, se desmontaron ambas
articulaciones, las cuales se pesaron en una balanza electronica, obteniendo ası, una
medida de la masa para cada una ellas (m1 y m2).
Para hallar la longitud del centro de masa con respecto a su punto de apoyo (lc1
y lc2), se procedio a determinar el punto en el cual los ejes de las articulaciones
permanecıan en equilibrio al ser colocados en posicion horizontal sobre un base
rectangular muy fina. Esta idea fue extraıda de la tesis presentada por Gonzalez
(2002).
Para la obtencion de los momentos de inercia (I1 y I2), se hizo uso de la siguiente
formula:
I =m
12
(l2c + a2
)(3.33)
la cual representa el momento de inercia de un prisma de masa uniforme, donde lc
representa la longitud de la articulacion y a el ancho de la misma.
Como se puede apreciar, los parametros fısicos que rigen el comportamiento
dinamico del Pendubot se obtuvieron de forma experimental, consiguiendo su valor
por vıa de la medida directa3 e indirecta4. En la tabla 3.1, se presentan las magnitudes
fısicas de los parametros del Pendubot.
Sustituyendo los valores de la tabla 3.1, obtenemos los valores de los parametros
reagrupados en la ecuacion (3.25), presentados en la tabla 3.2.
Lo valores de θ6 y θ7 que corresponden a los coeficiente de la friccion viscosa,
fueron derivados de manera manual por ensayo y error a traves de la herramienta
computacional Matlabr. Este procedimiento de ajuste se baso en datos reales tomados
del sistema como resultado de someterlo a distintas senales de control a lazo abierto
en su estado inicial de reposo.Las senales de control que generaron dichas experiencias,
fueron del tipo escalon modulado en amplitud (τ = DA) y tipo sinusoidal modulada
en frecuencia (τ = 0.5 sin((2pif
)t)).
Una vez obtenidos los datos del sistema real fueron procesados en la herramienta
3La medida es directa, cuando disponemos de un instrumento de medida que la obtiene.4La medida es indirecta, cuando se obtiene mediante calculos a partir de las otras mediciones
directas.
3.2 Obtencion de los parametros del Pendubot 29
Parametros Fısicos Valor
m1 [Kg] 0,5400
m2 [Kg] 0,2590
l1 [m] 0,1524
l2 [m] 0,2545
lc1 [m] 0,1070
lc2 [m] 0,1355
I1 [N.m] 0,002591
I2 [N.m] 0,001490
Tabla 3.1: Parametros fısicos del Pendubot.
Parametros Fısicos Valor
θ1 [Nms2] 0,0148
θ2 [Nms2] 0,0062
θ3 [Nms2] 0,0053
θ4 [Ns2] 0,0973
θ5 [Ns2] 0,0351
θ6 [Nmsrad
] 0,0090
θ7 [Nmsrad
] 0,0030
Tabla 3.2: Parametros reagrupados del Pendubot.
computacional Matlabr, la cual de forma grafica permitio elegir el valor para θ6 y θ7,
que tuviera mayor ajuste del modelo no lineal simulado con la salida real obtenida.
En la figura 3.2, se puede apreciar como se ajusta la salida del sistema real
a la simulada, ante una senal de control a lazo abierto del tipo sinusoidal τ =
0.5 sin((2.0pi3.0
)t)[N.m].
Igualmente, se aprecia lo equivalente en la figura 3.2, pero en esta la senal de control
a lazo abierto es de tipo escalon de amplitud τ = 0, 6[N.m].
Expuesto lo anterior se puede concluir que con el modelo y los parametros
conseguidos, logramos alcanzar un buen ajuste al sistema real validando de esta forma
el modelo.
3.2 Obtencion de los parametros del Pendubot 30
Figura 3.2: Respuesta del sistema ante una entrada del tipo sinusoidal.
Figura 3.3: Respuesta del sistema ante una entrada del tipo escalon.
3.3 Analisis del modelo 31
3.3 Analisis del modelo
Este analisis consiste en la representacion en variables de estado, el cual se basa en
representar en n ecuaciones diferenciales de primer orden a nuestro sistema (3.30).
Posteriormente se considerara una linealizacion de nuestro sistema, ya que el modelo
obtenido en el capıtulo anterior en la pagina 27, es un modelo no lineal de cuarto orden
lo cual nos permitira estudiar algunas caracterısticas propias del sistema como puntos
de operacion, estabilidad, controlabilidad y observabilidad.
Representacion en variables de estado
El estado de un sistema se puede definir como el conjunto mas pequeno de variables
llamadas variables de estado, tal que el conocimiento de dichas variables junto al
conocimiento de sus entradas determinan el comportamiento por completo del sistema
(Ogata 1996). Si proponemos el siguiente cambio de variable:
x =[x1 x2 x3 x4
]Tu = τ
(3.34)
donde:
x1 = q1
x2 = q1
x3 = q2
x4 = q2 (3.35)
derivando con respecto al tiempo a (3.35) obtenemos:
x1 = q1
x2 = q1
x3 = q2
x4 = q2 (3.36)
modificando con el cambio de variable propuesto en (3.36) a nuestro sistema expresado
en (3.30), obtenemos lo siguiente:
3.3 Analisis del modelo 32
[θ1 + θ2 + 2θ3 cos(x3) θ2 + θ3 cos(x3)
θ2 + θ3 cos(x3) θ2
][x2
x4
]+
+
[−θ3 sin(x3)x4 −θ3 sin(x3) (x2 + x4)
θ3 sin(x3)x2 0
][x2
x4
]+
+
[θ6x2
θ7x4
]+
[θ4g sin(x1) + θ5g sin (x1 + x3)
θ5g sin (x1 + x3)
]=
[u
0
](3.37)
Interpretando la ecuacion (3.37) en ecuaciones diferenciales de primer orden,
obtenemos nuestra representacion de estado:
x1 = f1(x, u) = x2 (3.38)
x2 = f2(x, u) = −θ2u− θ2θ6x2 − θ2θ4g sin (x1)− θ2θ5g sin (x1 + x3)
−θ2θ1 + θ23 (cos (x3))
2 − . . .
. . .− θ2θ3 sin (x3)x4x2 + θ2θ3 sin (x3) (x2 + x4)x4
−θ2θ1 + θ23 (cos (x3))
2 + . . .
. . .+(θ2 + θ3 cos (x3)) (−θ7x4 − θ5g sin (x1 + x3)− θ3 sin (x3)x
22)
−θ2θ1 + θ23 (cos (x3))
2 (3.39)
x3 = f3(x, u) = x4 (3.40)
x4 = f4(x, u) =(θ2 + θ3 cos (x3)) (u− θ6x2 − θ4g sin (x1)− θ5g sin (x1 + x3))
−θ2θ1 + θ23 (cos (x3))
2
. . .+(θ2 + θ3 cos (x3)) (θ3 sin (x3)x4x2 + θ3 sin (x3) (x2 + x4)x4)
−θ2θ1 + θ23 (cos (x3))
2 − . . .
. . .− (θ1 + θ2 + 2 θ3 cos (x3)) (−θ7x4 − θ5g sin (x1 + x3)− θ3 sin (x3)x22)
−θ2θ1 + θ23 (cos (x3))
2 (3.41)
3.3 Analisis del modelo 33
Puntos de equilibrio
Los puntos de equilibrio se obtienen al hacer fk(x, u) = 0 con k = 1, 2, 3, 4. De las
ecuaciones (3.38) y (3.40), obtenemos que x2 = 0 y x4 = 0, sustituyendo estos valores
en la ecuacion (3.37) obtenemos lo siguiente:C(x) = 0
ϕ(x) = 0(3.42)
sabemos que:
H(x)
[x2
x4
]+ C(x)
[x2
x4
]+ ϕ(x) + g(x) =
[u
0
](3.43)
[x2
x4
]= H−1(x)
[−C(x)
[x2
x4
]− ϕ(x)− g(x) +
[u
0
]](3.44)
H−1(x)
[−C(x)
[x2
x4
]− ϕ(x)− g(x) +
[u
0
]]= 0 (3.45)
H−1(x)
[−g(x) +
[τ
0
]]= 0 (3.46)
H−1(x)g(x) = H−1(x)
[u
0
](3.47)
g(x) =
[u
0
](3.48)
De (3.48), obtenemos que:[θ4g sin(x1) + θ5g sin (x1 + x3)
θ5g sin (x1 + x3)
]=
[u
0
]→ θ5g sin (x1 + x3) = 0 (3.49)
lo cual se cumple cuando x1 + x3 = kπ con k = 0, 1 . . . , por lo tanto los puntos de
operacion en coordenadas generalizadas son:
X1 +X3 = kπ → k = 0, 1, 2 . . .
X2 = 0
X4 = 0
uop = θ4g sin(X1)
(3.50)
3.3 Analisis del modelo 34
En este proyecto nos concentraremos en dos puntos de operacion los cuales
definiremos como:
• Abajo a la region de operacion con coordenadas (X1 = 0, X2 = 0, X3 = π,
X4 = 0, uop = 0).
• Arriba a la region de operacion con coordenadas (X1 = π, X2 = 0, X3 = 0,
X4 = 0, uop = 0).
notemos que cada punto especificado cumple con la condicion de linealizacion expresada
en la ecuacion (3.50). En la figura 3.4, se observa al Pendubot en las posiciones antes
descritas.
Figura 3.4: Pendubot en la posicion de Abajo y Arriba respectivamente.
Linealizacion del modelo
El modelo obtenido del Pendubot se caracteriza por ser un modelo no lineal de cuarto
orden. Para la obtencion de un modelo lineal haremos uso de la tecnica conocida como
linealizacion mediante expansiones en serie de Taylor.
Escribiendo a nuestro modelo en expansiones en serie de Taylor de la forma:
xδ = x0δ +
∫ t
t0
[∂f
δx
∣∣∣∣(X,uop)
xδ +∂f
δu
∣∣∣∣(X,uop)
uδ
]→
xδ = x−X
uδ = u− uop(3.51)
3.3 Analisis del modelo 35
donde xδ =[x1δ x2δ x3δ x4δ
]T. Si definimos como:
A =∂f
∂x
∣∣∣∣(X,uop)
=
∂f1∂x1
∂f1∂x2
∂f1∂x3
∂f1∂x4
∂f2∂x1
∂f2∂x2
∂f2∂x3
∂f2∂x4
∂f3∂x1
∂f3∂x2
∂f3∂x3
∂f3∂x4
∂f4∂x1
∂f4∂x2
∂f4∂x3
∂f4∂x4
∣∣∣∣∣∣∣∣∣∣∣(X,uop)
(3.52)
B =∂f
∂u
∣∣∣∣(X,uop)
=
∂f1∂u
∂f2∂u
∂f3∂u
∂f4∂u
∣∣∣∣∣∣∣∣∣∣∣(X,uop)
(3.53)
la ecuacion en (3.51) se reescribe entonces:
xδ = x0δ +
∫ t
t0
[Axδ +Buδ]dσ (3.54)
derivando la ecuacion (3.54), tenemos que el sistema lineal esta descrito por:
xδ = Axδ +Buδ (3.55)
y = Cxδ (3.56)
Hallando las matrices A y B, obtenemos lo siguiente:
A =
0 1 0 0
f21 f22 f23 f24
0 0 0 1
f41 f42 f43 f44
(3.57)
B =
0
f2u
0
f4u
(3.58)
C =
[1 0 0 0
0 0 1 0
](3.59)
donde fij = ∂fi
∂xjcon i = 2, 4 y j = 1, 2, 3, 4. Las expresiones matematicas para las fij
y fiu se encuentran expresadas en el Apendice A.
3.3 Analisis del modelo 36
Estabilidad
Para estudiar la estabilidad local de nuestro sistema lineal, tenemos que tener en cuenta
que un sistema es estable si su salida es acotada para una entrada acotada. Por lo que,
para la estabilidad BIBO (Bounded-Input/Bounded-Output), las raıces de la ecuacion
caracterıstica, o los polos de la funcion de transferencia, no pueden estar localizados
en el semiplano derecho s.
Sustituyendo los parametros fısicos del pendubot expresados en la tabla 3.2, en la
linealizacion obtenida en la ecuacion (3.54), obtenemos las representaciones de nuestro
sistema para cada uno de los puntos de operacion que nos conciernen.
• Punto de operacion Abajo:
La linealizacion de la planta en la region de operacion, esta representado por el
sistema lineal siguiente:
x1δ
x2δ
x3δ
x4δ
=
0 1 0 0
- 64.50 - 0.88 28.85 0.04
0 0 0 1
64.33 0.13 50.93 - 0.49
x1δ
x2δ
x3δ
x4δ
+
0
97.96
0
- 14.07
uδ(3.60)
Polinomio caracterıstico:
P (s) = s4 + 1.368s3 + 14s2 − 19.89s− 5141 (3.61)
Los polos del sistema linelalizado estan definidos como las raıces del polinomio
caracterıstico, los cuales estan dados por:
s1 = 7.8396
s2 = - 0.4433 + 8.8665i
s3 = - 0.4433 - 8.8665i
s4 = - 8.3211
(3.62)
3.3 Analisis del modelo 37
• Punto de operacion Arriba :
La linealizacion de la planta en la region de operacion, esta representado por el
sistema lineal siguiente:
x1δ
x2δ
x3δ
x4δ
=
0 1 0 0
64.51 - 0.88 - 28.85 0.55
0 0 0 1
- 64.68 1.64 108.63 - 1.49
x1δ
x2δ
x3δ
x4δ
+
0
97.96
0
- 181.84
uδ(3.63)
Polinomio caracterıstico:
P(s) = s4 + 2.375s3 − 172.7s2 − 109.6s+ 5141 (3.64)
Los polos del sistema linealizado son:
s1 = - 12.7618
s2 = - 6.2690
s3 = 10.5850
s4 = 6.0711
(3.65)
De lo expuesto anteriormente se observa, que el sistema se comporta de manera
inestable para los puntos de operacion designados como Abajo y Arriba, ya que existe
al menos un si > 0, lo que significa que existe un polo ubicado en la parte derecha del
semiplano s.
Controlabilidad
Se dice que un sistema lineal es controlable o completamente controlable si la matriz
de controlabilidad definida por S =[B AB A2B . . . An−1B
]n×n
, tiene rango n.
Especificando las matrices de controlabilidad para cada uno de los puntos de
operacion antes mencionados (Abajo y Arriba), obtenemos lo siguiente:
3.3 Analisis del modelo 38
• Punto de operacion Abajo:
La matriz de controlabilidad esta dada por:
S =
0 97.956 −86.953 −6647.3
97.956 −86.953 −6647.3 12260
0 −14.068 19.245 5565.1
−14.068 19.245 5565.1 −8162.5
(3.66)
det(S) = 2.0462× 1011 6= 0 (3.67)
El sistema es completamente controlable para la region de operacion, ya que
el det(S) 6= 0, en otras palabras, la matriz de controlabilidad S posee rango
completo.
• Punto de operacion Arriba :
La matriz de controlabilidad esta definida como:
S =
0 97.956 −185.56 11956
97.956 −185.56 11956 −49727
0 −181.84 431.83 −27038
−181.84 431.83 −27038 1.1886x105
(3.68)
det(S) = 2.0261× 1011 6= 0 (3.69)
El sistema es completamente controlable para el punto de operacion, ya que la
matriz S es de rango completo (det(S) 6= 0).
Observabilidad
El sistema lineal es observable o completamente observable sı y solo sı la matriz
de observabilidad V =[C CA CA2 . . . CAn−1
]2n×n
, tiene rango n, o tiene n
vectores columnas linealmente independientes.
3.3 Analisis del modelo 39
Especificando las matrices de observabilidad para cada una de las regiones de
operacion, se obtiene:
• Punto de operacion Abajo:
La matriz de observabilidad esta dada por:
V =
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
−64.51 −0.88 28.85 0.04
64.33 0.13 50.93 −0.49
59.59 −63.73 −23.29 28.79
−39.46 64.16 −21.119 51.17
(3.70)
Para hallar el rango de la matriz V, se uso la funcion rank(V) del paquete
computacional Matlabr. Se obtuvo el siguiente resultado R [V ] = 4, lo que
implica que la matriz de observabilidad es de rango n, el cual es el orden de la
planta, por lo tanto, el sistema es completamente observable en esta region de
operacion.
• Punto de operacion Arriba :
La matriz de observabilidad esta dada por:
V =
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
64.51 −0.88 −28.85 0.55
−64.68 1.64 108.63 −1.49
−92.16 66.18 84.70 −30.15
202.15 −68.57 −09.41 111.75
(3.71)
Aplicando el procedimiento anterior, se llego a la misma conclusion en donde el
sistema linealizado en el punto de operacion es completamente observable.
Capıtulo 4
Control de balanceo
En el capıtulo anterior se presento un analisis conciso del sistema a controlar, para ello
se definieron dos regiones de operacion referidas como Abajo y Arriba. El resultado
del mismo expresa que el sistema es inestable para ambas regiones de operacion pero
controlable para las mismas, por lo tanto, se puede determinar la existencia de una
solucion completa para el problema de diseno de un sistema de control.
En este capıtulo se dara solucion al problema de conservar las articulaciones del
Pendubot en las posiciones de equilibrio definidas anteriormente, para ello consideramos
el diseno del sistema de control lineal por realimentacion del vector de estado. El
objetivo del diseno, es encontrar la matriz de realimentacion K, tal que lo valores
caracterısticos del sistema1 en lazo cerrado sean asignados de forma optima y estable.
Por lo tanto, la ley de control a disenar tendra como objetivo el control de posicion del
Pendubot, admitiendo seguimiento de trayectorias.
4.1 Diseno del sistema de control
La tecnica de diseno de sistemas de control por realimentacion del vector de estado,
se basa en intuir que los valores de las perturbaciones de estado se describen mediante
un sistema lineal derivado a partir del sistema no lineal, por medio de linealizacion
alrededor de un punto de operacion. Conocemos que esta sustitucion es valida
1Los valores caracterısticos del sistemas tambien son conocidos como Polos del sistema
4.1 Diseno del sistema de control 41
solo cuando las perturbaciones del estado (xδ(t)) son suficientemente pequenas. La
estrategia de control es disenar una ley de control lineal para el sistema no lineal, la
cual estabilice a cero las variables perturbadas xδ(t) (Sira-Ramırez et al. 1997).
La senal de control lineal es de la forma:
uδ(t) = −Kxδ(t) = −[k1 k2 k3 k4
]xδ(t) (4.1)
donde K se le denomina matriz de ganancia de realimentacion del estado y es de 1× 4
con elementos de ganancias constantes, xδ(t) es el vector de estado nominales de 4× 1
y uδ(t) es el control el cual es un escalar. Esto significa que la senal de control se
determina como la combinacion lineal de los estados del sistema. En las figuras 4.1 y
4.2 se muestran los esquemas de control propuestos para el sistema lineal y el no lineal.
Figura 4.1: Esquema de control para el sistema lineal (Sira-Ramırez et al. 1997).
Realimentando el sistema expresado en (3.55), obtenemos lo siguiente:
x1δ
x2δ
x3δ
x4δ
=
0 1 0 0
f21 f22 f23 f24
0 0 0 1
f41 f42 f43 f44
x1δ
x2δ
x3δ
x4δ
+
0
f2u
0
f4u
[k1 k2 k3 k4
]x1δ
x2δ
x3δ
x4δ
(4.2)
4.1 Diseno del sistema de control 42
Figura 4.2: Esquema de control lineal para el sistema no lineal (Sira-Ramırez et al.
1997).
realizando operaciones matematicas alcanzamos al sistema autonomo consecuente:x1δ
x2δ
x3δ
x4δ
=
0 1 0 0
f21 − f2uk1 f22 − f2uk2 f23 − f2uk3 f24 − f2uk4
0 0 0 1
f41 − f4uk1 f42 − f4uk2 f43 − f4uk3 f44 − f4uk4
x1δ
x2δ
x3δ
x4δ
(4.3)
en el cual fij = ∂fi
∂xjy fiu = ∂fi
∂u, con i = 2, 4 y j = 1, 2, 3, 4.
Ahora el interes fundamental esta en inducir una dinamica controlada de
naturaleza estable o asintoticamente estable, para esto, los valores de las ganancias
de realimentacion deben especificarse de tal manera que los autovalores del sistema
autonomo tenga parte real negativa. Para ello emplearemos la tecnica de control optimo
cuadratico, conocida como LQR del ingles Lineal-Quadratic-Regulator, la cual se basa
en calcular las ganancias de realimentacion de forma optima basandose en minimizar
una funcion de costo o ındice de desempeno dada por:
J =
∫ ∞0
(xTδ Qxδ + uTδ Ruδ + 2xTδ Nuδ
)dt (4.4)
donde Q es una matriz simetrica real definida positiva o semidefinida positiva, R y N
son matrices simetrica real definida positiva y uδ no esta restringida. Una ventaja de
4.1 Diseno del sistema de control 43
usar el esquema de control optimo cuadratico es que el sistema disenado sera estable
si es controlable.
La solucion para el hallazgo de las ganancias de realimentacion de manera optima,
viene dada por la solucion de la matriz S asociada a la ecuacion de Riccati expresada
de la forma siguiente:
ATS + SA− (SB +N)R−1(BTS +NT
)+Q = 0 (4.5)
y las ganancias de realimentacion son derivadas a partir de:
K = R−1(BTS +NT
)(4.6)
Para el calculo de estas ganancias se hizo uso de la herramienta computacional
Matlabr, el cual proporciona la solucion de las matrices S y K a traves de su comando
lqr(A,B,Q,R,N).
Definiendo a:
Q =
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 0
R = [1]
N = [0]
La funcion de costos expresada en (4.4) tendra la sucesiva forma:
J =
∫ ∞0
(x2
1δ + x23δ + u2
δ
)dt (4.7)
obteniendose ası como resultado lo consiguiente:
• Punto de operacion Abajo:
Kabajo =[
4.3771 0.38067 7.0356 0.87084]
Sabajo =
1.0730 0.0759 1.7461 0.2172
0.0759 0.0062 0.1297 0.0160
1.7461 0.1297 3.3192 0.4027
0.2172 0.0160 0.4027 0.0498
4.1 Diseno del sistema de control 44
• Punto de operacion Arriba:
Karriba =[−12.4211 −2.3468 −11.6687 −1.4707
]
Sarriba =
15.4365 2.7325 11.4411 1.5403
2.7325 0.4866 2.0431 0.2750
11.4411 2.0431 8.7484 1.1648
1.5403 0.2750 1.1648 0.1562
De lo expresado anteriormente, se pueden sacar las caracterısticas del sistema a
lazo cerrado, las cuales estan expresadas en las tablas 4.1 y 4.2 respecto a su punto de
operacion, estas caracterısticas nos facultara de informacion sobre el comportamiento
dinamico y permitira comparar en cierta medida el desempeno de nuestro sistema a
lazo cerrado.
Polos [ radseg
] Fac. de Amortiguamiento (ξ) Frec. natural (ωn) [ radseg
]
−4, 8497 + 10, 1984i 0, 4295 11, 2928
−4, 8497− 10, 1984i 0, 4295 11, 2928
−8, 3533 + 1, 5360i 0, 9835 8, 4934
−8, 3533− 1, 5360i 0, 9835 8, 4934
Tabla 4.1: Caracterısticas del sistema a lazo cerrado (P.O. Abajo).
Polos [ radseg
] Fac. de Amortiguamiento (ξ) Frec. natural (ωn) [ radseg
]
−13, 9409 + 7, 3856i 0, 8837 15, 7764
−13, 9409− 7, 3856i 0, 8837 15, 7764
−6, 0287 + 0, 7847i 0, 9916 6, 0796
−6, 0287− 0, 7847i 0, 9916 6, 0796
Tabla 4.2: Caracterısticas del sistema a lazo cerrado (P.O. Arriba).
Hasta aquı se ha presentado la tecnica de control que nos permitira lograr nuestro
objetivo principal actuando como un regulador. Dado que la planta fısica es no lineal, el
sistema disenado solo se comportara satisfactoriamente durante un rango de operacion
limitado.
4.1 Diseno del sistema de control 45
Figura 4.3: Nuevo esquema de control lineal para el sistema no lineal.
Un metodo util para evaluar el desempeno de un sistema de control, se basa en un
modelo que produzca la salida deseada para una entrada determinada, por lo tanto,
el esquema de control propuesto para el sistema no lineal expresado en la figura 4.2,
lo remplazaremos por la forma especificada en la figura 4.3, ya que esta admite una
entrada deseada en funcion del angulo o posicion del primer enlace del Pendubot. El
sistema autonomo enunciado en (4.3) queda reformulado en su nueva condicion en
(4.9).
La ganancia de preamplificacion (Ke), es determinada para minimizar en la medida
posible el error de posicion de nuestro sistema la cual se determina como:
Ke =1
Go(0)= −0.95 (4.8)
donde Go(s) es la funcion de transferencia del sistema a lazo cerrrado.
x1δ
x2δ
x3δ
x4δ
=
0 1 0 0
f21 − f2uk1 f22 − f2uk2 f23 − f2uk3 f24 − f2uk4
0 0 0 1
f41 − f4uk1 f42 − f4uk2 f43 − f4uk3 f44 − f4uk4
x1δ
x2δ
x3δ
x4δ
+
Ke
0
0
0
ref(4.9)
4.2 Implementacion del sistema de control de balanceo 46
4.2 Implementacion del sistema de control de
balanceo
Condicionalmente la implantacion de la ley de control se realizara en tiempo continuo,
lo que nos acarrea en seleccionar un tiempo de muestreo que se ajuste a esta exigencia.
Para implementar un controlador continuo con un computador, el perıodo de muestreo
debe ser de 15 a 20 veces menor que el perıodo de la frecuencia ωn deseada en lazo
cerrado.
En nuestro caso la eleccion del perıodo de muestreo sera de 20 veces menor al perıodo
correspondiente de la frecuencia ωn mayor de la dinamica del sistema controlado a lazo
cerrado. De lo mencionado anteriormente obtenemos que:
ωs > 20 max {ωn} (4.10)
ωs > 20 max {11.2928, 8.4934, 15.7764, 6.0796}[rad
seg
](4.11)
ωs > 20(15.7764)
[rad
seg
](4.12)
Expresando a ωs en frecuencia [Hz] nos producirıa el siguiente resultado:
fs > 50.218[Hz]
ts < 0.02[seg]
Eligiendo como perıodo de muestreo T = 0.01[seg] satisfacemos lo anteriormente
comentado.
El algoritmo de control comienza por verificar la region de operacion para la
adecuada seleccion de las ganancias de realimentacion, finalizando con la obtencion
de la senal de control.
La implementacion en dSPACE del algoritmo de control de balanceo, se puede
observar en la seccion del apendice C.1.
La interfaz grafica de control y supervision se diseno a traves de la herramienta
Cockpit (ver figura 4.4), consta con diferentes controles graficos que permiten al
usuario una sencilla ejecucion y supervision del sistema de control de balanceo y de la
observacion de las caracterısticas propias del Pendubot como posicion y velocidad en
sus articulaciones.
4.2 Implementacion del sistema de control de balanceo 47
Figura 4.4: Captura de pantalla del Cockpit para la implantacion del Control de
Balanceo.
4.3 Resultados experimentales del sistema de control de balanceo 48
4.3 Resultados experimentales del sistema de
control de balanceo
La implantacion de la ley de control por realimentacion del vector de estado impone
una dinamica a lazo cerrado descrita por las caracterısticas presentadas en las tablas
4.1 y 4.2 respecto a la region de operacion.
El experimento consto de llevar de forma manual a los enlaces del Pendubot a la
cercanıas del punto de operacion Abajo, esta fase se puede apreciar en el intervalo de
tiempo de (0 − 5)[seg]. Una vez alcanzada las cercanıas de la region de operacion, se
procedio a administrar el control que permitio balancear y estabilizar nuestro sistema
en las cercanıas de la region de operacion.
En la figura 4.3 se muestra la respuesta del sistema en lazo cerrado (x1(t), x3(t)),
la velocidad del mismo (x2(t), x4(t)) y la senal de control (u(t)) administrada.
Figura 4.5: Resultados experimentales del control de balaceo del Pendubot, punto de
equilibrio Abajo.
Logrado el objetivo principal del controlador, se procedio a realizar distintos
4.3 Resultados experimentales del sistema de control de balanceo 49
cambios de referencia a traves del Cockpit, los cuales estuvieron dados en un rango
de (−0.349 ; 0.349)[rad] o (−20 ; 20)[Deg].
En la figura 4.3 se muestra la posicion de ambas articulaciones (x1(t) y x3(t)),
ademas de las velocidades de las mismas (x2(t), x4(t)) y la senal de control (u(t)).
El experimento es el mismo que se expreso en el caso anterior con la salvedad de
que la region de operacion esta definida como (X1 = π, X2 = 0, X3 = 0, X4 = 0,
τop = 0).
Figura 4.6: Resultados experimentales del control de balaceo del Pendubot, punto de
equilibrio Arriba.
Como resultado del sistema de control disenado se puede observar que la ganancia
de preamplificacion (Ke) atenua en forma rigurosa el error en estado estacionario de
nuestro sistema para ambos puntos de operacion.
Capıtulo 5
Tecnicas de control avanzado para
un pendulo simple
En el capıtulo anterior se presento una tecnica de control lineal para la regulacion
de posicion del Pendubot en tiempo continuo. En el se dio solucion al problema de
ubicacion de polos de forma optima, considerando el diseno de sistemas de control
mediante la realimentacion del vector de estado.
En el presente capıtulo se exponen tecnicas de control lineal y adaptativas para el
diseno de sistemas de control en tiempo discreto, cuyo objetivo principal es la regulacion
de la posicion de un pendulo simple. La obtencion de la planta se produce al desmontar
la segunda articulacion del eje de revolucion que permite el acoplamiento entre las dos
articulaciones del Pendubot, obteniendo ası, un pendulo simple accionado por un motor
de corriente continua en modo de torque.
5.1 Control RST para el pendulo simple
El control RST es una perspectiva alterna al control clasico, el cual se basa en un
enfoque de ecuaciones polinomiales para el diseno de sistemas de control. En general
es un control lineal descrito por la siguiente ley:
R(z)U(z) = T (z)W (z)− S(z)Y (z) (5.1)
donde R(z), S(z) y T (z) son polinomios.
5.1 Control RST para el pendulo simple 51
Figura 5.1: Diagrama de bloques del sistema de control RST (Rodrıguez & Lopez
1996).
esta ley de control representa entonces, un enfoque alterno al diseno mediante
ubicacion de polos con un observador de estados de orden mınimo. De la ecuacion
(5.1) obtenemos que el control esta conformado por los bloques S(z)R(z)
y T (z)R(z)
, lo que
permite que el controlador tenga dos grados de libertad (Astrom & Wittenmark 1989).
El diagrama de bloques para el sistema de control en lazo cerrado es mostrado en la
figura 5.1, donde Y (z) es la salida del sistema, U(z) es la entrada al sistema o senal de
control y W (z) es la salida deseada del sistema.
Definiendo la funcion de transferencia pulso para el sistema en tiempo discreto, se
obtiene:
G(z) =B(z)
A(z)=
b0z + b1z2 + a1z + a2
(5.2)
Realimentando el sistema de control propuesto en la figura 5.1 tenemos que:
Y (z) =B(z)
A(z)U(z) (5.3)
sustituyendo (5.1) en (5.3), obtenemos lo siguiente:
Y (z) =B(z)
A(z)
[T (z)
R(z)W (z)− S(z)
R(z)Y (z)
](5.4)[
B(z)
A(z)
S(z)
R(z)+ 1
]Y (z) =
B(z)
A(z)
T (z)
R(z)W (z) (5.5)[
R(z)A(z) + S(z)B(z)
A(z)R(z)
]Y (z) =
B(z)
A(z)
T (z)
R(z)W (z) (5.6)
Operando en (5.6), obtenemos la funcion de transferencia pulso de nuestro sistema
a lazo cerrado la cual es expresa en:
5.1 Control RST para el pendulo simple 52
G0(z) =Y (z)
W (z)=
T (z)B(z)
R(z)A(z) + S(z)B(z)(5.7)
El polinomio caracterıstico de nuestro sistema a lazo cerrado esta representado por:
R(z)A(z) + S(z)B(z) = D(z) (5.8)
La idea es asignar los polos de nuestro sistema en lazo cerrado a la raıces
caracterısticas del polinomio deseado D(z). A la ecuacion (5.8) se le denomina ecuacion
Diofantina y la solucion consiste basicamente en proponer los polinomios R(z) y S(z)
con ciertas restricciones en los ordenes de los polinomios para asegurar que el regulador
propuesto sea causal y de realizacion mınima (Rodrıguez & Lopez 1996).
Para lograr este objetivo definamos a los polinomos R(z), S(z) y D(z) como:
R(z) = α0zn−1 + α1z
n−2 + . . .+ αn−2z + αn−1 = α0z + α1 (5.9)
S(z) = β0zn−1 + β1z
n−2 + . . .+ βn−2z + βn−1 = β0z + β1 (5.10)
D(z) = ω0z2n−1 + ω1z
2n−2 + . . .+ ω2n−2z + ω2n−1 = ω0z3 + ω1z
2 + ω2z + ω3 (5.11)
La ecuacion Diofantina se puede resolver para R(z) y S(z) mediante la matriz de
Sylvestre E, donde E ∈ R2n×2n, la cual se define en terminos de los coeficientes de los
polinomios comprimidos A(z) y B(z) como sigue:
E =
an 0 · · · 0 bn 0 · · · 0
an−1 an · · · 0 bn−1 bn · · · 0... an−1 · · · 0
... bn−1 · · · 0
a1...
... b1...
...
1 a1 · · · an b0 b1 · · · bn
0 1 · · · an−1 0 b0 · · · bn−1
......
......
......
0 0 · · · a1 0 0 · · · b1
0 0 · · · 1 0 0 · · · b0
(5.12)
Ahora si se definen D y M tales que:
5.1 Control RST para el pendulo simple 53
D =
ω2n−1
ω2n−2
...
ω1
ω0
,M =
αn−1
αn−2
...
α0
βn−1
βn−2
...
β0
(5.13)
entonces los coeficientes de α0, α1, · · · , αn−1, β0, β1, · · · , βn−1 , se pueden determinar a
partir de:
EM = D (5.14)
M = E−1D (5.15)
Notemos que la ecuacion (5.15) tiene solucion sı y solo sı la matriz de Sylvestre (E)
es no singular y esto se logra si los polinomios A(z) y B(z) no tiene factores comunes,
en otras palabras, la planta es completamente controlable y completamente observable
(Ogata 1996).
Ahora concentremonos en la definicion del polinomio deseado D(z), de la ecuacion
(5.8), observamos que D(z) = T (z)H(z), donde H(z) es el polinomio caracterıstico
deseado para la parte de ubicacion de polos y T (z) es el polinomio caracterıstico para
el observador de orden mınimo1. Ya que los polinomios H(z) y T (z) se escogen de forma
deseada, uno de los requisitos es que estos sean estables y asimismo estan definidos de
la forma:
T (z) = T0zn−1 + T1z
n−2 + . . .+ Tn−2z + Tn−1 = T0z + T1 (5.16)
H(z) = ψ0zn + ψ1z
n−1 + · · ·ψn−1z + ψn = ψ0z2 + ψ1z + ψ2 (5.17)
Sustituyendo (5.8) en la funcion de transferencia a lazo cerrado expresada en (5.7)
obtenemos que:
Go(z) =Y (z)
W (z)=T (z)B(z)
D(z)=T (z)B(z)
T (z)H(z)=B(z)
H(z)(5.18)
1Se supone que la salida del sistema es el unico estado medible.
5.1 Control RST para el pendulo simple 54
Notemos que el polinomio T (z) es cancelado, ya que es un polinomio estable su
cancelacion es permitida. La funcion de transferencia final queda expresada en terminos
de los ceros de la funcion transferencia a lazo abierto del sistema y del polinomio deseado
H(z) de orden n. Por lo tanto, el sistema de control disenado no altera el orden del
sistema.
La ubicacion de los polos, se hizo vıa correspondencia del semiplano izquierdo del
plano s con el plano z, Ogata (1996) afirma que cuando se incorpora un muestreo por
impulso las variables complejas z y s quedan relacionadas de la siguiente manera:
z = esT (5.19)
Si nosotros definimos el comportamiento de nuestro sistema en lazo cerrado en
funcion de los parametros α, ζ y ωn, tenemos las siguientes relaciones:
• Si ζ < 1 tenemos que D(z) = z3 +ω1z2 +ω2z+ω3 = (z−c)(z−a+bj)(z−a−bj)
donde: a = e−ζωnT cos
(Tωn
√1− ζ2
)b = e−ζωnT sin
(Tωn
√1− ζ2
)c = e−αζωnT
→
ω1 = −c− 2a
ω2 = 2c+ a2 + b2
ω3 = −ca2 − cb2(5.20)
y H(z) = (z − a+ bj)(z − a− bj) con T (z) = (z − c).
• Si ζ > 1 tenemos que D(z) = z3 +ω1z2 +ω2z+ω3 = (z− a)(z− b)(z− c) donde:
a = e−ζωnT e
(Tωn
√ζ2−1
)
b = e−ζωnT e−
(Tωn
√ζ2−1
)
c = e−αζωnT
→
ω1 = −c− b− a
ω2 = ca+ cb+ ab
ω3 = −abc
(5.21)
y H(z) = (z − a)(z − b) con T (z) = (z − c).
Ahora, para que la salida del sistema en estado estable sea igual o cercana a la
entrada de referencia, es necesario la adicion de una ganancia de preamplificacion de
la entrada denominada K0, por tanto, el esquema de control propuesto en la figura 5.1
se transformara en la figura 5.2. La funcion de transferencia pulso de nuestro sistema
a lazo cerrado resultara de la siguiente forma:
Go(z) =K0B(z)
H(z)(5.22)
5.1 Control RST para el pendulo simple 55
Figura 5.2: Diagrama de bloques del sistema de control RST disenado (Ogata 1996).
La ganancia K0 se extrae de la siguiente manera:
K0 =H(z)
B(z)
∣∣∣∣z=1
=H(1)
B(1)(5.23)
5.1.1 Implementacion del controlador RST
Para la implementacion del controlador RST para el control del pendulo, se disenaron
los algoritmos void Control() y void Control_RST() (ver C.2), cuyos diagramas se
flujo se observan en las figuras 5.3(a) y 5.3(b) respectivamente.
El algoritmo void Control() es el encargado de transferir el mando hacia
void Control_RST(), el cual es el responsabilizado de calcular la senal de control
final. Esta transferencia de mando se hace a traves de una condicion, la cual esta
expresada en funcion de la variable entera habcon.
El procedimiento void Control_RST() parte por calcular los coeficientes del
polinomio deseado D(z) en funcion de las variables tipo real Zita, Wn y Alpha, luego
calcula los coeficientes de los polinomios R(z), S(z) y T (z) a traves de la solucion de
la matriz de Sylvester en funcion de los parametros del modelo a1, a2, b0, b1 y de
los coeficientes del polinomio deseado W1, W2, W3. Por ultimo, se calcula la ganancia
de preamplificacion K0 y la ley de control en tiempo discreto, la cual a partir de (5.1),
es expresada en la forma siguiente:
u(k) =K0
α0
(α0W (k) + T1W (k − 1))− 1
α0
(β0Y (k) + β1Y (k − 1))− α1
α0
u(k− 1) (5.24)
5.1 Control RST para el pendulo simple 56
(a) Diagrama de flujo del algoritmo void Control().
(b) Diagrama de flujo del algoritmo void Control RST().
Figura 5.3: Diagramas de flujo de los algoritmos del sistema de control RST.
5.1 Control RST para el pendulo simple 57
Para la implantacion en el Cockpit, se procedio a disenar una interfaz grafica sencilla
e intuitiva para el usuario como se muestra en la figura 5.4. Consta de dos indicadores
tipo barra, uno asociado a la senal de control (U(k)) y la otra para el error de posicion
(E(k)) adquirido.
Cuenta con dos displays tipo digitales para mostrar la posicion del pendulo segun la
region de operacion, uno en [rad] y otro en [deg]. Ademas se compone de dos cuadros
de seleccion, uno asociado a la seleccion de la region de operacion y el otro para la
habilitacion del control.
Las demas caracterısticas permiten al usuario la visualizacion de los coeficientes
del polinomio deseado D(z) y de los polinomios R(z) y S(z), asimismo permite la
modificacion a tiempo real de los parametros de diseno ζ, ωn, α y de la senal de
referencia Wref (k).
Figura 5.4: Captura de pantalla de la implementacion del Control RST a traves de
Cockpit.
5.1 Control RST para el pendulo simple 58
5.1.2 Resultados experimentales del controlador RST
Las experiencias realizadas, correspondientes al controlador RST para el control de
posicion del pendulo, se obtuvieron al realizar experimentos bajo las modificaciones de
los parametros de diseno, puntos de operacion y cambios de referencia, con la finalidad
de evaluar el comportamiento y desempeno del mismo. La referencia W (kT ) se produjo
al pasar un escalon de amplitud Wref(kT ) por un filtro de segundo orden, el cual tiene
la forma de:W (z)
Wref(z)=
(1− e−6.0T
)2z2 − 2e−6.0T z + e−12.0T
(5.25)
Este filtro nos permite que la respuesta del sistema sea mas suave y tenga un tiempo
de asentamiento de aproximadamente 1[seg].
El primer grupo de experiencias corresponden a la region de operacion (0, 0), con
los siguientes parametros del sistema:
a1 = −1.9763
a2 = 0.98294
b0 = 0.0064
b1 = 0.0053
La figura 5.5 presenta el resultado obtenido al utilizar un perıodo de muestreo de
T = 0.01[seg] con los parametros de diseno ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. El
controlador RST fijo resulta asignado como:
R(z) = z − 0.2474
S(z) = 10.15z − 10.07
T (z) = z − 0.3679
Como se puede apreciar el error de posicion es de aproximadamente 0.011[rad], esto
se debe a la ganancia de preamplificacion K0, la cual depende de los coeficientes b0 y b1
de la funcion de transferencia pulso de nuestro sistema a lazo abierto, los cuales fueron
obtenidos vıa identificacion y no son exactos.
En la grafica 5.6 se muestra el resultado obtenido al emplear un perıodo de muestreo
de T = 0.01 [seg] con los parametros de diseno ζ = 1.0, ωn = 40.0 radseg
y α = 5.0. Se
5.1 Control RST para el pendulo simple 59
Figura 5.5: Controlador RST para el control de posicion del pendulo con T = 0.01[seg],
ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. Punto de operacion (0, 0).
Figura 5.6: Controlador RST para el control de posicion del pendulo con T = 0.01[seg],
ζ = 1.0, ωn = 40.0 radseg
y α = 5.0. Punto de operacion (0, 0).
5.1 Control RST para el pendulo simple 60
puede apreciar que el error de posicion es de 0.006[rad] y un tiempo de asentamiento
menor que el experimento anterior.
En la figura 5.7, se observa el comportamiento del sistema controlado bajo varias
modificaciones en su referencia en el punto de operacion (0, 0). En este experimento
se usaron de las siguientes especificaciones ωn = 40[radseg
], ξ = 1.0, α = 5.0.
El segundo bloque de experiencias corresponde al punto de operacion (π, 0)con los
siguientes parametros del sistema:
a1 = −2.001
a2 = 0.9915
b0 = 0.0835
b1 = 0.0823
Estas constan de llevar de forma manual el brazo del pendulo a las cercanıas de la
region de operacion (π, 0), una vez alcanzada las cercanıas de la misma se procedio a
aplicar el controlador RST para estabilizarlo.
En la figura 5.8 se presenta el resultado obtenido al implementar el controlador con
un perıodo de muestro T = 0.01[seg] con los parametros de diseno ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. El controlador RST fijo resulta asignado como:
R(z) = z − 0.2436
S(z) = 0.8029z − 0.725
T (z) = z − 0.3679
En la ejecucion de esta experiencia se determino que la ganancia de preamplificacion
K0 no era optima ya que el error de posicion era elevado. Esto se debe a la defectuosa
estimacion de los coeficientes b0 y b1 de la funcion de transferencia pulso de la planta
a lazo abierto ya que la region de operacion es inestable. Se observa en la figura 5.8
que el error es de −0.024[rad].
5.1 Control RST para el pendulo simple 61
Figura 5.7: Controlador RST para el control de posicion del pendulo con varios cambios
de referencia. Punto de operacion (0, 0).
Figura 5.8: Controlador RST para el control de posicion del pendulo con T = 0.01[seg],
ζ = 1.0, ωn = 30.0 radseg
y α = 5.0. Punto de operacion (π, 0).
5.2 Control adaptativo para el pendulo simple. 62
5.2 Control adaptativo para el pendulo simple.
El sistema de control adaptativo para la regulacion de la posicion del pendulo simple
hara uso de los reguladores autoajustables (STR)2, ya que estos se basan en la
separacion de las tareas de control e identificacion (ver figura 5.9).
Figura 5.9: Diagrama de bloques del sistema de control adaptativo basado en STR.
Como criterio de diseno se utilizara un ındice de actuacion en funcion de las
especificaciones que debe cumplir la salida del sistema. Por lo tanto, se propondra una
funcion de transferencia deseada a lazo cerrado. Para la implantacion del controlador
STR se hara uso de la metodologıa de reguladores autoajustables indirectos (Astrom
& Wittenmark 1989), cuyas etapas estan dadas en:
1. Identificar a tiempo real los parametros del modelo del sistema.
2. Recalcular los parametros del controlador, basados en los parametros estimados
del sistema en la etapa 1.
3. Calcular la senal de control con los nuevos parametros del controlador obtenidos
en la etapa 2.
Las etapas anteriores se repetiran para cada perıodo de muestreo y ellas enmarcan
el comportamiento del sistema de control adaptativo basado en STR.
2Self-tuning regulador (STR) en la terminologıa inglesa.
5.2 Control adaptativo para el pendulo simple. 63
5.2.1 Algoritmo de identificacion de parametros por mınimos
cuadrados
Una tecnica muy importante de los sistemas adaptativos es el algoritmo de
identificacion de parametros. En este caso estamos interesados en la identificacion
en lınea ya que las observaciones de la entrada y salida de la planta se obtiene en forma
secuencial a tiempo real, para lo que utilizaremos la diccion recursiva de los algoritmos.
Los metodos recursivos se caracterizan por aprovechar parte de los calculos
realizados en el instante (k − 1) para el instante (k).
El resultado es exhibido en (Astrom & Wittenmark 1989) y esta enumerado en los
siguientes pasos:
P (k) =[I − P (k − 1)ϕ(k)
[I + ϕT (k)P (k − 1)ϕ(k)
]−1ϕT (k)
]P (k − 1) (5.26)
K(k) = P (k − 1)ϕ(k)[I + ϕT (k)P (k − 1)ϕ(k)
]−1(5.27)
e(k) = Y (k)− ϕT (k)θ(k − 1) (5.28)
θ(k) = θ(k − 1) +K(k)e(k) (5.29)
donde:
• ϕ(k) es el vector de regresion.
• P (k) es la matriz de covarianza, la cual modifica la direccion del gradiente y
determina la longitud del paso de la identificacion.
• K(k) es la matriz de ganancias de correccion de los parametros .
• e(k) es el error de estimacion o error de prediccion.
• θ(k) denota el vector de parametros estimados en el instante k.
La ecuacion (5.29) expresa que la estimacion del parametro θ(k) esta dada por los
valores de la estimacion anteriores θ(k − 1) corregida por un termino lineal del error
entre la salida Y (k) y su prediccion ϕT (k)θ(k − 1).
El problema que presenta este algoritmo es el apagado del mismo, en otras
palabras la incapacidad para detectar cambios en los parametros del sistema, ya que el
5.2 Control adaptativo para el pendulo simple. 64
identificador cuenta con memoria infinita, es decir, tienen los mismos pesos todas las
medidas obtenidas de las planta.
Ahora, sı los parametros del sistema cambian lentamente es conveniente reducir la
memoria del identificador con el objeto de que este sea mas sensible a las variaciones
de los parametros del sistema.
Una solucion es la introduccion de un factor de olvido (λ). La idea de este metodo
consiste en modificar la matriz de covarianza P (k) por P (k)λ
, obteniendo (Astrom &
Wittenmark 1989) ası:
P (k) =1
λ
[I − P (k − 1)ϕ(k)
[λ+ ϕT (k)P (k − 1)ϕ(k)
]−1ϕT (k)
]P (k − 1) (5.30)
K(k) = P (k − 1)ϕ(k)[λ+ ϕT (k)P (k − 1)ϕ(k)
]−1(5.31)
e(k) = Y (k)− ϕT (k)θ(k − 1) (5.32)
θ(k) = θ(k − 1) +K(k)e(k) (5.33)
Un inconveniente que se puede presentar en este metodo es cuando la senal de
excitacion es pobre, el producto P (k − 1)ϕ(k) puede hacerse cero o muy pequeno, por
lo que la ecuacion (5.30) se convierte en:
P (k) =P (k − 1)
λ(5.34)
Si λ < 1 la matriz de covarianza crece demasiado. Este conflicto se le conoce como
problema de Blow o identificador Windup. Un remedio para este inconveniente es
proponer un factor de olvido variable (Rodrıguez & Lopez 1996) como se muestra en
la expresion siguiente:
λ(k) = 1−(1− ϕT (k)K(k)
) e2(k)
S0
(5.35)
Cuando el error tiende a cero, λ(k) tiende a uno, lo que evitarıa el crecimiento de
la matriz de covarianza. S0 esta relacionada a la sensibilidad de la funcion de λ(k) y
esta relacionada a la suma del error de estimacion cuadratico.
El metodo del factor de olvido variable no elimina completamente los inconvenientes
antes mencionados, pero si disminuye la posibilidad de aparicion (Rodrıguez & Lopez
1996).
5.2 Control adaptativo para el pendulo simple. 65
Algoritmo de identificacion de parametros propuesto
Dados los inconvenientes antes mencionados, el metodo de identificacion recursiva
por mınimos cuadrados con factor de olvido variable, es el algoritmo que nos puede
salvaguardar de algunas dificultades que se pudieran presentar. El algoritmo queda
expresado en las siguientes etapas:
1. Iniciacion de las variables P (k) y θ(k) .
2. Obtener los valores para Y (k) y U(k).
3. Calcular el vector de regresion ϕ(k) de la forma:
ϕT (k) =[−Y (k − 1) . . . −Y (k − n) U(k − 1) . . . U(k −m)
]4. Obtener el vector de ganancias de correccion K(k) donde:
K(k) = P (k − 1)ϕ(k)[λ+ ϕT (k)P (k − 1)ϕ(k)
]−1
5. Determinar el error de prediccion e(k) de la forma:
e(k) = Y (k)− ϕT (k)θ(k − 1)
6. Calcular los nuevos parametros estimados dados por:
θ(k) = θ(k − 1) +K(k)e(k)
7. Obtener el nuevo factor de olvido λ(k) de la forma siguiente:
λ(k) = 1−(1− ϕT (k)K(k)
) e2(k)
S0
Si λ(k) < λmin entonces λ(k) = λmin
Si λ(k) > 1 entonces λ(k) = 1
8. Actualizar la matriz de covarianza P (k) de la forma:
W (k) =[I −K(k)ϕT (k)
]P (k − 1)
Si tr(W (k)λ(k)
)> trmax entonces λ = 1
P (k) =W (k)
λ(k)
5.2 Control adaptativo para el pendulo simple. 66
9. Hacer k = k + 1, ir al paso 2.
La inicializacion de la matriz de covarianza, se puede hacer de la forma P (0) = αI,
donde α es una constante positiva (α > 0) y el vector de θ(k) en cero si no se tiene
previo conocimiento de los parametros estimados.
La condicion de λ(k) < λmin es dada para que los valores de λ(k) no alcancen
valores por debajo de un mınimo. La condicion de tr(W (k)λ(k)
)> trmax es para evitar el
crecimiento desmesurado de la matriz de covarianza P (k).
Implementacion del algoritmo de identificacion de parametros.
Se implemento un modulo en dSPACE que permitiera estimar los parametros a
tiempo real. En la figura 5.10 se observa la captura de pantalla del Cockpit para
implementacion del algoritmo de identificacion recursivo. Observamos que cuenta
con una lista de seleccion para los tipos de senal de entrada al sistema para la
identificacion, describe listas de control que permiten habilitar o deshabilitar el control,
la identificacion y la seleccion del punto de operacion.
Igualmente detalla una serie de display digitales que permiten que el usuario observe
a tiempo real la salida del sistema, los parametros estimados en lınea (b0, b1, a1, a2)
y una serie de caracterısticas propias del algoritmo de identificacion como el factor
de olvido λ(k), la traza de la matriz de covarianza P (k) y el error de estimacion o
prediccion e(k).
Por ultimo describe unas listas de seleccion que permiten la modificacion del
comportamiento a tiempo real del algoritmo de identificacion, estas listas modifican
directamente la iniciacion de la matriz de covarianza P (0) = αI, la sensibilidad
del factor de olvido (S0) y algunas constantes limitativas (λmin y trmax), propias
del algoritmo de identificacion recursivo por mınimos cuadrados con factor de olvido
variable.
Para la implementacion del algoritmo de identificacion recursivo se procedio a crear
la funcion void Identificacion() (ver C.3), el cual cuenta con las mismas etapas
del algoritmo disenado.
5.2 Control adaptativo para el pendulo simple. 67
Figura 5.10: Captura de pantalla del Cockpit para la implementacion del algoritmo de
identificacion recursivo.
Resultados experimentales del algoritmo de identificacion de parametros.
Para medir la eficacia del algoritmo de identificacion propuesto, se procedio a realizar
una serie de experimentos que nos dieran indicadores de comportamiento e ındices
de desempeno. En estas experiencias mediremos caracterısticas propias del algoritmo
como la velocidad de estimacion, error de prediccion y ajuste de la salida real del
sistema (Y (kT ) con el modelo identificado (Ym(kT )).
Primer grupo de experiencias. El primer grupo de experimentos consisten en
evaluar el comportamiento del algoritmo de identificacion en el punto de operacion
(0, 0). La figura 5.11, muestra el ensayo realizado, el cual comenzo por activar la planta
con una senal PRBS 3 de amplitud de 0.06[N.m] y constante de tiempo de 0.15[seg].
3Pseudo Random Binary Sequence (PRBS ): Son secuencias de pulsos rectangulares moduladas enanchura que se aproximan a un ruido blanco en tiempo discreto, de forma que tiene un contenido muy
5.2 Control adaptativo para el pendulo simple. 68
Las especificaciones del algoritmo fueron:
θ(0) =[
0 0 0 0]T
α = 1.0
λmin = 0.9
trmax = 10000
S0 = 0.001
Como resultado se obtuvieron los siguientes valores de los parametros estimados,
con una velocidad de estimacion de aproximadamente 6[seg](ver figura 5.11(a)).
b0 = 0.003807
b1 = 0.007694
a1 = −1.9789
a2 = 0.98545
Para tener una medida de que tan precisa es la estimacion, se procedio a validar el
modelo obtenido con una salida adquirida al excitar al sistema con la misma senal
de entrada de forma previa (ver figura 5.11(b)). El ajuste alcanzado del sistema
identificado fue del 82.68%, con una funcion de perdida (FP) alrededor del 0.56, lo
que nos lleva a concluir que es una buena aproximacion al sistema real. La funcion de
perdida esta definida como:
FP =1
2EET
E = Yreal − Ysimulado
De la misma forma se procedio a realizar la misma experiencia pero modificando la
senal de entrada PRBS en amplitud (DA) y diferencial de tiempo (DT), con la finalidad
de obtener la mejor estimacion de los parametros. Para cada una de las experiencias
se obtuvieron los parametros estimados y se tabularon en la tabla 5.1.
rico en frecuencia.
5.2 Control adaptativo para el pendulo simple. 69
(a) Evolucion de los parametros estimados.
(b) Validacion de los parametros estimados.
Figura 5.11: Experiencia realizada para evaluar el comportamiento del algoritmo de
identificacion ante una entrada PRBS, en el punto de operacion (0, 0).
5.2 Control adaptativo para el pendulo simple. 70
DA [N.m] DT [seg] b0 b1 a1 a2 Ajuste [%] FP
0,04 0,075 0,0055 0,0071 -1,9559 0,9626 58,34 0,4375
0,04 0,15 0,0049 0,0075 -1,9685 0,97527 72,46 0,4717
0,04 0,30 0,0078 0,0051 -1,9688 0,97543 68,25 1,2105
0,04 0,60 0,0077 0,0073 -1,9329 0,94046 77,76 0,2087
0,05 0,15 0,0064 0,0054 -1,9753 0,98194 78,10 0,5356
0,05 0,30 0,0068 0,0051 -1,9764 0,9829 71,10 2,0534
0,05 0,60 0,0060 0,0075 -1,9527 0,95989 82,03 0,2247
0,06 0,15 0,0038 0,0077 -1,9789 0,98545 82,68 0,5634
0,06 0,30 0,0063 0,0052 -1,9809 0,98729 74,02 3,3411
0,06 0,60 0,0061 0,0064 -1,9636 0,97054 83,97 0,2641
Tabla 5.1: Parametros estimados con el algoritmo de identificacion recursiva ante una
entrada al sistema del tipo PRBS, en la region de operacion (0, 0).
Segundo grupo de experiencias. El segundo grupo de experimentos corresponde
a evaluar el comportamiento del algoritmo de estimacion de parametros bajo la
modificacion de sus medidas de desempeno (α, S0) en el punto de operacion (0, 0).
El primer ensayo conto en inicializar la matriz de covarianza (P (k))4 con los valores
para α de (0.1e−4, 1.0, 1e5). La figura 5.12, muestra la evolucion de los parametros
estimados ante una entrada del tipo PRBS de amplitud 0.05[N.m] y un diferencial de
tiempo del 0.3[seg].
En la figura 5.12(a), se puede apreciar la evolucion de los parametros identificados
al variar la medida de desempeno α. Se puede percibir que estas modificaciones afectan
directamente en la velocidad de estimacion de los parametros mas no en la convergencia
de los mismos.
A medida que el valor de α aumenta la convergencia es mas rapida hacia su
valor final y si α es pequeno la velocidad de estimacion sera mas lenta. La figura
5.12(b) exhibe el comportamiento del error de estimacion (e(k)), la evolucion del factor
de olvido (λ(k)) y la traza de la matriz de covarianza (P (k)). Aquı detallamos el
comportamiento del factor de olvido, en el cual para un error de prediccion grande, el
4La inicializacion de la matriz de covarianza es de la forma P (0) = αI.
5.2 Control adaptativo para el pendulo simple. 71
(a) Evolucion de los parametros al modificar la inicializacion de la matriz de covarianza.
(b) Comportamiento del algoritmo de identificacion.
Figura 5.12: Experimento para evaluar la conducta de la identificacion bajo la
modificacion de la medida de desempeno α en el punto de operacion (0, 0).
5.2 Control adaptativo para el pendulo simple. 72
factor de olvido tiende a su mınimo (λ(k) → λmin), ahora si el error de prediccion es
pequeno (e(k)→ 0), entonces el factor de olvido tiende a uno (λ(k)→ 1).
El segundo ensayo de esta experiencia consta por excitar a nuestro sistema con la
misma senal de entrada antes descrita, pero esta vez se modificara la sensibilidad del
factor de olvido (S0) con valores de (1e−5, 1e−2, 1e−1)(ver figura 5.13).
En la figura 5.13(a), se puede apreciar la evolucion de los parametros estimados
bajo este ensayo. En esta percibimos que para el valor de S0 = 0.1 la velocidad de
estimacion se ve afectada, lo cual no implica que S0 sea un factor determinante en el
mejoramiento de la rapidez de estimacion como es en el caso de la inicializacion de la
matriz de covarianza, ya que para los otros valores de S0 la velocidad de estimacion es
aproximadamente igual.
esta alteracion en la velocidad de estimacion viene dada por el valor del factor de
olvido. Como se distingue en la figura 5.13(b), para los valores de S0 = 0.1, el factor
de olvido es igual a la unidad para la mayorıa del experimento, provocando que el
estimador se convierta en un estimador de memoria infinita, lo cual lo hace menos
sensible a cambios en los parametros, provocando que la estimacion sea mas lenta.
Por otro lado para valores de S0 = 1e−5, la alternabilidad del factor de olvido viene
dada en su mayoria por el limite inferior (λmin) y la unidad, provocando ası una mayor
sensibilidad ante ruidos en las medidas de los parametros. Esta brusca alternabilidad
del factor de olvido es a consecuencia de la traza de la matriz de covarianza alcanza
su valor tope (trmax) y modifica el valor de λ(k) por el valor de unidad, para evitar el
incremento inmoderado de la misma.
Tercer grupo de experiencias. El tercer grupo de experimentos consisten por
apreciar la conducta del algoritmo de estimacion de parametros recursivo, bajo la
excitacion de senales del tipo sinusoidal. El objetivo es evaluar la condicion necesaria
para obtener una estimacion de alta calidad.
Astrom & Wittenmark (1989) comentan, que la condicion para garantizar la
convergencia e identificabilidad del algoritmo de mınimos cuadrados recursivo, es que la
senal de excitacion U(k) debe de ser de excitacion persistente (PE) de orden n, donde
n es el numero de parametros del modelo a estimar, en nuestro caso son cuatro (a1,
5.2 Control adaptativo para el pendulo simple. 73
(a) Evolucion de los parametros al modificar la sensibilidad del factor de olvido λ(k).
(b) Comportamiento del algoritmo de identificacion.
Figura 5.13: Experimento para evaluar la conducta de la identificacion bajo la
modificacion de la medida de desempeno S0 en el punto de operacion (0, 0).
5.2 Control adaptativo para el pendulo simple. 74
a2, b0, b1). Una forma sencilla de obtener el orden PE de una senal periodica es contar
el numero de armonicos no nulos que aparecen al aplicar la Transformada Rapida de
Fourier en un perıodo de la misma.
En las figuras 5.14 y 5.15, se muestra la estimacion de los parametros del sistema
y el comportamiento del mismo, ante las entradas del tipo sinusoidal U1(k) y U2(k)
respectivamente.
U1(k) = 0.05 sin
(2π
1.2t
)
U2(k) =
(0.05
5
) sin
(2π
0.3t
)+ sin
(2π
0.6t
)+ sin
(2π
0.9t
)+ sin
(2π
1.2t
)+ · · ·
· · ·+ sin
(2π
1.5t
)+ sin
(2π
1.8t
)+ sin
(2π
2.1t
)
Como podemos apreciar en la figura 5.14(a), los parametros a1 y a2 tienden a las
cercanıas de su valor estimado en experimentos anteriores, pero los valores de b0 y b1
se alejan excesivamente de los mismos.
Esto se debe a que el orden PE de la senal de entrada U1(k) es 2 (dos), lo que es
menor que el numero de parametros a estimar y por lo tanto no alcanza activar toda
la dinamica del sistema, obteniendo ası una mala estimacion de los parametros.
A diferencia de esto, la figura 5.15(a) presenta la convergencia de los parametros
estimados, ya que el orden PE de la entrada U2(k) es de 14 y a su vez mayor
que el numero de parametros a estimar, lo que permite cumplir con la condiciones
experimentales impuestas por la dinamica propia del estimador.
5.2 Control adaptativo para el pendulo simple. 75
(a) Evolucion de los parametros estimados y comportamiento del algoritmo de estimacion.
(b) Salida del sistema y senal de control.
Figura 5.14: Ensayo para evaluar las condiciones experimentales del algoritmo de
identificacion bajo entrada U1(k).
5.2 Control adaptativo para el pendulo simple. 76
(a) Evolucion de los parametros estimados y comportamiento del algoritmo de estimacion.
(b) Salida del sistema y senal de control.
Figura 5.15: Ensayo para evaluar las condiciones experimentales del algoritmo de
identificacion bajo entrada U2(k).
5.2 Control adaptativo para el pendulo simple. 77
5.2.2 Algoritmo de control adaptativo para reguladores
autoajustables
Para enumerar las etapas del controlador adaptativo, se debe tener en cuenta que el
mismo esta conformado por el algoritmo de identificacion recursivo propuesto en la
sub-seccion 5.2.1 y el regulador RST disenado para el control de posicion del pendulo
en la seccion 5.1.
Las etapas de este algoritmo estan descritas por:
Entrada: Obtener el polinomio H(z) y T (z) a traves de las especificaciones deseadas
de diseno.
1. Estimar los coeficientes de los polinomios de la planta A(z) y B(z), usando la
tecnica de mınimos cuadrados recursivo con factor de olvido variable discutido
en la sub-seccion 5.2.1. El modelo del pendulo se puede escribir explıcitamente
para el tiempo discreto de la forma:
y(k) = −a1y(k − 1)− a2y(k − 2) + bou(k − 1) + b1u(k − 2)
como el modelo es lineal se puede escribir de la forma:
y(k) = ϕT (k)θ
donde:
ϕT (k) =[−y(k − 1) −y(k − 2) u(k − 1) u(k − 2)
]
θT =[a1 a2 b0 b1
]2. Recalcular el controlador RST para los coeficientes de los polinomios A(z) y
B(z) estimados en la etapa 1. Las polinomios R(z) y S(z), son obtenidos como
solucion de la ecuacion diofantina, la cual se expresa como:
R(z)A(z) + S(z)B(z) = T (z)H(z)
5.2 Control adaptativo para el pendulo simple. 78
3. Calcular la ley de control variable de la forma:
R(z)U(z) = T (z)W (z)− S(z)Y (z)
4. Ir al paso 1.
Las etapas anteriores se tiene que repetir para cada perıodo de muestreo. Una de las
desventajas de este algoritmo es que se necesitan demasiados calculos en el proceso de
identificacion y en el calculo de los coeficientes del regulador. La ventaja es la obtencion
directamente de los parametros del sistema, lo que es relevante para la supervision del
control.
Es importante resaltar el problema que puede producirse en el estimador, conocido
como Windup, especialmente en el caso en que no existan perturbaciones externas
actuando sobre el lazo de control o hay poca excitacion. Cuando esto ocurre, no se
produciran cambios en la estimaciones de los parametros y la matriz de covarianza
crecera exponencialmente.
Por lo tanto, un cambio en la senal de control o una pequena perturbacion
pueden tener entonces una gran influencia sobre las estimaciones de los parametros,
cambiandolos e inestabilizando al lazo de control en algunas ocasiones.
Una solucion simple es la desconexion automatica de la estimacion de los parametros
mientras que la varianza de la salida no exceda un cierto valor o ındice de desempeno.
Teniendo en cuenta esto, es posible incrementar la robustez del algoritmo de control
y modificar su sencillez, introduciendo una medida auxiliar que permita la estimacion
de los parametros de la planta y la actualizacion de los coeficientes del controlador
automaticamente siempre que el valor de la medida no cumpla:
sup |J(k)| 6 σ (5.36)
donde J(k) es la medida auxiliar y σ es el ındice de desempeno.
En la figura 5.16 se muestra el diagrama de bloque del sistema de control adaptativo
que incorpora la supervision.
El supervisor se define entonces como una ventana deslizante en el tiempo que mide
la norma euclidiana del error de posicion del pendulo y esta definida como:
5.2 Control adaptativo para el pendulo simple. 79
Figura 5.16: Diagrama de bloques control adaptativo con supervision.
J(k) =
√√√√ N∑i=0
(W (k − i)− Y (k − i))2 (5.37)
De esta manera, solamente aquellas variaciones o perturbaciones que produzcan un
error de posicion continuo que exceda al ındice de desempeno, ocasionara que nuestro
algoritmo de control ingrese en la fase de estimacion de parametros y recalculo del
controlador.
5.2.3 Implementacion del sistema de control adaptativo
La implementacion de los algoritmos necesarios para el sistema de control adaptativo,
cuyo esquema se ha visto en la figura 5.16, se dividen en los siguientes modulos:
• Fase de preidentificacion.
• Estimacion de parametros.
• Calculo de los coeficientes del controlador.
5.2 Control adaptativo para el pendulo simple. 80
• Obtencion de la senal de control.
El esquema de control y supervision se implementa en el diagrama de flujo 5.17,
donde:
• La fase de preidentificacion consta por administrar una senal del tipo PRBS al
sistema en lazo abierto, con el objetivo de estimar los parametros de la planta
durante un determinado espacio de tiempo (t = 10 [seg]). La ejecucion de esta
fase tiene gran importancia, ya que los parametros de la funcion de transferencia
pulso de nuestro sistema se suponen desconocidos, el diagrama de flujo de esta
fase se puede apreciar en la figura 5.18.
• El supervisor es una simple estructura de decision que verifica el evento en el
cual, el ındice de desempeno sobrepasa una cota maxima. Ella habilita la variable
band2, la cual representa una bandera que senala este evento.
• La fase de identificacion de la planta en lazo abierto consta de los siguientes pasos:
1. Llevar a la planta a las cercanıas de la region de operacion.
2. Identificar los parametros del sistema durante un espacio de tiempo.
3. Estabilizar de forma natural al sistema en las cercanıas del punto de
operacion.
El diagrama de flujo para la fase de identificacion del sistema en lazo abierto se
muestra en la figura 5.19.
• La fase de calculo o recalculo del controlador y obtencion de la senal de control, se
refiere al calculo de los coeficientes para los polinomios R(z), T (z), S(z) y H(z)
donde H(z) y T (z), son calculados a traves de las especificaciones de diseno ωn,
ζ, y α. R(z) y S(z), se obtiene como solucion de la ecuacion diofantina (5.8).
La senal de control se calcula de la siguiente manera:
U(k) =K0
α0
(α0W (k) + T1W (k − 1))− 1
α0
(β0Y (k) + β1Y (k − 1))− α1
α0
u(k − 1)
5.2 Control adaptativo para el pendulo simple. 81
Figura 5.17: Diagrama de flujo del sistema de control adaptativo.
5.2 Control adaptativo para el pendulo simple. 82
Figura 5.18: Diagrama de flujo de la fase de preidentificacion.
Figura 5.19: Diagrama de flujo de la fase de identificacion del sistema a lazo abierto.
5.2 Control adaptativo para el pendulo simple. 83
Para implementacion en C del sistema de control adaptativo que incluye supervision
(ver C.4), se realizaron las funciones void Control() y void Control_Adaptativo(),
que junto a la funcion void Identificacion(), implementan el algoritmo de control
adaptativo para el control de posicion de un pendulo simple.
Para la creacion de la pantalla de supervision en el Cockpit, se procedio a disenar
una interfaz grafica (ver figura 5.20) la cual incorpora una serie de visualizadores y
listas de seleccion, que permite observar el comportamiento de la planta y del sistema
de control para su facil supervision a tiempo real.
Figura 5.20: Captura de pantalla del Cockpit para la implantacion del control
adaptativo.
5.2 Control adaptativo para el pendulo simple. 84
5.2.4 Resultados experimentales del sistema de control
adaptativo
La experiencia realizada correspondiente al sistema de control adaptativo basado en
reguladores autoajustables se obtuvo al ejecutar el experimento bajo las modificaciones
de los parametros del sistema. esta modificaciones son logradas a traves de la adicion
de una masa de 0.909 [kg] en la junta de revolucion situada al final de la articulacion
(ver figura 5.21).
Figura 5.21: Sistema de pesas para el pendulo simple.
La adicion de esta masa, modifica directamente los parametros del sistema tales
como masa (m), centro de masa (lc) e inercia (I) de la ecuacion de movimiento del
pendulo simple:
(ml2c + I)q + αq +mglc sin(q) = τ (5.38)
La relacion de variacion de los parametros fısicos respecto a la funcion de
transferencia discreta de nuestro sistema, fueron calculados por Gonzalez (2002) y
estas relaciones estan dadas por:
b0 = a(T − a+ ae−Tb
)a1 = −(1 + e−Tb)
b1 = a(T − a− ae−Tb
)a2 = e−Tb
donde a = θ1/θ2g, b = 1/a, θ1 = ml2c + I y θ2 = mlc.
5.2 Control adaptativo para el pendulo simple. 85
La referencia W (kT ) se obtiene al pasar un escalon de amplitud Wref (KT ) por un
filtro de segundo orden cuya funcion de trasferencia pulso esta descrita como:
W (z)
Wref (z)=
(1− e−6.0T
)2z2 − 2e−6.0T z + e−12.0T
(5.39)
este filtro nos permite lograr que la respuesta del sistema sea mas suave a la de un
escalon y que tenga un tiempo de asentamiento de alrededor 1.0 [seg]. Los parametros
del sistema de control y del identificador fueron colocados en:
ωn = 30
[rad
seg
]ζ = 1.0
αcontrol = 10.0
αident = 100000
S0 = 0.001
Trmax = 500000
λmin = 0.90
σ = 0.7[rad]
En las figuras 5.22 y 5.23, se observa el resultado de este experimento con una
referencia descrita por:
Wref (kT ) =
30 sin
(2π
30tW
)sin
(20π
30tW
)[deg]
0 [deg]
0 [seg] 6 tW < 15 [seg]
15 [seg] 6 tW 6 20 [seg]
en el punto de operacion (0, 0), con un perıodo de muestreo de T = 0.01 [seg].
La fase de preidentificacion se distingue entre el intervalo de tiempo (0 - 10)[seg]
(ver figura 5.22(a)). Esta fase produjo los siguientes valores para los parametros del
sistema:
b0 = 0.0054
b1 = 0.0010
a1 = −1.9828
a2 = 0.9893
5.2 Control adaptativo para el pendulo simple. 86
(a) Comportamiento del sistema de control adaptativo.
(b) Evolucion de los parametros del sistema.
Figura 5.22: Experimento para evaluar el comportamiento del sistema de control
adaptativo para el control de posicion del pendulo simple. Punto de operacion (0, 0).
5.2 Control adaptativo para el pendulo simple. 87
Por lo tanto, las caracterısticas del sistema en este perıodo de tiempo quedan
descritas como:
• Ceros:
z1 = −0.1852[radseg
]• Polos:
z2,3 = 0.9914± 0.0802i[radseg
]En el perıodo de tiempo (14 - 29)[seg], muestra el seguimiento de la trayectoria, al
evaluar el comportamiento del sistema de control se obtuvo que el error de seguimiento
maximo es 0.0694 [rad] y un ındice maximo de desempeno de 0.5866 [rad].
En el perıodo de tiempo del alrededor de (29 - 34)[seg], se procedio a adicionar el
peso en la junta de revolucion. Como la senal de referencia es periodica, en t = 34[seg]
emprende de nuevo el sistema el seguimiento de referencia.
En t = 41.28[seg], ocurre que el ındice de desempeno excede a la varianza
establecida al inicio del experimento, por lo tanto, el sistema de control entra en la
fase de identificacion de la planta a lazo abierto, ya que el controlador STR se volvio
obsoleto para las nuevas variaciones del sistema (ver figura 5.23).
Entre (41.28 - 44)[seg], se observa como el controlador STR lleva al sistema al
las cercanıas de la region de operacion. La fase de identificacion del sistema se
realizo durante un perıodo de tiempo de 10 [seg] y en ella se obtuvieron los siguiente
parametros estimados del sistema:
b0 = 0.0022
b1 = 0.0004
a1 = −1.9629
a2 = 0.9691
si estudiamos la variacion que sufren los nuevos parametros estimados tomando a los
anteriores como los reales tenemos que:
b0 =
∣∣∣∣b0 − b0b0
∣∣∣∣× 100% = 59.26%
b1 =
∣∣∣∣b1 − b1b1
∣∣∣∣× 100% = 60.0%
5.2 Control adaptativo para el pendulo simple. 88
a1 =
∣∣∣∣a1 − a1
a1
∣∣∣∣× 100% = 1.0%
a2 =
∣∣∣∣a2 − a2
a2
∣∣∣∣× 100% = 2.0%
Los nuevos polos y ceros del sistema a lazo abierto, quedan ubicados en:
• Ceros:
z1 = −0.1818[radseg
]• Polos:
z2,3 = 0.9815± 0.0765i[radseg
]Culminada la fase de identificacion del sistema el algoritmo de control espera 4
[seg] a que la planta se estabilice en las cercanıas de la region de operacion para luego
cerrar el lazo del sistema con el nuevo controlador calculado. A partir t = 61.25[seg] se
aplica la senal de referencia antes descrita, obteniendo como resultado un seguimiento
de trayectoria con un error de posicion maximo de alrededor 0.0642 [rad] y un ındice
de desempeno maximo de 0.5378 [rad](ver figuras 5.22 y 5.23).
Figura 5.23: Comportamiento del supervisor y del ındice de desempeno.
Capıtulo 6
Conclusiones
Las caracterısticas dinamicas que engloban al sistema electromecanico denominado
Pendubot permiten realizar a tiempo real distintos ensayos o experiencias
fundamentadas en el conocimiento de diferentes aspectos de la fısica, del control lineal,
no lineal y de las tecnicas de control adaptativa.
En el presente trabajo se realizo un estudio de distintas tecnicas de control, los
algoritmos necesarios para el diseno de controladores basados en las mismas y en
particular su implementacion en el sistema computacional de control y supervision
dSPACE, de forma que pueda ser ampliamente utilizado en la Universidad de los Andes
en las areas de docencia e investigacion.
Este proyecto comenzo modelando al Pendubot a partir de las ecuaciones de
Lagrange, obteniendo ası un modelo no lineal que exprese la relacion entre las variables
del sistema y sus parametros. Inmediatamente se procedido a la obtencion de los
parametros del sistema vıa medida directa e indirecta para finalizar con el estudio de
estabilidad, controlabilidad y observabilidad del sistema linealizado.
Luego se disenaron e implementaron leyes de control continuas por realimentacion
del vector de estado para el Pendubot en configuraciones inestables. Estas leyes de
control lineales permitieron cumplir con el objetivo de regulacion y seguimiento de
trayectorias con un error de posicion mınimo.
Posteriormente se disenaron y evaluaron leyes de control discretas para el pendulo
simple. Para lograr el objetivo control de posicion del sistema en configuraciones
6 Conclusiones 90
estables o inestables, se desarrollaron controladores lineales basados en un enfoque
polinomial, estos son conocidos como controladores RST. En las experiencias realizadas
se observa que estos controladores tienen un buen desempeno pero no disminuyen a
cero el error de posicion.
Por ultimo se presento el diseno e implementacion de la tecnica de control adaptativo
basado en controladores autoajustables indirectos, para el control de posicion de
un pendulo simple. Es de resaltar que se ha desarrollado un sistema de control
modular y flexible, ya que este tipo de controladores se basa en la separacion de
las tareas de control e identificacion, siendo una aportacion importante que consiste
en la simplificacion y la automatizacion, en la medida de lo posible, en la fase de
arranque y de operacion del sistema de control. Se definen los algoritmos necesarios de
control e identificacion apropiados y el supervisor automatizado que permita el correcto
funcionamiento de la planta por largos perıodos de tiempo.
En el diseno e implementacion del algoritmo de identificacion de parametros se
propuso el algoritmo de mınimos cuadrados recursivo con factor de olvido variable.
Se realizaron experiencias que permitieron medir la eficacia y el comportamiento del
mismo. Como resultado obtuvimos que la inicializacion de la matriz de covarianza
y la modificacion de la sensibilidad de la funcion del factor de olvido, alteran el
comportamiento del algoritmo de identificacion.
Para la apreciacion de la conducta y eficacia del sistema de control adaptativo, se
realizo una experiencia en cual se modificaron los parametros fısicos del pendulo. En
esta se observaron todas la etapas que enmarcan al sistema de control adaptativo y en
particular se resalta la adaptacion del sistema de control ante los nuevos cambios en la
dinamica del Sistema.
Para finalizar, se sugiere como posibles proyectos futuros, la implementacion y
verificacion en el sistema de control adaptativo desarrollado, de nuevos metodos de
control, identificacion y/o supervision.
Apendice A
Ecuaciones de linealizacion
Las matrices de los jacobianos del sistema, estan definidas como:
A =∂f
∂x
∣∣∣∣(X,uop)
=
∂f1∂x1
∂f1∂x2
∂f1∂x3
∂f1∂x4
∂f2∂x1
∂f2∂x2
∂f2∂x3
∂f2∂x4
∂f3∂x1
∂f3∂x2
∂f3∂x3
∂f3∂x4
∂f4∂x1
∂f4∂x2
∂f4∂x3
∂f4∂x4
(A.1)
B =∂f
∂x
∣∣∣∣(X,uop)
=
∂f1∂u
∂f2∂u
∂f3∂u
∂f4∂u
(A.2)
De la representacion en variables de estado de nuestro sistema descrito por las
ecuaciones no lineales (3.38), (3.39), (3.40) y (3.41), las derivadas evaluadas en el
punto de operacion vienen dadas por:
∂f2
∂x1
∣∣∣∣(X,uop)
=− g (θ2θ4 cos (X1)− θ5 cos (X1 +X3) θ3 cos (X3))
−θ2θ1 + θ23 (cos (X3))
2 (A.3)
∂f2
∂x2
∣∣∣∣(X,uop)
=θ2θ6
−θ2θ1 + θ23 (cos (X3))
2 (A.4)
∂f2
∂x3
∣∣∣∣(X,uop)
=θ2θ5g cos (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2−
. . .− 2θ2 (uop − θ4g sin (X1)− θ5g sin (X1 +X3)) θ
23 cos (X3) sin (X3)(
−θ2θ1 + θ23 (cos (X3))
2)2 + . . .
A Ecuaciones de linealizacion 92
. . .+θ3 sin (X3) θ5g sin (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 − . . .
. . .− (θ2 + θ3 cos (X3)) θ5g cos (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 − . . .
. . .− 2(θ2 + θ3 cos (X3)) θ5g sin (X1 +X3) θ
23 cos (X3) sin (X3)(
−θ2θ1 + θ23 (cos (X3))
2)2 (A.5)
∂f2
∂x4
∣∣∣∣(X,uop)
=− (θ2 + θ3 cos (X3)) θ7
−θ2θ1 + θ23 (cos (X3))
2 (A.6)
∂f2
∂u
∣∣∣∣(X,uop)
=− θ2
−θ2θ1 + θ23 (cos (X3))
2 (A.7)
∂f4
∂x1
∣∣∣∣(X,uop)
=(θ2 + θ3 cos (X3)) (−θ4g cos (X1)− θ5g cos (X1 +X3))
−θ2θ1 + θ23 (cos (X3))
2 + . . .
. . .+(θ1 + θ2 + 2 θ3 cos (X3)) θ5g cos (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 (A.8)
∂f4
∂x2
∣∣∣∣(X,uop)
=− (θ2 + θ3 cos (X3)) θ6
−θ2θ1 + θ23 (cos (X3))
2 (A.9)
∂f4
∂x3
∣∣∣∣(X,uop)
=− θ3 sin (X3) (uop − θ4g sin (X1)− θ5g sin (X1 +X3))
−θ2θ1 + θ23 (cos (X3))
2 − . . .
. . .− (θ2 + θ3 cos (X3)) θ5g cos (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 + . . .
+ 2(θ2 + θ3 cos (X3)) (uop − θ4g sin (X1)− θ5g sin (X1 +X3)) θ
23 cos (X3) sin (X3)(
−θ2θ1 + θ23 (cos (X3))
2)2 −
. . .− 2θ3 sin (X3) θ5g sin (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 + . . .
. . .+(θ1 + θ2 + 2 θ3 cos (X3)) θ5g cos (X1 +X3)
−θ2θ1 + θ23 (cos (X3))
2 + . . .
. . .+ 2(θ1 + θ2 + 2 θ3 cos (X3)) θ5g sin (X1 +X3) θ
23 cos (X3) sin (X3)(
−θ2θ1 + θ23 (cos (X3))
2)2(A.10)
∂f4
∂x4
∣∣∣∣(X,uop)
=(θ1 + θ2 + 2 θ3 cos (X3)) θ7
−θ2θ1 + θ23 (cos (X3))
2 (A.11)
∂f4
∂u
∣∣∣∣(X,uop)
=θ2 + θ3 cos (X3)
−θ2θ1 + θ23 (cos (X3))
2 (A.12)
Apendice B
Control Swing-Up
El control al cual denominaremos Swing-Up consiste en un control no lineal el cual
permitira proporcionar la energıa suficiente al sistema para partir de un estado de
reposo (X1 = 0, X2 = 0, X3 = 0, X4 = 0, Uop = 0) a las cercanıas de las regiones de
operacion definidas como Abajo y Arriba. El diseno de este control se ha realizado en
dos etapas:
• Una parcial linealizacion del modelo.
• El diseno de un controlador del tipo PD con Pre-Compensacion de la aceleracion.
B.1 Diseno del control Swing-Up
La idea consiste en aplicar un par no lineal a la primera articulacion, de tal forma que
eliminemos la no linealidad del mismo.
Esto puede lograrse a traves de un lazo de control interno obteniendo como resultado
una nueva entrada de control que denominaremos v. El esquema de control propuesto
se puede observar en la figura B.1.
Las ecuaciones de movimiento que describen a nuestro sistema fueron obtenidas en
la ecuacion (3.41). Igualando a:
x2(t) = v (B.1)
despejando de (B.1) a la senal de control u(t) obtenemos el torque no lineal de la
siguiente forma:
B.1 Diseno del control Swing-Up 94
Figura B.1: Diagrama de bloques de la parcial linealizacion del sistema.
x2 =− θ2u− θ2θ6x2 − θ2θ4g sin (x1)− θ2θ5g sin (x1 + x3)
−θ2θ1 + θ23 (cos (x3))
2 − . . .
. . .− θ2θ3 sin (x3)x4x2 + θ2θ3 sin (x3) (x2 + x4)x4
−θ2θ1 + θ23 (cos (x3))
2 + . . .
. . .+(θ2 + θ3 cos (x3)) (−θ7x4 − θ5g sin (x1 + x3)− θ3 sin (x3)x
22)
−θ2θ1 + θ23 (cos (x3))
2 = v (B.2)
u(t) =− θ3 cos (x3) θ5 g sin (x1 + x3) + θ23 sin (x3) cos (x3) (x2)
2 + θ3 sin (x3) θ2 (x2)2
θ2
+
. . .+2 θ3 sin (x3) θ2 x2x4 + θ3 sin (x3) θ2 (x4)
2 + θ3 cos (x3) θ7 x4
θ2
− . . .
. . .− θ2 θ4 g sin (x1)− θ2 θ6 x2 + θ2 θ7 x4 − vθ2 θ1 + vθ23 (cos (x3))
2
θ2
(B.3)
Sustituyendo el torque u(t) en las ecuaciones de movimiento (3.41) obtenemos el
sistema parcialmente linealizado:
x1(t) = x2(t) (B.4)
x2(t) = v (B.5)
x3(t) = x4(t) (B.6)
x4(t) = f4(x, v) (B.7)
donde:
f4(x, v) = −vθ2 + θ5 g sin (x1 + x3) + θ3 sin (x3)x22 + θ3 cos (x3) v + θ7 x4
θ2
(B.8)
B.1 Diseno del control Swing-Up 95
Observemos que la ecuacion (B.4) es lineal y que el lazo externo del sistema esta
disenado para el seguimiento de trayectorias sobre la primera articulacion (x1(t)). La
dinamica de respuesta de la segunda articulacion (x3(t)) es obtenida como resultado
de la ecuacion no lineal (B.8). La ecuacion (B.4), representa la dinamica interna del
sistema con respecto a la salida.
y(t) = x1(t) (B.9)
Ahora la idea es realizar un lazo de control externo que admita el seguimiento de
trayectorias del primer enlace, permitiendo excitar la dinamica interna del sistema y
ası poder lograr el Swing del segundo enlace. Para el seguimiento de trayectorias del
Pendubot, nosotros proponemos un controlador de tipo PD con Pre-Compensacion de
la aceleracion (Block 1991), descrito por:
v = xd1 +Kd
(xd1 − x2
)+Kp
(xd1 − x1
)(B.10)
donde los terminos son:
• xd1 es la aceleracion de la trayectoria deseada.
• xd1 es la velocidad de la trayectoria deseada.
• xd1 es la trayectoria deseada.
Ahora, una vez disenado el controlador, debemos determinar cuales son las
trayectorias que nos permitiran realizar el Swing de las articulaciones para trasladarlos
a las regiones de operacion deseadas. Para realizar el Swing-Up hacia la posicion de
Arriba, fue apto utilizar un escalon de amplitud π. esta trayectoria trabaja bien en
simulaciones (ver Figura B.3) con valores nominales para las ganancias del controlador
PD (Kp = 92.53 y Kd = 14).
La trayectoria para lograr el Swing-Up en el punto de operacion que denominas
Abajo, es un poco mas complicada. En simulaciones (ver Figura B.3) encontramos una
trayectoria que trabaja correctamente, esta trayectoria es descrita como:
xd =π
4sin (8t) t < 1[seg]
xd = 0 t > 1[seg]
B.1 Diseno del control Swing-Up 96
Figura B.2: Simulacion del Swing Up punto de equilibrio Abajo.
Figura B.3: Simulacion del Swing Up punto de equilibrio Arriba.
B.2 Implementacion del control Swing-Up 97
esta trayectoria proporciona la energıa suficiente al sistema que permite llevarlo del
reposo al punto de operacion denominado Abajo.
En simulacion (ver figura B.2) la trayectoria estimada trabaja bien y a su vez
se determinaron las constantes del controlador, su valor nominal es Kp = 14, 625 y
Kd = 4. El proceso para hallar las ganancias del controlador PD, fue a traves de
ensayo y error.
B.2 Implementacion del control Swing-Up
Ahora para poder efectuar nuestro objetivo, el controlador consta de dos partes. La
primera parte se basa en el control Swing-Up, el cual proporciona la energıa necesaria
al Pendubot para llevar los dos enlaces a las cercanıas del punto de operacion. Una vez
estando en las proximidades del punto de operacion, es cuando la segunda parte del
controlador se ejecuta, la cual es, el control del balanceo, este algoritmo de control es
disenado en el capitulo 4, el cual se basa en la realimentacion del vector de estado. El
paso del controlador Swing-Up al Control de Balanceo se debe a una simple estructura
de decision cuya restriccion esta en terminos de la posicion y velocidad del sistema
(x1(t), x2(t), x3(t), x4(t)) como se muestra en la siguiente implantacion del algoritmo
del control.
void Control() {
//Punto de Operacion
PuntoOperacion();
//Ganacias de Realimentacion
AsignaGanacias();
if(band2==0){
w=8.0;
amp=pi/4.0;
qd=amp*sin(w*t);
dqd=amp*w*cos(w*t);
ddqd=-amp*w*w*sin(w*t);
if(t>1.01){
B.2 Implementacion del control Swing-Up 98
qd=0.0;
dqd=0.0;
ddqd=0.0;
}
Kp=14.7;
Kd=4.0;
}
if(band2==1){
qd=pi;
dqd=0;
ddqd=0;
Kp=81.0;
Kd=13.0;
}
//Error Seguimiento
e=qd-x1;
de=dqd-x2;
if (habcon==1){
if((abs(q1-X1)<0.12 && abs(q2-X3)<0.20 && abs(x2-X2)<0.1) &&
abs(x4-X4)<0.1 || band3==1){
band3=1;
u=Uop-K[1]*(q1-X1)-K[2]*(qp1-X2)-K[3]*(q2-X3)-K[4]*(qp2-X4);
}
else{
v=ddqd+Kd*de+Kp*e;
u=-(t3*cos(x3)*t5*g*sin(x1+x3)+t3*t3*sin(x3)*cos(x3)*x2*x2+
+t3*sin(x3)*t2*x2*x2+2*t3*sin(x3)*t2*x2*x4+t3*sin(x3)*t2*x4*x4+
+t3*cos(x3)*t7*x4-t2*t4*g*sin(x1)-t2*t6*x2+t2*t7*x4-v*t2*t1+
+v*t3*t3*cos(x3)*cos(x3))/t2;
}
}
B.2 Implementacion del control Swing-Up 99
else{
u=0.0;
}
t=t+DT;
}
El procedimiento void PuntoOperacion(), es el encargado de seleccionar los
correctos valores para Uop, X1, X2, X3, X4, los cuales definen el punto el operacion.
El procedimiento void AsignaGanacias(), es el encargado de seleccionar los
correctos valores para K[1], K[2], K[3], K[4], los cuales definen las ganancias de
realimentacion del vector de estado y estas varıan segun sea el punto de operacion.
Las variables:
• int habcon: Variable del tipo entero asociado a la habilitacion del control
(habcon = 1). esta es activada a traves del Cockpit (ver figura B.4).
• int band2: Variable del tipo entero asociada a la seleccion de los puntos de
operacion definidos como Abajo (band2=0) y Arriba (band2=1). Esta eleccion se
hace a traves del Cockpit (ver figura B.4).
• int band3: Variable del tipo entero asociada a marcar un evento. El
evento se produce cuando las articulaciones del Pendubot se encuentran en las
proximidades de la region de operacion, permitiendo realizar el cambio de control
(band3=1) Swing-Up al Control de Balanceo.
Para la implementacion en el Cockpit, se procedio a delinear una interfaz grafica
como se muestra en la figura B.4. Consta de un indicador tipo barra asociado a la
senal de control (u(t)). Cuenta con seis display tipo digitales para mostrar la posicion
actual de las articulaciones 1 (x1(t)) y 2 (x3(t)), tanto en [rad] como en [deg], para su
facil compresion y supervision. Los otros dos display muestran la velocidades de las
articulaciones (x2(t) y x4(t)) en [rad/seg].
Ademas cuenta con dos cuadros de seleccion, uno empleado para la eleccion del
la region de operacion y el otro para la habilitacion del control asociada a la variable
habcon.
B.3 Resultados experimentales 100
Figura B.4: Captura de pantalla del Cockpit para la implementacion del Control Swing-
Up.
B.3 Resultados experimentales
Una vez implantado el algoritmo de control antes descrito se procedio a la captura de
datos del ejercicio. Como se pude apreciar en la figura B.5, se observa como el Pendubot
parte del reposo en el instante t = 0[seg] y se le suministra energıa de tal forma que llega
a su punto de operacion denominado Abajo aproximadamente en t = 3[seg]. Se puede
comentar que la transicion de control entre los dos tipos de controladores que abordan
este ejercio, se hace en alrededor del intervalo de tiempo t = 1.7[seg] y t = 1.8[seg].
En la figura B.6, se observa en el ensayo de trasladar al Pendubot de su estado
de reposo al punto de operacion denominado Arriba. esta experiencia se realizo
en proximamente 1.0 [seg] y la transicion del controlador no lineal al control por
realimentacion del vector de estado se realiza aproximadamente en t=0.8 [seg].
B.3 Resultados experimentales 101
Figura B.5: Datos Experimentales tomados del Pendubot en el ejercicio del Swing Up,
con punto de equilibrio Abajo.
Figura B.6: Datos Experimentales tomados del Pendubot en el ejercicio del Swing Up,
con punto de equilibrio Arriba.
Apendice C
Implementacion de los algoritmos
de control
Este apendice esta destinado a la exhibicion de los las funciones necesarias para
desarrollar e implementar las distintos algoritmos de control.
C.1 Control de balanceo
Para la implementacion del algoritmo de control se tuvo en cuenta cuatro banderas
que influyen en el control del programa, tres de ellas (habcon, band2, band3) estan
asociadas a la interfaz grafica de control y supervision, disenado a traves del Cockpit
(ver figura 4.4) y la ultima (band1), esta relacionada a un evento de seguridad.
El significado para cada bandera de expresa como:
• int habcon: Bandera la cual hablita la senal de control y esta asociada a la casilla
de seleccion denominada Habilitar control como se muestra en la figura 4.4. Toma
valores de 0 o 1 para desactivar o activar la senal de control respectivamente.
• int band1: Asociada a una medida de seguridad que se tomo a la hora de
implantar el sistema de control. esta se basa en deshabilitar el control cuando la
planta se aleje excesivamente de la region de operacion.
• int band2: Afiliada a la seleccion de la region de operacion a traves de la casilla
C.1 Control de balanceo 103
de eleccion denominada Punto de Operacion (ver figura 4.4). Toma valores
de 0 o 1 para indicar los puntos de operacion referidos como Abajo y Arriba
respectivamente.
• int band3: Relacionada a la seleccion de la senal de referencia, las cuales pueden
ser del tipo escalon modulado en amplitud y del tipo sinusoidal modulada en
frecuencia.
El algoritmo de control comienza por verificar la region de operacion, para la
posterior seleccion de las adecuadas ganancias de realimentacion, el mismo esta descrito
en el siguiente codigo:
void Control() {
//Punto de Operacion
PuntoOperacion();
//Ganancias de Realimentacion
AsignaGanacias();
if (habcon==1 && abs(q1-X1)<0.30 && abs(q2-X3)<0.30 && band1==0){
if(band3==0)
Escalon();
if(band3==1)
Seno();
//Medida de Seguridad
if(band2==0 && abs(q1)>(pi/180)*(70))
band1=1;
if(band2==1 && (q1<(pi/180)*(110)||q1>(pi/180)*(230)))
band1=1;
}
else{
u=0.0;
}
}
void PuntoOperacion(){
C.1 Control de balanceo 104
if(band2==0){
X1=0;
X2=0;
X3=pi-X1;
X4=0;
Uop=t4*g*sin(X1);
}
if(band2==1){
X1=pi;
X2=0;
X3=pi-X1;
X4=0;
Uop=t4*g*sin(X1);
}
}
void AsignaGanacias(){
if(band2==0){
K[1]=4.3771;
K[2]=0.3807;
K[3]=7.0356;
K[4]=0.8708;
}
if(band2==1){
K[1]=-12.4211;
K[2]=-2.34680;
K[3]=-11.6687;
K[4]=-1.47070;
}
}
void Escalon(){
u=Ke*(pi/180)*ref+Uop-K[1]*(q1-X1)-K[2]*(qp1-X2)-K[3]*(q2-X3)-...
C.2 Control RST para el Pendulo Simple 105
...-K[4]*(qp2-X4);
}
void Seno(){
u=Ke*(pi/180)*ref*sin((2*pi/f)*t)+Uop-K[1]*(q1-X1)-K[2]*(qp1-X2)-...
...-K[3]*(q2-X3)-K[4]*(qp2-X4);
t=t+DT;
}
C.2 Control RST para el Pendulo Simple
Para la implementacion del controlador RST para el control del pendulo simple, se
disenaron los algoritmos void Control() y void Control_RST().
void Control() {
if(habcon == 0){
t=0.0;
u=0.0;
}
else if(habcon == 1){
Control_RST();
}
else {
u=0.0;
}
}
void Control_RST(){
float T=DT;
//Polinomio deseado en Z
if (Zita < 1.0){
a=exp(-T*Zita*Wn)*cos(T*Wn*sqrt(1.0-Zita*Zita));
C.2 Control RST para el Pendulo Simple 106
b=exp(-T*Zita*Wn)*sin(T*Wn*sqrt(1.0-Zita*Zita));
c=exp(-T*Alpha*Zita*Wn);
W1=-c-2*a;
W2=2*c*a+a*a+b*b;
W3=-c*a*a-c*b*b;
}
if(Zita >= 1.0){
a=exp(-T*Zita*Wn)*exp(T*Wn*sqrt(Zita*Zita-1.0));
b=exp(-T*Zita*Wn)*exp(-T*Wn*sqrt(Zita*Zita-1.0));
c=exp(-T*Alpha*Zita*Wn);
W1=-c-b-a;
W2=c*b+c*a+a*b;
W3=-c*b*a;
}
//Calculo de las ganacias del controlador
A1 = (-b0*b0*W3+b1*b0*W2-b1*b1*W1-a2*b1*b0+a1*b1*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
A0 = 1.0;
B1 = -(-W3*a1*b0+W3*b1+a2*b0*W2-a2*b1*W1-a2*a2*b0+a2*a1*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
B0 = -(-W3*b0+b1*W2+W1*a2*b0-W1*a1*b1-a2*a1*b0+a1*a1*b1-a2*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
F1 = -c;
//Calculo de la Ganancia de Preamplificacion
if(Zita < 1.0)
K0 = (1.0-2*a+a*a+b*b)/(b0+b1);
else
K0 = (1.0-a-b+a*b)/(b0+b1);
//Senal de Control
u=(K0*(A0*Wk+F1*Wk1)/A0)-((B0*Y+B1*Y_1)/A0)-(A1/A0)*U_1;
}
C.3 Algoritmo de identificacion de parametros por mınimos cuadrados recursivo con
factor de olvido variable 107
C.3 Algoritmo de identificacion de parametros por
mınimos cuadrados recursivo con factor de
olvido variable
La implementacion del algoritmo de identificacion de parametros consta de las
siguientes funciones:
void Identificacion(){
//Creacion del Vector de Regresion y Leyendo el Valor Actual
X[0]=-Y_1;
X[1]=-Y_2;
X[2]=U_1;
X[3]=U_2;
//Calculo el Vector de Ganancias de Correccion K
Multi_MV(P,X,V1); // V1=P*X
C1=Multi_VV(X,V1); // C1=(X’)*V1;
C2=lambda+C1; // C2=lambda+(X’)*P*X
Multi_VC(V1,(1.0/C2),K); // K=(P*X)/C2
//Calculo del Error de Estimacion E
C1=Multi_VV(X,theta); // C1=(X’)*THETA
E =Y-C1; // E=Y-(X’)*THETA
EP=fabs(((Y-C1)/Y)*100.0);
//Estimacion de los Nuevos Paramatros THETA
Multi_VC(K,E,V1); // V1=E*K
Suma_V(theta,V1,theta); // THETA(K) = THETA(K-1)+V1
//Calculo del nuevo Factor de Olvido LAMBDA
C1=Multi_VV(X,K); //C1=(X’)*K
lambda=1.0-(1.0-C1)*(E*E)/So; //lambda=1-(1-C1)*E*E/So
if (lambda < lambdamin){
lambda = lambdamin;
}
C.3 Algoritmo de identificacion de parametros por mınimos cuadrados recursivo con
factor de olvido variable 108
if (lambda > 1.0){
lambda = 1.0;
}
//Calculo de la nueva matirz de Covarianza P
Multi_VV1(K,X,M1); // M1= K*(X’)
Resta_M(I,M1,M2); // M2= I-M1
Multi_MM(M2,P,W); // W= M2*P
Multi_MC(W,(1.0/lambda),M1);
tr=Traza(M1);
if (tr > Trmax){
lambda = 1.0;
}
Multi_MC(W,(1.0/lambda),P); // P= W/lambda
//Actualizando los Valores
U_2=U_1;
U_1=u-Uop;
Y_2=Y_1;
Y_1=Y-Yop;
a1=theta[0];
a2=theta[1];
b0=theta[2];
b1=theta[3];
}
• void Multi_MC(double M[][TAMMY], double C, double R[][TAMMY]):
Funcion responsabilizada de calcular la multiplicacion de una matriz (M) por una
constante (C), retorna como resultado a la matriz R.
• void Multi_MM(double M1[][TAMMY], double M2[][TAMMY], double R[][TAMMY]):
Funcion que determina la multiplicacion de la matriz M1 por la matriz M2, retorna
como resulta a la matriz R.
• void Multi_MV(double M[][TAMMY], double V[], double VR[]): Funcion
C.3 Algoritmo de identificacion de parametros por mınimos cuadrados recursivo con
factor de olvido variable 109
que determina las multiplicacion de una matriz (M) por un vector (V), el vector
resultado es devuelto como parametro de la funcion (VR).[a b
c d
][x
y
]=
[ax+ by
cx+ dy
]
• void Multi_VC(double V[], double C, double R[]): Funcion encargada de
calcula la multiplicacion de un vector (V) por una constante (C), retorna como
resultado el vector R.
• void Multi_VM(double V[], double M[][TAMMY], double VR[]): Funcion
que calcula la multiplicacion de un vector(V) por una matriz (M), el vector
resultado es devuelto como parametro de la funcion (VR).
[x y
] [ a b
c d
]=[ax+ cy bx+ dy
]
• void Multi_VV1(double V1[], double V2[], double R[][TAMMY]): Funcion
que determina la multiplicacion de un vector columna (V1) con un vector fila
(V2), el resultado es la matriz R.[x
y
] [a b
]=
[ax bx
ay by
]
• void Suma_M(double M1[][TAMMY], double M2[][TAMMY], double R[][TAMMY]):
Funcion encargada de la suma de las matrices M1 y M2, el resultado (R) devuelto
por referencia a traves de la funcion.
• void Resta_M(double M1[][TAMMY], double M2[][TAMMY], double R[][TAMMY]):
Funcion responsabilizada de la resta de las matrices M1 y M2, como resultado se
obtiene la matriz R.
• La constante TAMMY es definida como la cantidad de parametros a estimar de la
planta (n+m).
C.4 Control adaptativo para el Pendulo Simple 110
C.4 Control adaptativo para el Pendulo Simple
Para la implementacion del sistema de control adaptativo para el pendulo simple se
procedio a crear los siguientes codigos en C:
void Control() {
if(habcon == 0){
t=0.0;
u=0.0;
}
else if(habcon == 1){
PRBS();
if(t <= 10.0){
Identificacion();
t=t+DT;
}
else if( t <= 14.0){
t=t+DT;
u=0.0;
}
else{
if(Indice > 0.7 && band2 == 0){
Multi_MC(I,alpha,P);
InicializaJ();
Indice=0.0;
band2=1;
t=20.0;
tW=0.0;
}
if(band2 == 1){
if(t < 24.0){
Wkref=0.0;
C.4 Control adaptativo para el Pendulo Simple 111
Control_Adaptativo();
}
else if (t < 34.0) { Identificacion(); }
else if (t < 40.0) { u=0.0; }
else {
u=0.0;
band2=0;
}
t=t+DT;
}
else if(band2 ==0){
if (tW <= 15)
{ Wkref=(30)*(sin((2*pi/30.0)*tW)*sin((10*2*pi/30.0)*tW)); }
else if(tW > 15 && tW < 20) { Wkref=0.0; }
else { tW=0.0; }
tW=tW+DT;
Indice_D(); //Indice de Desempe~no
Control_Adaptativo(); //Controlador Auto-Ajustable RST
}
else { u=0.0; }
}
}
else{ u=0.0; }
}
void Control_Adaptativo(){
//Polinomio deseado en Z
float T=DT;
if (Zita < 1.0){
a=exp(-T*Zita*Wn)*cos(T*Wn*sqrt(1.0-Zita*Zita));
b=exp(-T*Zita*Wn)*sin(T*Wn*sqrt(1.0-Zita*Zita));
c=exp(-T*Alpha*Zita*Wn);
C.4 Control adaptativo para el Pendulo Simple 112
W1=-c-2*a;
W2=2*c*a+a*a+b*b;
W3=-c*a*a-c*b*b;
K0 = (1.0-2*a+a*a+b*b)/(b0+b1);
}
if(Zita >= 1.0){
a=exp(-T*Zita*Wn)*exp(T*Wn*sqrt(Zita*Zita-1.0));
b=exp(-T*Zita*Wn)*exp(-T*Wn*sqrt(Zita*Zita-1.0));
c=exp(-T*Alpha*Zita*Wn);
W1=-c-b-a;
W2=c*b+c*a+a*b;
W3=-c*b*a;
K0 = (1.0-a-b+a*b)/(b0+b1);
}
//Calculo de las ganacias del controlador
if((-a2*b0*b0+a1*b1*b0-b1*b1) != 0.0){
A1=(-b0*b0*W3+b1*b0*W2-b1*b1*W1-a2*b1*b0+a1*b1*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
A0=1.0;
B1=-(-W3*a1*b0+W3*b1+a2*b0*W2-a2*b1*W1-a2*a2*b0+a2*a1*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
B0=-(-W3*b0+b1*W2+W1*a2*b0-W1*a1*b1-a2*a1*b0+a1*a1*b1-a2*b1)/
(-a2*b0*b0+a1*b1*b0-b1*b1);
F1=-c;
}
//Senal de Control
u=(K0*(A0*Wk+F1*Wk1)/A0)-((B0*Y+B1*Y_1)/A0)-(A1/A0)*U_1;
//Bloque de Saturacion
if( u > 2.0) { u=2.0; }
if( u < -2.0) { u=-2.0; }
}
C.4 Control adaptativo para el Pendulo Simple 113
void Indice_D(){
int i=0;
float Suma=0.0;
for(i=99; i>0; i--) { J[i]=J[i-1]; }
J[0]=(Y-Wk)*(Y-Wk);
for(i=0; i<100; i++) { Suma=J[i]+Suma; }
//Norma Euclidiana
Indice=sqrt(Suma);
}
Bibliografıa
Block, D. (1991), Mechanical desing and control of the pendubot, Master’s thesis,
University of Illinois.
Cervera, J. (1999), Analisis del entorno simulink/rwt para el diseno de sistemas de
control con la tarjeta dspace 1102, Proyecto de grado, Universidad de Murcia.
dSPACE GmbH (2001), DS1102 DSP Controller Board Intelligent Single-Board
Solution, dSPACE GmbH, Germany.
Gonzalez, G. (2002), Desarrollo de experiencias de modelado y control a tiempo real de
un pendulo, Proyecto de grado eisula, Universidad de los Andes, Merida - Venezuela.
Mechatronic, S. (1998), Pendubot Model P-2 User’s Manual, Mechatronic System, Inc.
Ogata, K. (1993), Ingenierıa de Control Moderna, segunda edn, Prentice-Hall
Hispanoamericana, S.A.
Ogata, K. (1996), Sistemas de Control en Tiempo Discreto, segunda edn, Prentice-Hall
Hispanoamericana, S.A.
Astrom, K. & Wittenmark, B. (1989), Adaptive Control, Addison Wesley.
Astrom, K. & Wittenmark, B. (1997), Computer-Controlled Systems Theory and
Design, Prentice-Hall.
Rodrıguez, F. & Lopez, M. (1996), Control Adaptativo y Robusto, Universidad de
Sevilla.
BIBLIOGRAFIA 115
Sira-Ramırez, H., Marquez, R. & Rivas-Echeverrıa, F. (1997), Control de Sistemas No
Lineales, Universidad de Los Andes, Merida 5101, Venezuela.
Spong, M. (1996), ‘Energy based control of a class of underactuated mechanical
system’, Coordinated Science Laboratory, University of Illinois, 1308 West Main
Stree, Urbana, Illinois 61801 USA .
Recommended