Control de sistema ball and beam mediante Simulink-Arduino
View/ Open
Date
2019-12-12Author
Brenlla García, Henar
Metadata
Show full item recordAbstract
Resumen: el control PID es uno de los controladores más empleados por su capacidad de conseguir una buena respuesta en sistemas realimentados, pero para ello, cada parámetro debe ser ajustado correctamente en un microcontrolador. Su programación puede realizarse en código C, ensamblador, entorno gráfico, etc. Afinar un control PID programando un microcontrolador Arduino requiere de varios intentos hasta conseguir una respuesta válida y por ello se ha pensado optimizar el tiempo que se emplea programando el ajuste vía Simulink. Mediante esta aplicación se ha desarrollado un control PID en Simulink utilizando un sistema no lineal “ball and beam” como punto de partida. Este proyecto emplea Arduino y Simulink para controlar la respuesta de un servomotor y mantener una pelota a una distancia específica. Un sensor infrarrojo de distancia medirá la distancia a la se encuentra la bola y un control PID ajustará una señal parecida a una PWM pero que en realidad es una señal de servo de pulso variable que recibirá el servomotor para mantenerla a la distancia deseada. Para implementar el código Arduino en Simulink, se ha creado un bloque personalizado partiendo del bloque “s-function builder”. El modelo completo crea un algoritmo de control PID que se descarga en la placa de Arduino y se ejecuta de manera independiente (standalone) a Simulink. Ejecutando el sistema en Simulink es posible afinar los parámetros del control PID en Simulink de manera externa en tiempo real y no cargar un programa por cada cambio en la placa de Arduino, ahorrando así tiempo. Laburpena: PID kontrolatzailea erabilienetariko bat da berrelikaduradun sistemetan lor dezakeen erantzun onagatik. Horretarako parametro bakoitza era egokian doitu behar da mikrokontrolatzaile bat erabiliz. Bere programazioa C kodez, mihiztatzailez, ingurune bisualez, etab. bitartez egin daiteke. PID kontrolatzaile baten doiketa fina lortzeko beharrezkoa da Arduino mikrokontrolatzailearentzako programan haztamuka parametro egokiak lortzea eta horregatik denbora optimizatzeko doiketa Simulink bidez programatzea pentsatu da. Aplikazio honen bitartez, PID kontrolatzaile bat garatu da Simulink-en “ball and beam” sistema ez lineal batetan oinarrituz. Proiektu honek Arduino eta Simulink erabiltzen ditu serbomotore baten erantzuna kontrolatzeko eta horrela distantzia espezifiko batera mantentzeko pilota. Infragorrizko distantzia sentsoreak pilota zein distantziara dagoen neurtuko du eta PID kontrolatzaileak serbomotoreak eskuratuko duen PWM seinale baten antzeko pultsu aldakorreko serbo seinale bat sortuko du, pilota distantzia egokira mantenduz. Arduino kodea Simulink-en inplementatzeko bloke pertsonalizatu bat sortu da, “s-function builder” blokea. Modelo osoa exekutatzean PID algoritmo bat sortzen da non Arduino plakara deskargatu ahal den eta era honetan Simulink-ekiko era independentean exekutatu (standalone). Simulink-en exekutatuz gero, parametroen doiketa denbora errealean eta kanpotik egitea lor daiteke Arduinoko programan egindako aldaketa bakoitzeko programa bat kargatu behar izatea ekidinez, denbora aurreztuz. Abstract: a PID controller is one of the most used controllers for its ability to achieve an accurate response in feedback mechanisms, but due to this, each parameter must be regulated correctly with a microcontroller. Its programming can be done in C code, assembler, graphical notation, etc. Tuning a PID controller by programming an Arduino microcontroller requires several attempts until a valid behaviour is obtained. In order to optimize the time used reprogramming the parameters, they can be acquired via Simulink. In this project, a PID controller has been developed with Simulink using a ball and beam nonlinear system as a starting point. By using Arduino and Simulink together, the response of a servomotor can be controlled so the ball keeps at a specific distance. An infrared distance sensor will measure the distance of the ball and a PID controller will create a servo signal of variable pulse similar to a PWM signal that the servomotor needs to keep the ball at the desired distance. To implement the Arduino code in Simulink, a custom block was created using the s-function builder block. By executing the model of the system, a PID control algorithm is created and it can be downloaded to the Arduino board so it becomes a standalone device running independently of Simulink. When the model is executed in Simulink, it is possible to tune the parameters of the PID controller externally and in real time using Simulink, to avoid loading each new program to the Arduino board and, therefore, saving time.