UNIVERSIDAD CATOLICA DE SANTIAGO DEGUAYAQUIL F ACUL TAD DE EDUCACIO N T ECNICA P ARA EL DESARROL LO INGENIERIA EN ELECTRONICA EN CONTROL Y AUTOMATISMO Tema: Sistema de Control PID / Motor DC Fecha de Realización: 2017/ 08 / 27 Realizado por Erik Liger Alejandro Triviño Kevin Pincay (Espacio Reservado) Revisado: Ing. Nino Vega Fecha de entrega: / / f. ______________________ Año mes día Recibido por: Sanción: ______________________________________________________ Semestre: A-2017 Introducción Con el paso del tiempo, la automatización de procesos industriales va creciendo de manera exponencial, lo que está generando que la mayoría de las fábricas migren sus sistemas a esta nueva tecnología de control, con el fin de generar mayores ganancias y ahorrar tiempo. De igual manera, uno de los métodos para realizar el control adecuado de los procesos industriales se basa en la calibración de controladores de tipo P, PD, PID, siendo este último el más recomendado y más utilizado por parte del sector industrial. En base a este antecedente se ha decidido elaborar una pequeña planta de control para mostrar la importancia del uso de los controladores en la automatización. Este proyecto apunta a demostrar el diseño y desarrollo de un sistema, que a través de un control de tipo proporcional integrador y derivativo, estabiliza la posición de la esfera en un área específica. Para el diseño se ha utilizado un Arduino Mega 2560 como elemento controlador, el sensor ultrasónico hc-sr04, el cual funciona a través de una comunicación I2C y como elemento final de control se tiene un servomotor de tipo analógico, el cual permite el movimiento de la estructura tipo balancín que contiene una esfera sobre ella; dicho actuador genera movimiento y cambio de posición de la esfera en el área de análisis hasta lograr su balance en el centro de la estructura. Para el proceso de diseño de las constantes de control, hubo la necesidad de desarrollar un modelo matemático lineal de la planta, para esto se tomaron datos experimentales del sistema en lazo abierto con los cuales se obtuvo un polinomio de grado 2 que modela la planta. El presente sistema aspira a propiciar ambientes estables y auto- regulados del posicionamiento de un elemento esférico. Estos podrían reducir la inestabilidad en sistemas de posición que son comunes dentro de la industria, crear ambientes óptimos para la producción o conservación de productos y/o aportar a la mejora de la productividad. Planteamiento del Problema de Investigación Según un estudio de carácter analítico realizado, se pudo llegar a la conclusión de que un alto porcentaje de estudiantes de carreras afines al control y automatización, no poseen un modelo básico y/o educativo para aprender y comprobar los conceptos de control de procesos industriales; la principal causa de este factor se basa principalmente en su estructura física, ya que muchas veces los proyectos que ya han sido elaborados con anterioridad, ofrecen poca resistencia al paso del tiempo, muchas veces se deterioran sus estructuras debido a una mala elección de materiales para su elaboración, de igual manera otro de los factores que afectan es el alto valor monetario que requiere la elaboración de algunos proyectos, principalmente en la adquisición de componentes, precisión, entre otros factores que suelen presentarse en los típicos proyectos planteados. Con base a las principales causas de debilidades que implican desarrollar proyectos para demostrar ciertos sistemas de control, se buscó realizar un proyecto a escala que no se vea afectado por las desventajas antes planteadas y que pueda ser utilizado por la mayor parte de los estudiantes a corto, mediano y largo plazo. Siguiendo los lineamientos establecidos y las más altas normas, el proyecto sigue un rumbo eficiente en su elaboración, cumpliendo a cabalidad cada factor y detalle que debe incluir el mismo. Justificación del tema. La razón principal para la elaboración de este proyecto es garantizar que los alumnos de las carreras de ingeniería y que en el futuro vayan a tomar la materia de teoría de control, macarrónica, y demás materias afines, tengan su disposición las herramientas para poder experimentar y comprobar en cada clase los fundamentos teóricos y demás conceptos que se vayan aprendiendo, ya que aunque los conocimientos teóricos son de vital importancia para cualquier rama de la ciencia, el hecho de tener una experiencia palpable de dichos fenómenos y poder interactuar con ellos, garantiza un mejor grado de comprensión y aprendizaje. Se ha seleccionado también este tema de proyecto debido a su gran aplicación para con la electrónica en todos sus campos, permitiendo desarrollar varios proyectos según las ideas adquiridas. Pero se decidió hacer este proyecto con el fin de entregar al máximo los conocimientos más fuertes, con el fin de entregar un buen resultado. Se ha realizado un proyecto en base a las materias Instrumentación Industrial, Laboratorio de Circuitos, HMI, Teoría de Control y Laboratorio de Electrónica. Con la realización de este modelo a escala de una planta de control, los futuros estudiantes de la materia de Control de Procesos, podrán verificar experimentalmente los efectos que conlleva la no utilización de los controladores PID, así como también darse cuenta de la importancia de los mismos. Delimitación Durante el periodo de investigación del proyecto, se pudo observar en varias fuentes, una gran cantidad de modelos de la planta que se ha decidido realizar, cada una de ellas varia en estructura, tamaño, modo de funcionamiento y operación, entre otras características. Analizando a detalle cada uno de los modelos se decidió tomar las funciones más sobresalientes de cada uno de ellos. La planta de control del sistema barra y bola simplemente se encargará de mantener la pelota en el centro de la viga, ante cualquier perturbación que pueda presentarse, el sistema siempre tratara de llevar la pelota al centro de la barra. El proyecto corresponde a un sistema de control básico, sin mayores detalles. No se pretende elaborar ninguna interfaz gráfica ni nada por el estilo; esto debido al gran tiempo que demanda la realización del mismo. El controlador que será utilizado para el proyecto es la placa Arduino, de igual manera, la planta tendrá conexión con la herramienta Simulink de Matlab, con el objetivo de poder observar las gráficas de funcionamiento del proceso. El sistema se pone en marcha directamente desde la ventana de Simulink, gracias a la programación realizada en el software antes mencionado y en el IDE de Arduino. Metodología Para la realización de proyecto, en primer lugar se realizó una investigación bibliográfica de 30 fuentes diferentes, de las cuales se recopilo toda la información más relevante acerca de personas, estudiantes, investigadores, empresas, etc., que ya han realizado la planta de control que el grupo de trabajo se propuso a recrear. Una vez hecho esto, se procedió a obtener el modelo matemático que corresponde a la planta de control, para así poder hallar su respectiva función de transferencia, tomando como referencia el modelo ya elaborado en las referencias tomadas de documentos y sitios web. Con la función de transferencia ya encontrada y utilizando la herramienta Matlab, se procedió a realizar las respectivas simulaciones de la planta en lazo abierto. Luego, con el mismo software (Matlab) y una serie de comandos, se pudo calibrar el controlador PID y hallar las respectivas constantes del controlador Kp, Ki, Kd. Finalmente se procedió con la elaboración de la estructura física de la planta en aluminio y madera de balsa, para posteriormente cargar a la placa de control el software que fue elaborado con el IDE de Arduino. Objetivos General - Conocer el funcionamiento del controlador PID en un sistema de barra y bola a través de una investigación bibliográfica para elaborar un modelo a escala de dicha planta de control como aplicación de lo aprendido. Específicos - Obtener información de diferentes fuentes bibliográficas. - Realizar el controlador PID en el software de Matlab. - Implementar físicamente la planta de control. - Realizar las respectivas pruebas de funcionamiento del sistema. Estado del Arte 3.1 Sistema de Balancín y Pelota: Principios Básicos En la Universidad de Guadalajara, México, se elaboró un sistema para proyectar imágenes basadas en la tecnología led. “El sistema a desarrollar ha sido concebido como una adaptación del zoótropo. El presente sistema aspira a propiciar ambientes estables y auto-regulados del posicionamiento de un elemento esférico. Éstos podrían reducir la inestabilidad en sistemas de posición que son comunes dentro de la industria, crear ambientes óptimos para la producción o conservación de productos y/o aportar a la mejora de la productividad. Los sistemas de control de la industria tradicional generan altos accionares inestables que elevan los costos de producción y aumentan la contaminación ambiental ya que genera un aumento de las emisiones de dióxido de carbono (CO2). Aproximadamente del 100% de funciones desarrolladas dentro de la industria, un 80% es perdido por la inestabilidad, el 15% son perturbaciones de factores internos y externos, dejando solo un 5% del correcto desempeño deseado real. (Marco Perez Cisneros, 2012) 3.2 Application of a Labview for Real-Time Control of Ball and Beam System Este trabajo fue elaborado en IACSIT. “El proyecto se basa en un mecanismo compuesto de un balancín accionado por un motor, a través de un eje que equilibrara la bola en el set point deseado. Este va a ser controlado a través de una aplicación desarrollada en Labview en conjunto con Matlab, para poder monitorizar todas las variables y parámetros del sistema de control en cuestión. La ventaja de esta aplicación es que trabaja en tiempo real y nos brinda una forma diferente de usar el hardware a nuestra disposición. Al usar la aplicación en Labview nos permite ahorrar en instrumentos de medición, puesto que se lo realizara de forma virtual en el entorno de Labview. La idea general del sistema de control se basa en usar el torque generado por el motor, para que la estructura sea controlada de forma en que la pelota se auto regule en el punto de operación deseado (Hamed, 2010). 3.3 Vision Algorithms for ball on beam and plate Este proyecto basado en el sistema de control Bola y Viga fue elaborado en la Universidad Politécnica de Lund. “La motivación de este trabajo viene dada por la intención de crear un dispositivo de impacto visual en el que se pueda programar y proyectar cualquier resultado que se desee por el usuario. Este proyecto consistirá en el desarrollo y diseño de un juego de control de diferentes esferas sobre la estructura , controlados por un PIC o micro controlador, que al realizar un movimiento que nos brindara torque , se pondrá en pie la estabilización de la esfera puesta sobre la estructura ; a través de los algoritmos de visión y la programación correcta . Se busca tener un correcto control de la estructura. Si es necesario el estudio en profundidad del comportamiento de los sistemas de control, a fin de comprender las necesidades que estos pueden desarrollar´´(espersson, 2010) 3.4 Four Degree of Freedom Control System Using a Ball on a Plate Se elaboró un sistema de control de cuatro grados de libertad en la Universidad Estatal Politécnica del Sur. “Este trabajo muestra la construcción de un sistema de control de bola y barra en paralelo, con el cual obtenemos un sistema de control de cuatro grados de libertad, mediante el sensor ubicado de forma estratégica se lograra estabilizar la esfera en el punto deseado. Las variables a tomar en cuenta están sincronizadas en el programa dentro del micro controlador. Está basado en el aprovechamiento de la persistencia de los eslabones para simular el efecto deseado por el operario . El programa fue creado mediante Matlab, utilizando el lenguaje ensamblador debido a la necesidad de tener un control muy preciso del sistema. El efecto observado es más realista en la medida que se modifican los parámetros y se añaden distintas perturbaciones y objetos para medir y probar el alcance de este proyecto”. (Bruce, 2010) 3.5 Control PID digital para un sistema de barra equilibrada En la Universidad Rafael Urdaneta, Facultad de Ingeniería; Escuela de Ingeniería Eléctrica se desarrolló un sistema de control digital para una barra equilibrada. Los sistemas de control están formados por un conjunto de dispositivos de diversa naturaleza (mecánicos, eléctricos, electrónicos, neumáticos, hidráulicos) cuya finalidad es controlar el funcionamiento de una maquina o de un proceso. En todo sistema de control podemos considerar una señal de entrada que actúa sobre el mismo y una señal de salida proporcionada por el sistema. La necesidad de implementar diferentes controles para barcos, aviones y demás, provocó que diferentes personas se vieran involucradas en el desarrollo de los mismos, dándose en estas etapas un gran aporte al desarrollo del control Automático. En el contexto de un proyecto a baja escala; se puede mencionar el caso de estudio del comportamiento de un sistema de barra equilibrada con retroalimentación, es decir a lazo cerrado, el cual está integrado por una barra metálica, que posee una masa esférica colocada sobre la misma. Esta masa puede trasladarse de un extremo a otro dependiendo de la inclinación que posea la barra en dicho momento. Para lograr un control eficaz se tiene previsto utilizar un servomotor y un sensor de movimiento el cual enviara una señal eléctrica indicando el grado de inclinación en el que se encuentra la barra, para que el mismo se accione tratando de llevar la barra a cero grados o a los grados que se deseen, básicamente todos estos elementos acoplados con un control adecuado van a formar el sistema de barra equilibrada (G., 2013). 3.6 Final Project – Ball Balancing Beam Un grupo de miembros de Ingeniería 58 se decidió por elaborar un sistema de control de bola y un sensor de movimiento, en el cual el sensor se encarga de balancear en dos diferentes posiciones que se van a alternar a través de una entrada de onda cuadrada. Para realizar este proyecto fuimos probando los diferentes sistemas básicos que usaban sensores de movimiento, para así ir variándolos según la estabilidad que se desea necesaria. Se agregó un sensor de movimiento infrarrojo para medir la posición de la bola en el campo del sensor de movimiento principal en una sola dirección. Se crearon 3 controladores PD diferentes .Al momento de construir la estructura se nos presentaron problemas en la parte mecánica, puesto que debíamos hallar la correcta forma de realizar que el torque del motor trabaje con la estructura de forma idónea para que el sensor de movimiento no sufra algún desajuste. Tras realizar varias estructuras en diferentes materiales, nos decidimos por uno de metal para que sea más firme y de larga duración. Así el sistema de control tomo su rumbo de forma idónea y lo logramos establecer, dándonos cuenta que todo estaba en el diseño mecánico y la parte del control. (Kyle Knapp, 2015) 3.7 Implementación de un sistema de control para Balancear una bola en una Viga utilizando Matlab. En la universidad ESPOL, se implementó como trabajo final una propuesta de realizar un sistema de control para balancear una bola en una viga utilizando Matlab. La implementación de un sistema de control para balancear una bola en una viga utilizando MATLAB, es diseñado con la finalidad de implementar una planta para prácticas del Laboratorio de Control Automático, con el objetivo de que el estudiante pueda elaborar prácticas experimentales-teóricas y de esta manera complementar los conocimientos teóricos adquiridos en la asignatura de Control Automático. El Sistema físicamente está constituido por dos computadores y la planta; uno es el computador principal (Host), el cual realiza el control del sistema desde software, y el otro es el computador remoto (Target) en la cual está conectado a la planta para adquirir información de la misma en tiempo real; la planta consiste de una barra de acero acanalada y una bola de acero limpia de libre rodamiento. El sensor lineal mide la posición de la bola en el riel midiendo el voltaje en la barra. Un motor DC, conectado al final de la barra controla la posición de la barra y la bola de acero. En el desarrollo de nuestra planta también se utilizó una herramienta llamada MATLAB, la cual nos ha facilitado el cálculo, análisis con aplicaciones importantes como un Simulador (Simulink), Identificador de Sistemas. (Rene, 2009) 3.8 Optimal State Feedback Control (Ball and Beam) En la Universidad de Oklahoma se mostró su proyecto basado en el fenómeno del Control Automático. “El trabajo que se presenta es el de un sistema de control de estado óptimo retroalimentado. El circuito está desarrollado en función a un micro controlador. La idea de este proyecto es enfocarse en las ecuaciones de movimiento, el modelo no lineal en un lazo abierto; para luego elaborar un lazo cerrado del mismo. Las pruebas se efectuaran en las simulaciones para así encontrar los valores necesarios de las respuestas .Usando Matlab se comprueban los modelos no lineales y el modelo linealizada para así formar el sistema de control óptimo. (Pelton, 2012) 3.9 Ball and Beam Control System Project El Instituto Tecnológico de New Jersey desarrollo un sistema de control de un lazo abierto inestable de una bola balanceándose en una viga y sobre la elaboración de un pequeño proyecto basado en las teorías de control más estudiadas se puso en desarrollo bajo una lupa de parámetros no lineales .La estructura fue realizada en aluminio , un motor DC con un encoder óptico , Decodificador HCTL2016 , una pelota, L298N Motor driver , Arduino Mega 2560 y dos sensores infrarrojos fueron necesarios para llevar a cabo la misión de desarrollar este proyecto que nos demuestra como un sistema no lineal es estabilizado , a través de varios pasos ; teniendo como arma maestra a la linearizacion y más métodos que nos enseña la teoría de control . (Lin, 2016) 3.10 Ball and Beam Balance Final Report Un grupo de estudiantes del departamento de Ingeniería Mecánica del Instituto Tecnológico de Massachusetts elaboro un Proyecto que es de foco de la mayoría de estudiantes de teoría de control. Donde se va a controlar una esfera sobre una estructura a través de una entrada de motor para controlar el ángulo del rayo del sensor de movimiento y fijar un buen control del sistema. Se realiza este proyecto puesto que cumple con todos los lineamientos necesarios para llevar a cabo la demostración de cómo funcionan los diferentes casos de estudio en la teoría de control de Ingeniería. Tuvimos como resultados positivos la correcta interacción de los elementos con la estructura, lo cual es fundamental en el proyecto; debido a que en las simulaciones y pruebas la ubicación del motor en la estructura nos brindó problemas de torque y perturbaciones innecesarias. (Selby, 2009) 3.11 Ball and Beam: Design and Control La Escuela Universitaria de Ingeniería Mecánica, Campus saucache, Universidad de Tarapacá apoyo al desarrollo de un proyecto que tiene como problemática el desarrollo del diseño de un sistema de control para bola y barra , el cual es característico de ser un lazo abierto muy inestable . Con dicha problemática en mente se puso en marcha la elaboración del proyecto de forma didáctica para con los demás que deseen realizar el proyecto, el caso de estudio en este proyecto denota todos los temas dentro de la teoría de control. (Claure, 2014) 3.12 Diseño de control Para una Planta bola y Viga En la Universidad de Cantabria se desarrolló un proyecto de fin de carrera, donde se va a implementar en una estructura mecánica un proceso de control para con una esfera (pelota) que estará sobre la superficie de una barra en una viga, la cual será accionada por un motor conectado a la estructura a través de un eje y así inclinar la barra en un rango de ángulos. El procedimiento para obtener las ecuaciones necesarias de la planta debe ser de manera cuidadosa sin obviar ningún detalle, puesto que de eso depende la estabilidad de la misma al momento de hacerla funcionar lo más estable posible. Se desarrolló a través del software una interfaz donde se pueda medir ciertos parámetros de la planta, para así evitar el uso de herramientas externas en la planta. (Ghassaei, 2013). 3.13 Construcción y diseño del sistema de control de posición de una esfera sobre una plataforma móvil. En la Universidad de Madrid se elaboró un proyecto que 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. 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; 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. La estructura necesaria para el estudio de este sistema es compleja de montar, razón por la cual existen casos escasos ejemplos de su uso en las aulas. Los pocos sistemas comerciales disponibles son cerrados, algunos inclusos usan software propio para su manejo y por sus montajes concretos son más complicados de manejar de lo que viene 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. (Arca, 2015) 3.14 Control de posición de un balancín con motor y hélice. En la Universidad de Valladolid, en la carrera de Ingeniería Técnica Industrial, especialidad en electrónica industrial se llevó a cabo un proyecto en el cual se abarcan los problemas típicos del control. Mediante el siguiente trabajo, se pretende explicar la implementación de un control de posición en una barra que presenta un grado de libertad, el cual consiste en el giro respecto a un eje que pasa por su centro de gravedad, el movimiento de giro será provocado por una fuerza de empuje producida por una hélice y un motor de corriente directa , de manera que actúa sobre la barra y con ello la posición de la misma, para muchos todo lo anterior se puede resumir como “helicóptero con un grado de libertad”, quizás la anterior frase sea más ilustrativa y permita a todos crear un esquema mental del sistema. (Rosa, 2012) 3.15 Sistema de entrenamiento de balancín y pelota En la universidad de Guadalajara, México se ha adquirido un módulo experimental que se basa en el sistema bola y balancín. “El Sistema de balancín y pelota es un importante y clásico modelo muy utilizado para la enseñanza de sistemas de control ya que posee una propiedad muy interesante para la ingeniera en control: el sistema es inestable en lazo abierto. El objetivo del control es la regulación automática de la posición de la bola en el balancín cambiando el ángulo de la barra. Para ello se tiene el CE106 que es un entrenado de balancín y pelota manufacturado por TQ, el cual es usado en muchas universidades y colegios alrededor del mundo. Este módulo de entrenamiento posee las características necesarias para demostrar el control de sistemas inestables con la ventaja de que ha sido probado yes completamente seguro. El sistema contiene un sensor de posición de la pelota en la barra, el sensor del ángulo de inclinación, el actuador que es un servomotor y la barra sobre la cual rueda la pelota” (Perez, 2013). 3.16 Control de un sistema Ball and Beam mediante sensores Miembros de la universidad de Buenos Aires, Argentina han elaborado un sistema Ball & Beam mediante un proceso que usa sensores de visión. “El sistema mecánico Ball & Beam es inherentemente inestable y por ende tiene una dinámica no lineal, razón por la cual es una planta muy utilizada para evaluar diversas estrategias de control. En base a esto se han planteado algunos objetivos en el desarrollo del trabajo, los cuales son: a) Diseño y armado de una planta de Barra y Bola, b) Diseño de un sensor basado en Visión Artificial y c) Control de la posición de la bola. El actuador utilizado es un servomotor. Internamente tiene un lazo de control proporcional para regular el ángulo de giro. El controlador se ejecuta en una PC y determina el valor de la fuerza de control a enviar a un micro controlador para que este la convierta en una señal adecuada para manejar al actuador” (Pecker, 2010). 3.17 Control de la posición de una esfera sobre una plataforma En la universidad pontificia de Madrid, España, se ha desarrollado el sistema de control de la posición de la esfera en una plataforma mediante módulos de LEGO. “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; 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. 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. El problema anterior motiva el principal objetivo de este proyecto, la construcción y control de una estructura para el estudio del sistema bola plataforma basada en LEGO Techno, usando como controlador central una unidad NXT” (Otaola, 2015). 3.18 Sistema de control para balancear una bola en una viga Estudiantes de la ESPOL implementaron un sistema de control para balancear una bola en una viga mediante el uso de MATLAB. “El trabajo se basa en el sistema bola-viga para lo cual se ha de controlar el ángulo que la viga forma con la horizontal para de esa manera obtener la posición de equilibrio deseada de la bola. Físicamente el sistema está constituido por dos computadores y la planta, la cual se compone de un motor DC, un sensor lineal para medir la posición de la bola en la viga, un sensor lineal para medir el ángulo en la carga, la fuente de poder, engranes y el software de MATLAB. La técnica de control que se utilizo fue la conocida como control en cascada, en la que se utilizan dos controladores; puesto que existe un lazo interno y uno externo que deben de ser controlados” (Ponce & Boada, 2006). 3.19 Control para una planta bola y viga En la universidad de Cantabria se decidió realizar el diseño del sistema de barra y bola como proyecto de control. “El sistema Bola y Viga es un mecanismo simple, diseñado específicamente para el estudio teórico y práctico de la investigación de los principios básicos y avanzados de la ingeniería de control. Este aparato se centra específicamente en los problemas de control de sistemas inestables, siendo estos comunes en la industria. También puede, sin embargo, ser utilizado como una introducción practica al diseño, operación y aplicación de sistemas de control en general. El sistema consiste en una bola que puede rodar sobre una barra, la cual está sujeta mediante un eje con un motor acoplado. Dicho motor permite girar el eje y así inclinar la barra en un rango de ángulos. El objetivo del control consiste en, girando convenientemente la viga, llevar la bola a una posición deseada sobre ella y mantenerla en dicha posición” (Oporto, 2015). 3.20 Control automático del sistema no lineal Ball and Beam En la universidad de pamplona se ha diseñado un sistema de control basado en la planta de bola y barra. “CE106 BALL&BEAM APPARATUS es un producto diseñado específicamente para el estudio teórico y práctico de la investigación de los principios básicos y avanzados de la ingeniería de control. Este aparato se centra específicamente en los problemas de control de sistemas inestables, siendo estos comunes en la industria. También puede, sin embargo, ser utilizado como una introducción práctica al diseño, operación y aplicación de sistemas de control en general. Este sistema de posicionamiento se ha convertido en uno de los más importantes y perdurable en la enseñanza de los sistemas de control en ingeniería, porque aunque es de fácil entendimiento, las técnicas de control que se pueden estudiar en él contemplan importantes métodos clásicos y modernos de control” (Velaz, 2011). 3.21 Control del sistema bola y viga En la universidad tecnológica Buenos Aires Argentina, se elaboró un sistema de control basado en el ya conocido mecanismo de la barra y la bola. “El sistema bola y viga es considerado un mecanismo altamente inestable y a lineal. En el presente trabajo se ha desarrollado un control difuso basado en el sistema ya mencionado, para posteriormente hacer uso de herramientas computacionales como matlab/simulink para implementar su control difuso. El sistema bola y viga está compuesto por una esfera que rueda sin deslizamiento sobre una línea (viga) que puede hacer pivotes en el eje x. El objetivo del sistema es controlar la posición de la bola modificando el ángulo de inclinación de la viga. Este sistema es considerado como una simplificación unidimensional del sistema de bola y plato, el cual se ha empleado en la industria aeronáutica para el desarrollo de muchos simuladores de vehículos aéreos y terrestres” (Menéndez, Cismodi & Rodríguez, 2016). 3.22 Control PID barra y bola con Arduino Un Ingeniero investigador de España, realizo un control PID para el sistema de barra y bola. “Es fácil entender el Control PID estudiando un sistema de Barra y Bola y utilizando como Controlador un Arduino. El objetivo es situar la bola en el centro de la barra inclinándola de forma conveniente mediante un lazo cerrado de control. El sistema barra y bola es un sistema clásico en la Ingeniería de Control. Mediante un Sensor de distancia, medimos la posición de la bola. Con un Controlador, mediante control PID, calculamos el ángulo en el que deberíamos inclinar la barra para colocar y estabilizar la bola en el centro de la barra. Un Actuador modifica la inclinación de la barra” (Roble, 2015). 3.23 Sistema Ball & Beam Miembro de la universidad Antonio Nariño decido trabajar en el sistema de control Ball & Beam como proyecto para adentrarse en el control de procesos. “La descripción del siguiente proyecto, hará conocer el desarrollo de un sistema de control barra-esfera. Su mecanismo se basa en un ángulo que funcionara como brazo palanca, en un extremo estará fijo en una viga y al otro estará controlado por un servomotor. El sistema debe de ser capaz de ubicar a una esfera que se esté desplazando sobre una viga a una posición R, la posición de esta será controlada mediante la variación del ángulo β de la barra, el cual está directamente relacionado con el ángulo α que presente el engranaje del servomotor, de esta manera la esfera podrá estar posicionada en el lugar que se desee balanceando la barra de la forma más adecuada. La planta estará linealizada sobre un punto específico de operación y se muestra la implementación de un controlador PID que permitirá la estabilidad del sistema en lazo cerrado” (Rubio, 2013). 3.24 Sistema de Control Ball and Beam Integrantes de la universidad Ricardo Palma, apostaron al desarrollo del sistema barra y bola debido a que es clave para la comprensión de sistemas inestables. “En la actualidad en la industria es necesario el control de sistemas muy variantes donde se requiere una respuesta rápida del controlador para poder estabilizar correctamente el proceso. Es entonces que mediante este ejemplo se quiere desarrollar un sistema de control para un proceso inestable y que necesita de una respuesta rápida por parte del controlador. Se presenta el sistema de la barra y bola el cual necesita un controlador que sea capaz de compensar la inestabilidad de la bola que se genera al variar su posición con respecto al centro de la barra donde se desliza. El objetivo de este proyecto es encontrar una solución de control mediante la técnica de espacio de estados y simular un proceso muy inestable que necesita de respuesta rápida por parte del controlador, consiguiendo que la bola se mantenga en el centro de la barra” (Campos, 2012) 3.25 Diseño de un controlador PID para el sistema barra y bola En la universidad Miguel Hernández, partiendo de un trabajo previo se decido continuar con la elaboración del sistema de control para la ya conocida planta de barra y bola. “Partiendo del problema planteado en prácticas anteriores donde se identificó la inestabilidad del sistema barra - bola en lazo abierto se procede a diseñar un controlador que consiga que el sistema cumpla unos requerimientos de diseño previamente definidos. Para la resolución del problema se trabajará en entorno Matlab/Simulink. Los requerimientos de diseño para el problema son: a) Tiempo de establecimiento menor que 3 segundos y b) Sobre oscilación máxima menor que 5%”. (González, 2011). 3.26 Sistema de control para la planta bola y viga Integrantes de la facultad de ingeniería de la universidad pedagógica y tecnológica de Colombia, realizaron el modelamiento y sistema de control para la planta Ball & Beam. “El sistema bola y viga, también llamado pelota en equilibrio, se relaciona con problemas reales de control, tales como estabilizar horizontalmente un avión durante el aterrizaje y en flujo de aire turbulento. Hay dos grados de libertad en este sistema. Uno de ellos es el balanceo de la bola de arriba debajo de la viga, el otro es la viga que gira sobre su eje. El objetivo del sistema es el control de la posición de la pelota a un punto de referencia deseado, y rechazar perturbaciones tales como el empuje de un dedo. La señal de voltaje de control va al motor de corriente continua a través de un amplificador de potencia, entonces el par generado desde el motor acciona el haz para girar en el ángulo deseado. Por lo tanto, la pelota puede estar situada en la posición deseada” (Mesa, 2012). 3.27 Diseño de un módulo educativo para el control del sistema Bola y Varilla Alumnos de la pontificia universidad católica de Perú, elaboraron un módulo educativo de la planta bola y varilla para que pueda ser utilizado por aquellos estudiantes que cursen la materia de control, con el objeto que realicen pruebas en dicho sistema. “Se realizó el diseño e implementación de un módulo educativo para el control del sistema bola-varilla, el cual podrá ser utilizado como material de enseñanza por las especialidades que cuenten en su plan de estudios con cursos de control. Así mismo, será útil para la enseñanza de la parte experimental en cursos de pre-grado a través de este sistema no lineal e inestable. El sistema bola-varilla consta de: dos sensores infrarrojos de proximidad. El actuador es un motor DC. La implementación del algoritmo de control se realiza mediante la tarjeta de procesamiento de señal DSPACE1102. El diseño del controlador y la evaluación de parámetros se desarrollaron en el programa de simulación SIMULINK desde MATLAB” (Meneses, 2013). 3.28 Control robusto del sistema de bola y viga En la 12va edición de la LACCEI realizada en Guayaquil, Ecuador se presentó el tema de control robusto tomando como muestra el sistema de bola y viga. “Cuando un sistema de control funciona adecuadamente en presencia de disturbios y perturbaciones, es robusto. Se presenta un acercamiento relativamente sencillo al problema de control robusto para el sistema de bola y viga que se puede presentar en cursos básicos de sistemas de control. El sistema de bola y viga presenta ruido de alta frecuencia en los sensores, dinámica de alta frecuencia no-modelada, disturbios en el proceso y variación de parámetros de la planta. Se presentan resultados de controladores diseñados mediante métodos de control robusto y se comparan con los de controladores diseñados por métodos convencionales, como el método Root Locus. El desempeño del sistema diseñado mediante Root Locus no cumple con las especificaciones de desempeño mientras que el desempeño del sistema diseñado mediante control robusto sí cumple. Estos resultados se obtuvieron mediante un proyecto de investigación sub graduada y se están aplicando actualmente en un curso introductorio de sistemas de control” (Bolivar, 2014). 3.29 Control de la posición de una bola sobre una barra basculante En la universidad de Zaragoza se desarrolló el control de la posición del famoso sistema de la bola sobre la viga o barra basculante. “Se pretende resolver, con fines educativos, el clásico problema del control de la posición de una bola sobre una barra basculante, cuya inclinación se puede modificar mediante un motor de corriente continua acoplado en el centro de la barra. El artículo muestra un estudio completo del problema a resolver, suministrándose desde algunas pautas para su realización como equipo de laboratorio, hasta la evaluación de 2 estrategias diferentes de control basadas ambas en una descripción del sistema en el espacio de estado” (Tello, 2012). Marco Teórico Sistemas de Control Un sistema de control se define como un conjunto de dispositivos, los cuales trabajan en conjunto para poder lograr un objetivo en específico. Ilustración 1. Sistema de control. Fuente: Autores A continuación se presentan algunas definiciones importantes: Sistema: Un sistema es una combinación de elementos que interactúan en conjunto para poder cumplir un objetivo determinado. Variable de entrada: Una variable de entrada es aquella que, ante una modificación en su magnitud o en su condición, puede por sí misma modificar o alterar el estado de todo el sistema. Variable de salida: La variable de salida es aquella variable cuya magnitud es medida. Perturbación: Una perturbación es una señal que puede afectar el valor de la salida de un sistema. Cuando la perturbación se origina en el interior del sistema se denomina perturbación interna, mientras que si la perturbación se origina fuera del sistema se denomina perturbación externa y también corresponde a una entrada del sistema. (Luiz, 2012) Ejemplo de un sistema: A continuación se presenta un ejemplo de un sistema y se toma como referencia el control de un motor DC Ilustración 2. Ejemplo de un sistema de control. Fuente: Autores Sistema de control en lazo abierto Los sistemas de control en lazo abierto son aquellos en los que la variable de salida o también conocida como variable controlada, no tiene ningún efecto sobre la variable de control. Este sistema presenta las siguientes características: El sistema no realiza comparaciones entre la salida del sistema con el valor de referencia. La exactitud de la salida que presenta el sistema dependerá de la calibración que se le realice al controlador. Cuando se presenten perturbaciones, los sistemas de control en lazo abierto no pueden cumplir su función de manera adecuada. Para cada entrada de referencia, en el sistema le corresponde una condición fija de operación. Ilustración 3. Sistema de control en lazo abierto. Fuente: Autores Los sistemas de control en lazo abierto suelen aparecer en dispositivos que poseen control de tipo secuencial. En los sistemas secuenciales no existe una regulación de variables, sino que esto se realiza mediante una serie de operaciones de una manera determinada. La secuencia de operaciones puede venir determinada mediante eventos o por tiempos. El control secuencial se lo programa mediante el uso de PLC. Ejemplo de estos sistemas son una lavadora o un semáforo de intersección. Sistemas de control en lazo cerrado Los sistemas de control en lazo cerrado son aquellos sistemas en los cuales la señal de salida del sistema (conocida como variable controlada), si tiene un efecto directo sobre la acción de control (conocida como variable de control). (Luiz, 2012) Ilustración 4. Sistema en lazo cerrado. Fuente: Autores También es necesario saber lo que es y en que se basa un control de tipo realimentado. Un control de tipo realimentado es una operación que en presencia de perturbaciones, tiende a reducir la diferencia entre la salida de un sistema y alguna entrada de referencia. Esta reducción se logra manipulando alguna variable de entrada del sistema, siendo la magnitud de dicha variable de entrada función de la diferencia entre la variable de referencia y la salida del sistema. Ilustración 5. Control realimentado. Fuente: Autores Los sistemas de control en lazo cerrado se clasifican en dos grupos: Sistemas de control manuales: En estos sistemas el ente controlador es un operador humano. Ilustración 6. Sistema de control manual. Fuente: Autores Sistemas de control automático: Estos sistemas a diferencia de los anteriores, poseen como ente controlador a un dispositivo que puede ser neumático, hidráulico, eléctrico, electrónico o digital (microprocesador). (Luiz, 2012) Ilustración 7. Sistema de control automático. Fuente: Autores Controladores PID Los controladores PID son conocidos como mecanismos de control por métodos de retroalimentación, los cuales permiten el cálculo del error entre un valor que ha sido medido y un valor que se desea obtener, para de esta manera poder aplicar una acción de corrección que sea ajustable al proceso. Todo controlador PID posee un algoritmo de cálculo el cual consta de tres constantes o parámetros distintos que deben de ser calculados: el término proporcional, el término integral y el término derivativo. El término proporcional permite determinar la forma en que reacciona el error actual. El término integral permite generar una acción de corrección proporcional al valor integral del mismo error. Mientras que el término derivativo permite determinar el tiempo en que el error es producido. Cuando se realiza un ajuste de las tres variables en la lógica o algoritmo del PID, dicho controlador es capaz de proveer un tipo de control diseñado para cualquier tipo de acción que el proceso a realizar requiera. Cabe recalcar que muchas aplicaciones solamente pueden necesitar de uno o hasta dos modos del sistema de control. Con esto nos referimos a que un controlador PID puede a su vez ser llamado también PD, PI, P, I, cuando las otras variables de control están ausentes en el sistema. Los controladores de tipo PI son comunes puesto que en la mayoría de los casos, la acción de control derivativo es sensible al ruido, así mismo, la ausencia de la variable de control integral puede evitar que el sistema llegue a alcanzar el valor que el usuario desea. (Rubio, 2013) Ilustración 8. Controlador tipo PID. Fuente: Autores Funcionamiento de un controlador PID Para que un controlador PID funcione de manera correcta y pueda regular un proceso o sistema, se requiere de lo siguiente: Un sensor que pueda determinar el estado en que se encuentra el sistema. Un controlador que permita la generación de la señal que gobierna al actuador. Un actuador que pueda modificar al sistema de una manera controlada Analizando ahora detalladamente cada elemento mencionado anteriormente: Sensor.- El sensor es el dispositivo que se encarga de proporcionar un tipo de señal analógica o digital al elemento controlador; esta señal representa el punto o referencia en el cual se encuentra el sistema. El sensor puede representar dicha señal en valores de voltaje, corriente, frecuencia. Controlador.- El elemento controlador se encarga de leer una señal externa, la cual representa el valor que se requiere o necesita alcanzar. Esta señal se la conoce como señal de referencia, esta señal es de igual naturaleza y posee igual rango de valores que la señal que ha sido proporcionada por el sensor. El controlador se encarga también de restar la señal del punto actual con la señal de referencia o consigna, de esta forma se obtiene una señal de error, la cual, determina en cada momento la resta o diferencia existente entre el valor deseado (referencia o consigna) y el valor que ha sido medido. Las 3 señales que se suman, forman la señal de salida que el controlador utiliza para generar una acción o gobernar al elemento actuador. La señal que resulta de la suma se conoce como variable manipulada, esta señal manipulada no se aplica de manera directa sobre el actuador, sino que primero debe de ser transformada para que pueda ser compatible con el actuador que se está utilizando. (Rubio, 2013) Ilustración 9. Sistema de control con PID. Fuente: Autores Controlador proporcional (P): Este control brinda una salida del controlador que es proporcional al error, es decir: u(t) = KP.e(t), cuya función de transferencia es: De esta ecuación, Kp representa una ganancia de tipo proporcional que es ajustable. Un controlador del tipo proporcional puede controlar cualquier planta estable, pero posee desempeño limitado y error en régimen permanente. Controlador integral (I): Este tipo de control brinda una salida del controlador que es proporcional al error que se ha acumulado, lo que implica que es un modo de control lento. La señal de control u(t) tiene un valor que es diferente de cero cuando la señal de error e(t) es cero. Por lo que se puede decir que dada una señal de referencia constante, o perturbaciones, el error en régimen permanente es cero. (Rubio, 2013) Controlador proporcional-integral (PI): Este tipo de controlador se define de la siguiente manera: De la ecuación anterior, Ti se conoce como tiempo integral y es el tiempo que se encarga de ajustar la acción integral. La función de transferencia resulta queda de la siguiente manera: Cuando se tiene un control de tipo proporcional, es necesario que exista una señal de error para poder tener una acción de control que sea distinta de cero. Con una acción de tipo integral, un error pequeño positivo siempre dará una acción de control de tipo creciente, en caso de ser negativa la señal de control será decreciente. Muchos controladores industriales tienen solo acción de control de tipo PI. Un controlador PI es muy adecuado para todos los procesos donde la dinámica es esencialmente de primer orden. (Rubio, 2013) Controlador proporcional-derivativa (PD): Este tipo de controlador se define de la siguiente manera: En la ecuación anterior, Td representa una constante que se denomina tiempo derivativo. Esta acción de control tiene carácter de previsión, lo que hace más rápida la acción de control, aunque tiene la desventaja importante que amplifica las señales de ruido y puede provocar saturación en el actuador. La acción de control derivativa nunca se utiliza por sola, sí debido a que sólo es eficaz durante períodos transitorios. La función transferencia de un controlador PD se representa de la siguiente manera: Cuando una acción de control derivativa se agrega a un controlador proporcional, permite obtener un controlador de alta sensibilidad, es decir que responde a la velocidad del cambio del error y produce una corrección significativa antes de que la magnitud del error se vuelva demasiado grande. Controlador proporcional-integral-derivativa (PID): Esta acción combinada reúne las ventajas de cada una de las tres acciones de control individuales. La ecuación de un controlador con esta acción combinada se representa en la siguiente ecuación: La función transferencia resultante es: Servomotor Un servomotor es conocido como un tipo especial de motor, el cual permite generar un control sobre la posición del eje en un instante dado. Este tipo de motor está diseñado para poder generar movimientos en una cantidad de grados específica y luego poder mantenerse fijo en dicha posición. (García, 2016) Ilustración 10. Servomotor. Fuente: Autores Internamente el servomotor está conformado por un motor DC. El eje del motor esta acoplado a una caja de varios engranajes (similar a una transmisión). Esto se realiza con el objetivo de potenciar el torque generado por el motor y de esa manera permitir que se mantenga una posición fija, cada vez que se requiera. El circuito electrónico del servomotor es el que se encarga del manejo del movimiento y de la posición del motor. (García, 2016) Ilustración 11. Partes de un servomotor. Fuente: Autores Partes de un Servomotor Un servomotor es un sistema compuesto por: Un motor eléctrico: es el encargado de generar el movimiento, a través de su eje. Un sistema de regulación: formado por engranajes, que actúan sobre el motor para regular su velocidad y el par. Mediante estos engranajes, normalmente ruedas dentadas, podemos aumentar la velocidad y el par o disminuirlas. Un sistema de control o sensor: circuito electrónico que controla el movimiento del motor mediante el envío de pulsos eléctricos. Un potenciómetro: conectado al eje central del motor que nos permite saber en todo momento el ángulo en el que se encuentra el eje del motor. Recuerda que un potenciómetro es una resistencia variable. Tipos de servomotores Existen varios tipos de servomotores, para la industria, la robótica, entre otras aplicaciones, sin embargo, en este apartado se hablara acerca de los servomotores de modelismo, los cuales son utilizados para el sector de la robótica y sus derivados. Ilustración 12. Tipos de servomotores. Fuente: Autores Ilustración 13. Servomotor de modelismo. Fuente: Autores Los servomotores de modelismo son aquellos que operan a voltajes con valores bajos (voltaje de corriente continua) generalmente entre los 4 y los6 voltios. Mientras que los servomotores de tipo industrial operan en corriente directa DC como en corriente alterna AC (monofásica o trifásica). Los servomotores se pueden clasificar también según sus características de rotación: Servomotores de rango de giro limitado: Estos son el tipo más común de servomotores. Estos dispositivos solo permiten una rotación como máximo de 180 grados, característica que los hace incapaces de dar una vuelta completa (180 grados). Sin embargo existen métodos mediante los cuales este tipo de servomotor puede ser modificado internamente para que pueda girar toda la vuelta completa. Servomotores de giro continuo: Estos servomotores se caracterizan porque son capaces de dar una vuelta completa (360 grados). El funcionamiento de estos servomotores es similar al de un servo común. Sin embargo los servomotores también se pueden clasificar en 4 tipos fundamentales: Servomotores de corriente continua (cc): los más habituales funcionan con un pequeño motor de corriente continua. El servomotor se controla por PWM (modulación por ancho de pulso), como ya explicamos. Servomotores de corriente alterna (ac): pueden utilizar corrientes más potentes y por lo tanto se usan para mover grandes fuerzas. Servomotores de imanes permanentes o Brushless: se llama brushless porque es un motor de corriente alterna sin escobillas (como las que llevan los de cc). Se utilizan para grandes torques o fuerzas y para altas velocidades. Son los más usados en la industria. Están basados en los motores síncronos. Motor Paso a Paso: es un motor eléctrico, pero que no gira, sino que avanza un "paso". No giran de manera continua sino por pasos, es decir, giran un número determinado de grados. La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Su control se basa en polarizar las bobinas que llevan incluidas de manera adecuada para que giren correctamente. Son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos. Ilustración 14. Tipos de servomotores. Fuente: Autores Elegir entre Servomotores o motores a pasos Esta es una pregunta que puede ser respondida con base en las necesidades que deban satisfacerse durante la etapa de diseño, entre otras consideraciones. A grandes rasgos, las diferencias entre los servomotores y los motores a pasos se muestran en la siguiente tabla: Servomotores Motores a pasos Cuentan con un sistema de control No poseen sistemas de control con retroalimentación incluido y Requieren de una etapa de potencia sencillo Pueden soportar mayores cargas Mayor precisión en posicionamiento Rango de giro ilimitado Rango de giro limitado Usan motores que funcionan Usan motores de CD y sistemas de mediante la activación de las bobinas engranes para incrementar el torque Los pulsos sólo sirven para energizar El ancho del pulso determina la las bobinas, y éstas mantienen la posición angular del eje posición angular Ilustración 15. Comparación entre un servomotor y un motor a pasos. Fuente: Autores Funcionamiento de un servomotor Todo servomotor posee tres cables (a diferencia de un motor común que solamente posee dos cables). Los tres cables la mayoría de las veces poseen los mismos patrones de color que son fácilmente identificables. Ilustración 16. Normativa de colores para los cables de un servomotor. Fuente: Autores El tipo de color utilizado va a depender del fabricante del servomotor. La necesidad de que exista una señal de control para que los servomotores puedan funcionar, hace que sea imposible que sean utilizados sin recurrir a un circuito de control adecuado. Esto es debido a que, si se quiere que el circuito de control interno funcione, se necesita de una señal de control que sea modulada, para tal efecto se hace uso de una modulación por ancho de pulso o más conocida como PWM. (García, 2016) Diagrama de bloques de un servomotor Ilustración 17. Diagrama de bloques de un servomotor. Fuente: Autores El diagrama de bloques de un servomotor, representa al motor como un sistema. En la imagen se puede observar el circuito electrónico, el cual es el encargado de recibir la señal de tipo PWM y luego poder traducirla en un movimiento del motor DC interno. El eje del motor DC está unido a un potenciómetro, dicho elemento permite que se forme un divisor de voltaje. El voltaje de salida del divisor, varía en función de la posición del eje del motor DC. Ilustración 18. Mecanismo interno de un servomotor. Fuente: Autores De forma similar, cuando el eje de un motor se encarga de modificar la posición del potenciómetro, el voltaje en la terminal central varía igualmente. El potenciómetro permite que el circuito de control electrónico del servomotor, sea capaz de retroalimentarse mediante la posición del motor en un instante de tiempo dado. Esto es lo que se conoce como sistema de lazo cerrado. Ilustración 19. Diagrama de un lazo de control. Fuente: Autores En el caso de los servomotores de rotación continua, estos desacoplan el potenciómetro del eje del motor. Esta modificación impide que el circuito de control pueda leer la posición del eje, lo cual genera un movimiento continuo debido a que el sistema interno no es capaz de cumplir la condición para que el servomotor se detenga. Los servomotores de rotación continua en condiciones normales pueden girar en un sentido o en otro y detenerse. Podemos modificar la velocidad de giro, pero no podremos lograr, que el servo se mueva una determinada cantidad de grados y luego se detenga. Las señales de PWM requeridas para que el circuito de control electrónico son similares para la mayoría de los modelos de servo. Esta señal tiene la forma de una onda cuadrada. Dependiendo del ancho del pulso, el motor adoptará una posición fija. Ilustración 20. Pulsos enviados a un servomotor. Fuente: Autores Las señales que se pueden apreciar en la imagen adjunta son las que permiten que el eje del motor adopte una posición específica. Las señales deben repetirse en el tiempo que está establecido para que el motor mantenga una posición fija. Ilustración 21. Ciclo de trabajo de un servomotor. Fuente: Autores La duración del ciclo de trabajo de un servomotor la mayoría de las veces se mantiene entre unos valores de 15 y 25 milisegundos. De igual manera, en la imagen se muestran trenes de pulsos de 1.5 ms y 2.5 ms respectivamente, sin embargo, esos valores pueden ser modificados según el tipo de aplicación que se esté realizando. El tren de pulsos puede ser generado por un circuito oscilador (como un 555) o por un micro-controlador. Es decir, con Arduino podemos controlar fácilmente un servomotor. De hecho en Arduino existen las librerías para el control de servos de forma nativa. No es necesario descargarlas. (García, 2016) Sensor Ultrasónico HC-SR04 El sensor ultrasónico posee de 4 pines, los cuales son alimentación (Vcc), el pin disipador (Trig), el pin receptor (Echo) y el pin de masa (Gnd). Este sensor por lo general opera a una frecuencia de 40KHz, rango de frecuencia que no es perceptible para el oído humano. (Zona Maker, 2012) Ilustración 22. Sensor HC-SR04. Fuente: Autores Las principales características de este sensor se presentan en la siguiente tabla: Principio de funcionamiento del sensor ultrasónico El sensor HC-SR04 posee un principio de funcionamiento sencillo. Se genera una onda de tipo sónica la cual es captada por el pin emisor (Trig) por medio de un pulso en ese mismo pin. Esta onda cuando se encuentra en el camino algún tipo de obstáculo, dicha onda rebota y se devuelve hacia el sensor nuevamente y es captada por el pin receptor (Echo). (Zona Maker, 2012) Ilustración 23. Principio de funcionamiento del sensor ultrasónico. Fuente: Autores Esta es la manera en cómo funciona el sensor ultrasónico HC-SR04. En el algoritmo de programación se debe incluir un factor muy importante cuando se trabaja con este tipo de sensores, este es la velocidad, o dicho de otra manera, la distancia dividida por el lapso de tiempo que la onda demora en recorrer ese determinado espacio. La velocidad que se utiliza en este caso es la velocidad del sonido (343 m/s) y el tiempo que se calcula es el tiempo que transcurre desde que se genera el disparo de la señal, hasta el momento en que se recibe dicha señal. (Envío de la señal desde el pin Trig o emisor hasta el pin receptor o Echo). (Zona Maker, 2012) Modo de conexión del sensor ultrasónico La conexión de este sensor es sencilla y se presenta en la imagen adjunta. Ilustración 24. Esquema de conexión del sensor ultrasónico. Fuente: Autores Código de programa A continuación se presenta el código en Arduino para poder controlar el sensor ultrasónico HC-SR04. digitalWrite (pulso,LOW); delayMicroseconds(5); digitalWrite (pulso, HIGH) delayMicroseconds (10); En las siguientes instrucciones se obtiene el tiempo (al recibir el "echo") y se aplica la fórmula explicada con anterioridad para obtener valores de distancia: tiempo = pulseIn(rebote, HIGH); distancia = 0.01715*tiempo; 1 /* 2 PRACTICA 1 "SENSOR DE ULTRASONIDOS" 3 Muestra la distancia a la que se encuentran los objetos 4 */ 5 6 #define pulso 9 //define la salida por donde se manda el pulso como 9 7 #define rebote 8 //define la salida por donde se recibe el rebote como 10 8 int distancia; //crea la variable "distancia" 9 float tiempo; //crea la variable tiempo (como float) 10 void setup() 11{ 12 Serial.begin(9600); //inicializa el puerto serie 13 pinMode(pulso, OUTPUT); 14 pinMode(rebote, INPUT); 15} 16 17 18 void loop() 19{ 20 digitalWrite(pulso,LOW); //Por cuestión de estabilización del sensor 21 delayMicroseconds(5); 22 digitalWrite(pulso, HIGH); //envío del pulso ultrasónico 23 delayMicroseconds(10); 24 tiempo = pulseIn(rebote, HIGH); 25 distancia = 0.01715*tiempo; //fórmula para calcular la distancia 26 27 /*Monitorización en centímetros por el monitor serial*/ 28 Serial.print("Distancia: "); 29 Serial.print(distancia); 30 Serial.println(" cm"); 31 delay(3000); } 32 33 Ilustración 25. Presentación de datos en el puerto Serial. Fuente: Autores Modelo Matemático Sistema Barra y Bola El grafico que representa a la planta que se va a implementar, se muestra a continuación: Ilustración 26. Grafico del sistema barra y bola. Fuente: Autores Las variables y su significado se muestran en la siguiente tabla: Nombre de la variable Símbolo M Masa de la bola R Radio de la bola R Posición de la bola D Brazo de palanca G Aceleración de la gravedad L Longitud de la barra J Momento de inercia de la bola α (alpha) Coordenada angular de la barra ϴ (tetha) Angulo del servomecanismo Debido a que la planta barra y bola es inestable y no lineal, se deben aplicar otros métodos para poder hallar la ecuación que gobierna al sistema. Aplicando LaGrange para hallar la ecuación de movimiento de la bola se obtiene lo siguiente: 𝐽 𝑑2𝑟 𝑑𝛼 2 ( 2 + 𝑚) 2 + 𝑚𝑔(sin 𝛼) − 𝑚𝑟 ( ) = 0 (1) 𝑅 𝑑𝑡 𝑑𝑡 El punto de equilibrio se obtiene cuando el ángulo α que forma la barra es pequeño (aproximadamente igual a cero), por lo cual la ecuación (1) linealizada nos queda: 𝐽 𝑑2𝑟 ( 2 + 𝑚) 2 = −𝑚𝑔𝛼 (2) 𝑅 𝑑𝑡 La ecuación que permite relacionar el ángulo de la barra con el ángulo del engranaje se puede expresar de manera lineal de la siguiente manera: 𝑑 𝛼= 𝜃 (3) 𝐿 Sustituyendo (3) en (2) se obtiene la siguiente ecuación: 𝐽 𝑑2𝑟 𝑑 ( 2 + 𝑚) 2 = −𝑚𝑔 𝜃 (4) 𝑅 𝑑𝑡 𝐿 Para hallar la función de transferencia, aplicamos Laplace a la ecuación (4) 𝐽 𝑑2𝑟 𝑑 ℒ [( 2 + 𝑚) 2 ] = ℒ [−𝑚𝑔 𝜃] 𝑅 𝑑𝑡 𝐿 𝐽 2 𝑚𝑔𝑑 ( + 𝑚) 𝑅(𝑠)𝑆 = − 𝜃(𝑠) (5) 𝑅2 𝐿 Una vez aplicada la transformada de Laplace a ambos miembros de la ecuación, se toma en consideración que las condiciones iniciales son iguales a cero, por lo tanto, la función de transferencia desde el ángulo de engranaje 𝜃(𝑠) hasta la posición de la bola 𝑅(𝑠): 𝑅(𝑠) 𝑚𝑔𝑑 1 𝐺1 (𝑆) = =− (6) 𝜃(𝑠) 𝐽 𝑆 2 𝐿 ( 2 + 𝑚) 𝑅 Cálculo de las constantes a utilizar en el modelo matemático de la planta Las constantes que serán utilizadas en el modelado matemático son las siguientes: - Masa de la pelota (m): 2,8g (0,0028 Kg) - Brazo de palanca (d): 0.2m - Aceleración de la gravedad (g): (9.8 m/s^2) - Longitud de la viga (L): 0.4 m - Momento de inercia de la pelota (J): (9.99e^-6 kgm^2) - Radio de la pelota ( R ): ( 0.02 m) Para este trabajo se va a utilizar una pelota de ping-pong. Los valores que se muestran son aproximados, de igual manera, al momento de la implementación física, ciertos valores podrían variar un poco. La función de transferencia una vez reemplazados todos los valores anteriores, queda de la siguiente manera: 𝑅(𝑠) 0.493 𝐺(𝑆) = = 𝜃(𝑠) 𝑠2 Circuito de control de la planta. Ilustración 27. Esquemático del circuito externo. Fuente: Autores El circuito de control de la planta, tal y como se aprecia en la imagen, está conformado por dos pulsadores, uno de marcha y otro de paro del sistema. De igual manera se ha incluido los Led que indican el estado de la planta (marcha de color verde) (paro de color rojo) los cuales son los colores básicos en cualquier tablero de control industrial. También se puede apreciar las respectivas resistencias de protección de los Led (1KΩ) así como para los pulsadores (10KΩ). Adicional se tiene el conector de entrada para la fuente de alimentación, la cual es de 5V en corriente continua. Circuito de fuerza de la planta Ilustración 28. Esquemático del circuito de Fuerza del proyecto. Fuente: Autores El circuito de fuerza de la planta, como se puede apreciar en la imagen, está conformado por la tarjeta de control (Arduino Uno), el sensor ultrasónico HC- SR04 que permite obtener la distancia a la cual se encuentra la pelota en la barra y el servomotor que sirve como actuador de la planta. Adicional se tiene el conector de entrada para la fuente de alimentación, la cual es de 5V en corriente continua. Dicha fuente de alimentación es solamente para el servomotor, ya que aunque el sensor ultrasónico también puede ser alimentado desde la fuente de tensión, puede presentarse errores pequeños en la medición Diseño mecánico de la maqueta Ilustración 29. Diseño de la Planta. Fuente: Autores. En la imagen adjunta se tiene el diseño final de la planta de control de barra y bola. Tal como se puede apreciar, toda la estructura está construida a base de aluminio (material que es utilizado para las ventanas, puertas y demás elementos). La polea fue construida a base de una rueda de lata, en la cual se realizaron los respectivos agujeros para poder fijar el servomotor así como el brazo de palanca que permite mantener fija la barra horizontal. Toda la estructura se encuentra sobre una base de manera, para mantener fija la planta y darle mejor presentación visual. Listado de materiales a utilizar en la maqueta En la siguiente tabla se muestra el listado de materiales a utilizar, la cantidad y el costo de los mismos. Cabe recalcar que la lista de materiales que se presentan en la tabla, son los elementos con los que inicialmente se desarrolló el prototipo del sistema; sin embargo, durante la realización real del proyecto, puede cambiarse algún material por otro, ya sea por factor económico o por calidad. Así mismo, también puede que se adquiera más de un elemento del mismo tipo por seguridad. Razón por la cual, el precio final podría variar un poco del que esta mostrado al final de la tabla. Variación de la variable manipulada para producir el efecto de control de su sistema. El algoritmo de control de la planta ha sido realizado mediante la interfaz IDE de Arduino. Mediante esta misma plataforma de programación se realizara la programación para que el dispositivo pueda ser comunicado con Matlab. La variación de la variable manipulada se realizara mediante el elemento de control, que en este caso será el servomotor, el cual enviara la señal de entrada a la planta (que en este caso corresponde a la variable manipulada), con el objetivo de ejecutar un cambio en la variable de control del sistema (que en este caso corresponde a la posición de la bola sobre la barra). El servomotor se encargara de mantener a la variable de control en el valor definido por el usuario (señal de referencia del sistema) Comunicación entre el hardware y el software de la planta de control. En la planta a desarrollarse sobre un sistema de control de estabilización de una bola en un balancín, se va a utilizar el software Matlab y Arduino para controlar el estado de la planta; enviar y receptar los datos respectivamente. El servomotor va a ser controlado por una señal PWM que va a ser suministrada por la tarjeta Arduino, la cual también está a cargo del sensor, que se encontrara conectado en un pin digital del mismo. A través de un código desarrollado específicamente para mantener un control perpetuo del servomotor y sensor, se busca controlar el sistema de control de estabilización de bola en un balancín. En el entorno de Matlab se vigilara y regulara a la planta en las secciones de control de la planta, como lo es su PID, ondas de entrada y salida en el lazo de control. Se usara un puerto COM en el Arduino según se requiera en la computadora a usar, por lo mismo no se detalla el número a usar, puesto que varía según la computadora usada. En dicho puerto COM se enviara y receptara las señales del servomotor y sensor, también se enviaran datos al monitor serial. A través de este puerto COM Matlab obtendrá los datos necesarios para realizar los gráficos necesarios y analizarlos. De esta manera se obtiene una forma más amigable de controlar y realizar cualquier tipo de modificación de las constantes del sistema de la planta El siguiente diagrama muestra de forma clara, el proceso de comunicación entre Matlab, Arduino y los diversos elementos que se han utilizado en el proyecto Matlab Planta (Sistema de Sensor Servomotor Control Ball Ultrasónico and Beam) Monitor Serial Gráficos de simulación de su planta en lazo abierto y lazo cerrado. Planta simulada en lazo abierto Primera simulación en lazo abierto, tomando como señal de referencia 10cm. Ilustración 30. Curva de la Planta en Matlab. Fuente: Autores Segunda simulación en lazo abierto, tomando una señal de referencia de 20cm. Ilustración 31. Curva de La Planta en lazo abierto. Fuente: Autores Tercera simulación en lazo abierto, tomando una señal de referencia de 30cm. Ilustración 32. Curva de La Planta en lazo abierto. Fuente: Autores Planta simulada en lazo cerrado Primera simulación en lazo cerrado, tomando una señal de referencia de 10cm. Ilustración 33. Curva de Estabilización de la Planta. Fuente: Autores Segunda simulación en lazo cerrado, tomando una referencia de 20cm. Ilustración 34. Curva del lazo cerrado de la Planta. Fuente: Autores Tercera simulación en lazo cerrado, tomando una referencia de 30cm. Ilustración 35. Curva del lazo cerrado de la Planta. Fuente: Autores Calibración del controlador PID con Matlab Para realizar la calibración del controlador y hallar las constantes kp, ki, kd, se procede en Matlab, se procede de la siguiente manera: 1. En la ventana de comandos de Matlab, colocamos tanto el numerador como el denominador de nuestra función de transferencia. A continuación mediante el comando tf (expresión 1, expresión 2) convertimos los datos anteriores en una función de transferencia en el dominio de ‘s’. 2. Una vez hecho esto, escribimos el comando sisotool (variable), el cual nos permitirá empezar con la calibración de nuestro controlador. Ilustración 36. Herramienta Sisotool empleada en la planta. Fuente: Autores 3. Luego de escribir el comando sisotool, se abrirá la siguiente ventana, la cual contiene una series de sub-menús, de los cuales solo haremos uso de las secciones Compensator Editor, Graphical Tuning y Analysis Plots. Ilustración 37. Interfaz de Sisotool. Fuente: Autores 4. La sección de Analysis Plot nos permite verificar el comportamiento de nuestra planta, así como también poder verificar si se encuentra en estado estable o inestable. Para poder observar la gráfica de la planta, seleccionamos Step en la sección Plot Type; esta opción nos muestra una respuesta a pasos del sistema. Luego marcamos la casilla número uno y finalmente se hace clic en “Show Analysis Plot” Ilustración 38. Parámetros de la Gráfica de la Planta. Fuente: Autores. 5. La ventana que aparece en la imagen adjunta muestra la respuesta actual de nuestra planta ante una entrada a pasos. Como puede verse, el sistema es totalmente oscilatorio e inestable. Con ayuda del PID se conseguirá darle estabilidad al sistema. Ilustración 39. Respuesta de la Planta con una Entrada Step. Fuente: Autores 6. Nos dirigimos a la pestaña Graphical Tuning. En este apartado disponemos de 5 gráficos, de los cuales solamente haremos uso del primero (PLOT 1), etiquetado con el nombre de Root Locus (Lugar de las raíces). Los otros gráficos debemos dejarlos por defecto en “None”, puesto que no se utilizaran. A continuación se da clic en la sección “Show Design Plot” y aparecerá otra ventana que contendrá el Root Locus (el grafico que se dejó activado por defecto). Ilustración 40. Parámetros de la Planta acerca de la compensación. Fuente: Autores. 7. En la ventana de Root Locus como puede verse aparecen unos pequeños cuadros de color rosa, esos representan los polos de lazo cerrado de nuestra función de transferencia. El objetivo es mover dichos cuadros a lo largo de la trayectoria marcada por la línea de color azul, para tratar de estabilizar nuestra planta (bajar el sobre impulso y el tiempo de establecimiento) ya que idealmente se requiere que estos dos valores sean lo más pequeño posible. Ilustración 41. Ubicación de los Polos y Ceros. Fuente: Autores 8. Sin embargo, antes de realizar el movimiento de los polos, debemos colocar los elementos que forman parte del PID (dos ceros y un polo). Para esto se tiene dos opciones, hacerlo directamente de la ventana de Root Locus o mediante la pestaña “Compensator Editor”. En este caso haremos uso de la segunda opción. 9. En la sección Compensator Editor, en la sección Dynamics, haciendo clic derecho agregamos los ceros y polos reales que necesita nuestro controlador PID, tal como puede apreciarse en la imagen adjunta. A su vez en la parte superior donde dice Compensator, no podemos colocar valores al azar, debemos siempre trabajar con un rango de valores dependiendo del tipo de planta que estemos configurando. En nuestro caso, como el servomotor que se va a utilizar trabaja en un rango de valores de entre 4.8V y 6V, colocamos un valor entre ese rango. Ilustración 42. Inserción de Polos y Ceros en el compensador. Fuente: Autores. 10. Una vez agregados los datos anteriormente descritos, se procede a colocar los valores de los ceros y polos para poder configurar nuestro PID, teniendo en cuenta que el polo debe ubicarse siempre en el origen. A continuación se comienza a variar los valores de los ceros del controlador, sabiendo de antemano que para que el sistema sea estable, estos ceros deben ubicarse del lado negativo del eje de los reales. Ilustración 43. Inserción de la ecuación de la planta. Fuente: Autores. 11. Con los valores actuales que se colocan por defecto al momento de seleccionar los polos y ceros, la respuesta del sistema que antes era completamente oscilatoria, ahora presenta la siguiente forma; como puede verse ha mejorado considerablemente la estabilidad. Hacemos clic derecho sobre la gráfica y en las características, marcamos “Peak Response” (el cual nos muestra el sobre-impulso máximo de la planta) y también “Settling Time” (que muestra el tiempo de estabilización de la planta). Ilustración 44. Elección de los parámetros de la gráfica del proyecto. Fuente: Autores 12. Luego de probar diferentes valores de ceros y estableciendo el valor del compensador en “6”, se logró hallar los valores que mantienen el sistema lo más estable posible. Tal como se aprecia en la imagen adjunta, los ceros se ubican en -0.13 y -0.81 respectivamente; con esto se consigue por definición que la planta sea estable. Ilustración 45. Compensador del Proyecto. Fuente: Autores 13. Abrimos nuevamente la ventana de Analysis Plot y nos damos cuenta que ahora la respuesta a pasos de nuestra planta está mucho más estable en comparación con los dos gráficos anteriores. Como se puede ver también, gracias a las características que incluimos anteriormente se puede ver más detalles de la respuesta a pasos, como por ejemplo que el tiempo de establecimiento es aproximadamente de 0.7 segundos, el sobre-impulso es de aproximadamente 2.86% y la amplitud máxima es de 1.03 Ilustración 46. Respuesta de la Planta con una Entrada Step. Fuente: Autores 14. De igual manera como se puede apreciar, si nos dirigimos a la ventana del Root Locus, nos damos cuenta que el grafico original ha cambiado de apariencia, esto se debe a que la planta ya se encuentra estabilizada, y los polos y ceros han sido reubicados de diferente manera. Ilustración 47. Calibración de los Polos y Ceros. Fuente: Autores 15. En la ventana principal, damos clic en file, seguidamente en “export” y aparecerá la ventana que se muestra en la imagen adjunta. Seleccionamos donde dice “Compensator C” y finalmente damos clic en “Export to Workspace”. De esta manera podemos exportar los valores de nuestro compensador para posteriormente poder hallar los valores de las constantes del PID. Ilustración 48. Elección del Compensador en Matlab. Fuente: Autores 16. Nos dirigimos a la ventana de comandos de Matlab, digitamos la letra “C” mayúscula y como se aprecia en la imagen, aparece una función en el dominio de la frecuencia, a partir de la cual podemos calcular las constantes del PID Ilustración 49. Ventana de Comandos de Matlab. Fuente: Autores. 17. Rompiendo paréntesis, y por medio de analogía se pueden encontrar los valores de las constantes del controlador de la planta. 56.98(𝑠 + 0.13)(𝑠 + 0.81) 𝑠 56.98(𝑠 2 + 0.94𝑠 + 0.10) 𝑠 56.98𝑠 2 + 53.56𝑠 + 5.69 𝑘𝐷 𝑠 2 + 𝑘𝑃 𝑠 + 𝑘𝐼 = 𝑠 𝑠 18. Finalmente las constantes quedan definidas de la siguiente manera: 𝑘𝐷 = 56.98 𝑘𝑃 = 53.56 𝑘𝐼 = 5.69 Proceso de construcción de la planta En lo que corresponde al proceso de construcción de la planta, las diferentes partes han sido elaboradas de la siguiente manera: La polea que permite el movimiento del actuador (servomotor) ha sido construida ya que no se pudo encontrar alguna elaborada previamente. Para su elaboración se hizo una rueda de metal, la cual a su vez posee un agujero en el centro para permitir la colocación del servomotor y un agujero en el extremo, el cual permitirá mantener fijo el brazo de palanca para que la barra pueda ser balanceada de un lado hacia el otro. Ilustración 50. Eje del Servomotor que mueve al balancín. Fuente: Autores El servomotor se encuentra fijo gracias a una base construida con madera, la cual a su vez está sujeta mediante tuercas y tornillos por la parte inferior. De igual manera, el servomotor se encuentra fijo por medio de tornillos colocados en la base de madera. Ilustración 51. Estructura del Servomotor. Fuente: Autores. Para realizar la retroalimentación del sistema se utilizó un sensor ultrasónico (el modelo ya fue descrito anteriormente). El sensor se encuentra fijo a la barra horizontal por medio de una base de cartón, en la cual se ha colocado el sensor, de tal manera que pueda permanecer lo más fijo posible mientras el sistema se encuentra en movimiento. Ilustración 52. Posición del Sensor en la Planta. Fuente: Autores. La barra horizontal sobre la cual se moverá la pelota y la barra vertical que sirve de soporte a la anterior se mantienen juntas por medio de un eje, el cual fue creado mediante un tornillo y un pequeño ángulo de metal, de tal manera que se forma un balancín entre las dos estructuras Ilustración 53. Mecanismo de desplazamiento del balancín. Fuente: Autores. La barra vertical que sirve de soporte, está fijada por medio de otro ángulo de metal en la parte inferior, además de un grupo de tuercas y tornillos que aseguran su estabilidad en la base de madera, tal como puede apreciarse en la imagen adjunta inferior. Ilustración 54. Vista de la Sección inferior de la planta. Fuente: Autores. El circuito de control, tal y como se mencionó anteriormente está conformado por pulsadores y los respectivos led que indican los estados de funcionamiento. Todo está controlado mediante el controlador Arduino. Ilustración 55. Vista aérea de la Planta, parte de control. Fuente: Autores. Finalmente toda la estructura fue colocada en una base de madera, tal y como puede apreciarse en la imagen adjunta. Ilustración 56. Vista Frontal de la Planta finalizada. Fuente: Autores Explicación del software de control utilizado en la planta Inicialmente todo el software de control fue programado directamente en Arduino, sin embargo luego se tuvo que realizar nuevamente el algoritmo de control puesto que se pidió que fuera realizado en Simulink de Matlab, por tal motivo se presentara tanto el primer programa como el que fue modificado posteriormente. 1. ALGORITMO DE CONTROL REALIZADO TOTALMENTE EN ARDUINO En primer lugar, agregamos las librerías que se van a utilizar en el programa: La librería “Servo.h”, permite el control del actuador del sistema (servomotor analógico en nuestro caso). La librería “PID_v1.h”, es una librería que contiene una serie de instrucciones las cuales nos permitirán el ingreso y la inclusión de las constantes del PID de una manera más sencilla. La librería “NewPing.h” se utiliza para el manejo del sensor ultrasónico HC-SR04 de una manera más fácil, sin tener que utilizar las formulas y demás comandos que fueron explicados en el marco teórico. Ilustración 57. Librerías utilizadas en el programa de control. Fuente: Autores Una vez agregadas todas las librerías, se procede a declarar todos los pines que vayan a ser utilizados en el algoritmo de control. Los pines cinco y seis del Arduino serán destinados para las entradas Echo y Trigger del sensor ultrasónico respectivamente. Se define una constante con el nombre de MAX_DISTANCIA y se la setea en un valor de 35, esta constante indica el rango máximo de lectura que va a llevar a cabo nuestro sensor. Se declara el pin número 10 para el pulsador de marcha del sistema. El pin numero 11 será utilizado para el pulsador de paro del sistema Finalmente se incluyen los Led que indicaran el estado de la planta conforme se presione cada pulsador. Estos pines son el número 12 y el número 13 y corresponden a los indicadores de marcha y paro respectivamente. Ilustración 58. Pines utilizados para cada componente. Fuente: Autores Ahora se procede con la declaración de las constantes y variables de la planta de control. El pin que se encargara de manejar el servomotor se declara en el número 9, ya que este es un pin del tipo PWM, necesario para el manejo de servomotores, puesto que como ya se vio en el marco teórico, este dispositivo funciona mediante pulsos. Se definen también las constantes del PID del tipo flotante, ya que este tipo de datos admite números reales (incluyendo los decimales). Los valores de cada constante pueden verse en la imagen adjunta. Se declaran 3 variables de tipo double, las cuales corresponden al Setpoint o referencia, la salida del actuador y la entrada del sensor. El tipo de dato double es similar a un dato de tipo flotante, con la diferencia que el double admite una cantidad mucho más grande. La variable de tipo flotante “Salida” es aquella que se incluirá en la instrucción de escritura del servo para posicionar a este último. También se declaran variables de tipo entero (int) para los respectivos pulsadores de control. Adicionalmente se declara una variable de tipo bandera (flag) inicializada en cero, la cual servirá como apoyo en el control del sistema de una manera más sencilla. Ilustración 59. Constantes y Variables del sistema. Fuente: Autores Ahora se procederá al uso de cada una de las librerías que fueron declaradas al inicio del programa: NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCIA); Esta línea de código permite la inicialización del sensor ultrasónico, como vemos recibe tres argumentos de entradas, los cuales son los respectivos pines del sensor y la distancia máxima que fue declarada para ejecutar las mediciones. PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); La siguiente línea de código corresponde a la inicialización del PID, como vemos se incluyen los datos de entrada, salida, señal de referencia, así como las tres constantes del controlador para efectuar los respectivos cálculos. Servo myServo; Finalmente se da un nombre al objeto servo con la finalidad de facilitar la programación. Ilustración 60. Uso de las librerías incluidas en el programa. Fuente: Autores La siguiente parte del código corresponde a la creación de una función para la lectura de la distancia por parte del sensor ultrasónico. La instrucción ping_median(valor) se trata de un filtro de tipo digital, el cual toma lecturas dependiendo del valor ingresado y devuelve el promedio de esas medidas efectuadas. Se recomienda no poner un retraso de tiempo tan pequeño porque el sensor no podría funcionar adecuadamente. Ilustración 61. Función para la lectura de la distancia. Fuente: Autores La siguiente función que se ha creado permite la visualización del setpoint o señal de referencia, la lectura del sensor y la salida del actuador. Simplemente lo que hace la función es recibir los datos de las variables antes mencionadas y posteriormente enviarlas por el monitor serial para que el usuario pueda visualizarlas y verificar el comportamiento de la planta. Ilustración 62. Función para la lectura de datos en el monitor serial. Fuente: Autores Lo siguiente que sigue es la función del setup, que como se sabe, contiene el modo de los pines y demás elementos necesarios para el funcionamiento del código de programación. Lo primero que se hace es iniciar la comunicación serial con el dispositivo y asignarle una velocidad de transmisión, la más típica que se utiliza es 9600. Por medio de la siguiente instrucción se asigna el pin declarado anteriormente al objeto nombrado como “myServo”. myServo.attach(servoPin); Con las instrucciones “pinMode” se indica el tipo de dato que manejara cada una de las variables utilizadas para el manejo y visualización por parte del usuario. Como puede verse, los pulsadores son de tipo entrada mientas que los Led son de tipo salida. pinMode(MARCHA,INPUT); pinMode(PARO,INPUT); pinMode(LEDM,OUTPUT); pinMode(LEDP,OUTPUT); Finalmente se indica por medio del comando myPID.SetMode(AUTOMATIC); Que de forma automática se realizaran los cálculos del controlador en base a los datos ingresados. myPID.SetOutputLimits(-30,30); Con la instrucción anterior se definen los límites en los cuales trabajara el servomotor. Estos límites deben de ser calibrados lo mejor que se pueda para evitar que el actuador se mueva más de lo deseado y genere inestabilidad al sistema total. Ilustración 63. Función setup del sistema. Fuente: Autores A continuación se procede con la función void loop, la cual contendrá las instrucciones principales que se ejecutaran de manera cíclica durante todo el tiempo que estas se mantengan activas. En primer lugar se almacena el estado de los pulsadores de marcha y paro en una variable específica para su uso posterior. Adicionalmente se coloca el setpoint o señal de referencia en el valor en el cual trabajara en nuestra planta de control. Ilustración 64. Función loop del sistema. Fuente: Autores La siguiente instrucción es esencial para que el resto del programa pueda funcionar adecuadamente. Se coloca un condicional “if” el cual detectara cuando el pulsador de marcha este presionado y a su vez el pulsador de paro no se encuentre accionado. Si esta condición es verdadera, se ingresa dentro del argumento de la condición y se le asigna el valor de uno a la variable “flag” que inicialmente fue inicializada en cero. Esta última variable se le conoce como bandera. La cual permite la realización del algoritmo de control de una manera más sencilla, ya que según los cambios de valor que experimenta esta variable, se la utiliza para ejecutar otras acciones. Ilustración 65. Uso de la variable tipo bandera. Fuente: Autores Una vez que la variable tipo bandera ha cambiado de valor, se la utiliza dentro de otro condicional if. Se verifica si la bandera ha tomado el valor de uno. Si esto es verdadero, se ingresa a las instrucciones dentro del condicional: Se escriben los estados de cada Led indicador, como inicialmente se ha pulsado el botón de marcha del sistema, por lógica debe mantenerse encendido el Led de color verde que en este caso indica inicio, mientras que el Led de color rojo se mantiene apagado, ya que este es el que indica paro del sistema. La siguiente línea de código: Input = readPosition(); Pertenece a la librería del sensor ultrasónico. Esta instrucción lo que hace es almacenar en la variable Input, las lecturas de posición que vaya realizando el sensor. La línea de código siguiente: myPID.Compute(); Pertenece a la librería del controlador PID, lo que hace es calcular de forma automática las relaciones del PID que deben agregarse al programa, haciendo uso de todos los datos que ya fueron ingresados anteriormente. A continuación se expresa: Salida=Output; Lo cual indica que en la variable salida, se van a almacenar los valores de la variable Output, los cuales pondrán en funcionamiento el actuador del sistema. La siguiente línea de código: myServo.write(Salida); Pertenece a la librería del servomotor, lo que hace es permitir que el servomotor se mueva solamente en el rango establecido por la variable denominada salida, la cual a su vez depende de los valores calculados por el PID. Gracias a esto se logra que el servomotor se mueva de la manera deseada. La última línea de código dentro del condicional: printData(Setpoint, Input, Output); Lo que hace es mostrar por medio del monitor serial, los valores del Setpoint, la entrada y la salida del sensor. De esta manera el usuario puede verificar si la planta está funcionando adecuadamente. Ilustración 66. Funcionamiento mediante el pulsador de marcha. Fuente: Autores Por último se analizara el funcionamiento de la siguiente condición: La línea de código: if (estado_marcha==LOW && estado_paro==HIGH) Verifica si se ha presionado el pulsador de paro del sistema, si esto es verdad se ingresa dentro de las instrucciones del condicional. Se vuelve a colocar el valor de la bandera en cero; por medio de esto, las instrucciones anteriores ya no tienen efecto sobe la planta. Finalmente se apaga el Led verde de marcha, y se enciende el Led rojo de paro del sistema. La planta se mantendrá en ese estado hasta que el usuario vuelva a presionar nuevamente el botón de marcha, repitiendo nuevamente el ciclo anterior. Ilustración 67. Funcionamiento mediante el pulsador de paro. Fuente: Autores 2. ALGORITMO DE CONTROL REALIZADO EN ARDUINO Y SIMULINK De igual manera que en el caso anterior, se empieza a colocar las librerías que se utilizaran a lo largo del programa. Como anteriormente ya se presentó para que sirven algunas líneas de código, ahora no se mostraran tantos detalles. Se incluyen las librerías para el control del servomotor y el manejo del sensor ultrasónico HC-SR04 #include <NewPing.h> #include<Servo.h> Se definen las constantes para los pines del sensor ultrasónico, el puerto digital donde se encontrara el servomotor y la distancia máxima que va a ser leída por el sensor ultrasónico. Con esta distancia máxima, cualquier lectura más allá de ese valor, no será detectada por el sensor. #define TRIGGER_PIN 5 #define ECHO_PIN 6 #define MAX_DISTANCIA 35 const int servoPin = 9; Ilustración 68. Declaración de constantes y librerías. Fuente: Autores A continuación se procede a utilizar las librerías declaras inicialmente con su sintaxis correspondiente, para conocer dicha sintaxis se puede recurrir a los programas ejemplo que vienen incluidos o simplemente se puede acceder al archivo de cabecera de la librería. Para la librería del sensor ultrasónico, como argumentos de entrada se colocan los puertos donde se declararon los pines del ultrasónico, así como la máxima distancia que será capaz de leer. Con la librería del servomotor, se declara un objeto con el nombre Servo y a continuación se le designa un nombre al motor para poder trabajar con dicha variable posteriormente NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCIA); Servo myServo; Luego se crea una librería para leer la posición por parte del sensor. Esta librería será de tipo flotante y no tendrá datos de entrada Se genera un retardo de tiempo, a continuación se crea una variable de tipo entero en la cual se van a almacenar las lecturas de los pulsos generados por el sensor. Se establecerá la lectura con un valor máximo de 5 pulsos en cada lectura. Finalmente la función retorna la variable con el valor de la distancia almacenado, pero dividido para un valor constante de 57, este valor viene por defecto indicado en la librería del propio sensor ultrasónico. float readPosition() { delay(40); int uS = sonar.ping_median(5); return uS / 57;} Ilustración 69. Función para el control de la distancia. Fuente: Autores En la función del setup, lo que se hace es simplemente establecer la comunicación con el puerto serial a una velocidad determinada (la más utilizada es de 9600) y declarar el pin del servomotor. void setup() { Serial.begin(9600); myServo.attach(servoPin); } Ilustración 70. Función setup. Fuente: Autores Se declaran dos variables de tipo byte y se las inicializa en cero, estas variables serán utilizadas para establecer la comunicación y enviar los datos desde el Arduino hacia el Matlab. byte angle = 0; byte sensor = 0; Luego en la funcion del loop, se indica que la variable sensor será igual a las lecturas efectuadas por el ultrasónico. Esta variable es enviada con los datos para ser visualizada en el Simulink. sensor = (byte)readPosition(); Serial.write(sensor); Finalmente se crea una condición en la cual se verifica si la comunicación serial entre ambos programas se ha efectuado De ser verdadero, se guarda el valor de posición en la variable angle y este mismo valor se escribe como la posición que el servomotor ira generando durante el paso del programa. if(Serial.available()){ angle = Serial.read(); myServo.write(angle);} Ilustración 71. Cuerpo principal del programa. Fuente: Autores Ahora se procederá con la revisión del programa realizado en Simulink. En primer lugar se empiezan a colocar los bloques necesarios para establecer la comunicación serial entre el Arduino y Simulink. Se necesitan 3 bloques, el bloque de Configuración Serial para indicar el tipo de puerto en el cual se comunicaran los dispositivos, así como la velocidad de transmisión a utilizar. Y los bloques de Envío y Recepción Serial, a través de los cuales como su nombre lo indica, se enviaran y recibirán los datos entre ambas plataformas de comunicación. Ilustración 72. Bloques para la comunicación Serial. Fuente: Autores Para poder configurar el bloque serial, se da doble clic en él, a continuación se abrirá la ventana que aparece en la siguiente imagen. Como puede verse en esta ventana se tendrá que elegir el puerto COM que se encuentre disponible en ese momento, así como la velocidad de transmisión de datos. Ilustración 73. Configuración del bloque de comunicación Serial. Fuente: Autores El siguiente bloque que debe de utilizarse es el bloque de conversión, tal como se observa en la imagen siguiente. Ilustración 74. Bloque de conversión de datos. Fuente: Autores Para realizar la respectiva configuración de este bloque, se da doble clic sobre el bloque y se selecciona el uint8 como tipo de dato de salida. Este es un tipo de dato que genera un entero sin signo de 8 bits, el cual puede tomar valores desde 0 hasta 255. Ilustración 75. Configuración del bloque de conversión. Fuente: Autores El siguiente bloque que se coloca es el bloque del PID Ilustración 76. Bloque de PID. Fuente: Autores Ahora se procede con la configuración del bloque del controlador PID. En este caso se va a hacer uso de un controlador PID pero de tipo discreto, las constantes kp, ki, kd, son diferentes a las que se calcularon en el apartado anterior con la herramienta sisotool, esto es porque dichas constantes son solo válidas para un controlador de tipo continuo. Para hallar las constantes adecuadas se puede aplicar las fórmulas de discretizacion (aunque muchas veces no es útil) o simplemente usar el método de prueba y error, lo cual muchas veces es más convenientes. Ilustración 77. Configuración del PID discreto. Fuente: Autores Nos dirigimos a las pestana PID advanced, en la cual vamos a calibrar el saturador para nuestra planta de control. En primer lugar, nos valemos del IDE de Arduino y generamos un programa para poder verificar en que ángulo la viga del sistema se mantiene estable, esta posición se consigue con un ángulo de 70 grados. Siguiendo con las pruebas, se llegó a la conclusión de que el servomotor se moverá 85 grados hacia un lado y 55 grados hacia el otro lado. Esto se hace con la finalidad de que el servomotor no genere movimientos bruscos y por ende llegue a causar algún tipo de inestabilidad en el sistema. Por esta razón se colocan los límites del saturador entre 15 positivo y 15 negativo. Ilustración 78. Calibración del saturador. Fuente: Autores Se coloca un bloque con un valor constante de 70 y un sumador entre este bloque constante y el bloque del PID, de esta manera puede entrar en funcionamiento el saturador que ha sido configurado. Ilustración 79. Configuración del saturador. Fuente: Autores Finalmente se colocan pantallas de visualización para poder ver los valores necesarios que permiten verificar que la planta está funcionando de la manera que se espera. Estos datos son: -Señal de Error -Distancia actual del objeto -Angulo de inclinación Se coloca también un multiplexor (elemento de color negro en la imagen) y se configura para poder verificar varias graficas al mismo tiempo. El bloque Scope es el que permite la visualización de las gráficas que recibe a la entrada del multiplexor. La planta final elaborada en Simulink, queda definida tal como se presenta en la imagen adjunta. Ilustración 80. Programa de control en Simulink. Fuente: Autores Conclusiones 1. Los objetivos planteados al inicio del informe fueron cumplidos de manera satisfactoria. Se logró implementar mediante hardware y software, una planta de procesos para verificar la acción de un controlador tipo PID. 2. Mediante la realización de este modelo a escala de una planta de control, se conseguirá que los futuros estudiantes de materias afines al control de procesos puedan tener un modelo experimental para verificar los datos teóricos. 3. Los controladores PID son un tipo de mecanismo de control por realimentación, el cual calcula la desviación o error entre un valor medido y el valor de referencia, para aplicar una acción correctora que ajuste el proceso. 4. Matlab es una herramienta indispensable para la calibración de controladores y simulación de comportamientos de diferentes plantas de control. Este software brinda una serie de posibilidades para poder realizar el software de control y probarlo antes de proceder a su elaboración física. Recomendaciones 1. Antes de utilizar definitivamente un dispositivo (por ejemplo un sensor), se deben realizar las respectivas pruebas de funcionamiento de dichos elementos y en base a esto elegir el que sea más adecuado para el trabajo que se vaya a realizar. 2. Es recomendable trabajar con estructuras elaboradas con aluminio, ya que este elemento es más liviano y es menos propenso a sufrir por los efectos de oxidación. Se menciona esto porque inicialmente se trabajó con metal y esto resulto ser de gran peso y se oxidaba por varios factores, lo cual atentaba con la vida útil de la estructura. 3. Realizar un diseño mecánico sobre la posible forma física que tendrá la estructura que se pretenda implementar, esto con el fin de evitar gastar gran cantidad de materiales y evitar que el diseño no sea el que se estaba esperando. 4. Tener conocimiento sobre todas las herramientas que se vayan a utilizar y realizar investigaciones sobre el tema de trabajo para desarrollar un trabajo eficiente y sin inconvenientes. Aportes del Proyecto Realizado Con la realización del proyecto de la planta de control, el valor agregado que se le dio al mismo es la elaboración de una pequeña función en Matlab para poder visualizar la gráfica del comportamiento del sistema en tiempo real. Dicha función fue elaborada en el Script del propio Matlab. Además se elaboró el programa de control con la herramienta Simulink, de la manera que se observó anteriormente. Otros de los valores agregados fue la utilización del sensor ultrasónico HC-SR04 pero a través de una librería que permite que este funcione como un sensor de 3 pines (este recibe el nombre de sensor ultrasónico PING). Finalmente, se le agregaron pulsadores de marcha, paro y sus respectivos Led indicadores (verde y rojo) en la placa de circuito, con el fin de obtener una mejor visualización. Por parte de los miembros del grupo, los conocimientos adicionales que se adquirieron fueron los siguientes: • Como linealizar los sistemas de control no lineales. • Crear una interface en tiempo real con el sistema de control. • Ubicar de forma correcta los polos y ceros dentro del sisotool. • Método de prueba y error en la obtención del compensador. • Elaborar el sistema de control de la planta en Simulink. • Utilizar la opción de saturación de Simulink. Bibliografía Arca, P. (2015). Construcción y diseño del sistema de control de posición de una esfera sobre una plataforma móvil. Recuperado de: https://www.iit.comillas.edu/pfc/resumenes/557d6754a1fda.pdf Bolivar, C. (2014). 3.28 Control robusto del sistema de bola y viga. Recuperado de: http://www.laccei.org/LACCEI2014- Guayaquil/RefereedPapers/RP175.pdf Bruce, J. (2010). Mecanismo barra y bola. Recuperado de: https://users.soe.ucsc.edu/~jbruce/webfiles/BPFinalReport.pdf Campos, F. (2012). Sistema de Control Ball and Beam. Recuperado de: http://www.urp.edu.pe/pdf/ingenieria/electronica/CAP- 2_Taller_de_Electronica_IV_c.pdf Claure, T. (2014, 2 11). Control de la posicion de una bola sobre una viga.Recuperado de: http://www.eudim.uta.cl/mechatronics/publications/Torrico-Claure- evic2014.pdf Di Prieto, S. (2012). Control de un sistema Ball and Beam mediante sensores. Recuperado de: http://www.dsi.fceia.unr.edu.ar/downloads/infoelectronica/Microsoft%20 Word%20-%20informe_proyecto.pdf Espersson, M. (2010). Vision Algorithms for ball on beam and plate . Recuperado de: http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=884745 8&fileOId=8859300 Garcia, M. (2013). Dinamica de Sistemas. In M. Garcia, Dinamica de Sistemas (p. 298). Barcelona. Hamed, B. (2010). Application of a Labview for Real-Time Control of Ball and Beam System. Recuperado de: http://www.ijetch.org/papers/155- T287.pdf Knapp, K.(2015). Final Project Ball Balancing Beam. Retrieved from http://dnahmias.com/docs/E58FinalProject-KKDNDK.pdf Lin, M. (2016, 11 11). Ball and beam control system project. Recuperado de: https://web.njit.edu/~ml383/Project%20Report.pdf Perez, M (2012).Sistema de balancín y pelota: Principios Básicos. Recuperado de: http://www.control-systems- principles.co.uk/whitepapers/spanishwp/04BallandBeam1SP.pdf Meneses. (2013). Diseño de un módulo educativo para el control del sistema Bola y Varilla. Recuperado de: http://tesis.pucp.edu.pe:8080/repositorio/bitstream/handle/123456789/48 95/MENESES_PAVEL_DISE%C3%91O_MODULO_EDUCATIVO_CON TROL_SISTEMA_BOLA_VARILLA.pdf?sequence=1&isAllowed=y Mesa, D. (2012). Ball and Beam. Recuperado de: http://es.slideshare.net/danny3m/ball-and-beam Oporto, M. (2015). Control PID barra y bola con Arduino. Retrieved from https://repositorio.unican.es/xmlui/bitstream/handle/10902/6366/374763. pdf?sequence=1 Otaola, D. (2015). Control de la posición de una esfera sobre una plataforma. Recuperado de: https://www.iit.comillas.edu/pfc/resumenes/557d6754a1fda.pdf Pecker, E. (2010). Sensado basado en vision para el sistema Ball and Beam. Recuperado de: http://www.sase.com.ar/2011/files/2011/02/32- Sensado_basado_en_vision_para_control_de_Ball_Beam.pdf Pelton, C. (2012). Application for Real-Time Control of Ball and Beam System . Recuperado de: http://thl.okstate.edu/Handout_BallBeamOpt.pdf Perez, M. (2013). Control de un sistema Ball and Beam. Recuperado de: http://www.control-systems- principles.co.uk/whitepapers/spanishwp/04BallandBeam1SP.pdf Rene, D. (2009). Implementación de un sistema de control para balancear una bola en una viga utilizando matlab. Recuperado de: http://www.dspace.espol.edu.ec/xmlui/handle/123456789/698 Rosa, V.(2012). Control PID barra y bola. Recuperado de: https://uvadoc.uva.es/bitstream/10324/1895/1/PFC-P%2026.pdf Rubio, W. (2013). Sistema Ball & Beam. Recuperado de: https://www.academia.edu/9376466/BALL_and_BEAM?auto=download Sanchez, S. (2010). Diseño de un módulo educativo para el control del sistema Bola y Varilla. Recuperado de: http://upcommons.upc.edu/bitstream/handle/2099.1/9218/Mem%20ria.pd f?sequence=1 Selby, T.(2009). Department of Mechanical Engineering . Retrieved from http://data.mecheng.adelaide.edu.au/robotics/projects/2007/BallBeam/W ei_Final_Thesis.pdf Tello, A. (2012). Control de un sistema Ball and Beam mediante sensores. Recuperado de: http://webdiis.unizar.es/~romeo/SAAEI98.pdf Velaz, L. (2011). Control automático del sistema no lineal Ball and Beam. Recuperado de: http://academica- e.unavarra.es/xmlui/bitstream/handle/2454/4175/577596.pdf?sequence= 1&isAllowed=y Zona Maker. (2012). Sensor Ultrasonico HC-SR04. Recuperado de: https://www.zonamaker.com/arduino/modulos-sensores-y- shields/ultrasonido-hc-sr04 García, A. (2016). Que es y cómo funciona un servomotor. Recuperado de: http://panamahitek.com/que-es-y-como-funciona-un-servomotor/ Luiz, F. (2012). Sistemas de control. Recuperado de: http://www.isa.cie.uva.es/~felipe/docencia/ra12itielec/tema1_trasp.pdf Di Prieto, S. (2012). Control de un sistema Ball and Beam mediante sensores. Recuperado de: http://www.dsi.fceia.unr.edu.ar/downloads/infoelectronica/Microsoft%20 Word%20-%20informe_proyecto.pdf Espersson, M. (2010). Vision Algorithms for ball on beam and plate . Recuperado de: http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=884745 8&fileOId=8859300 Meneses. (2013). Diseño de un módulo educativo para el control del sistema Bola y Varilla. Recuperado de: http://tesis.pucp.edu.pe:8080/repositorio/bitstream/handle/123456789/48 95/MENESES_PAVEL_DISE%C3%91O_MODULO_EDUCATIVO_CON TROL_SISTEMA_BOLA_VARILLA.pdf?sequence=1&isAllowed=y Mesa, D. (2012). Ball and Beam. Recuperado de: http://es.slideshare.net/danny3m/ball-and-beam Perez, M. (2013). Control de un sistema Ball and Beam. Recuperado de: http://www.control-systems- principles.co.uk/whitepapers/spanishwp/04BallandBeam1SP.pdf Rene, D. (2009). Implementación de un sistema de control para balancear una bola en una viga utilizando matlab. Recuperado de: http://www.dspace.espol.edu.ec/xmlui/handle/123456789/698 Otaola, D. (2015). Control de la posición de una esfera sobre una plataforma. Recuperado de: https://www.iit.comillas.edu/pfc/resumenes/557d6754a1fda.pdf Pecker, E. (2010). Sensado basado en vision para el sistema Ball and Beam. Recuperado de: http://www.sase.com.ar/2011/files/2011/02/32- Sensado_basado_en_vision_para_control_de_Ball_Beam.pdf