Diseno e Implementacion de un Sistema de Balanceo de una BolaSobre un Plano
Juan Felipe Reyes Ortiz
Diego Ochoa Polanıa
Universidad Distrital Francisco Jose de Caldas
Facultad de Ingenierıa
Proyecto Curricular de Ingenierıa Electronica
Bogota D.C.
2016
Diseno e Implementacion de un Sistema de Balanceo de una BolaSobre un Plano
Juan Felipe Reyes Ortiz Codigo: 20082005036
Diego Ochoa Polanıa Codigo: 20082005091
Trabajo de grado para optar al tıtulo de:
Ingeniero Electronico en la modalidad de investigacion
Directora:
Diana Marcela Ovalle Martınez. PhD.
Lınea de Investigacion:
Senales y Control
Grupo de Investigacion:
IDEAS
Universidad Distrital Francisco Jose de Caldas
Facultad de Ingenierıa
Proyecto Curricular de Ingenierıa Electronica
Bogota D.C.
2016
”No son los golpes ni las caıdas las que hacen
fracasar al hombre; sino su falta de voluntad
para levantarse y seguir adelante”.
Anonimo
Agradecimientos
Queremos expresar nuestros mas sinceros agradecimientos a Dios, a nuestras familias sin
las cuales no hubiera sido posible culminar este ciclo de nuestras vidas, a nuestra directora
Dra. Diana Marcela Ovalle por la paciencia, el apoyo y la orientacion que a lo largo de
estos anos nos brindo para poder terminar de manera exitosa con este proceso, al Msc. Luis
Camilo Jimenez, quien a lo largo del esta aventura nos acompano en muchos fines de semana
brindandonos la mejor asesorıa posible para completar el modelo del sistema. Y a todas las
personas que de una u otra forma nos apoyaron para sacar adelante esta travesıa.
A todos gracias.
Resumen
El presente documento permite al lector apreciar los principales elementos para el diseno
e implementacion de un sistema de balanceo de una bola sobre un plano, cuyo sistema de
sensado se basa en una camara web, partiendo por la explicacion de los distintos mecanis-
mos planeados por los autores de este documento, continuando con la explicacion fısica del
modelo, el desarrollo del prototipo, y el diseno de los controladores, para arribar al ultimo
capıtulo donde se unen cada una de las etapas desarrolladas anteriormente para producir un
sistema funcional. El documento termina con una seccion de conclusiones y trabajos futuros
basados en el prototipo.
Contenido
Resumen IX
Lista de Figuras XIII
Lista de Tablas 1
Introduccion 3
1. Generalidades 5
1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2. Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Aportes y Reconocimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Diseno y Construccion 7
2.1. Diseno Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Sistema Impulsado por Vigas Radiales . . . . . . . . . . . . . . . . . . . . . 7
2.2.1. Mecanismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2. Ventajas y Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Sistema Impulsado por Pinones . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1. Mecanismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2. Ventajas y Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4. Sistema Rotulado(Implementacion Fısica) . . . . . . . . . . . . . . . . . . . 12
2.4.1. Mecanismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.2. Ventajas y Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3. Modelo Analıtico 17
3.1. Modelo de referencia y Condiciones Iniciales . . . . . . . . . . . . . . . . . . 17
3.2. Analisis Fısico de la Bola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3. Estado de Reposo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4. Traslacion de la bola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
xii CONTENIDO
3.4.1. Planos de Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.2. Analisis Traslacional de la Bola . . . . . . . . . . . . . . . . . . . . . 21
3.4.3. Analisis Rotacional de la Bola . . . . . . . . . . . . . . . . . . . . . . 22
3.4.4. Relacion entre Rotacion y traslacion de la Bola . . . . . . . . . . . . 27
3.5. Analisis Por Energıa y Ecuaciones de Lagrange . . . . . . . . . . . . . . . . 29
4. Sensado e Interfaces Grafica 35
4.1. Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2. Set Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3. Interface Grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1. Inicializacion de la Interface . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.2. Inicializacion de los elementos . . . . . . . . . . . . . . . . . . . . . . 41
4.3.3. Retorno de Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.4. Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.5. Comunicacion entre Simulink - Interface Grafica . . . . . . . . . . . . 48
5. Diseno de los Controladores 53
5.1. Controlador Difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.1. Descripcion Linguıstica . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.2. Reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.3. Funciones de Pertenencia . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2. Controlador de Realimentacion de Estados . . . . . . . . . . . . . . . . . . . 56
5.2.1. Regulador de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.2. Seguidor de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6. Estimacion de Parametros y Resultados 91
6.1. Estimacion de parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2. Simulaciones de los Controladores . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2.1. Control por Regulacion de Estados . . . . . . . . . . . . . . . . . . . 93
6.2.2. Seguidor de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.3. Resultados Implementacion Real del Sistema . . . . . . . . . . . . . . 95
6.2.4. Resultados Implementacion Real del Controlador por Realimentacion
de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.2.5. Validacion entrada salida Modelo estimado Vs Modelo Real . . . . . 98
6.2.6. Resultados Reales del Controlador Difuso . . . . . . . . . . . . . . . . 99
6.2.7. Costos de implementacion . . . . . . . . . . . . . . . . . . . . . . . . 103
Lista de Figuras
2-1. Plano y Distribucion de Guias . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2-2. Sistema de Guıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2-3. Montaje Simulado de Mecanica Disco-Viga . . . . . . . . . . . . . . . . . . . 9
2-4. Plano de 3 ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2-5. Movimiento Pinones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2-6. Interaccion Pinones - Tornillo Sinfın . . . . . . . . . . . . . . . . . . . . . . 11
2-7. Sistema de Acople Plano Tornillos . . . . . . . . . . . . . . . . . . . . . . . 12
2-8. Montaje Sistema Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2-9. Pivote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2-10.Parte Superior Rotula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2-11.Parte Inferior Rotula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2-12.Motor Futaba3005 y Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2-13.Sistema Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2-14.Sistema Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3-1. Sistema de Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3-2. Sistema en estado de reposo . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3-3. Rotacion del plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3-4. Analisis de Fuerzas para la bola en el eje x . . . . . . . . . . . . . . . . . . . 21
3-5. Torques de Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3-6. Analisis del Radio de la Normal . . . . . . . . . . . . . . . . . . . . . . . . . 24
3-7. Analisis Espacial de P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3-8. Relacion Velocidad Angular - Lineal . . . . . . . . . . . . . . . . . . . . . . . 28
3-9. Analisis Espacial de los Movimientos la Bola . . . . . . . . . . . . . . . . . . 29
4-1. Elementos del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4-2. Interface Grafica Segmentada . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5-1. Funciones de Pertenencia para el error en X . . . . . . . . . . . . . . . . . . 56
5-2. Funciones de Pertenencia para la variacion del error en X . . . . . . . . . . 57
5-3. Salida del Controlador en X . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5-4. Funciones de Pertenencia para el error en Y . . . . . . . . . . . . . . . . . . 57
xiv LISTA DE FIGURAS
5-5. Funciones de Pertenencia para la variacion del error en Y . . . . . . . . . . 57
5-6. Salida del Controlador en Y . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5-7. Regulador de Estados Implementado en Matlab . . . . . . . . . . . . . . . . . 71
5-8. Vector de Regulacion de Estados Implementado en Matlab . . . . . . . . . . 72
5-9. Implementacion del regulador . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5-10.Implementacion del regulador K . . . . . . . . . . . . . . . . . . . . . . . . . 89
5-11.Implementacion del regulador K ampliada . . . . . . . . . . . . . . . . . . . 90
6-1. Medicion del Sistema en el eje X . . . . . . . . . . . . . . . . . . . . . . . . 91
6-2. Medicion del Sistema en el eje Y . . . . . . . . . . . . . . . . . . . . . . . . 92
6-3. Esquema de Simulacion por el Controlador por Regulacion . . . . . . . . . . 93
6-4. Resultado Simulacion del Regulador . . . . . . . . . . . . . . . . . . . . . . . 94
6-5. Esquema de Simulacion por el Controlador por Seguimiento . . . . . . . . . 94
6-6. Resultado Simulacion del Seguidor . . . . . . . . . . . . . . . . . . . . . . . 95
6-7. Resultado Implementacion del Regulador en el eje X . . . . . . . . . . . . . 96
6-8. Resultado Implementacion del Regulador en el eje Y . . . . . . . . . . . . . 96
6-9. Resultado Implementacion del Seguidor en el eje X . . . . . . . . . . . . . . 97
6-10.Resultado Implementacion del Seguidor en el eje Y . . . . . . . . . . . . . . 97
6-11.Comparacion Respuesta Real Vs Estimada eje X . . . . . . . . . . . . . . . . 98
6-12.Comparacion Respuesta Real Vs Estimada eje Y . . . . . . . . . . . . . . . . 99
6-13.Respuesta del Sistema Real en el Eje X . . . . . . . . . . . . . . . . . . . . . 100
6-14.Respuesta del Sistema Real en el Eje Y . . . . . . . . . . . . . . . . . . . . . 100
6-15.Respuesta del Sistema Real en el Eje X . . . . . . . . . . . . . . . . . . . . . 101
6-16.Respuesta del Sistema Real en el Eje Y . . . . . . . . . . . . . . . . . . . . . 101
6-17.Grafico de Superficie Resultante . . . . . . . . . . . . . . . . . . . . . . . . . 102
6-18.Grafico Colores Reglas en el eje X . . . . . . . . . . . . . . . . . . . . . . . 102
6-19.Grafico Colores Reglas en el eje Y . . . . . . . . . . . . . . . . . . . . . . . 102
Lista de Tablas
5-1. Rangos del Error y Descripcion linguıstica Asociada. . . . . . . . . . . . . . 54
5-2. Valor Linguıstico del Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5-3. Valor Linguıstico Derivada del Error. . . . . . . . . . . . . . . . . . . . . . . 55
5-4. Descripcion Linguıstica X y Rangos de Salida. . . . . . . . . . . . . . . . . . 55
5-5. Tabulacion Salida X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5-6. Tabulacion Salida Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6-1. Costos de implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Introduccion
En ingenierıa se tiene la posibilidad de encontrar una gran variedad de plantas y sistemas a
partir de los cuales se puede analizar, desarrollar y construir distintos modelos matematicos
y fısicos. Con base en estos se pueden realizar distintas aplicaciones, en una gran variedad
de campos. Uno de estos campos es el que tiene que ver con el diseno de sistemas de con-
trol y automatizacion, donde lo que se busca es obtener una respuesta final deseada, tras la
aplicacion de alguna tecnica o estrategia disenada para cumplir dicho objetivo.
Es por esta razon que surgen las siguientes preguntas ¿Cual es la diferencia entre el com-
portamiento fısico del prototipo de sistema de balanceo de una bola sobre un plano y los
resultados obtenidos en la simulacion del modelo matematico encontrado? ¿Cuales son las
diferencias en la aplicacion de dos tecnicas de control a esta planta? ¿Que posibilidades
academicas ofrece el desarrollo de un sistema no lineal?
Es por esto que a lo largo de este documento lo que se buscara dar respuesta a las preguntas
anteriormente formuladas, mediante la explicacion del proceso realizado para la construccion
un sistema de balanceo de una bola sobre un plano cuyo sistema de sensado se basa en una
camara web.
En el capıtulo uno se realiza el planteamiento del problema y los objetivos de este documento.
En el segundo capıtulo se explican los pasos que se siguieron para llegar al construccion fısica
resultante. En el tercer capıtulo se realizo el planteamiento de las ecuaciones del sistema por
dos metodos distintos. En el cuarto se explica a grandes rasgos como se realizo la integracion
entre Matlab, la camara web y los actuadores. En el quinto se explica el diseno de los
controladores. En el sexto capıtulo se muestran los resultados obtenidos en la simulacion y
en la implementacion de los controladores. Por ultimo se presentan algunas conclusiones y
trabajos futuros relacionados con la implementacion del sistema.
Capıtulo 1
Generalidades
1.1. Planteamiento del problema
En ingenierıa electronica se tiene la posibilidad de encontrar una gran variedad de plantas
y sistemas a partir de los cuales se puede analizar, desarrollar y construir distintos modelos
matematicos y fısicos. Con base en estos, se pueden realizar distintas aplicaciones en una
gran variedad de campos. Uno de estos campos es el que tiene que ver con el diseno de
sistemas de control y automatizacion, donde lo que se busca es obtener una respuesta final
deseada, tras la implementacion de alguna tecnica o estrategia disenada para cumplir dicho
objetivo. Una planta que ofrece la posibilidad de aplicar estas estrategias es un sistema de
balanceo de una bola en un plano, el cual permite estudiar distintos comportamientos en el
mismo.
Por esta razon, se desea encontrar respuesta a las siguientes preguntas ¿Cual es la diferencia
entre el comportamiento fısico del prototipo de sistema de balanceo de una bola sobre un
plano y los resultados obtenidos en la simulacion de un modelo matematico encontrado?
¿Cuales son las diferencias en la implementacion de un controlador difuso y controlador por
regulacion de estados a esta planta? ¿Que posibilidades academicas ofrece el desarrollo de
este sistema?
1.2. Objetivos
1.2.1. Objetivo general
Disenar e implementar un sistema fısico de balanceo de una bola sobre un plano, utilizando
una camara web como sensor.
1.2.2. Objetivos especıficos
1.2.1 Disenar y realizar la construccion fısica del sistema propuesto.
6 1 Generalidades
1.2.2 Obtener un modelo analıtico del sistema de balanceo de una bola sobre un plano.
1.2.3. Realizar un procesamiento digital de la imagen obtenida mediante una camara web
para determinar la posicion de la bola en el plano.
1.2.4. Obtener una estimacion de los parametros del modelo analıtico de la planta.
1.2.5. Disenar e implementar un controlador difuso y controlador por regulacion de estados
para estabilizar la bola en el plano.
1.2.6. Comparar los comportamientos teorico y real del sistema, ası como los comportamien-
tos con cada estrategia de control.
1.3. Aportes y Reconocimientos
Prototipos. Se implemento un sistema de balanceo de una bola sobre un plano el
cual emplea una camara web como sensor, este sistema permite probar dos tecnicas
de control, las cuales estan implementadas por medio de una interfaz en Matlab. Es
importante aclarar que la tecnica de control que se emplea durante la simulacion es
seleccionada por pantalla.
Software. Se implemento una interfaz grafica en Matlab que permite configurar los
perifericos tales como: la camara y el microcontrolador.Tambien, visualizar la posicion
de la bola en el plano y elegir un controlador.
Capıtulo 2
Diseno y Construccion
2.1. Diseno Sistema
Durante esta etapa, se plantearon distintos mecanismos para generar el movimiento del plano
en dos dimensiones, de los cuales se seleccionaron tres mecanismos los cuales se implemen-
taron total o parcialmente.
Si bien los tres sistemas seleccionados tienen el mismo objetivo, cada uno de estos posee
particularidades intrınsecas al mecanismo motriz. A continuacion, se explicaran los meca-
nismos seleccionados, las caracterısticas de los mecanismos, el proceso realizado durante la
simulacion y/o implementacion, la razon por la cual fue seleccionado o no, y las ventajas y
desventajas de esta cada uno de los mecanismos.
2.2. Sistema Impulsado por Vigas Radiales
2.2.1. Mecanismo
Este sistema consiste en un plano orientado por un sistema de guıas. Esto da como resultado
que el sistema planteado tenga 4 puntos de contacto distribuidos de la siguiente manera: un
punto semifijo ubicado en una de las diagonales del plano, en el otro extremo de esa diagonal,
una guıa que se encarga de que el plano no rote al inclinarse, y dos puntos moviles ubicados
en medio de los ejes x, y, donde se acoplan los actuadores del sistema. En la Figura 2-1, se
puede apreciar el plano con la respectiva distribucion.
En este sistema se disenaron e implementaron una a una las piezas del mismo; el plano fue la
primera pieza en ser disenada y se muestra en la Figura 2-1, luego se ideo la forma en como
se debıa sostener el plano en una posicion semifija, para tal fin se construyo un sistema de
guıas en una de las diagonales del plano. Por ultimo, se diseno el acople entre los actuadores
y el plano, en la Figura 2-2 se puede apreciar el diseno planteado para cada una de las partes
mencionadas anteriormente.
8 2 Diseno y Construccion
Figura 2-1: Plano y Distribucion de Guias
Figura 2-2: Sistema de Guıas
Ası mismo, para este primer sistema, la mecanica planteada fue un sistema de vigas y discos
que conjuntamente se encargan de inclinar el plano. El funcionamiento viene dado por la
interaccion entre el disco, el plano y la viga, ya que la viga esta sujeta al plano en la parte
2.2 Sistema Impulsado por Vigas Radiales 9
superior y en la parte inferior esta sujeta al disco. Es importante aclarar que en este caso
la viga no es rıgida, si no que en cierto punto esta posee una articulacion con el objetivo de
facilitar el movimiento en la Figura 2-2, se puede apreciar el acople entre el plano y la viga.
Por otro lado, en la Figura 2-4, se puede apreciar tanto el disco como la viga. Por ultimo,
es importante mencionar que para este montaje se seleccionaron motores DC para mover el
sistema.
Figura 2-3: Montaje Simulado de Mecanica Disco-Viga
2.2.2. Ventajas y Desventajas
La ventaja de este sistema radica en que posee un posicion inicial fija dada por la
ubicacion de las guıas.
Si bien el sistema de guıas representa una ventaja, tambien es una desventaja puesto
que el numero de interacciones o uniones entre el plano y los demas elementos (guıas,
acoples,...)es mayor que en los otros sistemas, lo cual aumenta el nivel de dificultad
a la hora de implementar el sistema, ya que cada punto debe estar posicionado mi-
limetricamente para que no se presenten interferencias o bloqueos entre elementos.
Otra de las desventajas radica en los acoples entre las vigas y el plano. Como se aprecio
en la Figura 2-2, no son uniones fijas, al contrario son uniones libres las cuales a su vez
generan que la viga se movieran en cualquier direccion, estos movimientos, producen
efectos no deseados sobre el sistema tales como, bloqueos, efectos de palanca entre el
disco y la viga, y entre el plano y la viga, entre otros. Debido a esto este mecanismo
se descarto.
10 2 Diseno y Construccion
2.3. Sistema Impulsado por Pinones
2.3.1. Mecanismo
Para este sistema se implemento un mecanismo de tres puntos de apoyo, mediante el cual se
realiza el movimiento en tres dimensiones del plano, de estos tres puntos el punto central es
un punto fijo el cual actua como pivote, mientras que los dos restantes son puntos moviles
los cuales interactuan con el sistema de actuadores, en la Figura 2-8 se puede apreciar la
disposicion de los tres puntos en plano.
Figura 2-4: Plano de 3 ejes
La principal caracterıstica de este sistema es el mecanismo para inclinar en una u otra
direccion el plano, el cual esta compuesto por un juego de pinones a 90, un tonillo sinfın y
un motor DC para cada punto movil. El funcionamiento de este prototipo se basa en que a
medida que el motor gira este induce el movimiento de los pinones (ver Figura 2-5 ) y al
mismo tiempo esto provoca el movimiento del tornillo sinfın, el cual se encuentra ubicado en
el centro del pinon a 90, dando como resultado el desplazamiento del tornillo hacia arriba o
abajo (ver Figura 2-6), lo que provoca la inclinacion del plano con respecto a punto fijo.
2.3.2. Ventajas y Desventajas
La principal ventaja de este mecanismo, es el alto grado de precision con le que se puede
posicionar el plano, ya que la inclinacion de este viene dada en funcion del numero de
pasos que avanza o retrocede el tornillo.
2.3 Sistema Impulsado por Pinones 11
Figura 2-5: Movimiento Pinones
Figura 2-6: Interaccion Pinones - Tornillo Sinfın
Por otra parte la principal desventaja de este sistema es la construccion del mecanismo,
ya que tanto los pinones como las piezas necesarias para sostener estos son demasiado
complejas y costosas.
Otra desventaja de este sistema el alto numero de piezas que se deben mover para
12 2 Diseno y Construccion
generar la inclinacion del plano, lo cual incrementa la dificultad del movimiento.Por
estas razones este sistema se descarto.
2.4. Sistema Rotulado(Implementacion Fısica)
2.4.1. Mecanismo
En el tercer sistema, se cambiaron los actuadores, ya que se paso de motores DC a servo-
motores, los cuales se acoplan con unas barras que cumplen la misma funcion que las vigas
del primer sistema, pero sin la articulacion, ası mismo se rediseno el sistema de acople entre
las vigas y el plano, ya que se paso de un sistema de movimiento libre (acoples del primer
sistema) a un sistema rotular de movimiento restringido, el cual se puede apreciar en la
Figura 2-7.
Tapa Rotula
Base Rotula
Pivote
Figura 2-7: Sistema de Acople Plano Tornillos
Estos acoples ademas de ser mas sencillos, tambien cuentan con una union fija al plano, lo
que elimina efectos no deseados en el sistema como rotaciones y bloqueos presentes en los
dos anteriores sistemas.
2.4 Sistema Rotulado(Implementacion Fısica) 13
Este sistema se simulo por computador. En la Figura 2-8, se puede apreciar el resultado
final de la simulacion realizada. Sin embargo, en esta simulacion los motores son la unica
parte que no se recreo acorde a la realidad, ya que en esta simulacion estos emulan mas a un
motor DC que a un servomotor. A continuacion, se explicaran uno a uno los componentes
del sistema y su funcion a causa de que este es el sistema que se implemento en fısico. La
primer pieza que se diseno fue el pivote puesto que es el punto fijo del sistema y al mismo
tiempo sobre este va a descansar la mayor parte el peso del sistema.
Figura 2-8: Montaje Sistema Simulacion
Figura 2-9: Pivote
Este pivote en fısico se implemento mediante una esfera de 19mm de diametro y un torni-
llo de 25cm de longitud al cual fue soldado, a su vez dentro de la estructura del sistema.
14 2 Diseno y Construccion
Ademas, existen dos pivotes mas los cuales se emplean para transmitir el movimiento entre
los motores y el plano. Es importante aclarar, que estos dos pivotes adicionales no funcionan
como tal ya que no son fijos sino que se desplazan a medida que los motores se mueven.
Estos fueron construidos con esferas de 20mm y barrajes de aeromodelismo, lo cuales se
consiguieron en conjunto con los servomotores y sus accesorios.
Dentro de este mecanismo, es importante aclarar que si bien los pivotes son la base tanto del
sostenimiento del sistema a una posicion deseada, estos no servirıan sin el sistema de rotulas.
Este sistema al igual que los pivotes se heredo del sistema de pinones y la explicacion y el
funcionamiento de estos se encuentra en las seccion 2.3. Sin embargo, en esta seccion se va
a tratar un poco mas en detalle con cada una de las piezas con las cuales se formo la rotula
de cada una de los acoples. Las rotulas estan compuestas por dos piezas, como se pueden
apreciar en las Figuras 2-10 y 2-11 y como se explico en la seccion 2.3. Estas encierran al
pivote mostrado en la Figura 2-9.
Figura 2-10: Parte Superior Rotula
Figura 2-11: Parte Inferior Rotula
2.4 Sistema Rotulado(Implementacion Fısica) 15
Para completar el sistema, se emplearon dos motores FUTABA3005 de aeromodelismo y
se diseno una base para estos como se puede apreciar en la Figura 2-12 y un plano de
35cmx35cm.
Figura 2-12: Motor Futaba3005 y Base
Para la implementacion fısica, las rotulas, y las bases de los motores se fabricaron en una im-
presora 3D, los pivotes se fabricaron mediante barrajes de aeromodelismo soldados a esferas
de aluminio de 19mm de diametro. El plano se construyo con dos acrılicos de 35cmx35cmx2
, el acople entre los motores y los pivotes se realizo con piezas de aeromodelismo. Finalmente,
dado que el sensor del sistema es una camara web, se eligio una camara web Logitech de
4megapixeles.En las Figuras 2-13 y 2-14 se puede apreciar el resultado de la implementacion:
Figura 2-13: Sistema Real
2.4.2. Ventajas y Desventajas
La principal ventaja de este sistema, es que al realizar el montaje y la interaccion entre
las distintas piezas es bastante fluida. Con respecto al sistema de pinones, el costo
16 2 Diseno y Construccion
Figura 2-14: Sistema Real
de construccion con su correspondiente implementacion y consecucion de las piezas
necesarias es bastante inferior.
• La principal desventaja de este sistema radica en la construccion de las piezas
ya que si el tamano de los componentes de la rotula no es el correcto, esta no
actuarıa correctamente de modo que imposibilitarıa el correcto funcionamiento.
• Otra de las desventajas de este sistema, es que si no se tiene la posibilidad de
mandar a hacer las piezas necesarias para el montaje, debido a su difıcil adquisi-
cion en el mercado ya que las rotulas son piezas disenadas exclusivamente para el
sistema.
Capıtulo 3
Modelo Analıtico
3.1. Modelo de referencia y Condiciones Iniciales
Si bien dentro de la academia el problema del plano inclinado y la bola es comunmente
tratado en cursos de fısica Newtoniana, no es comun ver estudios de este mismo problema
llevado a un sistema tridimensional ya que generalmente este tipo de problemas resultan no
tener soluciones simples. Por el contrario, resultan en soluciones complejas o sin solucion. Sin
embargo, a lo largo este capıtulo se tratara de realizar el planteamiento del clasico problema
del plano inclinado y la bola, pero en esta ocasion el analisis se realizara para un sistema de
plano inclinado y bola tridimensional. Para poder realizar este analisis se establecieron las
siguientes condiciones:
1. El plano inclinado tendra 2 grados de libertad, lo cual a su vez se traduce en que pueden
existir inclinaciones del plano tanto en el eje x como en el eje y(estos desplazamientos
se mediran con respecto al eje de referencia), [2].
2. Las rotaciones del plano cumpliran con la condicion sin β ≈ β, es decir que las rota-
ciones del plano seran en angulos pequenos entre 0 y 5 grados aproximadamente, [2].
3. La bola no se deslizara sobre la superficie del plano, [2].
Con esta condiciones dadas, simplemente resta plantear el sistema de referencia, el cual se
puede apreciar en la Figura 3-1, la cual a su vez posee las siguientes notaciones; el punto o′
sera el punto de referencia (0, 0) del sistema y esta ubicado en el centro del plano, x,y,z son
los ejes coordenados sobre los cuales se realizara el analisis del sistema, βx sera el angulo de
rotacion asociado al eje x y βy sera el angulo de rotacion asociado al eje y, [4].
Con el sistema de referencia y su notacion claramente establecidos, es posible iniciar con el
analisis formal del sistema. Para esto, se iniciara por estudiar la dinamica de la bola sobre
el plano, y una vez se complete esta parte, se incluira la dinamica del plano en el modelo.
18 3 Modelo Analıtico
βx
βy
Eje z
Plano
Figura 3-1: Sistema de Referencia
3.2. Analisis Fısico de la Bola
Para el analisis de la bola sobre el plano, se deben tener en cuenta dos estados, el estado
de reposo, que es aquel que se presenta cuando el plano no tiene ninguna inclinacion, y un
estado inercial, que es aquel que se presenta cuando el plano se inclina, bien sea un angulo
(βx, βy o alguna combinacion de estas dos).
3.3. Estado de Reposo
Si bien habran momentos en que se presente el estado de reposo, este no resulta interesante a
la hora de describir el comportamiento del sistema porque en este estado, solamente actuan
el peso y la fuerza de sustentacion (Fuerza normal). Como se puede apreciar en la Figura
3-2, mas aun, este estado no genera movimiento de la bola que es lo que se desea controlar.
De igual forma, en la Figura 3-2 es posible ver como la bola se encuentra en estado de
reposo mientras no se aplique ninguna fuerza externa sobre el plano, con lo cual la bola se
mantendra en equilibrio energetico, de la siguiente manera:
~W + ~N = m~a
Sin embargo puesto que la bola se encuentra en reposo, aceleracion es igual a cero, con lo
cual se tiene que:
W = mg y N = −W = −mg.
3.4 Traslacion de la bola 19
Planomg
CM
Figura 3-2: Sistema en estado de reposo
3.4. Traslacion de la bola
3.4.1. Planos de Referencia
Antes de iniciar el estudio del comportamiento del sistema a nivel fısico, es importante acla-
rar la definicion de los angulos βx, βy y Θ ya que a lo largo de este documento estos angulos
seran empleados para el desarrollo del modelo. Suponiendo que un momento dado el plano
se inclina un angulo α sobre el eje x, entonces, en ese momento el plano posee un inclinacion
α con respecto al sistema fijo de referencia, y dado que la normal del plano es perpendicular
al plano esta tambien se inclina un angulo α con respecto al sistema fijo; este angulo α que
se inclino el plano de ahora en adelante sera llamado βx, ası mismo, si el plano en vez de
inclinarse un angulo α en x se inclinase un angulo τ en el eje y, el angulo que se inclina
el plano en el eje coordenado yz sera el angulo que de ahora en adelante se llamara βy, de
momento se nombro de manera individual los angulos producidos al inclinarse el plano en x
o y. Sin embargo, en el caso de que la inclinacion del plano sea producto de una inclinacion
tanto en βx como en βy, el nombre dado al angulo de inclinacion del plano sera llamado Θ.
Si bien βx y βy se pueden determinar directamente, dado que son la inclinacion en un eje del
plano, en el caso de Θ no es ası, ya que este corresponde a la inclinacion del plano cuando
βx y βy aparecen de manera simultanea en el plano, por lo tanto se puede decir que Θ es
funcion de βx y βy. Para hallar Θ supongamos que en un instante de tiempo t el plano se
inclina un angulo βx(Ver el recuadro 1 de la Figura 3-3), y posteriormente se inclina un
angulo βy(Ver el recuadro 2 de la Figura 3-3), si se analiza los recuadros 1 y 2 se puede ver
20 3 Modelo Analıtico
que la normal del plano ( ~Np), se desplaza desde el punto A al punto B cuando esta gira en
βx y ası mismo cuando el plano gira en βy, la normal del plano ( ~Np) se desplaza desde B a C,
entonces si se desea calcular Θ en funcion del desplazamiento de la normal del plano ( ~Np),
se puede decir que la distancia total recorrida de la normal corresponde a la hipotenusa del
triangulo formado por los puntos (A,B,C), con lo cual se tiene que:
CA =
√AB
2+ BC
2(3-1)
o’
A
B
C
Eje x
Eje y
Eje z
βxβy
1 2
3
o’
A
C
N
Np
Plano xz Plano yz
o’
A
B
βx NNp
Eje x
Eje z
PLANOβx
C
o’
B
NNp
Eje y
Eje z
PLANO
βy
βy
Movimiento Resultante
Figura 3-3: Rotacion del plano
Ası mismo CA,AB,BC se pueden escribir en funcion de los angulos βx, βy y Θ de la siguiente
manera:
AB =∣∣∣ ~Np
∣∣∣ sin(βx)
BC =∣∣∣ ~Np
∣∣∣ sin(βy)
CA =∣∣∣ ~Np
∣∣∣ sin(Θ)
Reemplazando en (3-1), se obtiene que:
sin(Θ) =√sin(βx)2 + sin(βy)2
3.4 Traslacion de la bola 21
Por ultimo, dado que como se menciono al inicio del documento el analisis se realizara sobre
angulos pequenos y la ecuacion final es:
Θ =√β2x + β2
y (3-2)
De esta forma βx, βy y Θ, quedan totalmente determinados.
3.4.2. Analisis Traslacional de la Bola
Con lo anterior en mente, se iniciara el analisis a partir del modelo en una dimension y a
medida que las ecuaciones vayan apareciendo se iran extrapolando a las 3 dimensiones. De
esta manera, se partira por el planteamiento clasico del plano inclinado y la bola con base
en la Figura 3-4. Ası mismo, en esta primera parte no se incluira la rotacion de la esfera, ya
que este analisis se llevara a cabo en la siguiente seccion de este capitulo.
o’βy
βy
f
Figura 3-4: Analisis de Fuerzas para la bola en el eje x
Para el analisis se asumira que la bola estara ubicada en punto p del plano, y ası mismo este
se encuentra inclinado en un angulo βx o βy o Θ dependiendo la situacion y el planteamiento
realizado. Dicho esto, se procede a plantear la ecuacion de equilibrio energetico teniendo ası:
mb~g + ~N + ~f = mb~a (3-3)
Dado que se realizara el analisis a nivel vectorial, se tomara uno a uno los terminos de la
ecuacion (3-3) se expresaran en terminos de magnitud y direccion. Dicho esto, para la fuerza
de friccion se obtiene que:
~f = f
(−~v|v|
)= f(−v) = −f ~v
|~v|(3-4)
22 3 Modelo Analıtico
Para la fuerza normal de la bola, esta se expresara como ~N = Nn, donde n es la direccion
de la normal con respecto al plano inclinado, ası mismo, el peso de bola se expresara como
~g = gg, donde g es la direccion de la gravedad, es decir, −k y g es la magnitud de la grave-
dad.
Finalmente, para dejar todo en terminos de la velocidad de la bola, se reemplaza la acelera-
cion (~a) en terminos de la velocidad (~v).
~a =d~v
dt
Con lo cual, si se realizan los respectivos reemplazos en (3-3), esta se puede expresar como:
−f ~v|~v|
+Nn+mbgg = mbd~v
dt(3-5)
(3-5) determina el movimiento de traslacion de la bola. Sin embargo, en esta ecuacion no se
esta contemplando el hecho de que la bola esta rotando con respecto al centro de masa a me-
dida que esta avanza sobre el plano, por lo cual a continuacion se calculara el comportamiento
de la bola al rotar, y al finalizar este analisis se ligaran ambos movimientos.
3.4.3. Analisis Rotacional de la Bola
Puesto que la dinamica de la bola no se limita a trasladarse de un punto a otro sin rotar, esta
dinamica se debe incluir en el planteamiento del modelo. Para realizar este planteamiento
se inicia con el analisis de los torques que actuan sobre la bola. Para realizar este calculo,
se tomara como base la Figura 3-5, ya que en esta se pueden observar los distintos radios
existentes entre el punto fijo del sistema o eje de referencia (o′) y la posicion, en un instante
particular, de la bola sobre el plano.
El torque esta dado por la expresion ~T = ~r × ~F . Por consiguiente, se procedera a calcular
los torques para cada una de las fuerzas que actuan sobre el sistema, [8]. En este caso, el
radio del centro de masa sera el mismo que el radio de la gravedad, con lo cual el torque de
la gravedad se puede expresar como:
~Tg = ~rCM ×m~g
Sin embargo, el radio del centro de masa se puede descomponer como el radio de la normal
mas el radio de la bola con lo cual se transforma en:
~Tg = (~rN +Rr)×m~g. (3-6)
3.4 Traslacion de la bola 23
o’βy
βy
R
rn rf, rCM
mg
Figura 3-5: Torques de Sistema
Para la fuerza normal se tiene:
~TN = ~rN × ~N. (3-7)
Por ultimo, para la fuerza de friccion se tiene que va a estar dada por:
~Tf = ~rf × ~f. (3-8)
Puesto que ~f se hallo en la ecuacion 3-4 haciendo el reemplazo en 3-8 se obtiene:
~Tf = ~rf ×−f~v
|~v|.
~Tf =−f|~v|
(~rf × ~v).
Por ultimo dado que el radio de la normal y el radio de la friccion es el mismo, se obtiene:
~Tf =−f|~v|
(~rN × ~v). (3-9)
Ahora si sumamos los torques obtenidos en cada una de las ecuaciones obtenemos:
~T = ~rN × ~N +
(~−f|~v|
)~rN × ~v + (~rN +Rr)×m~g. (3-10)
24 3 Modelo Analıtico
Ahora, a causa de que el torque es equivalente a la inercia por la velocidad angular, tenemos
lo siguiente:
Id~w
dt= ~rN × ~N +
(~−f|~v|
)~rN × ~v + (~rN +Rr)×m~g. (3-11)
En este punto, se debe realizar el calculo de los torques. Para esto, se realiza el calculo del
valor de los radios, y particularmente el radio del punto de referencia al punto de contacto
P de la bola, [8], debido a que los demas radios se pueden expresar en funcion de este. Para
esto, se tomara como punto de partida la Figura 3-6.
o’βy
βy
R
rN
rCM
mg
P
Figura 3-6: Analisis del Radio de la Normal
Dado que P es un punto en un espacio tridimensional, este tendra componentes en r, θ y φ,
como se puede apreciar en la Figura 3-7. Si se hace el analisis vectorial del P punto en el
espacio, tendremos:
~r = r sin θ cos φi + r sin θ sinφj + r cos θk. (3-12)
De igual forma, la direccion normal viene dada por la expresion:
n = sin Θ = sin θ cos φi + sin θ sin φj + cos θk. (3-13)
En este caso θ y φ son los valores de los angulos en θ y φ para la normal del plano. Con
la ecuacion 3-12, se puede iniciar el reemplazo en cada una de las ecuaciones de torques.
Iniciamos con la ecuacion de torque para la gravedad:
3.4 Traslacion de la bola 25
r
P
φ θ
Eje x
Eje z
n
Figura 3-7: Analisis Espacial de P
~Tg = ~rN ×mgg +Rn×mgg.
Planteando el primer producto cruz, se tiene:
~rN ×mgg =
∣∣∣∣∣∣∣i j k
r sin θ cosφ r sin θ sinφ r cos θ
0 0 mg
∣∣∣∣∣∣∣~rN ×mgg = rmg sin θ sin φi−mgr sin θ cosφj
~rN ×mgg = rmg(sin θ sin φi− sin θ cosφj)
Para el segundo producto cruz se tiene:
Rn×mgg =
∣∣∣∣∣∣∣i j k
R sin θ cos φ R sin θ sin φ R cos θ
0 0 mg
∣∣∣∣∣∣∣Rn×mgg = mgR sin θ sin φi−mgR sin θ cos φj
Rn×mgg = mgR(sin θ sin φi−mgR sin θ cos φj)
Con lo cual se obtiene finalmente el valor de torque de la gravedad ( ~Tg),
~Tg = rmg(sin θ sin φi− sin θ cosφj) +mgR(sin θ sin φi−mgR sin θ cos φj) (3-14)
26 3 Modelo Analıtico
Ahora pasamos al torque de la normal,
~TN = ~r × ~N = (~r × n)N
~r × n =
∣∣∣∣∣∣∣i j k
r sin θcosφ r sin θ sinφ r cos θ
sin θ cos φ sin θ sin φ cos θ
∣∣∣∣∣∣∣~r × n = r sin θ sinφ cos θi + r cos θ sin θ cos φj + r sin θcosφ sin θ sin φk · · ·· · · − r cos θ sin θ sin φi− r sin θcosφ cos θj− r sin θ sinφ sin θ cos φk.
Finalmente el torque de la normal obtenido es:
~TN = N(r sin θ sinφ cos θi + r cos θ sin θ cos φj + r sin θcosφ sin θ sin φk · · ·· · · − r cos θ sin θ sin φi− r sin θcosφ cos θj− r sin θ sinφ sin θ cos φk).
(3-15)
Por ultimo, se procede a calcular el torque de la friccion(Tf ) con base en la ecuacion 3-9. Sin
embargo, antes de poder realizar el producto cruz de ~rN × ~v, es necesario realizar el calculo
de la velocidad, por lo cual tenemos:
~v =d
dt(~rCM) =
d
dt(~r + ~R) =
d
dt(~r +Rn) =
d
dt(~r) +
d
dt(Rn). (3-16)
Ahora, se procede a realizar las distintas derivadas:
d
dt(~r) =
d
dt(r sin θ cos φi + r sin θ sinφj + r cos θk).
ddt
(~r) = (r sin θ cosφ+ r cos θθ cosφ+ r sin θ(− sinφ)φ)i · · ·· · ·+ (r sin θ sinφ+ r cos θθ sinφ+ r sin θ(− cosφφ))j · · ·
· · ·+ (r cos θ + r(− sin θθ))k
d
dt(n) =
d
dt(sin θ cos φi + sin θ sin φj + cos θk)
ddt
(n) = (cos θ˙θ cos φ+ sin θ(− sin φ
˙φ))i · · ·
· · · (cos θ˙θ sin φ+ sin θ cos φ
˙φ)j− sin θk
~v = (r sin θ cosφ+ r cos θθ cosφ+ r sin θ(− sinφ)φ)i · · ·· · ·+ (r sin θ sinφ+ r cos θθ sinφ+ r sin θ(− cosφφ))j · · ·
· · ·+ (r cos θ + r(− sin θθ))k + (cos θ˙θ cos φ+ sin θ(− sin φ
˙φ))i · · ·
· · · (cos θ˙θ sin φ+ sin θ cos φ
˙φ)j− sin θk
(3-17)
En la ecuacion 3-17 se encontro la velocidad con lo cual se puede proceder a realizar el
producto cruz de la ecuacion 3-9.
~rN × ~v =
3.4 Traslacion de la bola 27
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
i j k
· · · · · · · · ·r sin θcosφ r sin θ sinφ r cos θ
· · · · · · · · ·r sin θ cosφ+ r cos θθ cosφ · · · r sin θ sinφ+ r cos θθ sinφ · · · r cos θ · · ·
· · · − r sin θ sinφφ+ cos θ˙θ cos φ · · · · · · − r sin θ cosφφ+ cos θ
˙θ sin φ · · · · · · − r sin θθ · · ·
· · · − sin θ sin φ˙φ · · ·+ sin θ cos φ
˙φ · · · − sin θ
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣~rN × ~v = (r sin θ sinφ)(r cos θ − r sin θθ − sin θ)i + (r cos θ)(r sin θ cosφ+ r cos θθ cosφ · · ·
· · · − r sin θ sinφφ+ cos θ˙θ cos φ− sin θ sin φ
˙φ)j + (r sin θcosφ)(r sin θ sinφ+ · · ·
· · ·+ r cos θθ sinφ− r sin θ cosφφ+ cos θ˙θ sin φ+ sin θ cos φ
˙φ)k− (r cos θ)(r sin θ sinφ+ · · ·
· · ·+ r cos θθ sinφ− r sin θ cosφφ+ cos θ˙θ sin φ+ sin θ cos φ
˙φ)i− (r sin θcosφ)(r cos θ − · · ·
· · · − r sin θθ − sin θ)j− (r sin θ sinφ)(r sin θ cosφ+ r cos θθ cosφ− r sin θ sinφφ+ · · ·· · ·+ cos θ
˙θ cos φ− sin θ sin φ
˙φ)k.
Tras desarrollar los productos y simplificar los terminos comunes se obtiene:
~rN × ~v = (r2 sin θ cos θ cosφφ− r2θ sinφ− r sin θ sinφ sin θ − r cos θ cos θ˙θ sin φ− · · ·
· · · − rcosθ sin θ cos φ˙φ)i + (r cos θ cos θ
˙θ sin φ+ r2θ sinφ+ r sin θ cosφ sin θ − · · ·
· · · − r2 sin θ cos θ sinφφ− r cos θ sin θ sin φ˙φ)j + (2r2(sin θ)2(sinφ)2φ− r2φ(sin θ)2 + · · ·
· · ·+ r sin θ cosφ sin θ cos φ˙φ+ r sin θ cosφ sin θ sin φ
˙φ)k.
(3-18)
Por ultimo, para obtener el valor del torque de la friccion, resta multiplicar la ecuacion
obtenida en 3-18 por −f|~v| ,donde |~v| es la magnitud de la velocidad.
~Tf = −f|~v| ((r
2 sin θ cos θ cosφφ− r2θ sinφ− r sin θ sinφ sin θ − r cos θ cos θ˙θ sin φ− · · ·
· · · − rcosθ sin θ cos φ˙φ)i + (r cos θ cos θ
˙θ sin φ+ r2θ sinφ+ r sin θ cosφ sin θ − · · ·
· · · − r2 sin θ cos θ sinφφ− r cos θ sin θ sin φ˙φ)j + (2r2(sin θ)2(sinφ)2φ− r2φ(sin θ)2 + · · ·
· · ·+ r sin θ cosφ sin θ cos φ˙φ+ r sin θ cosφ sin θ sin φ
˙φ)k).
(3-19)
3.4.4. Relacion entre Rotacion y traslacion de la Bola
En este punto del analisis, las ecuaciones de rotacion y de traslacion de la bola estan total-
mente determinadas. Por lo tanto, se debe relacionar los dos movimientos entre si y al mismo
tiempo las variables que poseen relacion entre si. Para relacionar los dos movimientos, se par-
te de la Figura 3-8. En esta se pueden apreciar las dos velocidades implıcitas en la Figura, la
primera, velocidad lineal, esta dada por el desplazamiento lineal de la bola, es decir, cuanto
avanza la bola en un tiempo t, dado que es una bola la distancia que recorre es proporcional
28 3 Modelo Analıtico
al arco recorrido de la bola. Por otro lado, la velocidad angular esta determinada por la va-
riacion angular de la bola, en la Figura 3-8 esta variacion angular se denomino dχ, con lo cual:
Figura 3-8: Relacion Velocidad Angular - Lineal
~w =dχ
dt.
Es importante mencionar que dχ, tiene implıcita en si desplazamientos tanto en θ como en
φ, y viene dada por la expresion:
dχ
dt= R
dθ
dtdθ +R sin θ
dφ
dtφ (3-20)
donde dθ denota que este desplazamiento es en direccion de θ.
Ası mismo φ denota que este desplazamiento es en direccion de φ.
Para mayor claridad de como se obtiene esta velocidad angular, se puede tomar como refe-
rencia la Figura 3-9, donde se puede apreciar con mayor claridad estas componentes para la
rotacion de la bola.
En el caso de la velocidad lineal como ya se menciono anteriormente, esta determinada por
el cambio en la posicion de la bola, con lo cual:
~v =d~l
dt,
3.5 Analisis Por Energıa y Ecuaciones de Lagrange 29
φ
dφ
ρρ’
dθ
θ
r
r’
Eje x
Eje z
P
φ dφ
ρ
ρ’
i
j
j
k
θ
dθ r
r’
xy
yz
Figura 3-9: Analisis Espacial de los Movimientos la Bola
donde d~l es desplazamiento lineal de la bola. Dado que d~l se puede expresar es proporcional
al arco recorrido la velocidad lineal se puede escribir ası:
~v =d~l
dt= ~R
dθ
dt+ ~R sin θ
dφ
dt. (3-21)
Si bien en este punto se podrıa decir que el analisis esta casi completo, ya que resta igualar
o reemplazar las ecuaciones de velocidad lineal en las de velocidad angular o viceversa, la
complejidad resultante del planteamiento de cada una de estas no permite llevar a cabo el
reemplazo de una manera sencilla. Por el contrario, se deben hacer demasiados reemplazos y
aproximaciones para tratar de realizar este proceso, lo cual puede llevar a que el modelamien-
to pierda en exactitud. Debido a esto, algunas partes de lo planteado en las dos anteriores
secciones del documento se empleara como base para plantear el sistema mediante energıas.cos(p) sin(t)+R (cos(pn) cos(tn)−sin(pn) sin(tn))+r cos(p) cos(t)−r sin(p) sin(t)√
|v|2sin(p) sin(t)+R (cos(pn) sin(tn)+cos(tn) sin(pn))+r cos(p) sin(t)+r cos(t) sin(p)√
|v|2
−R sin(tn)−cos(t)+r sin(t)√|v|2
(3-22)
3.5. Analisis Por Energıa y Ecuaciones de Lagrange
Se asumen las siguiente simplificaciones:
30 3 Modelo Analıtico
la esfera no se deslizara sobre el plano
la esfera es completamente simetrica y homogenea
Todas las fricciones se asumen despreciables
La esfera y el plano estan en contacto todo el tiempo
Las ecuaciones de Euler Lagrange del sistema esfera y plano son de la forma :
d
dt
(∂L
∂qi
)− ∂L
∂qi= Qi. (3-23)
Donde L es el Lagrangiano y L = K−U , siendo K la energıa cinetica, U la energıa potencial.
Qi es la fuerza compuesta actuando en la coordenada particular y qi es cada una de las
coordenadas generalizadas utilizadas para modelar el sistema y analogas a los grados de
libertad del sistema. Lo anterior dado que la posicion de la esfera puede ser expresada en
funcion de sus coordenadas x, y en el plano y el plano solo podra tener inclinacion respecto
al eje x, (βx) y al eje y, (βy). El centro del plano es asumido como el punto (0, 0).
Teniendo en cuenta lo anterior, podemos considerar la energıa cinetica de la bola como una
combinacion de la energıa rotacional y traslacional de la misma.
Kb =1
2mbv
2b +
1
2IbΩ
2b . (3-24)
donde mb es la masa de la esfera,Ib es la inercia de la esfera, v2 es la velocidad lineal de la bola
y Ω es la velocidad rotacional de la esfera. Se define la velocidad traslacional y rotacional en
cada una de los componentes de movimiento de la esfera sobre el plano, [9]:
v2b = x2 + y2 (3-25)
Ω2 = ω2x + ω2
y. (3-26)
donde x es la velocidad lineal de la esfera en el plano x y y es la velocidad lineal de la esfera en
el plano y. Ademas, se establecen relaciones entre las velocidades rotacionales en los planos
x y y ωx y ωy respectivamente, con las velocidades lineales en cada plano. Entonces
ωx =x
r(3-27)
ωy =y
r. (3-28)
lo que implica que:
Ω2 =x2
r2+y2
r2. (3-29)
Por lo tanto, la energıa cinetica de la bola quedarıa definida como:
3.5 Analisis Por Energıa y Ecuaciones de Lagrange 31
Kb = 12mb (x2 + x2) + 1
2Ibr2
(x2 + x2).
Kb =1
2
(mb +
Ibr2
)(x2 + y2
). (3-30)
la energıa cinetica del plano, considerando la bola como una masa puntual ubicada en (x, y),
consiste en la energıa rotacional del plano respecto a su centro de masa
Kp =1
2(Ip + Ib)
(β2x + β2
y
)+
1
2mb (xβx + yβy)
2 . (3-31)
donde βx es la inclinacion respecto al eje x y βy es la inclinacion respecto al eje y. Por lo que
βx y βx son las velocidades rotacionales del plano. La energıa potencial de la esfera relativa
al plano horizontal en el centro del plano (x = 0y = 0) puede ser calculada como:
Ub = mbgH = mbg (x sin βx + y sin βy) . (3-32)
Por lo que el Lagrangiano del sistema sera:
L = Kb +Kp − Ub
donde Kb viene de (3-30) Kp de (3-31) y Ub de (3-32). Entonces, el Lagrangiano dependera de
las cuatro coordenadas generalizadas x, y, βx, βy.
d
dt
(∂L
∂x
)− ∂L
∂x= 0
d
dt
(∂L
∂y
)− ∂L
∂y= 0
d
dt
(∂L
∂βx
)− ∂L
∂βx= τx
d
dt
(∂L
∂βy
)− ∂L
∂βy= τy
32 3 Modelo Analıtico
Ahora se procedera a desarrollar cada una de las ecuaciones.
∂L
∂x=
(mb +
Ibr2
)x
d
dt
(∂L
∂x
)=
(mb +
Ibr2
)x
∂L
∂x= mb
(xβx + yβy
)βx −mbg sin βx
∂L
∂y=
(mb +
Ibr2
)y
d
dt
(∂L
∂y
)=
(mb +
Ibr2
)y
∂L
∂y= mb
(xβx + yβy
)βy −mbg sin βy
∂L
∂βx= (Ip + Ib) βx +mbx
2βx +mbxyβy
d
dt
(∂L
∂βx
)= (Ip + Ib) βx + 2mbxβxx+mbx
2βx +mbxyβy +mbxyβy +mbxyβy
∂L
∂βx= −mbgx cos βx
∂L
∂βy= (Ip + Ib) βy +mby
2βy +mbxyβx
d
dt
(∂L
∂βy
)= (Ip + Ib) βy + +mbxyβx+mbxyβx+mbxyβx+ 2mbyyβy +mby
2βy
∂L
∂βy= −mbgy cos βy
Ahora, se procede a reemplazar los resultados en las ecuaciones de movimiento en cada una
de las coordenadas generalizadas, [9].(mb +
Ibr2
)x−mb
(xβx + yβy
)βx +mbg sin βx = 0. (3-33)
(mb +
Ibr2
)y −mb
(xβx + yβy
)βy +mbg sin βy = 0 (3-34)
(Ip + Ib) βx + 2mbxβxx+mbx2βx+
mbxyβy +mbxyβy +mbxyβy +mbgx cos βx = τx(3-35)
(Ip + Ib) βy + +mbxyβx+mbxyβx+
mbxyβx+ 2mbyyβy +mby2βy +mbgy cos βy = τy.
(3-36)
3.5 Analisis Por Energıa y Ecuaciones de Lagrange 33
Una vez se tiene las ecuaciones del movimiento, definiremos las variables de estado del
sistema.
x = x1 x = x2 βx = x3 βx = x4 u1 = τx
y = x5 y = x6 βy = x7 βy = x8 u2 = τy .
Por lo cual, se procede a escribir el modelo del sistema con sus variables de estado , tomando
la siguiente notacion para simplificar la escritura de las ecuaciones, [2].
E =mb
mb + Ib/r2bF =
mb
Ib + Ip +mbx21G =
mb
Ib + Ip +mbx25.
x1 = x2 (3-37)
x2 =(x1x
24 + x5x4x8 − g sinx3
)E (3-38)
x3 = x4 (3-39)
x4 = (−2x1x2x4 − x2x5x8 − x1x6x8 − x1x5x8 − gx1 cosx3)F+τx
Ib + Ip +mbx21(3-40)
x5 = x6 (3-41)
x6 =(x1x4x8 + x5x
28 − g sinx7
)E (3-42)
x7 = x8 (3-43)
x8 = (−2x5x6x8 − x2x5x4 − x1x6x4 − x1x5x4 − gx5 cosx7)G+τy
Ib + Ip +mbx25(3-44)
Capıtulo 4
Sensado e Interfaces Grafica
En el transcurso de este capıtulo, se explicara como se realizo el sensado de la posicion de la
esfera sobre el plano y la forma mediante la cual se realizo la integracion del sensado con los
demas elementos del sistema (Figura 4-1). Finalmente, es importante aclarar que tanto los
fragmentos de codigo, como las figuras mostradas a lo largo de este capıtulo corresponden
desarrollos implementados en Matlab.
Figura 4-1: Elementos del Sistema
4.1. Sensor
El sensado de la posicion de la esfera sobre el plano se desarrollo un Script para realizar este
proceso. A continuacion, se muestran cada una de las secciones implementadas dentro del
script y se explica su funcion dentro de este; la primer parte del Script es la encargada de
establecer la conexion entre Matlab y la camara web conectada al computador, en el Script
4.1 se puede apreciar el fragmento del codigo donde se realiza este proceso. Sin embargo,
36 4 Sensado e Interfaces Grafica
en este Script esta incluida la adaptacion del codigo para que funcione en conjunto con las
demas partes del sistema, es decir, el codigo implementado dentro de la interface grafica, [7].
Script 4.1: Inicializacion camara web en Matlab
1 % se crea objeto de video
2 handles.video = videoinput(’winvideo ’, handles.idDevicecamara , handles.
resSel);
3 % Se definen las propiedades del objeto video
4 handles.video.ReturnedColorSpace = ’rgb’;
5 handles.video.Timeout = 1;
6 triggerconfig(handles.video ,’manual ’);
7 handles.video.FramesPerTrigger = Inf; % Captura imagenes hasta que se
detiene manualmente la camara
8 set(handles.startEndpshBton ,’String ’,’Finalizar Simulacion ’); %
Actualizacion de valor en la interface
9 guidata(hObject , handles);
10 % Se inicia el video
11 start(handles.video);
12 % Ajuste propiedades para visualizacion Interface
13 vidRes = get(handles.video , ’VideoResolution ’);
14 nBands = get(handles.video , ’NumberOfBands ’);
15 hImage = image(zeros(vidRes (2), vidRes (1), nBands), ’Parent ’,handles.
axes1);
16 % Se muestra en la interface
17 preview(handles.video ,hImage);
Dentro de este Script es necesario aclarar las variables handles.idDevicecamara , hand-
les.resSel y handles.axes1, ya que son elementos que hacen parte de la interfaz grafica
desarrollada o informacion obtenida a traves de esta. En la Figura 4-2, se puede apreciar
la interfaz desarrollada en el panel 1 se encuentran los parametros iniciales del sistema y
es precisamente de este donde se heredan algunos de los valores de estas variables. En el
caso de handles.idDevicecamara, corresponde al valor seleccionado en la segunda lista
que aparece en la interfaz, y mas especıficamente a la identificacion dentro de Matlab de la
camara web seleccionada. handles.resSel corresponde al valor de la resolucion seleccionada
en la tercer lista del primer panel. Por ultimo, handles.axes1 corresponde a la grafica donde
se muestra la imagen dentro de la interfaz, que en este caso corresponde a la primera grafica
del panel 3.
Tras capturar la imagen obtenida de la camara o en este caso el vıdeo, lo que se debe hacer
es procesar el vıdeo o imagen obtenida para determinar la posicion de la bola sobre el plano.
De esta forma en el Script 4.2, se puede apreciar la manera mediante la cual se procesan uno
a uno los frames o imagenes obtenidas mediante la camara.
4.2 Set Point 37
Script 4.2: Procesamiento Video
1 data1=getsnapshot(handles.video); % Captura una imagen del video
2 data=imcomplement(data1); % Realiza el complemento de la imagen
3 diff_im = imsubtract(data (:,:,3), rgb2gray(data)); % Extrae color verde
imagen capturada
4 x1 = medfilt2(diff_im , [3 3]); % Elimina ruido
5 x = im2bw(x1 ,0.1); % Convierte la imagen blanco y negro
6 axes(handles.axes2);
7 imshow (~x); % Muestra la imagen
8 handles.stats = regionprops(x,’BoundingBox ’, ’Centroid ’); %Calcula el
centro de la imagen resultante tras los filtros
9 handles.bb = handles.stats (1).BoundingBox; % Calcula posicion objeto
detectado
10 handles.bc = handles.stats (1).Centroid; % Calcula el centro del objeto
detectado
11 rectangle(’Position ’,handles.bb,’EdgeColor ’,’r’,’LineWidth ’ ,2) % Rodea el
objeto con una rectangulo rojo
12 handles.bx = (round(handles.bc(1))) -80; % Obtiene la posicion del objeto
en x con respecto al sistema de referencia
13 handles.by = 60-( round(handles.bc(2))); % Obtiene la posicion del objeto
en y con respecto al sistema de referencia
14 if(num2str(handles.bx))
15 set(handles.edit3 ,’String ’, handles.bx); % Publica la posicion en X
en la interface
16 else
17 set(handles.edit3 ,’String ’, 0);
18 end
19 if(num2str(handles.by))
20 set(handles.edit4 ,’String ’, handles.by); % Publica la posicion en Y en
la interface
21 else
22 set(handles.edit4 ,’String ’, 0);
23 end
4.2. Set Point
El set point se captura mediante la interfaz grafica desarrollada y corresponde a los valores
pasados en el primer panel de la seccion 4 de la Figura 4-2. En el Script 4.3, se puede apreciar
el metodo mediante la cual se captura el valor de x, para la captura de y se realiza el mismo
proceso con el origen del valor de y como unico cambio.
Script 4.3: Captura Set Point
1 function edit1_Callback(hObject , eventdata , handles)
2 % hObject handle to edit1 (see GCBO)
3 % eventdata reserved - to be defined in a future version of MATLAB
38 4 Sensado e Interfaces Grafica
4 % handles structure with handles and user data (see GUIDATA)
5
6 % Hints: get(hObject ,’String ’) returns contents of edit1 as text
7 % str2double(get(hObject ,’String ’)) returns contents of edit1 as a
double
8
9 val = get(hObject ,’String ’); % Captura el valor escrito en el campo de X
10
11 ud =get(gcbf ,’UserData ’); % Obtiene la informacion almacenada en UserData
de la interface
12 if str2num(val) % Evalua si el set point desado es numerico
13 ud.editfield = str2num(val);
14 else % Si no es numero por defecto coloca 0
15 ud.editfield = 0;
16 end
17 set(gcbf ,’UserData ’,ud) ; % Actualiza userdata
Si bien en este punto se podrıa entrar a analizar el funcionamiento del procesamiento de la
informacion obtenida en las primeras secciones del capitulo, antes de eso se hara un repaso
de los demas componentes de la interfaz grafica y su funcionalidad.
4.3. Interface Grafica
El objetivo de la interfaz grafica es juntar en un solo entorno los distintos datos y funcio-
nalidades necesarias para el correcto funcionamiento del sistema completo. De esta forma,
dentro de esta se lleva a cabo la integracion de los modulos de la Figura 4-1, y los medios
de comunicacion necesario para la interaccion entre los distintos elementos.
Cuando se crea una interfaz grafica dentro de Matlab, se generan dos archivos, en este caso
los archivos generados fueron planoBola.m y planoBola.fig, los cuales corresponden al
codigo que se ejecuta al realizar alguna accion sobre la interfaz y a la interfaz misma, [7].
Puesto que la interfaz grafica corresponde a la Figura 4-2,nos toca aclarar que informacion se
dispuso en cada uno de los cuadrantes enmarcados en esta figura. Sin embargo, en el caso de
planoBola.m se explicara a mayor profundidad algunas secciones del codigo fundamentales
para correcto funcionamiento del sistema.
En la Figura 4-2, se muestra la interfaz implementada dividida en 4 cuadrantes distribuidos
de la siguientes manera: el primer cuadrante, corresponde a la informacion inicial requerida
para que el sistema arranque, la cual a su vez se distribuye ası, en el primer listbox se pide
el puerto serial a traves del cual se envıa la informacion al micro-controlador (Arduino Uno)
que a su vez esta conectado a los servomotores. En el segundo listbox, se pide seleccionar la
camara web mediante la cual se realiza el sensado de la posicion de bola sobre el plano. En
4.3 Interface Grafica 39
Figura 4-2: Interface Grafica Segmentada
el tercer listbox, se pide la informacion de la resolucion con la cual la camara web realizara
la captura de la imagen.
El segundo cuadrante, corresponde al panel mediante el cual se puede especificar con cual
tecnica de control se desea que el sistema opere. En este caso, las tecnicas implementadas
dentro del sistema son un control de logica difusa (control fuzzy) y un control proporcional-
derivativo-integral (PID), ya que estas tecnicas actuan bajo una logica particular, esta
sera explicada en el capitulo 5.
En el tercer cuadrante, se ubico la informacion entregada por la camara web en dos graficas.
En la primera, se puede visualizar la captura original de la camara web, mientras que en la
segunda grafica se puede apreciar la trayectoria que describe la bola sobre el plano mientras
este se encuentra en accion.
Por ultimo en el cuarto cuadrante, se encuentra tanto informacion de entrada como de
salida, distribuida ası, de entrada se tiene el panel llamado set point donde se fija el set
point del sistema, mientras que los paneles posicion actual esfera y salida controlador son
la entrada y salida del controlador respectivamente. Por ultimo, es importante mencionar
que dentro de la interfaz se implemento tambien un boton de inicio y fin de los elementos
externos (puerto serial y camara web ) y un boton tipo checkbox, el cual aparece una vez se
40 4 Sensado e Interfaces Grafica
inicializa los elementos externos, el cual inicia el procesamiento de las imagenes obtenidas
por la camara. Con esto se completarıa el detalle grafico de la interfaz con lo cual se puede
proceder con la explicacion del codigo implementado.
4.3.1. Inicializacion de la Interface
La inicializacion de la interfaz se realiza mediante codigo auto-generado por Matlab, el cual
se genera de manera automatica cuando se crea una nueva Figura (interface grafica). En el
script 4.4, se puede apreciar el codigo que se genero de manera automatica cuando se creo la
figura. Adicionalmente, este codigo (funcion) generada toma el mismo nombre que el nombre
del la interfaz grafica que se crea. Sin embargo, cambia la extension de .fig a .m, y en caso
de que alguno de los dos no exista la interfaz o el codigo generado no funcionara.
Script 4.4: Inicializacion de la Interface
1 function varargout = planoBola(varargin)
2 % PLANOBOLA MATLAB code for planoBola.fig
3 % PLANOBOLA , by itself , creates a new PLANOBOLA or raises the
existing
4 % singleton *.
5
6 %
7 % H = PLANOBOLA returns the handle to a new PLANOBOLA or the handle
to
8 % the existing singleton *.
9 %
10 % PLANOBOLA(’CALLBACK ’,hObject ,eventData ,handles ,...) calls the local
11 % function named CALLBACK in PLANOBOLA.M with the given input
arguments.
12 %
13 % PLANOBOLA(’Property ’,’Value ’ ,...) creates a new PLANOBOLA or raises
the
14 % existing singleton *. Starting from the left , property value pairs
are
15 % applied to the GUI before planoBola_OpeningFcn gets called. An
16 % unrecognized property name or invalid value makes property
application
17 % stop. All inputs are passed to planoBola_OpeningFcn via varargin.
18 %
19 % *See GUI Options on GUIDE ’s Tools menu. Choose "GUI allows only
one
20 % instance to run (singleton)".
21 %
22 % See also: GUIDE , GUIDATA , GUIHANDLES
23
24 % Edit the above text to modify the response to help planoBola
4.3 Interface Grafica 41
25
26 % Last Modified by GUIDE v2.5 18-Apr -2016 18:21:33
27
28 % Begin initialization code - DO NOT EDIT
29 gui_Singleton = 1;
30 gui_State = struct(’gui_Name ’, mfilename , ...
31 ’gui_Singleton ’, gui_Singleton , ...
32 ’gui_OpeningFcn ’, @planoBola_OpeningFcn , ...
33 ’gui_OutputFcn ’, @planoBola_OutputFcn , ...
34 ’gui_LayoutFcn ’, [] , ...
35 ’gui_Callback ’, []);
36 if nargin && ischar(varargin 1)
37 gui_State.gui_Callback = str2func(varargin 1);
38 end
39
40 if nargout
41 [varargout 1: nargout ] = gui_mainfcn(gui_State , varargin :);
42 else
43 gui_mainfcn(gui_State , varargin :);
44 end
45 % End initialization code - DO NOT EDIT
4.3.2. Inicializacion de los elementos
En este caso, la inicializacion de los objetos se realiza en tres etapas, la primera que es la
mostrada en el Script 4.5, donde se cargan los valores de los puertos seriales disponibles y
las camaras web disponibles. Sin embargo, la resolucion se actualiza una vez se escoge la
camara ya que depende de esta.
Script 4.5: Inicializacion de listbox
1 % --- Executes just before planoBola is made visible.
2 function planoBola_OpeningFcn(hObject , eventdata , handles , varargin)
3 % This function has no output args , see OutputFcn.
4 % hObject handle to figure
5 % eventdata reserved - to be defined in a future version of MATLAB
6 % handles structure with handles and user data (see GUIDATA)
7 % varargin command line arguments to planoBola (see VARARGIN)
8 % Choose default command line output for planoBola
9 handles.output = hObject;
10 handles.puertos = scanports (); %Se escanean los puertos seriales
disponibles
11 handles.nPuertos = length(handles.puertos); %Se calcula la cantidad de
seriales encontrados
12 %% Muestra los puertos Seriales disponible
13 set(handles.serialListBox , ’String ’, ...
14 [’Seleccione Puerto ’ ; handles.puertos ]);
42 4 Sensado e Interfaces Grafica
15 set(handles.serialListBox , ’Value’,handles.nPuertos); % Se publican los
puertos seriales encontrados en el serialListBox
16
17 %% Se inicia con el escaneo de web cams presentes en el PC
18 idCamaras = imaqhwinfo(’winvideo ’,’DeviceIDs ’); % se calcula el numero de
elementos disponibles
19 handles.nCamaras = length(idCamaras); %Se calcula la cantidad de camaras
disponibles
20 infoCamara = imaqhwinfo(’winvideo ’,’DeviceInfo ’);
21 x = struct(’nombres ’,infoCamara.DeviceName );
22 y = struct2cell(x’);
23 %% Muestra las camaras disponibles para captura de video
24 set(handles.camaraListBox , ’String ’, ...
25 [’Seleccione Camara ’ ; y’]);
26 set(handles.camaraListBox , ’Value’,handles.nCamaras); % Se publican las
camaras disponibles
27
28 %% Muestra los formatos disponibles de captura de video
29 set(handles.resolucionListBox , ’String ’, ...
30 ’Seleccione Resolucion Camara ’ ); %; camaraFormatos ’
31 set(handles.resolucionListBox , ’Value’, 1); %Se publica las resoluciones
disponbles para las camaras.
32 % Update handles structure
33 guidata(hObject , handles);
La segunda etapa ocurre una vez se selecciona la camara web y ocurre como un evento al
seleccionar la camara web en el segundo listbox. En el Script 4.6, se puede apreciar la forma
mediante la cual se actualizan los valores de las resoluciones de la camara. En el tercer
listbox, tras seleccionar una camara web en el segundo listbox, ası mismo cuenta con un
control de error en caso de que la resolucion seleccionada no sea valida.
Script 4.6: Inicializacion Resoluciones
1 % --- Executes on selection change in camaraListBox.
2 function camaraListBox_Callback(hObject , eventdata , handles)
3 % hObject handle to camaraListBox (see GCBO)
4 % eventdata reserved - to be defined in a future version of MATLAB
5 % handles structure with handles and user data (see GUIDATA)
6
7 % Hints: contents = cellstr(get(hObject ,’String ’)) returns camaraListBox
contents as cell array
8 % contentsget(hObject ,’Value ’) returns selected item from
camaraListBox
9 numCamara = get(handles.camaraListBox , ’Value ’);
10 if numCamara == 1
11 errordlg(’Error al seleccionar resolucion ’);
12 else
4.3 Interface Grafica 43
13 %%Captura camara Seleccionada
14 try
15 handles.camList = get(handles.camaraListBox , ’String ’);
16 handles.camSel = handles.camListnumCamara ;
17 idCamaras = imaqhwinfo(’winvideo ’,’DeviceIDs ’);
18 handles.nCamaras = length(idCamaras);
19 i=1;
20 infoCamara = imaqhwinfo(’winvideo ’,i);
21 handles.nombreCamara = infoCamara.DeviceName;
22 if(strcmp(handles.nombreCamara ,handles.camSel)==1)
23 handles.idDevicecamara = infoCamara.DeviceID;
24 handles.suportFormat = infoCamara.SupportedFormats;
25 handles.cantResol = length(handles.suportFormat);
26 set(handles.resolucionListBox , ’String ’, ...
27 [’Seleccione Camara ’ ; handles.suportFormat ’]);
28 set(handles.resolucionListBox , ’Value’,handles.cantResol);
29 guidata(hObject , handles);
30 else
31 i=i+1;
32 infoCamara = imaqhwinfo(’winvideo ’,i);
33 handles.nombreCamara = infoCamara.DeviceName;
34 handles.idDevicecamara = infoCamara.DeviceID;
35 handles.suportFormat = infoCamara.SupportedFormats;
36 handles.cantResol = length(handles.suportFormat);
37 set(handles.resolucionListBox , ’String ’, ...
38 [’Seleccione Camara ’ ; handles.suportFormat ’]);
39 set(handles.resolucionListBox , ’Value’,handles.cantResol);
40 guidata(hObject , handles); %update view
41 end
42 catch
43 errordlg(’Error al seleccionar resolucion ’);
44 end
45 end
La tercera etapa ocurre cuando se pulsa el boton iniciar simulacion de la interfaz grafica.
Para entender mejor como funciona, la interaccion entre el usuario y el codigo que esta
implementado en el boton se puede saltar directamente a al subseccion 4.3.4, donde se
explica a profundidad el codigo implementado dentro del boton. Por lo pronto es importante
aclarar que en esta etapa lo que realiza es el establecimiento de la comunicacion entre Matlab
y los perifericos (El microcontrolador y La camara web).
4.3.3. Retorno de Variables
Esta seccion del codigo al igual que las primera siempre aparecen en una interfaz de Matlab, y
hace parte de la estructura basica de cualquier interfaz generada en Matlab. Particularmente
en esta seccion, se definen los retornos que se van a realizar desde la interfaz hacia el comando
44 4 Sensado e Interfaces Grafica
de linea de Matlab. En este caso, no se definio ningun retorno por lo cual se dejan los
parametros por defecto que asigna Matlab.
Script 4.7: Retorno de Variables
1 % --- Outputs from this function are returned to the command line.
2 function varargout = pruebaFinal_OutputFcn(hObject , eventdata , handles)
3 % varargout cell array for returning output args (see VARARGOUT);
4 % hObject handle to figure
5 % eventdata reserved - to be defined in a future version of MATLAB
6 % handles structure with handles and user data (see GUIDATA)
7 % Get default command line output from handles structure
8 handles.output = hObject;
9 varargout 1 = handles.output;
4.3.4. Callbacks
Un Callback es el metodo mediante el cual se asigna una accion/reaccion a una interac-
cion entre el usuario y la interfaz grafica en Matlab, dicha interaccion, se puede llevar a
cabo mediante botones, barras de desplazamiento, cuadros de texto, entre otros. Ası mis-
mo, estas interacciones generalmente producen un resultado visible dentro del sistema, en
este caso se tiene que dentro de la interfaz se creo un boton, el cual se nombro se nombro
startEndpshBton, este se encarga de activar o desactivar todos lo perifericos del sistema. Sin
embargo, en esta etapa aun no realiza la captura y procesamiento de los datos del sistema.
Script 4.8: Inicio/Fin Simulacion
1 % --- Executes on button press in startEndpshBton.
2 function startEndpshBton_Callback(hObject , eventdata , handles)
3 % hObject handle to startEndpshBton (see GCBO)
4 % eventdata reserved - to be defined in a future version of MATLAB
5 % handles structure with handles and user data (see GUIDATA)
6 mystring = get(hObject ,’String ’);
7 if strcmp(mystring ,’Iniciar Simulacion ’);
8 %% Inicializa la comunicacion Serial
9 serPortn = get(handles.serialListBox , ’Value ’);
10 if serPortn == 1
11 errordlg(’Select valid COM port’);
12 set(handles.startEndpshBton ,’String ’,’Iniciar Simulacion ’);
13 else
14 serList = get(handles.serialListBox ,’String ’);
15 serPort = serListserPortn ;
16 handles.s = serial(serPort);
17 set(handles.s,’DataBits ’ ,8);
18 set(handles.s,’StopBits ’ ,1);
19 set(handles.s,’BaudRate ’ ,9600);
4.3 Interface Grafica 45
20 set(handles.s,’Parity ’,’none’);
21 guidata(hObject , handles);
22 try
23 fopen(handles.s);
24 guidata(hObject , handles);
25 catch
26 errordlg(’No se pudo establecer comunicacion con el puerto
Serial seleccionado ’);
27 end
28
29 end
30 %% Termina la inicializacion del la comunicacion Serial
31 %% Inicia Seleccion camara
32 numCamara = get(handles.camaraListBox , ’Value ’);
33 if numCamara == 1
34 errordlg(’Seleccione Camara Valida ’);
35 set(handles.startEndpshBton ,’String ’,’Iniciar Simulacion ’);
36 else
37 %%Captura camara Seleccionada
38 try
39 handles.camList = get(handles.camaraListBox , ’String ’);
40 handles.camSel = handles.camListnumCamara ;
41 idCamaras = imaqhwinfo(’winvideo ’,’DeviceIDs ’);
42 handles.nCamaras = length(idCamaras);
43 i = 1;
44 infoCamara = imaqhwinfo(’winvideo ’,i);
45 handles.nombreCamara = infoCamara.DeviceName;
46 if (strcmp(handles.camSel ,handles.nombreCamara) == 1)
47 handles.idDevicecamara = infoCamara.DeviceID;
48 guidata(hObject , handles);
49 else
50 i=i+1;
51 infoCamara = imaqhwinfo(’winvideo ’,i);
52 handles.idDevicecamara = infoCamara.DeviceID;
53 guidata(hObject , handles);
54
55 end
56 %% Termina seleccion de la camara
57 %% Inicia captura resolucion camara
58 handles.numResolucion = get(handles.resolucionListBox , ’Value’
);
59 if handles.numResolucion == 1
60 errordlg(’Seleccione Resolucion Valida ’);
61 set(handles.startEndpshBton ,’String ’,’Iniciar Simulacion ’)
;
62 else
63 try
64 handles.resList = get(handles.resolucionListBox , ’
46 4 Sensado e Interfaces Grafica
String ’);
65 handles.resSel = handles.resListhandles.numResolucion
;
66 guidata(hObject , handles);
67 %% Termina captura resolucion camara seleccionada
68 %% Se crea el objeto video
69 handles.video = videoinput(’winvideo ’, handles.
idDevicecamara , handles.resSel);
70 handles.video.ReturnedColorSpace = ’rgb’;
71 handles.video.Timeout = 1;
72 %handles.video.ROIPosition = [18 0 120 120];
73 triggerconfig(handles.video ,’manual ’);
74 handles.video.FramesPerTrigger = Inf; % Capture frames
until we manually stop it
75 set(handles.startEndpshBton ,’String ’,’Finalizar
Simulacion ’);
76 guidata(hObject , handles);
77 %% Se inicia el video
78 start(handles.video);
79 vidRes = get(handles.video , ’VideoResolution ’);
80 nBands = get(handles.video , ’NumberOfBands ’);
81 hImage = image(zeros(vidRes (2), vidRes (1), nBands), ’
Parent ’,handles.axes1);
82 preview(handles.video ,hImage);
83 guidata(hObject , handles);
84 h=findobj(’Tag’,’capturaChkBox ’);
85 set(h,’Visible ’,’on’);
86 guidata(hObject , handles); %update view
87 %% Termina inicializacion video
88 catch
89 stop(handles.video);
90 closepreview(handles.video);
91 set(handles.startEndpshBton ,’String ’,’Iniciar
Simulacion ’);
92 guidata(hObject , handles);
93 end
94 end
95 catch
96 errordlg(’Error al iniciar la simulacion no se conecto algun
elemento necesario para la simulacion ’);
97 end
98 end
99
100 elseif strcmp(mystring ,’Finalizar Simulacion ’)
101
102 stop(handles.video);
103 closepreview(handles.video);
104 set(handles.startEndpshBton ,’String ’,’Iniciar Simulacion ’);
4.3 Interface Grafica 47
105 guidata(hObject , handles);
106
107 else
108 warning(’Unrecognized string for startEndpshBton_Callback ’)
109 end
Si bien el funcionamiento de boton startEndpshBton parece complejo, dentro del Script 4.8
la seccion comprendida entre las lineas 64 y 83 se explico en los Scripts 4.1 y 4.2. Por otra
parte, en el segmento comprendido entre las lineas 15 y 28 se realiza la inicializacion del
puerto serial. Por ultimo, antes de iniciar el puerto serial existe una validacion de los valores
seleccionados en cada uno de los listbox, de tal manera, que en caso de que se seleccione
un valor invalido este muestra un mensaje en pantalla pidiendo una seleccion valida con el
objetivo de poder inicial los perifericos.
Dentro de los callbacks, tambien se implementaron dos botones mas, los cuales son visibles
en la interfaz grafica, y un checkbox que aparece una vez se inician los perifericos, es decir,
cuando se pulsa el boton de inicio de la simulacion. En el caso de los botones, uno se encarga
de escribir la puerto serial informacion en el puerto serial para que esta sea tomada por el
microcontrolador. En el Script 4.10, se puede apreciar el codigo que se implemento, y ya
que este es invisible al usuario este se ejecuta de manera automatica mediante un funcion de
Simulink, el otro boton invisible es el encargado capturar y procesar las imagenes obtenidas
a traves de la camara web, de tal manera que dentro del flujo del programa esta pueda ser
utilizada. En el Script 4.9, se puede apreciar el codigo mediante el cual se realiza este proceso.
Por ultimo, el checkbox funciona de tal manera que este se vuelve visible en el momento en
que el usuario ya configuro los perifericos del sistema y pulsa el boton de inicio de simulacion.
Es importante mencionar que en el momento en que se pulsa checkbox, es en ese instante de
tiempo que los dos botones invisibles inician a trabajar dentro del flujo del programa.
Script 4.9: Captura y Procesamiento Datos Camara
1 % --- Executes on button press in capturaPosActualPushBtn.
2 function capturaPosActualPushBtn_Callback(hObject , eventdata , handles)
3 % hObject handle to capturaPosActualPushBtn (see GCBO)
4 % eventdata reserved - to be defined in a future version of MATLAB
5 % handles structure with handles and user data (see GUIDATA)
6
7 data1=getsnapshot(handles.video);
8 data=imcomplement(data1);
9 diff_im = imsubtract(data (:,:,3), rgb2gray(data));
10 x1 = medfilt2(diff_im , [3 3]);
11 x = im2bw(x1 ,0.1); %original amarillo
12 axes(handles.axes2);
13 imshow (~x);
14 handles.stats = regionprops(x,’BoundingBox ’, ’Centroid ’);
48 4 Sensado e Interfaces Grafica
15 handles.bb = handles.stats (1).BoundingBox; %stats (1)
16 handles.bc = handles.stats (1).Centroid;
17 rectangle(’Position ’,handles.bb,’EdgeColor ’,’r’,’LineWidth ’ ,2)
18 handles.bx = (round(handles.bc(1))) -80;
19 handles.by = 60-( round(handles.bc(2)));
20 if(num2str(handles.bx))
21 set(handles.edit3 ,’String ’, handles.bx);
22 else
23 set(handles.edit3 ,’String ’, 0);
24 end
25 if(num2str(handles.by))
26 set(handles.edit4 ,’String ’, handles.by);
27 else
28 set(handles.edit4 ,’String ’, 0);
29 end
30
31 guidata(hObject , handles); %update view
Script 4.10: Escritura Puerto Serial
1 % --- Executes on button press in escribeSeriaPushBtn.
2 function escribeSeriaPushBtn_Callback(hObject , ~, handles)
3 % hObject handle to escribeSeriaPushBtn (see GCBO)
4 % eventdata reserved - to be defined in a future version of MATLAB
5 % handles structure with handles and user data (see GUIDATA)
6 %%Captura los valores que retorna el controlador y los escribe en el
puerto
7 %%Serial y en el edit9
8 handles.val1 = get(handles.edit5 ,’String ’); %returns contents of edit1 as
a double
9 handles.val2 = get(handles.edit6 ,’String ’); %returns contents of edit1 as
a double
10 handles.p1=strcat(handles.val1 ,’a’);
11 handles.p2=strcat(handles.p1 ,handles.val2);
12 fprintf(handles.s,’ %s’,handles.p2); % se envia un dato de tipo entero sin
signo de 8 bits , por el objeto ps
13 guidata(hObject , handles); %update view
14 %%Termina de escribir
Ademas de los callbacks, los cuales se explicaron en esta parte del capıtulo, tambien es ne-
cesario explicar el metodo empleado para establecer la comunicacion entre la interfaz grafica
de Matlab(GUI) y Simulink, ya que en Simulink donde se implementaron los controladores.
4.3.5. Comunicacion entre Simulink - Interface Grafica
Dentro de la interfaz grafica interactuan directamente con Simulink, el set point, la posicion
en x y y de la bola sobre el plano y la salida de los controladores, es decir los cuadrantes 2
4.3 Interface Grafica 49
y 4 de la Figura 4-2. Por ejemplo, en el caso de la seleccion del controlador, en el momento
que se selecciona un tipo de control u el otro, en Simulink se realiza un cambio de la posicion
de los manual switchs del sistema, lo cual a su vez enruta el procesamiento de los datos de
entrada por el tipo de control seleccionado.
La comunicacion entre Simulink y la interfaz grafica se realiza de dos maneras. Una consiste
en actualizar directamente la informacion deseada en lo campos deseados de la interfaz, y
se realiza mediante el llamado del elemento de la interfaz directamente en el codigo de un
bloque S-Function de Matlab. En el Script 4.11, se puede apreciar el llamado mediante este
metodo. En el segundo metodo el cual a su vez es el principal, fue desarrollado en base a
ejemplos de Mathworks, y se encarga de establecer la comunicacion entre los elementos de
Simulink y la interfaz grafica. Este se encarga de transmitir la informacion devuelta por los
controladores, el control seleccionado y las demas interacciones que se pueden realizar en la
interfaz. En el Script 4.12, se puede apreciar el codigo entero, el cual a su vez se encuentra
subdividido en 4 etapas, la primera etapa es un case-when con multiples opciones, el cual se
ocupa de capturar los valores de entrada de las funciones que se implementaron a lo largo
del codigo, y retorna error en caso de que algo este mal inicializado. La segunda etapa,
es la encargada de definir la cantidad de datos tanto de entrada como de salida que seran
transmitidos entre la interfaz y Simulink. La tercera etapa, se encarga de actualizar los datos
enviados desde Simulink en la interfaz grafica. La ultima, es la encargada de actualizar los
datos de la interfaz en Simulink.
Script 4.11: Actualizacion directa
1 function varargout = updateGUIp(varargin)
2 %create a run time object that can return the value of the gain block ’s
3 %output and then put the value in a string.
4 rto = get_param(’planoBola_Sim/Gain’,’RuntimeObject ’);
5 str = num2str(rto.OutputPort (1).Data);
Script 4.12: Actualizacion indirecta
1 % Nitin Skandan , 11-Aug -2011
2 % This function collects data from the GUI and passes to the model
3 % The editable portions are commented with %-NS - way
4 function [sys ,x0,str ,ts] = planoBola_sf(t,x,u,flag ,Ts)
5 switch flag ,
6 case 0,
7 [sys ,x0,str ,ts]= mdlInitializeSizes(Ts);
8 case 2,
9 sys=mdlUpdate(t,x,u,Ts);
10 case 3,
11 sys = mdlOutputs(t,x,u); % Calculate outputs (t,x,u)
12 case 1, 4, 9 ,
50 4 Sensado e Interfaces Grafica
13 sys = [0 0 0 0];
14 otherwise
15 error ([’Unhandled flag = ’,num2str(flag)]);
16 end
17
18
19 function [sys ,x0,str ,ts]= mdlInitializeSizes(Ts)
20
21 % call simsizes for a sizes structure , fill it in and convert to a sizes
array.
22 sizes = simsizes;
23
24 sizes.NumContStates = 0;
25 sizes.NumDiscStates = 1;
26 sizes.NumOutputs = 4; %-NS Specify the number of outputs
27 sizes.NumInputs = 2; %-NS Specify the number of inputs
28 sizes.DirFeedthrough = 0;
29 sizes.NumSampleTimes = 1;
30
31 sys = simsizes(sizes);
32 x0 = [0];
33 str = [];
34 ts = [Ts 0];
35 % create the figure , if necessary
36 planoBola;
37 % end mdlInitializeSizes
38
39 function sys=mdlUpdate(t,x,u,Ts)
40 fig = get_param(gcbh ,’UserData ’);
41 sys=x;
42 if ishandle(fig), %
43 if strcmp(get(fig ,’Visible ’),’on’),
44 chnd = findobj(’Tag’,’edit5’); % get handle to editbox
45 str = floor(u(1));
46 set(chnd , ’String ’, num2str(str)) ; %set value of editbox
47 chnd = findobj(’Tag’,’edit6’); % get handle to editbox
48 str2 = floor(u(2));
49 set(chnd , ’String ’, num2str(str2)) ; %set value of editbox
50 end
51 end
52
53 function sys = mdlOutputs(t,x,u)
54 fig = get_param(gcbh ,’UserData ’) ;
55 if ishandle(fig),
56 ud = get(fig ,’UserData ’) ;
57 sys = [ud.radioBtn ud.editfield1 ud.editfield ud.chkbox ];
58 else
59 sys = [0 0 0 0] ;
4.3 Interface Grafica 51
60 end
En este punto resta explicar el diseno y motivo de la seleccion de los controladores imple-
mentados en simulink. Dicha tarea se realizara en el siguiente capıtulo. Adicionalmente, el
100 % del codigo implementado para realizar las distintas acciones en el sistema se encuentra
en el apendice A.
Capıtulo 5
Diseno de los Controladores
Dentro del diseno de controladores, se deben tener en cuenta el comportamiento del siste-
ma, las variables tanto de entrada como de salida del sistema, su comportamiento ante una
determinada entrada, entre otros. Esto a su vez implica, que se deben identificar los pro-
blemas fısicos de la planta y el comportamiento de estos, [3]. A lo largo de este capıtulo se
explicara el proceso realizado para el diseno de un controlador difuso y un controlador por
realimentacion de estados.
5.1. Controlador Difuso
En un sistema de control, generalmente se parte del modelo del sistema para aplicar la
tecnica de control sobre este. Sin embargo, en el caso de un controlador difuso esto no es
necesario, ya que el este se basa en una serie de reglas, que dependen del comportamiento
del sistema y al evaluar estas, se obtiene un respuesta acorde a las necesidades del sistema.
Teniendo en cuenta esto, el controlador difuso del sistema disenado, se debe fundamentar en
los movimientos de los ejes del plano y la posicion de la bola sobre este. Ası mismo, ya que
lo que se pretende es realizar un controlador difuso en base a la posicion de la bola sobre el
plano, se definieron una serie de reglas para el diseno de este.
5.1.1. Descripcion Linguıstica
La descripcion linguıstica del sistema, se trata de definir los rangos tanto de las entradas
como de la salida en palabras, es decir, si se hablase de la altura de las personas divida en 3
rangos, esta division se podrıa realizar ası, personas altas o medianas o bajas; para el sistema
de plano se realizo esta misma distribucion, teniendo en cuenta la distancia desde el origen
al punto maximo y mınimo del plano, tanto en x como en y. De esta forma se realizo la
siguiente distribucion:
Con la descripcion definida, podemos asumir un valor linguıstico, mediante el cual se definiran
las distintas reglas de control, [6]; por lo cual se opto por realizar la siguiente definicion para
el error de la bola:
54 5 Diseno de los Controladores
Rango Valor(px) Descripcion linguıstica
-40 a -30 graN
-30 a -16 medN
-16 a -1 peqN
-1 a 1 cero
1 a 16 peqP
16 a 30 medP
30 a 40 graP
Tabla 5-1: Rangos del Error y Descripcion linguıstica Asociada.
Descripcion linguıstica Valor Linguıstico
graN -3
medN -2
peqN -1
cero 0
peqP 1
medP 2
graP 3
Tabla 5-2: Valor Linguıstico del Error.
Para el cambio en el error, se establecio la notacion apreciada en la tabla 5-3, mientras que
la notacion y rangos establecidos para la salida del sistema fue la mostrada en la tabla 5-4.
Es importante aclarar que estos rangos han sido definidos de esta manera, de acuerdo al
comportamiento de la bola sobre el plano en cada una de las dimensiones de este. Ası mismo,
la salida posee estos rangos debido al funcionamiento de los motores ya que estos van a estar
desplazandose entre angulos de 0 y 90 grados.
5.1.2. Reglas
Una vez puntualizadas las diferentes descripciones linguısticas y su valor, se deben definir
ciertas reglas mediante las cuales se pueda delimitar la salida de cada uno de los motores. La
asignacion de estas reglas se hizo con base a la observacion del comportamiento del sistema,
las cuales permiten realizar el desplazamiento de los motores en una proporcion acorde al
error de la bola con respecto a la referencia y la velocidad con que esta se desplaza.
A continuacion, se muestra en forma tabular, cada uno de los valores linguısticos del error
de posicion de la bola, la variacion del error y la salida que debe tener para cada de las
situaciones que se pueden presentar. En la tabla 5-5, se pueden apreciar las reglas para el
5.1 Controlador Difuso 55
Descripcion linguıstica Valor Linguıstico
dgraN -3
dmedN -2
dpeqN -1
cero 0
dpeqP 1
dmedP 2
dgraP 3
Tabla 5-3: Valor Linguıstico Derivada del Error.
Descripcion linguıstica Valor Linguıstico Valor Real
graNeg -3 0 a 12
medNeg -2 12 a 30
peqNeg -1 30 a 44
cero 0 44 a 46
peqPos 1 46 a 60
medPos 2 60 a 78
graPos 3 78 a 90
Tabla 5-4: Descripcion Linguıstica X y Rangos de Salida.
movimiento en el eje x, mientras que en la tabla 5-6 se pueden apreciar las reglas para el
movimiento en el eje y
5.1.3. Funciones de Pertenencia
Con estas dos tablas y utilizando el toolbox de logica difusa de Matlab, se escribieron las
reglas de los controladores para cada uno de los ejes del plano. Dentro de la parametrizacion
del toolbox, se establecio que cada funcion de pertenencia tendrıa como forma una gaussia-
na,la cual estarıa acorde a los rangos establecidos en las diferentes descripciones linguısticas
realizadas en el diseno del controlador.
Finalmente, las funciones de pertenencia obtenidas para cada uno de los ejes son:
56 5 Diseno de los Controladores
Errorx
DeltaErrx-3 -2 -1 0 1 2 3
-3 -3 -3 -3 -3 -2 -1 0
-2 -3 -3 -3 -2 -1 0 1
-1 -3 -3 -2 -1 0 1 2
0 -3 -2 -1 0 1 2 3
1 -2 -1 0 1 2 3 3
2 -1 0 1 2 3 3 3
3 0 1 2 3 3 3 3
Tabla 5-5: Tabulacion Salida X
Errory
DeltaErry-3 -2 -1 0 1 2 3
-3 3 3 3 3 2 1 0
-2 3 3 3 2 1 0 -1
-1 3 3 2 1 0 -1 -2
0 3 2 1 0 -1 -2 -3
1 2 1 0 -1 -2 -3 -3
2 1 0 -1 -2 -3 -3 -3
3 0 -1 -2 -3 -3 -3 -3
Tabla 5-6: Tabulacion Salida Y
Figura 5-1: Funciones de Pertenencia para el error en X
5.2. Controlador de Realimentacion de Estados
Para realizar el diseno del controlador mediante el metodo de realimentacion de estados,
se partira del modelo hallado en la seccion 3.5 del capıtulo 3; si bien en el capıtulo 3.5, se
hallaron las variables de estado del sistema, en dicha seccion no se realizo la linealizacion
5.2 Controlador de Realimentacion de Estados 57
Figura 5-2: Funciones de Pertenencia para la variacion del error en X
Figura 5-3: Salida del Controlador en X
Figura 5-4: Funciones de Pertenencia para el error en Y
Figura 5-5: Funciones de Pertenencia para la variacion del error en Y
58 5 Diseno de los Controladores
Figura 5-6: Salida del Controlador en Y
del sistema, proceso que es necesario para realizar el diseno del controlador. Por lo tanto, se
procedera a realizar la linealizacion de este. Para esto, se iniciara calculando los puntos de
equilibrio del sistema, [1]. Para llevar a cabo esto, se deben igualar las derivadas de mayor
orden a cero y ası encontrar los puntos de equilibrio.
x1 = x2 = 0 (5-1)
x2 =(x1x
24 + x5x4x8 − g sinx3
)E (5-2)
x3 = x4 = 0 (5-3)
x4 = (−2x1x2x4 − x2x5x8 − x1x6x8 − x1x5x8 − gx1 cosx3)F +τx
Ib + Ip +mbx21(5-4)
x5 = x6 = 0 (5-5)
x6 =(x1x4x8 + x5x
28 − g sinx7
)E (5-6)
x7 = x8 = 0 (5-7)
x8 = (−x1x5x4 − gx5 cosx7)G+τy
Ib + Ip +mbx25(5-8)
Con lo cual se obtiene que x2, x4, x6, x8 = 0, ası mismo si se reemplazan estos valores en
(5− 2) y (5− 6) se obtiene:
g sinx3E = 0⇒ x3 = 0
−g sinx7E = 0⇒ x7 = 0
Es importante aclarar que en las ecuaciones de x3 y x7, la solucion es nπ. Sin embargo, se
elige que la variable tenga ese valor debido a la dinamica del plano.Por ultimo, para (5− 4)
y (5− 8) se tiene lo siguientes:
x4 = (−2x1x2x4 − x2x5x8 − x1x6x8 − x1x5x8 − gx1 cosx3)F +τx
Ib + Ip +mbx21= 0
Ahora se reemplazan las variables halladas anteriormente, por lo que la expresion se reduce a:
5.2 Controlador de Realimentacion de Estados 59
x4 = (−x1x5x8 − gx1 cosx3)F +τx
Ib + Ip +mbx21(5-9)
Ası mismo, dado que en x4 aparece x8 este se debe reemplazar para posteriormente realizar
el respectivo reemplazo en (5− 9).
x8 = (−x1x5x4 − gx5 cosx7)G+τy
Ib + Ip +mbx25(5-10)
Se reemplaza (5− 10) en (5− 9):
x4 = −Fx1x5[−x1x5x4G− gx5 cosx7G+
τyIb + Ip +mbx25
]−gx1 cosx3F +
τxIb + Ip +mbx21
(5-11)
Haciendo el manejo algebraico correspondiente se obtiene:
x4 =FGgx1x
25 cosx7
1− FGx21x25− Fx1x5τy
(Ib + Ip +mbx25) (1− FGx21x25)− gx1 cosx3F
1− FGx21x25+
τx(Ib + Ip +mbx21) (1− FGx21x25)
(5-12)
De esta forma en 5-12, se puede concluir que el sistema se encuentra en equilibrio cuando
todas sus variables son iguales a cero. Por lo tanto, el sistema se puede simplificar alrededor
de estas soluciones. El proceso para x8 es similar al mostrado para x4.
Por ultimo, se calcularan las derivadas parciales de las ecuaciones de estado con respecto a
cada uno de las variables de estado y se evaluaran en el punto de equilibrio.
60 5 Diseno de los Controladores
x1 = x2 = F1
∂F1
∂ (x1, x3, x4, x5, x6, x7, x8)= 0
∂F1
∂x2= 1x2 =
(x1x
24 + x5x4x8 − g sinx3
)E = F2
∂F2
∂ (x1, x2, x4,x5,x6,x7,x8)= 0
∂F2
∂x3= −g cosx3E = −gE =
−gmb
mb + Ib/r2b(5-13)
x3 = x4 = F3
∂F3
∂ (x1, x2, x3, x5, x6, x7, x8)= 0
∂F3
∂x4= 1 (5-14)
x4 = (−2x1x2x4 − x2x5x8 − x1x6x8 − x1x5x8 − gx1 cosx3)F+τx
Ib + Ip +mbx21= F4
∂F4
∂x1= −gF =
−gmb
Ip + Ib(5-15)
∂F4
∂ (x2, x3, x4, x5, x6, x7, x8)= 0
x5 = x6 = F5
∂F5
∂ (x1, x2, x3, x4, x5, x7, x8)= 0
∂F5
∂x6= 1 (5-16)
x6 =(x1x4x8 + x5x
28 − g sinx7
)E = F6
∂F6
∂x1, x2, x3, x4, x5, x6, x8= 0
∂F6
∂x7= −g cosx7E = −gE =
−gmb
mb + Ib/r2b(5-17)
x7 = x8 = F7
∂F7
∂x1, x2, x3, x4, x5, x6, x7= 0
∂F7
∂x8= 1 (5-18)
5.2 Controlador de Realimentacion de Estados 61
x8 = (−2x5x6x8 − x2x5x4 − x1x6x4 − x1x5x4 − gx5 cosx7)G
+τy
Ib + Ip +mbx25= F8
∂F8
∂x1, x2, x3, x4, x6, x7, x8= 0
∂F8
∂x5= −gG =
−gmb
Ip + Ib(5-19)
Una vez calculadas las derivadas, se puede reemplazar los valores de los distintos parame-
tros de la planta que son conocidos, ası mismo, lo ponemos de la forma x = Ax + Bu y
y = Cx+Du. Con esto, procederemos a la escritura de cada una de las matrices. Con estas
matrices, las cuales reflejan la representacion de cada una de las variables de estado, se inicia
el diseno del controlador.Las matrices del sistema linealizado son:
A =
0 1,0 0 0 0 0 0 0
0 0 −7,0 0 0 0 0 0
0 0 0 1,0 0 0 0 0
−7,679 0 0 0 0 0 0 0
0 0 0 0 0 1,0 0 0
0 0 0 0 0 0 −7,0 0
0 0 0 0 0 0 0 1,0
0 0 0 0 −7,679 0 0 0
B =
0 0
0 0
0 0
195,9 0
0 0
0 0
0 0
0 195,9
C =
(1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
)
D =
(0 0
0 0
)
Una vez determinadas las matrices de estado del sistema, se procede a mirar la estabilidad,
[1]. Para esto, debemos conocer cada uno de los eigenvalores de la matriz A en lazo abierto. Es
62 5 Diseno de los Controladores
decir, los polos del sistema. Los calculos se hicieron con ayuda computacional y los resultados
fueron:
P =
[−2,707 −2,707 −2,707i −2,707i 2,707 2,707 2,707i
2,707i
]
Una vez hecho esto, podemos concluir que el sistema no es estable, porque solo hay dos polos
que se ubican en el semiplano izquierdo.
5.2.1. Regulador de Estados
Para disenar un controlador por regulacion de estados, es necesario determinar si el sistema es
controlable. Para hallar la controlabilidad de un sistema multi-entrada se realiza el siguiente
proceso, [1]:
Mc =[B AB A2B A3B A4B A5B A6B
]Donde:
AB =
0 0
0 0
195,9 0
0 0
0 0
0 0
0 195,9
0 0
A2B =
0 0
−1371,0 0
0 0
0 0
0 0
0 −1371,0
0 0
0 0
5.2 Controlador de Realimentacion de Estados 63
A3B =
−1371,0 0
0 0
0 0
0 0
0 −1371,0
0 0
0 0
0 0
A4B =
0 0
0 0
0 0
10533,0 0
0 0
0 0
0 0
0 10533,0
A5B =
0 0
0 0
10533,0 0
0 0
0 0
0 0
0 10533,0
0 0
A6B =
0 0
−73711,0 0
0 0
0 0
0 0
0 −73711,0
0 0
0 0
Finalmente, se halla el rango de la matriz M para determinar si el sistema es controlable o
no. Dado que el rango de M dio 8, el sistema es totalmente controlable. Esto indica que los
polos del sistema se pueden estabilizar a traves de un vector de realimentacion de estados,
bien sea mediante un seguidor de estados o regulador.
64 5 Diseno de los Controladores
Para el diseno del regulador se deben ubicar los polos en un lugar deseado.Estos se fijan
segun la respuesta deseada. Los polos deseados son:
Pd =[−5,153 −7,300 −9,447 −11,59 −13,74 −15,88 −18,03 −5,449
]
Una vez elegidos los polos deseados, se forman las matrices deseadas con cada eigenvalor, de
la forma [A− αi ∗ I|B], [1].
Para cada uno de los polos escogidos, se forma su correspondiente matriz agrandada:
S1 =
1,391 1,0 0 0 0 0 0 0 0 0
0 1,391 −7,0 0 0 0 0 0 0 0
0 0 1,391 1,0 0 0 0 0 0 0
−4,085 0 0 1,391 0 0 0 0 104,2 0
0 0 0 0 1,391 1,0 0 0 0 0
0 0 0 0 0 1,391 −7,0 0 0 0
0 0 0 0 0 0 1,391 1,0 0 0
0 0 0 0 −4,085 0 0 1,391 0 104,2
S2 =
1,971 1,0 0 0 0 0 0 0 0 0
0 1,971 −7,0 0 0 0 0 0 0 0
0 0 1,971 1,0 0 0 0 0 0 0
−4,085 0 0 1,971 0 0 0 0 104,2 0
0 0 0 0 1,971 1,0 0 0 0 0
0 0 0 0 0 1,971 −7,0 0 0 0
0 0 0 0 0 0 1,971 1,0 0 0
0 0 0 0 −4,085 0 0 1,971 0 104,2
S3 =
2,551 1,0 0 0 0 0 0 0 0 0
0 2,551 −7,0 0 0 0 0 0 0 0
0 0 2,551 1,0 0 0 0 0 0 0
−4,085 0 0 2,551 0 0 0 0 104,2 0
0 0 0 0 2,551 1,0 0 0 0 0
0 0 0 0 0 2,551 −7,0 0 0 0
0 0 0 0 0 0 2,551 1,0 0 0
0 0 0 0 −4,085 0 0 2,551 0 104,2
5.2 Controlador de Realimentacion de Estados 65
S4 =
3,13 1,0 0 0 0 0 0 0 0 0
0 3,13 −7,0 0 0 0 0 0 0 0
0 0 3,13 1,0 0 0 0 0 0 0
−4,085 0 0 3,13 0 0 0 0 104,2 0
0 0 0 0 3,13 1,0 0 0 0 0
0 0 0 0 0 3,13 −7,0 0 0 0
0 0 0 0 0 0 3,13 1,0 0 0
0 0 0 0 −4,085 0 0 3,13 0 104,2
S5 =
3,71 1,0 0 0 0 0 0 0 0 0
0 3,71 −7,0 0 0 0 0 0 0 0
0 0 3,71 1,0 0 0 0 0 0 0
−4,085 0 0 3,71 0 0 0 0 104,2 0
0 0 0 0 3,71 1,0 0 0 0 0
0 0 0 0 0 3,71 −7,0 0 0 0
0 0 0 0 0 0 3,71 1,0 0 0
0 0 0 0 −4,085 0 0 3,71 0 104,2
S6 =
4,29 1,0 0 0 0 0 0 0 0 0
0 4,29 −7,0 0 0 0 0 0 0 0
0 0 4,29 1,0 0 0 0 0 0 0
−4,085 0 0 4,29 0 0 0 0 104,2 0
0 0 0 0 4,29 1,0 0 0 0 0
0 0 0 0 0 4,29 −7,0 0 0 0
0 0 0 0 0 0 4,29 1,0 0 0
0 0 0 0 −4,085 0 0 4,29 0 104,2
S7 =
4,87 1,0 0 0 0 0 0 0 0 0
0 4,87 −7,0 0 0 0 0 0 0 0
0 0 4,87 1,0 0 0 0 0 0 0
−4,085 0 0 4,87 0 0 0 0 104,2 0
0 0 0 0 4,87 1,0 0 0 0 0
0 0 0 0 0 4,87 −7,0 0 0 0
0 0 0 0 0 0 4,87 1,0 0 0
0 0 0 0 −4,085 0 0 4,87 0 104,2
66 5 Diseno de los Controladores
S8 =
5,449 1,0 0 0 0 0 0 0 0 0
0 5,449 −7,0 0 0 0 0 0 0 0
0 0 5,449 1,0 0 0 0 0 0 0
−4,085 0 0 5,449 0 0 0 0 104,2 0
0 0 0 0 5,449 1,0 0 0 0 0
0 0 0 0 0 5,449 −7,0 0 0 0
0 0 0 0 0 0 5,449 1,0 0 0
0 0 0 0 −4,085 0 0 5,449 0 104,2
Para continuar con el procedimiento, se debe calcular la forma normal hermitiana de cada
una de las matrices. Esto se hace por medio de ayuda computacional, [1, 7]. Las matrices
resultantes son:
hs1 =
1,0 0 0 0 0 0 0 0 −29,36 0
0 1,0 0 0 0 0 0 0 40,84 0
0 0 1,0 0 0 0 0 0 8,118 0
0 0 0 1,0 0 0 0 0 −11,29 0
0 0 0 0 1,0 0 0 0 0 −29,36
0 0 0 0 0 1,0 0 0 0 40,84
0 0 0 0 0 0 1,0 0 0 8,118
0 0 0 0 0 0 0 1,0 0 −11,29
hs2 =
1,0 0 0 0 0 0 0 0 −54,03 0
0 1,0 0 0 0 0 0 0 106,5 0
0 0 1,0 0 0 0 0 0 29,98 0
0 0 0 1,0 0 0 0 0 −59,1 0
0 0 0 0 1,0 0 0 0 0 −54,03
0 0 0 0 0 1,0 0 0 0 106,5
0 0 0 0 0 0 1,0 0 0 29,98
0 0 0 0 0 0 0 1,0 0 −59,1
hs3 =
1,0 0 0 0 0 0 0 0 53,1 0
0 1,0 0 0 0 0 0 0 −135,4 0
0 0 1,0 0 0 0 0 0 −49,36 0
0 0 0 1,0 0 0 0 0 125,9 0
0 0 0 0 1,0 0 0 0 0 53,1
0 0 0 0 0 1,0 0 0 0 −135,4
0 0 0 0 0 0 1,0 0 0 −49,36
0 0 0 0 0 0 0 1,0 0 125,9
5.2 Controlador de Realimentacion de Estados 67
hs4 =
1,0 0 0 0 0 0 0 0 53,1 0
0 1,0 0 0 0 0 0 0 −135,4 0
0 0 1,0 0 0 0 0 0 −49,36 0
0 0 0 1,0 0 0 0 0 125,9 0
0 0 0 0 1,0 0 0 0 0 53,1
0 0 0 0 0 1,0 0 0 0 −135,4
0 0 0 0 0 0 1,0 0 0 −49,36
0 0 0 0 0 0 0 1,0 0 125,9
hs5 =
1 0 0 0 0 0 0 0 4,534 0
0 1 0 0 0 0 0 0 −16,82 0
0 0 1 0 0 0 0 0 −8,916 0
0 0 0 1 0 0 0 0 33,08 0
0 0 0 0 1 0 0 0 0 4,534
0 0 0 0 0 1 0 0 0 −16,82
0 0 0 0 0 0 1 0 0 −8,916
0 0 0 0 0 0 0 1 0 33,08
hs6 =
1,0 0 0 0 0 0 0 0 2,352 0
0 1,0 0 0 0 0 0 0 −10,09 0
0 0 1,0 0 0 0 0 0 −6,185 0
0 0 0 1,0 0 0 0 0 26,53 0
0 0 0 0 1,0 0 0 0 0 2,352
0 0 0 0 0 1,0 0 0 0 −10,09
0 0 0 0 0 0 1,0 0 0 −6,185
0 0 0 0 0 0 0 1,0 0 26,53
hs7 =
1,0 0 0 0 0 0 0 0 1,367 0
0 1,0 0 0 0 0 0 0 −6,656 0
0 0 1,0 0 0 0 0 0 −4,63 0
0 0 0 1,0 0 0 0 0 22,55 0
0 0 0 0 1,0 0 0 0 0 1,367
0 0 0 0 0 1,0 0 0 0 −6,656
0 0 0 0 0 0 1,0 0 0 −4,63
0 0 0 0 0 0 0 1,0 0 22,55
68 5 Diseno de los Controladores
hs8 =
1,0 0 0 0 0 0 0 0 0,855 0
0 1,0 0 0 0 0 0 0 −4,659 0
0 0 1,0 0 0 0 0 0 −3,627 0
0 0 0 1,0 0 0 0 0 19,76 0
0 0 0 0 1,0 0 0 0 0 0,855
0 0 0 0 0 1,0 0 0 0 −4,659
0 0 0 0 0 0 1,0 0 0 −3,627
0 0 0 0 0 0 0 1,0 0 19,76
Posteriormente, se deben volver cuadradas cada una de las matrices hermitianas para escoger
los vectores que permitan formar el espacio nulo.Por lo tanto, se rellena con ceros las filas
restantes de cada una de las matrices y luego, se deben reemplazar los elementos nulos de la
diagonal por -1. Dicho proceso se hizo en cada una de las matrices.
hsc1 =
1,0 0 0 0 0 0 0 0 −29,36 0
0 1,0 0 0 0 0 0 0 40,84 0
0 0 1,0 0 0 0 0 0 8,118 0
0 0 0 1,0 0 0 0 0 −11,29 0
0 0 0 0 1,0 0 0 0 0 −29,36
0 0 0 0 0 1,0 0 0 0 40,84
0 0 0 0 0 0 1,0 0 0 8,118
0 0 0 0 0 0 0 1,0 0 −11,29
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
hsc2 =
1,0 0 0 0 0 0 0 0 −54,03 0
0 1,0 0 0 0 0 0 0 106,5 0
0 0 1,0 0 0 0 0 0 29,98 0
0 0 0 1,0 0 0 0 0 −59,1 0
0 0 0 0 1,0 0 0 0 0 −54,03
0 0 0 0 0 1,0 0 0 0 106,5
0 0 0 0 0 0 1,0 0 0 29,98
0 0 0 0 0 0 0 1,0 0 −59,1
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
5.2 Controlador de Realimentacion de Estados 69
hsc3 =
1,0 0 0 0 0 0 0 0 53,1 0
0 1,0 0 0 0 0 0 0 −135,4 0
0 0 1,0 0 0 0 0 0 −49,36 0
0 0 0 1,0 0 0 0 0 125,9 0
0 0 0 0 1,0 0 0 0 0 53,1
0 0 0 0 0 1,0 0 0 0 −135,4
0 0 0 0 0 0 1,0 0 0 −49,36
0 0 0 0 0 0 0 1,0 0 125,9
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
hsc4 =
1,0 0 0 0 0 0 0 0 10,82 0
0 1,0 0 0 0 0 0 0 −33,86 0
0 0 1,0 0 0 0 0 0 −15,14 0
0 0 0 1,0 0 0 0 0 47,4 0
0 0 0 0 1,0 0 0 0 0 10,82
0 0 0 0 0 1,0 0 0 0 −33,86
0 0 0 0 0 0 1,0 0 0 −15,14
0 0 0 0 0 0 0 1,0 0 47,4
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
hsc5 =
1,0 0 0 0 0 0 0 0 4,534 0
0 1,0 0 0 0 0 0 0 −16,82 0
0 0 1,0 0 0 0 0 0 −8,916 0
0 0 0 1,0 0 0 0 0 33,08 0
0 0 0 0 1,0 0 0 0 0 4,534
0 0 0 0 0 1,0 0 0 0 −16,82
0 0 0 0 0 0 1,0 0 0 −8,916
0 0 0 0 0 0 0 1,0 0 33,08
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
70 5 Diseno de los Controladores
hsc6 =
1,0 0 0 0 0 0 0 0 2,352 0
0 1,0 0 0 0 0 0 0 −10,09 0
0 0 1,0 0 0 0 0 0 −6,185 0
0 0 0 1,0 0 0 0 0 26,53 0
0 0 0 0 1,0 0 0 0 0 2,352
0 0 0 0 0 1,0 0 0 0 −10,09
0 0 0 0 0 0 1,0 0 0 −6,185
0 0 0 0 0 0 0 1,0 0 26,53
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
hsc7 =
1,0 0 0 0 0 0 0 0 1,367 0
0 1,0 0 0 0 0 0 0 −6,656 0
0 0 1,0 0 0 0 0 0 −4,63 0
0 0 0 1,0 0 0 0 0 22,55 0
0 0 0 0 1,0 0 0 0 0 1,367
0 0 0 0 0 1,0 0 0 0 −6,656
0 0 0 0 0 0 1,0 0 0 −4,63
0 0 0 0 0 0 0 1,0 0 22,55
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
hsc8 =
1,0 0 0 0 0 0 0 0 0,855 0
0 1,0 0 0 0 0 0 0 −4,659 0
0 0 1,0 0 0 0 0 0 −3,627 0
0 0 0 1,0 0 0 0 0 19,76 0
0 0 0 0 1,0 0 0 0 0 0,855
0 0 0 0 0 1,0 0 0 0 −4,659
0 0 0 0 0 0 1,0 0 0 −3,627
0 0 0 0 0 0 0 1,0 0 19,76
0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 −1,0
Los vectores columna elegidos para formar el espacio nulo, son aquellos que en la diagonal
principal tienen un -1 ,es decir, las columnas 9 y 10 en cada una de las matrices hermitianas
cuadradas, con el objetivo de formar las matrices Q y V, [1].
5.2 Controlador de Realimentacion de Estados 71
V =
−58,71 −27,01 159,3 21,63 13,6 2,352 1,367 0,4275
81,69 53,24 −406,3 −67,72 −50,46 −10,09 −6,656 −2,329
16,24 14,99 −148,1 −30,28 −26,75 −6,185 −4,63 −1,813
−22,59 −29,55 377,7 94,8 99,23 26,53 22,55 9,882
−14,68 −108,1 106,2 32,45 9,068 1,176 2,734 0,855
20,42 213,0 −270,9 −101,6 −33,64 −5,046 −13,31 −4,659
4,059 59,97 −98,71 −45,43 −17,83 −3,092 −9,26 −3,627
−5,647 −118,2 251,8 142,2 66,16 13,27 45,09 19,76
Q =
(−2,0 −0,5 −3,0 −2,0 −3,0 −1,0 −1,0 −0,5
−0,5 −2,0 −2,0 −3,0 −2,0 −0,5 −2,0 −1,0
)
Por ultimo, el vector de realimentacion de estados se halla mediante la ecuacion K = QV −1.
El resultado es:
K =
(0,0761 0,07893 −0,3777 −0,1026 0,09413 0,09756 −0,2221 −0,02286
−0,08159 −0,09202 0,223 0,02414 0,3097 0,3232 −0,939 −0,1608
)
A continuacion, se mostrara la implementacion realizada del controlador:
Figura 5-7: Regulador de Estados Implementado en Matlab
72 5 Diseno de los Controladores
Figura 5-8: Vector de Regulacion de Estados Implementado en Matlab
5.2.2. Seguidor de Estados
Para realizar un sistema de seguimiento con el vector de realimentacion de estado, el pro-
cedimiento es similar al anteriormente mostrado, [1]. Sin embargo, ya que el sistema debe
seguir una referencia se debe realizar un nuevo calculo, mediante la escritura de las matrices
aumentadas, las cuales vienen dadas por las siguientes expresiones:
A =
[A 0
−E 0
]
B =
[B
0
]
C =[C 0
]
Reemplazando las respectivas matrices en A,B,C y teniendo en cuenta que E = C, se obtie-
5.2 Controlador de Realimentacion de Estados 73
ne: A =
0 1,0 0 0 0 0 0 0 0 0
0 0 −7,0 0 0 0 0 0 0 0
0 0 0 1,0 0 0 0 0 0 0
−12,56 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1,0 0 0 0 0
0 0 0 0 0 0 −7,0 0 0 0
0 0 0 0 0 0 0 1,0 0 0
0 0 0 0 −12,56 0 0 0 0 0
−1,0 0 0 0 0 0 0 0 0 0
0 0 0 0 −1,0 0 0 0 0 0
B =
0 0
0 0
0 0
51,28 0
0 0
0 0
0 0
0 51,28
0 0
0 0
C =
(1,0 0 0 0 0 0 0 0 0 0
0 0 0 0 1,0 0 0 0 0 0
)
D =
(0 0
0 0
)
Con estos ajustes, se procede a discretizar las nuevas matrices para efectuar el desarrollo
del vector de estados K que me permite hacer seguimiento a un punto de referencia. Estas
nuevas matrices son:
74 5 Diseno de los Controladores
Adis =
1,002 0,1501 −0,07876 −0,003938 0 0 0 0
0 0
0,04947 1,002 −1,05 −0,07876 0 0 0 0
0 0
−0,1413 −0,007067 1,002 0,1501 0 0 0 0
0 0
−1,885 −0,1413 0,04947 1,002 0 0 0 0
0 0
0 0 0 0 1,002 0,1501 −0,07876 −0,003938
0 0
0 0 0 0 0,04947 1,002 −1,05 −0,07876
0 0
0 0 0 0 −0,1413 −0,007067 1,002 0,1501
0 0
0 0 0 0 −1,885 −0,1413 0,04947 1,002
0 0
−0,1501 −0,01125 0,003938 0,0001477 0 0 0 0
1,0 0
0 0 0 0 −0,1501 −0,01125 0,003938 0,0001477
0 1,0
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1,0 0
0 1,0
5.2 Controlador de Realimentacion de Estados 75
Bdis =
−0,007572 0
−0,2019 0
0,5769 0
7,694 0
0 −0,007572
0 −0,2019
0 0,5769
0 7,694
0,0002271 0
0 0,0002271
Cdis =
(1,0 0 0 0 0 0 0 0 0 0
0 0 0 0 1,0 0 0 0 0 0
)
Ddis =
(0 0
0 0
)
A continuacion, se eligen los polos deseados para el seguidor,
Pd =[−20,4 −20,5 −20,6 −20,7 −20,8 −21,9 −21 −21,1 21,2 21,3
]Posteriormente, se discretizan mediante la expresion, e−alphai∗ts , donde alphai son los valores
de los polos deseados y ts es el tiempo de muestreo escogido para el diseno, en este caso
0,15seg, reemplazando se obtiene que los polos deseados discretos son:
Pdd =[
0,047 0,046 0,045 0,045 0,044 0,0370,043 0,042 0,042 0,041]
Luego, se forman las matrices aumentadas de la misma forma que se hizo en el regulador,
de lo cual se obtiene:
Rd1 =
1,049 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,049 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,049 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,049 0 0 0
0 0 0 0 1,049 0,1501 −0,07876
0 0 0 0 0,04947 1,049 −1,05
0 0 0 0 −0,1413 −0,007067 1,049
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
76 5 Diseno de los Controladores∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,049 0 0 0 7,694
0 1,047 0 0,0002271 0
0,0001477 0 1,047 0 0,0002271
Rd2 =
1,048 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,048 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,048 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,048 0 0 0
0 0 0 0 1,048 0,1501 −0,07876
0 0 0 0 0,04947 1,048 −1,05
0 0 0 0 −0,1413 −0,007067 1,048
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,048 0 0 0 7,694
0 1,046 0 0,0002271 0
0,0001477 0 1,046 0 0,0002271
5.2 Controlador de Realimentacion de Estados 77
Rd3 =
1,047 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,047 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,047 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,047 0 0 0
0 0 0 0 1,047 0,1501 −0,07876
0 0 0 0 0,04947 1,047 −1,05
0 0 0 0 −0,1413 −0,007067 1,047
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,047 0 0 0 7,694
0 1,046 0 0,0002271 0
0,0001477 0 1,046 0 0,0002271
Rd4 =
1,047 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,047 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,047 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,047 0 0 0
0 0 0 0 1,047 0,1501 −0,07876
0 0 0 0 0,04947 1,047 −1,05
0 0 0 0 −0,1413 −0,007067 1,047
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,047 0 0 0 7,694
0 1,045 0 0,0002271 0
0,0001477 0 1,045 0 0,0002271
78 5 Diseno de los Controladores
Rd5 =
1,046 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,046 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,046 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,046 0 0 0
0 0 0 0 1,046 0,1501 −0,07876
0 0 0 0 0,04947 1,046 −1,05
0 0 0 0 −0,1413 −0,007067 1,046
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,046 0 0 0 7,694
0 1,044 0 0,0002271 0
0,0001477 0 1,044 0 0,0002271
Rd6 =
1,039 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,039 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,039 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,039 0 0 0
0 0 0 0 1,039 0,1501 −0,07876
0 0 0 0 0,04947 1,039 −1,05
0 0 0 0 −0,1413 −0,007067 1,039
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,039 0 0 0 7,694
0 1,037 0 0,0002271 0
0,0001477 0 1,037 0 0,0002271
5.2 Controlador de Realimentacion de Estados 79
Rd7 =
1,045 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,045 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,045 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,045 0 0 0
0 0 0 0 1,045 0,1501 −0,07876
0 0 0 0 0,04947 1,045 −1,05
0 0 0 0 −0,1413 −0,007067 1,045
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,045 0 0 0 7,694
0 1,043 0 0,0002271 0
0,0001477 0 1,043 0 0,0002271
Rd8 =
1,044 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,044 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,044 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,044 0 0 0
0 0 0 0 1,044 0,1501 −0,07876
0 0 0 0 0,04947 1,044 −1,05
0 0 0 0 −0,1413 −0,007067 1,044
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,044 0 0 0 7,694
0 1,042 0 0,0002271 0
0,0001477 0 1,042 0 0,0002271
80 5 Diseno de los Controladores
R9 =
1,043 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,043 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,043 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,043 0 0 0
0 0 0 0 1,043 0,1501 −0,07876
0 0 0 0 0,04947 1,043 −1,05
0 0 0 0 −0,1413 −0,007067 1,043
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,043 0 0 0 7,694
0 1,042 0 0,0002271 0
0,0001477 0 1,042 0 0,0002271
Rd10 =
1,043 0,1501 −0,07876 −0,003938 0 0 0
0,04947 1,043 −1,05 −0,07876 0 0 0
−0,1413 −0,007067 1,043 0,1501 0 0 0
−1,885 −0,1413 0,04947 1,043 0 0 0
0 0 0 0 1,043 0,1501 −0,07876
0 0 0 0 0,04947 1,043 −1,05
0 0 0 0 −0,1413 −0,007067 1,043
0 0 0 0 −1,885 −0,1413 0,04947
−0,1501 −0,01125 0,003938 0,0001477 0 0 0
0 0 0 0 −0,1501 −0,01125 0,003938
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0 0 0 −0,007572 0
0 0 0 −0,2019 0
0 0 0 0,5769 0
0 0 0 7,694 0
−0,003938 0 0 0 −0,007572
−0,07876 0 0 0 −0,2019
0,1501 0 0 0 0,5769
1,043 0 0 0 7,694
0 1,041 0 0,0002271 0
0,0001477 0 1,041 0 0,0002271
5.2 Controlador de Realimentacion de Estados 81
Siguiendo el procedimiento, se debe calcular las matrices normales hermitianas con cada uno
de las matrices aumentadas. Esto fue realizado con ayuda computacional y el resultado es:
hRd1 =
1,0 0 0 0 0 0 0 0 0 0 0,003204 0
0 1,0 0 0 0 0 0 0 0 0 −0,1433 0
0 0 1,0 0 0 0 0 0 0 0 −0,5016 0
0 0 0 1,0 0 0 0 0 0 0 7,347 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003204
0 0 0 0 0 1,0 0 0 0 0 0 −0,1433
0 0 0 0 0 0 1,0 0 0 0 0 −0,5016
0 0 0 0 0 0 0 1,0 0 0 0 7,347
0 0 0 0 0 0 0 0 1,0 0 −1,384 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 −1,384 · 10−5
hRd2 =
1,0 0 0 0 0 0 0 0 0 0 0,003256 0
0 1,0 0 0 0 0 0 0 0 0 −0,1441 0
0 0 1,0 0 0 0 0 0 0 0 −0,5027 0
0 0 0 1,0 0 0 0 0 0 0 7,352 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003256
0 0 0 0 0 1,0 0 0 0 0 0 −0,1441
0 0 0 0 0 0 1,0 0 0 0 0 −0,5027
0 0 0 0 0 0 0 1,0 0 0 0 7,352
0 0 0 0 0 0 0 0 1,0 0 −1,136 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 −1,136 · 10−5
hRd3 =
1,0 0 0 0 0 0 0 0 0 0 0,003308 0
0 1,0 0 0 0 0 0 0 0 0 −0,1449 0
0 0 1,0 0 0 0 0 0 0 0 −0,5037 0
0 0 0 1,0 0 0 0 0 0 0 7,357 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003308
0 0 0 0 0 1,0 0 0 0 0 0 −0,1449
0 0 0 0 0 0 1,0 0 0 0 0 −0,5037
0 0 0 0 0 0 0 1,0 0 0 0 7,357
0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6
82 5 Diseno de los Controladores
hRd4 =
1,0 0 0 0 0 0 0 0 0 0 0,003308 0
0 1,0 0 0 0 0 0 0 0 0 −0,1449 0
0 0 1,0 0 0 0 0 0 0 0 −0,5037 0
0 0 0 1,0 0 0 0 0 0 0 7,357 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003308
0 0 0 0 0 1,0 0 0 0 0 0 −0,1449
0 0 0 0 0 0 1,0 0 0 0 0 −0,5037
0 0 0 0 0 0 0 1,0 0 0 0 7,357
0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6
hRd5 =
1 0 0 0 0 0 0 0 0 0 0,003411 0
0 1 0 0 0 0 0 0 0 0 −0,1464 0
0 0 1 0 0 0 0 0 0 0 −0,5057 0
0 0 0 1 0 0 0 0 0 0 7,366 0
0 0 0 0 1 0 0 0 0 0 0 0,003411
0 0 0 0 0 1 0 0 0 0 0 −0,1464
0 0 0 0 0 0 1 0 0 0 0 −0,5057
0 0 0 0 0 0 0 1 0 0 0 7,366
0 0 0 0 0 0 0 0 1 0 −3,958 · 10−6 0
0 0 0 0 0 0 0 0 0 1 0 −3,958 · 10−6
hRd6 =
1,0 0 0 0 0 0 0 0 0 0 0,003944 0
0 1,0 0 0 0 0 0 0 0 0 −0,154 0
0 0 1,0 0 0 0 0 0 0 0 −0,5159 0
0 0 0 1,0 0 0 0 0 0 0 7,414 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003944
0 0 0 0 0 1,0 0 0 0 0 0 −0,154
0 0 0 0 0 0 1,0 0 0 0 0 −0,5159
0 0 0 0 0 0 0 1,0 0 0 0 7,414
0 0 0 0 0 0 0 0 1,0 0 2,224 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 2,224 · 10−5
5.2 Controlador de Realimentacion de Estados 83
hRd7 =
1,0 0 0 0 0 0 0 0 0 0 0,003512 0
0 1,0 0 0 0 0 0 0 0 0 −0,1478 0
0 0 1,0 0 0 0 0 0 0 0 −0,5077 0
0 0 0 1,0 0 0 0 0 0 0 7,376 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003512
0 0 0 0 0 1,0 0 0 0 0 0 −0,1478
0 0 0 0 0 0 1,0 0 0 0 0 −0,5077
0 0 0 0 0 0 0 1,0 0 0 0 7,376
0 0 0 0 0 0 0 0 1,0 0 9,202 · 10−7 0
0 0 0 0 0 0 0 0 0 1,0 0 9,202 · 10−7
hRd8 =
1,0 0 0 0 0 0 0 0 0 0 0,003562 0
0 1,0 0 0 0 0 0 0 0 0 −0,1485 0
0 0 1,0 0 0 0 0 0 0 0 −0,5086 0
0 0 0 1,0 0 0 0 0 0 0 7,38 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003562
0 0 0 0 0 1,0 0 0 0 0 0 −0,1485
0 0 0 0 0 0 1,0 0 0 0 0 −0,5086
0 0 0 0 0 0 0 1,0 0 0 0 7,38
0 0 0 0 0 0 0 0 1,0 0 3,342 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 3,342 · 10−6
hRd9 =
1,0 0 0 0 0 0 0 0 0 0 0,003612 0
0 1,0 0 0 0 0 0 0 0 0 −0,1492 0
0 0 1,0 0 0 0 0 0 0 0 −0,5096 0
0 0 0 1,0 0 0 0 0 0 0 7,385 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003612
0 0 0 0 0 1,0 0 0 0 0 0 −0,1492
0 0 0 0 0 0 1,0 0 0 0 0 −0,5096
0 0 0 0 0 0 0 1,0 0 0 0 7,385
0 0 0 0 0 0 0 0 1,0 0 5,751 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 5,751 · 10−6
84 5 Diseno de los Controladores
hRdc10 =
1,0 0 0 0 0 0 0 0 0 0 0,003661 0
0 1,0 0 0 0 0 0 0 0 0 −0,1499 0
0 0 1,0 0 0 0 0 0 0 0 −0,5105 0
0 0 0 1,0 0 0 0 0 0 0 7,389 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003661
0 0 0 0 0 1,0 0 0 0 0 0 −0,1499
0 0 0 0 0 0 1,0 0 0 0 0 −0,5105
0 0 0 0 0 0 0 1,0 0 0 0 7,389
0 0 0 0 0 0 0 0 1,0 0 8,147 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 8,147 · 10−6
Con estas matrices se deben escoger los vectores que me permitan formar el espacio nu-
lo.Para lograr esto, las matrices deben ser cuadradas, [1]. Por lo tanto, se rellena con ceros
las filas faltantes de cada una de las matrices. Luego, se debe sustituir por -1 los elementos
correspondientes a la diagonal principal. .
hRdc1 =
1,0 0 0 0 0 0 0 0 0 0 0,003204 0
0 1,0 0 0 0 0 0 0 0 0 −0,1433 0
0 0 1,0 0 0 0 0 0 0 0 −0,5016 0
0 0 0 1,0 0 0 0 0 0 0 7,347 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003204
0 0 0 0 0 1,0 0 0 0 0 0 −0,1433
0 0 0 0 0 0 1,0 0 0 0 0 −0,5016
0 0 0 0 0 0 0 1,0 0 0 0 7,347
0 0 0 0 0 0 0 0 1,0 0 −1,384 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 −1,384 · 10−5
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
5.2 Controlador de Realimentacion de Estados 85
hRdc2 =
1,0 0 0 0 0 0 0 0 0 0 0,003256 0
0 1,0 0 0 0 0 0 0 0 0 −0,1441 0
0 0 1,0 0 0 0 0 0 0 0 −0,5027 0
0 0 0 1,0 0 0 0 0 0 0 7,352 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003256
0 0 0 0 0 1,0 0 0 0 0 0 −0,1441
0 0 0 0 0 0 1,0 0 0 0 0 −0,5027
0 0 0 0 0 0 0 1,0 0 0 0 7,352
0 0 0 0 0 0 0 0 1,0 0 −1,136 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 −1,136 · 10−5
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc3 =
1,0 0 0 0 0 0 0 0 0 0 0,003308 0
0 1,0 0 0 0 0 0 0 0 0 −0,1449 0
0 0 1,0 0 0 0 0 0 0 0 −0,5037 0
0 0 0 1,0 0 0 0 0 0 0 7,357 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003308
0 0 0 0 0 1,0 0 0 0 0 0 −0,1449
0 0 0 0 0 0 1,0 0 0 0 0 −0,5037
0 0 0 0 0 0 0 1,0 0 0 0 7,357
0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 −8,88 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc4 =
1,0 0 0 0 0 0 0 0 0 0 0,00336 0
0 1,0 0 0 0 0 0 0 0 0 −0,1456 0
0 0 1,0 0 0 0 0 0 0 0 −0,5047 0
0 0 0 1,0 0 0 0 0 0 0 7,361 0
0 0 0 0 1,0 0 0 0 0 0 0 0,00336
0 0 0 0 0 1,0 0 0 0 0 0 −0,1456
0 0 0 0 0 0 1,0 0 0 0 0 −0,5047
0 0 0 0 0 0 0 1,0 0 0 0 7,361
0 0 0 0 0 0 0 0 1,0 0 −6,414 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 −6,414 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
86 5 Diseno de los Controladores
hRdc5 =
1,0 0 0 0 0 0 0 0 0 0 0,003411 0
0 1,0 0 0 0 0 0 0 0 0 −0,1464 0
0 0 1,0 0 0 0 0 0 0 0 −0,5057 0
0 0 0 1,0 0 0 0 0 0 0 7,366 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003411
0 0 0 0 0 1,0 0 0 0 0 0 −0,1464
0 0 0 0 0 0 1,0 0 0 0 0 −0,5057
0 0 0 0 0 0 0 1,0 0 0 0 7,366
0 0 0 0 0 0 0 0 1,0 0 −3,958 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 −3,958 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc6 =
1,0 0 0 0 0 0 0 0 0 0 0,003944 0
0 1,0 0 0 0 0 0 0 0 0 −0,154 0
0 0 1,0 0 0 0 0 0 0 0 −0,5159 0
0 0 0 1,0 0 0 0 0 0 0 7,414 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003944
0 0 0 0 0 1,0 0 0 0 0 0 −0,154
0 0 0 0 0 0 1,0 0 0 0 0 −0,5159
0 0 0 0 0 0 0 1,0 0 0 0 7,414
0 0 0 0 0 0 0 0 1,0 0 2,224 · 10−5 0
0 0 0 0 0 0 0 0 0 1,0 0 2,224 · 10−5
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc7 =
1,0 0 0 0 0 0 0 0 0 0 0,003512 0
0 1,0 0 0 0 0 0 0 0 0 −0,1478 0
0 0 1,0 0 0 0 0 0 0 0 −0,5077 0
0 0 0 1,0 0 0 0 0 0 0 7,376 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003512
0 0 0 0 0 1,0 0 0 0 0 0 −0,1478
0 0 0 0 0 0 1,0 0 0 0 0 −0,5077
0 0 0 0 0 0 0 1,0 0 0 0 7,376
0 0 0 0 0 0 0 0 1,0 0 9,202 · 10−7 0
0 0 0 0 0 0 0 0 0 1,0 0 9,202 · 10−7
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
5.2 Controlador de Realimentacion de Estados 87
hRdc8 =
1,0 0 0 0 0 0 0 0 0 0 0,003562 0
0 1,0 0 0 0 0 0 0 0 0 −0,1485 0
0 0 1,0 0 0 0 0 0 0 0 −0,5086 0
0 0 0 1,0 0 0 0 0 0 0 7,38 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003562
0 0 0 0 0 1,0 0 0 0 0 0 −0,1485
0 0 0 0 0 0 1,0 0 0 0 0 −0,5086
0 0 0 0 0 0 0 1,0 0 0 0 7,38
0 0 0 0 0 0 0 0 1,0 0 3,342 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 3,342 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc9 =
1,0 0 0 0 0 0 0 0 0 0 0,003612 0
0 1,0 0 0 0 0 0 0 0 0 −0,1492 0
0 0 1,0 0 0 0 0 0 0 0 −0,5096 0
0 0 0 1,0 0 0 0 0 0 0 7,385 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003612
0 0 0 0 0 1,0 0 0 0 0 0 −0,1492
0 0 0 0 0 0 1,0 0 0 0 0 −0,5096
0 0 0 0 0 0 0 1,0 0 0 0 7,385
0 0 0 0 0 0 0 0 1,0 0 5,751 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 5,751 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
hRdc10 =
1,0 0 0 0 0 0 0 0 0 0 0,003661 0
0 1,0 0 0 0 0 0 0 0 0 −0,1499 0
0 0 1,0 0 0 0 0 0 0 0 −0,5105 0
0 0 0 1,0 0 0 0 0 0 0 7,389 0
0 0 0 0 1,0 0 0 0 0 0 0 0,003661
0 0 0 0 0 1,0 0 0 0 0 0 −0,1499
0 0 0 0 0 0 1,0 0 0 0 0 −0,5105
0 0 0 0 0 0 0 1,0 0 0 0 7,389
0 0 0 0 0 0 0 0 1,0 0 8,147 · 10−6 0
0 0 0 0 0 0 0 0 0 1,0 0 8,147 · 10−6
0 0 0 0 0 0 0 0 0 0 −1,0 0
0 0 0 0 0 0 0 0 0 0 0 −1,0
88 5 Diseno de los Controladores
Para finalizar, los vectores columna que se eligen para formar el espacio nulo, son aquellos
que en la diagonal principal tienen un -1, es decir las columnas 9 y 10 de cada una de las
matrices. Esto con el fin de obtener las matrices Q y V, [1].
V =
0,001602 0,001628 0,009925 0,00672 0,01023 0,003944
−0,07167 −0,07205 −0,4346 −0,2912 −0,4391 −0,154
−0,2508 −0,2513 −1,511 −1,009 −1,517 −0,5159
3,673 3,676 22,07 14,72 22,1 7,414
0,006407 0,006513 0,006617 0,01008 0,006823 0,001972
−0,2867 −0,2882 −0,2897 −0,4368 −0,2927 −0,07699
−1,003 −1,005 −1,007 −1,514 −1,011 −0,2579
14,69 14,7 14,71 22,08 14,73 3,707
−6,922 · 10−6 −5,679 · 10−6 −2,664 · 10−5 −1,283 · 10−5 −1,187 · 10−5 2,224 · 10−5
−2,769 · 10−5 −2,271 · 10−5 −1,776 · 10−5 −1,924 · 10−5 −7,916 · 10−6 1,112 · 10−5
∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
0,003512 0,001781 0,007223 0,01098
−0,1478 −0,07427 −0,2985 −0,4498
−0,5077 −0,2543 −1,019 −1,531
7,376 3,69 14,77 22,17
0,007025 0,003562 0,01083 0,03294
−0,2956 −0,1485 −0,4477 −1,35
−1,015 −0,5086 −1,529 −4,594
14,75 7,38 22,15 66,5
9,202 · 10−7 1,671 · 10−6 1,15 · 10−5 2,444 · 10−5
1,84 · 10−6 3,342 · 10−6 1,725 · 10−5 7,332 · 10−5
Q =
(−0,5 −0,5 −3,0 −2,0 −3,0 −1,0 −1,0 −0,5 −2,0 −3,0
−2,0 −2,0 −2,0 −3,0 −2,0 −0,5 −2,0 −1,0 −3,0 −9,0
)
El vector de seguimiento con la realimentacion de estado se calcula con K = QV −1. El
resultado es:
Kbar =
(19,178 3,828 −3,404 −0,3022 0,03105 0,0038 −0,001 −0,00006
−0,1028 −0,01278 0,0061 0,0002 19,3068 3,844 −3,411 −0,3025
∣∣∣∣∣∣∣∣ −45,122 −0,113
0,3726 −45,588
)
La implementacion de dicho controlador se muestra en la siguiente figura:
5.2 Controlador de Realimentacion de Estados 89
Figura 5-9: Implementacion del regulador
Figura 5-10: Implementacion del regulador K
90 5 Diseno de los Controladores
Figura 5-11: Implementacion del regulador K ampliada
Capıtulo 6
Estimacion de Parametros y Resultados
6.1. Estimacion de parametros
Para la estimacion de los parametros del sistema, se tomaron datos de la entrada y la
salida del sistema, con el objetivo de realizar la estimacion con la ayuda de una herramienta
computacional, en este caso el toolbox de Matlab de Ident, [5], el cual permite realizar este
proceso de distintas forma. Para realizar la identificacion se tomaron los datos de salida
(Posicion de la bola en el plano) a una entrada sinusoidal, como se puede apreciar en la
Figura 6-1 para el eje x y en la Figura 6-2 para el eje y.
Figura 6-1: Medicion del Sistema en el eje X
Posteriormente, mediante el Toolbox de matlab se estimaron las matrices de estado para las
Figuras 6-1 y 6-2, obteniendo como resultado los siguientes valores:
92 6 Estimacion de Parametros y Resultados
Figura 6-2: Medicion del Sistema en el eje Y
Aest =
−0,6947 −0,1062 10,87 −1,905 −3,233 −2,601 9,307 6,59
1,025 −0,5681 0,3702 14,06 −1,056 −3,225 −4,237 −7,991
−8,76 0,3791 −11,08 2,717 44,74 10,93 −75,4 −53,18
0,4867 −9,551 1,699 −25,91 23,99 53,24 54,18 70,27
−5,249 2,469 −28,86 5,236 −336,5 −604,7 510,3 325,6
−1,188 −0,1567 1,141 −6,804 154,0 −253,3 486,5 100,4
4,092 −1,723 12,03 −4,834 218,0 93,22 −544,9 −64,49
2,988 1,73 10,94 21,4 −17,44 118,6 −395,2 −298,5
Best =
−0,1061 0,09149
0,05406 −0,04081
0,1172 −0,03343
−0,2046 0,07228
0,3233 0,3613
0,2277 0,2977
0,09666 0,1829
−0,1918 0,1133
Cest =
(408,9 −375,0 −0,9293 4,312 6,23 −1,481 −18,4 −16,84
440,9 243,4 −2,06 −1,617 10,05 5,992 −10,59 −1,058
)
6.2 Simulaciones de los Controladores 93
Dest =
(0 0
0 0
)Es importante aclarar, que los valores obtenidos en las matrices de estado, seran empleados
para realizar la validacion de los resultados de las simulaciones y posteriormente, poder llevar
a cabo una comparacion contra los de la vida real.
6.2. Simulaciones de los Controladores
6.2.1. Control por Regulacion de Estados
Para realizar la simulacion, se empleo el toolbox de matlab Simulink, donde mediante el uso
de algunas de sus herramientas se llevo a cabo la simulacion. En este caso se emplearon las
matrices calculadas en el capıtulo 5, y la K hallada para el regulador de estados, como datos
de entrada para el correcto funcionamiento de la simulacion. En la Figura 6-3, se puede
apreciar el diagrama implementado en el Toolbox:
Figura 6-3: Esquema de Simulacion por el Controlador por Regulacion
Mientras que en la Figura 6-4, se puede apreciar la respuesta del sistema. Ya que en dicha
figura se puede observar como ante unas condiciones iniciales del sistema diferentes de cero,
este responde de tal manera que lleva los valores distintos de cero a cero en este caso, las
posicion en x y en y.
94 6 Estimacion de Parametros y Resultados
Figura 6-4: Resultado Simulacion del Regulador
6.2.2. Seguidor de Estados
En este caso, fue necesario emplear las matrices obtenidas mediante el toolbox, para realizar
la simulacion del sistema, en la Figura 6-5, se puede apreciar el esquema implementado
para tal fin, ası mismo en la Figura 6-6 se pueden apreciar los resultados obtenidos de la
simulacion:
Figura 6-5: Esquema de Simulacion por el Controlador por Seguimiento
Como se puede apreciar, la respuesta para cada uno de los ejes difiere y posee un error
que es mınimo. El error presentado en cada uno de los ejes es diferente, dandonos 0,6 cm
6.2 Simulaciones de los Controladores 95
Figura 6-6: Resultado Simulacion del Seguidor
y en el eje Y es de 0,88 cm en el eje X. Esto nos indica un error en pixeles de 1,95 y 2,86
respectivamente. Tambien, se pueden apreciar las diferentes oscilaciones de la posicion de
la esfera en el sistema para llegar al Set-point, lo cual se asemeja al comportamiento del
sistema implementado.
6.2.3. Resultados Implementacion Real del Sistema
Como se muestra en la Figura 6-7, al inicio de la grafıca el valor de esta es cero, lo cual
podrıa llevar a pensar que el sistema ya actuo, sin embargo, lo que sucede es que mientras se
abre la interfaz y se realiza configuracion inicial de esta, el sistema no captura datos a traves
de los perifericos del sistema, por lo cual a partir de 1,5seg se ve la respuesta del controlador.
Como se puede observar, la implementacion posee oscilaciones mas pronunciadas y un tiempo
de establecimiento un poco mayor que en la simulacion, Figura 6-4, ya que existen factores
externos que afectan su desempeno, como lo son la construccion del sistema, la bola, la
iluminacion, las sobras producidas por los cambios de luz entre otros.
Algo muy parecido ocurre en el comportamiento del sistema en el eje Y con respecto a la
Figura 6-4.
96 6 Estimacion de Parametros y Resultados
0 1 2 3 4 5 6 7−60
−50
−40
−30
−20
−10
0
10
20
30
40Respuesta Sistema Regulador en el eje X
Tiempo
Pos
icio
n (p
x)
Figura 6-7: Resultado Implementacion del Regulador en el eje X
0 1 2 3 4 5 6 7−30
−20
−10
0
10
20
30Respuesta Sistema con Regulación en el eje Y
Tiempo
Pos
icio
n (p
x)
Figura 6-8: Resultado Implementacion del Regulador en el eje Y
6.2.4. Resultados Implementacion Real del Controlador por Re-
alimentacion de Estados
En la Figura 6-9, por las mismas razones que se han dicho con anterioridad, se aprecia
un tiempo en el que el controlador no provoca ningun cambio en el sistema. Pero en el
6.2 Simulaciones de los Controladores 97
0 1 2 3 4 5 6−40
−30
−20
−10
0
10
20
30
40
50
60Respuesta Sistema con Seguimiento en el eje X
Tiempo
Pos
icio
n (p
x)
Figura 6-9: Resultado Implementacion del Seguidor en el eje X
momento en que este actua, y debido a que la posicion inicial de la bola esta muy alejada del
Set-point deseado en X el controlador provoca un cambio brusco en la posicion de la bola
pero a medida que se aproxima van reduciendo la accion del controlador hasta que llega a
estabilizarlo en la referencia, que en este caso, a 20 pixeles en x con respecto al origen del
plano.
0 1 2 3 4 5 6−40
−30
−20
−10
0
10
20
30
40
50
60Respuesta Sistema con Seguimiento en el eje Y
Tiempo
Pos
icio
n (p
x)
Figura 6-10: Resultado Implementacion del Seguidor en el eje Y
Misma situacion ocurre en el caso del eje Y , ya que se puede apreciar como al inicio de la
98 6 Estimacion de Parametros y Resultados
accion, esta presenta un cambio fuerte mientras que a medida que se acerca al Set-Point esta
disminuye. Llevando a estabilizar la bola en el punto deseado, en este caso 18.
6.2.5. Validacion entrada salida Modelo estimado Vs Modelo Real
Resta validar el la respuesta del sistema real contra la respuesta del sistema estimado, para
esto se realizara la comparacion de la respuesta de la respuesta de ambos sistemas frente
a una entrada sinusoidal. En este caso en las Figuras 6-11, y 6-12, se puede apreciar la
respuesta del sistema tanto en el eje x como en el ejey, donde las graficas de color azul
corresponde al valor estimado, mientras que las graficas de color negro a las mediciones
reales.
Figura 6-11: Comparacion Respuesta Real Vs Estimada eje X
Si bien en las Figuras 6-11 y 6-12, se puede apreciar cierta diferencia entre las graficas, esto
se debe a que en el caso de las graficas reales estas presentan una saturacion al valor maximo
del area del plano, mientras que las estimadas siguen creciendo sin tener en cuenta el area
maxima del plano, lo cual se podrıa asumir como un comportamiento natural en caso de que
el plano tuviese una mayor superficie.
6.2 Simulaciones de los Controladores 99
Figura 6-12: Comparacion Respuesta Real Vs Estimada eje Y
6.2.6. Resultados Reales del Controlador Difuso
En las Figuras 6-13 y 6-14, se puede apreciar al comportamiento del sistema real, cuando se
elige como set-point el origen del sistema, es decir, el punto (0,0) del plano. Las oscilaciones
en la grafica al inicio son mas fuertes debido a que la accion de control que se debe realizar
para llegar al punto deseado es mayor, que cuando la bola se acerca al punto deseado.
Ası mismo, se puede apreciar como las oscilaciones en el eje x al cabo de 3,5seg son mayores
que en el eje y.
Por otra parte en las Figuras 6-15 y 6-16, se puede apreciar el comportamiento del sistema
cuando el punto deseado es distinto al origen del plano, con lo cual el comportamiento del
sistema se modifica de tal manera que la bola llegue al punto deseado.
Mientras que en la Figura 6-17, se muestra la grafica de superficie de las reglas del contro-
lador difuso. La cual se puede interpretar con ayuda de las graficas de colores de las Figuras
6-18 y 6-19, donde cada color tiene una correspondencia, con las reglas aplicadas en el
diseno del controlador. Por ultimo se puede apreciar como el comportamiento del eje x es
inverso al del eje y, lo cual se debe a la ubicacio de los motores en la construccion fısica.
100 6 Estimacion de Parametros y Resultados
0 0.5 1 1.5 2 2.5 3 3.5−10
−5
0
5
10
15
20
25
30Respuesta Real Controlador Difuso en el eje X
Tiempo
Pos
icio
n (p
x)
Figura 6-13: Respuesta del Sistema Real en el Eje X
0 0.5 1 1.5 2 2.5 3 3.5−5
0
5
10
15
20Respuesta Real Controlador Difuso en el eje Y
Tiempo
Pos
icio
n (p
x)
Figura 6-14: Respuesta del Sistema Real en el Eje Y
6.2 Simulaciones de los Controladores 101
0 1 2 3 4 5 6 7 80
5
10
15
20
25
30
35Respuesta Real Controlador Difuso en el eje X
Tiempo
Pos
icio
n (p
x)
Figura 6-15: Respuesta del Sistema Real en el Eje X
0 1 2 3 4 5 6 7 80
5
10
15
20
25
30
35
40Respuesta Real Controlador Difuso en el eje Y
Tiempo
Pos
icio
n (p
x)
Figura 6-16: Respuesta del Sistema Real en el Eje Y
102 6 Estimacion de Parametros y Resultados
Figura 6-17: Grafico de Superficie Resultante
Figura 6-18: Grafico Colores Reglas en el eje X
Figura 6-19: Grafico Colores Reglas en el eje Y
6.2 Simulaciones de los Controladores 103
6.2.7. Costos de implementacion
El Costo total de implementacion del prototipo incluyendo las pruebas de los otros mecanis-
mos fue de 436500 pesos. Mientras que para construir una replica el valor aproximado seria
de 246500 pesos.
Tabla 6-1: Costos de implementacionMateriales Costo
Servomotores 70000
Paneles laterales 16000
Estructura de madera 45000
Rotulas 25500
Arduino 30000
Base de motores y pivote 8000
Barras de aeromodelismo 32000
Plano 20000
Otras pruebas de diseno 190000
Conclusiones y Trabajos Futuros
Conclusiones
Si bien el planteamiento del modelo del sistema se puede abordar por distintos metodos,
a lo largo de este trabajo se logro evidenciar que realizar el planteamiento a traves de la
fısica newtoniana resulta mucho mas complejo que realizar el planteamiento por medio
de las ecuaciones de Lagrange, ya que el nivel de abstraccion en las ecuaciones de
Lagrange es mucho mayor que el caso de la fisica newtoniana, reduciendo la cantidad
de calculos necesarios para obtener el modelo.
La precision en un controlador difuso depende de la cantidad de reglas y parametros
de entrada que se toman, ya que a mayor cantidad de reglas los intervalos de control
son mas pequenos, permitiendo realizar un control mas preciso y suave, lo cual a su
vez se refleja en el movimiento del plano. Sin embargo, se debe tener en cuenta que a
mayor cantidad de reglas, mas grande es el costo computacional, lo cual a su vez se
refleja en el desmejoramiento del rendimiento y la respuesta del sistema.
El controlador por realimentacion de estados posee un comportamiento mas suave que
el controlador difuso, ya que dentro del diseno del controlador la cantidad de variables
controladas es mayor, puesto que en controlador por regulacion de estados se tienen en
cuenta las ocho variables de estado del sistema, mientras que en el caso del controlador
difuso solamente se tiene en cuenta el error de posicion y la variacion del error para
cada uno de los ejes.
La implementacion de un controlador difuso se puede realizar con base en el comporta-
miento del sistema implementado, y no depende directamente de un modelo analıtico,
ya que a traves del estudio de la relacion entrada-salida del sistema se pueden estable-
cer las reglas del sistema para que este se comporte acorde a lo deseado. Mientras que
para disenar un controlador por realimentacion de estados es necesaria la obtencion
del modelo analıtico para posteriormente realizar el calculo de la constante de reali-
mentacion de estados, lo cual requiere un mayor conocimiento del comportamiento del
sistema y su dinamica. Esto implica que la rapidez con la cual se pueden iniciar las
pruebas y el afinamiento de los controladores es mayor en el caso del controlador difuso
frente al de realimentacion de estados.
106 6 Estimacion de Parametros y Resultados
Al realizar la comparacion entre los resultados obtenidos y las simulaciones, se puede
observar que en las simulaciones la respuesta del sistema es siempre mas rapida que en
el sistema construido, aproximadamente un 60 %, ya que en las simulaciones el tiempo
de establecimiento oscilo entre 1 y 1.5 segundos en el caso del regulador mientras que
en el caso de la vida real oscilo entre 2.5 y 3 segundos, mientras que en el caso del
seguidor los tiempos oscilaron entre 10 y 12 segundos mientras que en la vida real el
tiempo de establecimiento fue alrededor de 15 segundos. Ya que en las simulaciones
no se contempla el desempeno del sensor, ni el tiempo de envio y recepcion entre la
interfaz grafica, el controlador y los actuadores.
Trabajos Futuros
En el presente capıtulo se proponen algunas aplicaciones y mejoras que se pueden desarrollar
a partir del trabajo presentado.
Estudiar Comportamiento del Sistema a Distintas Bolas
La posibilidad en este campo radica, en que si bien la solucion implementada se hizo con
una bola de squash, resultarıa interesante estudiar el comportamiento del sistema frente a
diferentes bolas, por ejemplo ¿Que pasarıa si la bola es un ping-pong o si fuera una pelota
de tenis o una pelota que no mantiene su forma?, asi mismo se puede estudiar el comporta-
miento cuando la bola cambia de color e inclusive de forma.
Comparacion de Tecnicas de Control Adicionales
La posibilidad de desarrollo en este campo radica en el hecho de que al mismo sistema se le
pueden aplicar tecnicas de control, distintas a las que se aplican en el presente trabajo. Lo
cual posibilitarıa una comparacion de las respuestas de cada una de estas, y con esto lograr
determinar la mejor tecnica para el sistema implementado. Esto a su vez permitirıa apreciar
de mejor forma las ventajas o desventajas que puede presentar una tecnica de control apli-
cada a un sistema frente a otra.
Mejora en el Procesamiento
En la tercera y ultima propuesta, se propone mejorar el procesamiento digital de imagen,
con el objetivo de reducir los efectos de elementos externos al sistema como pueden ser la
luz. En este caso, se debe tener en cuenta que esto podrıa implicar el desarrollo de nuevos
6.2 Simulaciones de los Controladores 107
algoritmos de deteccion mejorando la velocidad de procesamiento en el sistema ya que esto
afecta directamente el desempeno del sistema.
Bibliografıa
[1] d’Azzo, J. J., and Houpis, C. D. Linear control system analysis and design: conven-
tional and modern. McGraw-Hill Higher Education, 1995.
[2] Fu, S., Sui, Z., Wang, H., and Tian, Y. Controllability of the nonlinear underac-
tuated ball and plate system. In Proc. Int. Conf. Mechatronics and Automation (Aug.
2009), pp. 1179–1183.
[3] Harris, J. An introduction to fuzzy logic applications, vol. 23. Springer Science &
Business Media, 2001.
[4] Liu, D., Tian, Y., and Duan, H. Ball and plate control system based on sliding mode
control with uncertain items observe compensation. In Proc. IEEE Int. Conf. Intelligent
Computing and Intelligent Systems ICIS 2009 (Nov. 2009), vol. 2, pp. 216–221.
[5] Lyshevski, S. E. Engineering and scientific computations using MATLAB. John Wiley
& Sons, 2005.
[6] Passino, K. M. In Biomimicry for Optimization, Control, and Automation. Springer,
Jan. 2005.
[7] Rodrıguez, M. G. Introduccion rapida a Matlab y Simulink para ciencia e ingenierıa.
Ediciones Dıaz de Santos, 2003.
[8] Symon, K. R., and Almarza, A. Y. Mecanica. Aguilar, 1977.
[9] Wang, H., Tian, Y., Ding, C., Gu, Q., and Guo, F. Output regulation of the
ball and plate system with a nonlinear velocity observer. In Proc. 7th World Congress
Intelligent Control and Automation WCICA 2008 (June 2008), pp. 2164–2169.