Вы находитесь на странице: 1из 4

Control Digital PID

de velocidad para motor DC


Ivar Agredo, Alex Burbano, Yair Lopez, Sammy Wilches
Facultad de Ingeniería Electrónica Grupo 1001
Agredo.ivar@hotmail.com, alexjair@hotmail.com,
yairlopez24@gmail.com, SAMMY2906@hotmail.com
Institución Universitaria Antonio José Camacho

Resumen- el controlador PID o también conocido


como compensador PID, es un sistema de control
usado en lazo cerrado, su función es la de corrección
de error entre una señal deseada (SP) y el valor
medido (real). Los componentes de este control son:
el Proporcional, Integrador y Derivativo. Los cuales
actúan sobre diferentes aspectos de la señal de error;
el Proporcional actual sobre el error actual. El
integral sobre errores ya pasados y el derivativo
sobre errores futuros.

I. INTRODUCCIÓN
Este proyecto está enfocado en el diseño e
implementación a escala de los controladores PID
para el control de velocidad de un motor dc. El cual Figura 1. Placa de desarrollo Arduino Nano.
es sometido a perturbaciones manipuladas que
recreen los posibles problemas que se encuentren
en tareas cotidianas para el uso de estos. III. ACTUADOR

La placa de desarrollo a pesar de sus muchas


II. CONTROLADOR especificaciones idóneas para el desarrollo de
proyectos de control digital, se ve limita en
Para la función de controlador se usara la placa de apartados de potencia, sus salidas digitales
desarrollo Arduino Nano. El cual dispone de un entregan un máximo de 40mA. Por ello se requiere
micro controlador Atmega 328 que dispone de las de un circuito de potencia que haga de actuador en
características requeridas para el trabajo en nuestro sistema de control, es ideal recurrir a un
cuestión, como lo son, una velocidad de circuito de transistores en cascada, asegurando así,
procesamiento y muestreo altas, salidas PWM y los factores de potencia requeridos por la planta a
entradas Análogas, por lo cual podrá cargar con la controlar.
función de generar el Set Point y modificar la
variable manipulada según la señal de error
mediante el uso de un PID digital.
V. SENSOR – RETRO
ALIMENTACIÓN

Para obtener una señal eléctrica de realimentación


eléctrica sobre el motor dc, se utiliza un taco
generador, el cual nos arrojara una señal
proporcional a la velocidad angular del motor dc.
A su vez es requerida una etapa de
acondicionamiento que tome la señal del taco
generador y arroje una señal de voltaje que este
entre los rangos permitidos por el Arduino (0 - 5).

Figura 2. Circuito de potencia – Actuador.

IV. PLANTA

El controlador de velocidad de un motor dc


Figura 4. Atenuador de taco generador.
requería de un montaje que permitiera realizar
diversas pruebas a las que se sometería el motor dc
en usos cotidianos, como lo son la fricción,
frenado por carga mecánica y eléctrica. Por ello se
construyó un modelo de motores enfrentados, VI. COMPENSADOR PID
motor y taco generador
El controlador o compensador PID como se
mencionó anteriormente, actúa sobre la señal de
error entre el Set-Point y la medición real de la
variable manipulada.

Figura 5. Bloques PID.


Figura 3. Montaje de planta para motores DC.
Para el diseño del PID primero se debió
parametrizar la planta, todo esto se realizó con la
ayuda de la tarjeta de desarrollo Arduino Nano con
Cabe mencionar que la estructura debe
la cual se tomaron datos de entrada y salida según
proporcionar condiciones de pruebas constantes o
ciclos de trabajo del PWM. Y con la ayuda de un
de poca variación, para asegurar una repetibilidad
osciloscopio digital se realizó las capturas
en las medidas que se realicen durante las pruebas
necesarias para obtener los datos de una prueba
para el modelado del sistema.
escalón como son el tiempo de estabilización, nivel
de sobre paso, ganancia de estado estable, error de
estado estable y Tao.
Según la guía comenzamos agregar valores al
Proporcional hasta que la salida empiece a oscilar,
una vez encontrado lo fijamos a la mitad de dicho
valor. Se procederá a ingresar un valor integrativo
para corregir el error de estado estacionario.

Con los valores.

P=7 I = 90 D=0

Figura 6. Captura en prueba Escalón.

Los valores requeridos para obtener nuestra


función de transferencia fueron:

Vin_estable = 4.76V

Vout_estable = 4.8V

𝝉2 (63% de salida estable)= 50mSeg


Figura 7. Respuesta escalón - Matlab.
𝝉𝟏(Tao_2 / 10) = 5mSeg.
Con los valores mencionados se obtiene los
Para formar así: siguientes resultados:
𝑉𝑜𝑢𝑡𝑒𝑠𝑡𝑎𝑏𝑙𝑒 4.8 𝑉 Tss = 79mSeg
𝑘= = = 1.008
𝑉𝑖𝑛𝑒𝑠𝑡𝑎𝑏𝑙𝑒 4.76 𝑉
MP = 5%

Ess= 0.0002%
𝐾
𝑇𝑓 = Con lo cual se obtienen los valores deseados para
(𝜏1𝑆 + 1)(𝜏2𝑆 + 1)
el compensador PID.
1.008
𝑇𝑓 =
(5𝑚 𝑆 + 1)(50𝑚 𝑆 + 1)
VII. ARDUINO COMO
COMPENSADOR PID
1.008
𝑇𝑓 = Arduino cuenta con la librería “PID_v1” la cual
0.00025 𝑆 2 + 0.055 𝑆 + 1
como su nombre indica, nos brindara la
herramienta requerida para el computo de las
variables de entrada (Set Point) y la de entrada
Con estos datos podemos usar Matlab para calcular
(Vout) mediante el uso de un PWM y una de sus
los valores correspondientes del compensador PID.
entradas análogas.
Haciendo uso del código
El programa constantemente compara el valor de la
“cd03_controlador_disenho” presente en la guía
entrada análoga que corresponde a la señal de
de Control Digital – Sistema Motor taco
salida de la planta, la cual compara con el Set Point
generador. Se consignan los datos requeridos y se
fijado para generar la señal de “error” y procesarla
procederá con el diseño del controlador PID.
con los valores PID que le configuremos.

Hay que tener en cuenta que la señal introducida


como Set Point es un PWM, entonces según sea el
cambio que genere el compensador PID, se verá VIII. CONCLUSIONES
modificado el ciclo de trabajo de dicho PWM para
obtener una señal de error cercana a cero. Durante el desarrollo del proyecto se abarco varias
áreas de conocimiento adquirido durante la
formación académica como ingenieros
electrónicos, permitiendo así poner en práctica
Codigo usado en Arduino Nano. dichos conocimientos.
#include <PID_v1.h> • Durante las pruebas del sistema, se aprecia
#define PIN_INPUT 0 que el control sobre los motores dc, se
#define PIN_OUTPUT 3 presenta mucho ruido eléctrico.

• Las perturbaciones en este tipo de sistema


double porcentaje=100;
son abundantes, principalmente eléctrico,
double sp=0;
mecánico y temperatura.

//Define Variables we'll be connecting to • Las mediciones realizadas durante las


double Setpoint, Input, Output; pruebas son evidencia, de que jamás se
//Specify the links and initial tuning obtendrán dos mediciones iguales, debido
parameters a los varios elementos que componen el
double Kp=7, Ki=90, Kd=0; motor dc y de las perturbaciones externas
que lo afectan.
PID myPID(&Input, &Output, &Setpoint, Kp,
Ki, Kd,P_ON_E, DIRECT);
REFERENCIAS
void setup()
{ - Matlab, “SIMILINK”
sp=1023*(porcentaje/100); - Matlab – código
//initialize the variables we're linked to “cd03_controlador_disenho”
Input = analogRead(PIN_INPUT);
Setpoint = sp;
//turn the PID on
myPID.SetMode(AUTOMATIC);
BIBLIOGRAFIA
myPID.SetSampleTime(1);
} - Arduino.com: Arduino Library PID.
https://playground.arduino.cc/Code/PIDL
void loop() ibrary
{
Input = analogRead(PIN_INPUT);
myPID.Compute();
analogWrite(PIN_OUTPUT, Output);

Вам также может понравиться