Está en la página 1de 104

Diseño e implementación de un control

óptimo LQR con la tarjeta Raspberry Pi

Leidy Tatiana Poveda Galvis


José David Martínez Velasco

Director:
Ing. MsC Frank Nixon Giraldo Ramos

Trabajo de grado para optar por el título de


Ingeniero en Control

Bogotá, Colombia
2016
La concepción y culminación de este proyecto contiene el aporte
de muchas personas que a su manera contribuyeron,
por lo tanto es menester dedicar este proyecto a una persona
especial, el profesor Frank Giraldo que siempre procuró educarnos
para la vida.
Agradecimientos1

Tatiana Poveda

A mi familia que siempre me apoyó y valoró mi preparación a pesar de las adversida-


des, en especial a mi hermano que supo darme su apoyo cuando más necesario fue.
A los programas educativos de gobierno que permiten la inclusión social, consideran-
do que hay muchas cosas por mejorar, haber sido formada por dicho sistema me llena
de orgullo y satisfacción.

José Martínez

A todas la personas que en mi proceso de formación me fortalecieron intelectual y


anímicamente para culminar mis estudios de pregrado.
En especial a mi Madre y mis hermanos que con sus consejos y ejemplo me prepararon
con humildad y dedicación para enfrentar la vida. A mi padre que por su forzada
ausencia forjó en mi, el carácter y la convicción de seguir adelante para poder logra
mis objetivos y sueños.
A Tatiana Poveda mi compañera de proyecto y amiga, agradecimientos especiales por
que con su ayuda y dedicación este proyecto culmina satisfactoriamente.

1 Documento diseñado en LATEX versión 2.1.4.


Resumen

En este documento se describen las implicaciones prácticas y teóricas que supone la


investigación correspondiente al diseño e implementación de un control óptimo LQR
(Lineal Quadratic Regulator) en la tarjeta Raspberry Pi, esta técnica de control se aplica
a una plataforma Stewart, identificada previamente.
La planta a la cual se le implementaron las técnicas de control concernientes a este
proyecto (LQR y PID -Proporcional, Integral, derivativo-) es un sistema bola y plato
montado sobre una plataforma Stewart, cuyo diseño mecánico y ensamble fue llevado
a cabo por los autores. Este dispositivo se encuentra clasificado entre los robots parale-
los debido a que cuenta con seis brazos ubicados en diferentes puntos de la plataforma,
estos tienen la función de soportarla y proporcionarle movilidad. Cada extremidad es-
tá unida a un actuador (servomotor en este caso) dispuesto allí con el fin de proveer
los seis grados de libertad que la caracterizan y así variar su inclinación y rotación.
La plataforma Stewart se controla con 2 técnicas de control: LQR y PID, esto con el fin
de determinar con cuál de las dos se obtienen mejores resultados después de evaluar
parámetros propios de la curva de reacción de la planta, tales como: máximo sobreim-
pulso, tiempo de estabilización, error de estado estacionario y robustez (en el caso del
control óptimo).
Como el título del proyecto lo especifica, tanto el desarrollo de las estrategias de con-
trol como la obtención de datos provenientes de la planta son ejecutados y procesados
mediante la tarjeta Raspberry pi modelo B+, manejada con el lenguaje de programa-
ción Python cuyas líneas de código se ejecutan a través del sistema operativo Raspbian.
Python cuenta con diferentes compiladores compatibles con Raspbian, este último se
instaló sobre la tarjeta con el fin de controlar el módulo GPIO para así generar y recibir
señales que se producen al implementar los algoritmos de control.

Palabras clave: Python, Raspberry Pi, bola y plato- Plataforma Stewart, estrategias de
control.
Abstract

In this work we will describe the practices and theoretical implications about the cor-
responding investigation for optimal control LQR design and implementation ( lineal
quadratic regulator) in the raspberry pi card, this technique of control for a Stewart
platform, it was previously simulated and identified. The plant which was imple-
mented control techniques according to this project ( LQR and PID- proportional, in-
tegral and derivate controller) it is a ball and plant system put in a stewart platform,
which mecanic and assembly design was made by the authors. This device is consid-
ered among the parallel robots because it has six arms located at different points of
the platform, these have the function to support and give mobility . Each terminal is
connected to an actuator (servomotor in this case) provided there in order to provide
six degrees of freedom which characterize it and vary its inclination and rotation.
The Stewart platform is controlled by two techniques LQR and PID with the purpose
of deciding which one has better results evaluating own parameters of the reaction
curve plant. Such as overshoot, stabilization time, steady – state error and sturdiness
(in the case of optimal control).
As the project title specified, the development of control strategies as obtaining data
from the plant were executed and processed by the raspberry pi card model B+ through
programming language Python its lines of Code are executed through the raspbian
operation system.
Python has different compatible compilers With raspbian, the last one was installed on
the card in order to control the GPIO module to generate and receive signals produced
by implementing control algorithms.

Keywords: Python, raspberry pi, ball and plate- Stewart platform, control Strategies.
Contenidos

C APÍTULO 1—P RELIMINARES


1.1 I NTRODUCCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 O BJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 M ETODOLOGÍA DE DESARROLLO . . . . . . . . . . . . . . . . . . . 4


1.4 TARJETA DE DESARROLLO : R ASPBERRY PI . . . . . . . . . . . . . . . . 6
1.4.1 Lenguaje de programación Python 2.0 . . . . . . . . . . . . . . . . . 7

1.4.2 Uso del módulo GPIO . . . . . . . . . . . . . . . . . . . . . . 8

1.4.3 Módulo externo ADC . . . . . . . . . . . . . . . . . . . . . . 9

C APÍTULO 2—P LANTA SELECCIONADA


2.1 P LATAFORMA S TEWART UN ROBOT PARALELO . . . . . . . . . . . . . . 11
2.2 D ISEÑO Y ENSAMBLE PLATAFORMA S TEWART . . . . . . . . . . . . . . 12
2.3 C INEMÁTICA DE LA PLATAFORMA S TEWART . . . . . . . . . . . . . . . 17
2.4 A PLICACIÓN DE LA CINEMÁTICA DE LA PLATAFORMA S TEWART . . . . . . . 28
2.5 B OLA Y PLATO . . . . . . . . . . . . . . . . . . . . . . . . . . 33

C APÍTULO 3—C ONTROL PID


3.1 G ENERALIDADES . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 D ISCRETIZACIÓN DE LA ESTRATEGIA DE CONTROL . . . . . . . . . . . . 42
3.3 A LGORITMO DE CONTROL IMPLEMENTADO . . . . . . . . . . . . . . . 43
3.4 R ESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.1 Experimento . . . . . . . . . . . . . . . . . . . . . . . . . 45

I
C APÍTULO 4—C ONTROL LQR
4.1 G ENERALIDADES . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.1 Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.2 Observabilidad . . . . . . . . . . . . . . . . . . . . . . . . 54
4.1.3 Selección de las matrices [ Q] y [ R] . . . . . . . . . . . . . . . . . . 54

4.2 O BSERVADORES DE ESTADO . . . . . . . . . . . . . . . . . . . . . 55


4.3 I MPLEMENTACIÓN LQR . . . . . . . . . . . . . . . . . . . . . . 56
4.3.1 Optimización de la ley de control . . . . . . . . . . . . . . . . . . 57
4.3.2 Formulación del observador de estados . . . . . . . . . . . . . . . . 58

4.4 C ÓDIGO LQR EN P YTHON . . . . . . . . . . . . . . . . . . . . . 59


4.5 R ESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 61

C APÍTULO 5—C OMPARACIÓN DE RESULTADOS


5.1 E STRATEGIAS DE CONTROL PID Y LQR . . . . . . . . . . . . . . . . 65
5.2 M EJORES RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . 66

C APÍTULO 6—C ONCLUSIONES

A. Comunicación SSH 69
A.1 C ONEXIÓN SSH . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.1.1 Establecer ip estática en el computador . . . . . . . . . . . . . . . . 70
A.1.2 Establecer ip estática en la Raspberry Pi . . . . . . . . . . . . . . . . 70
A.1.3 Establecer conexión entre los dispositivos . . . . . . . . . . . . . . . 71

A.2 U SAR GESTOR DE ARCHIVOS CON SSH . . . . . . . . . . . . . . . . . 71


A.3 P ROBLEMAS CONOCIDOS . . . . . . . . . . . . . . . . . . . . . . 73

B. Aclaraciones matemáticas 75
B.1 I DENTIDAD SUMA DE SENO Y COSENO . . . . . . . . . . . . . . . . . 75

C. Condiciones físicas de la planta 77


C.1 M EDICIÓN DE LAS PARTES DE LA PLATAFORMA . . . . . . . . . . . . . . 77
C.2 PWM NECESARIO PARA CADA SERVOMOTOR . . . . . . . . . . . . . . 77

B IBLIOGRAFÍA

II
Índice de Figuras

1.1. Diagrama de bloques para el control del sistema bola y plato montado sobre
una plataforma Stewart [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Diagrama de bloques metodología de desarrollo [Autores]. . . . . . . . . . . 4
1.3. Diagrama esquemático de la Raspberry Pi [Autores]. . . . . . . . . . . . . . 7
1.4. Diagrama esquemático del puerto GPIO Raspberry Pi modelo B [Autores]. 9

2.1. Estructura física plataforma Stewart [Autores]. . . . . . . . . . . . . . . . . . 12


2.2. Dimensiones y estructura del servo motor SG90 [Autores]. . . . . . . . . . . 13
2.3. Pares de servomotores, posición inicial [Autores]. . . . . . . . . . . . . . . . 14
2.4. Vista isométrica de la pantalla táctil resistiva [Autores]. . . . . . . . . . . . . 15
2.5. Salidas de la pantalla táctil resistiva de 4 hilos, cada punto representa un
hilo [Autores]. (a) Medida de la resistencia fija. (b) Configuración para leer
la coordenada y. (c) Configuración para leer la coordenada x. . . . . . . . . . 16
2.6. Diagrama de Cuerpo libre para el i −ésimo brazo [1]. . . . . . . . . . . . . . 18
2.7. Rotación. (a) Con respecto al eje z. (b) Con respecto al eje y. (C) Con respecto
al eje x. Figura basada en [1] página 1. . . . . . . . . . . . . . . . . . . . . . . . 19
2.8. Representaciones gráficas de la rotación del servomotor. (a) Hélice del i −ésimo
servomotor anclada al i −ésimo brazo rígido S. (b) Representación cinemá-
tica del recorrido de la hélice del servomotor anclada a S. Figura basada en
[1] página 3 y [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.9. Recorrido angular de la hélice del servomotor con respecto a los tres ejes
coordenados x, y y z. Figura basada en [1] páginas 4 y 5. . . . . . . . . . . . . . 23
2.10. Disposición física de cada par de servomotores [Autores]. . . . . . . . . . . . 26
2.11. Diagrama de bloques cinemática inversa plataforma Stewart [Autores]. . . . 28

III
2.12. Distribución espacial en las placas superior e inferior de la plataforma Ste-
wart [Autores]. (a) Medición de los ángulos β. (b) Ubicación de los motores
en la placa base. (C) Ubicación de las junturas en la placa superior. . . . . . 30
2.13. Sistema bola y plato acoplado a plataforma Stewart [Autores]. . . . . . . . . 34

3.1. Diagrama de bloques control PID proceso [Autores]. . . . . . . . . . . . . . . 40


3.2. Caracterización grafica de los parámetros de desempeño para una curva de
reacción (grafica basada en [3] capitulo 4 página 151). . . . . . . . . . . . . . 42
3.3. (a) Curva de reacción para las constantes de control k pxy = −0, 092, k ixy = 0
y k dxy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil. 46
3.4. (a) Curva de reacción para las constantes de control en x con valores k px =
−0, 04, k ix = 0 y k dx = −0, 76 y las constantes de control en y de valores
k py = −0, 1, k iy = 0, k dy = −0, 25. (b) Recorrido de la esfera en la superficie
de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5. (a) Curva de reacción para las constantes de control en x con valores k px =
−0, 92, k ix = 0, 001 y k dx = −0, 76 y las constantes de control en y de valores
k py = −0, 92, k iy = 0,001, k dy = −0, 76. (b) Recorrido de la esfera en la
superficie de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6. (a) Curva de reacción para las constantes de control en x con valores k px =
−0, 92, k ix = −0, 001 y k dx = −0, 76 y las constantes de control en y de
valores k py = −0, 92, k iy = −0,001, k dy = −0, 76. (b) Recorrido de la esfera
en la superficie de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7. (a)Curva de reacción para las constantes de control en x con valores k px =
−0, 04, k ix = 0 y k dx = 0, 74 y las constantes de control en y de valores
k py = −0, 1, k iy = 0, k dy = 0, 0022. (b) Recorrido de la esfera en la superficie
de la placa móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.8. Mejor respuesta del controlador PID para el proceso plataforma Stewart-
bola y plato (a)Curva de reacción para las constantes de control en x con
valores k px = −0, 065, k ix = −0, 001 y k dx = −0, 82 y las constantes de
control en y de valoresk py = −0, 065, k iy = −0, 001 y k dy = −0, 82 (b)
Recorrido de la esfera en la superficie de la placa móvil. . . . . . . . . . . . . 50

4.1. Diagrama de bloques control LQR proceso [Autores]. . . . . . . . . . . . . . 51


4.2. Control LQR con realimentación de estados.(a) Topología control LQR (sin
realimentación a la salida). (b) Control LQR y observador de estados [4]. . . 56
4.3. (a) Curva de reacción para valores de la matriz de constantes de control
k11 = 1, k12 = 1, 414, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 1, k24 = 1, 414.
(b) Recorrido de la esfera en la superficie de la placa móvil. . . . . . . . . . . 62

IV
4.4. (a) Curva de reacción para valores de la matriz de constantes de control
k11 = 13, 41, k12 = 5, 18, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 13, 41,
k24 = 5, 18. (b) Recorrido de la esfera en la superficie de la placa móvil. . . . 62
4.5. (a) Curva de reacción para valores de la matriz de constantes de control
k11 = 38, 72, k12 = 8, 806, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 38, 72,
k24 = 8, 806. (b) Recorrido de la esfera en la superficie de la placa móvil. . . 63
4.6. (a) Curva de reacción para valores de la matriz de constantes de control
k11 = 42, 42, k12 = 9, 211, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 42, 42,
k24 = 9, 211. (b) Recorrido de la esfera en la superficie de la placa móvil. . . 64

A.1. Ventana de conexiones de red Ubuntu [Autores]. . . . . . . . . . . . . . . . . 70


A.2. ip estática configurada [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . 71
A.3. Ventana para conectar a un servidor [Autores]. . . . . . . . . . . . . . . . . . 72
A.4. Ventana para introducir la dirección del servidor con el que se quiere esta-
blecer conexión [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.5. Ventana para seleccionar el servidor con el que se quiere establecer conexión
[Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

B.1. Triángulo para deducción de la identidad [Autores]. . . . . . . . . . . . . . 75

C.1. Medidas del brazo y de la leva de la plataforma. (a) Longitud del i-ésimo
brazo rígido. (b) Longitud de la leva del i-ésimo servomotor medida desde
la unión leva–motor [Autores]. . . . . . . . . . . . . . . . . . . . . . . . . . . 78
C.2. Gráficas de funcionamiento de cada servomotor con respecto a la señal
PWM necesaria para producir un movimiento angular específico [Autores].
(a) Servomotor 1. (b) Servomotor 2. (c) Servomotor 3. (d) Servomotor 4. (e)
Servomotor 5. (f) Servomotor 6 [Autores]. . . . . . . . . . . . . . . . . . . . . 79

V
Capítulo

1 Preliminares

C ONTENIDOS DEL CAPÍTULO

1.1 I NTRODUCCIÓN 1.3 M ETODOLOGÍA DE DESARROLLO


1.4 TARJETA DE DESARROLLO : R ASP -
1.2 O BJETIVOS BERRY PI

En este capitulo se describen aspectos previos que son de necesaria comprensión antes
de la realización de los algoritmos de control en la tarjeta de desarrollo. Así mismo es
imprescindible conocer cuáles son los objetivos y enfoques del trabajo que se nombra-
rán a continuación.

1.1 I NTRODUCCIÓN

Dependiendo del proceso o planta que se quiera controlar puede surgir la necesidad
de contar con sistemas de control robusto como lo es LQR, que constituye una exce-
lente opción gracias a su aplicabilidad en casi cualquier proceso. Este tipo de control
ha sido concebido para manejar procesos multivariables como lo son los SIMO (una
entrada, múltiples salidas) y los MIMO (múltiples entradas, múltiples salidas) los cua-
les se caracterizan por presentar “matrices de transferencia” en lugar de “funciones de
transferencia” .
Cuando se habla de control óptimo, se hace referencia al sistema de control que es
capaz de llevar un proceso a la estabilización al rededor de un punto de trabajo de-
terminado mientras minimiza el coste que implica la operación dinámica de la planta
controlada; esto es precisamente el control LQR, ajustar un controlador proporcional

1
1. P RELIMINARES

mediante algoritmos matemáticos para minimizar la función de costo, es decir se en-


cuentran los ajustes que atenúan las desviaciones no deseadas ya que la función de
coste está definida por la suma de las desviaciones de las mediciones de salida del
proceso con respecto a los valores deseados [5].
En muchos casos se requiere control óptimo y robusto, razón por la cual se hace ne-
cesario disponer de soluciones que no afecten de manera significativa la rentabilidad,
eficiencia o algún otro parámetro propio de un proceso, la alternativa llevada a cabo
consiste en un algoritmo de control LQR el cual es ejecutado por la tarjeta de desa-
rrollo Raspberry Pi. Debido a que dicha tarjeta programable es de uso libre, se perfila
como una opción que puede implementarse con software libre y con la cual es posible
efectuar estudios y experimentos en diferentes plantas.
Además la experimentación con tecnologías emergentes como lo es la plataforma Rasp-
berry Pi para la aplicación del control moderno, es imprescindible en cuanto al avance
de las alternativas de solución que se dan cuando se pretende controlar un proceso.
El licenciamiento del software comercial puede suponer un elevado costo y una ata-
dura del usuario con su proveedor, adicional a esta desventaja del software privativo
frente al software libre, los códigos fuente no están disponibles para su modificación y
tener acceso a dichos códigos en algunos casos implica poder suplir necesidades espe-
cíficas o adaptarse a nuevos cambios [6].
Para control moderno la utilización de tarjetas como lo es la Raspberry Pi es muy poco
común, razón por la cual no se emplea con mucha frecuencia el control implementado
sobre estas tarjetas en aplicaciones que requieren robustez ; la mayoría de aplicaciones
de estas tarjetas de desarrollo corresponden a la utilización de esta como ordenador
para funciones muy específicas o control de procesos simples [7].
Con el objetivo de obtener puntos de comparación que permitan conocer qué tan óp-
tima es la estrategia LQR con respecto a una acción de control clásico como lo es el
PID, se controló un sistema bola y plato integrado a una pantalla táctil resistiva mon-
tado sobre una plataforma Stewart, con la cual se localiza la posición de una esfera que
posteriormente se estabiliza mediante el movimiento angular que proporcionan 6 ser-
vomotores, el diagrama de bloques del control aplicado a la plataforma Stewart puede
verse en la Figura 1.1.

x pre f , y pre f error x, y, z


+ Control Proceso
ref - ψ, θ, ϕ

Figura 1.1: Diagrama de blo-


ques para el control del sistema
Detección
bola y plato montado sobre una xp, yp
plataforma Stewart [Autores].

Analizando la respuesta de la planta anteriormente descrita a través de la experimen-


tación con diferentes constantes de control, se demuestra que con la estrategia LQR

2
1.2. Objetivos

se logra un desplazamiento de la bola que no presenta trayectos innecesarios desde


su posición inicial hasta el punto de referencia. Lo cual es un indicativo muy claro de
que la estrategia de control óptimo aplicada presenta parámetros de desempeño más
satisfactorios que cuando se aplica el control PID.

Los problemas que se resuelven con la implementación del control LQR en una tarjeta
Raspberry Pi son: ausencia de un algoritmo de control LQR de fácil implementación
en procesos reales, la no utilización del software open source en la academia para apli-
caciones de control robusto con la posibilidad de dar soluciones a nivel industrial, la
falta de exploración de tecnologías emergentes para la puesta en marcha de estrategias
de control moderno y una justificación que indique qué estrategia de control es más
efectiva en procesos específicos si PID o LQR.

El algoritmo LQR implementado en Python y ejecutado a través del SO Raspbian que


se presenta en capítulos posteriores de este libro proporciona un importante punto
de partida para su implementación en cualquier proceso; teniendo en cuenta conside-
raciones prácticas ya que se aplica al sistema dinámico real plato y bola- Plataforma
Stewart.

1.2 O BJETIVOS

1.2.1 General

Diseñar un algoritmo de control óptimo LQR sobre la tarjeta de desarrollo Raspberry Pi


para su posterior implementación.

1.2.2 Específicos

Efectuar la identificación de un proceso experimental para emular su comporta-


miento dinámico.

Evaluar el desempeño de la estrategia de control LQR mediante la observación


de los parámetros de control clásico.

Validar la estrategia del control propuesto comparándolo con un control PID


cuando son implementados en un mismo proceso.

Implementar la estrategia de control moderno LQR en una de las plataformas


emergentes como lo es la Raspberry Pi.

3
1. P RELIMINARES

Proceso

Diseño y ensamble Modelamiento Determinación Cálculo de Validación


de la plataforma matemático de las variables parámetros
Stewart a controlar

Diseño del control LQR


Selección de Diseño del control PID
Comprobación de controlabilidad puntos de trabajo
y observabilidad Estructuración del
algoritmo de control
Observación de PID en latarjeta de
de curva reacción desarrollo Raspberry Pi
Estructuración del algoritmo de del proceso
control LQR en la tarjeta Raspberry Pi
Aplicación
Cálculo de de algoritmo de
Aplicación de algoritmo de parametros de control PID en
control LQR en la plataforma desempeño la plataforma

Determinación Cálculo Comparación Determinación


de matrices de matriz de entre parametros de las constantes
[ Q] y [ R] constantes de desempeño de control

Figura 1.2: Diagrama de bloques metodología de desarrollo [Autores].

1.3 M ETODOLOGÍA DE DESARROLLO

A continuación se describen los pasos que se siguen para la estructuración e imple-


mentación del algoritmo de control LQR y su validación mediante la comparación con
el desempeño de un control PID igualmente concebido. Tanto el algoritmo PID como
el algoritmo LQR son implementados en la tarjeta de desarrollo Raspberry pi, los algo-
ritmos del control se diseñaron de tal manera que las constantes de control puedan
ser determinadas mediante el funcionamiento experimental de una plataforma Stewart
previamente ensamblada.
En la Figura 1.2 se ven tres bloques con línea continua en los cuales se incluyen sub-
bloques con linaeas punteadas que nombran instrucciones necesarias para el cumpli-
miento de los objetivos planteados.

Proceso

Se estructura todo lo referente al sistema plato y bola montado sobre una plataforma
Stewart, tanto su diseño y ensamble físico como su análisis matemático el cual hace

4
1.3. Metodología de desarrollo

posible la implementación de una estrategia de control que permita estabilizarla en


puntos de trabajo específicos.
Después de efectuar el modelamiento matemático de la plataforma se procede a de-
terminar constantes inmersas en su funcionamiento, determinar magnitudes tanto de
entrada como de salida, definir cuales serán las variables de control y de proceso.
En el punto de validación ya debe disponerse de un modelo matemático del proceso
para que sea posible simularlo usando señales estímulo y evaluar qué tan acertada es
la matemática empleada en la identificación de la dinámica de la plataforma Stewart, y
así mejorar el cálculo de magnitudes específicas. De la realización de la validación se
obtiene información acerca de los puntos de trabajo en los cuales la plataforma puede
operar de manera estable y su grado de no linealidad, entonces se conocen las condi-
ciones para el diseño de las acciones de control.

Diseño del control LQR

Se inicia con la comprobación de observabilidad y controlabilidad para determinar si


es viable la aplicación del control LQR a la plataforma, si alguno de los dos parámetros
no se cumple no será posible controlar la planta mediante un control LQR. La determi-
nación de observabilidad y controlabilidad se efectúa a partir del teorema de Cayley
Hamilton tal y como se explicará más adelante.
El planteamiento del algoritmo de control LQR que ejecuta y procesa la tarjeta de desa-
rrollo Raspberry Pi se hace con código python por lo tanto el control LQR diseñado e
implementado es discreto, luego se hace la selección de las matrices [ Q] y [ R] la cual
depende del diseño de la estrategia de control.
[ Q] y [ R] son matrices necesarias para determinar la función de coste descrita que im-
plica la operación de la plataforma. Los componentes de estas matrices pueden ser
calculados utilizando varios métodos, en este caso el método que se usó fue el RVE
(Realimentación de variables de estado).

Diseño del control PID

La dificultad se encuentra en la estructuración de un algoritmo que permita la reali-


zación de un control que pueda manejar múltiples entradas y salidas, adicional a esto
es necesario determinar las constantes de control que sean las más apropiadas para la
dinámica del proceso.
De la misma manera que el LQR, el control PID también se aplica en su forma discre-
tizada cuyas constantes de control se hallan a partir de la función de transferencia del
proceso en el dominio de Z.

5
1. P RELIMINARES

Observación curva de reacción de proceso

Cuando se le aplica una acción de control al sistema bola y plato montado sobre la
plataforma Stewart, el objetivo es estabilizar una bola que recorre un plato oscilante;
entonces en este caso la curva de reacción del proceso es la gráfica de las diferentes
posiciones que recorre la bola antes de llegar al punto de referencia de manera esta-
ble, cuando la estabilización ocurre tanto el plato como la bola entran en movimiento
traslacional y rotacional nulo.
Ya que la esfera tiene movimiento en los ejes coordenados x y y son dos las curvas
de reacción del proceso puestas en observación, el análisis de estas curvas de reacción
permitirán saber la efectividad tanto de la deducción matemática del sistema dinámico
como del control aplicado.

Cálculo de parámetros de desempeño

Tanto para el control LQR como para el PID a partir de la curva de reacción obtenida
cuando se controla el proceso deben calcularse los parámetros de desempeño que per-
miten evaluar cuál de las dos estrategias de control funciona “mejor” para controlar el
proceso propuesto; dichos parámetros corresponden a: Máximo sobreimpulso, tiempo
de estabilización, error de estado estacionario y robustez. Para la estrategia de control
LQR también hay otros parámetros que indican el desempeño del mismo como lo son:
Medida de la desviación de los estados con respecto a los estados deseados, medida
del esfuerzo del control, entre otros.

Comparación de parámetros de desempeño

En este caso la comparación entre parámetros de desempeño solo puede hacerse entre
aquellos que corresponden al control clásico, por lo tanto es importante precisar que
no solo la comparación entre estos parámetros es determinante para conocer cuál es la
estrategia de control que mejores resultados presenta, también deben tenerse en cuenta
los parámetros de desempeño adicionales que pueden ser calculados del control LQR.

1.4 TARJETA DE DESARROLLO : R ASPBERRY PI

El dispositivo que procesa los datos y ejecuta los algoritmos realizados en este trabajo
es la tarjeta Raspberry pi modelo B que se muestra en la Figura 1.3. Cuenta con una
capacidad de memoria RAM (Random Access Memory -memoria de acceso aleatorio-)
de 512 MB, puerto ethernet, arquitectura ARM, puerto HDMI, puertos USB y 17 pines
del GPIO que pueden ser usados como entradas o salidas digitales a 3,3V a 20mA.

6
1.4. Tarjeta de desarrollo: Raspberry pi

Ledes de USB 2.0


Conector estado
Vídeo audio
Ethernet
RCA

Conectores
GPIO

ARM11 700MHz
Broadcom BCM2835
HDMI

Tarjeta SD Figura 1.3: Diagrama


Alimentación esquemático de la Rasp-
micro USB
berry Pi [Autores].

En la Figura 1.4 se puede ver la descripción de cada uno de los pines que se pueden
utilizar para salida o entrada de datos, existen pines para propósitos especificos como
lo es la comunicación RS232 o I2C. La nomenclatura de cada uno de ellos no tiene
relación con el orden específico en el que se encuentran dispuestos; por ejemplo el pin
que corresponde al GPIO14 es el que está en el lugar número 8.
Para poner en marcha a la Rasberry Pi, es necesario instalar un sistema operativo en la
memoria SD, la cual será utilizada como disco duro de este mini computador.
Raspbian es un sistema operativo (SO) libre basado en Debian optimizado para el hard-
ware de Raspberry Pi. Raspbian ofrece más que un SO puro, viene con más de 35000
paquetes, programas precompilados en un formato que hace más fácil su instalación
en la Raspberry Pi [8].
Posterior a la instalación del SO esta tarjeta puede usarse como un computador, solo
es cuestión de conectar periféricos como mouse, teclado (ambos mediante vía USB) y
un monitor con conexión VGA.
En el Apéndice A sección A.1 se explica de que manera puede usarse la Raspberry Pi
desde un computador sin tener la necesidad de conectarla a periféricos usando un tipo
de conexión llamada SSH.

1.4.1 Lenguaje de programación Python 2.0

Este lenguaje no necesita compilador, es de alto nivel y solo requiere un interprete por
lo tanto cuando se ejecutan las lineas de código se hace directamente y sin necesidad
de generar ejecutables [9]. Otra característica importante es que Python es orientado a
objetos, cuenta con elementos como :

7
1. P RELIMINARES

Clase: Modelo sobre el cual se crean y estructuran los objetos.

Propiedad: Características de un objeto que se manejan como variables.

Método: Función que contiene acciones que deben realizar los objetos, su sintaxis
es Def nombre_metodo():

Objeto: Cualquier sustantivo cuyas características puedan describirse como cua-


lidades o atributos, algunos tipos de objetos son: String, entero, float, char, etc;
algunos de estos objetos pueden caracterizarse nombrando otros objetos. Cuan-
do se programa en python no es necesario especificar el tipo del objeto, solo se le
asigna un nombre y valor especifico.

Herencia: Una clase puede heredar a otra si los objetos comparten propiedades
y/o métodos.

Para crear un objeto no es necesario declarar su tipo solo basta con asignarle un nombre
y un valor, al momento de ejecutarlo el interprete le asignará un tipo de acuerdo a los
valores a los que el nombre del objeto haya sido igualado.
Cualquier código que se quiera ejecutar con python debe ser guardado con la extensión
.py.

1.4.2 Uso del módulo GPIO

Cuando se instala el sistema operativo Raspbian se tiene python instalado por defecto,
con simples lineas de código puede seleccionarse un pin del GPIO y determinar si es
de salida o entrada. Como se ve en la Figura 1.4 hay diferentes funcionalidades de
cada pin del GPIO y de acuerdo a esto pueden agruparse en tres definiciones: Pines de
alimentación que ofrecen voltajes de 5 V y de 3,3 V, pines GND y pines multipropósito.
Los del último grupo pueden ser subdivididos en dos subgrupos: los de propósito
específico (SPI, I2C, Rs232 y PWM) que son 9 y los restantes 8 de salida o entrada
digital reciben o transmiten 3,3 V.
Para empezar con el uso del GPIO desde python solo deben escribirse las siguientes
lineas de código: import RPi.GPIO as GPIO se importa la librería que permite con-
trolar los pines según su función; GPIO.setmode(GPIO.BCM) se pone el modulo GPIO
en modo BCM para que la nomenclatura de cada pin pueda cumplirse como en la
Figura 1.4; GPIO.setup(#pin, GPIO.Tipo_sal) esta línea de código es para especi-
ficar el número del pin y definir si se configura como salida o como entrada, la palabra
Tipo_sal se reemplaza por IN para que funcione como entrada y OUT como salida, en
caso de que el pin se configure como salida el código será GPIO.output(#pin, Nivel
) donde Nivel puede ser 1 para una salida de 3,3 V o 0 para una salida de 0 V, en el
caso de que se configure como entrada el pin solo aceptaŕa niveles de voltaje digitales,
es decir que estará solo en 1 o en 0 y para leerla se usa la línea GPIO.input(#pin).

8
1.4. Tarjeta de desarrollo: Raspberry pi

pin nombre nombre pin


01 3v3 5v 02
03 GPIO2 (SDA) 5v 04
I2C
05 GPIO3 (SCL) Tierra 06
07 GPIO4 GPIO14 (TXD) 08
09 Tierra GPIO15 (RXD) 10
11 GPIO17 GPIO18 12
13 GPIO27 Tierra 14
15 GPIO22 GPIO23 16
17 3V3 GPIO24 18
19 GPIO10 (MOSI) Tierra 20
21 GPIO9 (MISO) GPIO25 22
23 GPIO9 (CLK) GPIO8 (CE0) 24 Figura 1.4: Diagrama esquemático del
25 Tierra GPIO7 (CE1) 26 puerto GPIO Raspberry Pi modelo B [Au-
tores].

Configuración del PWM

A pesar de que existe un pin específico para el PWM que es el GPIO18, cualquier pin
multipropósito configurado como salida puede producir una señal PWM.
Primero debe configurarse el pin deseado como salida GPIO.setup(#pin, GPIO.OUT
), luego debe crearse el objeto PWM especificando pin y frecuencia de la señal var=
GPIO.PWM(#pin, Freq) donde var es el objeto, se inicia el PWM con un ciclo útil
determinado var.start(ciclo), si se requiere puede variar el ciclo útil con esta línea
de código: var.ChangeDutyCycle(18) y por último se suspende la transmisión de la
señal con var.stop().

1.4.3 Módulo externo ADC

Debido a que la Raspberry modelo B no cuenta con ADC (conversor análogo- digital)
ni con DAC (conversor digital- análogo) es imprescindible contar con algún módulo
externo que le permita leer o entregar niveles de voltaje que estén dentro de un rango
determinado. Dicho módulo puede ser un integrado o una tarjeta con la capacidad
de transmitirle las lecturas analógicas usando un canal de comunicación serie como
por ejemplo I2C o RS232, en este caso se maneja el primero en consecuencia de haber
seleccionado un ADC de 16 bits y 4 canales.
Para este trabajo se necesitó un ADC que posibilitara la lectura de los cambios de vol-
taje que presenta la pantalla táctil cuando se hace presión en algún punto de su super-
ficie, entonces se eligió el integrado ADS1115 de la empresa Texas Instruments [10]. Se
usan dos de sus cuatro canales para leer las dos coordenadas del punto de presión en
la pantalla táctil, cada lectura es enviada vía I2C a la raspberry Pi, razón por la cual hay
dos hilos de conexión entre el integrado y la tarjeta que son los pines GPIO2 y GPIO3.

9
1. P RELIMINARES

Adafruit que es una empresa fabricante de kits de desarrollo con componentes electró-
nicos, la compañía realizó una tarjeta que incluye el ADS1115 con el fin de disponer de
una ganancia programable y un control de la comunicación I2C mediante una librería
denominada Adafruit_ADS1x15 que se encarga también de gestionar la lectura de un
canal determinado [11]. Dicha librería puede ser utilizada con líneas de código en pyt-
hon siempre y cuando este guardada en la misma carpeta del documento con extensión
.py que la invoque con la línea de código en python: from Adafruit_ADS1x15 import
ADS1x15 para importar la librería desarrollada por Adafruit, se especifica el valor de la
ganancia del amplificador programable PGA, las muestras leídas por segundo SPS, con
adc = ADS1x15(ic=0x01) se especifica la dirección del registro de lectura y por últi-
mo puede ser leído un canal específico con la instrucción adc.readADCSingleEnded(
canal, pga, sps).
El dato leído del canal del ADC se obtiene en valores de mili voltios con más de tres
cifras después de la coma flotante, así que son lecturas con una muy buena sensibilidad
y precisión numérica muy útil para hallar las coordenadas de ubicación de la esfera de
manera acertada.

10
Capítulo

2 Planta seleccionada

C ONTENIDOS DEL CAPÍTULO

2.1 P LATAFORMA S TEWART UN RO - 2.3 C INEMÁTICA DE LA PLATAFORMA


BOT PARALELO S TEWART
2.4 A PLICACIÓN DE LA CINEMÁTICA
DE LA PLATAFORMA S TEWART
2.2 D ISEÑO Y ENSAMBLE PLATAFOR -
MA S TEWART 2.5 B OLA Y PLATO

En este capitulo se describe la estructura física y geométrica de la plataforma Stewart,


se especifica cada parte que la compone y también se detallan los tres grados de liber-
tad traslacionales y los tres grados de libertad rotacionales que posee; como ya se ha
nombrado antes, esta plataforma ha sido adecuada para ejercer la función de estabili-
zar una esfera que gira y se desplaza sobre la superficie de una pantalla táctil resistiva
(subsistema bola y plato), la cual se encarga de enviar las coordenadas de posición de
dicha esfera para que sean procesadas por la Raspberry Pi y posteriormente se deter-
mine cual será el ángulo de rotación de los servomotores en cada instante de tiempo.

2.1 P LATAFORMA S TEWART UN ROBOT PARALELO

Un robot paralelo es un mecanismo de lazo cerrado cuyo movimiento se origina a


partir de por lo menos dos cadenas cinemáticas independientes, la plataforma Stewart
es un robot paralelo que tiene seis cadenas y por lo tanto cuenta con la ventaja que
caracteriza a los robots paralelos de no acumular errores en una sola cadena cinemática
[12, 13].

11
2. P LANTA SELECCIONADA

La plataforma está compuesta por dos placas, una inferior estática y una superior pro-
vista de movilidad gracias a las seis cadenas cinemáticas servocontroladas, estas a su
vez tienen uniones con junturas esféricas tanto con el actuador como con la placa su-
perior. Con el fin de obtener seis grados de libertad de la placa superior las junturas
deben ser con uniones esféricas en los dos extremos de cada brazo, cabe aclarar que
un extremo se une mediante una juntura al rotor del servomotor y el otro también está
unido con una juntura a la placa superior como se ve en la figura 2.1.

Rótula

Placa móvil

Brazo

Placa base
Rótula
Figura 2.1: Estructura física plataforma Leva
Motor
Stewart [Autores].

La plataforma tipo Stewart tiene propiedades de rigidez porque al contar con 6 sopor-
tes se reducen las deformaciones de manera significativa, si se dispone alguna masa en
la placa superior de la plataforma el peso de dicha masa será repartido entre sus extre-
midades, así cada una de ellas soportará un sexto del peso [14]. Al tener una tensión
distribuida, la plataforma es capaz de soportar cargas superiores a su propio peso,
a raíz de esto puede moverse rápidamente debido a que cada servomotor solo debe
mover una fracción de la inercia total [12].
Cuando se habla de seis grados de libertad se hace referencia al movimiento tridimen-
sional y la rotación de la placa superior al rededor de los tres ejes cartesianos, es decir
que hay movimiento en tres direcciones lineales y tres direcciones angulares a través
del movimiento armónico de los seis brazos.

2.2 D ISEÑO Y ENSAMBLE PLATAFORMA S TEWART

Se han hecho varios diseños de la plataforma Stewart, los que más destacan son en los
que la movilidad de su placa superior se origina en: Brazos o extensiones hidráulicas
y los brazos servocontrolados.

12
2.2. Diseño y ensamble plataforma Stewart

Los actuadores de la plataforma con brazos hidráulicos son seis cilindros hidráulicos
cuyo émbolo se conecta a la placa superior de la plataforma mediante una juntura es-
férica, que cuando funcionan provocan un cambio en la longitud que separa la placa
superior y la placa inferior, a diferencia de esta los actuadores de la plataforma servo-
controlada son servomotores que con movimiento rotacional hacen que los brazos de
longitud fija se desplacen de manera tridimensional [13].
Estos dos tipos de diseño mecánico tienen en común que los extremos de cada brazo
están unidos con la plataforma mediante junturas esféricas, en este caso se manejaron
rótulas 2M (de dos milímetros de diámetro). Por cada brazo se utilizan 2 rótulas, una
que lo une a la placa superior y otra lo une al rotor del servomotor.

Adecuación de los servomotores

En la plataforma Stewart ensamblada se dispuso de seis servomotores iguales los cuales


son los actuadores de las dimensiones y características que se muestran en la Figura 2.2,
convierten la energía eléctrica en energía mecánica para proporcionar fuerza rotatoria
y así mover la placa superior de la plataforma, se alimentan de 5 voltios y son capaces
mover 9g de masa cada uno.

32 mm
28,5 mm
19,5 mm 32 mm

tierra 23 mm
12 mm Vcc Figura 2.2: Dimensiones y estructura del
PWM
servo motor SG90 [Autores].

Este tipo de motor fue implementado en la planta debido a que es posible controlar
su ángulo de rotación mediante una señal de control PWM la cual es recibida por el
motor a través del hilo indicado en la figura 2.2 y entre más ancho sea el pulso, el
rotor hará un desplazamiento angular más largo en el sentido de las manecillas del
reloj. En el interior de este tipo de motores hay una caja reductora y un multiplicador
de fuerza además de un circuito electrónico que responde a una señal de control para
definir la cantidad de movimiento angular del motor, dicha señal debe ser un pulso
de amplitud constante y frecuencia determinada en forma de tren de pulsos según
las especificaciones técnicas del fabricante [15]. Cuando entra la señal al servomotor
primero pasa por un conversor ancho de pulso/ voltaje, luego por un amplificador
operacional que se encarga de calcular el error a través de la resta entre la salida del
conversor y la salida del potenciómetro con acople mecánico a la caja reductora, esta
diferencia será la señal que va directamente al motor.

13
2. P LANTA SELECCIONADA

Hay tres pares de servomotores acoplados a la plataforma, cada par tiene la leva o
hélice enfrentada o dicho de otra forma tienen un eje de simetría vertical en la mitad
del par tal como se ve en la Figura 2.3.

P1 P2

s1
s2
l1 l2

A1 A2
B1 B2
Figura 2.3: Pares de servomotores, posi-
ción inicial [Autores]. Impar Par

En cuanto a su radio de rotación el servomotor está limitado entre ±45° y por lo tanto
el ancho de pulso de la señal de control también tiene un rango limitado de valores,
dichos límites deben ser calculados empezando por la posición inicial de las levas en-
frentadas.
tiempo
r= [µseg/radian] (2.1)
angulo

En (2.2) se describe el ancho de pulso para el servomotor derecho y (2.3) para el iz-
quierdo; donde Wi0 es el ancho de pulso necesario para que el servomotor mantenga
la leva en la posición inicial, αi es el ángulo que se forma entre la leva y los ejes coor-
denados, α0 corresponde al ángulo de la posición inicial de la leva y r descrito en (2.1)
hace referencia a una constante que se calcula de acuerdo al tiempo de ciclo útil necesa-
rio para obtener un desplazamiento rotacional de acuerdo a los límites determinados,
donde tiempo son los micro segundos que debe durar el ancho de pulso para que el
servomotor rote hasta angulo en grados [1].

Wi = Wi0 + (αi − α0 ) r (2.2)

Wi = Wi0 − (αi − α0 ) r (2.3)

Se dan las ecuaciones (2.2) y (2.3) porque si bien la plataforma es simétrica con respec-
to al eje z, los servomotores han sido montados en pares y cada par es opuesto a su
homólogo.
Para hallar Wi0 y r es necesario observar las gráficas que describen el comportamiento
de cada motor referente a la cantidad de ángulos de giro con respecto al ciclo útil del
PWM aplicado, dichas gráficas pueden observarse en el Apéndice C sección C.2.

14
2.2. Diseño y ensamble plataforma Stewart

Sensor de posición aplicado: pantalla táctil

Existen dos tipos de pantallas táctiles: resistivas y capacitivas, a la plataforma Stewart


se le acopló una pantalla de tipo resistivo debido a que esta no es multitouch (capacidad
de detectar más de un punto de presión al mismo tiempo) y para la función que debe
cumplir, detectar más de un punto de presión significa errores en el control de posición
de la esfera. La pantalla táctil resistiva usada tiene cuatro hilos a través de los cuales
deben detectarse las coordenadas bidimensionales de posición de la esfera que hace
presión debido a su peso.
Físicamente la pantalla táctil elegida es de forma rectangular, tiene una dimensión de
diez pulgadas y los ejes coordenados tienen valores máximos y mínimos ubicados co-
mo se muestra en la figura 2.4.

Vmaxx Vmaxy
y
x
Vminy
Vminx 10 in

12 Figura 2.4: Vista isométrica de la pantalla


34
táctil resistiva [Autores].

El primer paso que se efectúa para el reconocimiento de cada uno de los hilos de la
pantalla es medir con un multímetro en qué par de hilos hay resistencia fija, es decir
que no varía independientemente de que se haga presión en cualquier punto de la
superficie de la pantalla; como se ve en la figura 2.5(a), el primer par de hilos en los
que hay una resistencia fija es entre el 1 y el 3 y el segundo par es el 2 y el 4 .
Después de tener plenamente identificados los hilos entre los cuales la resistencia es
fija, debe saberse que si se energiza una de ellas podrá hallarse una coordenada y si se
energiza la otra se hallará la coordenada que falta, claro está que se debe aterrizar el
otro extremo de la resistencia fija que se ha energizado previamente [16]. En este punto
debe aclararse el hecho de que cuando se trabaja con una pantalla resistiva no es posi-
ble hallar ambas coordenadas (x y y) de manera simultánea, entonces el procedimiento
correcto es hallar una y luego la otra.
Para leer la coordenada x primero se conectan los hilos de la pantalla como se muestra
en la figura 2.5(c) y luego se lee y conectándola como se muestra en la figura 2.5(b); el
hilo de lectura en cada caso son los que se referencian con A0 y A1 , los cuales presentan
una variación en mili voltios con un valor máximo y mínimo a lo largo de cada eje
según el punto de presión en la superficie de la pantalla como se muestra en la figura
2.4, cuando los hilos se conectan en alguna configuración que corresponda a la figura
2.5(b) o 2.5(c).

15
2. P LANTA SELECCIONADA

R f ija 1 2 3 4 1 2 3 4
NC A0 A1 NC
2 4
1 3 10 kΩ 10 kΩ

R f ija 3, 3 V 3, 3 V

(a) (b) (c)

Figura 2.5: Salidas de la pantalla táctil resistiva de 4 hilos, cada punto representa un hilo [Autores].
(a) Medida de la resistencia fija. (b) Configuración para leer la coordenada y. (c) Configuración
para leer la coordenada x.

El cambio de conexión de los cuatro hilos de la pantalla para leer cada coordenada
se hace manipulando los pines I/O del GPIO de la Raspberry Pi Usando las lineas del
listado de código 2.1. Cuando se necesita que un hilo de la pantalla resistiva esté en
NC (No conexión) como se ve en la imagen 2.5, se configura el pin del GPIO conectado
a él como entrada

Listado de código 2.1: Manipulación pines GPIO para lectura de coordenadas de la pantalla táctil.
#Lectura del eje x
#disposición pines pantalla
GPIO.setup(22, GPIO.IN) # Hilo 1 pantalla touch en No conexion
GPIO.setup(17, GPIO.OUT) # Hilo 2 pantalla touch
GPIO.setup(4, GPIO.OUT) # Hilo 3 pantalla touch
GPIO.setup(27, GPIO.OUT) # Hilo 4 pantalla touch
#salida de los pines
GPIO.output(17, 1) # nivel alto de voltaje para base de transistor,
hilo 3 a tierra
GPIO.output(4, 0) # nivel bajo de voltaje para base de transistor,
hilo 2 a canal ADC 1
GPIO.output(27, 1)
#asignación de la lectura de la coordenada
x= adc.readADCSingleEnded(0, pga, sps)

#Lectura del eje y


#disposición pines pantalla
GPIO.setup(22, GPIO.OUT) # Hilo 1 pantalla touch
GPIO.setup(17, GPIO.OUT) # Hilo 2 pantalla touch
GPIO.setup(4, GPIO.OUT) # Hilo 3 pantalla touch
GPIO.setup(27, GPIO.IN) # Hilo 4 pantalla touch en no conexión
#salida de los pines
GPIO.output(22, 1)
GPIO.output(4, 1) # nivel alto de voltaje para base de transistor,

16
2.3. Cinemática de la plataforma Stewart

hilo 2 a tierra
GPIO.output(17, 0) # nivel bajo de voltaje para base de transistor,
hilo 3 a canal ADC 0
#asignación de la lectura de la coordenada
y= adc.readADCSingleEnded(1, pga, sps)

Notese que para leer cualquier coordenada se necesita que uno de los hilos 2 o 3 de la
pantalla esté a tierra y el otro conectado a la lectura del ADC, debido a que la lectura
analógica se hace con un dispositivo externo (Ver capitulo 1) no se pueden instanciar
las entradas de los canales de lectura para que sean una salida y así hacer conexión de
uno de los dos hilos de la pantalla con tierra. Entonces lo que se hace con el fin cumplir
la disposición de los hilos de la pantalla para leer cualquier coordenada como se ve en
la figura 2.5, se hace un arreglo con un transistor NPN conectando su base a un pin del
GPIO de la raspberry pi de tal manera que si se envía un nivel alto de voltaje el hilo de
la pantalla haga conexión con con tierra y si se envía un nivel bajo, haga conexión con
el canal ADC del dispositivo externo de lectura, esto se especifica en los comentarios
del listado de código 2.1.

2.3 C INEMÁTICA DE LA PLATAFORMA S TEWART

Independientemente de que modelo se aplique para deducir el comportamiento diná-


mico de la plataforma, debe saberse que existe una relación de la posición y la orienta-
ción de la plataforma móvil con las variables de articulación y los parámetros geomé-
tricos [13].
Para deducir el modelo dinámico de la plataforma hay dos tipos de análisis, el de cine-
mática inversa y el de cinemática directa. Si se quiere resolver el sistema mediante cine-
mática directa se requiere del planteamiento de ecuaciones no lineales en las cuales se
describe la posición y la orientación del manipulador paralelo cuando sus longitudes
son conocidas, el problema de este tipo de análisis es que se pueden obtener múltiples
soluciones [12], más específicamente para el caso de la plataforma Stewart servocon-
trolada se obtiene un sistema de 18 ecuaciones con 40 posibles soluciones [2], para este
tipo de problemas la aplicación de la cinemática inversa es más sencilla con respecto
a la cinemática directa porque es más fácil calcular tanto las longitudes entre la placa
superior e inferior (de los brazos que son los elementos que separan una de la otra),
como los parámetros de los motores conociendo la posición deseada o los ángulos de
giro de la placa superior móvil de la plataforma [13], en lugar de calcular la localiza-
ción (posición y orientación) de la plataforma dados los parámetros de operación y
elongación de los actuadores.
Si se deduce el modelo dinámico de la plataforma haciendo uso de la cinemática inver-
sa, es necesario calcular las variaciones de las distancias que separan a la placa superior
móvil de la plataforma de la placa inferior fija y los parámetros de los motores cono-
ciendo la posición deseada de la plataforma.

17
2. P LANTA SELECCIONADA


z
Placa superior ′
móvil y Pi
O pi

x

T
qi
Placa inferior z li
base fija
y
O bi
Figura 2.6: Diagrama de Cuerpo libre para el x
Bi
i −ésimo brazo [1].

El problema de la cinemática inversa puede definirse en dos etapas:

1. Tener clara la referencia de posición y orientación deseada y determinar la rota-


ción de las junturas esféricas al rededor de cada eje coordenado con respecto a
las placas superior e inferior.

2. Determinar los ángulos de rotación de los servomotores, teniendo en cuenta la


dinámica de las junturas analizadas en el paso anterior.

Resolver la primera etapa requiere tener claros los puntos relevantes en el diagrama
del cuerpo de la plataforma, tal y como se ve en la Figura 2.6, luego se calculan las
distancias entre las junturas de la base y las junturas de la placa superior plantean-
do matrices de rotación y traslación; con la ecuación (2.4) se expresa la longitud del
i −ésimo brazo y en (2.5) se expresa qi que describe las coordenadas del punto de ancla
Pi tomando como referencia la placa base.

li = T + R PB pi − bi (2.4)

qi = T + R PB pi (2.5)

En (2.4) y (2.5) T hace referencia a la distancia que hay entre el punto central de la placa
inferior O y el punto central de la placa superior O’ y también puede ser visto como el
vector de traslación que varía conforme cambia la distancias entre las placas superior
e inferior de la plataforma, esta distancia está dada por el desplazamiento de posición
lineal entre los dos puntos centrales por lo tanto es el vector de traslación. pi es la
distancia entre el punto central O’ de la placa superior y la i −ésima juntura esférica o
rótula adherida a ella, la distancia pi puede ser definida como un vector en el cual se
determinan las coordenadas del punto de ancla Pi con respecto a la placa superior. bi
es la distancia entre el punto central O de la placa inferior y la i −ésima juntura esférica
o rótula adherida a ella, la distancia bi representa el vector que define las coordenadas

18
2.3. Cinemática de la plataforma Stewart

y z z
P P
x′
y′ ψ x′ z′ φ y′
z′
C B B D J B
θ

θ P y
ψ x x φ
O A O E O K

(a) (b) (c)

Figura 2.7: Rotación. (a) Con respecto al eje z. (b) Con respecto al eje y. (C) Con respecto al eje
x. Figura basada en [1] página 1.

del punto de ancla Bi en la placa inferior. R PB (ver (2.6)) es la variación de la distancia


que hay entre los puntos Pi y Bi que son los puntos en los cuales se ubica la i −ésima
rótula de las placas superior e inferior.

R PB = Rz (ψ) · Ry (θ ) · R x ( φ) (2.6)

La placa base tiene los ejes ortogonales x, y y z y la placa móvil tiene los ejes ortogonales
x’, y′ y z′ , para cada eje se pueden identificar 3 desplazamientos traslacionales con
respecto a la base y 3 movimientos angulares que definen la orientación de la placa
móvil con respecto a la base: .

Rz (ψ): Ángulo de rotación ψ alrededor de z, el cual se deduce observando el


modelo dinámico desde “arriba” como se ve en la Figura 2.7(a).
En este caso se hallan las distancias x y y que van hasta el punto P, sabiendo

 z = z para 
que  la matriz de rotación Rz (ψ) teniendo en cuenta que
deducir
x x′
 y  = Rz (ψ)  y′ . Para hallar x se mide la distancia desde el punto de
z z′
origen O hasta el punto P sobre el eje x como se ve en (2.7).

x = OA − CB (2.7)

Luego se expresa (2.7) en términos del ángulo ψ y las distancias de los ejes coor-
denados x ′ y y′ haciendo uso de las definiciones de las funciones trigonométricas
seno y coseno como se ve en 2.8, haciendo la traslación necesaria de dicho ángulo

19
2. P LANTA SELECCIONADA

y proyectando los ejes coordenados de la Figura 2.7(a).

x = x ′ cos (ψ) + y′ sin (ψ) (2.8)

Ahora se halla y que es la distancia de O a P sobre el eje y como se ve en (2.9).

y = AB + CP (2.9)

Se expresa (2.9) en términos de ψ y x ′ y y′ como se ve en (2.10).

y = x ′ sin (ψ) + y′ cos (ψ) (2.10)

Así se obtiene Rz (ψ) disponiendo de (2.8) y (2.10) como se ve en (2.11).


    ′ 
x cos (ψ) sin (ψ) 0 x
 y  =  sin (ψ) cos (ψ) 0   y′ 
z 1 0 0 z′
 
cos (ψ) sin (ψ) 0
Rz (ψ) =  sin (ψ) cos (ψ) 0  (2.11)
1 0 0

Ry (θ ): Ángulo de rotación θ alrededor de y, el cual se deduce observando el


modelo dinámico “de frente” como se ve en la figura 2.7(b).
En este caso se hallan las distancias x y z que van hasta el punto P, sabiendo
que y = y′ para deducir la matriz de rotación Ry (θ ) teniendo en cuenta que
   ′ 
x x
 y  = Ry (θ )  y′ . Para hallar x se mide la distancia desde el punto de
z z′
origen O hasta el punto P sobre el eje x como se ve en (2.12).

x = OE + BD (2.12)

(2.12) en términos de θ y de los ejes coordenados x ′ y z′ como se ve en (2.13)


haciendo la traslación necesaria de dicho ángulo y proyectando los ejes coorde-
nados de la Figura 2.7(b).

x = x’ cos (θ ) + z′ sin (θ ) (2.13)

Se halla z que es la distancia de O a P sobre el eje z como se ve en (2.14).

z = BE − DP (2.14)

Se expresa (2.14) en términos de θ y x ′ y z′ como se ve en (2.15).

z = z′ cos (θ ) − x ′ sin (θ ) (2.15)

20
2.3. Cinemática de la plataforma Stewart

Así se obtiene Ry (θ ) disponiendo de (2.13) y (2.15) como se ve en (2.16)


    ′ 
x cos (θ ) 0 sin (θ ) x
 y = 0 1 0   y′ 
z − sin (θ ) 0 cos (θ ) z′
 
cos (θ ) 0 sin (θ )
Ry (θ ) =  0 1 0  (2.16)
− sin (θ ) 0 cos (θ )

R x ( φ): Ángulo de rotación φ alrededor de x, el cual se deduce observando el


modelo dinámico “de lado” como se ve en la figura 2.7(c).
En este caso se hallan las distancias y y z que van hasta el punto P, sabiendo

 x = x para deducir
que  la matriz de rotación R x ( φ) teniendo en cuenta que
x x′
 y  = R x ( φ)  y′ . Para hallar y se mide la distancia desde el punto de
z z′
origen O hasta el punto P sobre el eje y como se ve en (2.17).

y = OK − JB (2.17)

Se expresa (2.17) en términos de φ y de los ejes coordenados y′ y z′ como se ve


en (2.18) haciendo la traslación necesaria de dicho ángulo y proyectando los ejes
coordenados de la Figura 2.7(c).

y = y′ cos ( φ) − z′ sin ( φ) (2.18)

Se halla z que es la distancia de O a P sobre el eje z como se ve en (2.19).

z = KB + JP (2.19)

Se expresa (2.19) en términos de φ y y′ y z′ como se ve en (2.20).

z = y′ sin ( φ) + z′ cos ( φ) (2.20)

Así se obtiene R x ( φ) disponiendo de (2.18) y (2.20) como se ve en (2.21).


    ′ 
x 1 0 0 x
 y  =  0 cos ( φ) − sin ( φ)   y′ 
z 0 sin ( φ) cos ( φ) z′
 
1 0 0
R x ( φ) =  0 cos ( φ) − sin ( φ)  (2.21)
0 sin ( φ) cos ( φ)

21
2. P LANTA SELECCIONADA

Teniendo las matrices de rotación que corresponden a los ejes coordenados (2.11), (2.16)
y (2.21) puede hallarse (2.6).
     
cos (ψ) sin (ψ) 0 cos (θ ) 0 sin (θ ) 1 0 0
R PB =  sin (ψ) cos (ψ) 0  ·  0 1 0  ·  0 cos ( φ) − sin ( φ) 
1 0 0 − sin (θ ) 0 cos (θ ) 0 sin ( φ) cos ( φ)


cos (ψ) cos (θ ) − sin (ψ) cos ( φ) + cos (ψ) sin (θ ) sin ( φ)
R PB =  sin (ψ) cos (θ ) cos (ψ) cos ( φ) + sin (ψ) sin (θ ) sin ( φ)
− sin (θ ) cos (θ ) sin ( φ)

sin (ψ) sin ( φ) + cos (ψ) sin (θ ) cos ( φ)
− cos (ψ) sin ( φ) + sin (ψ) sin (θ ) cos ( φ)  (2.22)
cos (θ ) cos ( φ)

Teniendo (2.22) se puede hallar la matriz de translación T para como se muestra en


2.23.  ′ 
x
T = R BA  y′  (2.23)
z ′

Concluida la primera etapa se procede a calcular el ángulo de rotación de cada ser-


vomotor, cuyo rotor está unido a los brazos de la plataforma como se ve en la Figura
2.8(a). Esto se realiza debido a la necesidad de saber cuánta variación de la longitud de
cada unión brazo/hélice se produce con el movimiento angular del correspondiente
motor anclado a dicha unión, para saberlo se hace el modelo cinemático que se ve en
Figura 2.8(b).

Pi Pi z
s
li y
li s
Ai
Figura 2.8: Representaciones gráficas de la ro-
α
tación del servomotor. (a) Hélice del i −ésimo
Bi
servomotor anclada al i −ésimo brazo rígido S. Bi β
(b) Representación cinemática del recorrido de x
x
la hélice del servomotor anclada a S.Figura ba-
(a) (b)
sada en [1] página 3 y [2]

Donde Ai es el punto de ancla del i −ésimo brazo con la hélice del rotor de su corres-
pondiente servomotor, Bi es el punto de unión de la hélice del servomotor con el rotor,
S es la longitud del i −ésimo brazo rígido de la plataforma, li como se ve en (2.4) es la
distancia variable que existe entre el punto de ancla Pi del brazo con la placa superior y

22
2.3. Cinemática de la plataforma Stewart

la juntura Bi , a es la longitud de la hélice del servo, w es un vector con coordenadas x y


y cuyo origen está en Bi y sirve de referencia para hallar las coordenadas del punto de
ancla Ai y el elipse punteado representa el recorrido rotacional de la hélice del servo
que forma los ángulos: β con respecto a x y y y el ángulo α con respecto a x, y y z.
La posición de los puntos Ai y Pi varía conforme se mueve el servomotor, en cambio
el punto Bi es fijo; con el fin de encontrar las coordenadas de Ai en cada instante de
tiempo, se grafican los ángulos α y β como se ve en la Figura 2.9.

z z
Ai Ai
(i = impar) (i = par) Ai
y
y
π−α α za
ya α Figura 2.9: Recorrido angular
π+β Bi β ω de la hélice del servomotor con
x xa β respecto a los tres ejes coorde-
barrido de nados x, y y z. Figura basada
la leva x
en [1] páginas 4 y 5.

Las coordenadas de Ai se especifican en (2.24) y se hallan usando las definiciones fun-


ciones trigonométricas proyectando vectores y trasladando los ángulos α y β.
 
xa
Ai =  y a  (2.24)
za

 
xb
Bi =  yb  (2.25)
zb
 
xp
Pi =  y p 
zp
A cada coordenada se le suma la correspondiente componente de Bi como se ve en
(2.25) debido a que este punto no es (0,0,0), hay una distancia fija entre el origen y el
centro de anclaje de la hélice con el rotor, a continuación se hallan las coordenadas de
Ai para el servomotor par al cual le corresponden los ángulos α y β.

x a Como se ve en la Figura 2.9 se pueden obtener las equivalencias w = x a / cos ( β)


y w = a cos (α) que luego se igualan para obtener (2.26).

x a = a cos (α) cos ( β) + xb (2.26)

23
2. P LANTA SELECCIONADA

y a Las equivalencias trigonométricas según se ve en la Figura 2.9 para esta coor-


denada son: w = s cos (α) y w = y a / sin ( β) las cuales se igualan para obtener
2.27.
y a = a cos (α) sin ( β) + yb (2.27)

z a Se forma un solo equivalente trigonométrico sin (α) = z a /a, a es la longitud


de la hélice del servomotor. Despejando dicha expresión se obtiene.

z a = a sin (α) + zb (2.28)

Conociendo las coordenadas del punto Ai se procede a determinar el ángulo α que se


forma entre la hélice del servomotor y los ejes coordenados, por lo tanto se halla la
magnitud de los vectores a, S y l teniendo en cuenta los puntos de cada uno como se
ve en la Figura 2.8(b), cabe aclarar que xb , yb y zb son coordenadas fijas.

a2 = ( x a − x b )2 + ( y a − y b )2 + ( z a − z b )2

a2 = x2a − 2x a xb + xb2 + y2a − 2y a yb + y2b + z2a − 2z a zb + z2b


a2 = x2a + y2a + z2a − 2 ( x a xb + y a yb + z a zb ) + xb2 + y2b + z2b
   
(2.29)
2  2  2
l 2 = x p − xb + y p − yb + z p − zb

l 2 = x2p − 2x p xb + xb2 + y2p − 2y p yb + y2b + z2p − 2z p zb + z2b


 
l 2 = x2p + y2p + z2p − 2 x p xb + y p yb + z p zb + xb2 + y2b + z2b
   
(2.30)
2  2  2
S2 = x p − x a + y p − y a + z p − z a

S2 = x2p − 2x p x a + x2a + y2p − 2y p y a + y2a + z2p − 2z p z a + z2a


 
S2 = x2p + y2p + z2p − 2 x p x a + y p y a + z p z a + x2a + y2a + z2a
   
(2.31)

De (2.29) y (2.30) se despejan las expresiones que se ven en (2.32) y (2.33) respectiva-
mente.  2
x a + y2a + z2a = − a2 − 2 ( x a xb + y a yb + z a zb ) + xb2 + y2b + z2b
  
(2.32)
 
x2p + y2p + z2p = −l 2 − 2 x p xb + y p yb + z p zb + xb2 + y2b + z2b
   
(2.33)

Se reemplaza (2.32) y (2.33) en (2.31) y se obtiene (2.34).

S2 − l 2 − a2 = − xb2 + y2b + z2b + 2 x p xb + y p yb + z p zb − 2 x p x a + y p y a + z p z a −


     
 2
xb + y2b + z2b − 2 ( x a xb + y a yb + z a zb ) (2.34)

Se multiplicando toda la expresión (2.34) por -1 y reorganizando términos se obtiene


(2.35).

24
2.3. Cinemática de la plataforma Stewart

l 2 − s2 − a2 = 2 xb2 + y2b + z2b − 2 x p xb + y p yb + z p zb + 2x a x p − xb +


       
   
2y a y p − yb + 2z a z p − zb (2.35)

Anteriormente se había hallado cada coordenada del punto Ai entonces se reemplaza


(2.26), (2.27) y (2.28) en (2.35).

l 2 − s2 − a2 = 2 xb2 + y2b + z2b − 2 x p xb + y p yb + z p zb +


     
   
2 ( a cos (α) cos ( β) + xb ) x p − xb + 2 ( a cos (α) sin ( β) + yb ) y p − yb +
 
2 ( a sin (α) + zb ) z p − zb

l 2 − s2 − a2 = 2a sin (α) z p − zb + 2a cos (α) cos ( β) x p − xb + sin ( β) y p − yb


        

(2.36)
Se hace sustitución de variables para simplificar la expresión (2.36).
 
M = 2a z p − zb (2.37)
    
N = 2a cos ( β) x p − xb + sin ( β) y p − yb (2.38)
L = l 2 − S2 − a2
 
(2.39)
Se reemplaza (2.37), (2.38) y (2.39) en (2.36).

L = M sin (α) + N cos (α) (2.40)

En la sección (B.1) del apéndice B se explica con detalle el procedimiento seguido para
hallar (2.41) a partir de (2.40).
   
L N
α = arcsin √ − arctan (2.41)
M2 + N 2 M

Ahora puede calcularse la longitud entre las placas superior e inferior asociada al án-
gulo α de rotación del servomotor; antes de hacerlo es necesario saber cual es la posi-
ción inicial de los motores que dan la longitud inicial ho que separa ambas placas, en
(2.42) q0 representa las coordenadas del punto de ancla Pi (situado en la placa superior)
con respecto a la placa inferior para h0 .

q0 = T + R PB pi
    
0 1 0 0 xp
q0 =  0  +  0 1 0   y p 
h0 0 0 1 zp
   
0 xp
q0 =  0  +  y p 
h0 zp

25
2. P LANTA SELECCIONADA

 
xp
q0 =  yp  (2.42)
h0 + z p

Notese que el vector T de traslación para la posición inicial solo considera la distancia
inicial h0 la cual se da con respecto al eje z y la matriz de rotación R PB para la posición
inicial es una matriz identidad.

P1 P2

s1
s2
l1 l2

Figura 2.10: Disposición fí- A1 A2


B1 B2
sica de cada par de servomo-
tores [Autores]. Impar Par

Se considera que la posición inicial del brazo del servo impar está enfrentada como
espejo con respecto al brazo del servo par, como se ve en la Figura 2.10. Cuando el
servo está en su posición inicial se forma un ángulo de 90° entre S y a entonces es
posible calcular la distancia l inicial que está entre los puntos P y B usando el teorema
de Pitágoras como se ve en (2.43).

l 2 = S2 + a2 (2.43)
Teniendo en cuenta la equivalencia de l hallada en (2.30) se tiene la ecuación (2.44).

2  2  2
l 2 = x p − xb + y p − yb + z p − zb

(2.44)
Si se igualan (2.30) y (2.44) y se despeja h0 se obtiene (2.45).

2  2  2
S2 + a2 = x p − x b + y p − y b + z p − z b

2  2  2
S2 + a2 = x p − x b + y p − y b + h0 + z p


   2  2
h0 + z p = S2 + a2 − x p − x b − y p − y b

 2  2
h0 = S2 + a2 − x p − x b − y p − y b − z p (2.45)

El cálculo de h0 se determina de la misma manera para los seis brazos de la plataforma


dado que está construida simétricamente con respecto al eje z; Así también existe un

26
2.3. Cinemática de la plataforma Stewart

ángulo α0 que se define igual que α con la diferencia de que el primero se da cuando la
plataforma esta en sus condiciones iniciales el cual se deduce de (2.4).

li = T + R PB ( pi − bi )
       
0 1 0 0 xp xb
l0 =  0  +  0 1 0    y p  −  y b  
h0 0 0 1 zp zb
   
0 x p − xb
l0 =  0  +  y p − y b 
h0 zp − 0
 
x p − xb
l0 =  y p − y b  (2.46)
h0 + z p
Haciendo uso de (2.43) y de (2.46) se halla l0 como se ve en (2.47).
2  2  2
l02 = x p − xb + y p − yb + h0 + z p

(2.47)

Para encontrar α0 se reescribe (2.41) como se ve en (2.48).


 
 
L0  − arctan N0
α0 = arcsin   (2.48)
M02 + N02 M0

Se especifican las equivalencias de M0 , N0 y L0 según las ecuaciones (2.37), (2.38) y


(2.39), en el caso de L0 se tiene en cuenta (2.43) por lo tanto se reemplaza l y se obtiene
(2.49).
L0 = l 2 − S2 − a2
 

L0 = S2 + a2 − S2 − a2
   

L0 = 2a2 (2.49)
Para M0 se tiene en cuenta (2.47) y para N0 se asume que β es 0° (situación que no
podría verse en la realidad ya que si β variara seria necesario romper la leva del motor),
entonces se obtiene (2.50) y (2.51).

 
M0 = 2a h0 + z p (2.50)
    
N0 = 2a cos (0) x p − xb + sin (0) y p − yb
 
N0 = 2a x p − xb (2.51)

27
2. P LANTA SELECCIONADA

x
y T li = T + R PBii ( pi − bi )
z

ψ    
θ R PBii = [3X3] αi = arcsin √ L
− arctan N
M
ϕ M2 + N 2

Cinemática h0 α0 Wi Salida
inversa proceso

Figura 2.11: Diagrama de bloques cinemática inversa plataforma Stewart [Autores].

2.4 A PLICACIÓN DE LA CINEMÁTICA DE LA PLATAFORMA S TEWART

En la Figura 2.11 se puede ver un resumen de lo que es la aplicación de la cinemática


a la plataforma, en primera instancia se tienen los parámetros requeridos para que la
placa superior se mueva de acuerdo a la traslación y rotación deseada, es decir x, y,
z, ψ, θ, y ϕ son el punto de partida de la cinemática inversa, con x, y y z se calcula
la matriz de traslación T y con ψ, θ, y ϕ se calcula la matriz de rotación R PBii , luego se
calculan li y αi para finalmente obtener el ciclo útil Wi .
Al pretender aplicar la cinemática del sistema anteriormente descrita debe disponerse
de los parámetros que corresponden a sus condiciones iniciales y constantes, son los
que se nombran en el Cuadro 2.1.
Para medir los ángulos β i cuyos valores se requieren para calcular el ángulo αi , es ne-
cesario tener definida la ubicación y orientación de los ejes coordenados que en este
caso son x y y, en la Figura 2.12 (a) se muestra la ubicación de los ejes coordenados
con respecto a las levas de cada servomotor (en color rosa) y la medición de su corres-
pondiente β. Por otro lado para calcular las coordenadas x p , y p , z p , xb , yb y zb de los
puntos p y b (ver Figura 2.6) es indispensable tener establecida la distribución espacial
tanto de los servomotores en la placa inferior como de las junturas esféricas en la placa
superior como se ve en las Figuras 2.12 (b) y 2.12 (c). Esto con el fin de calcular h0 y α0
que también son constantes propias de las condiciones iniciales del sistema las cuales
se hallan con (2.48) y (2.45).
A partir de los ángulos especificados tanto para la distribución de los servomotores
como de las junturas se hallan las coordenadas de los puntos p y b cuyos valores se cal-
culan con ayuda de trigonometría básica para las uniones con cada servomotor tanto
con la placa superior como para la placa inferior, como se ve en el Listado de código
2.2.

28
2.4. Aplicación de la cinemática de la plataforma Stewart

Cuadro 2.1: Constantes propias de la estructura física de la plataforma.

Indicador Equivalente Descripción


numérico
bi 71mm Distancia entre el punto medio de la placa inferior y
la unión leva/rotor del i −ésimo servomotor.
pi 56.8mm Distancia entre el punto medio de la placa superior y
la juntura del i −ésimo brazo rígido de la plataforma.
Si 129mm Longitud del i −ésimo brazo rígido.
ai 12.5mm Longitud de la leva del i −ésimo servomotor, medida
desde la unión leva/rotor.
Ángulo fijo que forma la leva del i −ésimo
βi β1 = 90°
servomotor con respecto a los ejes coordenados x y y.
β2 = 270°
β3 = 210°
β4 = 30°
β5 = 330°
β6 = 150°

Ciclo útil requerido para que el i −ésimo servomotor


Wi0 W10 = 1398 mueva la leva a su posición inicial, dado en
W20 = 1106 µsegundos/radian.
W30 = 1430
W40 = 1202
W50 = 1576
W60 = 1086

r r1 = 1650/135 Ciclo útil requerido para que el i −ésimo servomotor


r2 = 800/45 mueva la leva al máximo grado de rotación
r3 = 1700/135 determinado previamente, dado en
r4 = 930/45 µsegundos/grado.
r5 = 1850/135 Estos valores se obtienen mediante la utilización de
r6 = 780/45 la ecuación deducida de la recta del ciclo útil vs
grado de la hélice de cada servo con respecto a la
horizontal. Para el motor impar son 135° y para el
par son 45° (ver Anexo 3, sección C.2).

Listado de código 2.2: Código python para hallar las coordenadas del punto p y el punto b.
1 # d e f i n i c i o n de l o s angulos de u b i c a c i o n de l o s motores
2 ang_base = ( 3 4 4 , 1 6 , 1 0 4 , 1 3 6 , 2 2 4 , 2 5 6 )
3 # d e f i n i c i o n de l o s angulos de u b i c a c i o n de l a s j u n t u r a s
4 ang_plamov = ( 3 1 5 . 3 , 4 4 . 7 , 7 5 . 3 , 1 6 4 . 7 , 1 9 5 . 3 , 2 8 4 . 7 )
5 # m a t r i z b i d i m e n s i o n a l d e 6 x3 u b i c a c i o n j u n t a s b a s e

29
2. P LANTA SELECCIONADA

servo 2 servo 1

16° 344°
32°
y y
β5 β4 120°
x x y
y y 104° 356°
β3 servo 6
β6
x servo 3
136° 224°
servo 4 servo5
y y
β1 β2
x x junta 2 49,7° 315,3° junta 1 x

(a) junta 3 75,3° (b)


284,7° junta 6
y

164,7° 195,3°
junta 4 x junta 5

(c)

Figura 2.12: Distribución espacial en las placas superior e inferior de la plataforma Stewart [Autores].
(a) Medición de los ángulos β. (b) Ubicación de los motores en la placa base. (C) Ubicación de las
junturas en la placa superior.

6 uniones_ba = numpy . z e r o s ( ( 6 , 3 ) )
7 # m a t r i z b i d i m e n s i o n a l d e 6 x3 u b i c a c i o n j u n t a s p l a c a m o v i l
8 u n i o n e s _ p l a = numpy . z e r o s ( ( 6 , 3 ) )
9
10 f o r i in range ( 6 ) :
11 # en e s t e m e t o d o s e c a l c u l a n xb yb p a r a c a d a s e r v o
12 bx=rad_bas * math . cos ( math . r a d i a n s ( ang_base [ i ] ) )
13 by=rad_bas * math . s i n ( math . r a d i a n s ( ang_base [ i ] ) )
14 uniones_ba [ i ] [ 0 ] =bx
15 uniones_ba [ i ] [ 1 ] =by
16 uniones_ba [ i ] [ 2 ] =0
17 # en e s t e m e t o d o s e c a l c u l a n xp yp p a r a c a d a s e r v o
18 px= r a d _ p l a c * math . cos ( math . r a d i a n s ( ang_plamov [ i ] ) )
19 py= r a d _ p l a c * math . s i n ( math . r a d i a n s ( ang_plamov [ i ] ) )
20 u n i o n e s _ p l a [ i ] [ 0 ] =px
21 u n i o n e s _ p l a [ i ] [ 1 ] =py
22 u n i o n e s _ p l a [ i ] [ 2 ] =0

30
2.4. Aplicación de la cinemática de la plataforma Stewart

Teniendo las anteriores coordenadas guardadas en las matrices uniones_ba [6][3]


y uniones_pla [6][3] se procede a aplicar la ecuación (2.5) calculando simultánea-
mente la matriz de rotación y usando la matriz de traslación como se muestra en el
Listado de código 2.3.
Listado de código 2.3: Código python para calcular qi y li para cada brazo rígido de la plataforma
Stewart.
1 # mediciones r e a l e s
2 rad_bas =71
3 rad_plac =56.8
4 s =129
5 a =12.5
6 hi =124.36
7 # m a t r i z b i d i m e n s i o n a l d e 6 x3 q l o n g i t u d e n t r e e l c e n t r o d e l a p l a c a
base y pi
8 q = numpy . z e r o s ( ( 6 , 3 ) )
9 # m a t r i z b i d i m e n s i o n a l d e 6 x3 l o n g i t u d e n t r e b i y p i
10 l = numpy . z e r o s ( ( 6 , 3 ) )
11 p s i =0
12 t h e t a =0
13 phi =0
14 x=0
15 y=0
16 z=0
17 T=[ x , y , z+ h i ]
18 # a s i g n a c i o n de t e r m i n o s para s i m p l i f i c a r e l c a l c u l o de l a ma tr iz de
rotacion
19 E=math . s i n ( math . r a d i a n s ( phi ) )
20 F=math . s i n ( math . r a d i a n s ( t h e t a ) )
21 G=math . s i n ( math . r a d i a n s ( p s i ) )
22 H=math . cos ( math . r a d i a n s ( phi ) )
23 I =math . cos ( math . r a d i a n s ( t h e t a ) )
24 J =math . cos ( math . r a d i a n s ( p s i ) )
25 m=uniones_ba
26 n=u n i o n e s _ p l a
27 f o r i in range ( 6 ) :
28 q [ i ] [ 0 ] = ( ( J * I * n [ i ] [ 0 ] ) +((( −G*H) +( J * F * E ) ) * n [ i ] [ 1 ] ) + ( ( (G* E ) +( J * F *H) )
* n [ i ] [ 2 ] ) ) +T [ 0 ]
29 q [ i ] [ 1 ] = ( (G* I * n [ i ] [ 0 ] ) + ( ( ( J *H) +(G* F * E ) ) * n [ i ] [ 1 ] ) +(( − J * E ) + ( (G* F *H) )
* n [ i ] [ 2 ] ) ) +T [ 1 ]
30 q [ i ] [ 2 ] = ( ( − F * n [ i ] [ 0 ] ) +( I * E * n [ i ] [ 1 ] ) +( I *H* n [ i ] [ 2 ] ) ) +T [ 2 ]
31 l [ i ] [ 0 ] = q [ i ][0] −m[ i ] [ 0 ]
32 l [ i ] [ 1 ] = q [ i ][1] −m[ i ] [ 1 ]
33 l [ i ] [ 2 ] = q [ i ][2] −m[ i ] [ 2 ]

Con qi y li calculados se aplica la ecuación (2.41) para hallar α que es el ángulo de ro-
tación para cada hélice del servo según las coordenadas de traslación y rotación dadas
como se ve en la Lista de código 2.4.

31
2. P LANTA SELECCIONADA

Listado de código 2.4: Código python para calcular el ángulo α de cada hélice de los servomotores.
1 # d e f i n i c i o n d e l o s a n g u l o s b e t h a l e v a con r e s p e c t o xy
2 ang_betas = ( 9 0 , 2 7 0 , 2 1 0 , 3 0 , 3 3 0 , 1 5 0 )
3 # m a t r i z b i d i m e n s i o n a l d e 6 x1 a n g u l o s a l f a
4 a n g _ a l f a = numpy . z e r o s ( ( 6 , 1 ) )
5 c =q
6 d =l
7 m=uniones_ba
8 n=u n i o ne s _ p l a
9 # m a t r i z b i d i m e n s i o n a l d e 6 x1
10 h0 = numpy . z e r o s ( ( 6 , 1 ) )
11 a n g _ a l f a 0 = numpy . z e r o s ( ( 6 , 1 ) )
12 f o r i in range ( 6 ) :
13 L = ( ( d [ i ] [ 0 ] * * 2 ) +(d [ i ] [ 1 ] * * 2 ) +(d [ i ] [ 2 ] * * 2 ) ) +( a * * 2 ) −(s * * 2 )
14 M=2 * a * ( c [ i ][2] −m[ i ] [ 2 ] )
15 N=2 * a * ( ( ( math . cos ( math . r a d i a n s ( ang_betas [ i ] ) ) ) * ( c [ i ][0] −m[ i ] [ 0 ] ) ) + ( (
math . s i n ( math . r a d i a n s ( ang_betas [ i ] ) ) ) * ( c [ i ][1] −m[ i ] [ 1 ] ) ) )
16 H=math . degrees ( math . a s i n ( L/( math . s q r t (M* * 2 +N * * 2 ) ) ) )
17 J =( math . degrees ( math . atan2 (N,M) ) )
18 a n g _ a l f a [ i ]=H−J
19 h0 [ i ] = ( math . s q r t ( ( s * * 2 ) +( a * * 2 ) − (( c [ i ][0] −m[ i ] [ 0 ] ) * * 2 ) − (( c [ i ][1] −m
[ i ] [ 1 ] ) * * 2 ) ) )−c [ i ] [ 2 ]
20 L0 = 2 * ( a * * 2 )
21 M0=2 * a * ( h0 [ i ]+ c [ i ] [ 2 ] )
22 a n g _ a l f a 0 [ i ] = ( math . degrees ( math . a s i n ( L0 /( math . s q r t (M0* * 2 +N * * 2 ) ) ) )
) −(math . degrees ( math . atan2 (N, M0) ) )

Por ultimo se procede a calcular el ancho de pulso introducido como señal de control
para los servomotores necesario para que roten αi grados, este pulso Wi se obtiene co-
mo se ve en la Lista de Código 2.5. Es necesario aclarar que las constantes de r y W0 se
obtienen a través de la aplicación de las curvas del comportamiento de los servomoto-
res las cuales se especifican en el apéndice C sección C.2.

Listado de código 2.5: Código python para calcular el ancho de pulso Wi necesario en cada
servomotor.
1 # c o n s t a n t e s r p a r a l o s s e r v o s , p u l s o r e q u e r i d o p a r a que e l
s e r v o r o t e a l a max p o s i c i o n
2 r =(1650/135 ,800/45 ,1700/135 ,930/45 ,1850/135 ,780/45)
3 # pulso actual del servo
4 W = numpy . z e r o s ( ( 6 , 1 ) )
5 # p u l s o en m i c r o s e g r e q u e r i d o p a r a que l o s s e r v o s r o t e n a l a
posicion inicial
6 W0 = ( 1 3 9 8 , 1 1 0 6 , 1 4 3 0 , 1 2 0 2 , 1 5 7 6 , 1 0 8 6 )
7 v= a n g _ a l f a
8 o= a n g _ a l f a 0
9 f o r i in range ( 6 ) :

32
2.5. Bola y plato

10 # c o n d i c i o n para motor impar


11 i f ( i %2)==0:
12 #W en m i c r o s e g
13 micro1 =(W0[ i ] ) − ((v [ i ]− o [ i ] ) * r [ i ] )
14 # c i c l o u t i l en p o r c e n t a j e
15 W[ i ]= ( micro1 ) /100
16 # motor par
17 else :
18 micro1= (W0[ i ] ) + ( ( v [ i ]− o [ i ] ) * r [ i ] )
19 W[ i ] = ( micro1 ) /100

Como se ve en la Figura 2.11 cuando ya se tiene determinado el modelo cinemático


solo resta definir las variables de entrada en cada instante de tiempo que son las de
rotación y traslación, para precisarlas es necesario partir de un punto de referencia y
en este caso se obtiene gracias al balance que se le debe proporcionar a la esfera que
gira sobre la placa oscilante.

2.5 B OLA Y PLATO

Ya se ha analizado la dinámica de la plataforma Stewart, ahora corresponde la observa-


ción del subsistema bola y plato acoplado a dicha plataforma como se ve en la Figura
2.13, con el fin tener la información necesaria para realizar el control del sistema com-
pleto que como se ha dicho se compone de dos subsistemas: bola y plato y plataforma
Stewart.
Mantener en equilibrio el desplazamiento de una esfera maciza al rededor de un punto
sobre un plato que oscila, es el objetivo del sistema [17] y para lograrlo se debe aplicar
una acción de control que satisfaga la dinámica de la bola y el plato [18] [19].
Mediante la ecuación de Lagrange (2.52) se puede simplificar el análisis matemático de
la interacción dinámica entre la bola y el plato hallando la energía cinética Ec (t) y la
energía potencial E p (t) [20].

L (t) = Ec (t) − E p (t) (2.52)


La energía cinética del sistema puede dividirse entre la rotacional y la traslacional (gra-
cias a los grados de libertad), a su vez cada una de estas puede ser analizada como dos
componentes, una para el plato y otra para la esfera [17] y por lo tanto existen cuatro
componentes con los cuales se expresa la energía cinética del sistema como se ve en
(2.53).
Ec (t) = Erot bola + Etras bola + Erot pla + Etras pla (2.53)
Para continuar con el análisis dinámico del sistema bola y plato es necesario tener
claros los supuestos que constituyen la base de la aplicación de los principios físicos
planteados [21]:

33
2. P LANTA SELECCIONADA

Esfera metálica

Pantalla

Figura 2.13: Sistema bola y plato acoplado a plataforma Stewart [Autores].

Cuando la esfera se desplaza sobre el plato, rueda no se desliza.

La esfera es maciza, totalmente homogénea y simétrica.

La fricción entre el plato y la esfera es despreciable.

Durante la toda dinámica la esfera está en continuo contacto con el plato.

Aclaradas las condiciones físicas del sistema en las que se basa el análisis, se procede a
hallar la equivalencia de los términos en (2.53).
La energía cinética rotacional de un cuerpo rígido que gira en torno a un eje fijo de-
pende del momento de inercia y de la velocidad angular del cuerpo, se define como
Ecr = 12 Iω 2 donde I y es el momento de inercia y ω es la velocidad angular que para
una esfera de masa m, radio R y velocidad de movimiento a lo largo de un sistema
coordenado horizontal v = ẋ2 + ẏ2 , corresponden a Ibola = 52 mR2 y ωbola = Rv [17].
En el caso del plato su velocidad angular θ̇ se expresa como θ̇ 2 = θ̇ x2 + θ̇y2 y su velocidad
lineal debido a la rotación está dada por Ṡ2 = x θ̇ x + yθ̇y .

 v 2
Erot bola = 21 Ibola ωbola
2 = 12 Ibola R Etras bola = 12 mv2 (t)
1
Erot pla = 2 Ibola θ̇ 2 (t) Etras pla = 12 mṡ2 (t)

34
2.5. Bola y plato

Sumando todos los componentes de la energía cinética traslacional y rotacional del


sistema se obtiene (2.54).
1  v 2 1 1 1
Ec = Ibola + mv2 (t) + Ibola θ̇ 2 (t) + mṡ2 (t) (2.54)
2 R 2 2 2

Para terminar con las expresiones que componen (2.52) se halla la energía potencial del
sistema, sabiendo que por definición esta corresponde
 a E p = −mgh donde la altura
h se expresa como h = x sin (θ x ) + y sin θy [17] y m y g representan la masa y la
gravedad respectivamente, reemplazando estos términos y (2.54) en (2.52) se halla la
ecuación de Lagrange (ver (2.55)).

1  v 2 1 1 1
+ mv2 (t) + Ibola θ̇ 2 (t) + mṡ2 (t) + mg x sin (θ x ) + y sin θy
  
L (t) = Ibola
2 R 2 2 2

ẋ2 ẏ2
 
1 1  2 
2 2
L (t) = Ibola θ̇ x + θ̇y + 2 + 2 + m ẋ2 + ẏ2 + x θ̇ x + yθ̇y
   
+ mg x sin (θ x ) + y sin θy
2 R R 2
(2.55)
Con el método de Lagrange se simplifica el modelo matemático del sistema, sin em-
bargo es necesario aplicar las ecuaciones de Euler- Lagrange (ver (2.56) donde L es la
ecuación de Lagrange, qi es la posición en la dirección i y Qi es la componente de fuerza
[18]) para determinar las ecuaciones diferenciales del sistema y así hallar una repre-
sentación de estado[19].  
d ∂L ∂L
− = Qi (2.56)
dt ∂q̇i ∂qi

Se ecuaciones de Euler-Lagrange en este caso se aplican para: La posición de la bola en


x (ver (2.57)), posición de la bola en y (ver (2.58)).
 
d ∂L ∂L
− =0
dt ∂ ẋ ∂x
 
d Ibola
dt
∂L
∂ ẋ = R2
ẋ + m ẋ ∂L
∂x = mx θ̇ x2 + mθ̇ x yθ̇y + mg sin (θ x )

m x θ̇ x2 + θ̇ x yθ̇y + g sin (θ x )
 
ẍ = Ibola
(2.57)
R2
+m

 
d ∂L ∂L
− =0
dt ∂ẏ ∂y

Ibola
= mx θ̇ x θ̇y + myθ̇y2 + mg sin θy
∂L ∂L
 
∂ẏ = R2
ẏ + mẏ ∂y

35
2. P LANTA SELECCIONADA

  
m x θ̇ x θ̇y + yθ̇y2 + g sin θy
ÿ = Ibola
(2.58)
R2
+m
Si se asume que el rango de rotación del plato es pequeño se pueden hacer las si-
  aproximaciones que llevan a la linealización del sistema [18]: sin (θ x ) ≃ θ x ,
guientes
sin θy ≃ θy , myθ˙x θ˙y ≃ 0, mx θ̇ x2 ≃ 0, m xθ˙ x θ˙y ≃ 0 y myθ̇y2 ≃ 0[19]. Si se reem-
plazan estas aproximaciones en (2.57) y (2.58) se obtiene (2.59) y (2.60) sabiendo que
Ibola = 25 mR2 y g ≃ 9, 8 [20].

mgθ x 5
ẍ = Ibola
→ ẍ = gθ x (2.59)
+m 7
R2
mgθy 5
ÿ = Ibola
→ ÿ = gθy (2.60)
+m 7
R2
Haciendo la transformada de Laplace de (2.59) y (2.60) se obtiene (2.61) y (2.62).

θ x (s) 7
Gx ( s ) = = 2 (2.61)
X (s) s

θy (s) 7
Gy (s) = = 2 (2.62)
Y (s) s
Para aplicar la función de transferencia encontrada, es necesario discretizar el proceso
haciendo uso de la técnica del retenedor de orden 0 como se ve a continuación.
7
G (s) =
s2
   G (s) 
−1
G (z) = 1 − z Z
s
  7
G ( z ) = 1 − z −1 Z 3 (2.63)
s
T 2 z ( z +1)
Resolver (2.63) requiere saber que Z 2/s3 equivale a
 
3 donde T es el tiempo
( z −1)
de muestreo, y a partir de ello se obtiene (2.64) como se muestra a continuación.

z−1
   
2
G (z) = Z 3,5 3
z s
  2 
z−1 T z ( z + 1)
G (z) = 3,5
z ( z − 1)3
 
T 2 ( z + 1)
G (z) = 3,5
( z − 1)2

36
2.5. Bola y plato

T 2 ( z + 1)
G (z) = 3,5 (2.64)
z2 − 2z + 1
La discretización obtenida se aplica para el movimiento de la esfera en ambos ejes
coordenados, por lo tanto (2.64) puede ser usada para describir el movimiento de la
esfera a lo largo de los ejes x y y.
Nótese que el peso de la esfera no tiene ninguna incidencia en la dinámica del sistema
debido a que su masa no es un factor que esté presente en su función de transferencia,
sin embargo m si es un factor que modifica la lectura de posición de la esfera gracias a
que el sensor de posición es una pantalla táctil resistiva, entre más presión se ejerza en
alguno de sus puntos más grande es la variación en resistencia y por lo tanto el voltaje
entregado es mayor.

37
Capítulo

3 Control PID

C ONTENIDOS DEL CAPÍTULO

3.1 G ENERALIDADES 3.3 A LGORITMO DE CONTROL IM -


PLEMENTADO
3.2 D ISCRETIZACIÓN DE LA ESTRA -
TEGIA DE CONTROL 3.4 R ESULTADOS

La estrategia de control clásico aplicada a la planta bola y plato- plataforma Stewart,


se documenta en el presente capitulo. Se nombran algunos conceptos básicos que se
implementan en la práctica y se adiciona el código python empleado para controlar el
sistema.

3.1 G ENERALIDADES

En la Figura 3.1 se puede observar que para controlar la planta seleccionada es nece-
sario aplicar un PID para controlar la posición de la esfera en cada eje, es decir un PID
para la posición en x y otro para y.
Las señales tratadas en el desarrollo del control aplicado al sistema Plataforma Stewart-
Bola y plato que se illustran en la Figura 3.1 se definen y se explican a continuación:

Referencia xbre f , ybre f : Es un punto conocido en la superficie de la pantalla táctil,


en el cual se pretende ubicar la esfera mediante la aplicación del control sin im-
portar la posición actual en la cual se encuentre. Se deduce a partir de la lectura
en mili-voltios obtenida del sensor de posición para un punto específico, se da
una para la posición en x (máximo 200 y mínimo 15) y otra para la posición en y
(máximo 90 y mínimo 15).

39
3. C ONTROL PID

xbre f xerror
+ PIDx
ref -
θx
Proceso
Plataforma Bola y Plato x, y
ybre f yerror θy Stewart
+
ref - PIDy

Detección
xb , yb

Figura 3.1: Diagrama de bloques control PID proceso [Autores].

Error xerror , yerror : Es la diferencia entre cada referencia y la posición de la esfera


en x y y sobre la pantalla en cada instante de tiempo, es la entrada del control, se
obtiene a partir de la lectura del sensor de posición para cada ciclo.

Señal de control θ x , θy : Es la salida del control y en este caso corresponde al


grado de inclinación de las levas de cada servomotor al rededor de los ejes x o y.
Esta señal es la que se ingresa a la cinemática de la plataforma y así lograr que la
placa móvil se mueva de manera adecuada para que la esfera se desplace al punto
deseado. De esta señal depende la energía que deba inyectarse al sistema, es decir
que entre más grande sea el ángulo más grande será el movimiento angular de
los servomotores.

Señal de salida x, y: Es la posición de la esfera que resulta inmediatamente des-


pués de haber aplicado el control, con esta medida se realimenta el sistema.

PID hace referencia a la combinación de las acciones de control integral, proporcional


y derivativo [3] cuyo comportamiento presenta tanto las ventajas como las desventajas
de cada acción de control como si fueran implementadas de manera individual (ver
tabla 3.1). En el tiempo continuo (dominio de la frecuencia) la función de transferencia
de las tres acciones aplicadas en paralelo se representan como se ve en (3.1), donde k d
es la constante de control derivativa, k p la proporcional y k i la integral.

k d s2 + k p s + k i
c (s) = (3.1)
s

Siendo este un caso de implementación del control PID en una tarjeta digital la dicre-
tización tanto de las acciones de control como de la función de transferencia hallada a
partir del comportamiento dinámico del proceso bola y plato- plataforma Stewart.

40
3.1. Generalidades

Cuadro 3.1: Ventajas y desventajas de cada acción de control PID.

Ventajas Desventajas
Si existe ruido a la
Si aumenta k p la
salida, este será
respuesta se hace más
amplificado gracias a al
Proporcional rápida y disminuye el
aumento del k p . En
error en estado
algunos casos provoca
estacionario.
excesiva oscilación.
Cuando se agrega
componente k i se
asegura un error en Puede que gracias a su
estado estable muy acción la respuesta se
Integral
pequeño. vuelva lenta y/o
Asegura robustez y oscilatoria
minimiza la presencia
de ruido
Puede maximizar el
ruido, debido a su
Con k d el sistema
sensibilidad ante él.
Derivativo responde más
Nunca puede aplicarse
rapidamente
sola porque
descontrola el sistema

El análisis de los resultados obtenidos al aplicar el control requiere de la observación de


parámetros como los que se nombran a continuación, cabe aclarar su definición puede
verse de manera grafica como se ilustra en la Figura 3.2 [3]:

Velocidad de respuesta o tiempo de estabilización (ts ): Es el tiempo que toma al


sistema alcanzar una magnitud específica al rededor del punto de referencia y
que se mantenga dentro de más o menos una ventana dentro de dicha magnitud.
Según el criterio dado en [3] ts puede hallarse como se ve en (3.2), donde τ es el
tiempo que transcurre cuando la señal ha llegado al 63,3 % de la amplitud final
Vf in .
ts = 4τ (3.2)

Error de estado estacionario (ess ): Es la diferencia entre la referencia y el valor


actual de la salida después de que ha transcurrido el tiempo de estabilización,
puede ser expresado matemáticamente como se ve en (3.3) donde re f es la refe-
rencia del sistema, Vf in es el valor en el que se mantiene la curva en estado estable
y Vini es la amplitud de la curva de reacción en el tiempo t = 0.
re f − Vf in
ess = · 100 % (3.3)
re f − Vini

41
3. C ONTROL PID

Máximo sobreimpulso (OVS): Es el pico máximo que presenta la respuesta del


sistema con respecto a la referencia, la estabilidad del sistema tiene una estrecha
relación con este parámetro que debe tener un valor no superior a un porcentaje
específico, puede darse en porcentaje y se calcula como se ve en (3.4).
OVS − Re f
OVS % = · 100 % (3.4)
Re f

ess
OVS
Re f

Vf in

Figura 3.2: Caracterización Vini


t
grafica de los parámetros de
desempeño para una curva de tp
reacción (grafica basada en [3] ts
capitulo 4 página 151).

También se requiere que las variables de control estén dentro de los límites admisibles
(lo cual depende de la dinámica del sistema), es decir que para emular el comporta-
miento de una planta es necesario tener en cuenta las condiciones de operación que se
tienen en la realidad.

3.2 D ISCRETIZACIÓN DE LA ESTRATEGIA DE CONTROL

Partiendo de (3.1) y aplicando la equivalencia de (3.5) se efectúa el proceso de discreti-


zación.
2 z−1
s= (3.5)
Tz+1
Reemplazando (3.5) en (3.1) se obtiene (3.6).
     
k p + k2i T + 2kTd z2 + k i T − 4kTd z + −k p + k2i T + 2kTd
C (z) = (3.6)
z2 − 1

El control PID discreto que se ve en (3.6) puede simplificarse haciendo un cambio de


variable para sustituir las constantes como se ve en (3.7) donde q0 , q1 y q2 tienen la
equivalencia del coeficiente numérico de cada factor z que se ve en (3.6).

42
3.3. Algoritmo de control implementado

q0 z2 + q1 z + q1
C (z) =
z2 − 1

q 2 z −2 + q 1 z −1 + q 0
C (z) = (3.7)
1 − z −2

La sustitución de variables se hizo para encontrar de una manera más fácil el valor de
las constantes de control en base a la función de transferencia discreta del proceso que
se pretende controlar (ver (2.64)).
Teniendo en cuenta [22] la función de transferencia del control PID expresado en (3.6)
puede ser escrita como se ve en (3.8), por lo tanto las equivalencias de las constantes
de control pasan a ser: q0 = k p + k i + k d , q1 = −k p − 2k d y q2 = k d .

k p + k i + k d − k p + 2k d z−1 + k d z−2
   
C (z) = (3.8)
1 − z −1

3.3 A LGORITMO DE CONTROL IMPLEMENTADO

Para la implementación de una función de transferencia en el dominio de z en un


algoritmo para su procesamiento digital, debe efectuarse su conversión a ecuación en
diferencias o que es lo mismo la transformada inversa de z.
Mediante el siguiente proceso se obtiene la ecuación en diferencias que se ve en (3.9).

Y (z) q 2 z −2 + q 1 z −1 + q 0
=
U (z) 1 − z −1
   
Y ( z ) 1 − z −1 = U ( z ) q 2 z −2 + q 1 z −1 + q 0

Y ( z ) − Y ( z ) z −1 = U ( z ) q 2 z −2 + U ( z ) q 1 z −1 + U ( z ) q 0

y [ n ] = y [ n − 1] + q2 u [ n − 2] + q1 u [ n − 1] + q0 U [ n ] (3.9)

En el listado de código 3.1 se puede ver el algoritmo PID que se implementó para con-
trolar la posición de la esfera, es necesario el manejo de memorias que se denominan
como Mn en las cuales se almacenan estados anteriores tanto de la salida como de
entrada del control y [n] y u [n] respectivamente como se puede ver en (3.9).

43
3. C ONTROL PID

Listado de código 3.1: Algoritmo PID discreto en lenguaje de programación python.


1 import time
2 # i n i c i a l i z a c i o n de c o n s t a n t e s y memorias
3 k = 3 . 5 , M1x=0 , M2x=0 , M3x=0 , M4x=0 , M5x=0
4 M1y=0 , M2y=0 , M3y=0 , M4y=0 , M5y=0 , T=0
5 s e t _ p o i n t x =0
6 e nt x =0 # e s t a e s l a e n t r a d a d e l a p o s a c t u a l d e l a b o l a en x
7 s e t _ p o i n t y =0
8 enty =0 # e s t a e s l a e n t r a d a d e l a p o s a c t u a l d e l a b o l a en x
9 while ( 1 ) :
10 # c o n t r o l d e p o s i c i o n en x
11 q0x=−k
12 q1x= −3* k
13 q2x=−k
14 e r r o r x = s e t _ p o i n t x −en tx
15 M1x= e r r o r x
16 M4x=( q2x * M3x) +( q1x * M2x) +( q0x * M1x) +M5x
17 M3x=M2x
18 M2x=M1x
19 M5x=M4x
20 # c o n t r o l d e p o s i c i o n en y
21 q0y=−k
22 q1y= −3* k
23 q2y=−k
24 e r r o r y = s e t _ p o i n t y −enty
25 M1y= e r r o r y
26 M4y=( q2y * M3y) +( q1y * M2y) +( q0y * M1y) +M5y
27 M3y=M2y
28 M2y=M1y
29 M5y=M4y
30 # tiempo de muestreo
31 time . s l e e p ( T )

Aplicando un control para la posición en x y otro para la posición en y se logra deter-


minar cuál será el ángulo de rotación de la placa superior móvil en cualquier instante
de tiempo, teniendo en cuenta la posición actual de la esfera sobre la pantalla táctil
resistiva.

Haciendo una analogía con la ecuación en diferencias del control PID (3.9) y el listado
de código 3.1, M4x y M4y corresponde a y [n], M5x y M5y a y [n − 1], M3x y M3y a
u [n − 2], M2x y M2y a u [n − 1] y M1x y M1y a u [n]. Así teniendo como entrada la po-
sición de la esfera se determina mediante el cálculo del error los ángulos de rotación θ x
y θy del sistema bola y plato o si quiere verse en la notación descrita para la cinemática
de la plataforma Stewart pueden llamarse θ y φ.

44
3.4. Resultados

3.4 R ESULTADOS

Se hace la observación de la posición de la esfera (tanto en x como en y) con respecto al


tiempo evaluando diversos valores de constantes del control, al graficar estos paráme-
tros resulta la curva de reacción del proceso. Es claro que para realizar un experimento
en donde se evalúan diferentes constantes de control se hace necesario partir de la mis-
ma señal estímulo, por lo tanto se dispuso de las mismas condiciones experimentales
para la determinación de dicha curva de reacción que se genera cuando se evalúa cada
combinación de constantes de control.

3.4.1 Experimento

En la práctica para esta planta la señal estímulo es la acción de ubicar la esfera en


cualquier punto de la pantalla resistiva, sin ejercer ningún tipo de fuerza ni presión
sobre ella (evitando perturbaciones apreciables), para que así se genere una lectura de
posición y se ejecute el algoritmo de control para obtener una curva de reacción.
En este caso para que no exista lugar a diferencias entre las condiciones iniciales de un
experimento y otro, cada vez se ubica la esfera en el mismo punto de la superficie de la
pantalla táctil (Vminx y Vminy según figura 2.4) y acto seguido se ejecuta el algoritmo de
la lista de código 3.1; para luego obtener la curva de reacción del proceso, la cual no es
más que la posición de la esfera en la pantalla en cada instante de tiempo. Se extraen 2
de estas curvas por cada experimento realizado, una de ellas corresponde a la posición
en x y la otra a la posición en y.
En las figuras que muestran las curvas de reacción se puede observar la señal de color
“vinotinto” que es la posición de la esfera en el eje x con respecto al tiempo y en color
“rosa” la posición en y; la referencia está marcada de color gris cuya magnitud es 110 y
45 para los ejes x y y respectivamente, también se indica en la grafica el máximo sobre-
impulso con un circulo negro especificando el instante de tiempo en el que ocurre y su
magnitud. Por otro lado, también se grafica el recorrido de la esfera sobre la superficie
de la pantalla hasta llegar a la referencia con el fin de evidenciar que el control aplicado
provoca o no que la esfera se salga de los límites físicos de operación, es decir que no
desborde el área de la pantalla.
En las graficas de la respuesta del sistema o curvas de reacción, puede evidenciarse el
efecto que ejerce sobre la dinámica de la planta la variación de las constantes de control
k p , k i y k d , a partir de estas magnitudes se calculan los parámetros q0 , q1 y q2 como se
ve en (3.8).

Experimento 1: En la Figura 3.3 se puede observar que la curva presenta un OVS


del 11,81 % para x y del 91,11 % para y, un ts de 3,065 segundos para x y 1,22
segundos para y, un ess 2,083 % para x y 22,58 % para y. La respuesta con estas

45
3. C ONTROL PID

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
Posición

(t p = 1.2916; x = 123)
100 100
(t p = 0.76317; y = 86)

50 50

0 1 2 3 4 5 6 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.3: (a) Curva de reacción para las constantes de control k pxy = −0, 092, k ixy = 0 y
k dxy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

constantes presenta un sobreimpulso muy alto en especial para el control de po-


sición en y, además también se observa una muy baja robustez debido a que ante
una perturbación muy grande no es capaz de llegar a la estabilidad sino que se
vuelve oscilatorio.

Experimento 2: En la Figura 3.4 se puede ver que la respuesta es oscilatoria por lo


tanto el sistema nunca llega al estado estable, el motivo de dicho comportamiento
puede atribuirse a que los valores para el control proporcional son muy altos. En
este orden de ideas no es necesario calcular los parámetros de desempeño debido
a que la respuesta del sistema no es comparable con otras que si lo estabilizan.

Experimento 3: En la Figura 3.5 se puede evidenciar que cuando se introduce una


magnitud grande en la constante del control integral en este caso 0.001; la planta
se desestabiliza, presenta movimientos bruscos y la respuesta se va al infinito tal
y como se ve en el recorrido de la esfera en la superficie de la pantalla, se mueve
y desborda.

Experimento 4: Cuando se introduce una magnitud muy pequeña en la constan-


te integral, en este caso -0.001 el sistema presenta una disminución significativa
del ess sin embargo también se perciben picos repentinos en estado estable lo cual
puede llegar a sacar al sistema de la cercanía con la referencia. En este caso para
la Figura 3.6 se calcula un un OVS del 27,27 % para x y del 93,3 % para y, un ts de
2,66 segundos para x y 1,04 segundos para y, un ess 1,075 % para x y 0 % para y.
Entre más disminuya la constante integral con respecto a la proporcional y deri-

46
3.4. Resultados

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
Posición

100 (t p = 1.8048; x = 104) 100


(t p = 0.53087; y = 88)

50 50

0 5 10 15 20 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.4: (a) Curva de reacción para las constantes de control en x con valores k px = −0, 04,
k ix = 0 y k dx = −0, 76 y las constantes de control en y de valores k py = −0, 1, k iy = 0, k dy =
−0, 25. (b) Recorrido de la esfera en la superficie de la placa móvil.

(a) (b)
Pos x Pos y
200

150 150
Eje x pantalla
Posición

(t p = 1.1228; x = 106)
100 100
(t p = 8.357; y = 90)

50 50

0 2 4 6 8 10 12 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.5: (a) Curva de reacción para las constantes de control en x con valores k px = −0, 92,
k ix = 0, 001 y k dx = −0, 76 y las constantes de control en y de valores k py = −0, 92, k iy = 0,001,
k dy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

47
3. C ONTROL PID

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
(t p = 1.1262; x = 140)
Posición

100 100
(t p = 0.77226; y = 87)

50 50

0 2 4 6 8 10 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.6: (a) Curva de reacción para las constantes de control en x con valores k px = −0, 92,
k ix = −0, 001 y k dx = −0, 76 y las constantes de control en y de valores k py = −0, 92, k iy = −0,001,
k dy = −0, 76. (b) Recorrido de la esfera en la superficie de la placa móvil.

vativa, la placa superior de la plataforma se mueve más bruscamente oscilando


eternamente y con desborde de la esfera.

Experimento 5: Si se introduce una constante derivativa muy grande el sistema


presenta una oscilación eterna con movimientos bruscos que hacen salir a la es-
fera del área de la pantalla como se ve en la Figura 3.7.

En base a las observaciones experimentales se pueden hacer las siguientes afirmacio-


nes: Cuando se logra un OVS bajo mediante la disminución del control proporcional
y/o del derivativo, el error en estado estacionario aumenta y se el sistema pierde ro-
bustez haciéndose más lento; cuando se aumenta mucho el control derivativo y/o el
proporcional se presenta un rizado grande de la señal en estado estable y surgen picos
repentinos sin embargo el sistema estabiliza más rapidamente pero el ess aumenta así
como el OVS; Si se aumenta el control integral el sistema converge más eficientemente
hacia la referencia y por lo tanto el ess disminuye pero el OVS aumenta (ver tabla 3.2).
La exploración de la respuesta del sistema ante las diferentes magnitudes de las cons-
tantes de control, permite establecer un precedente para determinar en qué rangos de
valores pueden estar las constantes, para lograr parámetros de desempeño admisibles
que reflejen una estabilidad del sistema y así hallar una respuesta favorable.
En la tabla 3.2 se muestran los parámetros de desempeño obtenidos para cada combi-
nación de constantes de control.

48
3.4. Resultados

(a) (b)
200
Pos x (t p y= 10.945; x = 202)
Pos

150 150

Eje x pantalla
Posición

100
(t p = 7.217; y = 90) 100

50 50

0 2 4 6 8 10 12 14 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.7: (a)Curva de reacción para las constantes de control en x con valores k px = −0, 04,
k ix = 0 y k dx = 0, 74 y las constantes de control en y de valores k py = −0, 1, k iy = 0, k dy = 0, 0022.
(b) Recorrido de la esfera en la superficie de la placa móvil.

Cuadro 3.2: Constantes de control con las que se consigue la estabilización del sistema y su relación
con los parámetros de desempeño para el control PID.

Constantes ess [ %] OVS[ %] ts [seg]


k p = −0, 092, k i = 0, k d = −0, 76 2,083 11,81 3,065
k p = −0, 043, k i = 0, k d = −0, 35 1,81 42,72 2,16
k p = −0, 038, k i = 0, k d = −0, 35 4,2 14,54 2,9
k p = −0, 035, k i = 0, k d = −0, 35 10,52 9,09 2,28
k p = −0, 032, k i = 0, k d = −0, 4 10,41 1,81 2,709
k p = −0, 092, k i = −0, 001, k d = −0, 76 10,75 27,27 2,66
k p = −0, 04, k i = 0, k d = −0, 35 4,166 20,9 0,7994
k p = −0, 095, k i = 0, 001, k d = −0, 8 31,25 14,54 3,13
k p = −0, 095, k i = −0, 0008, k d = −0, 82 3,33 31,81 2,74
k p = −0, 065, k i = −0, 001, k d = −0, 82 1,052 19,09 2,56

49
3. C ONTROL PID

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
(t p = 1.1748; x = 131)
Posición

100 100
(t p = 0.99683; y = 70)
50 50

0 2 4 6 8 10 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 3.8: Mejor respuesta del controlador PID para el proceso plataforma Stewart- bola y plato
(a)Curva de reacción para las constantes de control en x con valores k px = −0, 065, k ix = −0, 001 y
k dx = −0, 82 y las constantes de control en y de valoresk py = −0, 065, k iy = −0, 001 y k dy = −0, 82
(b) Recorrido de la esfera en la superficie de la placa móvil.

Cuanto más bajos sean los parámetros de desempeño que la dinámica de la planta
presente en relación a un conjunto de constantes de control definidas, se asume que
es el control aplicado es el más apropiado. Si se observan los valores en la tabla 3.2 se
puede determinar que el mejor comportamiento dinámico ocurre en las condiciones
mostradas en la Figura 3.8
Aunque hay respuestas que presentan un menor OVS con respecto a la elegida como
la mejor, también se tomó en cuenta la respuesta del sistema ante perturbaciones y el
ruido en estado estable.

50
Capítulo

4 Control LQR

C ONTENIDOS DEL CAPÍTULO

4.1 G ENERALIDADES 4.4 C ÓDIGO LQR EN P YTHON


4.2 O BSERVADORES DE ESTADO
4.3 I MPLEMENTACIÓN LQR 4.5 R ESULTADOS

En este capitulo se da una explicación teórica de la estrategia de control LQR, también


se explica el procedimiento para aplicarla a la planta bola y plato- Plataforma Stewart,
en la Figura 4.1 se ve la estructura de la aplicación del LQR, se incluye un observador
de estados para hacer el seguimiento de la referencia obteniendo los estados estimados
x̂, ŷ y el proceso en su representación de estados.

Representación Estados
ref u Plataforma Bola y Plato x, y
+
- Stewart


LQR Observador

Figura 4.1: Diagrama de bloques control LQR proceso [Autores].

51
4. C ONTROL LQR

4.1 G ENERALIDADES

Las siglas LQR indican control óptimo cuadrático, es una acción de control moderno
multivariable que se caracteriza por su robustez tanto en tiempo discreto como en
tiempo continuo [23] [4].
Se dice que es una estrategia de control óptima ya que se procura la operación del
sistema dinámico al menor costo, es decir que los ajustes del controlador proporcional
se encuentran usando un algoritmo matemático que minimiza la función de coste o
desviaciones no deseadas.
Cuando se trata de una planta no lineal el calculo de las constantes de control debe
hacerse en función del punto de trabajo, por eso es necesario escogerlo previamente
dentro del margen de operación de la planta. Esto ocurre en consecuencia a la no linea-
lidad de la planta, dependiendo del grado de no linealidad responderá de diferente
manera al rededor de varios puntos de trabajo.
En primera instancia es necesario disponer de las ecuaciones de estado del sistema
proceso o planta que se desea controlar las cuales son de la forma (4.1) y (4.2).

.
x = [ A] [ x ] + [ B] [u] (4.1)

[y] = [C ] [ x ] + [ D ] [u] (4.2)

La ley control LQR responde en esencia a una acción de control proporcional como se
ve en (4.3), debe determinarse con cálculos matemáticos los componentes de la matriz
(4.4) que representa las constantes del control proporcional.

u = − [k (t)] [ x (t)] (4.3)

 
[k (t)] = R−1 [ B]T [ P (t)] (4.4)

El control LQR se calcula minimizando la función de coste J según (4.5), la cual tiene
una expresión que se suma cuando el proceso que se controla no es de régimen per-
manente, es decir cuando no es controlable ni observable, sin embargo en este caso no
se presenta esta expresión debido a que la planta (plataforma Stewart) es observable
y controlable como más adelante se demostrará . Se habla de un proceso en régimen
permanente cuando existe una única matriz de control óptimo [k (t)] tal que pueda
estabilizar al sistema en lazo cerrado con (4.3).

ˆ∞  
J= [ x ]T [ Q] [ x ] + [u]T [ R] [u] dt (4.5)
0

52
4.1. Generalidades

En (4.4) [ P (t)] es la matriz de la ecuación de Ricatti que se halla según (4.6).


.
P = [ A ] T [ P ] + [ P ] [ A ] + [ Q ] − [ P ] [ B ] [ R ] −1 [ B ] T [ P ] (4.6)

La ecuación de Ricatti (4.6) puede resolverse solo si el sistema es controlable y obser-


vable, por lo tanto antes de aplicar la ley de control LQR, debe comprobarse que el
proceso a controlar cumpla con estas dos condiciones y así también se garantiza la
existencia de la matriz (4.4) de control óptimo [23, 24].
El control LQR presenta una sensibilidad menor o igual 1 la cual es una cifra reducida
que le proporciona robustez, es óptimo para la J (ver (4.5)) definida por el diseñador,
tiene amplios margenes de fase y ganancia y amplia tolerancia a la reducción de la
ganancia.
Una vez definidas las matrices [ Q] (matriz de error ponderado) y [ R] (matriz ponde-
rada de control) se determina la función de coste (4.5) y luego con la técnica LQR se
minimiza J a partir de las variables de control.

4.1.1 Controlabilidad

Un sistema controlable es aquel que converge a una referencia en un tiempo finito,


es decir que sin importar cuál sea su estado actual en algún momento la respuesta se
estabilizará en un punto definido. Si se aplica una acción de control cualquiera, esta
tendrá la capacidad de llevar los estados del proceso a un valor de referencia en un
lapso de tiempo finito, se sabe que los estados son afectados por las entradas y por lo
tanto el control se efectúa manipulando las entradas.
Entonces si un proceso es controlable debe existir una función de entrada o control
capaz de lograr que los estados del sistema cambien de un valor a otro en un tiempo
determinado, hay un acople entre las entradas y estados todos los estados deben ser
afectados por las entradas.
Para comprobar controlabilidad se puede establecer que el rango de la matriz de con-
trolabilidad coincida con el orden del sistema como se muestra en (4.7) donde A y B
son las matrices de estado y n es el orden; con esto se garantiza que en el comporta-
miento dinámico del sistema no exista un punto en el que se torne inestable.

B AB A2 B . . . An−1 B
 
rango =n (4.7)

B AB A2 B . . . An−1 B
 
det =U (4.8)

Según el criterio de Cayley-Hamilton se evalúa que la matriz (4.8) sea singular, es decir
que el determinante de la matriz sea igual a 0 para asegurar que pueda ser invertible y

53
4. C ONTROL LQR

así se garantizar que en el comportamiento dinámico del sistema no exista un punto en


el que se torne inestable. Cabe aclarar que los conceptos controlabilidad y estabilidad
son diferentes, la estabilidad es la mínima garantía de que el sistema es estable en lazo
cerrado, se da cuando los estados incontrolables son estables.

4.1.2 Observabilidad

Un proceso es observable cuando los estados pueden ser determinados a partir de


las salidas en cada instante de tiempo, es decir hay un acople entre estados y salidas.
En caso de que un proceso sea no observable, con la información de las salidas no es
posible conocer de manera precisa y completa el comportamiento del sistema.
Se puede comprobar observabilidad sabiendo que el rango de la matriz (4.9) coincide
con el orden n del sistema.
 
C

 CA 

rango 
 CA2 =n

(4.9)
 .. 
 . 
CAn−1

El criterio de Cayley-Hamilton se aplica de la misma manera para comprobar controla-


bilidad y observabilidad, la diferencia es que en este caso se opera con la matriz (4.10),
V debe ser igual a 0.
 
C

 CA 

det 
 CA2 =V

(4.10)
 .. 
 . 
CAn−1

El concepto de detectabilidad no debe confundirse con el de observabilidad, un siste-


ma es detectable si sus estados inestables son observables [23], lo cual es la mínima
garantía de que el sistema sea estable en lazo cerrado.

4.1.3 Selección de las matrices [ Q] y [ R]

Como se puede ver en las ecuaciones (4.3), (4.4), y (4.6) contienen los términos [ Q] y
[ R] estas son matrices propias del control LQR. Hay algunos parámetros que deben
tomarse en cuenta para seleccionar estas matrices, sin embargo no existe una regla
determinada para hacerlo [23] además la estrategia LQR tiene la ventaja de que inde-
pendientemente de la selección de [ Q] y [ R] sigue siendo capaz de estabilizar al sistema

54
4.2. Observadores de estado

porque es un control robusto. Algunos parámetros que suelen seguirse para seleccio-
nar estas matrices son:

Los valores deben ser siempre positivos o 0.

Debe conocerse muy bien el comportamiento dinámico de la planta.

Con frecuencia se escoge [ Q] y [ R] diagonales asignando valores grandes a las


variables que se quieran minimizar.

Si [ Q] contiene valores grandes, la exigencia al control será mayor.

[ Q] debe ser positiva semidefinida, es decir que cumpla con Q = QT ≥ 0.


[ R] debe ser positiva definida, es decir que cumpla con R = RT > 0.
Si [ R] contiene valores grandes, se incrementa la influencia de las acciones de
control sobre la planta.

Si [ R] corresponde a la matriz identidad, provoca que todas las variables de con-


trol tengan la misma influencia sobre el sistema. Si se necesita que unas variables
de control ejerzan más influencia sobre la planta que otras, se escoge [ R] como
matriz diagonal con diferente magnitud asignada a cada variable de control.

La manera más fácil de escoger [ Q] es igualarla a 4.11.

[ Q] = [C ] T [C ] (4.11)

4.2 O BSERVADORES DE ESTADO

Controlar un sistema en algunos casos puede implicar la necesidad de un vector de


información para llevar a cabo realimentación de estados, así mismo se requiere de
un observador debido a que algunos estados no son accesibles o son no medibles.
En estas circunstancias se implementa un observador de estados usando el modelo
matemático del sistema y de esta manera obtener estados estimados a partir de los
estados disponibles, sin embargo también se puede apreciar un error del estimador
que es la diferencia entre el estado estimado y el real.
Usualmente se emplean en la estimación del estado x (t) basado en valores anteriores
de la salida y. La idea es encontrar un estado estimado x̂ (t) que sea una aproximación
de x (t) dada una entrada u y una salida y; sabiendo que u corresponde a la señal
de control y y a la salida medida [25]. La presencia de un observador en un sistema
puede significar que hay un dispositivo para detección de errores (en el cual el error
es la diferencia entre el estado estimado y el estado real) o que existen estados no

55
4. C ONTROL LQR

u ẋ x y
ref + + 1
Pre - B - s C

ref ẋ x y K
Pre + u B + 1
C
- - s

A ẋˆ x̂ ŷ
+ + 1 +
B + s C -
K +

(a) (b)

Figura 4.2: Control LQR con realimentación de estados.(a) Topología control LQR (sin realimen-
tación a la salida). (b) Control LQR y observador de estados [4].

accesibles, ya sea porque no hay un sensor para detectarlo o porque no se encuentra


en realimentación.
Para el diseño de observadores se han planteado diferentes modelos como: Luenberger,
Kalman, observador de entrada desconocida, observador en modo “corredizo”, entre
otros. En cualquiera de estos modelos se requiere hallar ganancias del observador que
se ajusten a una respuesta rápida que debe ser mayor a la del sistema.
En la practica el observador (ver 4.2(b) donde L es la matriz de ganancias del observa-
dor) se implementa para la realimentación completa del sistema de control en donde
se involucre la salida y, ya que la topologia del control LQR no contempla dicha reali-
mentacion tal como se puede evidenciar en la Figura 4.2(a).

4.3 I MPLEMENTACIÓN LQR

Para aplicar el control LQR al proceso seleccionado es necesario tener la representación


de estados con n estados, p entradas y q salidas, en la que se expresa su comportamien-
to dinámico del sistema. Hay unas fases previas que se deben cumplir antes de aplicar
la ley de control al proceso, las cuales se nombran a continuación.
La representación de estados del sistema Bola y plato- Plataforma Stewart en espacio
de estados como se ve en (4.12) y (4.13) debe conocerse para implementar la topología

56
4.3. Implementación LQR

del control LQR. [19]


   
0 1 0 0 0 0
 [x] + − 5 g 
.  0 0 0 0   1 0 
x =
 0
 [u] (4.12)
0 0 1  7  0 0 
0 0 0 0 0 1
 
1 0 0 0
[y] = [x] (4.13)
0 0 1 0

Para iniciar los experimentos del control LQR la [ Q] inicial y la [ R], fueron establecidas
como se ve en (4.14) y (4.15).
 
1 0 0 0
 0 0 0 0 
[ Q] = C T C = 
 0 0 1 0 
 (4.14)
0 0 0 0

 
1 0
[ R] = (4.15)
0 1

A partir [ Q] y [ R] se halla la K inicial (4.16).


 
1 1, 41 0 0
K= (4.16)
0 0 1 1, 41

De aquí en adelante se empieza con la optimización del control, cuyo resultado se


refleja en el cambio de los valores de la matriz K como se explica a continuación.

4.3.1 Optimización de la ley de control

En el trabajo de optimización experimental del control LQR hay dos alternativas que
pueden ser evaluadas: La observación del lugar de las raíces de A − BK (que influye
directamente en el tiempo de respuesta) y la minimización de la función de coste (4.5).
En cualquiera de estos dos casos se debe hallar la matriz de ganancias K haciendo uso
de la ecuación de Ricatti (4.6).
En cualquier opción que se tome para optimizar y/o sintonizar el controlador, es nece-
sario variar los elementos no nulos de la matriz [ Q], la cual en un principio se escoge
de manera arbitraria [26].

1. Disponer de la representación de estados del sistema (comprobando observabili-


dad y controlabilidad previamente) y determinar los valores de [ Q] y [ R].

2. Resolver la ecuación de Ricatti y hallar las ganancias del control LQR con (4.4)

57
4. C ONTROL LQR

3. Hallar la ley de control LQR con (4.3).

4. Observar la ubicación de los eigen valores de A − BK y hallar el índice de desem-


peño con (4.5).

5. Evaluar si el lugar de las raíces y el índice de desempeño son los deseados, si


no es así debe haber una variación de los valores de [ Q] y [ R] para satisfacer los
criterios de diseño del control.

Puede incluirse un factor adicional que se denomina precompensador, es el que se


multiplica por la referencia del sistema y puede hallarse usando la ecuación (4.17),
el objetivo del precompensador es minimizar el error en estado estacionario como se
evidenciará en los resultados.

pre = (C ( I − ( A + BK )−1 ) B)−1 (4.17)

Cuando se hallan las ganancias que cumplen con la optimización deseada se procede
a desarrollar el control del proceso en lazo cerrado.

4.3.2 Formulación del observador de estados

Un observador se adiciona cuando se implementa el control LQR debido a que en su


topología existen estados que no son accesibles y por lo tanto es necesario estimarlos,
como se ve en la Figura 4.2(a) la salida y no está vinculada directamente a la realimen-
tación del sistema y entonces es necesario agregar el observador para que la acción de
control pueda implementarse al proceso.

TA − FT = LC (4.18)

Con la ecuación de Lyapunov (4.18) y la representación de estados del sistema (ver (4.1))
es posible determinar los estados estimados del sistema diseñando un observador de
estados, como sigue [27]:

1. Establecer las dimensiones n y m, que corresponden a la dimensión de A y al


número de salidas del sistema respectivamente.

2. Determinar la matriz F que debe ser de dimensiones (n − m) × (n − m), cuyos


eigen- valores no sean comunes a los de A, el contenido de F se selecciona de
manera arbitraria cumpliendo con dicha condición.

3. La matriz L debe ser de dimensiones (n − m) × m, sus valores también se selec-


cionan de manera arbitraria cumpliendo con que [ F | L] sea satisfaga el criterio de
controlabilidad.

58
4.4. Código LQR en Python

4. Encontrar los valores de los componentes de la matriz T aplicando (4.18).

5. Teniendo T, se determina P como se ve en (4.19).


 
C
P= (4.19)
T

6. Formular (4.20).
ż = Fz + Ly + TBu (4.20)

7. Hallar el estado estimado como se ve en (4.21).


 
−1 y
x̂ = P (4.21)
z

Luego de determinar las constantes del observador, este es agregado al sistema para
determinar los estados estimados conforme va variando la entrada en cada instante de
tiempo y posteriormente hacer el seguimiento del error como se ve en (4.22).

e = re f ∗ pre − K x̂ (4.22)

4.4 C ÓDIGO LQR EN P YTHON

Siguiendo con el orden para la implementación del control LQR, primero se procede
con su optimización. Se halla la matriz de constantes K resolviendo la ecuación de
Ricatti, a partir de las matrices de la dinámica de la planta A, B y C y de las matrices Q
y R escogidas, como se muestra en el Listado de código 4.1.

Listado de código 4.1: Código Python para hallar las ganancias LQR.
1 # l i b r e r i a s p a r a e l m a n e j o d e m a t r i c e s en p y t h o n
2 from numpy
3 import matrix from numpy
4 import l i n a l g
5 import numpy as np
6 import s c i p y . l i n a l g
7
8 # d e f i n i c i ó n de l a s m a t r i c e s d e l s i s t e m a
9 A = matrix ( [ [ 0 , 1 , 0 , 0 ] , [ 0 , 0 , 0 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 0 , 0 , 0 ] ] )
10 B= −7* matrix ( [ [ 0 , 0 ] , [ 1 , 0 ] , [ 0 , 0 ] , [ 0 , 1 ] ] )
11 C=matrix ( [ [ 1 , 0 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] ] )
12 # matrices R y Q escogidas
13 R=matrix ( [ [ 2 0 , 0 ] , [ 0 , 2 0 ] ] )
14 Q=(C . T ) * C
15
16 # R e s o l u c i ó n de l a e c u a c i ó n de R i c a t t i

59
4. C ONTROL LQR

17 P = np . matrix ( s c i p y . l i n a l g . s o l v e _ c o n t i n u o u s _ a r e (A, B , Q, R ) )
18 # Se h a l l a l a m a t r i z d e g a n a n c i a s
19 K = np . matrix ( s c i p y . l i n a l g . inv (R ) * ( B . T * P ) )
20 # s e o b s e r v a e l l u g a r d e l a s r a í c e s
21 e i g V a l s , e i g V e c s = s c i p y . l i n a l g . e i g (A−B * K)

Cambiando los valores de las matrices Q y R en base a la observación de la ubica-


ción de las raíces (eigVals en el Listado de código), se determina cuál es la matriz K
óptima del control LQR para la estabilización del sistema, con matrices A, B y C que
representan los estados del proceso. Es importante recordar que A, B y C deben ser
observables y controlables, estas dos condiciones se comprueban usando el criterio de
Cayley Hamilton como se ha explicado en la sección 4.1.
Cuando ya se han hallado las constantes L propias del observador y las ganancias K
óptimas del control LQR, se procede a realizar su implementación en la planta usando
las lineas python mostradas en el Listado de código 4.2.

Listado de código 4.2: Código Python para la implementación online del control LQR con obser-
vador de estado.
1 import math
2 import numpy
3 from numpy import matrix
4 from numpy import l i n a l g
5 import numpy as np
6 import s c i p y . l i n a l g
7 # i n i c i a l i z a c i o n de c o n s t a n t e s y memorias
8 A = matrix ( [ [ 0 , 1 , 0 , 0 ] , [ 0 , 0 , 0 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 0 , 0 , 0 ] ] )
9 B= −7* matrix ( [ [ 0 , 0 ] , [ 0 , 0 ] , [ 1 , 0 ] , [ 0 , 1 ] ] )
10 C=matrix ( [ [ 1 , 0 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] ] )
11 # l a r e f e r e n c i a d e l s i s t e m a d e b e s e r una m a t r i z d e 2 x1
12 r e f =matrix ( [ [ 1 1 0 ] , [ 4 5 ] ] )
13 # m a t r i z d e g a n a n a c i a s o p t i m a s c o n t r o l LQR
14 K=matrix ( [ [ − 0 . 3 1 6 2 , − 0 . 3 0 4 7 , 0 , 0 ] , [ 0 , 0 , − 0 . 3 1 6 2 , − 0 . 3 0 4 7 ] ] )
15 # ganancias observador
16 L=matrix ( [ [ 0 . 5 6 6 , 6 . 8 3 7 ] , [ − 0 . 0 1 1 , 0 . 0 9 2 ] , [ 0 . 5 6 6 , 6 . 8 3 7 ] , [ − 0 . 0 1 1 , 0 . 0 9 2 ] ] )
17 #x [ n ] e s t i m a d a
18 x0=numpy . z e r o s ( ( 4 , 1 ) )
19 # x [ n − 1] e s t i m a d a
20 x1=numpy . z e r o s ( ( 4 , 1 ) )
21 # matriz para almacenar l a l e c t u r a de p o s i c i o n a c t u a l
22 y=numpy . z e r o s ( ( 2 , 1 ) )
23 # s e ñ a l de c o n t r o l
24 u=numpy . z e r o s ( ( 2 , 1 ) )
25 # Matriz d e l precompensador
26 K0=matrix ( [ [ − 4 . 2 9 , 0 ] , [ 0 , − 4 . 2 9 ] ] )
27 # loop para la e j e c u c i o n del c o n t r o l
28 while ( 1 ) :
29 # l e c t u r a de p o s i c i o n

60
4.5. Resultados

30 y[0]= lee_x ( )
31 y[1]= lee_y ( )
32 x1 = ( (A−L * C) * x0 ) +(B * u ) +(L * y )
33 u=(−K * x1 ) +(K0 * r e f )
34 x0=x1
35 # s e a s i g n a l o s angulos de r o t a c i o n de l a p l a c a movil
36 phi=u [ 0 ]
37 t h e t a =u [ 1 ]

4.5 R ESULTADOS

Al ejecutar el sistema en lazo cerrado que se ilustra en la Figura 4.1 para


La referencia de posición para el recorrido tanto en x como en y es la misma en los
experimentos del PID (Capítulo anterior) y del LQR.
En la implementación del LQR se realizaron diversas pruebas para determinar las me-
jores características y condiciones que proporciona esta estrategia de control al proceso
seleccionado, con los cambios de la matriz de error ponderado Q (con la dimensión de
(4.14)) y la matriz ponderada de control R (con la dimensión de (4.15)). Los valores
modificados en estas matrices se ubican en la diagonal principal cuya variación tie-
ne como consecuencia un comportamiento característico en la curva de reacción de la
planta, como se evidencia cuando se observa: el tiempo de estabilización (ts ), el sobre
impulso (OVS) y del error de estado estacionario (ess ).

Experimento 1: En este caso todos los valores de Q son nulos excepto q11 = 1 y
q33 = 1 y en R también todos son 0 a excepción de los valores r11 = 1 y r22 = 1.
La curva de reacción que se ve en la Figura 4.3 es el resultado de aplicar el con-
trol LQR y sin observador con las matrices Q y R descritas, los parámetros de
desempeño obtenidos son: OVS = 4,31 %, ts = 7,04s y ess = 0 %. A pesar de que
esta respuesta presenta un sobreimpulso satisfactorio y sigue la referencia para
ambos ejes de movimiento, el tiempo de estabilización es muy grande es decir es
muy lento.

Experimento 2: Cuando se aplica un Q con valores q11 = 180 y q33 = 180 y la


misma R, es decir que Q tiene magnitudes significativamente grandes con res-
pecto a R, la respuesta obtenida no sigue la referencia y por lo tanto se observa
un ess = 92 %; si se le adiciona el precompensador a este experimento la respues-
ta mucho con unos parámetros de desempeño de: OVS = 4, 36 %, ts = 1, 92s y
ess = 0 % como se ve en la Figura 4.4.

Experimento 3: Para evidenciar la incidencia directa de la matriz Q se asigna un


valor elevado q11 = 1500 y q33 = 1500. La señal conserva un OVS = 4,3 % y

61
4. C ONTROL LQR

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
Posición

(t p = 4.44; x = 114.754)
100 100

50 (t p = 4.44; y = 46.945) 50

0 2 4 6 8 10 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 4.3: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 1,
k12 = 1, 414, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 1, k24 = 1, 414. (b) Recorrido de la esfera
en la superficie de la placa móvil.

(a) (b)
Pos x Pos y
200

150 150
Eje x pantalla
Posición

(t p = 1.21; x = 114.753)
100 100

50 (t p = 1.21; y = 46.944) 50

0 2 4 6 8 10 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 4.4: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 13, 41,
k12 = 5, 18, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 13, 41, k24 = 5, 18. (b) Recorrido de la
esfera en la superficie de la placa móvil.

62
4.5. Resultados

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
Posición

100 100

50 50
(t p = 0.71; x = 39.744)
(t p = 0.71; y = 16.259)
0 2 4 6 8 10 20 40 60 80
Tiempo [s] Eje y pantalla

Figura 4.5: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 38, 72,
k12 = 8, 806, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 38, 72, k24 = 8, 806. (b) Recorrido de la
esfera en la superficie de la placa móvil.

un tiempo de respuesta de ts = 1,16s, presenta un ess = 65 %. El error en estado


estacionario indica que en estas condiciones, el sistema no sigue la referencia de
manera satisfactoria, la esfera permanece en una posición muy alejada de lo que
se espera como se ve en la Figura 4.5 .

Experimento 4: Se asigna el un valor de 10 en la diagonal principal de R y 1 para


q11 y q33 . En la Figura 4.6 se muestra la curva de reacción del proceso en este
experimento, evidenciando los siguientes parámetros de desempeño ess = 0 %,
el OVS = 4,22 % y ts = 12,4s, haciendo muy lento el comportamiento del sistema.

El ess tiende a 0 cuando se implementa el precompensador para cualquier valor de R y


de Q.
La robustez del control y el ts son inversamente proporcionales puesto que al querer
aumentar la velocidad de respuesta del control se pierde robustez, por esta razón se
deben manejar valores de R pequeños y valores de Q entre 250 y 100.
En las practicas realizadas con el regulador cuadrático lineal aplicado a la planta se
evidenció que se debe conservar una proporcionalidad entre los valores de Q y de R
para tener un control dentro de los parámetros de reacción de la planta establecidos,
ya que si se manejan valores altos de Q y valores altos de R o valores de Q bajos y R 10
veces mas pequeña conserva estas características deseadas de la respuesta de la planta.

63
4. C ONTROL LQR

(a) (b)
Pos x Pos y
200

150 150

Eje x pantalla
Posición

(t p = 0.79; x = 114.754)
100 100

50 (t p = 0.79; y = 46.945) 50

0 0.5 1 1.5 2 2.5 3 20 40 60 80


Tiempo [s] Eje y pantalla

Figura 4.6: (a) Curva de reacción para valores de la matriz de constantes de control k11 = 42, 42,
k12 = 9, 211, k13 = 0, k14 = 0, k21 = 0, k22 = 0, k23 = 42, 42, k24 = 9, 211. (b) Recorrido de la
esfera en la superficie de la placa móvil.

Cuadro 4.1: Parámetros de desempeño obtenidos de la curva de reacción del proceso para el control
LQR con respecto a las variaciones de Q y R.

Constantes ess [ %] OVS[ %] ts [seg]


q11 = q33 = 1; r11 = r22 = 1 0 4,3 7,04
q11 = q33 = 180; r11 = r22 = 1 0 4,27 1,92
q11 = q33 = 1500; r11 = r22 = 1 -65 4,3 1,16
q11 = q33 = 50; r11 = r22 = 1 0 4,36 2,64
q11 = q33 = 180; r11 = r22 = 15 0 4,27 3,76
q11 = q33 = 180; r11 = r22 = 0,1 0 4,31 1,08
q11 = q33 = 1; r11 = r22 = 10 0 4,22 12,4

En la Tabla (4.1) se muestran los parámetros de desempeño obtenidos, al aplicar la


estrategia de control LQR con ganancias K que permiten la estabilización del sistema.

64
Capítulo

5 Comparación de resulta-
dos

C ONTENIDOS DEL CAPÍTULO

5.1 E STRATEGIAS DE CONTROL PID 5.2 M EJORES RESULTADOS


Y LQR

En este capítulo se presentan los argumentos prácticos que sustentan la justificación de


la premisa que indica con cual estrategia de control, LQR o PID se obtienen mejores pa-
rámetros de desempeño y en consecuencia, mejor respuesta de la planta bola y plato-
plataforma Stewart. Teniendo en cuenta que entre más bajos sean dichos parámetros
que corresponden a OVS, ts y ess , mejor es la respuesta del proceso. Sin embargo tam-
bién se considera la resistencia a perturbaciones que presente la dinámica de la planta,
razón por la cual un bajo sobreimpulso (OVS), por ejemplo no garantiza el comporta-
miento dinámico más apropiado. Entonces los indicadores de desempeño además de
bajos, deben tener magnitudes que reflejen la mejor respuesta del sistema.

5.1 E STRATEGIAS DE CONTROL PID Y LQR

La diferencia entre la topología del control LQR con respecto a la del control PID, se
hace muy evidente al momento de implementarlos usando código python. Mientras el
primero requiere de un observador para hacer el seguimiento de la referencia, en el
PID solo se necesitan las ganancias que corresponden a cada una de las acciones de
control que lo compone.

65
5. C OMPARACIÓN DE RESULTADOS

Cuadro 5.1: Parámetros de desempeño obtenidos aplicando control LQR y PID en el proceso bola
y plato- Plataforma Stewart.

Estrategia de control ess [ %] ts [s] OVS[ %]


PID 1,052 1,1748 19
LQR 0 1,08 4,31

A raíz de que el proceso es multivariado, para la aplicación del control PID se necesita
la aplicación simultánea y paralela de un par de esta estrategia, con el objetivo con-
trolar cada eje de desplazamiento de la bola que recorre la pantalla táctil resistiva. Sin
embargo en el caso de la aplicación del control LQR no sucede lo mismo. Al hallar
las matrices que describen el sistema dinámico de la planta, se incluyen ambos ejes de
movimiento; entonces a la salida y a la entrada de la misma estrategia de control LQR
se obtienen vectores, cuyos valores incluyen las magnitudes necesarias para ejecutar el
control multivariado.

5.2 M EJORES RESULTADOS

En la Tabla 5.1 se muestran los parámetros de desempeño que se han calculado en base
a la observación de la curva de reacción del proceso. Esto para la mejor respuesta en la
aplicación de cada una de las dos estrategias de control al proceso seleccionado.
Los resultados que se tratan en esta sección son los mejores en la aplicación del LQR
y el PID, en ambos casos se consigue una estabilización y seguimiento de la referen-
cia satisfactoria. También se observa una robustez experimental del sistema, cuando
se somete a perturbaciones externas, el sistema reacciona con el balance de la bola
en la posición deseada. Dichas perturbaciones se provocan cuando se empuja la bola
aplicando, una fuerza adicional a la propia inercia de la bola, la cual hace que esta se
mueva.

66
Capítulo

6 Conclusiones

El proceso seleccionado bola y plato- plataforma Stewart es multivariado, debido a que


para controlarlo se necesitan dos variables de entrada: coordenadas de referencia x y
y, dos variables de control: θ (rotación con respecto al eje x) y φ (rotación con respecto
al eje y) y dos variables de salida que son la lecturas de la posición actual de la esfera
sobre la placa móvil. Por lo tanto es una planta con la cual se puede evaluar plenamente
el desempeño de las estrategias de control LQR y PID, con el fin de compararlas.
Para controlar la planta seleccionada es necesario manejarla como dos subsistemas
independientes. Se aplica cinemática inversa para definir la rotación de la placa móvil
al rededor de los ejes x y y, y se halla la función de transferencia del subsistema bola y
plato, con el fin de determinar las constantes de control (en el caso de la estrategia PID)
y hallar la representación de estados del sistema (para hallar la matriz de ganancias en
el caso de la estrategia LQR).
El algoritmo en python con el cual se controla la planta identificada, contiene tanto la
dinámica de la cinemática inversa como el código que corresponde a las acciones de
control LQR y PID. Los códigos python en los cuales se implementan las estrategias de
control, son de fácil aplicación en cualquier proceso, solo se requiere un conocimiento
de su dinámica; entonces las herramientas de software libre empleadas junto a la tarjeta
de desarrollo Raspberry pi se prestan para constituir un buen dispositivo en el control
de muchos procesos SIMO y /o MIMO.
A pesar de que la plataforma Stewart ofrece 6 grados de libertad, en este caso solo se
hace uso de dos de ellos a raíz de que el subsistema bola y plato no requiere de más
de estos. Sin embargo la ventaja de implementar estos dos subsistemas unidos radica
en que la rigidez de la plataforma, la cual permite movimientos muy apropiados para
estabilizar de manera satisfactoria la bola ante perturbaciones externas. Gracias al pa-
ralelismo de la plataforma Stewart, cuando se implementa alguna estrategia de control
sin importar que haya un daño de algún servomotor es posible llegar a la estabiliza-
ción del sistema; ya que este tipo de fallas no afecta el funcionamiento de las cadenas
cinemáticas independientes.
Haciendo la comparación entre los parámetros de desempeño obtenidos con las dos
diferentes estrategias de control, se obtienen mejores resultados con el LQR, se observa

67
6. C ONCLUSIONES

que se reducen muy significativamente; destaca el porcentaje del sobreimpulso que es


muy alto para el recorrido en y cuando se controla la planta con el PID.
La presencia de control integral muy alto cuando se aplica el control PID causa que se
generen “saltos” en la curva de reacción cuando el proceso ya se encuentra en estado
estable, si bien esta acción de control es necesaria para hacer que el sistema converja
a la referencia, no es apropiado utilizar una magnitud muy grande en la constante
integral.
Con el LQR la bola que recorre la placa superior de la plataforma hace un recorrido
más corto desde su posición inicial hasta llegar a la referencia, lo cual implica más rapi-
dez en la respuesta del sistema debido a que la bola no hace trayectorias innecesarias,
cuando se requiere que alcance a una referencia determinada.
En las practicas realizadas con el regulador cuadrático lineal aplicado a la planta se
evidenció que se debe conservar una proporcionalidad entre los valores de Q y de R
para tener un control dentro de los parámetros de reacción de la planta establecidos.
Si se manejan valores altos de Q y valores altos de R o valores de Q bajos y R 10 veces
mas pequeña conserva las características deseadas de la respuesta de la planta.
Sin importar los valores de R y de Q al implementar el LQR combinado con un pre-
compensador se observa que el error de estado estacionario converge a 0.
La robustez del control y el tiempo de estabilización son inversamente proporcionales
puesto que al querer aumentar la velocidad de respuesta del control se pierde robustez,
por esta razón se deben manejar valores de R pequeños y valores de Q entre 250 y 100.

68
Apéndice

A Comunicación SSH

C ONTENIDOS DEL CAPÍTULO

A.1 C ONEXIÓN SSH A.3 P ROBLEMAS CONOCIDOS


A.2 U SAR GESTOR DE ARCHIVOS CON
SSH

En este apéndice se explica una forma de manejar las funcionalidades del sistema ope-
rativo instalado previamente en la tarjeta Raspberry Pi, desde un computador, me-
diante conexión física con el cable ethernet, accediendo a la terminal de Raspbian y a las
carpetas de archivos que contiene la memoria SD (Secure Digital) que funciona como
“disco duro de la tarjeta”.

A.1 C ONEXIÓN SSH

Con el fin de evitar el uso de periféricos como teclado y monitor conectados a la Rasp-
berry Pi, se puede establecer conexión desde un computador mediante el cable ethernet
usando el protocolo SSH (Secure SHell) y así controlar la tarjeta de desarrollo usando
los periféricos del computador; este método es especialmente útil cuando no se dispo-
ne de un monitor HDMI o un cable conversor HDMI-VGA para conectar a la Raspberry
Pi. Es necesario tener en cuenta que en la tarjeta SD de la Raspberry Pi debe estar insta-
lado el sistema operativo (como el Raspbian por ejemplo), y así se pueden efectuar los
pasos que siguen:

69
A. C OMUNICACIÓN SSH

Figura A.1: Ventana de conexiones de red Ubuntu [Autores].

A.1.1 Establecer ip estática en el computador

Ambos dispositivos deben tener una ip estática para hacer conexión entre ellos. En un
computador con Ubuntu se accede a “Editar las conexiones...” como se ve en la Figura
A.1 que se encuentra en el botón de redes en la parte superior derecha del escritorio
.
En la ventana de “Conexiones de red” se hace clic en “Añadir” y luego se elige tipo
de conexión “Cableada”. En la ventana de edición se puede poner un nombre que
identifique la conexión, como Raspberry Pi. Para asignar la ip fija, se hace clic en la
pestaña “Ajustes de IPv4”, se selecciona el método manual en el menú desplegable y
luego con el botón “Añadir”, se añade una dirección. En este caso se usó el número
192.168.200.1 para que no entre en conflicto con las direcciones ip asignadas en la red
inalámbrica (ver Figura A.2).

A.1.2 Establecer ip estática en la Raspberry Pi

Con el sistema operativo instalado en la Raspberry Pi (Raspbian en este caso), se configu-


ra una ip fija como se describe a continuación. Con la Raspberry Pi apagada se extrae la
tarjeta SD y se inserta en el computador. Normalmente se abre de forma automática la
memoria en el directorio “boot”, en el que se encuentra un archivo llamado cmdline.conf.
Para evitar perder la configuración por defecto se puede hacer una copia del archivo
y nombrarla cmdline.original. En la última línea del archivo cmdline.conf se adiciona la
instrucción ip=número_ip, donde número ip es el número asignado por el usuario. En
este caso se le pone el número ip=192.168.200.2 para que pertenezca al mismo número
de red asignado al computador. Cuando se ha terminado este procedimiento se pone
la tarjeta SD nuevamente en la Raspberry pi.

70
A.2. Usar gestor de archivos con SSH

Figura A.2: ip estática configurada [Autores].

A.1.3 Establecer conexión entre los dispositivos

El primer paso es instalar el servidor SSH, en Ubuntu se hace abriendo la terminal


(Ctrl + Alt + t) y escribiendo la instrucción: sudo apt-get install openssh-server
Con el servidor instalado y la Raspberry pi conectada a través del puerto ethernet y
funcionando, lo único que queda por hacer es establecer la conexión.
En la terminal se pone la siguiente instrucción para establecer conexión con la Raspberry
pi por medio del protocolo SSH: ssh pi@192.168.200.2 seguido solicita aprobación
para conectar al dominio, a lo que solo hay que responder “yes”. Cuando solicita la
contraseña, y si no se ha modificado la que la Raspberry pi tiene por defecto, se pone
Raspberry pi en minúsculas y se da “Enter”. Cuando aparezca ssh pi@192.168.200.2 es
porque ya se ha establecido conexión.

A.2 U SAR GESTOR DE ARCHIVOS CON SSH

Con el anterior procedimiento puede manejarse la terminal de la Raspberry pi desde la


terminal de un computador usando la conexión LAN cableada, sin embargo también es
posible mediante la misma conexión manejar los datos del sistema operactivo Raspbian
si se usa un gestor de archivos que funcione con conexión SSH.

71
A. C OMUNICACIÓN SSH

Figura A.3: Ventana para conectar a un servidor [Autores].

Figura A.4: Ventana para introducir la dirección del servidor con el que se quiere establecer conexión
[Autores].

El gestor de archivos de Ubuntu 14.04 con Unity se llama Nautilus, el cual permite ver
los archivos de un servidor SSH directamente sin necesidad de recurrir a la terminal.
El primer paso es acceder a Archivo>Conectar al servidor como se ve en la Figura A.3.

Luego en el cuadro de diálogo que se abre hay un espacio para insertar la dirección
del servidor de la forma sftp://usuario@direccion/carpeta/ y como se ve en la
Figura A.4, en este caso en específico se inserta sftp://pi@192.168.200.2/home/pi.

Una vez se tiene Nautilus funcionando con la conexión SSH sólo resta copiar y pegar
de forma gráfica los archivos que se quieran utilizar en la tarjeta conectando al servidor
como se muestra en la Figura A.5.

72
A.3. Problemas conocidos

Figura A.5: Ventana para seleccionar el servidor con el que se quiere establecer conexión [Autores].

A.3 P ROBLEMAS CONOCIDOS

Solucionar el error “WARNING: REMOTE HOST IDENTIFICATION HAS CHAN-


GED!”, este problema se presenta cuando la lista de ip segura del equipo identifica
que otro dispositivo diferente al asignado en principio usa la misma ip. Es una ad-
vertencia de suplantación de identidad, para solucionarlo basta con borrar la ip de la
lista de conexiones seguras; de esta manera el equipo vuelve a introducir la ip como
una nueva ip asignada a un nuevo dispositivo. La instrucción para borrar la ip es ssh-
keygen -f "/home/manuti/.ssh/known_hosts"-R 192.168.1.100.

73
Apéndice

B Aclaraciones matemáticas

C ONTENIDOS DEL CAPÍTULO

B.1 I DENTIDAD SUMA DE SENO Y CO -


SENO

B.1 I DENTIDAD SUMA DE SENO Y COSENO

Para simplificar las expresiones matemáticas que surgen en la cinemática de la planta


(ver Sección 2.3) se usa la identidad (B.1).

C
H

v
Figura B.1: Triángulo para deducción
J
de la identidad [Autores].

sin ( x + v) = sin ( x ) cos (v) + cos ( x ) sin (v) (B.1)

Sin embargo se hacen algunos arreglos matemáticos para expresarla de otra manera
como se ve en (B.2), sabiendo las igualdades de la Tabla B.1 deducidas de acuerdo a la
Figura B.1.
J H
sin ( x + v) = sin ( x ) + cos ( x )
C C

75
B. A CLARACIONES MATEMÁTICAS

Cuadro B.1: Igualdades triángulo.


H
sin (v) = C
J
cos (v) =
  C
H
tan (v) = → arctan HJ = v
J

C = H2 + J2

C sin ( x + v) = J sin ( x ) + H cos ( x ) (B.2)


Se hacen sustituciones de variable para expresar (2.40) del capitulo 2 Sección 2.3, con
estas equivalencias: M → J, N → H, α → x, v → δ y C → C.
Se aplica (B.2) a (2.40) y se obtiene (B.3).

L = C sin (α + δ)

L = N 2 + M2 sin (α + δ)
L
sin (α + δ) = √
N 2 + M2
 
L
arcsin √ = α+δ (B.3)
N 2 + M2
N
Se sabe que δ = arctan M teniendo en cuenta la Tabla B.1 y las sustituciones de
variable hechas, entonces se reemplaza δ en (B.3) y se obtiene (B.4).
   
L N
arcsin √ = α + arctan (B.4)
2
N +M 2 M

76
Apéndice

C Condiciones físicas de la
planta

C ONTENIDOS DEL CAPÍTULO

C.1 M EDICIÓN DE LAS PARTES DE LA C.2 PWM NECESARIO PARA CADA


PLATAFORMA SERVOMOTOR

C.1 M EDICIÓN DE LAS PARTES DE LA PLATAFORMA

En el trabajo de asegurar simetría en el diseño mecánico de la planta, se dispone que


cada parte que la compone tenga las mismas medidas. En la Figura C.1 se muestra la
medida de los brazos que unen la placa superior con la placa inferior y la medida de
cada leva acoplada a cada sevomotor.

C.2 PWM NECESARIO PARA CADA SERVOMOTOR

Los servomotores usados en el diseño de la plataforma Stewart son de referencia SG90,


cada uno de ellos presenta sus propias características, en cuanto al ciclo útil del PWM
que requieren para que la hélice tenga un desplazamiento angular de determinada
magnitud de grados. Es necesario determinar de manera experimental una ecuación
de la gráfica lineal, que se genera con los datos del PWM requerido y el ángulo corres-
pondiente de la hélice del motor con respecto a la horizontal medido con ayuda de un
goniómetro.

77
C. C ONDICIONES FÍSICAS DE LA PLANTA

Si = 129 mm
(a)

ai = 1,25 mm
(b)

Figura C.1: Medidas del brazo y de la leva de la plataforma. (a) Longitud del i-ésimo brazo rígido.
(b) Longitud de la leva del i-ésimo servomotor medida desde la unión leva–motor [Autores].

En la Figura C.2 se ven las gráficas que reflejan la medición anteriormente descrita
y en las ecuaciones (C.1), (C.2), (C.3), (C.4), (C.5), y (C.6) se expresa la aproximación
lineal que corresponde a cada gráfica. Con la cual puede calcularse el ciclo útil que se
requiere para que la hélice del servomotor se mueva a un grado deseado.

ciclo util1 = 0,09222 · grado + 12,32 (C.1)


ciclo util2 = 0,099777 · grado − 5,1 (C.2)
ciclo util3 = 0,10133 · grado + 12,48 (C.3)

ciclo util4 = 0,096222 · grado − 3,56 (C.4)


ciclo util5 = 0,096888 · grado + 14,02 (C.5)
ciclo util6 = 0,0099777 · grado − 5,3 (C.6)

Debido a la disposición enfrentada de los servomotores los impares y los pares se mi-
den con los ángulos contrarios.

78
C.2. PWM necesario para cada servomotor

(a) (b)
25 25
20 20
% PWM

% PWM
15 15
10 10
5 5
0 0
-100 -50 0 50 100 50 100 150 200 250 300
Grados Grados

(c) (d)
25 25
20 20
% PWM

% PWM

15
15
10
5 10
0 5
-100 -50 0 50 100 50 100 150 200 250 300
Grados Grados

(e) (f)
25
20 20
% PWM

% PWM

15
15
10
10 5
5
-100 -50 0 50 100 100 150 200 250
Grados Grados

Figura C.2: Gráficas de funcionamiento de cada servomotor con respecto a la señal PWM necesaria
para producir un movimiento angular específico [Autores]. (a) Servomotor 1. (b) Servomotor 2. (c)
Servomotor 3. (d) Servomotor 4. (e) Servomotor 5. (f) Servomotor 6 [Autores].

79
Bibliografía

[1] Unknown. The mathematics of the stewart platform. Wokingham U3A Math
Group. [Online]. Available: https://web.archive.org/web/20130506134518/http:
//www.wokinghamu3a.org.uk/Maths%20of%20the%20Stewart%20Platform%
20v5.pdf
[2] R. Ajna and T. Hersan. (2014, Jul.) Controlling a stewart platform.
memememe. [Online]. Available: http://www.memememememememe.me/
controlling-stewart-platform/
[3] K. Ogata, Ingeniería de control Moderna, 3rd ed., P. Hall, Ed. Pearson, 1998.
[4] D. S. Naidu, Optimal Control Systems, S. Richard C. Dorf, Ed. CRC Press, 2003.
[5] M. Triantafyllou and F. Hover, Maneuvering and control of marine vehi-
cles. Department of Ocean Engineering, Mar. 2013, ch. 19. [On-
line]. Available: http://ocw.mit.edu/courses/mechanical-engineering/
2-154-maneuvering-and-control-of-surface-and-underwater-vehicles-13-49-fall-2004/
lecture-notes/1349_notes.pdf
[6] J. Gómez, Beneficios del Software Libre, U. de Manizales, Ed. Ventana Informática,
2003. [Online]. Available: http://issuu.com/cridumuniversidaddemanizales/
docs/04-beneficios-del-software-libre
[7] M. Lemos, M. Marques, G. Botura, and F. Soares, “Una pro-
puesta robusta e de bajo costo para ejecutar Robótica Educativa,”
Universidad Estadual Paulista Julio de Mesquita Filho, 2014. [Online]. Availa-
ble: https://www.academia.edu/14804078/Una_propuesta_robusta_e_de_bajo_
costo_para_ejecutar_Rob%C3%B3tica_Educativa
[8] Bitemark. Welcome to raspbian. [Online]. Available: http://www.raspbian.org/
[9] E. Bahit, Curso: Python para Principiantes. Eugenia Bahit, 2012.
[10] T. I. Incorporated, Ultra-Small, Low-Power, 16-Bit Analog-to-Digital Converter with
Internal Reference, Oct. 2009. [Online]. Available: http://www.ti.com/lit/ds/
symlink/ads1115.pdf

81
B IBLIOGRAFÍA

[11] B. Earl. (2012, November) Adafruit 4-channel adc breakouts.


Contributor. Adafruit. [Online]. Available: https://learn.adafruit.com/
adafruit-4-channel-adc-breakouts/overview

[12] L. Sheng, L. Wan-long, D. Yan-chun, and F. Liang, “Forward kinematics of the


Stewart platform using hybrid immune genetic algorithm,” in Proceedings of the
2006 IEEE International Conference on Mechatronics and Automation, Jun. 2006, pp.
2330–2335.

[13] A. Majarena, J. Santolaria, D. Samper, and J. Aguilar, “Identificación de paráme-


tros cinemáticos de una plataforma paralela pan-tilt basada en cinemática inversa
y directa,” XVIII Congreso Nacional de ingeniería mecánica, 2010. [Online]. Available:
http://www.uclm.es/actividades/2010/CongresoIM/pdf/cdarticulos/036.pdf

[14] F. Szufnarowski, “Stewart platform with fixed rotary actuators: a low cost
design study,” Bielefeld University, 2013. [Online]. Available: http://www.techfak.
uni-bielefeld.de/~fszufnar/publications/Szufnarowski2013.pdf

[15] N. González and E. Reinoso, “Estudio, diseño y construcción de una plataforma


robótica didáctica tipo stewart aplicada al estudio de controladores difusos,”
Ph.D. dissertation, Universidad Politécnica Salesiana, 2011. [Online]. Available:
http://dspace.ups.edu.ec/bitstream/123456789/1921/14/UPS-CT002354.pdf

[16] AVR341: Four and five-wire Touch Screen Controller, Atmel Corporation, 2007.
[Online]. Available: http://www.atmel.com/Images/doc8091.pdf

[17] A. Fernandez, “Diseño e implementación de sistemas de control de tiempo real


mediante herramientas de generación automática de código,” Ph.D. dissertation,
Universitat Politécnica de Catalunya, Escola Politécnica Superior de Ingeniería de
Vilanova I La Geltrú, Jun. 2013.

[18] M. Nokhbeh and D. Khashabi, “Modelling and control of ball-plate system,”


Master’s thesis, Amirkabir University of Technology, 2011. [Online]. Available:
http://web.engr.illinois.edu/~khashab2/files/2011_LinearControl/16.pdf

[19] A. Kassem, H. Haddad, and A. Chadi, “Commparison between different


methods of control of ball and plate system with 6 dof stewart platform,” 1st
IFAC Conference onModelling, Identification andControl of Nonlinear Systems, vol. 48,
no. 11, pp. 47–52, Jun. 2015. [Online]. Available: http://www.sciencedirect.com.
bdigital.udistrital.edu.co:8080/science/article/pii/S2405896315012392

[20] E. Farregas, “Plataformas interactivas de experimentación virtual y remota: Apli-


caciones de control y robótica,” Ph.D. dissertation, Universidad Nacional de edu-
cación a distancia Madrid, 2013.

[21] S. Awtar, B. C, B. N, A. Master, U. D, and C. Kevin, “Mechatronic design of ball on


plate balancing system,” Elsevier Science- Mechatronics, no. 12, pp. 217– 228, 2002.

82
Bibliografía

[22] C. T. F. M. . simulink. Ball and beam: Digital controller design.


[Online]. Available: http://ctms.engin.umich.edu/CTMS/index.php?example=
BallBeam&section=ControlDigital

[23] A. Menéndez and S. Simón, Aportación al Control del Convertidor CC/CA de Tres
Niveles, Nov. 2004, ch. 5. [Online]. Available: http://www.tdx.cat/handle/10803/
6330

[24] R. Mantz, Introducción al control óptimo, Universidad Nacional de La Plata, 2003.

[25] O. H. Bosgra, H. Kwakernaak, and G. Meinsma, Design Methods for Control Sys-
tems, D. I. of Systems and Control, Eds. unknown, 2008.

[26] M. Rentsh, “Controlling a ball and plate process using computer vision,” Ph.D.
dissertation, Lund Institute of Technology, Mar. 1998.

[27] B. Nath, Numerical Methods for Linear Control Systems. Department of Mathemati-
cal Sciences, Northern Illinois University, 2004, ch. 12- State Estimation: Observer
and The Kalman Filter, pp. 469– 518.

[28] H. Castillo, Desarrollo de una plataforma Stewart basada en microcontroladores, para


simular el comportamiento de una aeronave en tres grados de libertad, I. P. Nacional,
Ed. Unidad Ticoman, Nov. 2013. [Online]. Available: http://tesis.bnct.ipn.mx/
dspace/bitstream/123456789/12716/1/1948%202013.pdf

[29] G. González, “Plataforma de movimiento de seis grados de libertad aplicable


a entrenador de vuelo,” Ph.D. dissertation, Universidad Ricardo Palma,
2008. [Online]. Available: http://cybertesis.urp.edu.pe/bitstream/urp/62/1/
gonzales_go.pdf

[30] S. Koekebakker, “Model based control of a flight simulator motion system,”


Ph.D. dissertation, Universidad Técnica de Delft, Dec. 2001. [Online]. Available:
http://www.dcsc.tudelft.nl/Research/PublicationFiles/publication-5738.pdf

[31] A. Koszewnik, K. Troc, and M. Stowik, “PID Controllers Design Applied to


Positioning of Ball on the Stewart Platform,” Acta Mechanica et Automatica, vol. 8,
no. 4, pp. 214–218, 2015. [Online]. Available: http://www.acta.mechanica.pb.
edu.pl/volume/vol8no4/39_2014_016_KOSZEWNIK_TROC_SLOWIK.pdf

[32] S. Kucuk, Serial and Parallel Robot Manipulators - Kinematics, Dynamics, Control
and Optimization. InTech, 2012, ch. 10, pp. 179–202. [Online]. Available:
http://cdn.intechopen.com/pdfs-wm/34400.pdf

[33] (2002) Creating a stewart platform model using simmecha-


nics. Technical Articles and Newsletters. MathWorks. [Onli-
ne]. Available: http://www.mathworks.com/company/newsletters/
articles/creating-a-stewart-platform-model-using-simmechanics.html?

83
B IBLIOGRAFÍA

requestedDomain=www.mathworks.com&requestedDomain=www.mathworks.
com

84

También podría gustarte