ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA CONSTRUCCIÓN Y DISEÑO DEL SISTEMA DE CONTROL DE POSICIÓN DE UNA ESFERA SOBRE UNA PLATAFORMA MÓVIL Autor: D. Pedro de Otaola Arca Director: Dr. Juan Luis Zamora Macho Madrid Junio 2015 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Resumen En los últimos tiempos, la automatización de procesos está cobrando gran interés tanto en el mundo industrial, aumentando la eficiencia y la seguridad, como en el ámbito doméstico, haciendo la vida más cómoda al consumidor. Una automatización efectiva y eficiente depende de varios factores, siendo uno de los principales su sistema de control. De ahí deviene la creciente importancia del estudio de sistemas y estrategias de control en el ámbito de la ingeniería. Uno de los casos típicos en la enseñanza de control es el sistema bola balancín. Este sistema tiene una versión más didáctica y también compleja, que consiste en su extensión a las dos dimensiones, formando el sistema bola plataforma [1]; en él se controla la posición de una bola en un plano sobre el que se actúa para cambiar sus ángulos de inclinación. Figura 1: Esquemático del sistema bola plataforma La estructura necesaria para el estudio de este sistema es compleja de montar, razón por la cual existen escasos ejemplos de su uso en las aulas. Los pocos sistemas comerciales disponibles son cerrados –algunos incluso usan software propio para su manejo- y por sus montajes concretos son más complicados de manejar de lo que viene UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA implícito por el tipo de sistema. Analizando los sistemas que se encuentran en el ámbito universitario se comprueba que cada uno está construido de una forma distinta en función de los materiales disponibles, es decir, no siguen unas pautas concretas, siendo difícil sacarle partido a lo ya existente. El problema anterior motiva el principal objetivo de este proyecto, la construcción y control de una estructura [2] para el estudio del sistema bola plataforma basada en LEGO Technic, usando como controlador central una unidad NXT. Se ha elegido esa plataforma de desarrollo por ser la usada en los montajes de las prácticas de las asignaturas del área de control en la Universidad Pontificia Comillas, así como en muchas otras, de manera que se cree un prototipo válido y cómodo para la enseñanza. Además, todo el control se ha hecho usando los programas Matlab y Simulink, de uso muy extendido en el ámbito universitario. Durante el montaje se han experimentado problemas estructurales relacionados con la flexibilidad de las piezas de plástico. Dichos problemas se han solucionado con el diseño e implementación de una serie de medidas de refuerzo y limitación de movimiento en los ejes afectados. Figura 2: Estructura del proyecto Respecto a las medidas de las variables a controlar se han usado sensores también de LEGO además de una pantalla táctil, cuya señal se procesa a través de un circuito diseñado en KiCad y un Arduino. KiCad es un software libre de diseño de PCBs y Arduino es una plataforma de hardware libre muy común en la enseñanza de electrónica UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA y control; con ambos se sigue en la línea de crear un sistema abierto y reutilizable en las aulas. Para la comunicación entre Arduino y NXT se ha implementado un programa –en el primero- que usa la comunicación I2C para enviar los datos adaptándolos de tal forma que el NXT los reciba a través de un bloque de matlab preparado para usar un acelerómetro. Con la adaptación de las señales desde el arduino se consigue aprovechar el bloque de Matlab existente, y así simplificar las cosas no necesitando hacer un bloque específico. En el modelado del sistema se ha incluido el modelo de un motor eléctrico conectado a un sistema mecánico genérico [3], y por último, las reacciones del par aplicado a la plataforma en su relación con las dinámicas de la bola [4]. Figura 3: Motor y sistema mecánico Figura 4: Par sobre plataforma La obtención de los parámetros del modelo se ha hecho a través de ensayos. Un primer ensayo en movimiento, sin la bola en el sistema, dando tensión a los motores según una señal PRBS y un segundo ensayo estático con la bola sobre la plataforma. El modelado como un sistema genérico del que se extraen los parámetros por ensayos tiene interés en tanto que simplifica el diseño del control y resalta la importancia de entender por qué el sistema responde de una determinada forma. No es un modelo perfecto sobre el que se diseña un control siguiendo una receta y se implementa sin más, sino que se diseña un control que da una buena situación de partida y sobre él, se estudia la respuesta del sistema y se aplican correcciones fundamentándose en la teoría y el análisis. En lo que respecta al control se ha planteado una configuración de PID en cascada [5]. La razón de esta elección es su justa complicación, por una parte es suficientemente compleja como para poder estabilizar el sistema, pero por otra es lo suficientemente simple como para encuadrarse en las prácticas de las asignaturas del grado. A lo largo UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA de este proyecto se ha estudiado una manera adecuada de controlar el sistema. Partiendo de las conclusiones obtenidas y sabiendo qué se busca, los alumnos no deberían tener problemas para manejar el sistema durante las prácticas de una asignatura. El control en cascada consta de 3 lazos resultantes de la división del sistema general (entre la tensión del motor y la posición de la bola) en tres subsistemas. El primero abarca desde la aplicación de la tensión al motor hasta el ángulo girado por su eje. El segundo toma como entrada el ángulo de giro del eje del motor y como salida el ángulo de giro de la plataforma sobre la que se apoya a bola. El último de los tres tiene como entrada el ángulo de giro de la plataforma y como salida la posición de la bola en la misma. Figura 5: Control PID en cascada El diseño de los controles se ha hecho lazo a lazo, teniendo en cuenta el anterior a la hora de diseñar el actual. Se ha diseñado y optimizado cada uno de ellos secuencialmente, y una vez llegado al último se han hecho correcciones en todos como sistema completo. Tras toda la labor de diseño y optimización se ha demostrado que el sistema es controlable, logrando que sea capaz de estabilizar la bola, que la mantenga en una posición y reaccione ante las perturbaciones devolviéndola a su sitio, y por último, que siga una trayectoria de referencia [6]. UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 6: Seguimiento de trayectoria (tiempo: 23.2s) La pantalla táctil resistiva usada ha presentado algunas dificultades por no ser perfectamente lisa, dichas dificultades se han solventado lo máximo posible a través de la mejor optimización del control. Cara a futuros desarrollos se recomienda, para evitar complejidad en el control, sustituir la pantalla por una capacitiva o por un sistema de posicionamiento con imágenes. También se anima a futuros alumnos a provechar el potencial de la plataforma mediante el estudio de estrategias de control distintas a la usada. Tanto el uso de controles de lógica borrosa como predictivos podrían arrojar resultados muy positivos, y teniendo en cuenta las dificultades de modelado, se justificaría mejorar este último a predictivo adaptativo. UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Abstract In recent times, the process automation is gaining great interest both in the industrial world, increasing efficiency and security, and in the domestic sphere, making the consumer’s life more comfortable. The effectiveness and efficiency of the automation depends on several factors, being the control system one of the most important. Hence the growing importance of the study of control systems and strategies in the field of engineering. One of the typical cases in teaching control system is the ball and beam. This system has a more didactic and complex version, which is its extension to two dimensions. The two dimension one is called the ball and plate system, in which the position of a ball on a plane is controlled by actuating to change the plane’s angles. Figure 1: Schematic ball and plate system The mechanical structure required for the analysis of the system is complex and difficult to build and that is the reason why there is very few examples of its use for academic purposes. There are few commercial systems available, most of them restricted –and even use proprietary software for its control- and because of the complex structures used, they tend to be more complex to control than other alternatives where we can focus UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA on the ideal problem instead of the implementation. The devices used for academic purposes seem to have been built depending on the available materials without following specifications or using standard parts that could be used in this project. The previous problem is the main reason for carrying out this assignment, the construction and control of a LEGO Technic structure [2] for the study of the ball and plate system based on a NXT central unit. The materials were chosen because of their availability and its wide use in the Pontifical University Comillas among others, thus creating an affordable and simple prototype for educational purposes. On top of that, all the control and programming has been done using Matlab and Simulink, widely extended tools in education. During the build process structural issues related to plastic parts flexibility have been faced. This problems have been solved by reinforcing and limiting movement in the affected axis. Figure 2: Project’s structure Measurements for the controlled variables are taken with Lego sensors and a resistive touch panel whose signal is processed by a small circuit designed with KiCad and an Arduino. KiCad is a free open source program used for printed circuit boards design and Arduino is a well know open hardware platform used in electronics and control education. By using the mentioned tools it is ensured that the results of the project remain open in order to be used in education. UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA The communication between the Arduino and the NXT controller is done by I2C in such a way that the Arduino is able to send data that the main unit can receive through an accelerometer Simulink block, avoiding the need to create new Matlab blocks for the NXT device and simplifying the problem. The system has been modeled as the combination of an electric motor, a generic mechanical system and [3], finally, the torque applied by the ball on the surface of the plate [4]. Figure 3: Motor and mechanic system Figure 4: Torque on the plate The parameters of the model have been obtained experimentally. Firstly a dynamic test was carried out. By using pseudo random binary signals as stimulation, the position of the plate was measured without the ball in order to reduce disturbances. A second experiment was needed in order to obtain all the parameters. A static test to measure plate’s movement because of the ball weight was done. This modeling of the system is important because it greatly simplifies the task of control design and it helps to understand how the system behaves and reacts to external effects. This is not an exact model that can be used for control design using a step list, but a good approximation that enables the design of a basic control that can be used as a start point for improvement with the help of control theory and response analysis. The chosen configuration was cascade PID controllers [5]. The reason behind this election is that, on one hand, the configuration is complex enough to ensure system stability, but on the other hand, is simple enough for its use in practical examples of a degree subject on any university. Based on the results of the project we can conclude that this configuration should fit the need of the students that may use the ball and plate mechanism described in the project. The chosen control configuration is made up of three loops result of the splitting of the system in three subsystems. The first subsystem input is the voltage and outputs the UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA angle rotated by the motor. The second takes the angle rotated by the motor and outputs the angle rotated by the plate where the ball lays. Finally, the third one takes the angle of the platform and its output is the position of the ball in the plane of the touch panel. Figure 5: Cascade PID controllers The design of the controls has been made individually, loop by loop. This includes the design of every control taking into account the effects of the controls inside the loop to be controlled. After the individual design and optimization of every control it was necessary to adjust them as part of a whole system in order to improve the overall performance. After all this work, the research has shown that the system is controllable and that the ball can be stabilized in the platform. Demonstrations of disturbance rejection have been made, firstly with a fixed set-point for the ball position and secondly for ball trajectories [6]. Figure 6: Trajectory tracking (time: 23.2s) UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA The touch panel used in the project presented some issues because it was not perfectly smooth. Those issues were solved by improving the controls of the system but it is recommended to avoid the problem in future developments of the project by using capacitive touch panels or positioning by image recognition. It is also recommended for future students to try other control techniques in the platform in order to improve the performance of the system. It is encouraged the use of fuzzy logic controllers and predictive controllers because of the expected improvements, although the use of predictive-adaptive controllers is highly justified because of the difficulties found when modeling the platform mechanism. UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Documento 1 MEMORIA UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 22 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Contenido Documento 1 .................................................................................................................. 21 MEMORIA ..................................................................................................................... 21 I. Memoria ................................................................................................................. 27 1. Estado del arte .................................................................................................... 29 1.1. Estructura mecánica ..................................................................................... 29 1.2. Determinación de la posición ....................................................................... 32 1.3. Sistema de control ........................................................................................ 33 1.3.1. Control PID ........................................................................................... 33 1.3.2. Control por realimentación de estado ................................................... 34 1.3.3. Controles por lógica difusa (fuzzy control) .......................................... 35 1.3.4. Ejemplos ............................................................................................... 36 2. Motivación .......................................................................................................... 39 3. Objetivos............................................................................................................. 41 4. Metodología de trabajo ....................................................................................... 43 5. Recursos empleados ........................................................................................... 45 6. Construcción ....................................................................................................... 47 6.1. Construcción de la estructura ....................................................................... 47 6.2. Obtención de medidas .................................................................................. 54 6.2.1. Medida de posición angular de los ejes de los motores ........................ 54 6.2.2. Medida de la posición y velocidad angulares del plano ....................... 55 6.2.3. Medida de la posición de la bola en el plano ........................................ 58 6.2.3.1. Lectura de coordenadas desde el Arduino ...................................... 58 6.2.3.2. Comunicación con la unidad NXT ................................................. 61 6.2.3.3. Filtrado de medida en el NXT ........................................................ 63 7. 8. Modelado ............................................................................................................ 67 7.1. Modelado del sistema ................................................................................... 67 7.2. Simplificaciones ........................................................................................... 71 7.3. Obtención de parámetros .............................................................................. 75 Funcionamiento .................................................................................................. 79 8.1. Puesta en marcha .......................................................................................... 79 8.2. Generación de la referencia .......................................................................... 82 8.3. Control.......................................................................................................... 83 8.3.1. Elección del sistema de control ............................................................ 84 8.3.2. Control PID en cascada ......................................................................... 85 23 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 8.3.2.1. Lazo 1: PD Motor ........................................................................... 86 8.3.2.2. Lazo 2: PI Sistema mecánico .......................................................... 89 8.3.2.3. Lazo 3: PID Posición ...................................................................... 92 9. Conclusiones y futuros desarrollos ..................................................................... 97 10. II. Bibliografía ..................................................................................................... 99 Anexo A: Diagramas Simulink............................................................................. 101 III. Anexo B: Código fuente Matlab ....................................................................... 113 IV. Anexo C: Código fuente Arduino ..................................................................... 121 24 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Índice de figuras Figura 1 Mecanismo bola balancín .....................................................................................................29 Figura 2 Mecanismo bola plataforma .................................................................................................29 Figura 3 Estructura proyecto [MOAR08] ...........................................................................................31 Figura 4 Estructura proyecto [KNUP00] ............................................................................................31 Figura 5 Estructura proyecto [ELIN14] ..............................................................................................31 Figura 6 Estructura Feedback-instruments .........................................................................................31 Figura 7 Hexapod de Quanser.............................................................................................................32 Figura 8 Ejemplo control PID .............................................................................................................34 Figura 9 Ejemplo control por realimentación de estado .....................................................................35 Figura 10 Ejemplo control difuso .......................................................................................................36 Figura 11 Sistema cremallera-apoyo...................................................................................................48 Figura 12 Planta general .....................................................................................................................49 Figura 13 Mov. ejes: Posición inicial..................................................................................................50 Figura 14 Mov. ejes: Rotación en Y ...................................................................................................50 Figura 15 Mov. ejes: Rotación en X ...................................................................................................50 Figura 16 Boceto de ejes de la plataforma ..........................................................................................51 Figura 17 Detalle del cruce de ejes .....................................................................................................51 Figura 18 Unión rotante: esquemático (izq) y real (der) .....................................................................52 Figura 19 Refuerzos en eje X (der) e Y (izq) ......................................................................................52 Figura 20 Ejemplos de limitación del giro en Z..................................................................................53 Figura 21 Engranajes eje X (der) e Y (izq) .........................................................................................53 Figura 22 Disposición de sensores en plataforma. Acelerómetro (arriba) y dos giroscopios .............55 Figura 23 Filtro complementario giroscopio-acelerómetro ................................................................57 Figura 24 Medida acelerómetro (filtrada por paso bajo).....................................................................57 Figura 25 Medida giroscopio (sin filtrar) ............................................................................................57 Figura 26 Angulo tras filtro complementario .....................................................................................58 Figura 27 Velocidad angular tras filtro complementario ....................................................................58 Figura 28 Capas del panel resistivo ....................................................................................................59 Figura 29 Determinación de coordenada Y ........................................................................................60 Figura 30 Circuito de adaptación del panel táctil. Esquema (izq) representación 3D (der) ................60 Figura 31 Diagrama de bloques de los filtros aplicados a la medida de la posición ...........................64 Figura 32 Medida de posición sin filtrar .............................................................................................65 Figura 33 Medida de posición tras filtro lógico de valor máximo ......................................................65 Figura 34 Medida de posición tras filtro lógico por diferencia de valores..........................................65 Figura 35 Medida de posición tras filtro Butterworth de 3º orden......................................................65 Figura 36 Comparación retardo de medida tras filtro de Butterworth ................................................65 Figura 37 Modelado del motor y del sistema mecánico .....................................................................67 Figura 38 Modelado sistema de posición............................................................................................68 Figura 39 Proyecciones de la aceleración de la gravedad ...................................................................68 Figura 40 Diagrama de bloques del motor ..........................................................................................69 Figura 41 Sistemas mecánico y de posición .......................................................................................70 Figura 42 Diagrama de bloques de los sistemas mecánico y de posición simplificados ....................74 Figura 43 Sistemas genéricos: primer orden + integrador + segundo orden .......................................75 Figura 44 Equivalencia entre sistema genérico y sistema modelado ..................................................76 Figura 45 Máquina de estados ............................................................................................................80 Figura 46 Offset giroscopio ................................................................................................................81 Figura 47 Generación de referencia ....................................................................................................82 Figura 48 Referencias X e Y respecto al tiempo.................................................................................83 Figura 49 Referencia X respecto a Y ..................................................................................................83 Figura 50 Control en cascada ..............................................................................................................85 25 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 51 Sistema motor: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) .................................................................87 Figura 52 Sistema motor: Respuesta a escalón (arriba) y respuesta en funcionamiento en conjunto con seguimiento a referencia rectangular (abajo) para ejes X (izq) e Y (der).....................................88 Figura 53 Sistema mecánico: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) .................................................................91 Figura 54 Sistema mecánico: Respuesta en funcionamiento en conjunto con seguimiento a referencia rectangular para ejes X (izq) e Y (der)................................................................................................92 Figura 55 Sistema de posición: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) .................................................................94 Figura 56 Sistema posición: Respuesta en funcionamiento con seguimiento a referencia rectangular para ejes X (izq) e Y (der)...................................................................................................................95 Figura 57 Respuesta del sistema al describir un rectángulo ...............................................................95 26 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA I. Memoria 27 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 28 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 1. Estado del arte El mecanismo de bola y balancín [1] es un problema clásico de control sobre un sistema no lineal. En él se controla la posición de una bola sobre una barra rígida, actuando únicamente sobre ésta última. El mecanismo bola plataforma [2] en el que se centra el desarrollo de este proyecto es la ampliación, en una dimensión, del sistema anterior. Se actúa sobre los grados de libertad de la plataforma a través del control del movimiento sobre sus dos ejes. Los diferentes problemas que se pueden plantear en dicho sistema son fundamentalmente tres: la estabilización de la bola, la estabilización de la bola en un punto deseado y que la bola siga una trayectoria marcada. Figura 2 Mecanismo bola plataforma Figura 1 Mecanismo bola balancín 1.1. Estructura mecánica Así como el sistema de bola y balancín ha sido muy estudiado en el ámbito del control, el sistema de bola plataforma, aun siendo más didáctico por su mayor 29 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA envergadura, goza de una bibliografía mucho menor –sin ser escasa-, en parte por la mayor dificultad del control, pero sobre todo, por lo complejo de la estructura mecánica necesaria para su estudio. Entre las estructuras existentes, podemos dividirlas en dos grupos, aquellas en las que el giro de los motores es lineal con el cambio de ángulo del plano, y aquellas que no son lineales o directamente no usan motores. Aquellas en las que el ángulo de giro del motor es lineal con el giro de la plataforma, lo más común es que la plataforma tenga una unión fija a su centro, y para provocar el giro, el motor tiene unos brazos de apoyo sobre los ejes cartesianos de la plataforma. Con esos apoyos la actuación de cada motor es independiente de la actuación del otro. Partiendo de ese concepto, las estructuras pueden ser más o menos robustas. Por ejemplo, en [2] la plataforma está sujeta solo por los laterales y no en el centro, por tanto, si no es todo perfectamente rígido podría desplazarse verticalmente en caso de que los brazos cedan. Por contra, en [3] sí existe un apoyo físico en el centro de la plataforma, para asegurar que ese punto mantenga su posición, dicho apoyo permite los giros pero anula los desplazamientos en las 3 dimensiones. Este apoyo central viene dado por la necesidad de complementar los mecanismos de barras que usa para transmitir el giro de los motores a la plataforma. Al no tener los ejes de los motores alineados con los ejes del plano en su posición horizontal, para transmitirle el movimiento tiene que usar mecanismos con rótulas, y de no haber apoyo central, el punto se desplazaría en el espacio de forma natural, sin necesidad de que cedieran las barras. 30 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 3 Estructura proyecto [MOAR08] Figura 4 Estructura proyecto [KNUP00] Pasando a las estructuras que no tiene una relación de giro lineal entre motor y plataforma, existen ejemplos como [5] donde se mueve la plataforma a través de actuadores electromagnéticos, conectados a los centros de los lados del plano superior. El punto de apoyo tiene una localización similar a los sistemas ya comentados, pero el movimiento vertical viene determinado por el sistema electromagnético, y a las posibles no linealidades, se le suma la conversión del movimiento vertical del plano a su movimiento angular. Feedback-instruments tiene un sistema comercial [6] (Ball and Plate Control System 33-052) que basa su funcionamiento en el mismo fundamento. Ambos sistemas tiene puntos de anclaje al centro del plano, pero idealmente, podían soltarse, y con ello ganar un grado de libertad con el posible control del desplazamiento vertical del centro. Figura 5 Estructura proyecto [ELIN14] Figura 6 Estructura Feedback-instruments Otro ejemplo es el Hexapod [7] comercializado por Quanser. Dicha estructura tiene 3 puntos de apoyo sobre el plano. El ángulo del plano se controla a través de la elevación de los tres puntos de apoyo, que a su vez dependen del desplazamiento 31 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA horizontal de sus bases. Además, esta estructura sí amplia los grados de libertad del sistema bola plataforma convencional, siendo capaz de realizar pequeños desplazamientos verticales y horizontales. Figura 7 Hexapod de Quanser 1.2. Determinación de la posición Para la determinación de la posición de la bola hay 3 opciones claras, desde el plano en el que se apoya, desde la propia bola, o desde un sistema externo. Desde el plano sobre el que se apoya se puede determinar la posición de la bola con paneles táctiles, ya sean capacitivos o resistivos. En [AWTA02][NOKH11] se pueden ver ejemplos de uso de paneles táctiles. Para la determinación de la posición desde un sistema externo es muy común el uso de cámaras de video situadas encima de la plataforma. Con de software de reconocimiento de imagen se calcula la posición de la bola en la plataforma. Se pueden ver ejemplos de este tipo en los trabajos [GALV13][MOAR08][KNUP00][WANG07]. Para el cálculo de posición desde la propia bola, podrían usarse sistemas de radiofrecuencia que siguieran los mismos principios que el GPS. La correcta y rápida determinación de la posición es clave para el correcto funcionamiento del sistema. El uso de software de reconocimiento de imágenes conlleva una gran carga computacional, y además, debe tener en cuenta la inclinación del plano para el cálculo correcto de la posición relativa a éste con su giro, y no al horizontal de la captura. La interpretación de los datos a partir de un panel táctil es más trivial, pues el panel da como resultado la posición en el plano, si necesidad de sabes la posición del 32 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA plano en sí mismo. Además, el procesado es menos pesado para el micro, y por tanto, más rápido. Por su parte, debido a las pequeñas distancias, la implementación de un sistema de tipo GPS sería desmesuradamente más costoso que las otras dos posibilidades, y para acabar consiguiendo una precisión probablemente inferior. 1.3. Sistema de control Entre los controles más usados para este tipo de planta, están los controles PID, los controles de lógica difusa y los controles por realimentación de estado –aunque menos comunes que los anteriores-. A continuación, una breve explicación del funcionamiento de cada uno, sus principales ventajas y desventajas, y algunos ejemplos donde se han usado en otros trabajos. 1.3.1. Control PID Los controladores PID [8] son controles por realimentación muy comunes en gran variedad de sistemas. A partir de una referencia dada, se calcula el error que tiene la respuesta medida, y se actúa para corregirlo. Hay tres tipos de acciónes diferenciadas, la parte proporcional, que actúa sobre el error actual entre referencia y salida, la parte integral que actúa en base al histórico (integral) del error, y la acción diferencial que actúa en base a lo que se supone va a ocurrirle al sistema en un futuro. La suma de la respuesta de estas tres acciones determina el mando a aplicar a la variable de control del sistema. Entre sus desventajas se encuentran la necesidad de calcular derivadas e integrales en el controlador, cosas que en ocasiones dan problemas de ruido y de aproximación en tiempo discreto. 33 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 8 Ejemplo control PID Su principal ventaja, y razón por la cual es muy usado, es que es relativamente fácil implementarlo cuándo se desconoce el funcionamiento del sistema. Su principal característica, desventaja o ventaja según el caso es su simpleza. Este tipo de control es fácil de usar porque solo tiene en cuenta la referencia y la salida, y a su vez puede no ser suficiente para estabilizar un sistema precisamente por eso, porque no tienen en cuenta el resto de variables que determinan el sistema. Una alternativa dentro de los reguladores PID es el poner varios reguladores en cascada. Esto es, en vez de aplicar un solo control al sistema entero, se aplican varios controles por partes, para tener controladas variables intermedias. Esa alternativa tiene la ventaja de que se tiene un mayor control del sistema, y es la única alternativa para el uso de PIDs en ciertos casos no tan simples. Se debe tener en cuenta que cuando se ponen varios controles en cascada, cada lazo de control debe ser más lento que el lazo anterior, pues es imposible controlar correctamente una variable partiendo de otra que responde más lenta. 1.3.2. Control por realimentación de estado Las variables de estado son aquellas con las que el sistema queda completamente determinado en un momento dado. La representación de estados es el modelo matemático de un sistema físico determinado por sus entradas, salidas y variables de estado. Las entradas salidas y variables de estados, están relacionadas por ecuaciones diferenciales, y juntas se agrupan en una matriz de estados. 34 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Para el control por realimentación de estados [9], se estudia la respuesta del sistema, se decide el lugar que deben tener los polos de lazo cerrado, y se calcula el vector de ganancias que debe aplicársele a las variables de estado para que el sistema acabe con los polos donde se ha diseñado. Figura 9 Ejemplo control por realimentación de estado Entre las ventajas de este tipo de control se encuentra el hecho de que se está actuando sobre todas las variables que determinan al sistema, y por tanto, sobre toda la información posible. Además, la manera de controlar es a través de constantes proporcionales, y no a través de derivadas o integrales, a veces difíciles de calcular. En lo que respecta a la velocidad, este tipo de control, actúa sobre todo el sistema de forma simultánea, no primero sobre una parte y después sobre otra, logrando velocidades superiores al control PID en cascada. Como todo, también tiene sus desventajas, la más notoria es su dependencia de un correcto modelado de la planta a controlar. Debido a que este método se basa en el cálculo de las ganancias para llevar los polos del sistema a donde se ha decidido que es conveniente, si el modelado no es muy bueno, los resultados obtenidos pueden estar llevando el sistema a cualquier sitio. Con este sistema no es nada intuitivo como corregir y ajustar el control en base a respuestas de ensayos 1.3.3. Controles por lógica difusa (fuzzy control) El funcionamiento de este tipo de control es parecido al comportamiento de un humano. Se definen una serie de zona de funcionamiento del sistema, como cerca o lejos. Para cada una de esas zonas se plantea un control, por ejemplo, si está en la zona de cerca, que la variable de mando sea proporcional a la posición, y si está en la zona de lejos, que la variable de mando sea proporcional al cuadrado de la posición. El control, comprobará en que zona esta y aplicará ese control, pero las zonas no son tipo “todo o 35 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA nada”, sino que están solapadas. Por ejemplo, cerca es entre 0 y 10, y lejos entre 5 y 15, de manera que si está en 7.5, estará mitad en cerca y mitad en lejos, así que la respuesta del control será la suma de las acciones del control de cerca y de lejos dividida por dos. Por ejemplo, en [10] se muestran las gráficas de estados y de respuesta de un sistema de una turbina de vapor. Además de los estados para entradas y salidas faltarían las reglas que relacionan unos con otros y la actuación en cada estado de salida. Figura 10 Ejemplo control difuso Este control tiene una ventaja conceptual, y es que la manera de funcionar se parece a la manera de razonar de los humanos. Otra ventaja es la no necesidad de un modelo del sistema, no es necesario saber cómo funciona, simplemente con saber dónde está, y ver las zonas que se han definido se puede actuar. Además tienen una respuesta rápida, y son más robustos a perturbaciones que los reguladores PID. Su principal desventaja viene dada por la complejidad del sistema, para un sistema más preciso se requiere diseñar muchos más estados y reglas, y esto a su vez aumenta la cantidad de cálculos necesarios. Un buen diseño es muy laborioso, requiere mucha simulación, y una vez puesto en funcionamiento, es complejo cambiar parámetros concretos, teniendo que prestar atención al correcto funcionamiento de todo el sistema tras el cambio. 1.3.4. Ejemplos A continuación se comentan brevemente la forma en la que se controla el mismo sistema que en este proyecto, en otros trabajaos ya existentes. En [GALV13] se usa un control tipo PID –pero sin acción integral- con un compensador exacto para la parte no lineal, para el que se obtienen las ecuaciones a partir del análisis de estabilidad por el método de Lyapunov. Dicho método está relacionado con la estabilidad asintótica, básicamente se basa en que un punto de 36 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA equilibrio es estable si todas las soluciones de su ecuación diferencial homogénea se mantienen cerca de ese punto para todo tiempo posterior. En [AWTA02] implementan un control PID en cascada, con un lazo interior y otro exterior, mientras que en [MOAR08] parten del mismo control, y después demuestran que su velocidad y sobrepaso mejoran al añadirle un supervisor difuso que cambie las ganancias del PID en tiempo real. Usar controles PID como controles de los estados de un control difuso es algo no muy habitual, en su lugar, es más común usar una look-up table para alternar entre PIDs. En [WANG07] también usan un sistema de control tipo cascada con dos lazos. En el lazo externo utilizan un control de lógica difusa con prioridad dinámica y en el interno demuestran que un servo controlador de conmutación reduce significativamente el error frente a un proporcional derivativo convencional. A pesar de que son varios los trabajos que usan reguladores tipo PID con sus tres acciones, en [KNUP00] sin embargo, tras el estudio de su planta llegan a la conclusión de que este tipo de control no es adecuado. El control añadiría un polo más al sistema y haría empeorar su estabilidad; para resolverlo se decantan por un PID sin acción integral, se puede justificar la no necesidad de añadir acción integral en el control, pues la integración del propio sistema llevará a alcanzar el régimen permanente. 37 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 38 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 2. Motivación La motivación de este proyecto es de carácter educativo. Por ese motivo lo que se pretende es el desarrollo de uno de los problemas clásicos de control usando LEGO. El interés en el uso de dicha plataforma se debe a que prácticamente la totalidad de las prácticas del área de control de la Universidad Pontificia Comillas, ICAI, están desarrolladas en ella. Como complemento se usará además un Arduino, plataforma de hardware libre también muy extendida en el ámbito de la enseñanza, y presente en numerosos proyectos de la universidad. Su objetivo último sería el de servir de ejemplo y demostración de funcionamiento del sistema, tras una posible inclusión en el programa docente de alguna de las asignaturas del área de control. 39 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 40 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 3. Objetivos El proyecto consiste en dos objetivos principales, sin la consecución de los cuales no podrá darse por satisfactorio. 1- Desarrollo de una estructura, basada en LEGO technic, mecánicamente adecuada para el funcionamiento del sistema bola plataforma. 2- Desarrollo e implementación de un sistema de control que permita estabilizar la bola en una posición de la plataforma. Una vez estudiada la naturaleza del problema y diseñada la manera de resolverlo, se han planteado una serie de objetivos intermedios. A pesar de que no todos son imprescindibles para la consecución de los objetivos principales, si facilitarán enormemente su realización. 1- Mejora y diseño en KiCad del circuito necesario para la adaptación de las señales de la pantalla táctil a un microcontrolador. 2- Desarrollo de un programa para Arduino cuyo objetivo es el hacer accesibles las coordenadas de la pantalla táctil, a la unidad de control principal NXT. 3- Implementación del resto de sensores necesarios, y modelado de la planta, teniendo en cuenta las medidas disponibles. 4- Desarrollo e implementación de la puesta en marcha del sistema. Por último, como objetivo extra se ha propuesto el hacer que el control no solo estabilice la bola, sino que además sea capaz de hacer que esta siga una trayectoria prefijada. 41 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 42 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 4. Metodología de trabajo Se ha construido una estructura con LEGO technic, en la que se han dispuesto dos motores para el movimiento de la plataforma en cada uno de sus ejes, y una unidad NXT para la implementación del sistema de control. Para la medición de las variables de estado (posición de la bola sobre el plano, ángulo del eje del motor y ángulo y velocidad angulares del plano) se han dispuesto en el plano, un acelerómetro y dos giroscopios en su parte inferior y una pantalla táctil en la superior. La elección de dicha pantalla táctil como un panel resistivo se explica en la sección 6.2.3 (capítulo de montaje). Para conocer los ángulos de giro de los ejes de los motores se han usado los encoders propios de los motores. En lo que a la gestión del panel resistivo se refiere, se ha dispuesto un circuito de adaptación y un Arduino que transmite la posición de la bola al NXT, y es desde este desde donde se ejecuta el control de estabilidad. La programación del Arduino se ha realizado mediante su propio IDE mientras que para todo lo referente al control de la plataforma se han usado Matlab y Simulink. Tras la construcción y modelado de la planta, se han estudiado las posibilidades de los controles por realimentación de tipo proporcional, integral y derivativo en sus diversas configuraciones. Los controles mencionados en una configuración en cascada, han conseguido su función de estabilizar la bola, por tanto no ha sido necesario recurrir a otras alternativas de control. 43 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 44 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 5. Recursos empleados Para el desempeño de este proyecto han requerido de los siguientes componentes de hardware: piezas de montaje LEGO technic, unidad de control NXT, dos motores de 9V con encoders incluidos, un acelerómetro y dos giroscopios, todo ello de LEGO. Una pantalla táctil resistiva, componentes electrónicos básicos (pines de conexión, condensadores, resistencias, amplificadores operacionales y transistores) para su circuito de adaptación, y una tarjeta de desarrollo Arduino (Arduino Mega2560). Además, en lo referente a software, han sido necesarios la IDE de Arduino, Matlab y Simulink. El primero, programa open-source descargable desde la propia web de Arduino, y los dos últimos, programas muy extendidos en el ámbito universitario. 45 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 46 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 6. Construcción En este capítulo se explican los aspectos más importantes de la construcción del sistema. Tanto de la construcción de la estructura como de los sensores para la obtención de medidas. 6.1. Construcción de la estructura Como ya se ha mencionado, el principal objetivo del proyecto es el desarrollo de la estructura usando el material usado en las prácticas de las asignaturas de control, por tanto, se construirá con piezas de LEGO technic. No se pretende hacer una descripción exhaustiva del montaje pieza a pieza, pero si se comentar las ideas principales para su montaje y los problemas que han surgido durante el proceso. Al comienzo de este proyecto se disponía de un prototipo sin terminar de construir, que presentaba algún fallo mecánico que desequilibraba la estructura en ciertas posiciones. En esencia, la estructura constaba de un plano apoyado sobre una bola que actuaba de rotula, con apoyos que le impedían el desplazamiento. En [11] se ilustra como la trasmisión de movimiento del sistema consistía en unas cremalleras verticales, con salientes que empujaban el plano. Mientras que para ángulos pequeños funcionaba bien, con ángulos un poco mayores, había momentos en los que el plano se levantaba y perdía contacto con la bola sobre la que rotaba. Otro problema era que el plano, en su movimiento, subía empujado pero bajaba por su peso; de tal forma que si 47 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA con la bola encima esta hacía fuerza por el lado contrario a los apoyos de la cremallera la plataforma perdería el contacto con estos. Si bien era posible hacer que esa estructura funcionara, poniéndole muelles a la base desde los lados de la cremallera, para asegurar que siempre hubiera apoyo; y haciendo unas pequeñas modificaciones –a pesar de ser pequeños cambios en cuanto a diseño, implicaban desmontar gran parte de la estructura- para hacer que no se despegara de la bola, se optó por cambiar por completo el sistema por la relación de ángulos entre plataforma y motor. Figura 11 Sistema cremallera-apoyo Con el sistema de cremallera [11] la transmisión de ángulo entre plataforma y motor era no lineal, y la plataforma tenía una elevación considerable sobre el eje de giro. Como se ve, dicho eje de giro estaba en el centro de la bola de apoyo. En el nuevo sistema construido [12] la elevación sobre el eje de giro es mínima, de manera que se desprecia, y la transmisión de ángulo entre eje de motor y plataforma es lineal, con una ganancia función de las relaciones de transmisión de los engranajes dispuestos. 48 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 12 Planta general Si un plano rota en el eje X, todos los puntos del eje X permanecerán en la misma posición espacial. Exactamente lo mismo le sucede con el eje Y. Por tanto, si el motor que provoca el giro en X tiene sus puntos de apoyo sobre el plano en la línea del eje Y, cuando provoque rotación en X, no moverá los puntos de dicho eje. El otro motor, el que provoca el giro sobre el eje Y debe tener sus apoyos en el eje X. De esta forma, cuando un motor gire, moverá toda la plataforma excepto al línea en la que el otro motor tiene sus apoyos, con lo que se consigue que los ángulos de giro, no se afecten el uno al otro. El eje X puede girar en Y y el eje Y puede girar en X, pero no pueden ni girar en Z ni desplazarse en el espacio. Es intuitivo que la trasmisión del giro es directa, ya que se realiza a través de un mecanismo de 4 barras, que no se pueden salir de su plano, y tienen fijos a ejes los centros de dos de sus lados opuestos. En la secuencia se observa como partiendo de la posición inicial [13] se gira primero sobre en eje [14] y luego sobre el otro [15]. En el primer movimiento solo 2 de los 4 apoyos se mueven, y al ejecutar el giro en el otro, se mueven solo los otros dos. 49 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 13 Mov. ejes: Posición inicial Figura 14 Mov. ejes: Rotación en Y Figura 15 Mov. ejes: Rotación en X En [16] se puede ver una simplificación del montaje. Los motores se conectan a reductoras y éstas engranarían en los ejes azules. El eje azul debería ir conectado solamente al mecanismo de 3 barras y pantalla, pero debido a la longitud del eje se retuerce sobre sí mismo. Para minimizar esa flexibilidad de las piezas de LEGO, se ha dispuesto un rectángulo rígido que agarra al eje antes y después de su conexión con el mecanismo de trasmisión. 50 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 16 Boceto de ejes de la plataforma La transmisión del movimiento debe hacerse sobre las líneas de los ejes para independizar un movimiento del otro, por tanto, hay un punto por el que deben pasar uno de los ejes y la barra vertical de trasmisión del otro. Para solucionar esa concurrencia, se deja pasar el eje y se divide la trasmisión vertical en dos barras a su alrededor, pero teniendo en cuenta que deben volver a unirse para que solo un punto apoye en la pantalla, y lo haga en el centro. En [17] se muestra una simplificación del cruce de ejes. Figura 17 Detalle del cruce de ejes Idealmente la rotación en Z no debería darse, pero debido a la flexibilidad de las piezas y a las holguras de las uniones eso no es del todo cierto. Los rectángulos para dar rigidez al eje también pueden doblarse por los pares ejercidos. Para evitar esos giros, en vez de lo mostrado en [17], donde se veía que las rotulas que permitían un giro eran dos 51 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA barras simples, los ejes del mecanismo de barras son en realidad como el mostrado en [18]. Figura 18 Unión rotante: esquemático (izq) y real (der) [18 izq] es un conjunto de barras rígidas unidas entre sí (fuera de la figura) que se enganchan con un pasador a otro conjunto de barras también unidas entre sí, para evitar en la medida de lo posible cualquier movimiento que no sea el esperado. En [19] se aprecia como adicionalmente se han reforzado los contornos de los rectángulos que agarran a los ejes azules para que sigan formando un plano, y no se doblen de forma irregular. Figura 19 Refuerzos en eje X (der) e Y (izq) Para dar más solidez a la estructura, en todo el espacio existente entre las partes móviles mostradas, existe una estructura rígida fija a la base. Dicha estructura proporciona un punto de apoyo con una rótula que permite los 3 giros e impide los desplazamientos espaciales, que se engancha con el centro del plano superior. Además 52 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA de ese apoyo redundante, la función principal de esa estructura es servir de sujeción para los ejes que vienen de los engranajes, sobre todo en el centro, y limitar el movimiento horizontal de las barras que empujan la plataforma al girar. En [20] se observa que la estructura solo permite los movimientos verticales deslizándose entre ella, y limita al máximo los giros sobre Z y desplazamientos horizontales. Figura 20 Ejemplos de limitación del giro en Z Por último, un punto crítico es la conexión del motor con el eje de transmisión [21]. Para que el eje no se retuerza entre el motor y la rueda dentada, se han dispuesto ruedas dentadas en ambos lados del motor. Con el objetivo de evitar al máximo el movimiento de los ejes, además de poner ruedas dentadas a ambos lados, en alguno de ellos se ha puesto más de una, y se ha limitado el movimiento espacial de los mismo haciéndolos pasar a través de piezas fijas a la base. Figura 21 Engranajes eje X (der) e Y (izq) 53 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 6.2. Obtención de medidas A continuación se explican los distintos sensores mediante los cuales se mide el ángulo de giro de los ejes de los motores, el ángulo y velocidad angular del plano, y la posición de la bola en el mismo. 6.2.1. Medida de posición angular de los ejes de los motores Los ejes de los motores están conectados a engranajes reductores con una relación 5:1. La razón de esta reducción es aumentar la precisión. El motor de LEGO tiene un encoder con una resolución de 1º, al ponerle una reducción de 5:1 se consigue una resolución de 0,2º de giro en el eje de transmisión a la plataforma. Inicialmente se construyó con dos relaciones consecutivas, unos engranajes 5:1 seguidos de otros 3:1, con lo que se conseguía una resolución de 0.066º. Parece lógico pensar que dicha solución era mejor por el aumento de precisión, sin embargo, también tenía consecuencias negativas. La mayor relación que era posible establecer en un solo par de engranajes era 5:1, así que era inevitable dividirlo en dos pasos; por tanto el primer problema es que las ruedas dentadas tienen juego al engranar, y al haber dos pasos, aumentaba la holgura entre ellas. El segundo problema, y decisivo para el cambio de relación de 15:1 a 5:1, es que la reducción del ángulo girado implica una reducción de la velocidad de giro, y la máxima velocidad de giro del motor dividida entre 15 no aportaba suficiente velocidad al sistema para poder alcanzar la estabilidad. Otra alternativa que se planteó fue conectar directamente el eje de transmisión de la plataforma al eje del motor. Para solucionar el problema de resolución del encoder se conectarían engranajes multiplicadores en el otro extremo, y a su salida se colocaría un encoder externo. El primer problema que se podría encontrar con esta idea era la forma de transmitir la información de ese encoder al NXT, pues no había más puertos de 54 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA entrada de sensores. Por tanto habría que cortar los cables de control del motor correspondientes al encoder, dejar al aire los del lado del motor, y empalmar los del encoder externo a los del lado del NXT. El segundo problema y razón por la que se descartó la idea es la diferencia entre el rozamiento dinámico y rozamiento estático. El rozamiento estático es mayor que el dinámico, por lo que una vez el motor venciera la fuerza para empezar el movimiento, la requerida para mantenerlo sería menor, lo que haría difícil obtener movimientos precisos para ángulos pequeños. En conclusión, se conseguiría un sistema con una resolución muy fina, pero incapaz de mover ángulos pequeños. 6.2.2. Medida de la posición y velocidad angulares del plano Para las medidas de las magnitudes angulares del plano se han dispuesto un acelerómetro de tres ejes y un par de giroscopios, fijos al plano como se muestra en [22]. Figura 22 Disposición de sensores en plataforma. Acelerómetro (arriba) y dos giroscopios El acelerómetro nos proporciona la aceleración absoluta que hay en cada eje. Con la plataforma estática, se puede relacionar la aceleración de cada eje con la aceleración de la gravedad, calcular la posición angular del acelerómetro y con ello la de la 55 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA plataforma. El acelerómetro funciona bien a baja frecuencia, cuando las aceleraciones de la plataforma son muy pequeñas, pero cuando las aceleraciones aumentan su relación con la aceleración de la gravedad se hace difícil estimar el ángulo, siendo una medida muy ruidosa. Los giroscopios miden la velocidad angular, que una vez integrada permite conocer la variación del ángulo. Además, funcionan bien a altas frecuencias pero el error de integración se puede acumular con el tiempo. En resumen, el acelerómetro funciona a baja frecuencia y proporciona medidas absolutas, mientras que los giroscopios funcionan a altas frecuencias y dan medidas relativas. La mejor solución es hacer una puesta en marcha muy lenta, valiéndose exclusivamente del acelerómetro, y a partir de entonces usar un filtro complementario con las medidas de acelerómetro y giroscopios. El giroscopio devuelve la velocidad angular en grados/s del eje en el que se haya colocado. El acelerómetro devuelve la aceleración de cada uno de los tres ejes. El ángulo de cada eje se saca de las siguientes ecuaciones. ángulo de giro en X = 180 accel medica eje X atan2 ( ) π accel medida eje Z ángulo de giro en Y = 180 accel medica eje Y atan2 ( ) π accel medida eje Z Siendo atan2 una función arcotangente, pero que devuelve el ángulo en el cuadrante correcto, teniendo en cuenta los signos de las aceleraciones de ambos ejes. El filtro complementario, entre la velocidad angular del giroscopio y la posición angula del acelerómetro, se hace con el diagrama de bloques de [23]. 56 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 23 Filtro complementario giroscopio-acelerómetro Wfc tiene un valor de 0.95, con lo que se le da más peso a la medida del giroscopio. La mayor importancia del giroscopio en el filtro complementario viene dada por su mejor estimación a altas frecuencias, mientras que la importancia del acelerómetro, es menor, pero sirve para que con el paso del tiempo, en régimen permanente, vaya corrigiendo los errores acumulados del giroscopio con la medida absoluta. El acelerómetro es el más ruidoso de los dos, pero ambas medidas pasan antes por un filtro digital paso bajo para eliminar parte del ruido. A continuación se muestran las medidas del acelerómetro [24] y giroscopio [25], así como su resultado tras el paso por el filtro [26][27]. Figura 25 Medida giroscopio (sin filtrar) Figura 24 Medida acelerómetro (filtrada por paso bajo) 57 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 27 Velocidad angular tras filtro complementario Figura 26 Angulo tras filtro complementario La medida del acelerómetro [24] ya había pasado por un filtro discreto paso bajo para quitarle parte del ruido, con lo que a la vista de las gráficas, resulta evidente la mejoría del filtro complementario en la estimación del ángulo. La estimación de la velocidad angular se hace solo con el giroscopio. La diferencia entre la señal de entrada [25] y salida [27] es el paso por un filtro discreto paso bajo, igual que el usado para acelerómetro, y la ganancia para pasar la medida de grados a radianes. 6.2.3. Medida de la posición de la bola en el plano La medida de la posición de la bola en el plano es la más compleja de todas. Para ella se usan una pantalla resistiva, un circuito de adaptación y un Arduino. 6.2.3.1. Lectura de coordenadas desde el Arduino Para saber la posición de la bola se usa una pantalla táctil, a continuación se presenta una breve explicación de las diferencias entre las dos tecnologías más extendidas, y la explicación de porqué se eligió la resistiva. Pantallas resistivas: son paneles simples en su manejo, detectan la una pulsación de un solo objeto siempre que tenga el peso suficiente. Son más resistentes pero algo más lentas. Existen pantallas resistivas que detectan más de un punto de pulsación, pero 58 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA no son habituales, por lo que si el multipunto es requisito se recomienda el uso de capacitivas. Pantallas capacitivas: son paneles más complejos de manejar, pueden detectar pulsaciones en distintos sitios simultáneamente, el objeto no tiene que pesar pero tiene que tener capacidad, con lo que solo ciertos materiales harán que reaccione; son más transparentes, de manera que se tiene mejor visibilidad en caso de tener un LCD detrás; y son más caras y delicadas que las resistivas. Ciertas ventajas de los paneles capacitivos, como son su transparencia o el soporte multitáctil, son irrelevantes para este proyecto. Sin embargo, la facilidad de control, la resistencia y la independencia del material usado hacen que la pantalla resistiva sea más atractiva, y por lo tanto, la elegida. La estructura interna de la pantalla resistiva [28] son dos paneles resistivos superpuestos ortogonalmente. En las caras internas de dichos paneles hay resistencia (no mayor que 1kohm en general) entre dos lados opuestos donde hay un cable conectado. Figura 28 Capas del panel resistivo Una vez el objeto está sobre la pantalla, las dos capas se tocan, y la determinación de las coordenadas de ese punto ha de hacerse de forma alternativa. La coordenada se obtiene a partir del divisor de tensión provocado por la resistencia que hay de lado a lado, y el punto de presión. Para la coordenada Y por ejemplo, se alimenta con tensión positiva uno de los lados de la capa correspondiente, y se pone a tierra el otro. La otra capa se conecta al conversor A/D del micro para usarla para leer la tensión del punto de contacto. En [29] se muestra como se pone a tensión y a tierra una línea y se usa la otra para medir. 59 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 29 Determinación de coordenada Y Una vez leída la coordenada Y se alimenta la capa X de la misma manera y se usa la capa Y para leer la coordenada X como en el caso anterior. Estos dos pasos deben ejecutarse alternativamente de forma continuada. Para este proyecto se ha dispuesto un Arduino Mega2560 para el control de la pantalla, que se conecta a esta a través del siguiente circuito controlador [30]. El diseño de la PCB para el circuito se ha hecho con la herramienta libre KiCad. Figura 30 Circuito de adaptación del panel táctil. Esquema (izq) representación 3D (der) La programación del Arduino se ha hecho directamente a través de su IDE. El código completo se encuentra disponible en el Anexo C, a continuación se explica de forma resumida las bases de su funcionamiento. En cada ejecución del programa, se pone DRIVEA a tensión Vcc, DRIVEB a tierra, y tras un pequeño delay para que se estabilice el circuito, se lee la coordenada X. A continuación se repite el mismo proceso invirtiendo tensión y tierra en DRIVEA y 60 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA DRIVEB y midiendo la coordenada Y. Las medidas de las coordenadas son almacenadas a la espera de ser enviadas a la unidad de control principal NXT. 6.2.3.2. Comunicación con la unidad NXT El envío al NXT de las medidas de los dos ejes se puede hacer por varios métodos. En un primer montaje, las coordenadas se enviaban con valores analógicos, a través de una señal PWM de salida del Arduino. Dicha salida se filtraba con una configuración RC paso bajo y un buffer, y se conectaba a una entrada analógica en el NXT (se usaba el bloque de matlab correspondiente a un sensor de luz para leer la entrada analógica). Para mejorar el envío de esos datos se modificaron los registros correspondientes a la frecuencia de los timers, que se usan en las librerías de las funciones “analogWrite” (PWM) del Arduino, aumentando su frecuencia de los 490Hz por defecto a 31KHz. Con ese aumento de frecuencia del PWM quedaba mucho más margen para poner un filtro a más de una década por debajo y mantener velocidad de respuesta a cambios de medida. La sincronización de la unidad NXT y el Arduino para enviar alternativamente las medidas de las coordenadas X e Y por un solo canal se hacía compleja. Se necesitaría otra línea de comunicación para sincronizarse ya que en caso de no tenerla, por no ser perfectos los relojes de ambos micros o por una mala puesta en marcha, podrían desfasarse e invertirse él envió de coordenadas a mitad de ejecución. Por tanto, se dispuso usar dos líneas, una por coordenada, y estar enviando siempre el último dato del que se disponía. Inicialmente pensaba determinarse el ángulo de la plataforma valiéndose del acelerómetro de tres ejes y los encoders de los motores. Más tarde se decidió que, por la elasticidad de los ejes de LEGO, los encoders no eran válidos para la determinación de las magnitudes angulares del plano, y por tanto era necesario añadir otros dos giroscopios como complemento al acelerómetro. Al tener un acelerómetro y dos giroscopios, quedaban ocupadas tres de los cuatro puertos de entrada de sensores del NXT. De esta forma, la comunicación entre Arduino y NXT debía limitarse a una sola 61 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA línea, así que se descartó la opción de enviar las medidas de manera analógica como se ha explicado. La forma de usar un solo canal es usando el protocolo I2C. La recepción de la medida, por parte del NXT, se implementó en matlab con el bloque de manejo del acelerómetro. Dicho bloque cuando solicita medidas espera recibir 3 datos, correspondientes a las aceleraciones de los 3 ejes. En este caso el Arduino envía los dos datos de las coordenadas seguidas de un 0 para completar los tres valores que espera el bloque de acelerómetro. Ya se ha explicado como el Arduino obtiene las medidas y las almacena en un buffer a la espera de ser solicitadas, cuando recibe la solicitud del NXT usa la función “write” de la librería “wire” para enviar los 3 datos solicitados. A las medidas que toma el Arduino, con “analogRead”, se les hacen una serie de correcciones, en el propio Arduino, antes de enviarlas. Primero se divide el número entre 4 para pasar la resolución de 1024 a 256. Después se invierten los signos, sumándole 128 a los números por debajo del 128 y restándoselo a los que estén por encima de 127. Una vez recibidas en el NXT se le resta 3 a la medida. Con esto, se adaptan las medidas de la pantalla a las medidas que esperaría de un acelerómetro, de tal forma que los signos se correspondan con la parte positiva y negativa de los ejes del plano. Aquí conviene tener en cuenta las velocidades de los micros. En la lectura de coordenadas que hace el arduino cada coordenada tiene un delay de 5ms, con lo que tendrá el par completo cada 10ms más el tiempo que tarda el micro en ejecutar todas sus instrucciones. El tiempo de ejecución del programa en sí es mínimo, pero es algo, de manera que se puede decir que tardara 10+𝜀 ms. Suponiendo una situación inicial con los micros sincronizados y empezando a medir por la coordenada X, se daría la situación siguiente Tiempo envío medidas Tiempo medida coordenada X Tiempo medida coordenada Y Retraso medida Y Retraso máximo medida 𝜀 2 - - Retraso medida X 10 5+ 𝜀 2 No hay medida 5− 20 15 + 3𝜀 2 10 + 𝜀 5− 3𝜀 2 10 − 𝜀 10 − 𝜀 30 25 + 5𝜀 2 10 + 2𝜀 5− 5𝜀 2 10 − 2𝜀 10 − 2𝜀 62 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Con el paso del tiempo, las medidas se van haciendo cada vez más tarde, respecto al tiempo de envío, y tienen menos retraso de media en el siguiente tiempo de envío. Tras un número n de periodos de muestreo se llegara a la situación mostrada. Tiempo envío medidas Tiempo medida coordenada X 10(n-2) 10(𝑛 − 2) − 10(n-1) 10(𝑛 − 1) − 10n 10𝑛 − 𝜀 2 Tiempo medida coordenada Y Retraso medida X Retraso medida Y Retraso máximo medida 𝜀 2 10(𝑛 − 2) − (5 + 3𝜀) 5𝜀 2 5 + 3𝜀 5 + 3𝜀 3𝜀 2 10(𝑛 − 1) − (5 + 2𝜀) 3𝜀 2 5 + 3𝜀 5 + 3𝜀 10𝑛 − (5 + 𝜀) 𝜀 2 5+𝜀 5+𝜀 Al continuar se repetirá la situación pero con los tiempos para las coordenadas invertidas. El retraso entre la medida y el envío es como mínimo de 5ms y como máximo 10ms. Además, el protocolo I2C que se usa para transmitirlas tiene una velocidad de 100kbps. En cada envío manda 3 bytes que con los bits de dirección, start, stop y acknowledge se quedan en menos de 40 bits. Por tanto la comunicación añade otro retraso de 0,4ms. Con todo esto se sabe que el retraso desde que se mide dónde está la bola hasta que lo recibe el NXT, para poder usarlo en el control, está entre 1 y 2 periodos de muestreo, y va variando con el tiempo. En el ensayo en que se le da una trayectoria rectangular como referencia a seguir, en recorrer el lado pequeño del rectángulo (menos de media pantalla) tarda 4.4 segundos, o lo que es lo mismo, 440 periodos de muestreo, por tanto, el retraso de medida es tolerable. 6.2.3.3. Filtrado de medida en el NXT Tras estas modificaciones el número que se consigue en el NXT ya se corresponde con la posición de la bola en pantalla. Sin embargo, la medida no es perfecta. Hay ciertos puntos de la pantalla (como una matriz) en los que no hay medida, esto se debe a que entre las dos capas de la pantalla hay separadores para que solo 63 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA cuando se presione se toquen, y por tanto, si el punto de apoyo es justamente ese separador, no se tocan a pesar de que la bola este encima. Para eliminar el problema se han implementado un par de filtros lógicos, y un filtro Butterworth de tercer orden, como en la configuración mostrada en [31]. Figura 31 Diagrama de bloques de los filtros aplicados a la medida de la posición El primer filtro lógico compara la media con el valor que da cuando no hay punto de apoyo, y si detecta que no hay apoyo toma como valor el anterior valor bueno. El segundo filtro lógico compara la diferencia de la medida actual con la medida anterior, y si es excesivamente grande la descarta tomando el anterior valor bueno; estas medidas que no son verdad se producen por un fenómeno parecido al anterior, pero en el que la medida no llega al valor extremo y por tanto no se puede descartar por valor fijo, pero si por diferencia excesiva. El tercer filtro es para eliminar el posible ruido y los posibles picos de error, pero de tamaño inferior a cambios realmente posibles, que no se pueden eliminar con un filtro lógico. A continuación se muestra cómo evoluciona la señal desde la medida sin filtrar [32], su paso por el primer filtro lógico [33], su paso por el segundo filtro lógico [34], y su paso por el filtro de Butterworth [35]. 64 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 32 Medida de posición sin filtrar Figura 33 Medida de posición tras filtro lógico de valor máximo Figura 34 Medida de posición tras filtro lógico por diferencia de valores Figura 35 Medida de posición tras filtro Butterworth de 3º orden Es importante tener en cuenta que los filtros lógicos no retrasan la señal, pero el filtro de Butterworth si lo hace. En [36] se muestra dicho retraso con la superposición de la señal antes y después del filtro. Figura 36 Comparación retardo de medida tras filtro de Butterworth 65 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 66 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 7. Modelado En este capítulo se explicará el modelado del sistema, las simplificaciones adoptadas, y la obtención de los parámetros correspondientes a los modelos. 7.1. Modelado del sistema El modelado del sistema se ha hecho desacoplando los sistemas de cada uno de los ejes. El modelado de cada eje se compone de un modelo de un motor eléctrico, seguido de un modelo de un sistema mecánico genérico [37]. Y por último la relación entre el par del eje [38] y las aceleraciones de la bola [39]. Figura 37 Modelado del motor y del sistema mecánico 67 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 38 Modelado sistema de posición Figura 39 Proyecciones de la aceleración de la gravedad La primera parte del sistema, entre la tensión aplicada en el motor (u) y el ángulo (thr) de su eje, se modela con las siguientes ecuaciones. Cuando la corriente (i) circula en el rotor, se ejerce un par (Tm) que es directamente proporcional a la corriente. Kt es la constante de par que incluye el campo magnético (supuesto constante) del estator. Tm = Kt ∗ i El giro del rotor, induce un flujo magnético oscilante que induce una fuerza contraelectromotriz (e) proporcional a la velocidad de giro (wr). Ke es la constante electromotriz. e = Ke ∗ wr Despreciando las perdidas, al igualar potencia eléctrica y mecánica, se obtiene la relación entre las constantes de par y electromotriz. e ∗ i = Tm ∗ wr = Kt ∗ i e Ke Kt =1 Ke La ecuación eléctrica del motor, incluyendo su resistencia (R) e inductancia (L). u=R∗i+L 68 di +e dt UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA El sistema de rotación entre par y velocidad de giro es como sigue. Jm es la inercia del motor y Dm es su fricción viscosa. Tm = Jm dwr + Dm ∗ wr dt Por último, el ángulo de giro es la integral de la velocidad de giro. thr = dwr dt Las ecuaciones se muestran en forma de diagrama de bloques en [40]. Figura 40 Diagrama de bloques del motor La función de transferencia, entre tensión y el ángulo, obtenida es un sistema de segundo orden y una integración. th 180 = u pi Kt 1 Dm ∗ R + Kt ∗ Ke Jm ∗ L Jm ∗ R + Dm ∗ L s 2 Dm ∗ R + Kt ∗ Ke s + Dm ∗ R + Kt ∗ Ke s + 1 Tras obtener el valor de los parámetros ensayando el motor se comprueba que de las constantes de tiempo existentes, una es despreciable frente a la otra. Por tanto, se desprecia la autoinducción (L=0) y se modela el sistema como un primer orden y una integración. th K 1 = u Ts + 1 s Para la segunda parte del sistema, entre el eje del motor y el plano donde se apoya la bola, se ha modelado un sistema mecánico genérico, después de unos engranajes de 69 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA reducción 5:1. En dicho sistema se han incluido una inercia (Jb), una fricción viscosa (Db) y una constante elástica (Kb). −Tb = Jb dwb thr + Db ∗ wb + Kb (thb − ) dt 5 Tb es el par entre plano y bola, lo que nos lleva a la tercera parte del sistema, el plano sobre el que se apoya la bola a controlar. La ecuación de fuerzas y aceleraciones entre plano y bola. Tb = L2 dwb m + L ∗ cos(thb) ∗ g ∗ m dt Siendo m el peso de la bola, g aceleración de la gravedad y L la distancia de la bola al centro del plano. Ecuación de aceleración de la bola en el plano. a = −g ∗ sen(thb) + wb2 ∗ L En [41] expresado en forma de diagrama de bloques. Figura 41 Sistemas mecánico y de posición 70 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 7.2. Simplificaciones En el modelo resultante está justificado despreciar ciertas partes usando simplificaciones habituales y otras particularizadas para los valores de este sistema en concreto. Simplificaciones comunes para cuando se trabaja con ángulos pequeños (θ<10º): cos(θ) ≈ 1 sen(θ) ≈ θ El Angulo θ debe estar en radianes para poder aplicar la segunda simplificación. El punto de donde sale la aceleración de la bola es el resultado de una suma de dos términos. A continuación se comprueba si el termino no lineal ((velocidad angular)2 * posición) es despreciable frente al termino lineal (ángulo * gravedad, tras aplicarle la simplificación del seno). Los motores de 9V usados tienen una velocidad máxima de 164rpm. En este sistema los motores están alimentados con una batería NiHM de 7.2V de valor nominal, que llega a cargarse hasta 8.2V. El cargador ha permanecido conectado durante todos los ensayos por lo que se puede asumir que el voltaje era constante a 8.2V. Por tanto, la velocidad máxima de los motores seria de 148rpm. Pasando las rpm a rad/s y aplicando la reducción de 5:1 debida a los engranajes, la velocidad máxima sin carga es: vel max = 148rpm 1 1 min 2π = 3.07 rad/s 5 60s 1 rev Con el análisis de la velocidad máxima sin carga el resultado obtenido no es despreciable, por lo que tendremos que analizar el comportamiento del motor con la carga del sistema. Se ha ensayado la planta marcándole escalones de referencia al ángulo del plano. De los datos del ensayo se ha seleccionado un escalón, durante el tiempo en el que el mando saturaba al máximo, para analizar el comportamiento límite del sistema. En dicho escalón el plano cambiaba su posición angular de -15º a 5º en 0.055s 71 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Como la tensión del motor es máxima, la aceleración es constante y máxima, por tanto: accel max = 5º − (−15º) 1 π rad = 23 rad/s 2 (0.055s)2 5 180º vel max = 23 rad 0.055s = 1.26rad/s s2 Ahora repetiremos las cuentas anteriores, pero en vez de sacar los valores de un ensayo en el que se aplica la tensión máxima, los sacaremos de ensayos reales en los que se controla la posición de la bola sobre el plano. Pasa de 26º a 6º en 0.2s por tanto: accel max = 26º − 6º 1 π rad = 1.74 rad/s2 (0.2s)2 5 180º vel max = 1.74 rad 0.2s = 0.348rad/s s2 En el funcionamiento normal de la plataforma las variaciones de ángulo de la misma no exceden los 10º (0.175 rad), y las coordenadas de la posición en pantalla no superan los 15cm (0.15m). Valores máximos del motor sin carga: (vel max)2 ∗ Lmax = 3.072 ∗ 0.15 = 1.41 Valores máximos en el sistema: (vel max)2 ∗ Lmax = 1.262 ∗ 0.15 = 0.24 Valores máximos en funcionamiento normal del sistema: (vel max)2 ∗ Lmax = 0.3482 ∗ 0.15 = 0.018 El ángulo multiplicado por la gravedad oscila entre 0 y: 10º π rad ∗ 9.8 = 0.85 2 180º 72 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Las unidades de la formula anterior no son congruentes, pues se está usando la simplificación de que el seno del ángulo en ángulos pequeños es el propio ángulo. Simplemente se ponen las unidades para hacer ver que el ángulo debe estar expresado en radianes. Comparando los resultados se tiene que la velocidad máxima del motor en vacío no sería despreciable frente al otro término de la suma (siendo 1.41/0.85=1.66 veces mayor), por lo que en términos generales no sería despreciable. Sin embargo, al analizar el comportamiento del motor en el sistema, se tiene que la velocidad máxima que puede dar hace que el término tenga poca importancia (siendo 0.85/0.24=3.54 veces menor). Esta importancia se vuelve completamente despreciable cuando analizamos no solo el motor en el sistema, sino con valores de funcionamiento normal en vez de máximos (siendo 0.018/0.85=47 veces menor). En consecuencia está justificada la aplicación de la siguiente simplificación: dθ 2 ( ) L ≪ θ ∗ g → eliminar esa rama del diagrama dt El punto de donde sale el par aplicado al eje, viene de la multiplicación de la masa por una suma de dos términos. Igual que se ha hecho en el caso anterior, se comprobará si el termino no lineal (aceleración angular * (posición)2) es despreciable frente al termino lineal (posición * gravedad, tras aplicarle la simplificación del coseno). Partiendo de los valores de aceleración obtenido como parte del proceso para el cálculo de los valores de velocidades se tiene: Valores máximos en el sistema: accel ∗ (Lmax)2 = 23 ∗ 0.152 = 0.520 Valores máximos en funcionamiento normal del sistema: accel ∗ (Lmax)2 = 1.74 ∗ 0.152 = 0.039 La posición multiplicada por la gravedad oscila entre 0 y: 0.15 ∗ 9.8 = 1.47 Comparando los resultados se comprueba que el término que incluye a la aceleración angular es menor para el funcionamiento máximo del sistema (siendo 73 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 1.47/0.52=2.8 veces menor), y justificadamente despreciable en lo que respecta a los valores normales de funcionamiento (siendo 1.47/0.039=37.7 veces menor). Por tanto para este sistema es de aplicación la siguiente simplificación: dθ2 2 ( 2 ) L ≪ L ∗ g → eliminar esa rama del diagrama d t A continuación se reescriben las ecuaciones simplificadas. Tb = L ∗ g ∗ m a = −g ∗ thb Cuyo diagrama de bloques correspondiente es [42]. Figura 42 Diagrama de bloques de los sistemas mecánico y de posición simplificados Como se puede observar, el modelo de la segunda y tercera parte consta de un sistema de segundo orden seguido de un sistema con una doble integración y una perturbación lineal en el sistema de segundo orden. De las cuatro simplificaciones usadas, las dos primeras eran de justificada aplicación por ser un sistema con variaciones de ángulo pequeñas. Sin embargo las dos últimas, no son simplificaciones comunes aplicables en general, se hicieron a priori, pero siempre estando condicionadas a su comprobación con los resultados reales obtenidos. Con los resultados obtenidos del funcionamiento normal, se comprobó que efectivamente eran simplificaciones aplicables al sistema, como se ha demostrado. 74 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 7.3. Obtención de parámetros Una vez modelado el sistema, sabiendo lo que se busca, es el momento de obtener los valores numéricos de los parámetros. Como ya se comentó en la sección 1 de este capítulo, el motor se ensayó y se obtuvieron sus parámetros, con ello se justificaba su simplificación. Sin embargo, se volverá a ensayar con el resto del conjunto, para que así, las posibles perturbaciones de un sistema sobre otro queden ya incluidas en el modelado, y las plantas obtenidas representen la realidad de la manera más fiel posible. Una señal PRBS (PseudoRandom Binary Sequence) es un tipo de señal aparentemente aleatoria que barre el espectro de frecuencia, con lo que al aplicarla como señal de entrada a un sistema, registrando la salida, se puede obtener de manera empírica la respuesta en frecuencia del mismo. Se ha ensayado la planta, sin bola, aplicando una señal PRBS a la tensión de los motores. Al no haber bola la variable m se hace 0, el modelado de la perturbación desaparece del sistema, y por tanto queda solo la parte correspondiente al motor y al sistema mecánico de transmisión de giro. Para la identificación de los sistemas se han registrado las medidas de tensión de motor, encoder del motor, acelerómetro y giroscopios. Con estos datos y usando la toolbox de matlab “System Identification”, se han estimado los parámetros de los sistemas de primer orden más integrador y de segundo orden [43]. Figura 43 Sistemas genéricos: primer orden + integrador + segundo orden 75 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA En el sistema del motor no es interesante la correspondencia entre los parámetros obtenidos y sus magnitudes físicas homólogas usados en el modelado, pues solo interesa la salida para una respuesta dada. Por el contrario, en el sistema mecánico si interesa la correspondencia entre los valores de los parámetros obtenidos y los de modelado. De esa forma, se conocerá con mayor exactitud la posición de las ganancias. Por tanto, cuando el sistema esté funcionando con la bola encima, en caso de querer tener en cuenta la perturbación ocasionada por el peso de la misma, se podrá modelar adecuadamente teniendo en cuenta las unidades. Por tanto, los diagramas mostrados en [44] son equivalentes: Figura 44 Equivalencia entre sistema genérico y sistema modelado En forma de ecuaciones 1 K2 K2 5 = = (T1s + 1) ∗ (T2s + 1) T1T2s2 + (T1 + T2)s + 1 Jb 2 Db s + s+1 kb Kb Dividiendo la ecuación anterior en 3. K2 = 1/5 T1T2 = Jb Kb T1 + T2 = 76 Db Kb UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA En las anteriores tres ecuaciones hay 2 valores extraídos del ensayo, y 3 incógnitas, con lo que el sistema no se puede resolver a menos que se haga algún otro ensayo. Para resolver ese exceso de incógnitas, se eligió hacer un ensayo en estático poniendo un peso en la plataforma y usando la diferencia de ángulos medidos en el eje de la plataforma con y sin el peso: Kb (∆thb π )=m∗g∗L 180 Los valores obtenidos tras los ensayos son los siguientes: Ensayo PRBS Eje X K1 = 5.524 T = K2 = 0.01858 0.1632 T1 = T2 = 0.07043 0.07039 Eje Y K = 1 T = K = 2 T1 = T2 = 7.527 0.02977 0.1677 0.03353 0.03353 Ensayo estático Eje X thb =1 thb =2 L= 5.4 0.5 0.120 Eje Y thb1 = 3.8 thb2 = 0.75 L = 0.085 La masa m de la bola es 0.11kg y se toma como aceleración de la gravedad 9.8m/s2 K2 debería valer 1/5=0.2 y sin embargo, según el ensayo su valor es 0.16. Un 20% de error debido a que el sistema real no responde de manera ideal. El juego de los engranajes, las dinámicas y al resolución de los sensores, son la causa principal de dicha discrepancia. Los valores de los parámetros de modelado del sistema mecánico son, por tanto: Eje X Kb = 1.513 Db = 0.2130 Jb = 0.007499 Eje Y Kb = 1.721 Db = 0.1154 Jb = 0.001935 77 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Todos los parámetros están expresados en unidades del sistema internacional Ecuación del motor: thrx (grados) 5.5239 = Ux (v) 0.018583s + 1 thry (grados) 7.5270 = Uy (v) 0.029769s + 1 Ecuación del sistema mecánico: thbx (grados) 0.16317 = thrx (grados) 0.0049577s 2 + 0.14082s + 1 thby (grados) 0.16317 = thry (grados) 0.0011241s2 + 0.067055s + 1 Ecuación de posición de la bola: Ly (m) Lx (m) π g = =− thbx (grados) thby (grados) 180 s2 78 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 8. Funcionamiento En este capítulo se explicará el funcionamiento del sistema desde el encendido hasta la estabilización de la bola. Hay una primera parte de puesta en marcha en la que se calibran sensores, y una segunda parte donde actúa el propio control. 8.1. Puesta en marcha La tarea fundamental durante la puesta en marcha es situar el plano en posición completamente horizontal y hacer que las medidas angulares tomen esa posición como referencia 0. Una de las partes más importantes del funcionamiento es la máquina de estados, aunque es muy simple, es la que permite un correcto control de los pasos de inicialización y entrada en funcionamiento del control. La máquina de estados [45] consta de 6 estados. Sin embargo, en la figura se puede apreciar que la variable “Estado” va avanzando de 1 a 5, y en el estado 5 de la máquina de estados, la variable estado no se ve alterada. La razón de esto es que el sistema solo necesita 5 estados para funcionar. El resto del programa no lee en qué estado está la máquina de estados propiamente dicha, sino que solo recibe las variables de salida de la misma, por tanto como solo necesita 5 estados para funcionar, la variable estado solo llega hasta el 5 y no hasta el 6 como cabría esperar. En lo que sigue y para evitar confusiones, se numerara cada estado por el valor que le asigna a la variable de mismo nombre, y al restante se le citara como “estado auxiliar”. 79 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 45 Máquina de estados Los estados 1 y 2 tienen como función poner la plataforma en horizontal. Arranca en el estado 1, y avanza al estado 2 cuando error es menor que 3, en caso de que el error sea mayor que 3 vuelve al estado 1. Si permanece en 2 (con un error inferior a 3) durante cinco segundos, avanza al estado 3. La variable error es el valor absoluto del mando de tensión enviado a los motores. Dicho valor de mando puede tomar valores entre 0 y 100, por esto, se ha elegido poner como valor aceptable un mando menor que 3, pues es prácticamente 0, pero sin necesidad de esperar por un mando 0 ideal, que sería prácticamente imposible de alcanzar. El mando enviado a los motores es el resultado de aplicar un control integral muy lento, que usa exclusivamente el acelerómetro para medir el ángulo del plano. La razón de usar solo el acelerómetro es el hecho de que proporciona medidas angulares absolutas. La necesidad de que el control sea muy lento es también el hecho de que se esté usando solo el acelerómetro, pues este sensor funciona bien a bajas frecuencias y a altas necesita ser complementado por otros sensores como pueden ser los giroscopios. La obtención de medidas angulares a partir de los datos proporcionados por el acelerómetro está debidamente explicada en la sección 6.2.2 (Capítulo de 80 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Construcción). Para quitarle el offset al acelerómetro se ha colocado la plataforma en horizontal valiéndose de un nivel de burbuja y se ha medido el valor que proporcionaba el sensor, para así, durante el funcionamiento normal, restarle ese valor a la medida. Los giroscopios son sensores muy dependientes de la temperatura, por ello no es posible quitarle el offset a su medida de una forma tan cómoda como al acelerómetro, pues entre un ensayo y otro variaría. Lo que hay que hacer es calcular el offset al principio de cada prueba, y eso es justo lo que se hace en el transcurso del segundo que dura el estado 3. En el diagrama [46] se muestra cómo se puede hacer esto. Figura 46 Offset giroscopio Hasta el estado 3, el cálculo delo offset está recibiendo un 0 como entrada y es durante el estado 3 cuando recibe la medida real. Durante este estado, se calcula la media multiplicando la medida por una constante, y sumándoselo a la medida acumulada multiplicada por otra constante. Ambos constantes deben sumar 1 para que la ganancia sea unitaria, y el valor obtenido sea el valor medio de las medidas durante ese tiempo. Una vez terminado el tiempo de ese estado, la salida del bloque de cálculo del offset será siempre el último valor que tuvo la media durante ese tiempo. La determinación de la constante fog se hace de tal forma que situé el polo en discreto en 8 periodos de muestreo. Ya se ha comentado como poner a 0 el acelerómetro y el giroscopio, el único sensor angular restante es el encoder del motor. Para ello, hasta el estado 3, mientras la plataforma se movía, su señal de reseteo estaba activada, y es a partir del estado 3, estando en horizontal, cuando deja de resetearse y queda establecido el 0. Durante el estado 4 se espera a la detección de la bola sobre la plataforma. La condición de posición menor que 480, es porque a la máquina de estados se le pasa la medida de posición tal cual, sin ganancia ni filtrado, y mientras la bola no está en contacto, el Arduino envía un valor cercano a 500. 81 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Una vez detectada la bola, se pasa al estado auxiliar, y se espera en él 100 milisegundos antes de pasar al estado 5, en el que se activa el control de la bola. Esa pequeña espera es para evitar que el control entre en funcionamiento inmediatamente cuando aún no se ha soltado la bola. 8.2. Generación de la referencia Durante el funcionamiento del control se le manda una referencia de posición, dicha referencia puede ser un punto o una trayectoria. El cambio de referencia se hace de manera manual, con el programa en curso, según los bloques mostrados en [47]. Figura 47 Generación de referencia Como se puede ver en [47], inicialmente se manda una referencia puntual (-0.068, 0.048) y valiéndose del switch manual al que le llegan las constantes 0 y 1, se activa el bloque de generación de referencia para la trayectoria del rectángulo, y se da la condición de cambio de los switch para que pasen de enviar como referencia el valor puntual y envíen la referencia del rectángulo. En el bloque de generación de referencia del rectángulo simplemente hay dos bloques –uno por coordenada– a los que se le suministra un vector de posiciones y un vector de tiempo para esas posiciones. 82 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Para la generación de esos vectores se usa el siguiente código %generacion de referencia temporal v=0:57; vectortiempo=v*ts*40; %generacion de referencia para X v=[-6:6,(0:15)*0+6,(-6:6)*-1,(0:15)*0-6]; vecorposicionX=(v*0.06+0.08)/6; %generacion de referencia para Y v=[(0:17)*0+5,(-5:5)*-1,(0:17)*0-5,-5:5]; vecorposicionY=(v*0.048-0.0015)/5; Se generan vectores de 58 posiciones. La duración de cada punto de referencia es 0.4 segundos. Se invierte 6.4 segundos en la referencia del lado mayor y 4.4 en el lado menor; además entre lado y lado se dejan 0.8 segundos para asegurarse de que llega a la esquina y evitar hacer cuadriláteros con vértices redondeados. En [48] se muestran las referencias para X e Y frente al tiempo y en [49] se muestra una coordenada respecto a la otra. Figura 48 Referencias X e Y respecto al tiempo Figura 49 Referencia X respecto a Y 8.3. Control Esta parte del capítulo de funcionamiento es el núcleo del capítulo, el sistema de control para la estabilización de la bola en la plataforma. En primer lugar se explicará el porqué del sistema de control elegido y después se pasará a explicar el funcionamiento del mismo. 83 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 8.3.1. Elección del sistema de control Los sistemas de control valorados para su implementación han sido el control por realimentación de estado y el control PID en cascada. El control de lógica difusa se ha descartado por su complejidad de diseño. El control por realimentación de estado es, en líneas generales, mejor que el control PID. El problema del control por realimentación de estado, es que es menos robusto, depende mucho más del correcto modelado de la planta, y de la buena estimación y/o medida de las variables de estado. El control PID por su parte es más simple y robusto, razón por la cual está muy extendido en la industria. Ante pequeñas variaciones en la planta o medidas no tan buenas de las variables, su respuesta se ve empeorada sustancialmente menos que en un control por realimentación de estado. Además, supuesto el caso de que se detecte por medio de ensayos que la respuesta no se corresponde con la simulación como debería, y que por tanto la planta no se corresponde con el modelo ideal, los parámetros del control PID son mucho más intuitivos de corregir y adaptar que las ganancias del control por realimentación de estado. En el PID se modifican parámetros de las acciones proporcional, integral y derivativa, por tanto, después de un primer modelado, se puede adaptar el control, justificando en base a la teoría, que acción debe potenciarse frente a las otras para mejorar la respuesta. Al contrario, con realimentación de estado lo que se fijan son unas serie de ganancias con las que se sitúan los polos, de manera que en caso de un modelo matemático que se aleje de la realidad, cambiar las ganancias en base a ensayos se parecerá más a jugar a la lotería que a teoría de control. Como se ha visto en la sección 7.3 (Capítulo de modelado), la planta de la estructura mecánica se ha obtenido a partir de ensayos. En los resultados se apreciaba que había ciertas discrepancias entre modelado y realidad, por tanto se ha decidido que el modelado de la planta no es tan perfecto como requiere un control por realimentación de estado, así que es más adecuado usar un control PID. Analizando la configuración de la planta modelada, ésta es la concatenación de un sistema de primer orden con un integrador seguido de un sistema de segundo orden y 84 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA una doble integración al final. Las medidas disponibles están después de la primera integración, del sistema de segundo orden y de la doble integración. En base a ello, la configuración de control PID más adecuada es un control cascada en tres pasos como el mostrado en [50]. Cada uno de los sistemas a controlar se toma entre los puntos de medias disponibles. El sistema más típico a controlar con un PID es un sistema de segundo orden, en este caso, una de las partes del sistema lo es, y las otras dos, aunque teniendo integradores en vez de polos, también son de segundo orden, por tanto la configuración elegida es la correcta. Figura 50 Control en cascada 8.3.2. Control PID en cascada Para el diseño de los controles PID se ha usado el modelo analógico modificado, que consiste en añadirle a la planta un retardo de medio periodo de muestreo (e-0.5ts). Este retardo viene motivado porque el control se va a ejecutar no en continuo sino en discreto, y con él la respuesta se aproxima más a la realidad. Además, los controles se han diseñado por su respuesta en frecuencia, debe tenerse en cuenta que para controlar una planta que es una doble integración solo se puede diseñar el control por respuesta en frecuencia y no por respuesta temporal. 85 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA El periodo de muestreo usado en el control es ts=0.01s. Inicialmente no se fijó un periodo de muestreo menor, para que coincidiera con la velocidad a la que se leen las coordenadas de posición de la bola en la pantalla. Posteriormente, según se fue implementando la puesta en marcha, los filtros, y los controles se comprobó que ese tiempo de muestreo, aun independientemente de la velocidad de lectura de coordenadas, no podría ser mucho menor debido a la carga de cálculo que le supone al micro. Cuando hay filtros de medida, como en este caso, estos se incluyen en la realimentación de la sálica al control. Es una estrategia típica en el diseño de controles no tener en cuenta los filtros inicialmente, y si no se es capaz de conseguir una buena respuesta, incluirlos en el sistema. Con esto se consigue mantener un modelo más simple y por tanto un control más sencillo que supone menos procesado para el micro. En el caso de estudio, los controles se han diseñado para las plantas realimentadas sin tener en cuenta los filtros. Analizando la respuesta de los mismos, los retrasos eran muy pequeños, así que las simplificaciones están justificadas, y además, esto se corrobora cuando el sistema es controlado de manera satisfactoria. 8.3.2.1. Lazo 1: PD Motor El motor es un sistema de primer orden más una integración. Con un Control P sería suficiente para controlarlo, sin embargo se ha elegido un control PD para que sea lo más rápido posible. Cada uno de los sistemas de la planta tiene que ser más lento que el anterior. Como el motor es el primer sistema tiene que ser el más rápido de todos, de ahí deriva la preferencia del control PD frente al P. El poner un control P en vez de un PD no supondría problemas al controlar el ángulo del eje ni el ángulo de la plataforma, simplemente se vería que la respuesta es más lenta; sin embargo, a la hora de controlar la posición de la bola sobre el plano, la velocidad de respuesta es más crítica para posibilitar la estabilización del sistema, y podría no ser suficiente. El control se diseñó para un margen de fase de 65º, una omega de 1,6 veces las omega que tendría un control P y un filtrado en la acción diferencial de 0.1 86 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Se ensayó la planta poniendo escalones de 30º (-15º a +15º) como referencia para el ángulo del eje del motor. En función de los resultados obtenidos al ensayar se decidió aumentar la acción diferencial. Tras varios ensayos probando diferentes controles, aumentando la acción diferencial, se llegó a la conclusión de que los parámetros óptimos (configuración en paralelo) son los que siguen: K Td N Eje X = 11.2 = 0.0250 = 8.99 K Td N Eje Y = 10.9 = 0.0253 = 8.99 𝐶 = 𝐾 (1 + 𝑇𝑑 ∗ 𝑠 ) 𝑇𝑑 ∗ 𝑠 1+ 𝑁 Usando los parámetros anteriores se puede observar en los diagramas de Black de [51] que el control ha hecho la planta mucho más rápida y con gran estabilidad. Figura 51 Sistema motor: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) 87 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA En [52] se muestran los resultados de dicho control, ante el mismo ensayo de escalones de referencia y en funcionamiento real (con todos los sistemas funcionando) haciendo que la bola describiera una trayectoria rectangular. Figura 52 Sistema motor: Respuesta a escalón (arriba) y respuesta en funcionamiento en conjunto con seguimiento a referencia rectangular (abajo) para ejes X (izq) e Y (der) Es importante ver que en la respuesta al escalón de [52] está muy ampliada en escala temporal. En un principio parece que hay mucho tiempo entre el cambio en la referencia y la respuesta. Analizándolo detalladamente, sabiendo que el periodo de muestreo es 10ms, se comprueba que desde que la referencia cambia de valor hasta que la medida angular le sigue solo hay dos periodos de muestreo, el primero es el que tarda en actualizarse la referencia y el segundo el que tarda el control en usar la nueva referencia. Al analizar la respuesta a escalón en el funcionamiento real y en la simulación puede distinguir un pequeño error de modelado, el sistema real tiene algo de sobrepaso mientras que según simulación no hay sobrepaso. 88 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 8.3.2.2. Lazo 2: PI Sistema mecánico Una estrategia típica en un control en cascada es suponer, para la primera aproximación, que el control aplicado y la planta son ideales, de tal forma que la referencia aplicada y la respuesta obtenida son iguales. Con este método se simplifica el diseño del siguiente control a la vez que se usa una planta menos cercana a la realidad. En caso de que el sistema no funcione bien usando la simplificación se pasa a diseñar usando la planta real, multiplicando la planta del sistema del lazo anterior, con su control realimentado, por la planta del sistema del lazo actual. 𝑃𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑖𝑐𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑑𝑖𝑠𝑒ñ𝑜 𝑐𝑜𝑛𝑡𝑟𝑜𝑙 𝑛 = 𝑃𝑛 𝑃𝑟𝑒𝑎𝑙 𝑝𝑎𝑟𝑎 𝑑𝑖𝑠𝑒ñ𝑜 𝑐𝑜𝑛𝑡𝑟𝑜𝑙 𝑛 = 𝐶𝑛−1 ∗ 𝑃𝑛−1 ∗𝑃 1 + 𝐶𝑛−1 ∗ 𝑃𝑛−1 𝑛 El control para el sistema mecánico ha sido el más conflictivo. Inicialmente se probó a diseñar sobre la planta simplificada, y se comparó con el diseño sobre la planta real. En la fase de simulación se comprobó que entre usar la planta simplificada y la real, había poca diferencia, pues la planta del lazo anterior era buena y el control rápido. Sin embargo, al pasar a la fase de ensayo real, se vio que el modelado de este sistema tenía errores de cierto calibre, por ello se decidió, para minimizar el error de modelado, no usar la planta simplificada. De esta forma toda discrepancia entre modelo y realidad se limitaría a los errores provenientes del modelo del sistema mecánico y no a simplificaciones realizadas sobre el modelo anterior. Para el tipo de control a usar se propusieron un control P o un PD, pero el error en régimen permanente de ambos controles era intolerablemente alto. No solo había error en régimen permanente sino que dicho error era asimétrico, no comportándose de la misma manera ante escalones positivos y negativos. Para solucionarlo se optó por cambiar a un control integral. La integración del control, a pesar de que no era muy rápida, y en funcionamiento real presumiblemente se cambiaría la referencia antes de alcanzarla, sí que es cierto que tenía una respuesta mucho mejor. Con el cambio al integral se consiguió que en un tiempo parecido al de los otros controles la respuesta se 89 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA acercara sustancialmente más a la referencia, y salvando pequeñas diferencias, la respuesta en ambos sentidos era similar, ya no existía una asimetría tan marcada. Con el mismo proceso de ajuste por ensayo usado en el lazo anterior (escalones de referencia al ángulo de la plataforma y sin incluir la bola), se optimizó el control para máxima velocidad, llevando el sistema al límite de la oscilación. Tras ese diseño se pasó al lazo siguiente y se vio que era demasiado lento para alcanzar la estabilidad. Lo que estaba pasando es lo que ya se explicó en la justificación de la elección del PD frente al P para el primar lazo, el ultimo lazo dependía de este, y por tanto, el problema de velocidad era irresoluble en el paso final. Para poder estabilizar el sistema era necesario aumentar la velocidad de este lazo, y eso era un problema porque el control ya se había optimizado al límite de la estabilidad. Que el control estaba ajustado al límite no es del todo cierto, y es gracias a ello que el sistema resultó ser estabilizable. El control se ajustó al límite de la oscilación para el funcionamiento sin la bola, al ponérsela encima afecta como una perturbación, y por tanto cambia su funcionamiento. Al introducir la bola en el sistema aumenta su peso, con ello su inercia, y en consecuencia se amortiguan las oscilaciones. Por tanto, se pudo aumentar la velocidad del control del lazo por encima del límite que se había alcanzado antes, de manera que se obtuvo un control que resultaba estable en el funcionamiento con la bola, pero que en los ensayos realizados de manera independiente era oscilante. La configuración del control y el valor de los parámetros del control funcional son los siguientes. Eje X K = 2.30 Ti = 0.06 K Ti Eje Y = 2.35 = 0.06 𝐶 = 𝐾 (1 + 1 ) 𝑇𝑖 ∗ 𝑠 El parámetro Ti correspondiente a la acción integral tiene un valor relativamente bajo, de esa forma que tiene gran influencia en el control, aportándole velocidad de respuesta. Hablar de parámetros de diseño en base a márgenes de estabilidad no tiene sentido porque justamente se ha desestabilizado el sistema y se ha diseñado en base a su respuesta real en ensayos. 90 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Igual que en el lazo anterior, en [53] se muestran los diagramas de Black de las plantas y las funciones de lazo abierto, así como su respuesta ante un escalón unitario en al referencia. Figura 53 Sistema mecánico: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) Los errores de modelado de este sistema resultaron notables. Diseñar el control para la planta obtenida a partir del ensayo PRBS y el ensayo estático proporcionó un buen control de partida, pero alcanzar un control funcional requirió una labor de ensayo y análisis de respuesta bastante importante. Por ello los resultados mostrados en las gráficas de [53] no aportan nada más que una verificación de los evidentes problemas de modelado. En ellas se puede ver como el sistema es estable, sin embargo, se comprobó que no lo es a menos que se introduzca la bola en el sistema. Las gráficas mostradas en [54] corresponden a un funcionamiento en seguimiento a referencia donde la bola describía rectángulos. La inestabilidad del sistema sin la bola es la razón de que no se muestren graficas de ensayos de respuesta a escalón de referencia. 91 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 54 Sistema mecánico: Respuesta en funcionamiento en conjunto con seguimiento a referencia rectangular para ejes X (izq) e Y (der) En la ilustración se observa que el control es capaz de seguir la referencia pero no con mucha rapidez. Es importante que la respuesta sea veloz, y se consiguió que lo fuera suficientemente, pero el tiempo de establecimiento en sí, como ya se anticipó, no es crucial, pues la referencia cambia antes de ser alcanzada. El ajuste final es realizado por el ultimo lazo de control, que es el que le manda la referencia a este, por tanto para este sistema es más importante aproximarse rápido a la referencia que establecerse en ella. 8.3.2.3. Lazo 3: PID Posición A raíz de lo comprobado en el diseño anterior, también para este se ha descartado la opción de diseñar el control partiendo de la simplificación de que los lazos anteriores son ideales. Se ha tenido en cuenta que la planta a diseñar es la combinación de la planta de este sistema multiplicada por la planta del lazo anterior con su respectivo control. Respecto al tipo de control escogido, se eligió que tuviera acción diferencial con el fin de aumentar la velocidad lo máximo posible, siguiendo en la línea de lo que se ha tratado de hacer con los otros dos. Dado que la planta tiene acción integral propia, en principio se planteó que con ella se alcanzaría la referencia en régimen permanente sin necesidad de incluir integración en el control. Sin embargo, dicha integración no lograba alcanzar el régimen permanente, esto podría deberse por ejemplo, a que en la planta, antes de la integración, hubiera alguna perturbación no tenida en cuenta, que 92 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA impedía que funcionara. Para solucionarlo se decidió añadir acción integral al control, por tanto, el control aplicado al último lazo fue un PID. El control se ha diseñado para un margen de fase de 34º, una frecuencia del doble de la que tendría con un control proporcional, un retraso de fase para la parte integral de dos grados, y un filtrado a la derivada de 0.1. Los valores de los parámetros y la configuración del control es la que sigue. K Ti Td N Eje X = 9.9 = 15.2 = 1.30 = 8.99 Eje Y K = 10.3 Ti = 14.5 Td = 1.33 N = 8.99 𝐶 = 𝐾 (1 + 1 𝑇𝑑 ∗ 𝑠 + ) 𝑇𝑖 ∗ 𝑠 1 + 𝑇𝑑 ∗ 𝑠 𝑁 La integración incluida en el control es lenta ya que el retraso de fase es pequeño, tan solo 2º, en comparación con valores típicos de 5º o 10º. Dicha lentitud de la integración se puede ver en [55] con las gráficas de respuesta a escalón en referencia. La frecuencia y el margen de fase son alto y bajo respectivamente, lo que le da velocidad al control a costa de excesiva sensibilidad. Con ello el control tiene velocidad suficiente para alcanzar la estabilidad, pero se vuelve susceptible a las perturbaciones y si estas no son pequeñas se desestabilizará con facilidad. En las gráficas de Black de [55] se aprecia que con los parámetros ajustados en ensayo, el margen de fase es todavía menor, aunque no por mucho, que el margen de fase del diseño inicial. Por ello, el sistema es funcional, pero tienen riesgo de volverse inestable ante fuertes perturbaciones. 93 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Figura 55 Sistema de posición: Diagramas de Black de planta y lazo abierto (arriba) y respuestas a escalón en referencia (abajo) de los ejes X (izq) e Y (der) Estudiando los resultados obtenidos durante el funcionamiento del sistema completo, se comprobó que éste responde sin problemas ante perturbaciones sobre la bola, sin embargo, donde se vuelve inestable con más facilidad es ante las perturbaciones sobre la propia plataforma. Se ajustó el control para que pudiera manejar la bola a lo largo de la plataforma, de tal forma que si se le da un punto de referencia y una vez situada en él, se perturba la bola lanzándola al otro extremo, es capaz de devolverla a su sitio sin desestabilizarse ante dicha perturbación. Sin embargo, precisamente porque se optimizó para el manejo de la bola, y para ello se requieren ángulos muy pequeños, si se golpea verticalmente el plano, una perturbación que visualmente puede parecer pequeña, resultará ser un valor angular de magnitud varias veces el máximo usado durante el funcionamiento normal, e inevitablemente el sistema se volverá inestable. En [56] se muestran las respuestas de los ejes X e Y. El sistema de posición X es el sistema cuyo motor gira el eje X, por tanto la coordenada que se está representando 94 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA en ese sistema es la coordenada Y. En las imágenes que representan posición frente a tiempo, en sistema X se representa la posición Y y el sistema Y representa la posición X. En la representación en ejes X e Y de [57] si se corresponden ejes con coordenadas. Figura 56 Sistema posición: Respuesta en funcionamiento con seguimiento a referencia rectangular para ejes X (izq) e Y (der) Figura 57 Respuesta del sistema al describir un rectángulo Uno de los mayores problemas es, como ya se ha explicado en la sección 6.2.3 (Capítulo de construcción), el hecho de que la pantalla no es completamente plana sino que entre las dos capas del panel resistivo hay unos separadores, y en la superficie se aprecia una matriz de puntos. Dicha matriz de puntos sobresalientes hace físicamente imposible el describir una línea recta al cruzarse con ellos, la apariencia algo errática del control es resultado de intentar corregir esas perturbaciones que van sucediéndose, por lo que el funcionamiento es el correcto. 95 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 96 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 9. Conclusiones y futuros desarrollos Lo primero y más importante a resaltar es que los objetivos propuestos se han cumplido de manera satisfactoria. La plataforma construida con LEGO es mecánicamente funcional y se ha demostrado consiguiendo estabilizar la bola mediante el control propuesto. Respecto al montaje de la estructura, se han experimentado numerosos problemas derivados de la flexibilidad de las piezas de LEGO. El principal problema ha surgido por la necesidad de usar ejes largos, las piezas no tenían tal tamaño, así que a su propia torsión se añadía la holgura de las uniones. En este proyecto se ha puesto gran esfuerzo en paliar estos problemas con refuerzos en la estructura. A pesar de que si se ha conseguido una rigidez suficiente para el correcto funcionamiento, sería muy positivo fabricar unas piezas similares a los ejes de LEGO pero de un material más rígido, por ejemplo de acero. Las piezas de metal fabricadas en taller no tendrían las mismas tolerancias que las piezas de LEGO, sin embargo, a menos que esas desviaciones fueran muy acusadas, seguirían aportando más beneficios que desventajas. Otro de los problemas que se ha tenido que afrontar está relacionado con el panel táctil resistivo. Por una parte es muy cómodo de manejar, con el circuito usado y el código de Arduino, que hacen de interfaz para el controlador central. Por otra parte, el hecho de que no sea completamente plana hace que las perturbaciones a la bola sean constantes y aumenta la dificultad de diseño del control, que debe reducir su impacto al mínimo posible. Como alternativa para futuras versiones se propone, o cambiar el panel actual por otro de mejor calidad, o cambiar el sistema de posicionamiento a un sistema de reconocimiento de imagen. La primera de las opciones, cambiarlo por otro panel 97 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA mejor, simplemente mejoraría la estructura en general, mientras que con las segunda opción, se abriría una nueva línea de desarrollo en cuanto a los sistemas usados. Uno de los temas más importantes a la hora de hacer un control es el modelado de la planta que se desea controlar. La planta de este sistema consta de 3 partes, una de ellas se ha modelado de manera teórica y para las otras dos se han sacado los parámetros correspondientes a la parte teórica a través de ensayos. El modelo del motor extraído de los ensayos tiene una gran correspondencia con su respuesta real, sin embargo, en el modelado de sistema mecánico se aprecian diferencias más notables. En conclusión, se tiene que controlar una planta formada por tres subsistemas de los que dos de ellos se conocen bien, y un tercero del que se sabe que el modelo no es bueno. Esto aporta un sistema muy realista a ser controlado por el alumno, por una parte tendrá la oportunidad de aplicar control a dos sistemas y experimentar con ellos de manera parecida a la ideal, y por otra tendrá que enfrentarse a la realidad, en la que muchas veces se tiene que controlar sistemas de los que no se conocen todos los detalles. La elección de un control PID es justamente por eso, porque es un tipo de control válido para plantas que se conocen perfectamente pero también da muy buenos resultados con plantas que no se conocen tan bien. Otro tipo de control más sofisticado, como puede ser el control por realimentación de estados, hubiera fallado o hubiera resultado extremadamente difícil conseguir que funcionase, pues son controles que solo funcionan si el modelo es muy cercano a la realidad. Para desarrollo futuro se podría aprovechar el potencial de la plataforma para el estudio de estrategias de control distintas a la usada. Tanto el uso de controles de lógica borrosa como controles repetitivos o predictivo-adaptativos podrían arrojar resultados muy positivos. Estos controles son los más orientados a plantas de las que no se sabe mucho, por lo tanto darían buenas respuestas en el subsistema conflictivo, y en los otros dos, funcionarían también sin problemas. La sugerencia de estos tres controles, es debida a que los controles de lógica borrosa son adecuados para el control de plantas no lineales; los controles repetitivos funcionan muy bien para señales periódicas, como podría ser el trazado de trayectorias en la pantalla; y los controles predictivo-adaptativos dan muy buenos resultados al ajustarse a cambios en la planta derivados de la diferencia entre modelado y realidad. 98 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 10. Bibliografía [KNUP00] Modeling and Control design for the ball and plate system. Andrej Knuplei, Amor Chowdhury, Rajko SveEko. University of Maribor, Faculty of Electrical Engineering and Computer Science. Smetanova 17, SI-2000 Maribor, Slovenia [AWTA02] Mechatronic design of a ball on plate balancing system. Shorya Awtar, C. Bernard, N. Boklund, A. Master, D. Ueda, Kevin Craig. Department of Mechanical Engineering, Aeronautical Engineering and Mechanics, Rensselaer Polytechnic Institute, Troy, NY 12180, USA. [WANG07] Tracking Control of Ball and Plate System with a Double Feedback Loop Structure. Hongrui Wang, Yantao Tian#, Zhen Sui, Xuefei Zhang and Ce Ding. Institute of Automation, College of Communication Engineering, Jilin University. Changchun, 130025, JiLin Province, China. [MOAR08] Mechatronic Design and Position Control of a Novel Ball and Plate System. Miad Moarref, Mohsen Saadat, and Gholamreza Vossoughi, Member, IEEE [NOKH11] Modelling and Control of Ball-Plate System. Mohammad Nokhbeh and Daniel Khashabi, under the supervision of Dr.H.A.Talebi. Amirkabir University of Technology, 2011. [GALV13] Control Dual PD con compensador no-lineal para el sistema mesa esfera. 99 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Tesis de M. en C. Sergio Galván Colmenares. Dr. Marco Antonio Moreno Armendáriz y Dr. Floriberto Ortiz Rodríguez como directores de tesis. Instituto Politécnico Nacional, Centro de Investigación en Computación, México D.F. [ELIN14] Image Fuzzy Control on Magnetic Suspension Ball and Plate System. Chin E. Lin, Meng-Che Liou, Chun-Mo Lee. Department of Aeronautics and Astronautics, National Cheng Kung University. No.1, University Road, Tainan 701, Taiwan. 100 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA II.Anexo A: Diagramas Simulink 101 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 102 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA General Referencia 103 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Rectángulo 104 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Sensores 105 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Calculo offset X Filtro complementario Resetear encoders 106 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Pantalla Puesta en marcha Integral discreta con regla trapezoidal retrasada 107 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Máquina de estados 108 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Control “PID gp”, “PI eg” y “PD me” tienen la misma mascara. “PI eg” y “PD me” son iguales. PID gp 109 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA PI egx y PD mex s=tfs=tf('s'); z=tf('z',ts); % Metodo de discretizacion switch(tipo_disc) case 1 % Derivada en retraso a=(1-z^-1)/ts; case 2 % Derivada en adelanto a=(1-z^-1)/z^-1/ts; case 3 % Regla trapezoidal a=(1-z^-1)/(1+z^-1)*2/ts; end % Accion diferencial en tiempo discreto AD=Td*a/(Td/N*a+1); % Accion integral en tiempo discreto AI=1/a; 110 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Mando Motores 111 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 112 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA III. Anexo B: Código fuente Matlab 113 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 114 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA clc; clear; %% tiempo de muestreo ts=0.01; s=tf('s'); %% PUESTA EN MARCHA %ganancia eje X kx_pm=2; %ganancia eje Y ky_pm=2; %ganancia integral eje X kix_pm=0.5; %ganancia integral eje Y kiy_pm=0.5; %% CALIBRADO DE SENSORES %offset del acelerometro en eje X refx_pm=4.3; %offset del acelerometro en eje Y refy_pm=-2.6; %filtro ofset giroscopio fog=exp(-ts/(8*ts)); %Parametros filtro complementario %Ponderacion Wfc=0.95; %filtro gisroscopo alfa1=0.8; %filtro acelerometro alfa2=0.2; %filtro posicion pantalla w=50; fpantalla=minreal(c2d(1/((s^2/w^2+2*.5*s/w+1)*(s/w+1)),ts)); %K para pasar el 0-100 de la pantlla a metros kpantx=18/845; ofsetpantx=30; kpanty=14/485; ofsetpanty=53.9; %% SEÑALES PRBS USADAS PARA ENSAYAR LA PLANTA prbs1=idinput([100 2],'prbs',[0 1],[-30,40]); prbs2=idinput([100 2],'prbs',[0 1],[-37,32]); %% PARAMETROS GENERALES %aceleracion de la gravedad g=9.8; %masa de la bola m=0.11; %% MODELADO %modelado se ha hecho aprtiendo de los datos guardados en %ensayonuevosengranajes.mat %MODELADO SIN BOLA %Encoder es el angulo de giro en grados del eje del motor, Giro es el %angulo en grados de la plataforma 115 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA %EJE X %mando VS angulo encoder(tension voltios a angulo grados) Kp_mex=5.5239; Tp_mex=0.018583; MandoEncoder_x=Kp_mex/((1+Tp_mex*s)*s); %encoder VS giro (angulo grados a angulo grados) Kp_egx=0.16317; Tp1_egx=0.070433; Tp2_egx=0.07039; EncoderGiro_x=Kp_egx/((1+Tp1_egx*s)*(1+Tp2_egx*s)); %giro VS posicion (angulo en grados a posicion en metros) %EL GIRO ES EL DEL EJE X , PERO LA POSICION EN LA DEL EJEY------IMPORTANTE GiroPosicion_x=-g/(s^2)*pi/180; %EJE Y %mando VS angulo encoder(tension voltios a angulo grados) Kp_mey=7.527; Tp_mey=0.029769; MandoEncoder_y=Kp_mey/((1+Tp_mey*s)*s); %encoder VS giro (angulo grados a angulo grados) Kp_egy=0.16776; Tp1_egy=0.033527; Tp2_egy=0.033528; EncoderGiro_y=Kp_egy/((1+Tp1_egy*s)*(1+Tp2_egy*s)); %giro VS posicion (angulo en grados a posicion en metros) %EL GIRO ES EL DEL EJE Y , PERO LA POSICION EN LA DEL EJEX------IMPORTANTE GiroPosicion_y=-g/(s^2)*pi/180; %% CONTROLES %Los controles se han diseñado usando "GUI_control_digital.m". Se ha usado %el modelo analogico modificado. Los controles s han diseñado con los %aprametros indicados en cada caso, y posteriormente se ha ajustado de %manera mas fina los parametros maneualmente %en todos los controles se definen todos los parametros de un PID generico, %porque luego se cargan en un bloque generico, y si falta un parametro da %error. %Debido a falta de memoria en el NXT, a pesar de que en simulink los %bloques tienen la misma mascara y las mismas entradas, no todos tienen %todas las funciones en su interior, una vez decidido que tipo de control %iba a haber en cada uno, se limpiaron por dentro las cosas que no se %usaban %% controles PD para el primer sistema (tension motor a angulo de su eje) % se ha elegido un PD para conseguir la maxima velocidad posible %limites altos para que no entren nunca en funcionamiento mando_minME=-1000; mando_maxME=1000; 116 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA %MANDO-ENCODER X voltios-grados %Parametros iniciales de diseño por margen de fase %fm=55 %w=1.5*wp %f=0.1 K_mex=11; Ti_mex=1; Td_mex=0.025; N_mex=8.99; b_mex=1; C1x=minreal(K_mex*(1+(Td_mex*s)/(1+(Td_mex*s)/N_mex))); %la derivada se aplica a la salida Cr1x=K_mex; G1x=minreal(C1x*MandoEncoder_x); F1x=minreal(Cr1x*MandoEncoder_x/(1+G1x)); %MANDO-ENCODER Y voltios-grados %Parametros iniciales de diseño por margen de fase %fm=55 %w=1.5*wp %f=0.1 K_mey=11; Ti_mey=1; Td_mey=0.025; N_mey=8.99; b_mey=1; C1y=minreal(K_mey*(1+(Td_mey*s)/(1+(Td_mey*s)/N_mey))); %la derivada se aplica a la salida Cr1y=K_mey; G1y=minreal(C1y*MandoEncoder_y); F1y=minreal(Cr1y*MandoEncoder_y/(1+G1y)); %% controles PI para el segundo sistema (angulo eje motor a angulo plataforma) %Tanto con un P como con un PD el regimen permanente estaba en torno a la %mitad de la referencia pedida, y era asimetrico en escalones de bajada y %subida. Se ha optado por un PI porque de estar forma, a pesar de que la %integracion fuera lenta, y alcanzara el regimen eprmanete a largo plazo, %en el momento inicial se aproximaba mucho ams a lareferencia que con als %otras dos posibilidades estudiadas %limites altos para que no entren nunca en funcionamiento mando_minEG=-10000; mando_maxEG=10000; %ENCODER-GIRO X grados-grados %Parametros iniciales de diseño por margen de ganancia %gm=20db %w=0.95wp K_egx=1.9; Ti_egx=0.16; Td_egx=0.1; N_egx=4; b_egx=1; 117 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA %Como planta no uso EncoderGiro_x sino, funcionx1 funcion1x=minreal(F1x*EncoderGiro_x); C2x=minreal(K_egx*(1+1/(Ti_egx*s))); G2x=minreal(C2x*funcion1x); F2x=minreal(C2x*funcion1x/(1+G2x)); %ENCODER-GIRO Y grados-grados %Parametros iniciales de diseño por margen de ganancia %gm=20db %w=0.9wp K_egy=2.3; Ti_egy=0.117; Td_egy=0.13; N_egy=3.36; b_egy=1; %Como planta no uso EncoderGiro_y sino, funciony1 funcion1y=minreal(F1y*EncoderGiro_y); C2y=minreal(K_egy*(1+1/(Ti_egy*s))); G2y=minreal(C2y*funcion1y); F2y=minreal(C2y*funcion1y/(1+G2y)); %% controles PI para el segundo sistema (angulo eje motor a angulo plataforma) %El sistema se habia diseñado segun lo indicado anteriormente. Al diseñar % el ultimo lazo del contorl en casacada se comprobo que el control no % aportada la velocidad necesaria apra la estabilizacion de la bola. % partiendod e la idea de que al poner la bola en la pantalla su peso % amortiguaria las oscilaciones, se cambiaron los parametros de control del % segundo lazo, a unos, cuyo resultado es oscilante sin la boa, pero que % con ella no oscila, y si garantiza la velocidad necesria. % Los siguientes parametros se se obtuvierond e manera empirica tras una % serie de ensayos. %ENCODER-GIRO X grados-grados K_egx=2.3; Ti_egx=0.06; Td_egx=0.1; N_egx=4; b_egx=1; %Como planta no uso EncoderGiro_x sino, funcionx1 funcion1x=minreal(F1x*EncoderGiro_x); C2x=minreal(K_egx*(1+1/(Ti_egx*s))); G2x=minreal(C2x*funcion1x); F2x=minreal(C2x*funcion1x/(1+G2x)); %ENCODER-GIRO Y grados-grados K_egy=2.3; Ti_egy=0.06; Td_egy=0.13; N_egy=3.36; b_egy=1; %Como planta no uso EncoderGiro_y sino, funciony1 funcion1y=minreal(F1y*EncoderGiro_y); C2y=minreal(K_egy*(1+1/(Ti_egy*s))); G2y=minreal(C2y*funcion1y); F2y=minreal(C2y*funcion1y/(1+G2y)); 118 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA %% controles PID para el tercer sistema (angulo plataforma a posicion bola) % La plata es una ganancia negativa con una doble integracion. Por ser una % doble integracion, parece evidente que lo ideal es un PD, sinembargo, se % ha puesto un PID porque las integraciones de la planta parecian responder % demasiado lento. Respecto a la ganancia negativa, se diseño con la planta % multiplicada por -1, y se tuvo en cuenta el cambio de signo a la hora de % montar los diagramas de simulink %limites altos para que no entren nunca en funcionamiento mando_minGP=-1000; mando_maxGP=1000; %GIRO-POSICION X grados-metros %fm=34 %w=2wp %retraso fase=2 %f=0.1 K_gpx=10; Td_gpx=1.3; N_gpx=8.99; b_gpx=1; Ti_gpx=15; %Como planta no uso -GiroPosicion_x sino, funcionx2 funcion2x=minreal(F2x*(-GiroPosicion_x)); C3x=minreal(K_gpx*(1+1/(Ti_gpx*s)+Td_gpx*s/(1+Td_gpx*s/N_gpx))); %la derivada se aplica a la salida Cr3x=minreal(K_gpx*(1+1/(Ti_gpx*s))); G3x=minreal(C3x*funcion2x); F3x=minreal(Cr3x*funcion2x/(1+C3x*funcion2x)); %GIRO-POSICION X grados-metros %fm=34 %w=2wp %retraso fase=2 %f=0.1 K_gpy=K_gpx; Td_gpy=Td_gpx; N_gpy=N_gpx; b_gpy=b_gpx; Ti_gpy=Ti_gpx; %Como planta no uso -GiroPosicion_y sino, funciony2 funcion2y=minreal(F2y*-GiroPosicion_y); C3y=minreal(K_gpy*(1+1/(Ti_gpy*s)+Td_gpy*s/(1+Td_gpy*s/N_gpy))); %la derivada se aplica a la salida Cr3y=minreal(K_gpy*(1+1/(Ti_gpy*s))); G3y=minreal(C3y*funcion2y); F3y=minreal(Cr3y*funcion2y/(1+C3y*funcion2y)); %% GENERACION DE REFERENCIA PARA HACER UN RECTANGULO %generacion de referencia temporal 119 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA v=0:57; vectortiempo=v*ts*40; %generacion de referencia para X v=[-6:6,(0:15)*0+6,(-6:6)*-1,(0:15)*0-6]; vecorposicionX=(v*0.06+0.08)/6; %generacion de referencia para Y v=[(0:17)*0+5,(-5:5)*-1,(0:17)*0-5,-5:5]; vecorposicionY=(v*0.048-0.0015)/5; %vectores para comprobar con un plot que estan bien puestos. En el bloque %de simulink hay que poner a cada uno el del tiempo y el de su coordenada, %en un bloque de repeating secuence x=[vectortiempo;vecorposicionX]; y=[vectortiempo;vecorposicionY]; 120 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA IV. Anexo C: Código fuente Arduino 121 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 122 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA /*Programa para leer las coordenadas de una pantalla tactil y enviarlas de forma adecuada para ser interpretadas por el bloque de acelerometro de lego en simulink*/ #include <Wire.h> int READ_X=A1; int READ_Y=A2; int DRIVE_A=7; int DRIVE_B=8; int X=11; int Y=12; unsigned char valX; unsigned char valY; void setup() { pinMode(READ_X,INPUT); pinMode(READ_Y,INPUT); pinMode(DRIVE_A,OUTPUT); pinMode(DRIVE_B,OUTPUT); pinMode(X,OUTPUT); pinMode(Y,OUTPUT); Wire.begin(1); Wire.onRequest(requestEvent); } /*funcion para enviar los 3 datos requeridos por el bloque de acelerometro, las dos coordenadas y un 0 para rellenar*/ void requestEvent(){ unsigned char buff[3] = {valX, valY, 0}; Wire.write(buff, 3); } /*Lectura de la coordenada X*/ 123 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA unsigned int GetX() { digitalWrite(DRIVE_A,HIGH); digitalWrite(DRIVE_B,LOW); delay(5);//tiempo de estabilizacion del circuito return analogRead(READ_X); } /*Lectura de la coordenada X*/ unsigned int GetY() { digitalWrite(DRIVE_A,LOW); digitalWrite(DRIVE_B,HIGH); delay(5);//tiempo de estabilizacion del circuito return analogRead(READ_Y); } /*funcion principal, leer las coordenadas, y actualizar el valor, a la espera de ser requerido*/ void loop() { valX=GetX()/4;//pasar de resolucion 1024 a 255 if(valX>127){ valX=valX-128; }else{ valX=valX+128; } valY=GetY()/4; if(valY>127){ valY=valY-128; }else{ valY=valY+128; } } 124 Documento 2 PLANOS UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 126 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA Circuito de adaptación del panel táctil 127 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 128 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 1. Esquema de componentes 129 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 2. Diseño sobre placa 130 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 3. Circuito en perspectiva 131 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 4. Plano de pistas 132 Documento 3 PRESUPUESTO UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 134 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 1. Mediciones En este capítulo se exponen los aspectos del proyecto que implican una aportación económica y la cantidad en la que han sido necesarios. 1.1. Material 1.1.1. Hardware Material Pack educativo LEGO MINDSTORMS Education NXT Set de expansión de piezas LEGO MINDSTORM Education NXT Circuito Impreso Arduino Mega2560 Cantidad 1 1 1 1 1.1.2. Software Material Licencia Matlab para uso académico Licencia Simulink para uso académico Microsoft Office Word 2013 Microsoft Office PowerPoint 2013 Cantidad 1 1 1 1 135 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 1.2. Ingeniería 1.2.1. Investigación Tarea Búsqueda de información Horas 15 1.2.2. Construcción Tarea Construcción de la versión inicial de la estructura Construcción de la versión final de la estructura Ajuste final dela estructura Horas 15 120 6 1.2.3. Modelado Tarea Modelado de la planta Ensayos de la planta Obtención de parámetros Horas 20 15 10 1.2.4. Diseño de controles Tarea Diseño del control del motor Diseño del control del sistema mecánico Diseño del control de la posición Horas 15 30 20 1.2.5. Escritura de documentación Documento Horas 10 55 3 3 ANEXO B MEMORIA RESUMEN PRESENTACIÓN 136 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 2. Precios unitarios En este capítulo se muestran los precios unitarios de los materiales y las horas dedicadas a las tareas expuestas en el apartado anterior. 2.1. Material 2.1.1. Hardware Material Pack educativo LEGO MINDSTORMS Education NXT Set de expansión de piezas LEGO MINDSTORM Education NXT Circuito Impreso Arduino Mega2560 Precio unitario € 439 120 10 35 2.1.2. Software Precio unitario € 500 500 135 135 Material Licencia Matlab para uso académico Licencia Simulink para uso académico Microsoft Office Word 2013 Microsoft Office PowerPoint 2013 137 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 2.2. Ingeniería 2.2.1. Investigación Precio unitario € 30 Tarea Búsqueda de información 2.2.2. Construcción Tarea Construcción de la versión inicial de la estructura Construcción de la versión final de la estructura Ajuste final dela estructura Precio unitario € 30 30 30 2.2.3. Modelado Precio unitario € 40 30 30 Tarea Modelado de la planta Ensayos de la planta Obtención de parámetros 2.2.4. Diseño de controles Precio unitario € 40 40 40 Tarea Diseño del control del motor Diseño del control del sistema mecánico Diseño del control de la posición 2.2.5. Escritura de documentación Precio unitario € 30 30 30 30 Documento ANEXO B MEMORIA RESUMEN PRESENTACIÓN 138 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 3. Sumas parciales En esta apartado se multiplican los precios unitarios por las cantidades con el fin de obtener los presupuestos parciales de cada sección. 3.1. Material 3.1.1. Hardware Material Cantidad Pack educativo LEGO MINDSTORMS Education NXT Set de expansión de piezas LEGO MINDSTORM Education NXT Circuito Impreso Arduino Mega2560 Total 1 Precio unitario € 439 1 120 120 1 1 10 35 10 35 Cantidad Precio unitario € 500 500 135 135 Total 439 Total: 604€ 3.1.2. Software Material Licencia Matlab para uso académico Licencia Simulink para uso académico Microsoft Office Word 2013 Microsoft Office PowerPoint 2013 1 1 1 1 Total: 1270€ 139 500 500 135 135 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 3.2. Ingeniería 3.2.1. Investigación Tarea Horas Búsqueda de información Precio unitario € 30 Total Total 15 Precio unitario € 30 120 6 30 30 3600 180 Horas Precio unitario € 40 30 30 Total Precio unitario € 40 40 40 Total 15 450 Total: 450 € 3.2.2. Construcción Tarea Horas Construcción de la versión inicial de la estructura Construcción de la versión final de la estructura Ajuste final dela estructura 450 Total: 4230 € 3.2.3. Modelado Tarea Modelado de la planta Ensayos de la planta Obtención de parámetros 20 15 10 800 450 300 Total: 1550 € 3.2.4. Diseño de controles Tarea Horas Diseño del control del motor Diseño del control del sistema mecánico Diseño del control de la posición 15 30 20 Total: 2600 € 140 600 1200 800 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 3.2.5. Escritura de documentación Documento Horas ANEXO B MEMORIA RESUMEN PRESENTACIÓN 10 55 3 3 Total: 2130 € 141 Precio unitario € 30 30 30 30 Total 300 1650 90 90 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) GRADUADO EN INGENIERÍA ELECTROMECÁNICA 4. Suma total En esta apartado se multiplican los precios unitarios por las cantidades con el fin de obtener los presupuestos parciales de cada sección. Material 604,00 € 1270,00 € Hardware Software Ingeniería Investigación Construcción Modelado Diseño de controles Escritura de documentos 450,00 € 4230,00 € 1550,00 € 2600,00 € 2130,00 € Gastos generales (6%) Beneficio (20%) IVA (16%) 770,04 € 2566,80 € 2587,33 € Total 142 18758,17 €