Full text
Volumen I Memoria – Anexos PROYECTO FINAL DE CARRERA “CONTROL DE POSICIONAMIENTO DE LA PLATAFORMA HEXAPOD” PFC presentado para optar al título de Ingeniería Técnica Industrial especialidad ESPECIALIDAD por Sergio Arruga Cantalapiedra Barcelona, 15 de Junio de 2011 Tutor proyecto: Francesc Pozo Montero Departamento de Matemática Aplicada III (MA III) Universitat Politècnica de Catalunya (UPC)
ÍNDICE PROYECTO Índice memoria .......................................................................................... 1 Resum ....................................................................................................... 3 Resumen ................................................................................................... 3 Abstract .................................................................................................... 3 Agradecimientos ......................................................................................... 5 CAPÍTULO 1: Introducción .................................................................. 6 CAPÍTULO 2: Infraestructura .............................................................. 8 2.1. Hexapod ...................................................................................... 8 2.2. Sensor ......................................................................................... 9 2.3. PC ............................................................................................. 10 2.4. Montaje ..................................................................................... 10 CAPÍTULO 3: Control básico .............................................................. 12 3.1. Calibrate .................................................................................... 13 3.2. Home ........................................................................................ 13 3.3. Programa principal ...................................................................... 14 3.4. Force-Torque Measurement .......................................................... 16 CAPÍTULO 4: 1er Control: Altura ........................................................ 17 4.1. Control PID ................................................................................ 17 4.1.1. Control P .............................................................................. 18 4.1.2. Control PI ............................................................................. 18 4.1.3. Control PD ............................................................................ 18 4.1.4. Control PID ........................................................................... 19 4.1.5. Ajuste de parámetros ............................................................ 19 4.2. Obtención del Programa .............................................................. 20 CAPÍTULO 5: 2º Control: Movimiento lineal ....................................... 23 5.1. Movimiento inicial ....................................................................... 23 5.2. Control sobre la altura del CG ....................................................... 25 5.3. Control por cinemática inversa ..................................................... 26 5.4. Obtención de P1, P2 y P3 ............................................................. 27 5.5. Control de P1, P2 y P3 ................................................................. 28 5.6. Programa definitivo e indicaciones ................................................ 30 CAPÍTULO 6: 3er Control: Estabilización de una bola ......................... 32 Memoria
6.1. Montaje ..................................................................................... 32 6.2. Obtención de datos del sensor ...................................................... 33 6.3. Control proporcional al momento Mx+ PI ........................................ 33 6.4. Incorporación de control respecto a My .......................................... 36 6.5. Control proporcional al momento + PID ......................................... 37 6.6. Supresión de la rugosidad de la plataforma .................................... 38 6.7. Filtrado de la señal ...................................................................... 39 6.7.1. Introducción al filtrado de señales ........................................... 39 6.7.2. Obtención del filtro ................................................................ 40 6.8. Control PD al momento + PI ......................................................... 42 6.9. Programa definitivo e indicaciones ................................................ 44 CAPÍTULO 7: 4º Control: Estabilización de una bola (C. Difuso) ....... 46 7.1. Control Difuso ............................................................................ 46 7.1.1. Lógica Difusa ........................................................................ 46 7.1.2. Control Difuso ....................................................................... 47 7.1.3. Implementación en Matlab ..................................................... 48 7.2. Control Difuso con una variable de entrada .................................... 48 7.3. Control Difuso con dos variables de entrada ................................... 50 7.3.1. Funciones de pertenencia ....................................................... 51 7.3.2. Reglas del modelo ................................................................. 53 7.4. Programa definitivo e indicaciones ................................................ 54 CAPÍTULO 8: lineas de trabajo futuro ............................................... 55 CAPÍTULO 9: Conclusiones ................................................................ 57 CAPÍTULO 10: Bibliografía ................................................................ 58 10.1. Referencias bibliográficas .......................................................... 58 10.2. Bibliografía de consulta ............................................................. 58 Descripción archivos .................................................................. Anexo I Catálogo Hexapod ..................................................................... Anexo II Catálogo Sensor ...................................................................... Anexo III Tutorial Control Difuso Matlab .................................................. Anexo IV PFC 1 .......................................................................................... Anexo V Anexos
Memoria “CONTROL DE POSICIONAMIENTO DE LA PLATAFORMA HEXAPOD” PFC presentado para optar al título de Ingeniero Técnico Industrial especialidad MECÁNICA por Sergio Arruga Cantalapiedra Barcelona, 15 de Junio de 2011 Tutor proyecto: Francesc Pozo Montero Departamento de Matemática Aplicada III (MA III) Universitat Politècnica de Catalunya (UPC)
Control de Posicionamiento de la plataforma Hexapod - 1 - ÍNDICE MEMORIA Índice memoria .......................................................................................... 1 Resum ....................................................................................................... 3 Resumen ................................................................................................... 3 Abstract .................................................................................................... 3 Agradecimientos ......................................................................................... 5 CAPÍTULO 1: Introducción .................................................................. 6 CAPÍTULO 2: Infraestructura .............................................................. 8 2.1. Hexapod ...................................................................................... 8 2.2. Sensor ......................................................................................... 9 2.3. PC ............................................................................................. 10 2.4. Montaje ..................................................................................... 10 CAPÍTULO 3: Control básico .............................................................. 12 3.1. Calibrate .................................................................................... 13 3.2. Home ........................................................................................ 13 3.3. Programa principal ...................................................................... 14 3.4. Force-Torque Measurement .......................................................... 16 CAPÍTULO 4: 1er Control: Altura ........................................................ 17 4.1. Control PID ................................................................................ 17 4.1.1. Control P .............................................................................. 18 4.1.2. Control PI ............................................................................. 18 4.1.3. Control PD ............................................................................ 18 4.1.4. Control PID ........................................................................... 19 4.1.5. Ajuste de parámetros ............................................................ 19 4.2. Obtención del Programa .............................................................. 20 CAPÍTULO 5: 2º Control: Movimiento lineal ....................................... 23 5.1. Movimiento inicial ....................................................................... 23 5.2. Control sobre la altura del CG ....................................................... 25 5.3. Control por cinemática inversa ..................................................... 26 5.4. Obtención de P1, P2 y P3 ............................................................. 27 5.5. Control de P1, P2 y P3 ................................................................. 28 5.6. Programa definitivo e indicaciones ................................................ 30 CAPÍTULO 6: 3er Control: Estabilización de una bola ......................... 32
Sergio Arruga Cantalapiedra - 2 - 6.1. Montaje ..................................................................................... 32 6.2. Obtención de datos del sensor ...................................................... 33 6.3. Control proporcional al momento Mx+ PI ........................................ 33 6.4. Incorporación de control respecto a My .......................................... 36 6.5. Control proporcional al momento + PID ......................................... 37 6.6. Supresión de la rugosidad de la plataforma .................................... 38 6.7. Filtrado de la señal ...................................................................... 39 6.7.1. Introducción al filtrado de señales ........................................... 39 6.7.2. Obtención del filtro ................................................................ 40 6.8. Control PD al momento + PI ......................................................... 42 6.9. Programa definitivo e indicaciones ................................................ 44 CAPÍTULO 7: 4º Control: Estabilización de una bola (C. Difuso) ....... 46 7.1. Control Difuso ............................................................................ 46 7.1.1. Lógica Difusa ........................................................................ 46 7.1.2. Control Difuso ....................................................................... 47 7.1.3. Implementación en Matlab ..................................................... 48 7.2. Control Difuso con una variable de entrada .................................... 48 7.3. Control Difuso con dos variables de entrada ................................... 50 7.3.1. Funciones de pertenencia ....................................................... 51 7.3.2. Reglas del modelo ................................................................. 53 7.4. Programa definitivo e indicaciones ................................................ 54 CAPÍTULO 8: lineas de trabajo futuro ............................................... 55 CAPÍTULO 9: Conclusiones ................................................................ 57 CAPÍTULO 10: Bibliografía ................................................................ 58 10.1. Referencias bibliográficas .......................................................... 58 10.2. Bibliografía de consulta ............................................................. 58 Anexos a la memoria
Control de Posicionamiento de la plataforma Hexapod - 3 - RESUM Aquest projecte té per objecte controlar el posicionament de la plataforma Hexapod comercialitzada pe r Quanser i a dquirida pe l grup C oDAlab. P er a ixò s'estableixen com a metes tres controls. El primer és un control sobre l'alçada de la plataforma, i s'obté mitjançant un control PI. En el segon la plataforma ha de poder realitzar un moviment lineal sense rotació, i de nou s'implementa amb èxit un control PI per obtenir el programa definitiu. En el tercer cas, la plataforma ha de poder estabilitzar una bola que es desplaça per la seva superfície, oposant-se al s eu m oviment i enviant-la a l c entre. S 'aconsegueix pri mer m itjançant un control PD, i després implementant un control Difús. En l a memòria s 'explica l'obtenció de c ada un d els pro grames, ai xí c om e l funcionament i fonaments dels controls PID i Difús. RESUMEN Este proyecto tiene por objeto controlar el posicionamiento de la plataforma Hexapod comercializada por Quanser y adquirida por el grupo CoDAlab. Para ello se establecen como metas tres controles. El primero es un control sobre la altura de la plataforma, y se obtiene mediante un control PI. En el segundo, la plataforma debe poder realizar un movimiento lineal sin rotación, y de nuevo se implementa c on é xito un c ontrol PI pa ra o btener e l programa definitivo. En e l tercer caso, la plataforma debe poder estabilizar una bola que se desplaza por su superficie, op oniéndose a s u m ovimiento y en viándola a l c entro. S e c onsigue primero mediante un control PD, y después implementando un control Difuso. En la memoria se explica la obtención de cada uno de los programas, así como el funcionamiento y fundamentos de los controles PID y Difuso. ABSTRACT This project aims to control the positioning of the Hexapod platform marketed by Quanser and acquired by the CoDAlab group. To this end, three controls are set as goals. The first one is a control on the height of the platform, and is obtained through a P I control. Secondly, the p latform m ust b e able to m ake a l inear motion w ithout ro tation, and a PI c ontrol is again successfully i mplemented in the final program. In the third case, the platform should stabilize a ball that moves across its surface, opposing the motion and sending it to the center of the platform. It’s achieved firstly with a PD control, and later implementing a Fuzzy control. In this report, the development of each of the programs and the fundamentals of PID and Fuzzy control are explained.
Sergio Arruga Cantalapiedra - 4 -
Control de Posicionamiento de la plataforma Hexapod - 5 - AGRADECIMIENTOS Este proyecto no se podría haber llevado a cabo sin la colaboración de algunas personas que me han brindado su ayuda, conocimientos y apoyo. Quedo especialmente agradecido con mi tutor de proyecto, el profesor Francesc Pozo. A gradezco s us re spuestas, directrices, c omentarios y la to tal implicación mostrada en este proyecto. Me ha asesorado y animado en todo momento. Agradezco sinceramente la participación activa del profesor Mauricio Zapateiro en este proyecto, su interés, su predisposición constante a ayudarme y su paciencia algún viernes por la tarde. Quiero resaltar también mi agradecimiento al profesor Leonardo Acho por el interés y entusiasmo mostrados hacia este proyecto, así como su colaboración y apoyo en la fase inicial del mismo. Finalmente agradezco enormemente al grupo CoDAlab en general, y a su director José Rodellar en particular, la confianza transmitida permitiéndome realizar este proyecto con el Hexapod, así como la paciencia mostrada durante el tiempo en que he estado trabajando en el aula 1B14.
Sergio Arruga Cantalapiedra - 12 - CAPÍTULO 3: CONTROL BÁSICO El c ontrol de l a p lataforma H exapod s e realiza de sde e l software m atemático Matlab, en concreto desde la plataforma de simulación Simulink que incorpora éste, mediante la integración del paquete QuaRK dentro del mismo. El software completo fue suministrado por la empresa Quanser con el Hexapod, así como los cuatro programas principales que se expondrán en este apartado. El sistema se inicia accionando el Hexapod y encendiendo el programa Matlab en el PC. Inicialmente se debe asociar el directorio de Matlab (pestaña Current Directory) a la carpeta donde se encuentran los programas: C:/QuanserMat2009/Controllers. Posteriormente deben cargarse los si guientes f icheros d esde la Command Window: • setup_hexapod, que permitirá ejecutar los programas del Hexapod. • calib10367, que permitirá ejecutar los programas del sensor. A partir de este punto se podrán abrir los programas que se deseen ejecutar desde la función Open file. El proceso para ejecutar en t iempo re al un pro grama e s e l mismo par a to dos ellos. Inicialmente debe generarse el programa en Matlab, pues los modelos de Simulink que se usan aquí contienen siempre funciones de Matlab que deben ser generadas. Esta acción se lleva a cabo mediante la función Incremental build (figura 4) y su duración varía según el modelo que se esté cargando (en general requiere entre 10 y 15 segundos). Una vez generado el código, debe conectarse el modelo con el Hexapod, con la función Connect To Target (figura 5). Tras uno o dos segundos se oscurecerá el icono con el que se inicia el programa (figura 6), lo que indica que ya puede clicarse. Conviene cerciorarse de que el pulsador rojo del mecanismo de seguridad del Hexapod no está presionado, pues de lo contrario el Hexapod no actuará.
Control de Posicionamiento de la plataforma Hexapod - 13 - Figura 4. Botón Incremental build de Simulink. Figura 5. Botón Connect To Target de Simulink. Figura 6. Botón Start simulation de Simulink. 3.1. Calibrate El programa Hexapod_Calibrate debe ser el primero en ejecutarse cada vez que se en cienda el H exapod o s e i nicie el entorno Matlab. El c ometido d e es te programa es obtener lo que comúnmente se conoce como cero de máquina: el punto donde se sitúa el sistema de coordenadas. En el Hexapod, el sistema de coordenadas es independiente para cada pata, es decir, cada pata tiene un sistema de coordenadas propio. Cada pata tiene un s istema d e r eferencia u nidimensional, d onde el ej e ú nico coincide con la guía por la que se desplaza, y cuyo origen se sitúa en el centro de la guía. Por ello, cuando se inicia el programa Calibrate, éste ordena a cada pata que se vaya hacia su extremo hasta hacer tope, y a ese punto le otorga el valor de p osición 310 q ue e s, e n m ilímetros, la distancia que hay de sde e l punto central de la guía hasta el punto de máxima apertura de la pata. Para poder llevar a cabo la calibración es necesario mantener pulsado el botón “bypass” del mecanismo de emergencia desde el instante anterior a iniciar el movimiento has ta q ue apare ce el mensaje que indica que la calibración s e ha realizado con éxito. 3.2. Home El programa Hexapod_Home coloca la máquina en la que se considera su posición inicial: envía cada una de las patas a la posición correspondiente a una cuarta parte de la longitud de la guía. Dado que la guía mide 68 cm, y que el origen del sistema de referencia de las patas se ha situado en el centro en todos los c asos, c ada pata e s e nviada a l a posición +1 7 c m de s u s istema d e referencia. Desde esta posición, cada pata puede desplazarse un m áximo de 14 cm hac ia e l e xtremo d e l a g uía, y de 8,5 c m hac ia e l c entro ( para e vitar colisiones entre patas). Por lo tanto, las patas nunca alcanzarán la posición cero en su sistema de referencia. La altura a la que se encuentra la plataforma superior en posición inicial, medida desde la superficie superior de la plataforma inferior, es de 33,7 cm. Su rango de alturas alcanzables se establece entre 21,5 y 36,8 cm. Es ac onsejable re alizar esta operación s iempre antes d e iniciar c ualquier programa, pue s s e e vitan m ovimientos brus cos en l os instantes iniciales de la simulación.
Sergio Arruga Cantalapiedra - 14 - Para llevar a cabo este programa es necesario mantener pulsado el botón “bypass” del mecanismo de emergencia del Hexapod durante toda su ejecución, como sucede con el programa de calibración. Los programas Calibrate y Home son los únicos que requieren esta acción. 3.3. Programa principal El programa principal (figura 7) para el control de la plataforma Hexapod fue también s uministrado po r e l p roveedor. E l pro grama e stá i deado p ara q ue e l control se realice sobre la posición de las seis patas, cada una con el sistema de referencia comentado anteriormente. En l a parte s uperior i zquierda de l e squema, s e ge nera un a s eñal d e s eis componentes, todos ellos con el mismo valor: 170 (que corresponde a la posición inicial de cada pata). A esta señal se suma otra señal de seis componentes que proviene de un bloque llamado Square Wave Commands (figura 8): es dentro de este bloque donde se debe definir el movimiento deseado para cada pata. De la suma de estas dos señales se obtiene una señal de seis componentes que indica la po sición que de be to mar c ada p ata e n c ada i nstante. Las patas e stán numeradas en el programa y etiquetadas en el Hexapod para evitar confusiones. Para c omprender e l funcionamiento d el e squema, s upongamos q ue d eseamos que cada pareja de patas se abra y cierre continuamente, lo que ocasionará que la plataforma superior se desplace en un movimiento de vaivén vertical y sin rotación, siempre que las seis patas estén sincronizadas. Debemos entrar en el bloque Square Wave Commands y asignarle una s eñal de entrada sinusoidal a cada pata, todas con la misma frecuencia y de amplitud 75. Las seis patas iniciarán e l ba lanceo al un ísono, e n un movimiento d e v aivén c entrado e n e l punto 170: se desplazarán, pues, desde el punto 95 hasta el punto 245 de su sistema de coordenadas propio. Figura 8. Bloque Square Wave Commands. 1 Out1 xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 0 0 0 0 0 0 6
Figura 7. Programa principal de control del Hexapod. -Kmm to m -KOut1 Square Wave Commands U( : ) 0.6/1 Maximum Joint Speed (0.6 m/s) 1 desired initial speed trajectory Linear Trajectory pos H la q Hexapod_inversekin_variable_arms Inverse Kinematics 0 -1 337 Hexapod World Position 170 170 170 170 170 170 Hexapod Joints (From Inverse Kin) q_desired q Hexapod Interface [q] 1 -K- -K- [q] [q] q la pos H i Hexapod_forwardkin_variable_arms Foward Kinematics int32 int32 ones (1,6)*377.825e-3 Arm Lenghts 170 6 170 5 170 4 170 3 170 2 170 1 3 3 6 6 6 6 6 6 6 [1x3] [1x3] [1x3] [3x3] [3x3] 6 6 66 6 6 6 6 6 6 3 3 Control de Posicionamiento de la plataforma Hexapod - 15 -
Sergio Arruga Cantalapiedra - 16 - La ganancia que se ubica entre la salida del bloque Square Wave Commands y la suma e s u n v ector d e se is c omponentes, inicialmente u n v ector d e u nos. Modificando este vector podemos multiplicar una o varias de las seis señales por un escalar sin modificar el resto de señales. Si deseamos, por ejemplo, que el movimiento anterior s ólo lo re alicen las cuatro p rimeras patas , de bemos modificar el vector de manera que sus dos últimos componentes sean ceros. La señal resultante de la suma es procesada posteriormente para ser transformada en impulsos eléctricos. En la mitad inferior del programa se encuentra el modelo matemático del Hexapod. El primer bloque azul contiene la cinemática directa que, partiendo de la posición conocida por lectura de las seis patas, obtiene la posición pos del centro de la plataforma superior y una matriz H que indica la orientación de la plataforma. E l programa pre senta un visor que indica las tres coordenadas del punto pos durante la ejecución del programa. Dichas coordenadas están referenciadas al sistema de ejes general del Hexapod, cuyo origen se encuentra centrado en la superficie superior de la base. Por tanto, en posición inicial, las coordenadas del punto pos son [0, 0, 337]. El segundo bloque contiene la cinemática inversa, que obtiene la posición de las seis patas partiendo del vector pos y la matriz H. Las posiciones calculadas son mostradas en un visor durante la ejecución del programa. 3.4. Force-Torque Measurement El pro grama Force_Torque_Measurement va as ociado a l s ensor, y una v ez iniciado devuelve las lecturas d e é ste. E l p rograma s implemente d evuelve dos señales vectoriales: • Las componentes x, y, z de la fuerza recibida por el sensor. • El torque o momento experimentado por el sensor respecto a los ejes x, y, z.
Control de Posicionamiento de la plataforma Hexapod - 17 - CAPÍTULO 4: 1ER CONTROL: ALTURA El objetivo de este primer control es que la plataforma superior del Hexapod alcance la altura deseada por el usuario manteniéndose plana. Para conseguir el movimiento se realizará un control PID sobre la máquina. 4.1. Control PID El c ontrol P ID e s e l s ubsistema de c ontrol local m ás c omúnmente uti lizado e n procesos i ndustriales. P ID e s sinónimo d e acción p roporcional, integral y derivativa. Para el correcto funcionamiento de un controlador PID que regule un p roceso o sistema se necesita, al menos: 1. Un sensor, que determine el estado del sistema. 2. Un controlador, que genere la señal que gobierna al actuador. 3. Un actuador, que modifique al sistema de manera controlada. El s ensor pro porciona una s eñal ana lógica o di gital a l c ontrolador, la cual representa el punto actual en el que se encuentra el proceso o sistema. El controlador lee una señal externa que representa el valor que se desea alcanzar. Esta señal recibe el nombre de punto de consigna (o punto de referencia), la cual es de la misma naturaleza y tiene el mismo rango de valores que la señal que proporciona el sensor. El controlador resta la señal de punto actual a la señal de punto de c onsigna, obteniendo as í la s eñal de e rror, q ue determina e n c ada instante la diferencia que hay e ntre el v alor d eseado (c onsigna) y e l valor medido. El controlador trabaja con la señal de error para generar la señal de salida, que se va a utilizar para gobernar al actuador.
Sergio Arruga Cantalapiedra - 18 - 4.1.1. Control P La respuesta más simple es hacer que la señal de salida sea proporcional al error detectado y o puesta al m ismo: re acción pro porcional ne gativa. E ste e s e l significado de la P en el control PID. Esta respuesta proporcional es la base de muchos controles simples. Sin embargo, existe una clara falla: si no hay error, no hay control. Así que si se usa este c ontrolador, y el s istema re quiere una s eñal de e ntrada p ara funcionar, siempre existirá un error residual. Cuanto mayor sea la ganancia en el control P, menor será el error remanente. Además, normalmente una m ayor ganancia provoca una re spuesta más rápida para reducir el error. Desafortunadamente, al aumentar la ganancia el sistema puede volverse inestable. Aún así, los controladores proporcionales se han implementado y se implementan aún e n m uchas ap licaciones. E l go bernador centrífugo de W att ut ilizado e n s u máquina de v apor e s qui zás e l C ontrol P m ás c onocido. F ue pre cisamente l a inestabilidad causada en algunos mecanismos al evolucionar la ingeniería lo que inició el estudio matemático serio de la estabilidad en el control. 4.1.2. Control PI Para eliminar el fallo del control P, se añade un elemento integrador (la I en PID). Esto forma el llamado control PI. La salida del control es la suma de dos términos: una respuesta proporcional y una integral del error. De este modo el error en el s istema p uede s er n ulo, y c ontinuará ex istiendo u na a cción d e control, pues al integrar la señal acumula el error del pasado. El d iseño d e u n c ontrolador d e es te t ipo es m ás c omplejo, p ues d eben establecerse dos variables de ganancia: una para la acción proporcional y otra para la acción integral. Además, el integrador aumenta la complejidad dinámica del sistema general. Por lo tanto la sintonización de un control PI requiere un diseño más elaborado, pero la libertad que adquiere el diseño supone mayor rendimiento en una amplia variedad de situaciones de control. 4.1.3. Control PD La acción proporcional es instantánea. La acción integral recuerda el pasado. A menudo una acción previsora puede ser beneficiosa para el sistema, y la acción derivativa la provee. Ese es el significado de la D en el control PID: la derivativa tiene l a c apacidad d e p redecir f uturos v alores de l a s eñal ( dentro d e un os límites). En particular en el control de posición de dispositivos mecánicos, el sistema tiene una elevada inercia y reducida amortiguación. De ello resulta una respuesta relativamente l enta y a menudo un c omportamiento o scilatorio indeseado. E l sistema puede adquirir amortiguación mediante una respuesta a la velocidad, es decir, a la derivada de la posición. En el control PD la acción proporcional al error actual es aumentada con una acción proporcional a la tasa de variación actual del error.
Control de Posicionamiento de la plataforma Hexapod - 19 - El mayor problema en la acción PD es su sensibilidad al ruido. La derivación de ruido devuelve una señal aún más ruidosa, creando un falso control. Para implementar un control PD, el ruido debe ser filtrado o eliminado. 4.1.4. Control PID El control PID presenta las tres opciones. Es con mucho el control simple (una entrada, una salida) más popular, pues más de un 90% de los lazos de control reportados en la actualidad utilizan un control PID. La acción de control es la suma de tres términos separados relacionados con el error actual, la integral del error pasado y una predicción simple del error futuro. • La acción P es proporcional al error observado. Provee una respuesta inmediata al error actual. • La ac ción I integra e l e rror de l pas ado para p roveer una re spuesta duradera. Su objetivo es reducir el error en estado estacionario. • La acción D anticipa la respuesta del proceso aplicando una acción proporcional a l a d erivada de l e rror. Su o bjetivo e s ap ortar m ejor amortiguación y una respuesta más rápida. El diseño requiere la selección de tres parámetros, las ganancias para cada acción: c onstante d e pro porcionalidad, c onstante de i ntegración y c onstante derivativa. 4.1.5. Ajuste de parámetros El o bjetivo del ajuste de los parámetros P ID es lograr que e l bucle de control corrija eficazmente y en el mínimo tiempo los efectos de las perturbaciones; se tiene que lograr la mínima integral de error. Si los parámetros del controlador PID ( la g anancia de l p roporcional, i ntegral y de rivativo) s e el igen incorrectamente, el proceso a controlar puede ser inestable Hay varios métodos para ajustar un lazo de PID. El método más efectivo generalmente re quiere del de sarrollo de alguna forma de l modelo d el proceso, para luego e legir P , I y D b asándose en los parámetros d el modelo d inámico. Otra opción es realizar un ajuste manual Un método de ajuste consiste en establecer primero los valores de I y D a cero. A continuación, se incrementa P hasta que la salida del lazo oscile. Se establece P a un valor anterior al configurado previamente. Después se incrementa I hasta que el proceso se ajuste en el tiempo requerido (aunque subir mucho I puede causar inestabilidad). Finalmente, se incrementa D, si es necesario, hasta que el lazo sea lo suficientemente rápido para alcanzar su referencia tras una variación brusca de la carga.
Sergio Arruga Cantalapiedra - 20 - 4.2. Obtención del Programa El programa a realizar en este caso es de complejidad reducida, y su motivación es pri ncipalmente la d e e stablecer c ontacto c on l a m áquina y s us pro gramas principales, así como con el método de control PID. Para po der re alizar un c ontrol PID sobre l a a ltura del H exapod e s necesario conocer e n c ada m omento l a al tura re al a l a que s e e ncuentra. P ara e llo s e extrae la coordenada z del vector pos, el vector calculado por cinemática directa en e l pro grama p rincipal, cuyas tre s c omponentes indican las coordenadas del centro de g ravedad de l a pl ataforma s uperior. P ara po der anal izar e l comportamiento de la componente z del vector, se puede conectar la señal a su vez a un scope, cuyo cometido es graficar la señal. Figura 9. Programa principal control altura. El c ontrol de be re alizarse s obre el e rror e xistente e ntre l a po sición re al y la deseada, de modo que debe crearse una señal que indique en todo momento la diferencia entre ambos valores: zdeseada - zactual. Para la implementación de l c ontrol P ID, el pro grama S imulink di spone d e un bloque con el mismo nombre. Para configurar el control, el usuario sólo debe definir los tres parámetros del controlador: las constantes de proporcionalidad, de integración y de derivación. El bloque realiza la operación de integrar y derivar la señal y sumar las tres señales con sus respectivas ganancias. Por lo tanto, la señal del error existente entre la altura deseada y la real se introduce en un bl oque P ID; la señal de salida de este bloque es la que de be enviarse a cada una de las patas (figura 10). -Kmm to m zOut1 Square Wave Commands Scope3 U( : ) 0.6/1 Maximum Joint Speed (0.6 m/s) 1 desired initial speed trajectory Linear Trajectory pos H la q Hexapod_inversekin_variable_arms Inverse Kinematics Hexapod World Position Hexapod Joints (From Inverse Kin) q_desired q Hexapod Interface [q] 1 -K- -K- [q] [q] q la pos H i Hexapod_forwardkin_variable_arms Foward Kinematics int32 int32 ones (1,6)*377.825e-3 Arm Lenghts 170 6 170 5 170 4 170 3 170 2 170 1
Control de Posicionamiento de la plataforma Hexapod - 21 - Antes de experimentar con la m agnitud de los parám etros, e s i mportante razonar su signo. Supongamos que la plataforma se encuentra por debajo de la posición deseada, por tanto, que el error es positivo. Lo deseado en este caso es que la plataforma ascienda, es decir, que las patas se muevan hacia el centro de la guía (su origen). Para un error positivo requerimos un movimiento negativo, por tanto debe cambiarse el signo del movimiento, por ejemplo, añadiendo una ganancia de valor -1. Inicialmente se trabaja únicamente con el parámetro P, constatando que no existe n ingún v alor para d icho parám etro q ue e limine e l e rror, e s d ecir, que permita alcanzar la altura deseada. Se comprueba que al incrementar el valor del parámetro se reduce el error final, si bien para v alores superiores a 1 las patas oscilan en exceso antes de estabilizarse. Si fija por tanto el parámetro en el valor mencionado. Figura 10. Bloque Square Wave Commands en control de altura. La constante de integración debería reducir el error considerablemente. Se inicia con un valor de 1, con el que sigue sin alcanzarse la altura deseada, aunque se obtiene un valor final más cercano al deseado que en cualquier intento anterior. Al aumentar este parámetro se reduce el error drásticamente, aunque también aumenta la oscilación antes de estabilizarse. Reduciendo el parámetro P a 0.1, la constante de i ntegración pue de s er igual a 1 0 s in q ue e xista o scilación: la máquina se estabiliza rápidamente con un error del orden de 10-3. 1 Out1 Scope3 PID PID Controller -1 Gain xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 350 Constant 1 1 1 1 1 1 1 z 6
Sergio Arruga Cantalapiedra - 28 - Figura 16. Sistema de ejes para las coordenadas de los puntos P1, P2 o P3. 5.5. Control de P1, P2 y P3 El objetivo ahora es realizar el control de los puntos P1, P2 y P3 para que mantengan su altura constante, mientras el mecanismo realiza el movimiento inicial. De este modo podemos garantizar que la plataforma se mantiene paralela a la base en todo momento, y que se desplaza en un solo eje y sin rotación. Como se hizo al intentar controlar la altura del CG, se podría calcular la posición de l as p atas a part ir de l a p osición de seada para los tre s v értices, m ediante cinemática inversa. Sin embargo el modelo no está construido con ese fin, y sería muy complicado reconstruirlo para adaptarlo a nuestras necesidades. Por lo tanto se re alizará un c ontrol P ID s obre la a ltura d e los tre s v értices, incorporado al movimiento inicial de vaivén. Para realizarlo debe modificarse el programa principal utilizado hasta ahora para que en lugar de introducir la altura del CG en el bloque Square Wave Commands, se introduzcan las alturas de los puntos P 1, P 2 y P3. S e i ncorpora ad emás un v isor p ara controlar los tre s componentes de cada vector, y un scope que permita graficar en tiempo real la altura de cada punto. El programa principal se muestra en la figura 17. Para cada una de las tres señales debe obtenerse en tiempo real el error, es decir, la d iferencia e ntre e l v alor ac tual y e l de seado, qu e para los tre s c asos será 337 (la altura, en milímetros, de la plataforma en posición inicial). Las tres señales de error son introducidas en respectivos bloques PID, que devolverán la señal a enviar a cada par de patas. Obviamente cada pareja de patas realizará el movimiento señalado para controlar la altura del vértice en que se unen. En las patas que, además, deben realizar el movimiento inicial, deberá sumarse la señal proveniente del bloque PID, cuyo cometido es controlar la altura del vértice, a la señal sinusoidal que describe el movimiento deseado. La figura 18 mostrar el contenido del bloque Square Wave Commands en este caso. Experimentando con los parámetros del controlador PID se llega a l a conclusión de que el valor óptimo para la constante de proporcionalidad es 1 (por encima hay vibración y por debajo mucho error) y para la constante de derivación es 0 (si es diferente aparece vibración) en los tres controladores.
Control de Posicionamiento de la plataforma Hexapod - 29 - Figura 17. Programa principal control de altura P1, P2 y P3. Se observa que al aumentar la constante de integración se reduce la oscilación entorno al v alor de al tura de seado, y q ue para un m ismo valor d e e ste parámetro, el error es mayor en el punto P1 que en los vértices P2 y P3 (figura 19). El movimiento obtenido es el deseado. -Kmm to m -Kz12 z34 z56 Out1 Square Wave Commands Scope9 Scope8 Scope7 Scope3 Scope2 U( : ) U( : ) U( : ) U( : ) Position P[56] Position P[34] Position P[12] 0.6/1 Maximum Joint Speed (0.6 m/s) 1 desired initial speed trajectory Linear Trajectory pos H la q P1 P2 P3 Hexapod_inversekin_variable_arms Inverse Kinematics Hexapod World Position Hexapod Joints (From Inverse Kin) q_desired q Hexapod Interface [q] -K- -K1 -K- -K- -K- [q] [q] q la pos H i Hexapod_forwardkin_variable_arms Foward Kinematics int32 int32 int32 int32 int32 ones (1,6)*377.825e-3 Arm Lenghts 170 6 170 5 170 4 170 3 170 2 170 1
Sergio Arruga Cantalapiedra - 30 - Figura 18. Bloque Square Wave Commands para control de altura en P1, P2 y P3. Fijando la constante de integración en 20 para los vértices P2 y P3 y en 100 para el vértice P1, se obtiene un margen de error inferior a ±0.05 mm para los tres puntos y, consecuentemente, también para el CG. La oscilación es visualmente imperceptible, aunque la precisión se puede mejorar incrementando el parámetro I de los controladores. Figura 19. Gráfica de la altura del punto P1 (izquierda) y de los puntos P2 y P3 (derecha) para un valor de I=20. 5.6. Programa definitivo e indicaciones El movimiento desarrollado en este apartado tiene una finalidad dentro del grupo de investigación CoDAlab. Uno de los motivos por los que se adquirió el Hexapod fue la posibilidad que ofrece éste de recrear seísmos reales a pequeña escala. 1 Out1 -1 -1 -1 -1 Sine Wave4 PID PID Controller2 PID PID Controller1 PID PID Controller xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant2 337 Constant1 337 Constant 1 1 1 1 1 1 3 z56 2 z34 1 z12
Control de Posicionamiento de la plataforma Hexapod - 31 - Para poder llevar a cabo la ejecución es preciso que el movimiento se realice sin rotación y en una sola dirección, y eso es precisamente lo que se ha obtenido con este control. Pese a que el programa se ha desarrollado en torno a un movimiento base sinusoidal, se ha comprobado su eficacia con otros movimientos, especialmente con movimientos escalonados de impulsos bruscos. Sin embargo se constata que al aumentar la velocidad de desplazamiento de las patas se incrementa también la oscilación vertical de la plataforma superior, y por tanto el movimiento pierde precisión. En e l caso d el m ovimiento s inusoidal, e l p roceso de obtención de l pro grama, parámetros y e rrores s e ha r ealizado pa ra un s eno d e f recuencia 3 rad/ seg. Aumentando la f recuencia la re spuesta e s bue na has ta un v alor de 8 rad/seg, donde el margen de oscilación vertical es de ±0.2 mm. Para frecuencias mayores se pierde el control de la máquina: habría entonces que ajustar los parámetros del controlador de nuevo. Para l a ejecución d e e ste pro grama e s i mprescindible que e l H exapod s e encuentre en posición inicial, por lo que siempre habrá que ejecutar el programa Home previamente; de lo contrario el robot responde con movimientos bruscos y descontrolados. Esto sucede probablemente debido a que si existe error inicialmente, la magnitud de la constante de integración ( 100) e nvía las patas más allá del valor deseado, con lo que el error acumulado es cada vez mayor. Para facilitar el uso del programa se ha incorporado un bloque al programa principal d entro d el c ual e l us uario de fine el movimiento que debe de scribir la plataforma s uperior. La s eñal e s e nviada a l b loque Square Wave Commands, donde se le aplica una ganancia igual al coseno de π/6 para obtener la señal a enviar a las cuatro patas. También se le aplica una segunda ganancia igual a 1/16: se ha comprobado que el control funciona mejor con movimientos de menor amplitud, de manera que se aminora el recorrido del movimiento para sumarlo al control de altura y posteriormente se aplica a la señal de salida una ganancia igual a 1 6. Para definir el movimiento es importante tener en cuenta que las distancias deben introducirse en milímetros.
Sergio Arruga Cantalapiedra - 32 - CAPÍTULO 6: 3ER CONTROL: ESTABILIZACIÓN DE UNA BOLA El objetivo en el tercer control es conseguir estabilizar una bola que se desplaza sobre el Hexapod. Para llevar a c abo el c ontrol será p reciso montar una plataforma de mayor tamaño, plana y sin orificios sobre la plataforma superior del H exapod; m ás concretamente, s obre e l s ensor q ue re posa e ncima de l Hexapod. El programa definitivo deberá conseguir que una bola colocada en cualquier punto de la superficie de la plataforma montada sea enviada al centro de l a m isma y e stabilizada e n e se p unto, incluso c uando s ea s ometida a un impulso. 6.1. Montaje Para poder realizar el estudio se adquirió una plataforma circular de 57.5 cm de diámetro y 4 cm de espesor fabricada en Styrodur C (plástico celular). Se le practicaron cuatro orificios coincidentes con los cuatro de que dispone el sensor, al cual fue fijada mediante tornillos de cabeza plana, intentando mantener en la medida de lo posible la planicidad de la superficie (figura 20). Sobre su superficie se situará una bola de 5 cm de diámetro y 225 gramos de peso, f abricada e n metal. La bo la s e c onsiderará e stabilizada c uando s e encuentre estática entre los cuatro tornillos de la plataforma.
Control de Posicionamiento de la plataforma Hexapod - 33 - Figura 20. Hexapod con plataforma montada. 6.2. Obtención de datos del sensor Para conseguir controlar la bola es evidente que habrá que conocer, cuanto menos, s u p osición. E l ú nico el emento d e q ue d isponemos p ara ob tener información acerca de la bola es el sensor de fuerzas y torques, de modo que será necesario integrar las lecturas que realiza este en el programa. El procedimiento habitual para integrar un programa en otro es hacer un bloque que contenga al primero y copiarlo en el programa de destino: posteriormente se extraen d el b loque l as señales re queridas. S in e mbargo el p rograma Force_Torque_Measurement, encargado de emitir las señales correspondientes a las m ediciones d el s ensor, no f unciona s i e s i ntegrado e n o tro pro grama. Tampoco es posible integrar el programa principal del Hexapod en el programa Force_Torque_Measurement, pues se rompe la conexión entre máquina y PC. Por tanto, los dos programas funcionan perfectamente por separado, pero no es posible integrar a uno dentro del otro. Para conseguir obtener la señal del sensor en el programa principal, habrá que enviarla de un programa al otro estando ambos en ejecución. Simulink no incorpora ningún elemento que realice dicha función; no obstante, existe un bloque creado por Quanser en la aplicación QuaRK que, definido como origen y etiquetado con un n ombre, envía la señal a la que es conectado a cualquier bloque igual, definido como destino, que tenga la misma etiqueta y perteneciente a un programa en ejecución. Esta herramienta es la que debe utilizarse para poder trabajar con los datos del sensor (figura 21). 6.3. Control proporcional al momento Mx+ PI El primer intento de controlar la bola consiste en un control proporcional al momento respecto al eje x (Mx) detectado por el sensor. El momento leído por el sensor equivale al producto entre el peso de la bola y la distancia mínima entre esta y el ej e. D ado q ue el p eso d e la bola es c onstante, realizar un c ontrol proporcional a Mx equivale a realizar un control proporcional a la distancia a la que se encuentra la bola del mismo eje.
Sergio Arruga Cantalapiedra - 34 - Figura 21. Programa Force_Torque_Measurement modificado para enviar la señal Mx. La plataforma superior del Hexapod se define por tres puntos, que son los que rigen su posición y orientación: los vértices P1, P2 y P3. El primero de ellos se encuentra alineado con el eje y, de manera que proyectado sobre el eje x coincide con el centro de la plataforma CG. Esto significa que al variar la altura del punto P 1 m anteniendo l a po sición de P 2 y P 3, la plataforma rota perpendicular al eje x. Por tanto, estableciendo que a la altura inicial de P1 (337) se s ume un v alor p roporcional a M x, el v értice P 1 as cenderá s i l a bo la se encuentra entre P1 y el eje x, y descenderá si la bola se encuentra más allá del eje x (figura 22), enviando en ambos casos la bola hacia el centro. Figura 22. Gráfico representativo para el control proporcional al momento Mx. El control debe ser proporcional al error, es decir, la diferencia entre el valor deseado y el real. Dado que en este caso deseamos que el momento sea nulo, la lectura real se puede considerar como el error. Lo que se realiza entonces es un control proporcional al momento Mx para obtener la altura del punto P 1; dado que no podemos actuar sobre el punto P1, se realiza un control PI sobre el error en el posicionamiento de P1 que actúa sobre las patas q1 y q2 (figura 23). Torques State Output s State Output (Mx) U Y U Y U Y Raw Force/Torque Measurements1 Raw Force/Torque Measurements C* u Matrix Transform HIL Read Analog HIL Read Analog (HIL-2) HIL Initialize HIL-2 (ni_pci_6220-0) Forces Force/Torque Measurements Data Average time Out1 De-offset 1 0:0 75 0:0 1 0:0 Constant In Wn z Out Out_dot 2nd Order Filter Input ICs
Control de Posicionamiento de la plataforma Hexapod - 35 - Figura 23. Bloque Square Wave Commands para control proporcional a Mx. Analizando la orientación del eje x se observa que el momento será positivo del lado de P1, y negativo cuando la bola se encuentre en la otra mitad de plataforma, de manera que la constante proporcional para el control sobre Mx debe ser positiva. Se establece en 70, pues es el valor aproximado que provoca que l as patas l leguen a s u po sición l ímite c uando l a bo la s e e ncuentra e n e l extremo de la plataforma. Para el controlador PI se obtienen los valores 0.2 y 10 respectivamente, tras realizar un proceso iterativo como en los anteriores controles. Con estos valores se consigue la mejor respuesta del sistema. Para e valuar e l c omportamiento de l pro grama e n c ada c onfiguración de parámetros, la bola se deposita en el centro y es impulsada en dirección perpendicular al eje x, observando entonces el comportamiento de la máquina. Los parámetros obtenidos definitivos son los que provocan una mayor respuesta sin generar vibración. No obstante, el resultado es decepcionante: al impulsar la bola, la p lataforma s e inclina para c ontrarrestar e l m ovimiento, consiguiéndolo inicialmente, pero devolviendo la bola a la otra mitad de la plataforma con más velocidad que antes. La velocidad de la bola es de nuevo neutralizada, pero a más distancia del centro que al principio, con lo que la velocidad de devolución es aún m ayor, l o que pro voca que la bo la s alga f inalmente d espedida d e la plataforma. Se puede considerar un avance hacia el objetivo final, pues de no haber control la bola simplemente caería al ser impulsada, pero se hace evidente que la mejora no pas a po r la s intonización de p arámetros s ino po r la incorporación de a lgún elemento al programa. 1 Out1 -1 -KScope3 PID PID Controller xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant 1 1 1 1 1 1 2 Mx 1 z12
Sergio Arruga Cantalapiedra - 36 - 6.4. Incorporación de control respecto a My La inclinación inicial era o btener un bue n c ontrol re specto al eje x para luego implementarlo también respecto al eje y. Sin embargo durante la sintonización de parámetros en el control anterior, a m enudo la bola salía despedida por uno de los dos laterales donde no existe control, lo que dificultó el proceso de prueba y error. P or ello antes de ag regar e lementos al programa, s e incorporará el control respecto al eje y. En e ste c aso no e xiste un v értice c uyo incremento de a ltura p ueda pro vocar rotación respecto al eje y, como ocurría en el eje x. Se observa no obstante que la línea imaginaria que une los dos vértices restantes (P2 y P3) cruza el eje y perpendicularmente, y ambos puntos se encuentran a la misma distancia del eje; por tanto, si siempre que uno de ellos incrementa su altura el otro la disminuye en la misma medida, la plataforma rotará respecto al eje y. Inicialmente es necesario extraer le señal del momento respecto al eje y (My) del programa Force_Torque_Measurement, e introducirla en el programa principal. Dentro del bloque Square_Wave_Commands se enlaza la misma estructura que se construyó para realizar el control respecto a Mx, pero con la señal de My. Dado que cada punto debe realizar el mismo incremento de altura que el otro pero de signo contrario, el control se realiza respecto a P2, y la señal de salida es enviada a P3 modificando el signo de la ganancia. Se requiere pues de la señal que indica la altura actual del punto P2. Finalmente debe modificarse el valor de la constante que hace producto con el My. Deberá ser siempre igual a la mitad de la constante que multiplica a Mx, puesto que en este caso actúan dos vértices, uno subiendo y otro bajando. Además, realizando el mismo proceso deductivo que anteriormente, se concluye que debe ser de signo negativo, de modo que se establece en un valor de -35. Figura 24. Bloque Square Wave Commands para control proporcional a Mx y My. 1 Out1 -1 1 -1 -K- -KScope3 PID PID Controller1 PID PID Controller xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant1 337 Constant 1 1 1 1 1 1 4 z34 3 My 2 Mx 1 z12
Control de Posicionamiento de la plataforma Hexapod - 37 - 6.5. Control proporcional al momento + PID En este caso se pretende mejorar el comportamiento del programa consiguiendo que el control sobre la posición de P1 tenga parte derivativa, lo cual dará cierta capacidad de previsión al controlador, y puede optimizar la respuesta de la máquina. Como se ha comentado anteriormente, el parámetro D del bloque PID debe mantenerse nul o, p ues de l o c ontrario a parece v ibración. E sto s ucede p or e l ruido q ue incorpora l a s eñal a de rivar, l o que pro voca qu e e n l a d erivada aparezcan v alores m uy e levados. E liminando e l rui do de l a s eñal s e p uede obtener una derivada coherente que no produzca vibración. Para eliminar el ruido de la señal es necesario filtrarla. Inicialmente se aplica el filtro más básico, tipificado por la función de transferencia 1 1 +s . La señal filtrada es derivada y multiplicada por una c onstante, que es la constante de derivación del controlador; el resultado es sumado a la señal saliente del bloque PID. De este modo se está implementando la parte derivativa del control manualmente. No obstante, se constata rápidamente que pese a obtener una señal suave después del filtrado, la señal vuelve a ser ruidosa tras derivar, de manera que la respuesta d e l a m áquina p resenta v ibración para v alores de l a gananc ia superiores a 1. Se ha calculado que el valor de la ganancia debe ser superior a 5 para que afecte visiblemente al control, de modo que la señal debe ser filtrada de nuevo tras ser derivada para poder aplicar una ganancia considerable sin que exista vibración. Realizando un filtrado antes y después de derivar (figura 25), la ganancia se puede establecer en un valor de 15 sin que la plataforma vibre al situar la bola en su superficie. Sin embargo, al ganar velocidad, las patas oscilan demasiado para al canzar e l v alor de seado, pro bablemente de bido a l a m agnitud d e l a constante de integración. E fectivamente se c omprueba que al reducir dicha constante de 10 a 0.5 el comportamiento del Hexapod mejora drásticamente. El resultado obtenido es bueno. Situando la bola en el centro de la plataforma e impulsándola en cualquier dirección, la plataforma es capaz de frenarla y enviarla de un costado a otro una y otra vez hasta, finalmente, estabilizarla en el centro. Sin embargo se pueden realizar algunas observaciones: • La bola oscila demasiado de un lado a otro de la plataforma hasta ser estabilizada, es decir, el control requiere mayor velocidad. • Si se deposita la bola en un bo rde de la plataforma, ésta se inclina hasta su máximo enviando la bola hacia el extremo contrario, por donde sale despedida. • Observando el control en acción, da la sensación de que la rugosidad de la plataforma y la irregularidad provocada por los tornillos, participan activamente en el frenado de la bola; obviamente el control no se puede considerar válido si se confirma esa percepción. • Analizando la señal antes y después del filtrado, se constata que la señal de salida presenta un desfase de casi 1 segundo respecto a la de entrada, con lo que debe modificarse el filtro.
Sergio Arruga Cantalapiedra - 44 - derivación, pue s l a re spuesta d e l a m áquina a l de splazar l a bo la e s considerablemente peor. 6.9. Programa definitivo e indicaciones Se observa que el punto de estabilización de la bola no es exactamente el centro de la plataforma, lo que significa que la lectura de momentos está desfasada respecto al centro: puede que la plataforma pese más en algunos puntos que en otros o, simplemente, que hay a m ás p olvo e n algunos p untos de l a s uperficie que en otros. Por ello en el programa definitivo se incorpora un corrector para las dos señales de lectura de momento (figura 33), que no es más que un valor que se suma a la señal para corregir el error inicial. El corrector de momentos permite además “engañar” al programa: introduciendo un valor cualquiera en el corrector, este es sumado al momento inicial, de modo que el programa percibe un momento respecto al eje cuando no lo hay (estamos desplazando el eje original). Ello permite modificar el punto de estabilización de la bola. Figura 32. Programa principal del programa definitivo para el 3er control. -Kmm to m -KState Input s State Input1 (My ) State Input s State Input (Mx) z12 Mx My z34 Out1 Square Wave Commands Scope9 Scope8 Scope7 U( : ) U( : ) U( : ) U( : ) 0 250 337 Position P[56] 0 249 337 Position P[34] 0 249 338 Position P[12] 0.6/1 Maximum Joint Speed (0.6 m/s) 1 desired initial speed trajectory Linear Trajectory pos H la q P1 P2 P3 Hexapod_inversekin_variable_arms Inverse Kinematics 0 0 337 Hexapod World Position 167 167 169 169 170 170 Hexapod Joints (From Inverse Kin) q_desired q Hexapod Interface [q] -K- -K1 -K- -K- -K- [q] [q] q la pos H i Hexapod_forwardkin_variable_arms Foward Kinematics int32 int32 int32 int32 int32 ones (1,6)*377.825e-3 Arm Lenghts 170 6 170 5 170 4 170 3 170 2 170 1 33 6 6 6 6 6 6 6 [1x3] [1x3] [1x3] [3x3] [3x3] 6 6 6 6 6 6 66 3 3 66 6 3 3 3 33 3 3 3 3 3 33 3 3 3 33 3 3 3 3
Control de Posicionamiento de la plataforma Hexapod - 45 - Figura 33. Bloque Square Wave Commands del programa definitivo para el 3er control. Para ejecutar correctamente el programa es necesario ejecutar antes el siguiente código en Matlab: [Num Den]=butter(2,5/512); [Numd Dend]=butter(2,1/512); De es te m odo s e ob tienen los v alores q ue u tilizan los n umeradores y denominadores de l os do s f iltros. Además e s n ecesario ejecutar e l p rograma Force_Torque_Measurement, p ues de lo contrario e ste pro grama no re cibirá señal alguna que indique la posición de la bola, y por lo tanto no actuará. Las constantes que indican la corrección para las señales Mx y My pueden s er modificadas durante la ejecución del programa para eliminar errores en la estabilización, o incluso para mover la bola a voluntad por la superficie de la plataforma. 1 Out1 0.05 correccio My 0.017 correccio Mx -K- -K- -1 1 80 -K- -1 -K- -KPID PID Controller1 PID PID Controller Num(z) Den(z) Discrete Transfer Fcn4 Numd(z) Dend(z) Discrete Transfer Fcn3 Num(z) Den(z) Discrete Transfer Fcn2 Numd(z) Dend(z) Discrete Transfer Fcn1 du/dt Derivative2 du/dt Derivative1 xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant1 337 Constant 1 1 1 1 1 1 4 z34 3 My 2 Mx 1 z12 6
Sergio Arruga Cantalapiedra - 46 - CAPÍTULO 7: 4º CONTROL: ESTABILIZACIÓN DE UNA BOLA (C. DIFUSO) Este control tiene el mismo objetivo que el tercer control: estabilizar una bola en movimiento sobre la plataforma montada. La diferencia radica en el método de control utilizado: en este caso se sustituirá el control PD implementado sobre los momentos Mx y My, por un C ontrol Difuso. El control PI sobre la posición de los vértices se mantendrá intacto. 7.1. Control Difuso 7.1.1. Lógica Difusa La denominada lógica difusa permite a los sistemas tratar con información que no e s e xacta; di cha i nformación trabaj a c on un al to grado de i mprecisión, a diferencia de la lógica tradicional, que trabaja con información definida y precisa. Se basa en el funcionamiento del ser humano, que por lo general agrupa las medidas en conjuntos difusos. El concepto de conjunto difuso está asociado a un determinado valor lingüístico definido por una etiqueta, palabra o adjetivo. Así, habitualmente no nos referimos a la altura de las personas dando una m edida exacta, sino con términos como “muy alto”, “bastante alto”, “de estatura media” o “bajo”. En la lógica difusa un determinado valor no pertenece exclusivamente a un conjunto, sino que se evalúa en qué medida pertenece a cada conjunto definido, mediante las funciones de pertenencia. En la lógica tradicional existen conjuntos
Control de Posicionamiento de la plataforma Hexapod - 47 - clásicos, en que las funciones de pertenencia adquieren un valor de 0 o 1. En los conjuntos difusos se tiene la característica de que la función de pertenencia puede adquirir valores en el rango de 0 a 1. Se ilustra un e jemplo en las figuras 34 y 35. Según la lógica tradicional, cada momento del año pertenece a un conjunto o a otro. En cambio la lógica difusa permite que un día del año pertenezca a dos conjuntos: las funciones de pertenencia indican en qué grado pertenece a cada uno. Figura 34. Funciones de pertenencia de los días del año según lógica tradicional. Figura 35. Funciones de pertenencia de los días del año según lógica difusa. Las f unciones d e p ertenencia ( Membership functions) pue den ado ptar f orma triangular, como en el ejemplo anterior, o formas diversas como trapezoidal, de campana de Gauss, tipo S, etc. 7.1.2. Control Difuso La l ógica d ifusa s e apl ica p rincipalmente e n s istemas de c ontrol d ifuso que utilizan expresiones ambiguas para formular reglas que controlen el sistema. Un sistema de control difuso trabaja de manera muy diferente a los sistemas de control convencionales: usan el conocimiento experto para generar una bas e de conocimientos que dará al sistema la capacidad de tomar decisiones sobre ciertas acciones que se presentan en su funcionamiento. Los sistemas de control difuso permiten describir un conjunto de reglas que utilizaría una persona para
Sergio Arruga Cantalapiedra - 48 - controlar un p roceso y generan acciones de control a parti r de estas reglas [4]. La estructura de un controlador difuso se muestra en la figura 36. Figura 36. Estructura de un Control Difuso. 1. Fusificación: Tiene como objetivo convertir los valores reales en valores difusos, asignando grados de pertenencia a cada una de las variables de entrada con relación a los conjuntos difusos, definidos mediante funciones de pertenencia. 2. Inferencia: Relaciona los conjuntos difusos de entrada y de salida mediante reglas q ue d efinen e l s istema. Las reglas s on generadas p reviamente mediante el uso de condiciones del tipo: SI caso A, ENTONCES acción 1. En el esquema de inferencia las condiciones se refieren a los conjuntos difusos de entrada, y las acciones a tomar a los conjuntos difusos de salida. 3. Desfusificación: Realiza el proceso de adecuar los valores difusos generados en la inferencia en valores r eales, mediante los c onjuntos d ifusos d efinidos para las variables de salida con sus respectivas funciones de pertenencia. 7.1.3. Implementación en Matlab Para po der apl icar el c ontrol d ifuso al e xperimento de l a bo la e s ne cesario conocer el mecanismo de implementación en Matlab. En los anexos de esta memoria se encuentra un tutorial que explica detalladamente cómo utilizar la aplicación que el programa incorpora para generar las funciones de pertenencia y las reglas del modelo, así como su integración en Simulink. Como s e v erá en e l tuto rial, e n M atlab de bemos de finir las f unciones d e pertenencia de cada variable y las reglas del modelo. Los procesos de fusificación y desfusificación los realiza el programa en tiempo real. 7.2. Control Difuso con una variable de entrada La primera prueba de implementación del control difuso se hará con una variable de entrada y una de salida. La variable de entrada será el momento respecto al eje, que en este caso será tratado directamente como la coordenada en el eje perpendicular de la posición de la bola: como se ha comentado anteriormente, el momento respecto a un eje es el producto entre el peso de la bola y la distancia
Control de Posicionamiento de la plataforma Hexapod - 49 - mínima al mismo eje, de modo que podemos considerar que el momento Mx es la coordenada y de la posición de la bola y el momento My la coordenada x. La variable de salida del control será la altura del vértice correspondiente en cada caso: para el momento Mx, el vértice será el punto P1, mientras que para el momento My, el vértice será P2, aplicándole el movimiento contrario a P3. El bloque Square Wave Commands del programa se puede apreciar en la figura 37. Los dos bloques de control difuso (Fuzzy Logic Controller) que se observan van asociados al mismo modelo de control difuso, es decir, al mismo archivo. Figura 37. Bloque Square Wave Commands para estabilización de la bola mediante control difuso con una variable de entrada. La gananc ia ap licada a l a s eñal de vuelta po r e l b loque Fuzzy en el c ontrol respecto a la señal My tiene un valor de -0.5. Tanto el signo como la magnitud se razonaron en el apartado 6.4. El t ipo de m odelo uti lizado para to das las prue bas c on c ontrol d ifuso s erá e l método directo de Mamdani, pues es el más utilizado en la actualidad. Para los métodos uti lizados e n l os o peradores l ógicos and y o r, y los m étodos d e implicación, agre gación y desfusificación, s e m antendrá la configuración por defecto de Matlab. Se comprueba inicialmente el rango de valores que toman los momentos: [-0.6, 0.6]. Para este caso se definen las funciones de pertenencia que se observan en las figuras 38 y 39. Se definen las siguientes reglas del modelo: • SI posición es positivo ENTONCES altura es positivo. • SI posición es negativo ENTONCES altura es negativo. Con esto quedan definidos todos los parámetros del controlador. La respuesta de la máquina al ejecutar el programa es positiva. Los desplazamientos de las patas se realizan con suavidad, sin movimientos bruscos ni vibración. Como se podía suponer en base a anteriores experiencias, la bola no llega a estabilizarse, sino 1 Out1 0.08 correccio My 0.017 correccio Mx -1 1 -1 -KPID PID Controller1 PID PID Controller Fuzzy Logic Controller1 Fuzzy Logic Controller Num(z) Den(z) Discrete Transfer Fcn5 Num(z) Den(z) Discrete Transfer Fcn2 xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant1 337 Constant 1 1 1 1 1 1 4 z34 3 My 2 Mx 1 z12
Sergio Arruga Cantalapiedra - 50 - que o scila de un l ado al otro de la plataforma has ta que s ale de spedida de la misma. El movimiento es muy parecido al que se obtuvo en la primera experiencia con el control proporcional al momento. Figura 38. Funciones de pertenencia para posición (control difuso con una variable de entrada). Figura 39. Funciones de pertenencia para altura del vértice (control difuso con una variable de entrada). Se c omprueba que l os v értices no al canzan nunc a s u al tura m áxima, lo que significa que debe ampliarse el rango de las funciones de pertenencia para la variable altura. Modificando el rango a [ -100, 100] el comportamiento mejora, aunque el resultado es el mismo. Se po dría e xperimentar m odificando las funciones de pe rtenencia creadas o definiendo nuevas funciones, pero la experiencia anterior indica que no es posible estabilizar la bola partiendo únicamente de su posición. El objetivo de la primera implementación e ra la to ma de c ontacto c on e ste controlador y la comprobación de s u p otencial ut ilidad. Dado q ue e l o bjetivo s e ha c umplido, podemos pasar a implementar un control con posibilidades de éxito. 7.3. Control Difuso con dos variables de entrada En este punto se realizará un control difuso a partir de dos variables: la posición de la bola, adaptada del momento respecto al eje, y su velocidad, que será la derivada del momento. Para introducir dos señales en un bloque Fuzzy es necesario unirlas en un vector de dos componentes, como se observa en la figura 40.
Control de Posicionamiento de la plataforma Hexapod - 51 - Figura 40. Bloque Square Wave Commands para estabilización de la bola mediante control difuso con dos variables de entrada. Las posibilidades de programación que ofrece el control difuso en este caso son infinitas. Se debe establecer el número de funciones de pertenencia para cada variable, su rango y su forma. También deben instaurarse las reglas del modelo, cuyo número y contenido dependerá de las funciones de pertenencia escogidas. El tiempo para experimentar con el controlador es limitado, de modo que dificilmente se dará con la configuración óptima. El procedimiento adoptado en este caso es el de realizar numerosas pruebas, llegando a m odificar to dos l os par ámetros y re alizando sólo cambios significativos en una única variable entre prueba y prueba. De este modo se van extrayendo diversas conclusiones que, aún habiéndose validado solamente para configuraciones concretas, permiten determinar las características del programa definitivo. 7.3.1. Funciones de pertenencia Para las variables de entrada, posición y velocidad, se experimenta inicialmente con d os f unciones d e pertenencia. S e c omprueba que aum entar e l núm ero de funciones de pertenencia implica una configuración más compleja de las reglas del modelo, aumentando las probabilidades de caer en contradicciones. Además, en las pruebas realizadas se percibe un empeoramiento en la respuesta. La respuesta mejora en ocasiones al incorporar en la variable posición una función de pertenencia centrada en cero, de manera que se incorpora para las dos variables. Para ambas señales el rango aproximado de posibles valores es de [-0.6, 0.6]. No obstante, l as mejores respuestas s e obtienen con las funciones de pertenencia de am bas v ariables c entradas e n l os v alores -0.4 y 0.4. Tras experimentar con su amplitud, se configuran definitivamente como se observa en las figuras 41 y 42. 1 Out1 0.05 correccio My 0.017 correccio Mx -1 1 -1 -KPID PID Controller1 PID PID Controller Fuzzy Logic Controller1 Fuzzy Logic Controller Num(z) Den(z) Discrete Transfer Fcn5 Numd(z) Dend(z) Discrete Transfer Fcn3 Num(z) Den(z) Discrete Transfer Fcn2 Numd(z) Dend(z) Discrete Transfer Fcn1 du/dt Derivative2 du/dt Derivative1 xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done xd x v a Done 337 Constant1 337 Constant 1 1 1 1 1 1 4 z34 3 My 2 Mx 1 z12
Sergio Arruga Cantalapiedra - 52 - Figura 41. Funciones de pertenencia para posición (control difuso con dos variables de entrada). Figura 42. Funciones de pertenencia para velocidad (control difuso con dos variables de entrada). Para la variable de salida, la a ltura, se opta inicialmente por dos funciones de pertenencia por signo, centradas en un valor elevado y uno medio; sin embargo, en el programa definitivo se requiere un tercer nivel por signo, de modo que finalmente quedan los niveles fuerte, medio y suave. Tras varias pruebas, se configuran como ilustra el gráfico de la figura 43. Figura 43. Funciones de pertenencia para altura del vértice (control difuso con dos variables de entrada). Durante las pruebas realizadas se experimentó en diversas ocasiones con funciones de pertenencia con forma de campana de Gauss, comprobando sorprendentemente que el comportamiento de la máquina empeora respecto al obtenido con formas triangulares. Por consiguiente, las funciones de pertenencia del programa definitivo tienen forma triangular.
Control de Posicionamiento de la plataforma Hexapod - 53 - 7.3.2. Reglas del modelo Para cada configuración de reglas del modelo se trabajó con diferentes configuraciones de funciones de pertenencia de las variables de entrada y salida. Aquí se describirán los resultados obtenidos con las principales configuraciones de reglas para las funciones de pertenencia utilizadas en el programa definitivo (antes descritas). La primera configuración de reglas del modelo se basa en la idea de que el la acción debida a la velocidad debe ser mayor que la debida a la posición: • SI velocidad es positivo ENTONCES altura es fuerte positivo. • SI velocidad es negativo ENTONCES altura es fuerte negativo. • SI posición es positivo ENTONCES altura es medio positivo. • SI posición es negativo ENTONCES altura es medio negativo. El resultado para esta configuración es muy parecido al obtenido con el control PD en el programa definitivo, aunque se percibe que la velocidad de estabilización es sensiblemente menor. La oscilación cuando la bola se encuentra estabilizada en el centro es mayor. La siguiente configuración c on re sultado p ositivo se consigue al añadir un a condición a las reglas descritas antes: • SI posición es cero ENTONCES altura es cero. Donde la función de pertenencia cero para la variable altura se encuentra centrada en el valor 0 y con una amplitud de ±0.5. En este caso el comportamiento mejora, estabilizando con una velocidad similar a la obtenida en el p rograma d efinitivo d el c apítulo 6 y reduciendo la o scilación e n p osición estable, si bien sigue existiendo. En el programa definitivo se suprime esta última condición, y se establecen las condiciones siguientes: • SI v elocidad e s p ositivo Y p osición es c ero ENTONCES al tura e s suave positivo. • SI velocidad es negativo Y posición es cero ENTONCES altura es suave negativo. • SI velocidad es positivo Y posición no es cero ENTONCES altura es fuerte positivo. • SI velocidad es negativo Y posición no es cero ENTONCES altura es fuerte negativo. • SI posición es positivo ENTONCES altura es medio positivo. • SI posición es negativo ENTONCES altura es medio negativo. Con esta configuración el resultado es ligeramente mejor que el obtenido con el control PD, y se reduce la oscilación en posición estable. Sin embargo aparece una leve v ibración c uando l a bo la e n m ovimiento c ruza e l p unto c entral de la
ÍNDICE ANEXOS Descripción archivos .................................................................. Anexo I Catálogo Hexapod ..................................................................... Anexo II Catálogo Sensor ...................................................................... Anexo III Tutorial Control Difuso Matlab .................................................. Anexo IV PFC 1 .......................................................................................... Anexo V
Anexo I: Descripción de archivos
Archivos Simulink Hexapod_Joint_Control_SAC_altura Control PI sobre la altura del Hexpaod. Hexapod_Joint_Control_SAC_lineal_01 Movimiento lineal de la plataforma superior a lo largo del eje y con control PI sobre la altura del CG (error ±1mm). Hexapod_Joint_Control_SAC_lineal_02 Movimiento lineal de la plataforma superior a lo largo del eje y obtenido mediante cinemática inversa Hexapod_Joint_Control_SAC_lineal_03 Movimiento lineal de la plataforma superior a lo largo del eje y con control PI sobre altura de los vértices P1, P2 y P3 (error ±0.05mm). Hexapod_Joint_Control_SAC_lineal_def Programa definitivo para movimiento lineal de la plataforma superior a lo largo del eje y. Dispone de un bloque en que se define la función a describier por la plataforma superior. Hexapod_Joint_Control_SAC_lineal_post Inicio de implementación del programa definitivo pudiendo modificar la altura a la que se realiza el movimiento. No está terminado. Hexapod_Joint_Control_SAC_ bola_Mx Programa para la estabilización de una bola con control proporcional al Mx + control PI sobre la altura del vértice P1. Hexapod_Joint_Control_SAC_bola_Mxy_01 Programa para la estabilización de una bola con control proporcional al Mx y My+ control PID sobre la altura de los tres vértices. Hexapod_Joint_Control_SAC_ bola_Mxy_02 Programa para la estabilización de una bola con control proporcional al Mx y My+ control PID sobre la altura de los tres vértices con filtrado de señal.
Hexapod_Joint_Control_SAC_bola_def Programa para la estabilización de una bola con control PD a Mx y My+ control PI sobre la altura de los tres vértices. Hexapod_Joint_Control_SAC_bola_post Intento de reducción de oscilación de la bola en posición estable mediante comparadores (no terminado). Hexapod_Joint_Control_SAC_bola_fuzzy_01 Programa para la estabilización de una bola con control Fuzzy sobre Mx y My. Hexapod_Joint_Control_SAC_bola_fuzzy_def Programa para la estabilización de una bola con control Fuzzy sobre Mx y My y sus derivadas. Archivos .fis para editor Fuzzy de Matlab Fuzzy_1.fis Control Difuso sobre variable Mx; devuelve posición altura punto P1. Fuzzy_2.fis Control Difuso sobre posición y velocidad; devuelve altura del vértice correspondiente. Fuzzy_2_g.fis Control Difuso sobre posición y velocidad; devuelve altura del vértice correspondiente. Funciones de pertenencia con forma de campana de Gauss. Fuzzy_def.fis Control Difuso sobre posición y velocidad; devuelve altura del vértice correspondiente. Esquema definitivo.
Anexo II: Catálogo Hexapod
Products and/or services pictured and referred to herein and their accompanying specifications may be subject to change without notice. Products and/or services mentioned herein are trademarks or registered trademarks of Quanser Inc. and/or its affiliates. Other product and company names mentioned herein are trademarks or registered trademarks of their respective owners. ©2009 Quanser Inc. All rights reserved. Featuring six Degrees of Freedom (DOF), the Hexapod motion platform is suitable for earthquake simulation, flight simulation and vibration. Bundled with QUARC®, a powerful rapid control prototyping software, the Hexapod is a reliable and easy to use test bed for advanced research. Its powerful features offer unmatched value and provide industrial-grade performance for research in vibration isolation, motion platforms, rehabilitation, immersive arcade games and structural dynamics. Please see system specifications on reverse. Rev 1.0 QUANSER.COM | +1-905-940-3575 | [email protected] p. 1 OF 2 HExAPOd THE POSSIBILITIES WILL MOVE YOU The Hexapod is parallel robotic device capable of moving heavy loads at high accelerations, within a small workspace. The smart mechanical design, along with accurate and stiff machined components make this robot an excellent tool for cutting-edge research. This stewart platform is controllable through seamless integration of QUARC® and Matlab®/Simulimk®. Unlike most commercially available steward platforms, the Hexapod is driven by superior electrical motors which make this six DOF motion platform precise, responsive and low-maintenance. Using Quanser’s novel data acquisition technology users can interface to Hexapod through a USB connection, while maintaining a high real-time performance. Many powerful features like the powerfull DC motors with a built-in brake, a precise ball screw mechanism, high-resolution optical encoders and low-friction joints help researchers achieve accurate manipulations. INdUSTRIAL-GRAdE PERFORMANCE This motion platform carries heavy loads up to 250Kg. Comprised of a six linear ball-screw actuators, it is driven by six DC motors. The ball-screw is based on a high-quality, low backlash linear guide with a total travel of 30 cm (i.e. ± 15 cm) and is driven by a high torque direct drive motor. All six arms of the platform meet at a flat rectangular base, the end-effector of the robot. A revoult joint fastens the arms to each motor. For maximum safety, a motor brake control employs the Hexapod’s brakes when the joints reach their limit. This ensures the powerful motors do not damage the device or the load it carries. Motor position feedback for all six motors is provided by optical encoders that measure the angular position of the motor shaft. An optional six axes ATI force/torque sensor can be installed on the end-effector to capture measurements of forces and torques along all degrees of freedom. HExAPOd SYSTEM Consists of a Hexapod unit (1) QUARC® software (2) Hexapod-ready pC (3) Optional force/torque sensor (4) The Hexapod dynamic model, a selection of pre-built controllers and Lab setup guide (provided in electronic format on CD) and pC (5) A robust and heavy-duty motion platform, the Hexapod facilitates an immersive simulation as one of its many applications. • Set-up Guide • Pre-Built Controller 1 2 3 4 5
SYSTEM SPECIFICATIONS QUANSER.COM | +1-905-940-3575 | [email protected] p. 2 OF 2 FEATURES dEVICE SPECIFICATION X Y Z Roll Pitch Yaw Maximum Force, Torque (N, N.m)* 1156.89 1335.86 3797.62 548.14 632.94 500.95 Workspace (m, deg)* 0.30 0.30 0.19 36.81 36.81 50.19 Maximum Speed (m/s, deg/s)* 0.67 0.67 0.35 152.79 152.79 80.62 Total moving mass (kg) 6 Max acceleration (g) 1 Frequency range (Hz)** 0 - 20 Max load (kg) 250 Dimensions: L × W × H (m) 1.1 x 1.1 x 0.75 Platform radius (m) 0.25 Arm length 0.375 Actuator maximum force (N) 334 Actuator travel +/- (m) 0.3 Encoder Resolution (counts/rev) 4096 Weight (kg) 100 Rated Power (W) 1500 *Assuming other five DOF’s held at home position ** Contact Quanser for full bandwidth specs and graphs • High precision ball screw mechanism • Safety brake logic circuit and built-in mechanical brakes • Easy interface through universal USB connection • Optional six DOF force/torque sensor • High performance amplifier • Easy integration of third party structures, sensors and actuators • Built-in software safety watchdog • Highly flexible operation and control design with Matlab®/ Simulink® via QUARC® • Precise, stiff and heavy-duty machined components • Fully documented system models and parameters • High-resolution optical encoders to measure the joint angles • Open architecture COMPLETE WORKSTATION COMPONENTS The following components are provided with the plant to offer a self-sufficient workstation for teaching and research. Controller Design Environment: QUARC® seamlessly integrated with Matlab® and Simulink® Documentation: Lab setup guide Targets: Microsoft Windows®, QNX® Momentics and INtime® Data Acquisition Cards: Integrated Q8-USB Amplifier: Built-in The complete dynamic model and Simulink pre-built controllers are also supplied. OTHER COMPATIBLE COMPONENTS Controller Design Environment: LabVIEW™ LabVIEW pre-built controllers are also supplied. About Quanser: Quanser is the world leader in education and research for real-time control design and implementation. We specialize in outfitting engineering control laboratories to help universities captivate the brightest minds, motivate them to success and produce graduates with industry-relevant skills. Universities worldwide implement Quanser’s open architecture control solutions, industry-relevant curriculum and cutting-edge work stations to teach Introductory, Intermediate or Advanced controls to students in Electrical, Mechanical, Mechatronics, Robotics, Aerospace, Civil, and various other engineering disciplines. Quanser educational solutions are fully compatible with: **please visit www.quanser.com for a detailed list of National Instruments™ card support. HExAPOd UNIT High Precision Ball Screw Mechanism Quick Connect Feature USB Interface Optional Six DOF Force/Torque Sensor Stiff and Low Friction Revolute Joints Safety Limit Switch High Torque Direct Drive Motor with Built-in Clutch/Brake
Anexo III: Catálogo sensor
26 VISIT WWW.ATI-IA.COM FOR CURRENT PRODUCT SPECIFICATIONS, 2-D DRAWINGS, AND 3-D CAD MODELS The Delta F/T transducer The transducer is made of hardened stainless steel, and the standard mounting adapter is made of highstrength aircraft aluminum. DELTA Product Advantages Extremely High Strength: • Precision machined from high-strength aircraft aluminum. • Overload pin stops make this an especially rugged transducer. • Maximum allowable single-axis overload values are 3.8 to 15.5 times rated capacities. High Signal-to-Noise Ratio: Silicon strain gages provide a signal 75 times stronger than conventional foil gages. This signal is amplified, resulting in near-zero noise distortion. IP60, IP65 and IP68 (10m) Versions Available: An IP60 version is for use in dusty environments. The IP65 version of the transducer provides protection against water spray. The IP68 version is for underwater environments to a maximum depth of 10 meters in fresh water. Contact ATI Industrial Automation for drawings and more information. Typical Applications • Real-time force control • Robotic assembly • Haptics feedback • Rehabilitation research *CTL: Controller F/T System; Net: Net F/T System; DAQ: 16-bit DAQ F/T System. The resolution is typical for most applications and can be improved with filtering. Resolutions quoted are the effective resolution after dropping four counts of noise (Net/DAQ) or eight counts of noise (CTL). All sensors calibrated by ATI. Applied loads must be within range in each of the six axes for the F/T sensor to measure correctly (refer to the transducer manual for complex loading information). RESOLUTION System Type* Axes CTL Net/DAQ CTL Net/DAQ CTL Net/DAQ Fx, Fy (lbf) 1/64 1/128 1/32 1/64 1/16 1/32 Fz (lbf) 1/32 1/64 1/16 1/32 1/8 1/16 Tx, Ty (lbf-in) 3/64 3/128 3/32 3/64 3/16 3/32 Tz (lbf-in) 1/32 1/64 1/16 1/32 1/8 1/16 SENSING RANGES Calibrations Axes SI-165-15 SI-330-30 SI-660-60 Fx, Fy (±N) 165 330 660 Fz (±N) 495 990 1980 Tx, Ty (±Nm) 15 30 60 Tz (±Nm) 15 30 60 RESOLUTION System Type* Axes CTL Net/DAQ CTL Net/DAQ CTL Net/DAQ Fx, Fy (N) 1/16 1/32 1/8 1/16 1/4 1/8 Fz (N) 1/8 1/16 1/4 1/8 1/2 1/4 Tx, Ty (Nm) 1/264 1/528 10/1333 5/1333 5/333 10/1333 Tz (Nm) 1/264 1/528 10/1333 5/1333 5/333 10/1333 SENSING RANGES Calibrations Axes US-50-150 US-75-300 US-150-600 Fx, Fy (±lbf) 50 75 150 Fz (±lbf) 150 225 450 Tx, Ty (±lbf-in) 150 300 600 Tz (±lbf-in) 150 300 600 METRIC CALIBRATIONS ENGLISH CALIBRATIONS
VISIT WWW.ATI-IA.COM FOR CURRENT PRODUCT SPECIFICATIONS, 2-D DRAWINGS, AND 3-D CAD MODELS 27 “I use the ATI Delta force transducers to measure multi-axial forces and moments applied by the foot during pedaling of an experimental bicycle ergometer. These transducers are a simple, accurate, and cost-effective measurement tool and they enable me to collect data on movement behavior in healthy individuals and persons with post-stroke hemiparesis.” David A. Brown, PT, PhD Physical Therapist Scientist 66.9 Net System 32.8 Net System 30° +Y MOUNTING SIDE -X +X Varies Depending on Sensor Selected -Y Customer machines mounting pattern in plate as needed. Remove plate prior to machining. Connector for Cable 63.5 DAQ System 25.3 DAQ System SIDE VIEW 4. Plate to support loads without deflection for best accuracy. Mounting Adapter Notes: Material: Hardened stainless steel and aluminum.1. Do Not Touch internal electronics or instrumentation2. this could damage the transducer and will void the warranty. DO NOT EXCEED INTERFACE DEPTH, MAY CAUSE DAMAGE.3. Transducer must be mounted to surfaces rigid enough ISOMETRIC VIEW Tool Adapter Plate +Z-Z Sensing Reference Frame Origin 0.8 19.8 33.3 28.6 28 73 9294.5 +Y +X -X -Y Sensing Reference Frame Origin TOOL SIDE 16 H7 Chamfer B.C. 1.0 x 45 3.6 45° 50 Customer Interface (See Note 3) (4) Tap M6 x 1.0 5.6 Equally Spaced Customer Interface 25±0.025 6 Slip Fit 5.6 Customer Interface (See Note 3) Single-Axis Overload English Metric Fxy ±580 lbf ±2600 N Fz ±1900 lbf ±8600 N Txy ±2500 lbf-in ±290 Nm Tz ±3600 lbf-in ±400 Nm Stiffness (Calculated) English Metric X-axis & Y-axis force (Kx, Ky) 2.0x105lb/in 3.6x107N/m Z-axis force (Kz) 3.4x105lb/in 5.9x107N/m X-axis & Y-axis torque (Ktx, Kty) 4.6x105lbf-in/rad 5.2x104Nm/rad Z-axis torque (Ktz) 8.1x105lbf-in/rad 9.1x104Nm/rad Resonant Frequency (Non-IP rated, Measured) Fx, Fy, Tz 1500 Hz Fz, Tx, Ty 1700 Hz Physical Specifications English Metric Weight* 2.01 lb 0.913 kg Diameter* 3.7 in 94 mm Height* 1.3 in 33 mm *Specifications include standard interface plates and are for non-IP rated models. Diameter excludes any connector block. www.ati-ia.com ATI INDUSTRIAL AUTOMATION DELTA Customer Drawing # 9230-05-1330-02
Anexo V: PFC1
ÍNDICE PFC1 Índice PFC1 ................................................................................................ 1 CAPÍTULO 1: Introducción .................................................................. 2 CAPÍTULO 2: Infraestructura .............................................................. 5 2.1. Hexapod ...................................................................................... 5 2.2. Sensor ......................................................................................... 6 2.3. PC ............................................................................................... 7 2.4. Montaje ....................................................................................... 7 CAPÍTULO 3: Control básico ................................................................ 9 3.1. Calibrate .................................................................................... 10 3.2. Home ........................................................................................ 10 3.3. Programa principal ...................................................................... 11 3.4. Force-Torque Measurement .......................................................... 13 CAPÍTULO 4: Control PID .................................................................. 14 4.1. Control P ................................................................................... 15 4.2. Control PI .................................................................................. 15 4.3. Control PD ................................................................................. 15 4.4. Control PID ................................................................................ 16 4.5. Ajuste de parámetros .................................................................. 16 CAPÍTULO 5: Bibliografía .................................................................. 17 5.1. Bibliografía de consulta ................................................................ 17
CAPÍTULO 1: INTRODUCCIÓN En la década de 1800, Augustin Louis Cauchy, un pionero en el análisis matemático, estudió la rigidez de un octaedro articulado, antecesor del hexápodo. En 1949, V.E. Gough dio un paso más y construyó un mecanismo paralelo de seis patas para probar los neumáticos con cargas combinadas. Pocos años después, en 1965, D. Stewart empezó a utilizar una variante del mecanismo de Gough para sus simuladores de su vuelo; el dispositivo fue rebautizado en su honor como Plataforma de Stewart, pese a que Gough lo había descubierto anteriormente. El mecanismo es una estructura cinemática compuesta por dos plataformas y seis actuadores, donde la plataforma de base es fija, mientras que la plataforma superior y los seis puntales son móviles. Los seis actuadores unen ambas plataformas, y se encuentran sujetos a la plataforma superior unidos por pares: por lo tanto, hay tres puntos en la plataforma superior, de cada cual salen dos puntales. Los actuadores son independientes entre sí, y son los que permiten orientar y posicionar la plataforma superior. Dicha plataforma cuenta con seis grados de libertad en relación con la base, de modo que es capaz de moverse en tres direcciones lineales y tres direcciones angulares individualmente o en cualquier combinación. La definición de Plataforma Stewart permite que mecanismos con diferentes configuraciones se encuentren dentro del mismo concepto. En la configuración más común, los seis actuadores lineales son cilindros hidráulicos cuyos dos extremos se encuentran fijados a cada una de las dos plataformas. En esta configuración, los cilindros se expanden y contraen para obtener la posición y orientación deseadas de la plataforma superior. La Plataforma Stewart con la que se ha realizado este proyecto no se corresponde con esta configuración, como se verá más adelante. La Plataforma Stewart encuentra en la actualidad diversas aplicaciones en diferentes campos. Siguen algunos ejemplos de su uso:
- 3 - • Tras el inicio de la era espacial en los años sesenta, la simulación de condiciones reales en aviones y naves espaciales se convirtió en una necesidad para la formación de pilotos. Los simuladores de vuelo actuales consisten en una cabina real montada sobre una Plataforma Stewart. • Con el objetivo de incrementar el aprovechamiento de la energía solar, se utiliza una Plataforma Stewart para, situada bajo paneles fotovoltaicos, orientarlos continuamente en dirección al sol. De forma parecida se utilizan Plataformas Stewart para orientar antenas parabólicas de gran tamaño. • En medicina se está estudiando la implantación de mecanismos basados en la Plataforma Stewart para incrementar la precisión de operaciones quirúrgicas, mejorando la seguridad y creando la oportunidad de llevar a cabo intervenciones más complicadas. Otra de las aplicaciones de las Plataformas Stewart actuales es la relacionada con el ámbito académico y de investigación: por una parte como elemento mecatrónico, en el cual se unen las ingenierías mecánica, electrónica, de control e informática; por otra, por sus posibilidades para la recreación de movimientos naturales (terremotos, oleaje, vibraciones, etc.). Bajo ese concepto, la empresa Quanser ha diseñado una Plataforma Stewart que comercializa bajo el nombre de Hexapod. El término hexapod fue registrado por la empresa Geodetic Technology para referirse a la Plataforma Stewart, lo cual no evitó que se utilice actualmente también para otros mecanismos, principalmente robots inspirados en la locomoción de insectos (vehículos mecánicos que caminan sobre seis patas). Por lo tanto, la palabra hexapod designa a una familia de máquinas (cualquiera que tenga seis patas) entre las cuales se encuentran las Plataformas Stewart. En adelante se usará el término Hexapod para hacer referencia a la Plataforma Stewart con la que se ha realizado este proyecto. El Hexapod comercializado por Quanser fue adquirido por el grupo de investigación CoDAlab del Departament de Matemàtica Aplicada III de la Universitat Politècnica de Catalunya, con el objetivo de dar continuidad a líneas de investigación ya iniciadas, así como de iniciar nuevas líneas. El grupo CoDAlab adquirió asimismo un sensor de fuerzas y torques de 6 grados de libertad, acoplable a la plataforma superior del Hexapod. El presente informe constituye el resultado de la primera fase de un proyecto mayor, cuyo fin es conseguir controlar el posicionamiento del Hexapod. En el proyecto definitivo se pretende implementar tres controles: 1. Conseguir que la plataforma, en estado plano, adquiera la altura deseada en cualquier momento. 2. Conseguir que la plataforma describa un movimiento lineal en un solo eje, manteniéndose en estado plano en todo momento. 3. Conseguir estabilizar una bola que adquiere velocidad esporádicamente mediante fuerzas externas. La intención es obtener los tres movimientos mediante un control PID y, si es posible, intentar implementar un control Difuso para el tercer movimiento.
- 4 - En esta fase inicial se ha realizado un proceso de recopilación de información acerca del Hexapod y de los controladores PID, así como un primer contacto con la máquina y sus programas principales. Dado que este proyecto supone el primer contacto con la máquina, la memoria definitiva deberá cumplir la función de “guía” para quien posteriormente deba utilizar el Hexapod, por lo que en ocasiones se profundizará en aspectos que de otro modo serían evitables.
- 5 - CAPÍTULO 2: INFRAESTRUCTURA El equipo con el que se ha realizado este proyecto se encuentra en la Escola Universitària d’Enginyeria Tècnica Industrial de Barcelona, concretamente en el aula 1B14 de la primera planta, espacio reservado para el grupo de investigación CoDAlab. La unidad consta de tres elementos: el Hexapod, un sensor de fuerzas y torques y un PC. 2.1. Hexapod El Hexapod fue adquirido a mediados del año 2010 por el grupo de investigación CoDAlab. Se trata de una Plataforma Stewart comercializada por la empresa de tecnología Quanser, y orientada tanto a realizar investigación como a la educación universitaria. Figura 1. Hexapod comercializado por la compañía Quanser (Fuente: Quanser).
- 6 - A diferencia de la mayoría de Plataformas Stewart disponibles en el mercado, el Hexapod no funciona con cilindros hidráulicos: las patas de la máquina son de longitud constante, como puede apreciarse en la figura 1, y la orientación y posicionamiento de la plataforma superior se consigue variando la posición del extremo inferior de cada una de las patas, que pueden desplazarse a través de una guía situada en la plataforma base. Cada pareja de patas comparte una misma guía en la base, y une sus extremos superiores en uno de los tres vértices de la plataforma superior. Esta geometría le otorga al mecanismo seis grados de libertad. El Hexapod es movido por motores eléctricos superiores: cada pata es impulsada por un motor de corriente continua que llega a producir 334 N de fuerza. Para mayor seguridad, un control de freno en el motor activa los frenos del Hexapod cuando las articulaciones base llegan a su límite. Esto asegura que los potentes motores no dañan el dispositivo o la carga que lleva. La posición de los seis motores la proporcionan codificadores ópticos que miden la posición angular del eje de cada motor. Las dimensiones de la máquina son de 110 cm de ancho y largo por 70 cm de altura en su posición más elevada. El peso total es de 100 kg, aunque puede soportar cargas de hasta 250 kg manteniendo su rendimiento. Los actuadores tienen un margen de recorrido de 22,5 cm y alcanzan una velocidad máxima de 0,67 m/s con una aceleración máxima de 1g. Para más datos técnicos consultar anexos. La interacción entre usuario y Hexapod se lleva a cabo a través de una conexión USB, y el control se realiza mediante la integración de los programas QUARC® y Matlab® / Simulimk®. 2.2. Sensor El sensor de fuerzas y torques utilizado fue suministrado por Quanser juntamente con el Hexapod, si bien el diseño y producción del aparato es obra de la empresa ATI Industrial Automation. Figura 2. Sensor comercializado por la empresa ATI Industrial Automation y suministrado por Quanser (Fuente: ATI).
- 7 - El sensor está formado por dos partes principales: • El transductor, que es el encargado de convertir las variaciones de una magnitud física (fuerzas y torques) en variaciones de una magnitud eléctrica (señal), fabricado en acero inoxidable endurecido. • El adaptador de montaje estandarizado, que es la carcasa que cubre el transductor, fabricado en el aluminio de alta resistencia usado en la fabricación de aviones. Pese a sus reducidas dimensiones (94 mm de diámetro y 33 mm de profundidad), puede soportar cargas laterales de hasta 265 kg y cargas verticales de 875 kg, en ambos sentidos del eje. El dispositivo pesa poco menos de 1 kg y su medición es tan precisa, que el mero hecho de pasar la mano cerca del sensor sin tocarlo produce una variación en las señales de torque y fuerza. Para más datos técnicos consultar anexos. 2.3. PC El PC utilizado en la realización de este proyecto fue suministrado por Quanser, el proveedor del Hexapod, y tiene las siguientes características principales: Tabla 1. Características del PC. Fabricante DELL® Procesador Intel® Core i5 3.20GHz Memoria (RAM) 4.00 GB Sistema operativo Windows 7 32-bit 2.4. Montaje Para poder empezar a utilizar el Hexapod sólo es necesario realizar las conexiones indicadas, pues el software viene instalado en el PC. El Hexapod debe conectarse a la corriente mediante un enchufe convencional de 220V, y al PC mediante conexión USB a cualquier puerto. Existe una tercera salida en el Hexapod, donde se conecta un elemento imprescindible para el funcionamiento del sistema: se trata del mecanismo de emergencia del Hexapod (figura 3), y es una pequeña caja amarilla con dos interruptores. El primero, de color rojo y gran tamaño, detiene cualquier movimiento de las patas en el momento en que es presionado. Debe presionarse siempre que el Hexapod inicie un movimiento descontrolado o excesivamente brusco. El segundo, de color negro y más pequeño, está señalado con la inscripción “bypass”, y es un pulsador que debe ser presionado para llevar a cabo dos programas principales que se verán más adelante.
- 8 - Figura 3. Mecanismo de emergencia del Hexapod. El sensor se fija a la plataforma superior del Hexapod mediante la acción de seis tornillos. Es aconsejable orientar el sensor de manera que su sistema de ejes coincida con el sistema de ejes generales del Hexapod, para evitar confusiones. Anteriormente se ha instalado en el PC la tarjeta de lectura del sensor suministrada por el proveedor, de modo que el sensor debe conectarse a una fuente de alimentación que a su vez se conecta directamente a la entrada del PC correspondiente a la tarjeta instalada.
- 15 - 4.1. Control P La respuesta más simple es hacer que la señal de salida sea proporcional al error detectado y opuesta al mismo: reacción proporcional negativa. Este es el significado de la P en el control PID. Esta respuesta proporcional es la base de muchos controles simples. Sin embargo, existe una clara falla: si no hay error, no hay control. Así que si se usa este controlador, y el sistema requiere una señal de entrada para funcionar, siempre existirá un error residual. Cuanto mayor sea la ganancia en el control P, menor será el error remanente. Además, normalmente una mayor ganancia provoca una respuesta más rápida para reducir el error. Desafortunadamente, al aumentar la ganancia el sistema puede volverse inestable. Aún así, los controladores proporcionales se han implementado y se implementan aún en muchas aplicaciones. El gobernador centrífugo de Watt utilizado en su máquina de vapor es quizás el Control P más conocido. Fue precisamente la inestabilidad causada en algunos mecanismos al evolucionar la ingeniería lo que inició el estudio matemático serio de la estabilidad en el control. 4.2. Control PI Para eliminar el fallo del control P, se añade un elemento integrador (la I en PID). Esto forma el llamado control PI. La salida del control es la suma de dos términos: una respuesta proporcional y una integral del error. De este modo el error en el sistema puede ser nulo, y continuará existiendo una acción de control, pues al integrar la señal acumula el error del pasado. El diseño de un controlador de este tipo es más complejo, pues deben establecerse dos variables de ganancia: una para la acción proporcional y otra para la acción integral. Además, el integrador aumenta la complejidad dinámica del sistema general. Por lo tanto la sintonización de un control PI requiere un diseño más elaborado, pero la libertad que adquiere el diseño supone mayor rendimiento en una amplia variedad de situaciones de control. 4.3. Control PD La acción proporcional es instantánea. La acción integral recuerda el pasado. A menudo una acción previsora puede ser beneficiosa para el sistema, y la acción derivativa la provee. Ese es el significado de la D en el control PID: la derivativa tiene la capacidad de predecir futuros valores de la señal (dentro de unos límites). En particular en el control de posición de dispositivos mecánicos, el sistema tiene una elevada inercia y reducida amortiguación. De ello resulta una respuesta relativamente lenta y a menudo un comportamiento oscilatorio indeseado. El sistema puede adquirir amortiguación mediante una respuesta a la velocidad, es decir, a la derivada de la posición.
- 16 - En el control PD la acción proporcional al error actual es aumentada con una acción proporcional a la tasa de variación actual del error. El mayor problema en la acción PD es su sensibilidad al ruido. La derivación de ruido devuelve una señal aún más ruidosa, creando un falso control. Para implementar un control PD, el ruido debe ser filtrado o eliminado. 4.4. Control PID El control PID presenta las tres opciones. Es con mucho el control simple (una entrada, una salida) más popular, pues más de un 90% de los lazos de control reportados en la actualidad utilizan un control PID. La acción de control es la suma de tres términos separados relacionados con el error actual, la integral del error pasado y una predicción simple del error futuro. • La acción P es proporcional al error observado. Provee una respuesta inmediata al error actual. • La acción I integra el error del pasado para proveer una respuesta duradera. Su objetivo es reducir el error en estado estacionario. • La acción D anticipa la respuesta del proceso aplicando una acción proporcional a la derivada del error. Su objetivo es aportar mejor amortiguación y una respuesta más rápida. El diseño requiere la selección de tres parámetros, las ganancias para cada acción: constante de proporcionalidad, constante de integración y constante derivativa. 4.5. Ajuste de parámetros El objetivo del ajuste de los parámetros PID es lograr que el bucle de control corrija eficazmente y en el mínimo tiempo los efectos de las perturbaciones; se tiene que lograr la mínima integral de error. Si los parámetros del controlador PID (la ganancia del proporcional, integral y derivativo) se eligen incorrectamente, el proceso a controlar puede ser inestable Hay varios métodos para ajustar un lazo de PID. El método más efectivo generalmente requiere del desarrollo de alguna forma del modelo del proceso, para luego elegir P, I y D basándose en los parámetros del modelo dinámico. Otra opción es realizar un ajuste manual Un método de ajuste consiste en establecer primero los valores de I y D a cero. A continuación, se incrementa P hasta que la salida del lazo oscile. Se establece P a un valor anterior al configurado previamente. Después se incrementa I hasta que el proceso se ajuste en el tiempo requerido (aunque subir mucho I puede causar inestabilidad). Finalmente, se incrementa D, si es necesario, hasta que el lazo sea lo suficientemente rápido para alcanzar su referencia tras una variación brusca de la carga.
- 17 - CAPÍTULO 5: BIBLIOGRAFÍA 5.1. Bibliografía de consulta Albertos, P. and I. Mareels. Feedback and Control for Everyone. Berlin, Springer, 2010. Attallah, M. Mohammad and Ola Rashwan. Design Project: Design of new kinematics joints. Department of Engineering of the American University in Cairo Contreras Montes, Juan Antonio. Introduccion a la implementacion de controladores PID análogos. Armada República de Colombia, Escuela Naval Almirante Padilla, Cartagena, 2006. Guinea Diaz, Domingo. 2004. La Plataforma Stewart. Instituto de Automática Industrial – CSIC. Publicaciones V Feria de Madrid por la Ciencia. Shirke, Sanjay and Umer, Muhammad. Hexapod Structures in Surgical Applications. San José State University, 2003. Youssef, Helmi A. and Hassan El-Hofi. Machining Technology: Machine Tools and Operations. CRC Press, 2008.