Anda di halaman 1dari 7

REDES DE COMPUTADORAS III FECHA: 01/08/2019

CONTROL PID DE UN PÉNDULO INVERTIDO


Baldeón Estrella Karen Estefanía
kbaldeone@est.ups.edu.ec
Ordoñez Narvaez Jhordan Andres
jordonezn@est.ups.edu.ec
Ortiz Sánchez Gabriel Andres
gortizs1@est.ups.edu.ec
Pailiacho Fierro Marjori Anabel
mpailiacho@est.ups.edu.ec
Sánchez Pozo Bryan David
bsanchezp1@est.ups.edu.ec
Tupiza Bastidas Alex Eduardo
atupiza@est.ups.edu.ec

Resumen. – En este proyecto, se ha realizado el 2. MARCO TEORICO


control de un péndulo invertido, un sistema no
lineal e inestable utilizando un Arduino Mega 2.1. CONTROL PID
para la etapa de control, un giroscopio para la
lectura de datos mediante el sensor MPU 5060 y 2.1.1. Introducción
un driver para la etapa de potencia.
El controlador PID es un controlador
Para el diseño del controlador y la obtención de realimentado cuyo propósito es hacer
los diferentes parámetros de ajuste ha sido que el error en estado estacionario, entre
necesario el software Matlab para obtenerla la señal de referencia y la señal de salida
función de transferencia y los parámetros de de la planta, sea cero. El control PID es
control, introduciendo esos parámetros con diferencia el algoritmo de control
posteriormente en el software de Arduino en el más común, siendo utilizado en el 95%
cual se ha realizado el código fuente para la de los lazos de control que existen en la
estabilización del sistema. industria.[1]

KEYWORDS: MPU6050, PID, PÉNDULO, 2.1.2. Estructura del PID


MOTOR, ARDUINO MEGA.
Las tres componentes de un controlador
1. OBJETIVOS PID son: la acción proporcional, acción
Integral y la acción derivativa. A
1.1 OBJETIVO GENERAL continuación mostramos el diagrama de
bloques con el que se representa este
 Diseñar el algoritmo de control PID controlador.
para un péndulo invertido mediante el
Software Arduino y Matlab.

1.2 OBJETIVOS ESPECÍFICOS

 Obtener valores del sensor MPU6050


mediante el Software Arduino.
 Obtener la función de transferencia con
los datos del sensor mediante el
Software Matlab. Fig. 1 Estructura PID
 Implementar el algoritmo de control
PID en la planta.

1
REDES DE COMPUTADORAS III FECHA: 01/08/2019

2.1.2.1. Acción de control acción integral se pueden ver en la


proporcional siguiente figura en la que
representamos un control PI en el
El objetivo de esta acción es que que variamos la parte proporcional.
una vez ajustado el error en estado
estacionario sea cero respecto a una
referencia fija.

La salida que obtenemos de ella es


proporcional al error siendo esta (𝑡)
= 𝐾𝑝 ∙ 𝑒(𝑡) , por lo tanto la función
de transferencia de la acción
proporcional será nada más que una
ganancia ajustable. [2]

𝐶𝑝 (𝑠) = 𝐾p

Esta acción no corregirá el error en Fig. 3 Respuesta de un sistema con


estado permanente. En la siguiente diferentes Ti
figura podemos ver el
funcionamiento de un controlador 2.1.2.3. Acción derivativa
P.
Esta acción actúa cuando hay un
cambio en valor absoluto del error.
Por lo tanto no se empleara nunca
ella sola ya que solo corrige errores
en la etapa transitoria. Es una
acción predictible por lo tanto de
acción rápida.

Su objetivo es corregir la señal de


error antes de que se haga está
demasiado grande. La predicción
se hace por la extrapolación del
Fig. 2 Respuesta de un sistema con
error de control en la dirección de
diferentes Kp
la tangente a su curva respectiva.
[3]
2.1.2.2. Acción de control
integral

La salida de este controlador es


proporcional al error acumulado,
por la tanto será de respuesta lenta.

Las fdt de las salidas del


controlador y del error son:

La finalidad de esta acción es que


la salida concuerde con la Fig. 4 Respuesta de un sistema
referencia en estado estacionario, con diferentes Kp
pudiendo esta cambiar sin tener que
cambiar la Ki a diferencia del
control proporcional. Se produce
un mejor ajuste que con la acción
proporcional por que con esta un
pequeño error con el tiempo se hace
grande por lo que se tiende a
corregir. Las características de la

2
REDES DE COMPUTADORAS III FECHA: 01/08/2019

2.1.3. Sintonización del controlador


PID

No siempre se usan las tres acciones del


controlador PID, normalmente suele
aparecer la acción proporcional
acompañada solamente de la integral o
la derivativa. De esta forma conforman
el controlador PI y el PD. Estos junto al
controlador PID son los que más
comúnmente nos encontramos.

El control PI se puede demostrar que


funcionara de forma correcta en
respuestas donde su dinámica es
esencialmente de primer orden. Fig.5 Ejemplo de uso PWM

Para su correcto funcionamiento es 2.3. SENSOR IMU MPU6050


necesaria una correcta sintonización.
Esto se puede hacer de varias formas, en La Unidad de Medición Inercial o IMU
la actualidad existen programas que te es un dispositivo electrónico que mide y
lo ajustan automáticamente, pero registra información obtenida acerca de
también se puede hacer manualmente. la velocidad, la orientación y los efectos
Para ello tenemos reglas que nos de las fuerzas gravitatorias.
facilitan esta labor. A continuación
veremos las reglas propuestas por El MPU-6050 opera con 3.3 voltios, y
Ziegler-Nichols. [4] se alimenta directamente desde la placa
Arduino
2.2. PWM
Es la encargada de conseguir unas
La modulación por ancho de pulsos lecturas precisas sobre el ángulo de
(PWM) de una señal o fuente de energía rotación, e ideal para trabajar con la
es una técnica en la que se modifica el placa Arduino.
ciclo de trabajo de una señal periódica,
ya sea para transmitir información a Utiliza una combinación de
través de un canal de comunicaciones o acelerómetro y giróscopos para obtener
para controlar la cantidad de energía sistemas de 6 grados de libertad, que
que se envía a una carga. pueden ser ampliados hasta los 9
incluyendo magnetómetros.
El ciclo de trabajo de una señal
periódica es el tiempo de encendido
(llamado ancho de pulso) en relación
con el periodo.

El PWM tiene varias aplicaciones pero


a nosotros la que nos interesa es la de
convertidor ADC, lo que nos permite
simular una salida analógica con una
salida digital. El control digital se usa
para crear una onda cuadrada, una señal
que conmuta constantemente entre
encendido y apagado. Este patrón de
encendido-apagado puede simular Fig. 6 SENSOR IMU MPU6050
voltajes entre 0 (siempre apagado) y 5
voltios (siempre encendido)
simplemente variando su ciclo de
trabajo. [4]

A continuación se muestra una imagen


del funcionamiento del pwm en
arduino.

3
REDES DE COMPUTADORAS III FECHA: 01/08/2019

2.3.1 ACELERÓMETRO DEL MPU6050 estos dispositivos y poder así incluirlos


en un circuito integrado.
Los acelerómetros MEMS
(“Microelectromechanical Systems”) 2.4. COMUNICACIÓN I²C
son de tamaño reducido y pueden estar
incluidos en las IMU.
El MPU-6050 utiliza el protocolo de
La principal ventaja de estos comunicación I²C. Es un protocolo de
dispositivos MEMS es que pueden ser comunicación serie diseñado por
creados mediante técnicas de Philips que se utiliza esencialmente
fabricación microelectrónica en un chip entre dispositivos que pertenecen al
de silicio. mismo circuito, por ejemplo, sensores
con un microcontrolador.
De igual manera que toda la electrónica
necesaria para el sistema de Las características principales del
acondicionamiento, adquisición y protocolo son:
comunicación a un precio y un tamaño
muy reducidos. • Velocidad standard de 100Kbit/s
(100kbaudios). Se puede cambiar al
Contienen por lo general placas modo de alta velocidad (400Kbit/s)
capacitivas internas, algunas fijas y
otras móviles. • Configuración maestro/esclavo. La
dirección del esclavo se configura con
Las fuerzas de aceleración que actúan software.
sobre el sensor variarán la disposición
de unas con respecto a las otras • Solo se necesitan dos líneas:
modificando la capacitancia existente
entre ambas.  SDA (Serial Data Line): Línea
de datos.
Estos cambios serán traducidos  SCL/CLK (Serial Clock
posteriormente en señales que se podrán Line): Línea de reloj, será el
utilizar. que marque el tiempo de RW
(Lectura/Escritura)

NOTA: Suponemos que todos los


dispositivos tienen masa común, si no
fuera así hay que incluir una línea de
masa.

• La comunicación siempre tiene la


estructura siguiente:

 Transmisor: Byte de datos (8


Bits)
Fig. 7. ACELERÓMETRO.  Receptor: Bit llamado ACK
de confirmación.
2.3.2 GIROSCOPIO DEL MPU6050
Las conexiones se realizan de la
siguiente manera: SDA y SCL van a su
Los sensores giroscópicos incluidos en
pin correspondiente en cada dispositivo,
el IMU son también MEMS.
de manera que todos quedan en
paralelo.
Su funcionamiento está basado en una
pequeña masa que varía su posición al
variar la velocidad angular. Las líneas SDA y SCL están
independientemente conectadas a dos
resistores PullUp que se encargaran de
El dispositivo convierte estos cambios
que el valor lógico siempre sea alto a no
en una señal medible.
ser que un dispositivo lo ponga a valor
lógico bajo.
Gracias a este diseño, será posible
reducir de forma notable el tamaño de

4
REDES DE COMPUTADORAS III FECHA: 01/08/2019

El tipo de comunicación es half duplex. 5. ANALISIS Y RESULTADOS


Comunicación bidireccional por la
misma línea pero no simultáneamente 5.1. Razones por las que se escogió el
bidireccional. Algoritmo de Control PID.

La estructura de la comunicación básica  Es un mecanismo de control por


es la siguiente: realimentación ampliamente usado
en sistemas de control industrial
1. START condition (Master)
2. 7 Bits de dirección de esclavo
 Calcula la desviación o error entre
(Master)
un valor medido y un valor
3. 1 Bit de RW, 0 es Leer y 1
deseado.
Escribir. (Master)
4. 1 Bit de Acknowledge (Slave)
 Es el algoritmo de control más
5. Byte de dirección de memoria
común, siendo utilizado en el 95%
(Master)
de los lazos de control que existen
6. 1 Bit de Acknowledge (Slave)
en la Industria.
7. Byte de datos (Master/Slave
(Escritura/Lectura))
 El algoritmo del control PID
8. 1 Bit de Acknowledge
consiste en tres parámetros
(Slave/Master (Escritura/Lectura))
distintos: el proporcional, el
9. STOP condition (Master)
integral, y el derivativo.
Esta es la base de la comunicación, pero
para leer o escribir, según el dispositivo  Tiempos de respuesta rápidos, ideal
con el que se comunica el Master la para sistemas lineales.
comunicación tendrá una estructura
específica. 5.2. Programa en el Software Arduino.

Fig. 8. Estructura básica del bus I²C.

A nivel de programación, es bastante


sencillo puesto que Arduino contiene la
librería “Wire.h”, para la interacción vía Las dos primeras líneas incluyen la
protocolo I²C en la que se incluyen librería PID necesaria para el control y
todas las funciones necesarias. Wire necesaria para la interacción vía
protocolo de comunicación 𝐼 2 𝐶.
#define MPU 0x68 es la dirección 𝐼 2 𝐶
3. MATERIALES Y HERRAMIENTAS de la IMU.

Los ratios de conversión son los


 Fuente de tensión de 12 Vdc.
especificados en la documentación. Se
 Placa Arduino MEGA deberá dividir los valores que dan el
 Giroscopio/acelerómetro MPU6050. Giroscopio y el Acelerómetro entre
 Motor estas constantes para obtener un valor
 Puente H coherente. Por otro lado,
RAD_A_DEG es la conversión de
4. DESARROLLO Y PROCEDIMIENTO radianes a grados.

4.1. La IMU da los valores en enteros de 16


bits. Como Arduino los guarda en
menos bits, hay que declarar las
variables que almacenarán los enteros

5
REDES DE COMPUTADORAS III FECHA: 01/08/2019

provenientes de la IMU como un tipo de para que lea el valor del sensor y pueda hacer
enteros especiales. int16_t AcX, AcY, el control del ángulo.
AcZ, GyX, GyY son, pues, los
raw_values de la IMU (valores en Se guarda la variable Angle [1] en la
bruto). variable Setpoint, se inicializa la variable sp
a 0.
Seguidamente hay tres arrays (Acc [],
Gy [], Angle []) que guardan el ángulo
Robot.SetSampleTime(20); se modifica
X, Y del Acelerómetro, el Giroscopio y
el resultado del Filtro respectivamente. los valores de SetSampletime de la librería a
[0] se corresponde a X. [1] a Y. Después 20 ms para conseguir una lectura más rápida,
se declaran los pines del driver que se ya que por defecto trabaja a 100 ms.
utilizó en la etapa de potencia que en el
caso de la planta se encuentra en los Robot.SetMode(AUTOMATIC); la
pines digitales 2 y 3 del Arduino Mega. librería estará cada 20 ms haciendo la
operación.

Robot.SetOutputLimits(-255,255); se
crean estos límites para la salida PWM en
ambos sentidos.

Se definen las variables del controlador


PID, y se introducen los parámetros de
ajuste calculados mediante el software
Matlab.

PID () crea el controlador PID


vinculado a la especificada entrada,
salida y consigna. El algoritmo PID está
en forma paralela.

El void loop suele ser la parte del programa


más compleja. En él se leen y se guardan los
datos de la IMU, se calcula el ángulo, se
aplica el filtro complementario y se
configura el control de lazo PID.

En la función setup: Se inicia la


comunicación por 𝐼 2 𝐶 con el dispositivo
MPU, y se “actica” enviando el comando 0.

Posteriormente se inicia el puerto serie para


ver los resultados. En la configuración de En input se guarda la lectura del ángulo
los pines del driver, se establecen como calculado y filtrado.
salida. En la configuración del Lazo PID,
inicialmente se establece un retardo de 3 ms

6
REDES DE COMPUTADORAS III FECHA: 01/08/2019

val = Setpoint – input; se guarda la


diferencia entre el valor deseado y nuestra
entrada.

in = val; el valor de la variable val se guarda 7. REFERENCIAS


en la variable double in, la cual se irá a la [1] ARREGOCÉS, Sigilfredo. Apuntes de clase
librería robot.Compute(); para que realice control y relevación 2011. Universidad
la operación y genere una salida. tecnológica de Pereira.

Con la instrucción if – else se controla el [2] ASTROM, Karl; Torre, Hagglund. Control
sentido del motor. pid avanzado. Department of Automatic Control
Lund Institute of Technology Lund University.
output = abs(out); se genera la variable
salida, con el valor absoluto de out. Por el [3] BR, Jesdely; Sánchez, R. Diseño y
construcción de un controlador pid analógico.
motivo que se ha programado los límites -
Universidad de los andes.
255 a 255, por lo que cuando esté inclinado
hacia un lado se enviará una señal negativa [4] DOMÍNGUEZ, David; Ulloa, Rebeca, et al.
y ese detalle por cuestiones de programación Control de un motor por medio de PWM para
no es posible, puesto que el procesos de velocidad. Instituto politécnico
microcontrolador no puede mandar ninguna nacional. Mexico
salida PWM de valor negativo.

Finalmente se manda imprimir por pantalla


en tiempo real el ángulo de giro.

5.3. Parámetros kp,ki,kd mediante el


Software Matlab.

6. CONCLUSIONES

 El control de una planta permite el


control de variables de diferentes
procesos que se realizaban de forma
totalmente manual, lo cual es un factor
que tiene un alto riesgo de error. Esto es
de gran utilidad ya que se obtienen
procesos más eficientes, donde se
mejora calidad, tiempos de producción,
e evitan accidentes laborales, se
protegen elementos y equipos que
pueden ser muy costosos, entre otras
muchas más ventajas.
 Se logró conocer el sensor IMU MPU-
6050, investigando en profundidad su
complejo funcionamiento, tanto del
acelerómetro y giroscopio, de igual
manera aprender a adquirir lecturas en
grados de inclinación mediante cálculos
trigonométricos, así como ver la
funcionalidad del uso del Filtro
Complementario para obtener lecturas
mucho más fiables y óptimas.

Anda mungkin juga menyukai