Está en la página 1de 13

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo
Jos J. Salazar Luis A. Velasco Estudiantes de Ing. Mecatrnica, Escuela Politcnica del Ejrcito josejuliansalazar@gmail.com luchinivelasco88@hotmail.com 1. RESUMEN En el siguiente artculo se podr encontrar la forma de realizar un control PID sobre una planta la cual contara de una entrada y una salida, en donde la entrada de la planta ser un potencimetro el mismo que funciona como sensor de torque y la salida del sistema es un ventilador de 12V AC, en este artculo se encontrar la descripcin de la planta y la sintaxis de programacin que se ha utilizado. ABSTRACT In this article we can find a way to perform PID control on a plant which will have an input and an output, wherein the input of the plant will be a pot the same functions as a sensor and the output torque of the system is a 12V AC fan, this paper will find the description of the plant and the syntax of programming that has been used. 3. PALABRAS CLAVE PID, PWM, Constante Proporcional, Constante Integral, Constante Derivativa, Rango, Error, Set Point KEYWORDS PID, PWM Constant Proportional, Integral Constant, Constant Derivative, Status, Error, Set Point FILIACION DEL AUTOR Jos Julin Salazar Luis Anbal Velasco josejuliansalazar@gmail.com luchinivelasco88@hotmail.com +59384587028 +59384065114

2.

4.

5.

Estudiantes de Ingeniera Mecatrnica de la Escuela Politcnica del Ejrcito, cursando la materia de Sistemas Dinmicos.

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco

6.

INTRODUCCION 6.1. Objetivos - Disear e implementar un sistema de control de posicin para un motor DC, utilizando el micro controlador PIC16F877A. 6.2. Objetivos Especficos - Reconocer y Analizar el sistema. - Implementar sistema. - Disear un programa que realice el control PID para la planta. - Estabilizar la planta lo ms rpido que sea posible. 6.3. Alcance del Estudio Para el proyecto lo que se quiere realizar es lograr posicionar con precisin el motor DC, para que as, el error de estado estacionario de la posicin del motor sea cero; adems se desea que el error de estado estacionario debido a una perturbacin tambin sea nulo. Otro requerimiento es que el motor alcance muy rpidamente su posicin final. En este caso, se desea disminuir el tiempo de establecimiento para que sea mnimo y tenga un sobrepaso considerable. Para lograr esto, dispondremos de un micro controlador PIC que incorpora todas las funciones necesarias para realizar el diseo y control. La eficiencia del sistema va ligada a los parmetros de la planta, debido a que nuestro sistema es retroalimentado, es necesario disear un controlador de tal forma que el sistema se estabilice en la posicin deseada y en el menor tiempo posible. La retroalimentacin se har por medio de un potencimetro acoplado al eje del pndulo, el cual enviar pulsos al micro controlador indicndole su posicin. Ante estos cdigos el micro controlador tomar una decisin relacionando la posicin actual con el Set Point o valor deseado para hacer girar el motor a la velocidad indicada indicado.

7.

GENERALIDADES El control automtico desempea un papel importante en los procesos de manufactura, industriales, navales, aeroespaciales, robtica, econmicos, biolgicos, etc., como va ligado a, prcticamente, todas las ingenieras (elctrica, electrnica, mecnica, sistemas, industrial, qumica, etc.).[1] Existen parmetros que se estudian y son ampliamente considerados en el control automtico: 7.1 Seal de salida: Es la variable que se desea controlar (posicin, velocidad, presin, temperatura, etc.). Tambin se denomina variable controlada. [1]

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco 7.2 Seal de referencia: Es el valor que se desea que alcance la seal de salida. [1] 7.3 Error: Es la diferencia entre la seal de referencia y la seal de salida real. [1] 7.4 Seal de control: Es la seal que produce el controlador para modificar la variable controlada de tal forma que se disminuya, o elimine, el error. [1] 7.5 Seal anloga: Es una seal continua en el tiempo. [1] 7.6 Seal digital: Es una seal que solo toma valores de 1 y 0. El PC solo enva y/o recibe seales digitales. [1] 7.7 Conversor anlogo/digital: Es un dispositivo que convierte una seal analgica en una seal digital (1 y 0). [1] 7.8 Conversor digital/anlogo: Es un dispositivo que convierte una seal digital en una seal analgica (corriente o voltaje). [1] 7.9 Planta: Es el elemento fsico que se desea controlar. Planta puede ser: un motor, un horno, un sistema de disparo, un sistema de navegacin, un tanque de combustible, etc. [1] 7.10 Proceso: Operacin que conduce a un resultado determinado. [1] 7.11 Sistema: Consiste en un conjunto de elementos que actan coordinadamente para realizar un objetivo determinado. [1] 7.12 Perturbacin: Es una seal que tiende a afectar la salida del sistema, desvindola del valor deseado. [1] 7.13 Sensor: Es un dispositivo que convierte el valor de una magnitud fsica (presin, flujo, temperatura, etc.) en una seal elctrica codificada ya sea en forma analgica o digital. Tambin es llamado transductor. Los sensores, o transductores, analgicos envan, por lo regular, seales normalizadas de 0 a 5 voltios, 0 a 10 voltios o 4 a 20 mA. [1] 7.14 Sistema de control en lazo cerrado: Es aquel en el cual continuamente se est monitoreando la seal de salida para compararla con la seal de referencia y calcular la seal de error, la cual a su vez es aplicada al controlador para generar la seal de control y tratar de llevar la seal de salida al valor deseado. Tambin es llamado control realimentado. [1]

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco 7.15 Sistema de control en lazo abierto: En estos sistemas de control la seal de salida no es monitoreada para generar una seal de control. Antes de iniciar con el diseo de un controlador es necesario que el ingeniero conozca muy bien la dinmica del proceso a controlar. A continuacin haremos un estudio de los componentes del sistema. [1] 7.16 Motor de corriente directa de imn permanente: Los motores de CD de imn permanente tienen, en teora, un comportamiento lineal, es decir que la velocidad desarrollada ser proporcional al voltaje aplicado lo cual no es completamente cierto en todo el rango de voltajes. Por ejemplo, si el motor que se emplear en esta experiencia gira a 500 r.p.m. cuando se le aplican 5 voltios muy posiblemente girar a 250 r.p.m. si se le aplican 2.5 voltios. Pero, si se le aplican 0.5 voltios seguramente ni siquiera alcanzara a arrancar (debido a que con ese voltaje no logra vencer la inercia) cuando debera girar a 50 r.p.m., aplicando el principio de Superposicin, si fuese lineal en todo su rango. Es recomendable que se verifique el rango de voltajes en que el motor tiene un comportamiento lineal aplicndole voltajes (con el potencimetro desacoplado) desde 0 voltios y midiendo la velocidad desarrollada para cada voltaje. Si no dispone de medidores para censar la velocidad del motor puede solamente medir la magnitud del voltaje mnimo que necesita para arrancar el motor en ambos sentidos y asumir que a partir de ah su comportamiento es lineal. Esta asuncin es vlida teniendo en cuenta que perseguimos un fin netamente acadmico. [2] 7.17 Potencimetro lineal: Se debe aplicar 5 voltios de corriente directa entre sus terminales fijos a y b. En forma manual y gradual comience a girar, desde la posicin inicial, en sentido dextrgiro (o levgiro) y mida el voltaje en el terminal c para cada incremento de la posicin. El incremento (o decremento) del voltaje debe ser proporcional al incremento o decremento de la posicin del potencimetro. [2] 7.18 PWM: Los controles PWM utilizar la modulacin por ancho de pulso para regular la corriente enviada al motor. Controles PWM producen ms suave corriente a altas frecuencias de conmutacin, por lo general entre 1 y 20 kHz. la frecuencia de conmutacin es inaudible para los seres humanos, eliminando as el ruido que el cambio a menor frecuencia produce. Sin embargo, algunos controladores de motores para los modelos de radio control hacer uso del motor para producir un sonido audible, ms simples pitidos. Un controlador de PWM normalmente contiene un gran depsito condensador y un acuerdo del Hpuente de elementos de conmutacin (tiristores, Mosfets, rels de estado slido o transistores). [3] 7.19 PID: Es un mecanismo de control por realimentacin que calcula la desviacin o error entre un valor medido y el valor que se quiere obtener, para aplicar una accin correctora que ajuste el proceso. El algoritmo de clculo del control PID se da en tres parmetros distintos: el proporcional, el integral, y el derivativo. El valor Proporcional determina la reaccin del error actual. El Integral genera una correccin proporcional a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de seguimiento se reduce a cero. El Derivativo determina la reaccin del tiempo en el que el error se produce.

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco La estructura de un controlador PID es simple, aunque su simpleza es tambin su debilidad, dado que limita el rango de plantas donde pueden controlar en forma satisfactoria (existe un grupo de plantas inestables que no pueden estabilizadas con ningn miembro de la familia PID). En este captulo estudiaremos los enfoques tradicionales al diseo de controladores PID. [1] Se puede indicar que un controlador PID responde a la siguiente Ecuacin 1:

[Ecuacin 1]

donde e(t) es el error de la seal y u(t) es la entrada de control del proceso. Kp es la ganancia proporcional, Ti es la constante de tiempo integral y Td es la constante de tiempo derivativa. En el dominio de la frecuencia, el controlador PID se puede escribir como:

[Ecuacin 2]

SINTONIZACION DE CONTROLADOR MEDIANTE ZIEGLER-NICHOLS En lazo abierto, muchos procesos pueden definirse segn la siguiente funcin de transferencia:

[Ecuacin 3] Donde los coeficientes K0, 0 y 0 se obtienen de la respuesta del sistema en lazo abierto a una entrada escaln. Se parte del sistema estabilizado en y(t)=y0 para u(t)=u0. Se aplica una entrada escaln de u0 a u1 (el salto debe estar entre un 10% y un 20% del valor nominal) y se registra la respuesta de la salida hasta que se estabilice en el nuevo punto de operacin. [4] Los parmetros se pueden obtener de la respuesta mostrada en la Figura 1:

[Ecuacin 4]

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco

Fig 1. Respuesta de salida ante una entrada escaln. Segn Ziegler-Nichols, la relacin de estos coeficientes con los parmetros del controlador son:

[Ecuacin 5]

CONTROLADOR DIGITAL PID. La funcin de transferencia para el controlador PID digital se convierte en:

[Ecuacin 6]

La funcin de transferencia discreta [Ecuacin 6], tambin puede ser representada como:

[Ecuacin 7] Donde:

[Ecuacin 8] Existen distintas posibilidades de la realizacin prctica de un controlador PID, una de las ms habituales es la realizacin en paralelo:

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco

Fig 2. Diseo paralelo de controlador PID. [4]

8.

MATERIALES Y METODOS El control del proyecto se lo realizar mediante un control PID, el cual ser desarrollado por programacin en un PIC, para su facilidad de aplicacin. El objetivo es fijar un ngulo de aplicacin mediante un setpoint preestablecido, el cual ser variado dependiendo del ngulo deseado, para esto se tiene un sistema de lazo cerrado (ver Fig 1.), dado que la retroalimentacin generar un error entonces se podr aproximar al ngulo deseado disminuyendo el error progresivamente.

Fig 3 PID en sistema de lazo cerrado La maqueta en la cual se mont al circuito consta de un motor DC, y un potencimetro obtenido de un servomotor, debido a su facilidad de movimiento rotatorio. Lo que se hizo, fue la implementacin del circuito (paleta y potencimetro) fijndolo en un eje comn entre la paleta y el potencimetro, de ese modo se tiene lecturas en tiempo real de las VARIACIONES.

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco 8.1 Control PWM velocidad motor

C1
22p

Control PWM para la velocidad del ventilador

X1 C2
22p D1(K) CRYSTAL

RV1

U3
13 14 2 3 4 5 6 7 8 9 10 1 5k OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
kRPM

SetPoint
9%

5k

RV2

Kd
9%

RV3

Ki
9%

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

D1
1N4007

C3
0.1uF

R2
4.7k

Q1
TIP120

5k

RV4

Kp
9%

5k

Fig. 4 Esquematico de conexion de motor 1 Se fue testeando el sistema con potencimetros hasta conseguir el equilibrio deseado, tomando como parmetros las consideraciones de Ziegler-Nichols, esperando un movimiento oscilatorio con oscilaciones casi constantes. Vale destacar que la sintonizacin fue al tanteo variando la posicin de los potencimetros para as encontrar de manera emprica valores que puedan satisfacer la sintonizacin, adems se utiliz un criterio simple de escalabilidad, considerando que el potencimetro era lineal.

#INCLUDE <16F877A.H> #DEVICE ADC=10 #USE DELAY(CLOCK=4000000) #FUSES XT,NOWDT void main() {

+88.8

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco INT16 pot,setpoint, control,kpa; //Variables para lectura de ADC y seal de Control a modulo CCP float sensor,sp,kp; setup_timer_2(t2_div_by_4,249,1); //Configuracion de Timer 2 para establecer frec. PWM a 1kHz setup_ccp1(ccp_pwm); //Configurar modulo CCP1 en modo PWM setup_adc_ports(all_analog); //Configurar ADC setup_adc(adc_clock_internal); while(true) { set_adc_channel(0); //Seleccionar Canal 0 para sensor pot=read_adc(); //Leer ADC sensor=(float)pot; set_adc_channel(1); //Seleccionar Canal 1 para SetPoint setpoint=read_adc(); //Leer ADC sp=(float)setpoint; set_adc_channel(4); kpa=read_adc(); kp=kpa/200.0; //set_adc_channel(3); //kia=read_adc; //ki=kia/500; //Control Proporcional-----------------------control=(setpoint-pot+255)*kp; set_pwm1_duty(control); //Transferencia de senal de control al actuador delay_ms(200); //Periodo de muestreo T=0.2s output_toggle(PIN_B7); //puerto de testing //Control PID---------------------------------//error=(setpoint-sensor); //control del error //P=kp*error/1000.0; //I=((ki*error)/1000.0)+lastI; //D=kd*(error-lasterror)/1000.0; //PID=P+I+D; //Formacion del PID //pwms=PID; //set_pwm1_duty(pwms); //Asignacion de los pulsos dependiendo la seal del PID //delay_ms(150); //output_toggle(PIN_D0); } } 8.2 Control LCD Es importante una correcta presentacin de los datos a mostrar, adems en nuestro caso se utiliz 2 PICs, debido a que un solo PIC presentaba muchas demoras e inconvenientes al ejecutar el programa. Personas entendidas en el tema quizs sugieran consideraciones de diseo ms factibles, tiles e ingeniosas con relacin a la solucin de este inconveniente, son bienvenidas.

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco Aclaramos que no estamos muy familiarizados con el tema de los microcontroladores asi que en el diseo pueden existir errores obvios, se invita a mejorar el diseo.
LCD1
LM016L

10

C1 RV5
22p

X1 C2
22p CRYSTAL
9%

Kp
VSS VDD VEE RS RW E 4 5 6 D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14

1k

RV1

U3
13 14 2 3 4 5 6 7 8 9 10 1 5k OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

SetPoint
9%

5k

RV2

Kd
9%

RV3

Ki
9%

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

5k

RV4

Kp
9%

5k

Fig 5 Esquematico LCD

#INCLUDE <16F877A.H> #DEVICE ADC=10 #USE DELAY(CLOCK=4000000) #FUSES XT,NOWDT #include <LCD.c> #define LCD_DB4 PIN_B4 #define LCD_DB5 PIN_B5 #define LCD_DB6 PIN_B6 #define LCD_DB7 PIN_B7 #define LCD_E PIN_B0 #define LCD_RS PIN_B1 #define LCD_RW PIN_B2 void main() { INT16 pot,setpoint,kpa; //Variables para lectura de ADC y seal de Control a modulo CCP float sensor,sp,kp;

1 2 3

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco //setup_timer_2(t2_div_by_4,249,1); //Configuracion de Timer 2 para establecer frec. PWM a 1kHz //setup_ccp1(ccp_pwm); //Configurar modulo CCP1 en modo PWM setup_adc_ports(all_analog); //Configurar ADC setup_adc(adc_clock_internal); lcd_init(); //inicializacion de la libreria. while (true) { set_adc_channel(0); //Seleccionar Canal 0 para sensor pot=read_adc(); //Leer ADC sensor=(float)pot; set_adc_channel(1); //Seleccionar Canal 1 para SetPoint setpoint=read_adc(); //Leer ADC sp=(float)setpoint; set_adc_channel(4); kpa=read_adc(); kp=kpa/200.0; lcd_gotoxy(1,1); printf(LCD_PUTC,"SP: %2.2f",sp); lcd_gotoxy(1,2); printf(LCD_PUTC,"Pos: %2.2f",sensor); } }

11

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco 9. RESULTADOS Implementacion de la veleta El motor DC tendr su nmero se revoluciones mediante su interaccin con el potencimetro, el cual al percatar que se est alejando del rango asignado, har lo posible por reducir el error de la planta, para de esa manera llegar a valores estables y de respuesta rpida en el esquema.

12

Fig 2 Implementacin de la veleta Tal como ya se lo explico, el ventilador recibe los pulsos generados por las seale s del PWM mediante un circuito operador, de esta manera lo que se busca es hacer que el PIC regule la forma de la onda del PWM, para as inducir mayor o menor velocidad en el motor, teniendo concordancia con los criterios mencionados en el punto anterior. Implementacin del circuito

Fig 3 Implementacin del Circuito 1

Control PID de la velocidad de un motor DC referenciado a un ngulo controlado indirectamente por el mismo

Jos J. Salazar Luis A. Velasco Lo que se realiz en la implementacin del circuito, fue recurrir a la ayuda de potencimetros para la asignacin de un Ko variable para la posterior sintonizacin, de esa manera teniendo ese dato y adems un SetPoint (SP) tambin variable, se lograra que el control fuera ms flexible; el uso de un LCD sirvi para dar valores de las variables en tiempo real La manera como se deben obtener los resultados en este caso fue de manera emprica para trabajar junto al mtodo de Ziegler-Nichols, donde se parte obteniendo oscilaciones constantes y uniformes para empezar a operar; adems se pueden utilizar mtodos alternativos de software, como la funcin IDENT en MATLAB, para crear una tabla con datos y obtener funciones de transferencia.

13

10. CONCLUSIONES Y RECOMENDACIONES El control PID es un mtodo muy extendido en sistemas que se necesite cierto tipo de estabilidad, considerando que no es muy aconsejable en sistemas de extrema precisin. Vale recalcar que se necesita un cierto nivel de conocimiento base de lo que son microcontroladores, debido a que el campo que abarca en el mbito electrnico es muy amplio. Se recurri a programacin en C, debido a que es un lenguaje ms robusto y ms especfico en cuanto a instrucciones se refiere. Anteriormente se program en BASIC, un lenguaje sumamente verstil pero no tan completo como C. El uso de Software es tambin til como para considerarlo en aplicaciones futuras. El hecho de haber utilizado 2 microcontroladores para dos etapas diferentes fue que existan muchos conflictos con los manejos de los tiempos en el programa, debido a la insercin de un componente adicional, el LCD, dado que el tipo de microcontrolador que se utiliz no soporta LCD por hardware, sino que se debe recurrir a programacin y uso de libreras. 11. REFERENCIAS [1] Introduccin a la Implementacin de Controladores PID Anlogos - Juan Antonio Contreras Montes [2] Diseo e Implementacin de un Sistema de Control Digital de Posicin para un Motor DC Presentado-Edwin Alonso [3] http://en.wikipedia.org/wiki/Motor_controller [4] PID_Proteus_Microcontroller.pdf

También podría gustarte