Full text
Proyecto Fin de Carrera APLICACIÓN DE TÉCNICAS DE CONTROL SUBACTUADO A UN ROBOT DE ACCIONAMIENTO DIRECTO Autor Raúl Sampedro García Director y ponente Carlos Vivas Venegas José María Martínez Montiel Escuela de Ingeniería y Arquitectura 2013
Aplicación de técnicas de control subactuado a un robot de accionamiento directo Resumen El documento que se presenta a continuación expone de manera detallada el desarrollo realizado para el proyecto n de carrera cuyo título es Aplicación de técnicas de control subactuado a un robot de accionamiento directo. Dicho proyecto se ha realizado sobre una plataforma experimental, creada en la Escuela Superior de Ingeniería de la Universidad de Sevilla, la cual consta de un brazo robótico articulado de accionamiento directo con tres grados de libertad. De los tres grados de libertad nombrados tan solo dos de ellos disponían de acción de control. Esta característica pone de maniesto que nos encontramos ante un sistema subactuado, es decir, aquél que dispone de menos acciones de control que grados de libertad. El grado de subactuación se determina hallando la diferencia entre los grados de libertad y las acciones de control, por tanto este sistema tiene un grado de subactuación de uno. El trabajo ha desarrollado los siguientes elementos siguiendo varias etapas: 1. Tanto como para el sistema completo de tres grados de libertad como para un sistema simplicado de dos grados de libertad, se realizó el modelo matemático. El modelo simplicado también contaba con un grado de subactuación igual a uno al bloquearse la primera articulación, la cual disponía de acción de control. 2. Se ha utilizado el modelo simplicado para realizar ensayos experimentales con el n de identicar y validar el conjunto de parámetros físicos constantes que denen al robot, así como la fricción. Este sistema simplicado con dos grados de libertad y una sola acción de control se conoce como Pendubot . 3. Una vez este modelo ha quedado completamente denido, se ha utilizado el mismo para el desarrollo de las técnicas de control subactuado. En nuestro caso, se ha elegido un control en dos fases diferenciadas. La primera se denomina Swing Up , (control necesario para llevar las articulaciones del robot a la posición vertical superior inestable), y balancing control (control en las proximidades de la posición vertical superior inestable). Se profundiza con más énfasis en la primera parte. 4. Se ha construído un modelo utilizando Simulink y se ha utilizado el entorno XPCTarget de Matlab como interface robot-ordenador. Se han ejecutado numerosas simulaciones buscando el ajuste óptimo del controlador mediante ensayo-error para conseguir estabilizar el sistema en su posición superior de equilibrio inestable. 5. Por último, se han transferido todos los resultados de simulación a la plataforma experimental con el n de comprobar las similitudes del modelo y la simulación con el robot real con el que contábamos en el laboratorio. En la comparativa, se pone de maniesto que el comportamiento real del robot esconde ciertos aspectos desconocidos. Se ha comprobado una signicativa variabilidad en los resultados de laboratorio frente a la repetición constante de experimentos con idénticos parámetros de entrada. Con el objetivo de explicar este fenómeno se proponen varias explicaciones que precisarán de un estudio complementario para una completa comprensión de los mismos.
Índice general Índice general 1 Índice de guras 4 Introducción 7 1. Modelado del robot de tres grados de libertad 10 1.1. Introducción.................................... 10 1.2. Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3. Modelado dinámico del sistema . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.1. Matriz de inercia D(q) . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3.2. Término de fuerzas centrífugas y de Coriolis C(q, ˙q) ˙q ......... 13 1.3.3. Término de fuerzas gravitatorias G(q) ................. 14 1.3.4. Modelo de fricción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4. Ecuaciones del movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.1. Primeraecuación............................. 15 1.4.2. Segundaecuación............................. 15 1.4.3. Terceraecuación ............................. 15 1.4.4. Parámetros constantes . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5. Consideraciones.................................. 17 1.5.1. Par cero en la muñeca, τ3= 0 ...................... 18 1.5.2. Simplicaciones en la fricción . . . . . . . . . . . . . . . . . . . . . . 18 2. Identicación 19 2.1. Introducción.................................... 19 2.2. Descripción del procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3. Procedimiento de identicación . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.1. Transformación matemática de las ecuaciones . . . . . . . . . . . . . 21 2.3.2. Tratamiento de la fricción en el modelo . . . . . . . . . . . . . . . . 23 2.3.3. Seleccionar una señal adecuada . . . . . . . . . . . . . . . . . . . . . 25 2.3.4. Realización de experimentos en bucle abierto . . . . . . . . . . . . . 27 2.3.5. Filtrado y análisis de los datos . . . . . . . . . . . . . . . . . . . . . 28 2.3.6. Método de ajuste: Ajuste Robusto - Robust Fitting .......... 29 2.3.7. Resultados ................................ 29 2.4. Identicación con 3 constantes . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4.1. Replanteamiento de las ecuaciones del sistema . . . . . . . . . . . . . 31 1
ÍNDICE GENERAL 2 2.4.2. Resultados ................................ 32 2.4.3. Validación de resultados . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.5. Resultados denitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3. Controlador 36 3.1. Introducción.................................... 36 3.2. SwingUp ..................................... 37 3.2.1. Objetivo.................................. 37 3.2.2. Desarrollo teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.3. Determinación de kP , kD y kE ..................... 40 3.3. BallancingControl ................................ 42 3.3.1. Objetivo.................................. 42 3.3.2. Desarrollo teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4. Switcher...................................... 44 3.4.1. Objetivo.................................. 44 3.4.2. Desarrollo teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4. Simulación 46 4.1. Introducción.................................... 46 4.2. Diagramadebloques............................... 46 4.2.1. Bloque: Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.2. Bloque: Modelo de Simulación . . . . . . . . . . . . . . . . . . . . . . 49 4.3. Resultados..................................... 50 4.4. Conclusión..................................... 52 5. Experimentación 53 5.1. Introducción.................................... 53 5.2. Diagrama de bloques para experimentación . . . . . . . . . . . . . . . . . . 53 5.3. Experimentos................................... 54 5.4. Hipótesis ..................................... 57 6. Conclusiones 58 6.1. Modelado e identicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.2. Experimentación ................................. 59 6.3. Fricción ...................................... 59 6.4. Posiblecontinuación ............................... 61 Bibliografía 62 Anexos 63 A. Descripción del sistema físico 64 A.1.Introducción.................................... 64 A.2. Robot de tres grados de libertad . . . . . . . . . . . . . . . . . . . . . . . . 64 A.2.1.Motores.................................. 64 A.2.2.Brazosdegiro............................... 64 A.2.3. Encoder incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 A.3.Servoactuadores.................................. 70
ÍNDICE GENERAL 3 A.4.Tarjetas...................................... 71 A.5.Sistemadecontrol ................................ 71 A.5.1.PCHost.................................. 75 A.5.2.PCTarget................................. 76 A.5.3.BusCAN ................................. 76 A.5.4. Tarjeta controladora DS1103 PPC . . . . . . . . . . . . . . . . . . . 76 A.5.5. Software de conguración de ServoStar 600 (Drive) . . . . . . . . . . 77 A.6. Imágenes de los distintos elementos del sistema . . . . . . . . . . . . . . . . 78
Índice de guras 1.1. Robot de tres grados de libertad en movimiento . . . . . . . . . . . . . . . . 11 1.2. Esquema del robot de tres grados de libertad . . . . . . . . . . . . . . . . . 12 2.1. Experimento considerando la fricción dinámica . . . . . . . . . . . . . . . . 24 2.2. Bloque para el cálculo de la fricción en el codo . . . . . . . . . . . . . . . . 25 2.3. Entradasinusoidal ................................ 26 2.4. Entrada sinusoidal de frecuencia linealmente creciente . . . . . . . . . . . . 27 2.5. EntradaGoldSequence ............................. 27 2.6. Esquema de identicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7. Experimento identicación para 5 parámetros con Golden Sequence . . . . . 30 2.8. Experimento identicación para 5 parámetros con Chirp . . . . . . . . . . . 31 2.9. Experimento identicación para 3 parámetros con Golden Sequence . . . . . 33 2.10. Comprobación para 3 parámetros identicados con Chirp . . . . . . . . . . 33 2.11. Comprobación para 3 parámetros identicados con seno de ω= 0,6rad/s . . 34 4.1. Esquemadesimulación.............................. 46 4.2. Interior del bloque Controlador . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3. Interior del bloque Swing Up . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4. Interior del bloque Switcher . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.5. Interior del bloque Ballancing Control . . . . . . . . . . . . . . . . . . . . . 48 4.6. Interior del bloque Modelo del Robot de 3 GDL . . . . . . . . . . . . . . . . 49 4.7. Evolución de la posición del codo con el tiempo . . . . . . . . . . . . . . . . 50 4.8. Evolución de la posición de la muñeca con el tiempo . . . . . . . . . . . . . 50 4.9. Grácas de la evolución del par del codo con el tiempo . . . . . . . . . . . . 51 4.10. Evolución de las velocidades articulares con el tiempo . . . . . . . . . . . . 52 4.11. Velocidad de la muñeca en el instante de activación del switcher . . . . . . . 52 5.1. Diagrama de bloques de Simulink utilizado para los experimentos . . . . . . 53 5.2. Interior de los bloques controlador y robot . . . . . . . . . . . . . . . . . . . 54 5.3. Trayectoriadelcodo ............................... 54 5.4. Trayectoria de la muñeca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.5. Evolución de las velocidades articulares . . . . . . . . . . . . . . . . . . . . 55 5.6. Evolución del par del codo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.7. Velocidades articulares y par del codo en experimento fallido . . . . . . . . 57 5.8. Evolución de las posiciones articulares en experimento fallido . . . . . . . . 57 A.1.Vistafrontaldelrobot.............................. 65 4
ÍNDICE DE FIGURAS 5 A.2. Vista del perl del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 A.3. Detalle de la sujeción al suelo . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.4. Detalle del motor del hombro . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.5. Detalle del motor del codo y del encoder incremental . . . . . . . . . . . . . 68 A.6. Detalle de la tercera articulación . . . . . . . . . . . . . . . . . . . . . . . . 69 A.7. Características del enconder incremental . . . . . . . . . . . . . . . . . . . . 70 A.8. Kollmorgen Seidel Servostar 600 . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.9. Componentes del sistema del servoactuador . . . . . . . . . . . . . . . . . . 73 A.10.Diagrama de conexiones del ServoStar 600 . . . . . . . . . . . . . . . . . . . 74 A.11.Esquema del sistema de control . . . . . . . . . . . . . . . . . . . . . . . . . 75 A.12.Software Drive: menú para elegir el puerto . . . . . . . . . . . . . . . . . . . 77 A.13.Software Drive: menú para manipular cada articulación . . . . . . . . . . . . 78 A.14.PC Target e interfaz gráca . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 A.15.Servoactuadores y cuadro eléctrico . . . . . . . . . . . . . . . . . . . . . . . 79 A.16.Cierre del cuadro eléctrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Introducción En el presente proyecto: se trabajará con un robot de accionamiento directo de tres grados de libertad que consta de un brazo articulado de más de metro y medio de longitud que se compone de tres articulaciones diferentes. Por similitud con un brazo humano y sus articulaciones se han denominado: hombro , codo y muñeca . La peculiaridad de este sistema es que, pese a que dispone de tres grados de libertad, solo existen dos acciones de control. Es por ello que nos hallamos ante un sistema subactuado. En esta plataforma experimental, solamente dos de las tres articulaciones pueden ser controladas de manera directa, para la tercera se deberá desarrollar alguna estrategia especíca. Las dos articulaciones que pueden ser controladas directamente son el hombro y el codo. La muñeca queda libre y se moverá simplemente porque su movimiento está íntimamente relacionado con el movimiento de las otras dos articulaciones. El equipo experimental se componía del robot de accionamiento directo con sus servoactuadores y dos ordenadores conectados entre sí. En uno de los dos ordenadores se utilizaba un sistema operativo en tiempo real,todo el entorno XPCTarget que era el que realmente le enviaba las señales de control al robot y monitorizaba las variables. El otro ordenador estaba congurado con Windows XP y Simulink de Matlab donde se construían los modelos de bloques de simulación y experimentación y se lanzaban al otro ordenador. El trabajo se desarrolló en su totalidad en la Escuela Superior de Ingeniería de la Universidad de Sevilla bajo la tutela de Carlos Vivas Venegas, Profesor del Departamento de Ingeniería de Sistemas. El robot en sí mismo había sido utilizado para otro proyecto anterior a este, [BP09] realizado por Guillermo Bejarano el cual fue de gran ayuda para conseguir entender el funcionamiento del robot así como el software necesario para su utilización. En [BP09] se desarrolló el hardware de control del sistema, así como los modelos matemáticos necesarios para su control empleando la plataforma Simulink de MATLAB. Desde el punto de vista de control,se diseñó un controlador PID para minimizar el tiempo que tardaban el hombro y el codo, las dos articulaciones que poseen acción de control, en llegar a una determinada posición arbitraria. En cambio en el caso que nosotros abordamos solo tendremos una entrada de menos para conseguir las posiciones de referencia. Para alcanzar nuestro objetivo, se partió del modelado matemático del sistema utilizando como base las ecuaciones de Lagrange. Se realizó un modelo global que incluía los tres grados de libertad y, posteriormente, se simplicó para utilizar únicamente un modelo de dos grados de libertad que solo tenía en cuenta el codo y la muñeca. Ésta última es la que no dispone de motor alguno. Este sistema simplicado de dos grados de libertad, con 7
CAPÍTULO 1. MODELADO DEL ROBOT DE TRES GRADOS DE LIBERTAD 14 Se obtiene cada uno de los elementos de la matriz C(q, ˙q) : c11 =−˙q2(k7sin(q2+q3)+(k2+k6)sin(q2)) −˙q3(k7sin(q2+q3) + k7sin(q3)) c12 =−˙q1(k7sin(q2+q3)+(k2+k6)sin(q2)) −˙q2(k7sin(q2+q3)+(k2+k6)sin(q2)) −˙q3(k7sin(q2+q3) + k7sin(q3)) c13 =−˙q1(k7sin(q2+q3) + k7sin(q3)) −˙q2(k7sin(q2+q3) + k7sin(q3)) −˙q3(k7sin(q2+q3) + k7sin(q3)) c21 = ˙q1(k7sin(q2+q3)+(k2+k6)sin(q2)) −k7˙q3sin(q3) c22 =−k7˙q3sin(q3) c23 =−k7˙q1sin(q3)−k7˙q2sin(q3)−k7˙q3sin(q3) c31 = ˙q1(k7sin(q2+q3) + k7sin(q3)) + k7˙q2sin(q3) c32 =k7˙q1sin(q3) + k7˙q2sin(q3) c33 = 0 (1.11) Por simplicar las expresiones se utilizan las constantes, k1 a k10 , que se detallan posteriormente en la Tabla 1.1. 1.3.3. Término de fuerzas gravitatorias G(q) La componente de la gravedad para cada una de las tres ecuaciones de movimiento es: G1= (k4+k9) sin(q1)+(k5+k9) sin(q1+q2) + k10 sin(q1+q2+q3) G2= (k5+k9) sin(q1+q2) + k10 sin(q1+q2+q3) G3=k10 sin(q1+q2+q3) (1.12) Por simplicar las expresiones se utilizan las constantes, k1 a k10 , que se detallan posteriormente en la Tabla 1.1. 1.3.4. Modelo de fricción El modelo de fricción elegido se ha simplicado respecto al modelo de Lu-Gre que se eligió para tratar el robot con dos grados de libertad. Para el objetivo que perseguimos en este trabajo hemos considerado la reducción de los efectos de la fricción a un solo término de fricción dinámica que queda multiplicado por la velocidad articular correspondiente. Por tanto: Ffhombro =Ff1=σ2h= 0,053 V seg/rad Ffcodo =Ff2=σ2c= 0,0581 V seg/rad Ff muñeca =Ff3≈0 (1.13) Se han utilizado los valores de la fricción dinámica de hombro y codo de [BP09], proyecto que trabajó anteriormente con el mismo robot pero un grado menos de libertad, es decir, sin la muñeca pero con dos acciones de control. Es importante remarcar que al aparecer la muñeca sin ninguna acción directa sobre ella se puede despreciar la fricción debido a que al no disponer de motor el rozamiento queda
CAPÍTULO 1. MODELADO DEL ROBOT DE TRES GRADOS DE LIBERTAD 15 sumamente disminuído. Se comprueba que el tiempo de oscilación libre de la muñeca es mucho mayor que el de la oscilación libre del codo, como si fueran pendulos. De aquí se desprende que la fricción es mucho menor en la muñeca. 1.4. Ecuaciones del movimiento 1.4.1. Primera ecuación [k1+ 2k6+k8+ 2k7cos(q2+q3)+2k6cos(q2)+2k2cos(q2)+2k7cos(q3)] ·¨q1+ [k3+k6+k8+k7cos(q2+q3) + k6cos(q2) + k2cos(q2)+2k7cos(q3)] ·¨q2+ [k8+k7cos(q2+q3) + k7cos(q3)] ·¨q3− [k6sin(q2) + k2sin(q2) + k7sin(q2+q3)] ·˙ q2 2− [k7sin(q3) + k7sin(q2+q3)] ·˙ q2 3− [2k6sin(q2)+2k2sin(q2)+2k7sin(q2+q3)] ·˙q1˙q2− [2k7sin(q3)+2k7sin(q2+q3)] ·˙q1˙q3− [2k7sin(q3)+2k7sin(q2+q3)] ·˙q2˙q3+ (k4+k9) sin(q1)+(k5+k9) sin(q1+q2) + k10 sin(q1+q2+q3) + Ff1=τ1 (1.14) 1.4.2. Segunda ecuación [k3+k6+k8+k7cos(q2+q3) + k2cos(q2) + k6cos(q2)+2k7cos(q3)] ·¨q1+ [k3+k6+k8+ 2k7cos(q3)] ·¨q2+ [k8+k7cos(q3)] ·¨q3+ [k6sin(q2) + k7sin(q2+q3) + k2sin(q2)] ·˙ q2 1− [k7sin(q3)] ·˙ q2 3− [2k7sin(q3)] ·˙q1˙q3− [2k7sin(q3)] ·˙q2˙q3+ (k5+k9) sin(q1+q2) + k10 sin(q1+q2+q3) + Ff2=τ2 (1.15) 1.4.3. Tercera ecuación [k8+k7cos(q2+q3) + k7cos(q3)] ·¨q1+ [k8+k7cos(q3)] ·¨q2+ [k8]·¨q3+ [k7sin(q3) + k7sin(q2+q3)] ·˙ q2 1+ [k7sin(q3)] ·˙ q2 2+ [2k7sin(q3)] ·˙q1˙q2+ k10 sin(q1+q2+q3) + Ff3= 0 (1.16)
CAPÍTULO 1. MODELADO DEL ROBOT DE TRES GRADOS DE LIBERTAD 16 k1=m1L2 c1+I1+m2L2+m2L2 c2+I2k6=L2m3 k2=m2Lc2Lk7=Lc3Lm3 k3=m2L2 c2+I2k8=L2 c3m3+I3 k4=m1Lc1g+m2Lg k9=Lm3g k5=m2Lc2gk10 =Lc3m3g Tabla 1.1: Denición de las constantes empleadas en el modelo del robot 1.4.4. Parámetros constantes Como se puede comprobar, la parte dinámica del modelo depende de catorce parámetros agregados, k0 1 a k0 14 , cuyas expresiones en función de los parámetros físicos del robot y de los actuadores son: k0 1=m1L2 c1+I1+m2L2 1+m2L2 c2+I2k0 8=L2Lc3m3 k0 2=m2L1Lc2k0 9=L2 c3m3+I3 k0 3=m2L2 c2+I2k0 10 = (L2 1+L2 2+L2 c3)m3+I3 k0 4=m1Lc1g+m2L1g k0 11 =L2 2m3 k0 5=m2Lc2g k0 12 =m3L1g k0 6=L1L2m3k0 13 =m3L2g k0 7=L1Lc3m3k0 14 =m3Lc3g (1.17) Por suerte en el caso que aquí nos compete se cumple que la longitud de la articulación hombro es igual a la longitud de la articulación codo : L1=L2=L lo que implica que el número de parámetros constantes que necesitamos para denir nuestro sistema y que, posteriormente, tendremos que identicar se ve reducido a 10 parámetros. Éstos aparecen reejados en la Tabla 1.1. El signicado físico de cada uno de los sumandos de los parámetros constantes aparece en la Tabla 1.2.
CAPÍTULO 1. MODELADO DEL ROBOT DE TRES GRADOS DE LIBERTAD 17 Parámetro Signicado m1 Masa de la articulación 1, hombro m2 Masa de la articulación 2, codo m3 Masa de la articulación 3, muñeca L1 Longitud de la articulación 1, hombro L2 Longitud de la articulación 2, codo Lc1 Longitud desde el eje hasta el centro de gravedad de la articulación 1 Lc2 Longitud desde el eje hasta el centro de gravedad de la articulación 2 Lc3 Longitud desde el eje hasta el centro de gravedad de la articulación 3 LL1=L2=L , Longitud del hombro = Longitud del codo I1 Inercia respecto al eje de giro de la articulación 1 I2 Inercia respecto al eje de giro de la articulación 2 I3 Inercia respecto al eje de giro de la articulación 3 g Aceleración de la gravedad Ff1 Fuerza de fricción en la articulación 1, hombro Ff2 Fuerza de fricción en la articulación 2, codo Ff3 Fuerza de fricción en la articulación 3, muñeca Tabla 1.2: Descripción del signicado de los parámetros del robot 1.5. Consideraciones En los siguientes apartados se comentarán los detalles de gran relevancia para lo que resta de proyecto.
CAPÍTULO 1. MODELADO DEL ROBOT DE TRES GRADOS DE LIBERTAD 18 1.5.1. Par cero en la muñeca, τ3= 0 Es muy importante recalcar la importancia de esta propiedad debido a que es la cuestión fundamental a la que nos enfrentamos a lo largo de todo este desarrollo. Una característica de este tipo implica que no habrá ninguna acción directa sobre la última articulación, la muñeca . Todo el control que, a la postre, se desarrollará se basa en las acciones de los motores en las otras dos articulaciones para conseguir estabilizar la muñeca entorno a una posición de equilibrio inestable, como si de un péndulo invertido se tratara. Es por esto que se utilizarán técnicas de control subactuado al disponer de una acción externa menos que grados de libertad tiene el sistema, es decir, dos acciones externas (pares sobre los motores del hombro y del codo) para controlar tres grados de libertad (ángulos de giro del hombro, del codo y de la muñeca). 1.5.2. Simplicaciones en la fricción Se comprueba que la fuerza de fricción en la articulación muñeca en comparación con el hombro y el codo es practicamente despreciable, por tanto se tomará Ff3≈0 . Realizando un sencillo experimento de caída libre para las articulaciones del codo y de la muñeca por separado se puede apreciar a simple vista que el tiempo que le cuesta a cada una detenerse en reposo en la posición más baja es mucho mayor para la muñeca que para el codo. Esta diferencia de tiempo se debe a que la muñeca es la parte del brazo que no tiene ningún motor reteniendo ni actuando sobre ella por lo que la energía disipada por ciclo sea, probablemente, mucho menor al de las otras dos articulaciones.
Capítulo 2 Identicación 2.1. Introducción Para realizar un control eciente sobre el robot de tres grados de libertad, y en general sobre cualquier sistema real, es necesario identicar adecuadamente las características dinámicas y de fricción del mismo. En el presente documento se pretende describir el procedimiento llevado a cabo para realizar la identicación del sistema y la estimación de los parámetros del modelo adoptado para el robot. Si bien es de gran importancia obtener un modelo con la máxima precisión posible cabe destacar que no siempre se puede conseguir unos parámetros ajustados al máximo ya sea por la precisión de los instrumentos, por la multitud de factores que aportan una incertidumbre extra en el desempeño de la tarea o por otros muchos condicionantes externos. En el desarrollo de este trabajo la preocupación principal ha optado por enfocar sus esfuerzos en la robustez que debe tener el sistema de control para lidiar con todos estos aspectos desconocidos a priori ya que en el transcurso natural de la operación de control se debe compensar cualquier tipo de perturbación que no existiera en el modelo planteado. 2.2. Descripción del procedimiento Para el próposito de este proyecto se ha tomado el primer grupo de constantes, k1 a k5 , que sólo involucran a las articulaciones hombro y codo, como conocidas. El valor de estos parámetros ha sido extraído del anterior trabajo con la misma plataforma experimental pero sin añadir la tercera articulación, la muñeca , que no dispone de motor y, por tanto, carece de acción de control. Se pueden comprobar los valores exactos en [BP09]. El procedimiento propuesto es una metodología de identicación total, de modo que en cada experimento realizado se identica la totalidad de parámetros del modelo. Para ello, por simplicidad, se bloquea el hombro, que es la articulación más grande, y se trabaja únicamente con el codo y la muñeca. Puesto que los experimentos de identicación se realizan en lazo abierto es importante no entregar demasiada energía al sistema con la intención de que no llegue a inestabilizarse. Debido a la diferencia de masas entre la muñeca y las otras dos articulaciones no es necesaria una velocidad elevada para conseguirlo. Es por 19
CAPÍTULO 2. IDENTIFICACIÓN 20 esto que se deben inducir trayectorias de características apropiadas que resalten el modo de comportamiento de la muñeca bajo diversos pares de entrada al codo. Para cada una de estas trayectorias se propone un algoritmo de análisis y ltrado de datos que posteriormente es alimentado a un algoritmo clásico de estimación mínima cuadrática, empleando para ello el regresor apropiado. La aplicación de los algoritmos propuestos necesita disponer de medidas de la posición, velocidad y aceleración angulares de las articulaciones para realizar el cálculo de los parámetros del modelo. Se ha podido vericar que la calidad de estas señales es determinante para la correcta estimación de los mismos. Para ello se analizó la mejor forma de obtener estas señales, proceso descrito en el Cap. 5 de [BP09], optando nalmente por la aplicación de un ltro Savitzky-Golay (ltro SG) de quinto orden para la obtención numérica de la velocidad y la aceleración a partir de la medida de la posición proporcionada por los encoder de las articulaciones. Es necesario reseñar además que la plataforma de experimentación aplica una señal de par de control referenciada en una escala entre -10 V y +10 V. No ha sido posible determinar la correspondencia entre la señal en voltios y el par en unidades del Sistema Internacional, si bien no es necesario a efectos de control o identicación, sabiendo que ambas señales son aproximadamente proporcionales. Por este motivo, las unidades consignadas en los parámetros identicados están referenciadas a una señal de par medida en voltios. Los pasos que se siguieron en el proceso de identicación fueron los siguientes: 1. Transformación matemática de las ecuaciones para poder extraer la información de los resultados de forma adecuada. 2. Selección de una señal que nos aporte suciente información de todo el rango de comportamientos del sistema. 3. Realización de experimentos en bucle abierto con una entrada conocida para observar la salida. 4. Filtrado y análisis de los datos. 5. Comprobación en simulación si los resultados conseguidos hacen que el modelo matemático obtenido se asemeje al real. A continuación se detallará más profundamente cada uno de los pasos seguidos para identicar todos los parámetros.
CAPÍTULO 2. IDENTIFICACIÓN 21 2.3. Procedimiento de identicación 2.3.1. Transformación matemática de las ecuaciones A la vista de las ecuaciones 1.14, 1.15 y 1.16 deberemos manipularlas matemáticamente para dejarlas de tal forma que se pueda obtener un regresor, es decir, un vector que tiene tantas componentes como parámetros constantes deseamos identicar. Tiene la forma: u=ϕθT El regresor del que hablamos es el vector θ cuyas componentes son las constantes de k6 a k10 ambas inclusive. Este vector será: θT= k6 k7 k8 k9 k10 (2.1) Como se comentó en la introducción el hombro permanecerá bloqueado para todos los experimentos de identicación. A nivel matemático esto implica que la primera ecuación del sistema, la que concierne a τ1 , se cumplirá automáticamente y el par aplicado se convertirá en un par de reacción puesto que la articulación esta completamente quieta debido a un freno mecánico. Esto afecta indirectamente a las otras dos ecuaciones porque no variará ni la posición, ni la velocidad, ni la aceleración del hombro, esto es: q1= ˙q1= ¨q1= 0 Bajo estas condiciones de operación las dos ecuaciones restantes del sistema quedan de la siguiente manera: Ecuación 2 [k3+k6+k8+ 2k7cos(q3)] ·¨q2+ [k8+k7cos(q3)] ·¨q3− [k7sin(q3)] ·˙ q2 3−[2k7sin(q3)] ·˙q2˙q3+ (k5+k9)sin(q2) + k10sin(q2+q3) + Ff2=τ2 (2.2) Ecuación 3 [k8+k7cos(q3)] ·¨q2+ [k8]·¨q3+ [k7sin(q3)] ·˙ q2 2+ k10sin(q2+q3)=0 (2.3) Persiguiendo nuestro objetivo de hallar un regresor, θ , con la forma de la Ecuación 2.1 dejamos las ecuaciones anteriores en función de los parámetros k6 a k10 . Y así las ecuaciones se transforman en:
CAPÍTULO 2. IDENTIFICACIÓN 22 Ecuación 2 [ ¨q2]·k6+ h2 ¨q2cos(q3) + ¨q3cos(q3)−˙ q2 3sin(q3)−2 ˙q2˙q3sin(q3)i·k7+ [ ¨q2+ ¨q3]·k8+ [sin(q2)] ·k9+ [sin(q2+q3)] ·k10 =τ2−k5sin(q2)−k3¨q2−Ff2 (2.4) Ecuación 3 [0] ·k6+ h¨q2cos(q3) + ˙ q2 2sin(q3)i·k7+ [ ¨q2+ ¨q3]·k8+ [0] ·k9+ [sin(q2+q3)] ·k10 = 0 (2.5) Podemos escribirlo en forma matricial para distinguir la matriz ϕ y el vector u : ϕ="¨q22 ¨q2cos(q3) + ¨q3cos(q3)−˙ q2 3sin(q3)−2 ˙q2˙q3sin(q3) ¨q2+ ¨q3sin(q2)sin(q2+q3) 0 ¨q2cos(q3) + ˙ q2 2sin(q3) ¨q2+ ¨q30sin(q2+q3)# (2.6) u=τ2−k5sin(q2)−k3¨q2−Ff2 0 (2.7) Esto hace que las ecuaciones tengan una forma muy interesante para nosotros puesto que conocemos el valor de todos y cada uno de los términos menos de los parámetros constantes como se explica a continuación: q2 : es la posición angular del codo proporcionada por el encoder en pulsos de encoder por vuelta. ˙q2 : es la velocidad angular del codo, derivada oine de la posición mediante un ltro SG con una ventana de 15 puntos a cada lado. ¨q2 : es la aceleración angular del codo, derivada oine de la velocidad mediante un ltro SG con una ventana de 15 puntos a cada lado. q3 : es la posición angular de la muñeca proporcionada por el encoder en pulsos de encoder por vuelta. ˙q3 : es la velocidad angular de la muñeca, derivada oine de la posición mediante un ltro SG con una ventana de 15 puntos a cada lado. ¨q3 : es la aceleración angular de la muñeca, derivada oine de la velocidad mediante un ltro SG con una ventana de 15 puntos a cada lado.
CAPÍTULO 2. IDENTIFICACIÓN 23 τ2 : es el par de entrada al codo, medido por la tarjeta de adquisición de datos. k3 y k5 : son los valores de los parámetros identicados en el anterior trabajo, [BP09], con la misma plataforma. Ff2 : es la fuerza de fricción que afecta al codo. En la Ecuación 2.6 se ve que tenemos una matriz M(R) de tamaño 2x5 . Tal y como la hemos construído hemos colocado los coecientes relacionados con los términos de la segunda ecuación en la primera la y los relacionados con la tercera ecuación en la segunda la. Ahora, por columnas, tenemos colocados los valores relacionados con k6 en la primera columna, para k7 en la segunda y así sucesivamente hasta la quinta columna con los valores para k10 . Los experimentos de identicación realizados duran cada uno 30segs y teniendo en cuenta que nuestro sistema muestrea valores con una frecuencia de 1000Hz, lo que quiere decir que toma un dato cada milésima de segundo. Eso signica que vamos a tener una matriz de tamaño 2x5 cada milisegundo. Esto hace un total de 30.001 matrices al acabar cada experimento (30.000 matrices de cada instante de experimento más una para el instante cero). Con el n de tener los datos organizados en cada experimento se propone una manera de almacenar los datos obtenidos. En nuestra matriz ϕ tenemos separada la información que obtenemos de la segunda ecuación y de la tercera ecuación en la primera y segunda la respectivamente. Como vamos a obtener 30.001 matrices de tamaño 2x5 montaremos una supermatriz de tamaño 60002x5 que incluya todos los resultados de cada prueba. Esta nueva supermatriz será la matriz ϕ de cada experimento y, por supuesto, variará cada vez que ejecutemos un experimento aunque todos los parámetros de entrada que introduzcamos en la acción llevada a cabo sean iguales. Queda de maniesto así que existen aspectos desconocidos que le coneren cierta incertidumbre al modelo y al sistema. Éstos son muchas veces difícilmente modelables y medibles, incluso en ocasiones es complicado imaginar de donde provienen. Almacenando los datos de esta manera y utilizando los métodos de ajuste se podrá apreciar visualmente, mediante representación gráca, el grado de ajuste que nos proporciona el regresor obtenido. A posteriori se puede comparar mediante simulación si el comportamiento de nuestro esquema se asemeja al de la plataforma experimental real, que siempre tiene multitud de perturbaciones e incertidumbres como ya hemos comentado. 2.3.2. Tratamiento de la fricción en el modelo En un comienzo se pensó en despreciar ciertos aspectos de la fricción reduciendo el modelo completo a tan solo la fricción dinámica. Intuitivamente se podía creer que los efectos que no se tenían en cuenta aparecerían absorbidos de alguna manera por las constantes que se estaban identicando aunque, por el simple hecho de estar ignorando parte del modelo, sabíamos que los valores de los parámetros estarían, en cierta medida, subestimados o sobreestimados. Ni siquiera podríamos llegar a estimar en que medida estaba ocurriendo
CAPÍTULO 2. IDENTIFICACIÓN 30 Figura 2.7: Experimento identicación para 5 parámetros con Golden Sequence Para los experimentos que representa la Figura 2.7 se utilizó la entrada de la Figura 2.5 que es la utilizada en todos los experimentos de identicación. Aquí puede apreciarse que el comportamiento que predice nuestro regresor se aleja de la realidad notablemente. Queda de maniesto que los valores obtenidos no son aceptables cuando observamos el regresor que hemos obtenido: θT= Oset k6 k7 k8 k9 k10 = 0,0000 −0,0011 0,0054 −0,0010 0,2808 −0,1333 (2.9) No se pueden dar por válidos parámetros negativos puesto que si revisamos la denición de los parámetros constantes en la Tabla 1.1 no tiene ningún sentido físico real pensar en un producto entre longitudes, masas, gravedad e inercias, en cualquiera de sus combinaciones, que de como resultado un número negativo. Hay que encontrar una manera de solucionar este inconveniente. Merece la pena detenerse a mirar la Figura 2.8. La gráca en rojo que se puede apreciar está generada con el regresor obtenido en el experimento utilizando la entrada Gold Sequence de la Figura 2.5. La predicción que obtenemos es aceptable puesto que la curva parece seguir, con cierto retraso, a la trayectoria de par marcada. Es preciso remarcar, viendo este caso, que pese a que tengamos valores negativos en el regresor la aproximación podría ser matemáticamente válida. Lo que nunca debemos hacer es perder de vista el modelo físico real del sistema que es la razón por la cual desechamos cualquier regresor que incluya un valor negativo.
CAPÍTULO 2. IDENTIFICACIÓN 31 Figura 2.8: Experimento identicación para 5 parámetros con Chirp 2.4. Identicación con 3 constantes Se plantea como solución alternativa introducir un factor constante conocido deducido directamente de las deniciones de los parámetros físicos con el n de simplicar la identicación de 5 parámetros a solo 3. Esto hará que la identicación pierda un poco de exibilidad puesto que ahora el ajuste involucra menos parámetros que antes. Podría entenderse como un ajuste de 5o orden frente a uno de 3er orden aunque ésta sea meramente una idea intuitiva. Aún así se busca que el regresor represente al sistema. Todo el procedimiento descrito anteriormente es exactamente igual con el único cambio que la matriz ϕ que antes tenia 5 columnas ahora pasa a tener 3 y los parámetros k6 y k9 quedan denidos indirectamente al realizar la identicación de k7 y k10 . 2.4.1. Replanteamiento de las ecuaciones del sistema A sabiendas de que las constantes k6 , k7 , k9 y k10 están denidas según la Ecuación 2.10: k6=L2m3, k7=Lc3Lm3 k9=Lm3g, k10 =Lc3m3g (2.10) Descubrimos que existe la misma relación de distancias entre las constantes k6 y k7 que entre k9 y k10 , la cual es sencillamente medible. k6 k7 =k9 k10 =L Lc3 L Lc3 =450 189 = 2,3809 ⇒k6 k7 =k9 k10 = 2,3809 = RL (2.11) Por tanto: k6= 2,3809 ·k7 k9= 2,3809 ·k10
CAPÍTULO 2. IDENTIFICACIÓN 32 El valor de Lc3 se ha medido de forma simple y experimental en el laboratorio. Se ha cogido la varilla con la masa que ejerce de muñeca y se ha colocado sobre un punto de apoyo elevado hasta que quedara suspendida en el aire en equilibrio. Este punto en el que tenemos la misma cantidad de masa ditribuida a un lado y a otro es el centro de gravedad . Queda medido desde el punto jo donde rota hacia la masa que se sitúa en el extremo opuesto. Se midió con ayuda de una cinta métrica una distancia de Lc3= 189mm . Este hecho simplica las Ecuaciones 2.4 y 2.5 para realizar la identicación con solo 3 constantes imponiendo que el cociente entre las constantes k6 , k7 y k9 , k10 se mantiene y se cumple la relación que existe entre los parámetros físicos reales. Así: Ecuación 2 h¨q2·RL+ 2 ¨q2cos(q3) + ¨q3cos(q3)−˙ q2 3sin(q3)−2 ˙q2˙q3sin(q3)i·k7+ [ ¨q2+ ¨q3]·k8+ [sin(q2)·RL+sin(q2+q3)] ·k10 =τ2−k5sin(q2)−k3¨q2−Ff2 (2.12) Ecuación 3 h¨q2cos(q3) + ˙ q2 2sin(q3)i·k7+ [ ¨q2+ ¨q3]·k8+ [sin(q2+q3)] ·k10 = 0 (2.13) Se puede apreciar que la Ecuación 2.5 no ha variado puesto que no tenía ningún término que fuera multiplicado por las constantes k6 ni k9 así que permanece igual. Esto implica que no obtendremos ninguna información adicional de esta ecuación. Escrito en forma matricial tal y como nosotros necesitamos para poder utilizar el método de ajuste las ecuaciones quedarían de la siguiente forma. Recordemos que la relación entre distancias vendrá representada por RL : ϕ="¨q2RL+ 2 ¨q2cos(q3) + ¨q3cos(q3)−˙ q2 3sin(q3)−2 ˙q2˙q3sin(q3) ¨q2+ ¨q3sin(q2)RL+sin(q2+q3) ¨q2cos(q3) + ˙ q2 2sin(q3) ¨q2+ ¨q3sin(q2+q3)# u=τ2−k5sin(q2)−k3¨q2−Ff2 0;θT 3 Constantes = k7 k8 k10 (2.14) 2.4.2. Resultados Comprobamos los resultados conseguidos mediante esta alternativa en la identicación, forzando a que dos constantes sean función del valor que tenga otra. Visualmente el ajuste conseguido parece mejor aunque aparentemente la Figura 2.10 parece más ruidosa . Será fundamental que el valor de los parámetros sea positivo por denición.
CAPÍTULO 2. IDENTIFICACIÓN 33 Figura 2.9: Experimento identicación para 3 parámetros con Golden Sequence Los parámetros obtenidos en este experimento de identicación son los que aparecen en la Ecuación 2.15. θT 3 Constantes = Oset k7 k8 k10 = 0,0001 0,0063 0,0044 0,2235 ⇒θT= 2,3809 ·k7 k7 k8 2,3809 ·k10 k10 = 0,0151 0,0063 0,0044 0,5322 0,2235 (2.15) 2.4.3. Validación de resultados A la vista del regresor obtenido podemos decir, al menos, que los parámetros cumplen con la condición necesaria de no negatividad. Para asegurarnos de que al asumir estos valores no nos estamos alejándonos en exceso del comportamiento real del sistema se realizan varios experimentos con otras entradas diferentes, usando en este caso las señales Chirp y seno de la Figura 2.4 y 2.3 respectivamente. Figura 2.10: Comprobación para 3 parámetros identicados con Chirp
CAPÍTULO 2. IDENTIFICACIÓN 34 Utilizando los parámetros obtenidos comparamos el par real introducido por nosotros y el par predicho con nuestro regresor identicado. Se aprecia una similitud entre las curvas aceptable. Debe existir un fenómeno más involucrado en la fricción que no hemos conseguido representar por completo en nuestro modelo ya que en la predicción aparece un pequeño retraso. La forma que sigue la curva aparenta ser la misma pero retrasada un breve instante de tiempo. También se puede apreciar en la Figura 2.10 que cuando el robot gira en sentido antihorario el modelo no llega a predecir el máximo par. Esto puede deberse a múltiples razones pero entre otras la fricción se ha podido ver modicada con el paso del tiempo por el desgaste o simplemente porque es diferente en una dirección y en otra. Figura 2.11: Comprobación para 3 parámetros identicados con seno de ω= 0,6rad/s Existen dos relaciones deducidas a partir de la denición de los parámetros que pueden utilizarse para comprobar, relativamente, la abilidad de los resultados obtenidos. Puesto que la relación es la misma el cociente entre los parámetros debe ser bastante parecido, aceptando como un buen resultado siempre que sean del mismo orden de magnitud. k2 k6 =m2LLc2 m3L2=m2Lc2 m3L= 0,3046 k5 k9 =m2Lc2g m3Lg =m2Lc2 m3L= 0,9301 ⇒k2 k6 =k5 k9 ⇒0,3046 0,9301 = 0,3275 (2.16) Aunque uno de los dos cocientes es tres veces mayor que el otro ambos son del mismo orden de magnitud lo que nos lleva a pensar que la identicación ha ido por el buen camino, que los parámetros que hemos identicado son capaces de representar el comportamiento de nuestro sistema de manera satisfactoria y que los valores que hemos obtenido concuerdan con los heredados del anterior trabajo [BP09].
CAPÍTULO 2. IDENTIFICACIÓN 35 2.5. Resultados denitivos La Tabla 2.2 es una tabla resumen de todos los parámetros que se utilizarán de aquí en adelante. Tanto los parámetros de k1 a k5 , como los σ0 , σ1 y σ2 son valores tomados como válidos del anterior trabajo [BP09], aunque también asumimos que con el paso del tiempo, el deterioro del robot y otras razones hayan podido variar ligeramente. Parámetro Valor k10,1386 V·s2/rad k20,0046 V·s2/rad k30,0372 V·s2/rad k42,183 V·s2/rad k50,4950 V·s2/rad k6= 2,3809 ·k7= 0,0151 V·s2/rad k70,0063 V·s2/rad k80,0044 V·s2/rad k9= 2,3809 ·k10 = 0,5322 V·s2/rad k10 0,2235 V·s2/rad σ042,9609 V·s/rad σ12,4593 V·s/rad σ20,0612 V·s/rad Ff3≈0 , despreciable frente a Ff2 RL2,3809 ( adimensional ) Tabla 2.2: Tabla resumen de los valores de los parámetros del robot
Capítulo 3 Controlador 3.1. Introducción Una vez halladas las ecuaciones del movimiento de nuestro sistema y habiendo realizado la identicación podemos asegurar que nuestro modelo matemático ha quedado completamente denido. A partir de este punto podemos empezar a realizar las simulaciones para cualquier tipo de controlador y comportamiento que queramos. Por otra parte, aunque el modelo matemático es perfectamente conocido tendremos que montar en Simulink un modelo basado en bloques para agilizar y simplicar nuestra tarea. Ésto también hace que la tarea se haga mucho más sencilla y visual pudiendo comprobar los resultados de cada simulación rápidamente. En este capítulo se pretende explicar de manera teórica, sin profundizar en exceso, el controlador que se utilizará sobre el robot. Con este regulador basado en una aproximación de la energía del sistema se realizarán las simulaciones y los experimentos para estabilizar el sistema en una posición de equilibrio inestable en capítulos posteriores. Se procederá al ajuste del controlador sobre el modelo de simulación hasta conseguir el resultado que buscamos y, a la postre, llevaremos el controlador ajustado al modelo real, en el que sufrirá ciertos cambios, para conseguir que el comportamiento sea el adecuado puesto que siempre existen incertidumbres sin modelar. El sistema de control que se utilizará para la estabilización consta de dos etapas: 1. Swing Up : se encargará de elevar el codo y la muñeca hasta un entorno de la posición vertical, (q2, q3) = (π, 0) . 2. Ballancing Control : se encargará de mantener el codo y la muñeca en la posición vertical. A continuación vamos a explicar cada una de las dos partes más detalladamente con el desarrollo matemático necesario. La base de estas explicaciones aparecen en [Ted09]. 36
CAPÍTULO 3. CONTROLADOR 37 3.2. Swing Up 3.2.1. Objetivo El objetivo de la primera etapa, el controlador Swing Up , es conseguir llevar el sistema de dos grados de libertad con una sola acción de control que, de aquí en adelante llamaremos Pendubot , hasta un entorno de la posición de equilibrio superior inestable, como un péndulo invertido. Ésto es donde la posición del codo es q2=π y la muñeca sigue su dirección en la vertical q3= 0 y la velocidad del codo y de la muñeca es nula: ˙q2= 0 y ˙q3= 0 . 3.2.2. Desarrollo teórico El desarrollo teórico que haremos a continuación utilizará la nomenclatura que hemos venido utilizando en capítulos anteriores. Tratando los elementos de las matrices del modelo como términos para simplicarlo y hacerlo más corto porque, de otra manera, las ecuaciones podrían ser incómodamente largas. En este apartado se ha seguido las pautas dadas en los artículos [FLS00] y [XKO02] adaptándolo a nuestro sistema y a las ecuaciones que habíamos obtenido nosotros previamente. El modelo que tenemos de nuestro robot es, en realidad, de tres grados de libertad pero sabemos que tiene la primera articulación bloqueada, es decir: q1= ˙q1= ¨q1= 0 Lo que quiere decir que la primera la y la primera columna de nuestras matrices quedan anuladas por tanto las matrices con las que trabajaremos serán 2x2 y se tomarán los elementos (2,2) , (2,3) , (3,2) y (3,3) . Aún así nuestro modelo sigue siendo: D(q)·¨q+C(q, ˙q)·˙q+G(q) + Ff(q, ˙q) = τ(t) (3.1) Donde d22 d23 d32 d33¨q2 ¨q3+c22 c23 c32 c33˙q2 ˙q3+G2 G3+Ff2 Ff3=τ2 0 (3.2) La energía del sistema se calculará mediante la siguiente expresión: E=Ec+Ep (3.3) Ec=1 2˙qTD(q) ˙q (3.4) Ep= (1 −cos(q2))(m2Lc2g+m3Lg) + (1 −cos(q2+q3))(m3Lc3g) (3.5) Utilizando la denición de las constantes: k5=m2Lc2g;k9=m3Lg;k10 =m3Lc3g La energía potencial se dene como: Ep= (k5+k9)(1 −cos(q2)) + (k10)(1 −cos(q2+q3)) (3.6)
CAPÍTULO 3. CONTROLADOR 38 Así la expresión de la energía total del sistema utilizando los parámetros anteriormente identicados es: ET=1 2˙qTD(q) ˙q+ (k5+k9)(1 −cos(q2)) + (k10)(1 −cos(q2+q3)) (3.7) La energía del Pendubot cuando esté en reposo sobre su posición de equilibrio se reducirá a únicamente su energía potencial. En equilibrio, detenido en su posición superior, se puede resumir como (q2,˙q2, q3,˙q3)=(π, 0,0,0) , por tanto: Eeq = (k5+k9)(1 −cos(π)) + (k10)(1 −cos(π+ 0)) = 2(k5+k9+k10) (3.8) Si monitorizamos la energía del sistema debemos saber que debe converger a la energía denida en la Ecuación 3.8. Cuanto más rápido alcancemos el equilibrio más rápida sera la convergencia y viceversa. Nuestro siguiente paso será intentar llevar al Pendubot hasta una órbita homoclina . Una órbita homoclina es un estado del movimiento del robot en el que el codo permanecerá en un entorno del equilibrio, en q2= (π+) , y la muñeca oscilará tan cerca como queramos del punto de equilibrio, realizando ciclos casi completos, adquiriendo una fracción más de energía en cada oscilación. La órbita homoclina se dene mediante la siguiente trayectoria: 1 2k8˙q2 3=k10(1 −cos(q3)) (3.9) Se puede comprobar como se ha deducido las Ecuacione 3.9 a través de su correspondiente desarrollo en el artículo [FLS00] o [XKO02]. Resolver el problema de llevar al robot hasta la órbita homoclina es, básicamente, conseguir el controlador Swing Up que nosotros perseguimos. Consideremos un cambio de variable como el propuesto a continuación: ˜q2= (q2−π) (3.10) ˜ E=E−Eeq (3.11) Pretendemos así conseguir que tanto la energía total del Pendubot como la posición del codo se hagan cero cuando se encuentre en el punto de equilibrio deseado. Se utiliza ahora una función de Lyapunov, que es una herramienta matemática de gran ayuda a la hora de asegurar la convergencia hacia la estabilidad de un sistema. El presente trabajo no tiene como objetivo el estudio de estas funciones pero se mencionan porque son necesarias en el desarrollo teórico del controlador. Así, se propone la siguiente función de Lyapunov: V(q, ˙q) = kE 2˜ E(q, ˙q)2+kD 2˙q2 2+kP 2˜q2 2 (3.12) Donde las constantes kE , kD y kP son estrictamente positivas y se denirán más adelante. En denitiva, ajustar las constantes se convertirá en el principal problema para obtener el controlador deseado. Si derivamos V en función del tiempo obtenemos: ˙ V=kE˜ E˙ E+kD˙q2¨q2+kP˜q2˙q2= ˙q2kE˜ Eτ2+kD¨q2+kP˜q2 (3.13)
CAPÍTULO 3. CONTROLADOR 39 A modo de recordatorio, los elementos que necesitamos de las matrices D(q) y C(q, ˙q) estaban denidos como: d22 =k3+k6+k8+ 2k7cos(q3) d23 =k8+k7cos(q3) d32 =k8+k7cos(q3) d33 =k8; (3.14) c22 =−k7˙q3sin(q3) c23 =−k7˙q1sin(q3)−k7˙q2sin(q3)−k7˙q3sin(q3) c32 =k7˙q1sin(q3) + k7˙q2sin(q3) c33 = 0 (3.15) Necesitamos una expresión de la aceleración del codo, ¨q2 , que podemos despejar del modelo reducido presentado en la Ecuación 3.2: ¨q2 ¨q3=d22 d23 d32 d33−1τ2 0−c22 c23 c32 c33˙q2 ˙q3−G2 G3−Ff2 Ff3 (3.16) De donde podemos resolver facilmente ¨q2 : ¨q2=dinv 22 (τ2−c22 ˙q2−c23 ˙q3−G2−Ff2)−dinv 23 (c32 ˙q2+c33 ˙q3+G3+Ff3) (3.17) Los términos dinv 22 y dinv 23 representan el elemento (2,2) y (2,3) respectivamente de la inversa de la matriz D(q) que se calculará sencillamente en Matlab sobre el modelo de Simulink utilizado. Ahora introduciremos la Ecuación 3.17 en la Ecuación 3.13 para obtener una expresión en función de las velocidades del codo y de la muñeca, ˙q2 y ˙q3 : ˙ V= ˙q2[τ2(kE˜ E+kDdinv 22 )−kD(dinv 22 (τ2−c22 ˙q2−c23 ˙q3−G2−Ff2)− −dinv 23 (c32 ˙q2+c33 ˙q3+G3+Ff3)) + kP˜q2] (3.18) Proponemos una ley de control que nos lleve hasta: ˙ V=−˙q2 2 (3.19) Por tanto de las Ecuaciones 3.18 y 3.19 podemos determinar una ley de control: −˙q2 2= ˙q2[τ2(kE˜ E+kDdinv 22 )−kD(dinv 22 (τ2−c22 ˙q2−c23 ˙q3−G2−Ff2)− −dinv 23 (c32 ˙q2+c33 ˙q3+G3+Ff3)) + kP˜q2] (3.20) De donde despejaremos la expresión explícita de la ley de control que estamos buscando: τ2=kD[dinv 22 (c22 ˙q2+c23 ˙q3+G2+Ff2) + dinv 23 (c32 ˙q2+c33 ˙q3+G3+Ff3)] −kP˜q2−˙q2 kE˜ E+KDdinv 22 (3.21)
Capítulo 4 Simulación 4.1. Introducción El propósito de este capítulo es explicar el conjunto de simulaciones que se realizaron y los resultados que se obtuvieron aplicando el modelo matemático hallado e identicado en apartados anteriores. Se mostrará también el diagrama de bloques que se construyó en Simulink para realizar todas las simulaciones así como sus peculiaridades. Al nal se verán los resultados conseguidos y las conclusiones que se sacaron a la luz de los resultados. 4.2. Diagrama de bloques El modelo que se ha utilizado para los experimentos de simulación es el que aparece en la Figura 4.1. En él se distinguen claramente dos bloques principales. El bloque azul de la izquierda que tiene dentro todo el subsistema del controlador sin ajustar y el bloque gris de la parte derecha que contiene todo el modelo matemático calculado para el robot. A continuación se mostrará el interior de cada uno. El resto de bloques que aparecen son medidores o instrumentos para poder llevarnos el valor de las variables almacenadas al workspace de Matlab y poder trabajar con ellas. Figura 4.1: Esquema de simulación 46
CAPÍTULO 4. SIMULACIÓN 47 Figura 4.2: Interior del bloque Controlador Figura 4.3: Interior del bloque Swing Up 4.2.1. Bloque: Controlador Aquí se encuentran las dos etapas del controlador, el Swing Up y el Ballancing Control como podemos apreciar en la Figura 4.2. Además se ha añadido un interruptor, el Switcher, que se encarga de monitorizar los valores de las posiciones y velocidades y llegado el momento hace que deje de funcionar el Swing Up para comenzar a controlar el sistema mediante el Ballancing Control. El bloque Swing Up lleva dentro una función embebida programada en lenguaje C. Se hizo porque el cálculo de matrices necesario a cada paso de la simulación se realiza más rapidamente con una función de este tipo. A esto le añadimos que manejar tal cantidad de operaciones y matrices es más cómodo en lenguaje programado que mediante bloques de Simulink. No obstante, los tres parámetros kP , kD y kE que se debían ajustar se sacaron fuera para tratarlos como ganancias constantes y pasandole el dato de entrada a la función aumentando así la manejabilidad del modelo. Se ve lo que contiene en la Figura 4.2.
CAPÍTULO 4. SIMULACIÓN 48 Figura 4.4: Interior del bloque Switcher El bloque Switcher es un interruptor que decide que controlador actúa en cada momento en base a unos ciertos parámetros de corte. Se puede observar que los cuatro parámetros que monitoriza son: q2 , ˙q2 , q3 y ˙q3 . Cuando el pendubot se encuentra en torno a la posición de equilibrio y a velocidades sucientemente bajas el switcher se activa. El valor de estos parámetros aparece en el apartado 3.4. Cabe resaltar un detalle. La posición de la muñeca en ocasiones superaba la vuelta completa, q3>2π lo que hacía que aún estando próxima a la situación de equilibrio el Ballancing Control no se activara nunca. Para solucionar este pequeño problema se normalizó la posición limitándola únicamente al rango (0,2π) . En la práctica se introdujo una función mod que devuelve el resto de una división, acotando así la medida de la posición de la muñeca. El bloque Ballancing Control es la implementación del controlador LQR que consiste en alimentar las variables de estado a través de una ganancia calculada mediante el método que minimiza el coste, explicado en el Capítulo 5, en el apartado correspondiente. Figura 4.5: Interior del bloque Ballancing Control
CAPÍTULO 4. SIMULACIÓN 49 4.2.2. Bloque: Modelo de Simulación Aquí se encuentra todo el modelo matemático que hemos obtenido anteriormente. Para producir un movimiento en el robot se calculaba un par de entrada para el codo, τ2 , ya que el par en la muñeca, τ3 , es cero por denición al tratarse de un sistema subactuado. Para apreciar las similitudes en el esquema recordaremos que la forma que tenía el modelo: ¨q2 ¨q3=d22 d23 d32 d33−1τ2 0−c22 c23 c32 c33˙q2 ˙q3−G2 G3−Ff2 Ff3 (4.1) Cada una de las diferentes matrices de la ecuación aparece reejado en un bloque amarillo. Estos bloques son funciones programadas en C, como también lo es el controlador, puesto que el manejo de las matrices es más rápido, sencillo y ecaz que teniendo que tratar cada vector por separado. La salida del bloque 3gdl_m_inv_param_chsel nos entrega las aceleraciones de codo y muñeca. A partir de esa señal se han colocado dos integradores consecutivos para poder disponer de las señales de velocidad y posición de las articulaciones. Estos integradores tienen incluída una entrada para especicar las condiciones iniciales del experimento, de hecho, el robot no tendría porque empezar de la situación de reposo. Existe una entrada más a todo el sistema del robot. Nos referimos a la entrada BLK que representa el bloqueo que se le podía ejercer a la articulación del hombro y del codo. Utilizando esta herramienta era como simulábamos que estaban bloqueadas y no tenían movimiento. Si el codo se bloqueaba tendría la misma posición que el hombro y si, por el contrario, se bloqueaba el hombro, éste actuaría de bancada y el movimiento del codo sería completamente independiente. Figura 4.6: Interior del bloque Modelo del Robot de 3 GDL
CAPÍTULO 4. SIMULACIÓN 50 4.3. Resultados El objetivo de la simulación del comportamiento del pendubot es conseguir que las dos partes del controlador funcionen correctamente, incluyendo el momento de cambio gobernado por el estado del switcher y la situación de discontinuidad que crea el salto en el valor del par. Más allá se persigue y se desea que, tras simular el comportamiento, los valores ajustados del controlador se puedan exportar al sistema real, manteniendo en mente que los valores nales deberán ser aún ligeramente modicados. En las Figuras 4.7 y 4.8 se puede examinar el resultado nal del ajuste del controlador. Se alcanza un comportamiento deseado aunque se sospecha que puede existir otros valores que mejoran el tiempo de respuesta nal del pendubot. Al jarnos en la posición de la muñeca se observa que entra en la órbita homoclina y que, una vez dentro, oscila varias veces hasta entrar dentro de la cuenca de atracción que delimita el cambio de controlador. Los valores para los que se consiguió este resultado con el controlador fueron: kP= 6,78 , kD= 1 y kE= 3 . Figura 4.7: Evolución de la posición del codo con el tiempo Figura 4.8: Evolución de la posición de la muñeca con el tiempo
CAPÍTULO 4. SIMULACIÓN 51 La ley de control calculada y ajustada nos ha llevado al cálculo de un par, medido en voltios y que nunca podía superar los 10V ya que era el punto de saturación del sistema, con la forma que nos muestra la Figura 4.9(a). La única referencia que teníamos de la evolución del par era la vista anteriormente en los articulos [FLS00] y [XKO02]. El parecido es elevado lo que, lejos de asegurarnos nada, parece indicar que la senda es la correcta. En lo referente al par si que es importante reseñar la pequeña discontinuidad que aparece en la entrada en el momento en que el switcher cambia del Swing Up al Ballancing Control. De hecho, en la Figura 4.9(b) se observa que el interruptor no actúa una única vez sino que entra en acción tres veces antes de cambiar denitivamente al Ballancing Control. Esto es debido a que el pendubot se encuentra en la frontera de la cuenca de atracción entrando y saliendo hasta que denitivamente cae dentro. La variación que tiene el par es sucientemente pequeña como para no sacar al pendubot de su trayectoria por lo que los inconvenientes han sido mínimos a la hora de tratarlo. El switcher debería estar ajustado de tal manera que solamente se ejecutara una vez aunque no fue posible hallar los valores límite que hicieran que ocurriera así. (a) Evolución del par de entrada al codo (b) Detalle del par en el momento de cambio de controladores Figura 4.9: Grácas de la evolución del par del codo con el tiempo Si revisamos las Figuras 4.7 y 4.8 vemos que el cambio de controlador no afecta a la posición de ninguna de las dos articulaciones. En este sentido el sistema absorbe la pequeña perturbación de manera satisfactoria. Sin embargo si que puede apreciarse un cambio en la velocidad de la muñeca. No obstante el pico de velocidad no es muy elevado tampoco. Se pueden revisar las Figuras 4.10(a) y 4.10(b) para ver hasta que punto les ha afectado. En la Figura 4.11 aparece representado un detalle de la variación de la velocidad articular de la muñeca en el instante en que se activa el switcher. Existen tres pequeños picos antes de que la velocidad vuelva a lo que parece su trayectoria natural.
CAPÍTULO 4. SIMULACIÓN 52 (a) Velocidad del codo (b) Velocidad de la muñeca Figura 4.10: Evolución de las velocidades articulares con el tiempo Figura 4.11: Velocidad de la muñeca en el instante de activación del switcher 4.4. Conclusión A la vista de los resultados podemos armar que las simulaciones han obtenido una respuesta muy satisfactoria. El tiempo de respuesta del robot es relativamente pequeño. Llega al punto de equilibrio superior inestable en un tiempo reducido de aproximadamente tr= 5 segs. Se sospecha que un ajuste incluso más rápido es posible en el que el pendubot llegue a estabilizarse en el punto más alto justo cuando la muñeca realiza la primera oscilación. Se cree que podría conseguirse ya que cumple, al menos, las condiciones de posición de codo y muñeca pero las condiciones de velocidad deberían ser ligeramente más laxas lo que podría hacer que no entrara en la cuenca de atracción o que entrara pero no fuera capaz de permanecer dentro. En esta sección se ha conseguido utilizar el controlador de dos etapas con Swing Up y Ballancing Control para estabilizar el robot en una situación de doble péndulo invertido inestable utilizando el modelo matemático hallado e identicado en apartados anteriores. A continuación se procederá a probar si al exportar los valores a la plataforma real el resultado es positivo.
Capítulo 5 Experimentación 5.1. Introducción En este apartado se pretende explicar el conjunto de experimentos que se llevaron acabo así como sus resultados. Los parámetros ajustados obtenidos en simulación se exportaron a la plataforma real. Debido a la incertidumbre que siempre existe en los sistemas reales se esperaba que los valores del controlador tuvieran que ser ajustados para un correcto comportamiento del pendubot. A continuación se explicará la respuesta que se obtuvo. 5.2. Diagrama de bloques para experimentación A lo largo de las etapas de simulación y experimentación se ha tratado de llevar en paralelo la similitud de los modelos con el n de facilitar el entendimiento y el manejo de los mismos. Habituarse a la utilización de uno y el entendimiento de ambos. En la Figura 5.1 se puede ver el diagrama de bloques general que se ha utilizado para los experimentos con el pendubot. También hay multitud de salidas hacia el workspace de Matlab que han servido para monitorizar las variables que más inuencia tenían sobre el comportamiento del robot. Figura 5.1: Diagrama de bloques de Simulink utilizado para los experimentos 53
CAPÍTULO 5. EXPERIMENTACIÓN 54 Tal y como hemos mencionado, en el interior de los bloques Controlador y Robot de tres grados de libertad se puede apreciar el mismo tipo de esquema que vimos en simulación, véanse las Figuras 5.2(a) y 5.2(b). La diferencia más apreciable aparece en el interior del bloque robot real donde el modelo ha desaparecido para dejar paso al mecanismo del robot en sí mismo. Los bloques que aparecen representan las tarjetas de adquisición de datos que nos abastecerán con las medidas de posición de las articulaciones. (a) Interior del bloque controlador (b) Interior del bloque robot de tres grados de libertad Figura 5.2: Interior de los bloques controlador y robot 5.3. Experimentos Se realizaron multitud de baterías de experimentos hallando, nalmente, una colección de valores que funcionaban de manera adecuada sin llegar a conseguir una respuesta del todo satisfactoria. Como podemos observar en las Figuras 5.3 y 5.4, el sistema consigue entrar en la órbita homoclina, paso previo a conseguir un cambio de controlador, y caer en la atracción de la cuenca de control del Ballancing Control. Figura 5.3: Trayectoria del codo
CAPÍTULO 5. EXPERIMENTACIÓN 55 Figura 5.4: Trayectoria de la muñeca Los valores de los parámetros utilizados en este experimento fueron: kP= 3,5 , kD= 0,63 y kE= 6 . Si bien estos valores se parecen a los ajustados en la simulación, resulta que no están asignados a las mismas variables. Este hecho se podría deber a que los términos de mayor relevancia en el modelo son diferentes en la simulación y en la realidad. No obstante, se propone un estudio posterior de la dependencia del modelo con estos valores para hallar la verdadera causa. En la experimentación con la plataforma real apareció un comportamiento que en la simulación nunca llego a darse. Con el impulso inicial que proporcionaba el codo, la muñeca comenzaba a girar dando más de una vuelta hasta que llegaba a un punto en el que el codo conseguía estabilizarla en un entorno de la posición de equilibrio. Es decir, la muñeca giraba libremente hasta que entraba en la órbita homoclina y ahí se quedaba oscilando como se ve en la Figura 5.4, primero aproximadamente da nueve vueltas y después comienza a oscilar. En comparación con los comportamientos exhibidos en simulación son bastante similares a excepción del número de vueltas que gira la muñeca antes de estabilizarse. (a) Velocidad del codo (b) Velocidad de la muñeca Figura 5.5: Evolución de las velocidades articulares
Bibliografía [BP09] Guillermo Bejarano Pellicer. Identicación y control de un robot de dos grados de libertad de accionamiento directo, 2009. [FLS00] Isabelle Fantoni, Rogelio Lozano, and Mark W. Spong. Energy based control of the pendubot. IEEE Transactions on Automatic Control , vol. 45, 2000. [JB91] Daniel Jerome Block. Mechanical design and control of the pendubot, 1991. [SHV04] Mark W. Spong, Seth Hutchinson, and M. Vidyasagar. Robot Dynamics and Control , chapter 9, pages 193229. Second edition, 2004. [Ted09] Russ Tedrake. Underactuated Robotics: Learning, Planning and Control Ecient and Agile Machines, Course Notes for MIT 6832 . Massachusetts Institute of Technology, 2009. [XKO02] Xin Xin, Masahiro Kaneda, and Toshitaka Oki. The swing up control for the pendubot based on energy control approach. IFAC , 2002. 62
ANEXOS 63
Anexo A Descripción del sistema físico A.1. Introducción En el presente documento se procederá a describir los distintos dispositivos que componen el sistema, así como el hardware y el software utilizados para el control del mismo. La información aquí expuesta se puede revisar en [BP09] puesto que la plataforma experimental utilizada es exactamente la misma para ambos proyectos. A.2. Robot de tres grados de libertad En las Figuras A.1, A.2, A.3, A.4 y A.5 se pueden observar distintas perspectivas y detalles del robot. Se describirá a continuación cada uno de sus componentes. A.2.1. Motores Los motores pertenecen a la gama F Series Frameless DDR Motor de Kollmorgen, y se encuadran dentro de la familia de Direct Drive Rotary Brushless Motors. Los motores en cuestión son el F7950 para el hombro y el F4318 para el codo. Las características principales de estos motores se muestran en la tabla A.1. Par continuo (Nm) Par de pico (Nm) Peso (Kg) F4318 18 60.6 5.2 F7950 128 305 29.8 Tabla A.1: Características de los motores A.2.2. Brazos de giro Los brazos de giro están realizados en placa de aluminio de 15 mm de espesor, siendo la distancia entre los huecos para los motores de 450 mm. El primer brazo, denominado en adelante hombro , es el que se sitúa entre ambos motores, mientras que el segundo 64
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 65 Figura A.1: Vista frontal del robot
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 66 Figura A.2: Vista del perl del robot
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 67 Figura A.3: Detalle de la sujeción al suelo Figura A.4: Detalle del motor del hombro
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 68 Figura A.5: Detalle del motor del codo y del encoder incremental
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 69 Figura A.6: Detalle de la tercera articulación
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 70 brazo, al que se llamará codo , es el que se encuentra entre el motor más pequeño y el encoder incremental nal. Desde el encoder incremental cuelga una tercera articulación, la última de todas, que denominaremos muñeca . No dispone de motor (o de freno) por lo que gira libremente impulsada por el movimiento de las otras dos articulaciones. Debido a la ausencia de actuador en la muñeca la fricción es sustancialmente menor que en las otras dos articulaciones. Se aprecia en detalle en la Figura A.6 A.2.3. Encoder incremental El encoder incremental situado en el extremo de la segunda articulación es el modelo EL58 del fabricante Eltra. En la Figura A.7 se muestran sus principales características electrónicas. Figura A.7: Características del enconder incremental A.3. Servoactuadores Los servoactuadores utilizados para ambos motores son los ServoStar 600 de la rma Kollmorgen. Estos dispositivos permiten el control preciso del par aplicado a los motores. Sus principales características son: Conexión RS232. Conexión bus CAN. 2 entradas analógicas. 2 salidas analógicas. 4 entradas digitales programables. 2 salidas digitales programables.
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 71 Control digital: • Corriente. • Velocidad. • Posición. Evaluación de señal de resolver. Evaluación de señal de encoder seno-coseno. Salida de simulación de encoder. En la Figura A.8 se muestra el aspecto del servo, mientras que en la Figura A.9 se ve el esquema general de componentes auxiliares del servo. Por último en la Figura A.10 se muestra el diagrama de conexiones, donde se detallan las entradas y salidas del servoactuador. A.4. Tarjetas Se dispone asimismo de un par de tarjetas de lectura de valores de encoder y de entrada/salida analógicas de la rma National Instruments. En concreto se utiliza la tarjeta NI 6601 para la lectura de los valores de encoder, y la tarjeta NI 6024E para las entradas/salidas analógicas. La tarjeta NI 6601 posee la capacidad de leer señales de hasta dos encoders absolutos, y teniendo en cuenta que cada servoactuador posee una salida simulada de encoder absoluto, esta tarjeta resulta adecuada para la conexión. La justicación del uso de señales diferenciales puede encontrarse en su mejor funcionamiento ante el ruido propio de entornos industriales. Por su parte, la tarjeta NI 6024E posee, entre otras, 2 salidas analógicas (DAC0OUT y DAC1OUT) y 16 entradas analógicas. De este modo, se utiliza cada una de las señales de salida analógica como señal de control: DAC0OUT para el codo y DAC1OUT para el hombro. A.5. Sistema de control El sistema de control del robot de tres grados de libertad está basado en el sistema operativo en tiempo real xPC Target de Mathworks. Este es un entorno de alto rendimiento, que permite conectar modelos de Simulink o Stateow con un sistema real y ejecutarlos en tiempo real en un hardware PC compatible. El diseño de controladores para el sistema es sencillo, ya que xPC Target permite añadir bloques de entrada/salida a los modelos de Simulink. Para ello dispone de una amplia librería de dispositivos de entrada/salida, que es capaz de gestionar de forma transparente al usuario. Los principales componentes del sistema de control son los siguientes:
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 78 Figura A.13: Software Drive: menú para manipular cada articulación A.6. Imágenes de los distintos elementos del sistema Figura A.14: PC Target e interfaz gráca
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 79 Figura A.15: Servoactuadores y cuadro eléctrico
ANEXO A. DESCRIPCIÓN DEL SISTEMA FÍSICO 80 Figura A.16: Cierre del cuadro eléctrico