Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA MECATRÓNICA
REPORTE DE PROYECTO:
IMPLEMENTACIÓN DE UN CONTROLADOR DIFUSO PID EN
LABVIEW PARA UN SISTEMA DE CONTROL “BALL AND BEAM”
Responsables:
16B100264 Leonardo Campos Vázquez
16B100018 Flabio César Hernández Salazar
16B100027 Felipe Ruelas Rodríguez
8° U
1 INTRODUCCIÓN 1
2 JUSTIFICACIÓN 2
3 OBJETIVOS 4
3.1 GENERAL 4
3.2 ESPECÍFICOS 4
4 MARCO TEÓRICO 5
5 METODOLOGÍA 19
7 CONCLUSIONES 37
8 BIBLIOGRAFÍA 38
1 Introducción
Por los días en que se realizó el proyecto a mostrar por medio de este documento,
tiempos convulsos se viven alrededor del globo. Desde hace un siglo la humanidad
no se enfrentaba a una crisis sanitaria como la que trajo el último mes del año 2019
e inicios de 2020. Es decir, la pandemia causada por el virus SARS COV 2, también
conocido como COVID-19 o Coronavirus. A raíz de ello, no pocas fueron las
naciones que decretaron una disminución (en algunos casos obligatoria como en
Italia, España o China) considerable de las actividades humanas fuera del hogar,
sean actividades de recreación, ocio e incluso laborales. Esto con el fin de disminuir
la pendiente de la curva de contagios en aras de no saturar los sistemas de salud
de cada país, esto mientras se logra obtener una vacuna a la vez que se consigue
la ‘inmunidad del rebaño’. México no quedó exento de estas medidas, si bien no es
un confinamiento obligado, si se suspendieron de manera presencial algunas áreas
de la sociedad incluida la educación, debido a ello se tuvo que hacer uso de varias
herramientas virtuales disponibles, para poder continuar con el estudio de los temas
que comprenden la instrumentación de la asignatura de control avanzado y demás
materias comprendidas dentro de la retícula de la carrera de ingeniería mecatrónica.
Es claro que esto implica ciertas limitaciones, pues tomó por sorpresa a toda la
comunidad estudiantil, administrativa y docente, sin embargo, se han cumplido de
forma satisfactoria con los temas considerados para el actual curso, desarrollando
con ello las competencias específicas planteadas para con la materia, tal como
corresponde este trabajo. Así pues, en la búsqueda de continuar con esta
estrategia, y para finalizar el semestre, se pondrán a prueba algunos de los
conocimientos obtenidos en los trabajos que se han entregado de forma virtual,
tomando en consideración también las posibilidades que se tienen al alcance en
esta contingencia.
1
se utilizó un servomotor y como sensor, que aportará la señal de retroalimentación
del sistema de control de lazo cerrado, se usó un sensor ultrasónico; la placa de
adquisición de datos utilizada fue un Arduino Uno. En este reporte se muestra el
proceso seguido para elaborar esta implementación, mostrando desde la
metodología llevada a cabo para diseñar y construir la planta a controlar, pasando
por el diseño del controlador, hasta su implementación en LabVIEW y en la planta
real, así como los resultados obtenidos por medio de fotografías y las conclusiones
del proyecto, además de que se agrega un link con la dirección de un video en
YouTube con tal de demostrar el correcto funcionamiento del controlador difuso.
Cabe destacar que en este trabajo se mezclan conceptos de otras materias tales
como la instrumentación virtual y sistemas embebidos, debido al manejo de
LabVIEW y de los actuadores y sensores que participan en la planta a controlar
respectivamente. Aprovechando así lo aprendido en el semestre para dar
continuidad con las clases a pesar de los inconvenientes ya relatados y presentar
una aplicación real de la lógica difusa.
2 Justificación
Muchos de los procesos industriales presentan un comportamiento dinámico no
lineal, esto como consecuencia de la interacción no conservativa de las diferentes
partes que componen a la planta, o en muchas ocasiones los datos obtenidos de
una variable de proceso están sometidos a una gran cantidad de incertidumbre, lo
que ocasiona que el control del proceso no esté dentro de los estándares
industriales. Ante este panorama y con el desarrollo de la ciencia y tecnología de
los últimos años que han propiciado el auge de microordenadores, han aparecido
nuevas estrategias de control bajo el seudónimo de control avanzado, una de ellas
es la lógica difusa. La cual ha permitido desarrollar controladores difusos para
gobernar procesos con dinámicas complejas, definidas bajo fenómenos heurísticos,
un controlador difuso no necesita conocer el modelo matemático de la planta a
controlar, pues las reglas lingüísticas de un experto en el proceso, pueden pasarse
directamente a lenguaje matemático para sintetizar el algoritmo de control. Las
posibilidades de la lógica difusa a hecho que sean utilizados controladores difusos
2
para, manejar el sistema de trenes de la ciudad de Tokio o que empresas como
Matsuhita los utilicen en lavadoras para determinar el ciclo de lavado.
Es así que la importancia de este trabajo radica en la oportunidad que brinda para
ampliar la competencia relacionada con el diseño de sistemas de control avanzados
así como su aplicación, al implementar un controlador difuso, en este caso, a una
planta que representa un sistema físico y tangible, pues las prácticas realizadas en
el curso, estas siempre se efectuaron utilizando las herramientas de Simulink, sin
poder observar su efecto real en un ambiente físico donde obviamente no todas las
variables pueden ser controladas, pudiendo existir pequeñas perturbaciones que
pondrán a prueba la verdadera eficacia y funcionalidad del sistema de control usado.
Así pues, al diseñar ahora un controlador difuso que se sabe se usará para una
tarea específica de manera física se requerirá de un mayor cuidado a la hora de
considerar las variables lingüísticas, valores lingüísticos y funciones de membresía.
Sin embargo, esta labor contribuirá a la obtención de más experiencia en cuanto a
trabajar en el diseño de sistemas de control, no solo de lógica difusa sino también
otras metodologías de control similares, además de que se ponen en conjunción el
usó de otras herramientas muy utilizadas por una persona que quiera cumplir con
el perfil de un Ingeniero mecatrónico.
3
3 Objetivos
3.1 General
Haciendo uso de MATLAB y LabVIEW diseñar e implementar un controlador PID
difuso para un sistema de control barra y bola, donde a través de un balancín se
modifica la posición de una pelota, a lo largo de una viga según un valor de
referencia que se le sea ingresado al sistema como entrada.
3.2 Específicos
• Diseño de las diferentes piezas que componen la estructura de la planta a
controlar en SolidWorks.
• Impresión 3D de las piezas de la estructura.
• Ensamble de las piezas para formar la planta.
• Diseño del controlador difuso en Matlab.
• Implementación del controlador por medio de LabVIEW.
• Realización de las conexiones pertinentes entre el sensor y actuador de la
planta con Arduino UNO y la interfaz de comunicación con el programa
elaborado en LabVIEW.
• Realización de pruebas del sistema de control y perturbaciones al mismo
para comprobar su rendimiento.
4
4 Marco teórico
4.1 Control realimentado
Se refiere a una operación que, en presencia de perturbaciones, tiende a reducir la
diferencia entre la salida de un sistema y alguna entrada de referencia (Ogata,
1998). De este modo, un sistema de control de temperatura, por ejemplo, un sistema
de calefacción central en una casa, puede tener en su entrada un termostato en el
que se fija la temperatura requerida y su salida es la temperatura real. Esta
temperatura se ajusta mediante el sistema de control, de modo que se obtenga el
valor de temperatura fijado por la entrada del sistema.
5
En la figura 4.1 se pueden observar un sistema de control realimentado típico, así
como sus variables y señales características.
Donde:
(Gaviño, 2010)
6
basados en grados de membresía, cuya función es modelar información. Este
modelado se hace con base en reglas lingüísticas que aproximan una función
mediante la relación de entradas y salidas del sistema. Esta lógica presenta rangos
de membresía dentro de un intervalo entre 0 y 1.
• Tipo triangular.
• Tipo trapezoidal.
• Tipo sigmoidal.
• Tipo campana de Gauss.
• Tipo singleton.
7
4.7 Controlador difuso
Cuando se utilizan controladores difusos (FLC) en lazo cerrado, éstos miden la
salida de la planta y toman acciones de control sobre el proceso continuamente,
para tratar que la salida de la planta y la entrada de referencia presenten el mínimo
error (Cruz, 2010). El objetivo es poner el conocimiento humano dentro de los
sistemas de ingeniería.
8
4.10 Mecanismo de inferencia
La estructura básica de funcionamiento de un sistema difuso está constituida por el
mecanismo de inferencia, el cual tiene la característica de realizar una acción
experta de acuerdo a una serie de reglas base, que son un conjunto de condiciones
preestablecida en donde a una entrada específica le corresponde una respuesta
determinada, para tener de esta forma la mejor condición de operación.
(4.1)
O continua:
(4.2)
9
decir, segmenta las funciones de membresía, generando en cada función dos áreas.
El área inferior que se forma es la que se toma para hacer el cálculo. Se sobreponen
todas estas áreas y se saca el centroide de la superposición, el cual indica la salida
real del sistema (Cruz, 2010).
10
Partiendo de la respuesta de un sistema a un escalón de ganancia r, que es el valor
deseado del sistema, el cual se muestra en la figura 4.4, y con funciones de
pertenencia para la difusificación y desdifusificación de tipo triangular, con tres
términos y las mismas etiquetas (figura 4.5), es posible diseñar las matrices de
reglas para cada tipo de controlador según su acción: controlador P, controlador
PD, controlador PI y controlador PID (Cruz, 2010).
4.13.1 Controlador P
La ley de control en un controlador tipo P se define como 𝑢 = 𝐾𝑃 𝜀, donde 𝜀 = 𝑟 − 𝑦.
A partir de esto, se proponen las siguientes reglas, representadas de forma matricial
en una tabla denominada matriz de asociación difusa o FAM (Cruz, 2010).
11
Tabla 4.1 (FAM para un controlador P)
4.13.2 Controlador PD
La ley de control en un controlador tipo PD se define como 𝑢 = 𝐾𝑃 𝜀 + 𝐾𝐷 𝜀̇, donde
𝜀 = 𝑟 − 𝑦. Se propone la siguiente FAM (Cruz, 2010).
4.13.3 Controlador PI
La ley de control en un controlador tipo PI se define como 𝑢 = 𝐾𝑃 𝜀 + 𝐾𝐼 ∫ 𝜀 𝑑𝜀,
donde 𝜀 = 𝑟 − 𝑦. Siendo que la derivada de la ley de control es 𝑢̇ = 𝐾𝑃 𝜀̇ + 𝐾𝐼 𝜀, si se
integra la salida de un controlador PD es posible obtener un controlador PI
empleando la FAM del controlador PD (Cruz, 2010).
12
lado se encuentra un sensor de distancia cuya función es medir su posición
enviando distintos voltajes o información dependiendo del lugar en donde se
encuentre la bola. A medida que el motor gira un ángulo theta, el pivote cambia el
ángulo de la barra en alpha. Cuando se cambia el ángulo a partir de la posición
vertical, la gravedad ocasiona que la bola ruede a lo largo de la viga. El objetivo es
controlar la posición de la bola en un solo lugar y que ante perturbaciones se
estabilice rápidamente en ese punto de referencia (Hernández, 2017).
13
Tal como indica la figura 4.8 existen diferentes fuerzas que actúan sobre la bola, y
estas son: la fuerza gravitatoria terrestre, la fuerza normal de la barra y el rozamiento
entre la barra y la bola, tomando el eje de referencia en el centro de la viga y el eje
x paralelo a esta tenemos:
Suponiendo que la bola rueda sin deslizarse por la barra, se obtiene la condición
que rodadura, la cual relaciona el ángulo de la viga con la posición de la bola.
𝑥 = 𝑅𝑔 ∗ 𝛽 (4.6)
𝑑2 𝛽(𝑡) (4.7)
𝐹𝑟 ∗ 𝑅𝑔 = 𝐽𝑏𝑜𝑙𝑎
𝑑𝑡 2
2
𝐽𝑏𝑜𝑙𝑎 = ∗ 𝑚 ∗ 𝑅2 (4.8)
5
𝑑 2 𝛽(𝑡) 1 𝑑 2 𝑥(𝑡)
= (4.9)
𝑑𝑡 2 𝑅𝑔 𝑑𝑡 2
2
2 𝑅 𝑑2 𝑥(𝑡) (4.10)
𝐹𝑟 = 𝑚 ( )
5 𝑅𝑔 𝑑𝑡 2
14
2
2 𝑅 𝑑 2 𝑥(𝑡)
𝑚 ∗ 𝑔 ∗ sin 𝛽 − ∗ 𝑚 ∗ ( ) ∗ = 𝑚𝑎 (4.11)
5 𝑅𝑔 𝑑𝑡 2
Y operando se obtiene:
𝑑 2 𝑥(𝑡) 𝑔
= sin 𝛽 (4.12)
𝑑𝑡 2 2 𝑅 2
[1 + (𝑅 ) ]
5 𝐺
𝑑2 𝑥(𝑡) 𝑔 (4.13)
= 2 𝛽(𝑡)
𝑑𝑡 2 2 𝑅
[1 + (𝑅 ) ]
5 𝐺
𝑋(𝑠) 𝑔
= (4.14)
𝛽(𝑠) 2 𝑅 2
[1 + (𝑅 ) ] 𝑠 2
5 𝐺
4.16 LabVIEW
Se trata del acrónimo de Laboratory Virtual Instrument Engineering Workbech. Es
un lenguaje y a la vez un entorno de programación gráfica en el que se pueden crear
aplicaciones de una forma rápida y sencilla. Fue creado por National Instruments en
abril de 1986 (Vizcaíno & Sebastiá, 2007).
15
con botones y pantallas para el usuario, además de una circuitería interna entre sus
componentes, LabVIEW dispone de dos ventanas: el panel frontal, que es la parte
que verá el usuario, suele tener un fondo gris; y el diagrama de bloques, donde se
realizará la programación y suele tener fondo blanco.
4.17 LINX
LINX es un proyecto de fuente abierta de Digilent y está diseñado para facilitar el
desarrollo de aplicaciones embebidas usando LabVIEW. LINX incluye VIs para más
de 30 de los sensores embebidos más comunes, así como APIs de hardware
diagnóstico para tener acceso a periféricos como E/S digitales, tales es el caso de
MakerHub, E/S analógicas, PWM, I2C, SPI y UART. El uso de LINX permite utilizar
las tarjetas Arduino, chipKIT, BeagleBone Black o Raspberry Pi 2/3 como tarjetas
de adquisición de datos, ya sea por medio de conexión USB/Serial, Ethernet o Wi-
Fi. Para descargarlo se utiliza el VI Package Manager de LabVIEW (National
Instruments, 2020).
16
eje del servomotor se ubicará entre 0 y 90 ° (Artero, Arduino: Curso práctico de
formación, 2013).
17
Figura 4.12 (Sensor ultrasónico HC-SR04)
TC
Distancia L = (4.15)
2
18
5 Metodología
5.1 Diseño y construcción de la planta
Todas las piezas mecánicas y de estructura se diseñaron en Solidworks, tomando
en cuenta la capacidad dimensional de la impresora 3D donde fueron
manufacturadas, y el ensamble de componentes externos como el sensor
ultrasónico y el servomotor.
En las figuras 5.1 5.2 y 5.3 se presentan algunas de las piezas diseñadas en el
software de diseño y en la figura 5.4 se muestra el ensamble de las piezas realizado
en el mismo programa. Esto con el fin de poder previsualizar la forma y tamaño de
la planta que poseerá una vez que las piezas se hayan fabricado
19
Figura 5.2 (Base para el servomotor)
20
Figura 5.4 (Ensamble virtual del sistema barra y bola)
21
Figura 5.5 (Impresión 3D de las piezas)
22
Figura 5.7 (Ensamblando sistema físico 2)
A la barra del sistema que se fabricó con piezas de madera se le hicieron con ayuda
de una segueta varias ranuras (figura 5.8) de poca profundidad en la superficie que
tiene contacto con la bola. Para que así el esférico al rodar sobre la viga, tuviera un
poco de resistencia en vez de un rodamiento libre.
La viga de madera fue pintada de color azul simplemente por estética y que
visualmente, se vea más acorde con las piezas que si fueron impresas.
23
En la figura 5.9 se muestra la planta terminada y lista para la implementación del
controlador difuso. Se puede notar como se graduó la carrera de la bola para que
sea más fácil visualizar los resultados del sistema de control más adelante.
24
Es así que se planteó como estrategia de control, la implementación de un
controlador PID difuso, con la ventaja de que no será necesario el modelado
matemático de la planta.
El primer paso para el diseño del controlador fue especificar el número de entradas
y salidas del mismo. Como el controlador es del tipo PID se necesitan de 3 entradas
para poder analizar la información de cada una de las componentes de la acción
PID, y como salida se tiene el ángulo al que se debe mover la barra de la planta por
medio de un servomotor. Bajo esta consideración el controlador es del tipo MISO,
multiple input – single output.
25
Figura 5.10 (Funciones de membresía de la variable posición)
26
Figura 5.11 (Funciones de membresía de la variable derivada)
Para terminar con las variables de entrada se procedió a crear una más con el
nombre de ‘Integral’, la cual representa la acumulación de los errores de posición
pasados, esta tiene un universo de discurso de – 10 a 10 cm, debido a que a lo
largo de la experimentación que se realizó con la planta, se determinó que los
errores acumulados nunca llegan a superar la magnitud de 10. En esta variable se
crearon 5 funciones de membresía con los nombres: ‘ING – integral negativa
grande’, ‘INP – integral negativa pequeña’, ’IC – integral cero’, ‘IPP – integral positiva
pequeña’, ‘IPG – integral positiva grande’, los parámetros con los que se
configuraron estas funciones de membresía son los siguientes:
27
Figura 5.12 (Funciones de membresía de la variable integral)
28
Figura 5.13 (Funciones de pertenencia para la variable ángulo)
Una vez que todas las variables lingüísticas fueron definidas correctamente, se
procedió a introducir la base de reglas de inferencia del controlador, para ello se dio
clic en la pestaña ‘Rules’ y comenzaron a escribirse los antecedentes y
consecuentes de cada una de las reglas, la conexión de los antecedentes se formuló
por medio de una operación AND y el método para obtener el consecuente fue por
medio del valor mínimo, el método de desdifusificación que se eligió fue del tipo
centro de área. En total se utilizaron 125 reglas, las cuales cubren todos los posibles
casos de operación de la planta, en la tabla 5.1 se enlistan cada una de ellas.
29
Figura 5.14 (Creación de la base de reglas de inferencia del controlador)
30
Tabla 5.1 (Reglas de inferencia del controlador, continuación…)
12 ENP DNG INP ANP
13 ENP DNG IC ANP
14 ENP DNG IPP ANP
15 ENP DNG IPG ANP
16 ENP DNP ING ANP
17 ENP DNP INP ANP
18 ENP DNP IC ANP
19 ENP DNP IPP ANP
20 ENP DNP IPG ANP
21 ENP DC ING ANP
22 ENP DC INP ANP
23 ENP DC IC ANP
24 ENP DC IPP ANP
25 ENP DC IPG ANP
26 ENP DPP ING ANP
27 ENP DPP INP ANP
28 ENP DPP IC ANP
29 ENP DPP IPP ANP
30 ENP DPP IPG ANP
31 ENP DPG ING ANP
32 ENP DPG INP ANP
33 ENP DPG IC ANP
34 ENP DPG IPP ANP
35 ENP DPG IPG ANP
36 EC DNG ING AC
37 EC DNG INP AC
38 EC DNG IC AC
39 EC DNG IPP AC
40 EC DNG IPG AC
41 EC DNP ING AC
31
Tabla 5.1 (Reglas de inferencia del controlador, continuación…)
42 EC DNP INP AC
43 EC DNP IC AC
44 EC DNP IPP AC
45 EC DNP IPG AC
46 EC DC ING AC
47 EC DC INP AC
48 EC DC IC AC
49 EC DC IPP AC
50 EC DC IPG AC
51 EC DPP ING AC
52 EC DPP INP AC
53 EC DPP IC AC
54 EC DPP IPP AC
55 EC DPP IPG AC
56 EC DPG ING AC
57 EC DPG INP AC
58 EC DPG IC AC
59 EC DPG IPP AC
60 EC DPG IPG AC
61 EPP DNG ING APP
62 EPP DNG INP APP
63 EPP DNG IC APP
64 EPP DNG IPP APP
65 EPP DNG IPG APP
66 EPP DNP ING APP
67 EPP DNP INP APP
68 EPP DNP IC APP
69 EPP DNP IPP APP
70 EPP DNP IPG APP
71 EPP DC ING APP
32
Tabla 5.1 (Reglas de inferencia del controlador, continuación…)
72 EPP DC INP APP
73 EPP DC IC APP
74 EPP DC IPP APP
75 EPP DC IPG APP
76 EPP DPP ING APP
77 EPP DPP INP APP
78 EPP DPP IC APP
79 EPP DPP IPP APP
80 EPP DPP IPG APP
81 EPP DPG ING APP
82 EPP DPG INP APP
83 EPP DPG IC APP
84 EPP DPG IPP APP
85 EPP DPG IPG APP
86 EPG DNG ING APG
87 EPG DNG INP APG
88 EPG DNG IC APG
89 EPG DNG IPP APG
90 EPG DNG IPG APG
91 EPG DNP ING APG
92 EPG DNP INP APG
93 EPG DNP IC APG
94 EPG DNP IPP APG
95 EPG DNP IPG APG
96 EPG DC ING APG
97 EPG DC INP APG
98 EPG DC IC APG
99 EPG DC IPP APG
100 EPG DC IPG APG
101 EPG DPP ING APG
33
Tabla 5.1 (Reglas de inferencia del controlador, continuación…)
102 EPG DPP INP APG
103 EPG DPP IC APG
104 EPG DPP IPP APG
105 EPG DPP IPG APG
106 EPG DPG ING APG
107 EPG DPG INP APG
108 EPG DPG IC APG
109 EPG DPG IPP APG
110 EPG DPG IPG APG
111 ENG DC ING ANG
112 ENG DC INP ANG
113 ENG DC IC ANG
114 ENG DC IPP ANG
115 ENG DC IPG ANG
116 ENG DPP ING ANG
117 ENG DPP INP ANG
118 ENG DPP IC ANG
119 ENG DPP IPP ANG
120 ENG DPP IPG ANG
121 ENG DPG ING ANG
122 ENG DPG INP ANG
123 ENG DPG IC ANG
124 ENG DPG IPP ANG
125 ENG DPG IPG ANG
Una vez que se agregaron todas las reglas de inferencia se obtuvo la curva de
control, para ello se dio clic en la pestaña ‘Test System’, es así que se obtuvo una
curva como la de la figura 5.16. Debido a que la acción de control debe ser suave,
pero debe anticiparse a la posición de la pelota, la curva del control no debe
34
presentar saltos abruptos, pues la planta es muy sensible y cualquier sobreimpulso
puede alejar a la pelota de su set point y aumentar el tiempo de establecimiento.
35
6 Cronograma
Actividad 25 – 28 29 05 – 11 JUNIO 15 – 18 JUNIO
MAYO MAYO –
04
JUNIO
1. Diseño de la planta en Avance del reporte
SolidWorks, impresión y fotografías de la
3D de las piezas y planta
ensamble de la planta.
2. Diseño del controlador Variables lingüísticas,
difuso en Matlab y funciones de
LabVIEW. membresía, reglas de
inferencia y curva de
control para el
controlador diseñado.
3. Implementación del Programa en LabVIEW con los diferentes
controlador en LabVIEW. bloques para la aplicación del controlador a la
planta.
4. Experimentación y Reporte completo
comprobación de los del proyecto y video
resultados. del funcionamiento.
36
7 Conclusiones
37
8 Bibliografía
Artero, Ó. T. (2013). Arduino: Curso práctico de formación. En Ó. T. Artero, Uso de
motores (págs. 280 - 277). México D.F.: Alfaomega .
Infante, J. C., Juárez, J. d., García, J. C., & Tequianez, A. (2009). Sistemas con
lógica difusa. En J. C. Infante, J. d. Juárez, J. C. García, & A. Tequianez,
Sistemas con lógica difusa (1era ed., págs. 17-18). Ciudad de México, Ciudad
de México, México: Instituo Politécnico Nacional. Recuperado el 8 de Mayo
de 2020
38
Vizcaíno, J. R., & Sebastiá, J. P. (2007). LabVIEW: Entorno gráfico de programación
. Barcelona: Marcombo.
39