CONTROLADOR DE POSICION Y VELOCIDAD CON PID DISCRETO EN MOTOR DC CON CODIFICACION
POSITION AND SPEED CONTROLLER WITH DISCRETE PID IN DC MOTOR WITH CODING
Andrés Pinargote Quintero1*
1 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0000-0002-6122-9824
Correo: Andrespinargote7@gmail.com.
Bryan Sánchez Cabrera2
2 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0000-0002-8263-1966
Correo: bryansanchezcabrera06@gmail.com
Julissa Orrala Flores3
3 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0000-0002-7520-2630.
Correo: janethitap@gmail.com.
Jason Ramírez González 4
4 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0009-0003-0619-5873
Correo: jmramirezg24@gmail.com.
Ariel Buenaño Villon5
3 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0009-0000-4828-9833.
Correo: ariel.villin@gmail.com.
Laura Vasconez Alava6
3 Universidad Estatal Península de Santa Elena. Facultad de sistemas y telecomunicaciones. Santa Elena-Santa Elena. Ecuador.
ORCID: https://orcid.org/0000-0002-1576-2097.
Correo: lauravasconez98@gmail.com.
Resumen
En el siguiente proyecto se aplica un control PID discreto de velocidad y posición de un motor DC con encoder, se explica cómo funciona el controlador y cuáles son sus componentes principales, así como su aplicación en diversas industrias, robótica y mecatrónica, también se detalla el proceso de diseño de una aplicación de control PID para un motor donde a través de un potenciómetro que será nuestra referencia que controlará la velocidad o la posición en la que se moverá el motor, se usará el programa MATLAB &SIMULINK para ver el comportamiento de nuestro sistema a través de diagrama de bloques, servirá para la creación de nuestra aplicación y donde también se diseñara nuestro controlador PID, que se compone de una ganancia , un integrador y un derivador , se discutirá los principios y consideraciones del diseño donde se debe tener en cuenta el desarrollo de la aplicación, la finalidad de este documento es informar el cómo se puede controlar, regular y mantener la posición y velocidad de los motores en diversas situaciones.
Para el desarrollo de la app que será la encargada de controlar y mostrar el comportamiento de nuestro sistema usaremos App Designer una extensión de MATLAB, que es usada para la creación de aplicaciones de control PID entre otros usos, en esta app se controlara la velocidad y posición del motor con un slider que será nuestra señal, en el caso del control se le ingresara los valores para asi encontrar los valores del PID y un scope donde se ira graficando las señales del motor y el controlador.
Palabras clave: Motor DC con encoder, controlador PID, potenciómetro, señales de error.
Abstract
In the following project, a discrete PID control of speed and position of a DC motor with encoder is applied, how the controller works and what its main components are, as well as its application in various industries, robotics and mechatronics, is also detailed. design process of a PID control application for a motor where through a potentiometer that will be our reference that will control the speed or position in which the motor will move, the MATLAB &SIMULINK program will be used to see the behavior of our system Through a block diagram, it will serve to create our application and where our PID controller will also be designed, which is composed of a gain K_p, an integrator K_i and a derivative K_d, the principles and considerations of the design will be discussed where it should be Taking into account the development of the application, the purpose of this document is to inform how the position and speed of the motors can be controlled, regulated and maintained in various situations.
For the development of the app that will be responsible for controlling and showing the behavior of our system, we will use App Designer, a MATLAB extension, which is used to create PID control applications among other uses. In this app, the speed and position of the motor with a slider that will be our signal, in the case of control the values will be entered in order to find the PID values and a scope where the signals of the motor and the controller will be graphed.
Keywords: DC motor with encoder, PID controller, potentiometer, error signals
Introducción
En particular, el controlador de posición y velocidad con PID (Proporcional, Integral y Derivativo) discreto es una técnica ampliamente utilizada debido a su eficacia y facilidad de implementación. Este tipo de controlador se basa en el cálculo de errores, que son la diferencia entre los valores de referencia deseados y los valores medidos por un codificador, un dispositivo que proporciona retroalimentación sobre la posición y velocidad del motor [1].
El controlador de posición y velocidad con PID discreto se implementa mediante algoritmos específicos que permiten calcular y ajustar los parámetros del controlador para lograr un rendimiento óptimo. Estos parámetros incluyen el coeficiente proporcional (), el coeficiente integral () y el coeficiente derivativo (), que deben ser sintonizados adecuadamente para obtener una respuesta estable y precisa del motor [1].
Materiales y métodos
El controlador de posición y velocidad con PID discreto en un motor con codificador es un sistema de control que se utiliza para regular y mantener la posición y la velocidad de un motor en aplicaciones industriales y robóticas. Este tipo de controlador se basa en el algoritmo del PID (Proporcional, Integral y Derivativo) discreto, que calcula la señal de control necesaria para corregir los errores entre la posición o velocidad deseada y los valores medidos por el codificador [2].
El codificador es un dispositivo que se encuentra acoplado al eje del motor y proporciona información en tiempo real sobre la posición y velocidad angular del mismo. El controlador utiliza esta retroalimentación para comparar los valores de referencia establecidos con los valores medidos y calcular el error correspondiente [1].
El error se calcula como la diferencia entre el valor de referencia deseado y el valor medido del codificador. Para el control de posición, el error se refiere a la diferencia entre la posición deseada y la posición actual medida por el codificador. Para el control de velocidad, el error se calcula como la diferencia entre la velocidad deseada y la velocidad actual medida por el codificador [3].
La señal de control total se obtiene sumando las contribuciones de las acciones proporcional, integral y derivativa. Esta señal de control se aplica al motor para corregir el error y ajustar la posición o velocidad del mismo.
Del controlador de posición y velocidad con PID discreto en un motor con codificador se puede representar de la siguiente manera:
Controlador PID discreto
La señal de control generada por el controlador PID discreto se calcula como la suma de las contribuciones de las tres acciones: proporcional, integral y derivativa.
La señal de control en el instante de tiempo k se denota como u[k], y se puede calcular utilizando la siguiente ecuación[4]:
| (1) |
|---|
Donde:
es el coeficiente proporcional.
es el coeficiente integral.
es el coeficiente derivativo.
es el error en el instante de tiempo k, calculado como diferencia entre el valor de referencia deseado y el valor medido del codificador en el instante k.
es la suma acumulada de los errores pasados hasta el instante de tiempo k.
Error
El error en el instante de tiempo k se define como la diferencia entre el valor de referencia deseado y el valor medido del codificador en ese mismo instante.
| (2) |
|---|
Donde:
Referencia[k] es el valor de referencia deseado en el instante de tiempo k.
Medición[k] es el valor medido del codificador en el instante de tiempo k.
Retroalimentación del codificador
La medición del codificador proporciona la retroalimentación necesaria para calcular el error en cada instante de tiempo. Dependiendo de si se está realizando un control de posición o de velocidad, la medición puede representar la posición angular o la velocidad angular del motor en ese momento.
El modelo matemático del controlador de posición y velocidad con PID discreto en un motor con codificador se basa en la generación de una señal de control mediante la suma de las contribuciones de las acciones proporcional, integral y derivativa.
Resultados y discusión
Figura 1. Interfaz System Identification
Para diseñar y simular un controlador de posición y velocidad con PID discreto en MATLAB, puedes seguir los siguientes pasos utilizando la herramienta de identificación de sistemas “ident”:
Importa los datos del codificador
Carga los datos de posición y/o velocidad medidos por el codificador en MATLAB.
Organiza los datos en una variable de serie de tiempo, por ejemplo, utilizando la función “timeseries”.
Figura2.Diagrama de funcionamiento de un motor codificador
Preprocesamiento de datos (opcional)
Si es necesario, realiza un preprocesamiento de los datos para eliminar ruido o suavizar las mediciones.
Aplica filtros u otras técnicas de preprocesamiento según sea necesario.
Define el modelo de referencia
Define un modelo de referencia que represente la dinámica del sistema que deseas controlar. Puedes utilizar modelos conocidos o empíricos según la aplicación.
Si tienes información sobre la estructura del motor y sus parámetros, puedes utilizar modelos físicos o teóricos para el diseño del controlador.
Configura el experimento de identificación
Utiliza la función “iddata” para crear un objeto de datos de identificación a partir de los datos del codificador.
Configura las opciones de muestreo, tiempo de muestreo y otros parámetros relevantes para el experimento de identificación.
Estimación de parámetros
Utiliza la función “idproc” para crear un objeto de modelo de proceso a partir del modelo de referencia.
Utiliza la función “estimate” para estimar los parámetros del modelo de proceso a partir de los datos de identificación.
Sintonización del controlador PID
Utiliza las técnicas de sintonización de controladores PID para ajustar los valores de los coeficientes proporcional, integral y derivativo (, , ) del controlador.
Puedes utilizar métodos clásicos de sintonización como el método de Ziegler-Nichols o métodos más avanzados como el ajuste automático.
Diseño del controlador
Utiliza los valores de los coeficientes sintonizados para diseñar el controlador PID discreto.
Implementa el algoritmo del controlador PID discreto utilizando la ecuación de la señal de control mencionada en la respuesta anterior.
Simulación y evaluación
Utiliza el modelo del proceso y el controlador PID discreto para realizar simulaciones y evaluar el rendimiento del sistema.
Compara los resultados de la simulación con los datos reales y ajusta los parámetros del controlador si es necesario.
Son pasos generales y pueden variar según tus requisitos y la aplicación específica. Es importante contar con conocimientos en identificación de sistemas y control para llevar a cabo este proceso de manera efectiva.
Figura3.Señales de control
Figura4.Diagrama de velocidad
Figura6.Diagrama de Bloques.
Desarrollo Aplicación usando App Design
En la era actual de la tecnología móvil, las aplicaciones juegan un papel fundamental en la vida cotidiana de las personas. El diseño de aplicaciones móviles se ha convertido en un componente crítico para garantizar que las aplicaciones sean útiles, atractivas y fáciles de usar. El objetivo de esta investigación es profundizar en los principios y consideraciones que los diseñadores deben tener en cuenta al desarrollar aplicaciones móviles exitosas.
Figura7.Interfaz de la aplicación
Figura8.Presentacion Física
El objetivo de esta aplicación es desarrollar una herramienta de control PID para un motor equipado con un codificador, aprovechando las funcionalidades de MATLAB y su entorno de desarrollo de aplicaciones (App Design). La aplicación resultante permitirá a los ingenieros y técnicos configurar y sintonizar los parámetros del controlador PID, observar el comportamiento del sistema en tiempo real y ajustar el rendimiento para cumplir con requisitos específicos.
Conclusiones
En conclusión, el controlador de posición y velocidad con PID discreto en un motor con codificador es una técnica efectiva y ampliamente utilizada en el campo de la automatización y control. Este enfoque permite regular con precisión la posición y la velocidad de un motor en tiempo real, mejorando la estabilidad, la respuesta transitoria y la precisión en una amplia gama de aplicaciones industriales y robóticas.
El controlador se basa en el algoritmo del PID discreto, que combina las acciones proporcional, integral y derivativa para generar una señal de control que ajusta la posición o velocidad del motor. La retroalimentación del codificador proporciona información en tiempo real sobre la posición y velocidad del motor, permitiendo al controlador calcular el error y realizar los ajustes necesarios.
El desarrollo de una aplicación de control PID para un motor con codificador en el entorno de MATLAB ofrece una solución valiosa para mejorar la eficiencia y precisión en diversos sistemas industriales y de automatización. La combinación de la técnica de control PID con la potencia de MATLAB y su entorno de desarrollo de aplicaciones (App Design) facilita la implementación, configuración y ajuste de los parámetros del controlador en tiempo real. Esta herramienta proporciona a los ingenieros y técnicos una forma intuitiva y eficaz de optimizar el comportamiento del sistema y alcanzar los objetivos de rendimiento deseados, impulsando así el progreso en campos clave de la ingeniería y la automatización.
Referencias
[1]C. P. Arroyo Vilela, L. F. Salvatierra Bravo, y L. Miranda D., «Análisis Comparativo Entre Controladores PID y FUZZYPID Aplicados a Modelo Experimental Obtenido de un Filtro Activo Pasa-Bajos», Thesis, ESPOL. FIEC., 2022. Accedido: 4 de octubre de 2023. [En línea]. Disponible en: http://www.dspace.espol.edu.ec/handle/123456789/54451
[2]L. E. Mayorga Miranda, «Diseño e implementación de una plataforma para el estudio comparativo de un controlador predictivo (MPC) con controladores PID y FUZZY, aplicado al control de velocidad de un motor DC.», masterThesis, 2019. Accedido: 4 de octubre de 2023. [En línea]. Disponible en: http://bibdigital.epn.edu.ec/handle/15000/19941
[3]«Sistema Avanzado de Protipado Rápido para Control en la Educación en Ingeniería para grupos Multidisciplinares». Accedido: 4 de octubre de 2023. [En línea]. Disponible en: https://riunet.upv.es/handle/10251/143634
[4]J. L. F. Mejia, J. H. A. Núñez, I. de J. R. Cambero, y H. G. Maldonado, «MODELADO Y SIMULACIÓN DE UN REGULADOR DE VELOCIDAD PARA UN MOTOR BLDC POR MEDIO DE UN CONTROLADOR DE HISTÉRESIS POR CORRIENTE (MODELING AND SIMULATION OF A SPEED CONTROLLER FOR A BLDC MOTOR, USING A HYSTERESIS CURRENT CONTROLLER)», Pist. Educ., vol. 40, n.o 130, Art. n.o 130, nov. 2018, Accedido: 4 de octubre de 2023. [En línea]. Disponible en: https://pistaseducativas.celaya.tecnm.mx/index.php/pistas/article/view/1688