You are on page 1of 6

>Planta de velocidad: Diseo de controlador PD< 1

Planta de velocidad: Diseo de controlador PD


Cindy Lorena Rodriguez Osorio
20121109094
Valentina Pinzn Saavedra
20122113296

Hacer uso de las herramientas de Matlab para el diseo


Resumen Disear e implementar un controlador PD para de forma teorica del controlador PD.
la planta de velocidad utilizando un microcontrolador para Disear un controlador PD digital e implementarlo de
mejorar el error y el tiempo de establecimiento de la manera que mejore la respuesta y disminuya el error.
respuesta. Se hace mediante el ingreso del valor de las
RPMs a la entrada de la planta y obteniendo el valor
correspondiente a la salida. III. MARCO TERICO
Palabras clavesPD, SetPoint, error en estado El motor de corriente continua (denominado tambin motor de
estacionario, estabilidad, sobre-impulso, tiempo de corriente directa, motor CC o motor CD) es una mquina que
establecimiento, microcontrolador, visualizador LCD. convierte la energa elctrica en mecnica, provocando un
movimiento rotatorio, gracias a la accin del campo magntico.
Una mquina de corriente continua (generador o motor) se
I. INTRODUCCIN compone principalmente de dos partes. El estator da soporte
mecnico al aparato y contiene los devanados principales de la
La planta de velocidad constituye uno de los principales mquina, conocidos tambin con el nombre de polos, que
procesos que se realizan a diario con su gran aplicacin en pueden ser de imanes permanentes o devanados con hilo de
procesos industriales, por ello realizar el controlador es parte cobre sobre ncleo de hierro. El rotor es generalmente de forma
fundamental de los sistemas actuales. Aunque existe un gran cilndrica, tambin devanado y con ncleo, alimentado con
nmero de sistemas que son controlados analgicamente, la corriente directa mediante escobillas fijas (conocidas tambin
densidad de integracin es muy alta, el creciente nmero de como carbones). Algunas aplicaciones especiales de estos
personas aptas en programacin y la demanda de precisin motores son los motores lineales, cuando ejercen traccin sobre
posicionan a los controladores digitales por encima de los un riel, o bien los motores de imanes permanentes. Los motores
controladores analgicos. de corriente continua (CC) tambin se utilizan en la
construccin de servomotores y motores paso a paso. Adems
Con el fin de realizar el controlador PD para controlar existen motores de CD sin escobillas. Es posible controlar la
digitalmente una planta de velocidad; es necesario conocer la velocidad y el par de estos motores utilizando tcnicas de
respuesta de la planta a diferentes steps, esto con lleva a control de motores CD.
descubrir la respuesta y con ello modelar el comportamiento de
la planta, encontrando su funcin de transferencia. Se explicar Un PD (Proporcional Derivativo) se opone a desviaciones de la
en este trabajo el proceso de diseo del controlador PD digital seal de entrada, con una respuesta que es proporcional a la
para la planta de velocidad. rapidez con que se producen stas.
En los controladores diferenciales, al ser la derivada de una
El controlador ser implementado utilizando el constante igual a cero, el control derivativo no ejerce ningn
microcontrolador PIC16F877A con sus respectivos circuitos efecto, siendo nicamente prctico en aquellos casos en los que
externos de adecuacin para poder trabajar con el microchip la seal de error vara en el tiempo de forma continua. La
dentro de un sistema con importantes requerimientos de ventaja de este tipo de controlador es que aumenta la velocidad
potencia. de respuesta del sistema de control.
La relacin de un controlador proporcional derivativo entre la
salida u(t) y la seal de error e(t) esta dada por:
II. OBJETIVOS
()
() = () +

Analizar el comportamiento de la planta de velocidad Desventajas
para su posterior control. Amplifica las seales de ruido y puede provocar un efecto de
Adquirir los datos de la planta e identificar la funcin saturacin en el actuador.
de transferencia que represente el comportamiento de
la misma.
>Planta de velocidad: Diseo de controlador PD< 2

El PIC16F877 es un microcontrolador con memoria de


programa tipo FLASH, lo que representa gran facilidad en el
desarrollo de prototipos y en su aprendizaje ya que no se
requiere borrarlo con lux ultravioleta como las versiones
EPROM, si no que permite reprogramarlo nuevamente sin ser
borrado con anterioridad. Este dispositivo posee varias
caractersticas que lo hacen muy verstil y eficiente, como lo
son:
Soporta modo de comunicacin serial, posee dos pines
para ello.
Amplia memoria para datos y programa.
Set de instrucciones reducido ( tipo RISC), pero con
las instrucciones necesarias para facilitar su manejo.
Figura 3. Planta de velocidad
El circuito integrado DAC0808 convierte de anlogo a digital
de 8 bits y su configuracin es la siguiente: Eleccin de la funcin de transferencia

En segundo lugar se hace la identificacin de la planta, es decir,


hallamos la funcin de transferencia con ayuda del toolbox de
Matlab SystemIdentificationTool. Se compara las funciones
de transferencia halladas para cada nivel de entrada. Posterior a
esto se selecciona la que ms se acerque al real comportamiento
de la planta.

Para la seleccin de la funcin de transferencia ms cercana se


debe realizar los siguientes pasos:

1. Cargar los datos a Matlab seleccionando las columnas


requeridas para la salida y entrada de la planta.
Figura 1. Convertidor DAC0808

A la salida del convertidor se conecta un convertidor de


corriente a voltaje. Y a la salida de dicho convertidor se le
conecta un amplificador no inversor.

Figura 4. Variables cargadas en MATLAB

2. Abrir el Ident e importar los datos a esta herramienta.

Figura 2. Amplificador no inversor


Y su respectiva ganancia

=1+

IV. PROCEDIMIENTO

Reconocimiento de la planta y Adquisicin de datos


Figura 5. Ident
En primer lugar, se estudio y se comprendi el funcionamiento
3. Elegir los parmetros de ceros y polos deseados, en
de la planta de velocidad. Posterior a esto se procedi a realizar
nuestro caso fue de dos polos reales y un cero.
la adquisicin de los datos de salida y entrada de la planta con
Estimamos la funcin de transferencia y la
la ayuda de la placa Arduino y de matlab, el cual representa de
importamos al workspace de Matlab.
forma grfica el comportamiento de los datos obtenidos. Se
realizaron mediciones del comportamiento a diferentes
entradas, es decir, cambiando el set-point de la salida.
>Planta de velocidad: Diseo de controlador PD< 3

Con esto tenemos que:

0.0087046 ( 0.8132)
() =
( 0.9716)( 0.8072)

Figura 6. Estimacion de la funcin de transferencia

0.88615 ( + 20.68)
() =
( + 21.42)( + 2.886)

4. Generamos la estimacin de la respuesta transitoria y


obtenemos

Figura 9. Respuesta de la planta en z

Estimamos el error de la respuesta de la planta

1 0.228
(%) = 100 = 77.2%
1
Figura 7. Estimacin
2. Partiendo de los siguientes parmetros hallamos el
Diseo del PD y su respectiva comprobacin polo deseado:
En tercer lugar se realiz el diseo del PD discreto: partiendo Ts 0.5 s
de dos parmetros: Mp 0.001%
Zita 0.946
1. Aplicamos transformada Z con ayuda de Matlab. Tabla 1. Parametros de diseo
T=0.01; %Periodo de muestreo
num=0.88615*[1 20.68]; %Numerador de la planta De esta forma se tiene:
den=conv([1 21.42],[1 2.886]); %Denominador de planta Zo=0.9227 + 0.0253
Gps=tf(num,den); %Funcin de transferencia de la planta en s
Gpz=c2d(Gps,T,'zoh') %Ft de la planta en z 3. Hallamos el aporte de los ceros y polos:
0.0253
2 = tan1 0.92270.8072=12.36

0.0253
1 = tan1 =1.5706
0.9227

0.0253
= tan1 0.92770.8132=13

0.97160.9227
3 = 90 + tan1 =152.6
0.0253

De esta forma el ngulo que debe aportar el cero del controlador


es de:
= 180 13 + 1.5706 + 12.36 + 152.6 = 61.63
Es decir:

0.0253
Figura 8. Respuesta de la planta en S =
0.9227
>Planta de velocidad: Diseo de controlador PD< 4

0.0253+81.05
= =-0.923
tan 61.63

4. Con la condicin de magnitud procedemos a hallar


ganancia K:
( 0.9716)( 0.8072)()
=
( 0.8132)( + 0.923)

Donde Z=Zo
= 4.6423

5. Finalmente nuestro controlador PD est dado por:

4.6423 ( + 0.923)
() =

Pasndolo a ecuaciones en diferencia


Figura 12. Circuito del compensador PD
() (1) = 4.6423 () (1 0.923 1 )
() = 4.6423() 4.28484 1 ()
Circuitos auxiliares
() = 4.6423() 4.28484(1) La salida del microcontrolador es digital, por este motivo es
necesario convertir el binario de 8 bits dado por este en un
voltaje adecuado. Para ello se hace uso de un DAC0808 y dos
Diagrama en bloques de la planta y controlador PD amplificadores operacionales como sigue: Convertidor de
corriente a voltaje de ganancia (puesto que el DAC entrega
corriente) y un No inversor con ganancia 2 que permitir al
controlador entregar el voltaje necesario para que se obtenga a
la salida de la planta el step deseado.

15V

R1 R2
5.1k 10k 15
U2 R3
5 14
A1 A1 VREF+ 5.1k
6 U3:A
A2 A2
7 15 U3:B

4
A3 A3 VREF-
8

8
A4 A4
9 4 2
A5 A5 IOUT
10 1 5
A6 A6
11 16 3 7
A7 A7 COMP PIC
12 3 6
A8 A8 VEE
8

DAC0808 C1 TL082

4
0.1uF TL082

Figura 10. Diagrama de bloques -15

R4
10k
-15V
R5
10k

Figura 13. Circuito auxiliar

V. CONCLUSIONES

A pesar de que la planta de velocidad responde


bastante bien y es rpida, logramos hacerla ms rpida
y tambin que siguiera al setpoint ingresado (mximo
3 volts). Matlab brinda una gran ayuda para procesar
los datos obtenidos y proporcionarnos las funciones de
transferencia tanto de la planta por medio de IDENT.
Una vez realizado el controlador, se observ que la
respuesta de la planta sigue a la entrada, es decir al
Figura 11. Respuesta de la planta compensada variar el set point requerido, se obtendr las RPM
deseadas. Esto ltimo se realiza en la programacin
Estimamos el error de la respuesta de la planta compensada del PIC y con los circuitos externos, de esta forma al
1 0.725
(%) = 100 = 27.5%
1
>Planta de velocidad: Diseo de controlador PD< 5

ingresar un valor por teclado, se vara el set point y se case '9':valor[i]=9; break;
obtiene la salida deseada. case '0':valor[i]=0; break;
Para el diseo del controlador PD, la prioridad era case '*':valor[i]=11; break;
case '#':valor[i]=12; break;
disminuir el tiempo de establecimiento y reducir el
default: valor[i]=10; break;
sobreimpulso por lo cual tendr el efecto de }
incrementar la estabilidad del sistema mejorando la if(valor[i]<10)
resuesta transitoria. Se obtuvo la disminucin de 1.04s {
a 0.352s y el error una disminucin de 77.2% a 27.5% lcd_gotoxy(l,2);
sin sobreimpulso. printf(lcd_putc ,"%0.0f",floor(valor[i]));i++;
El diseo de sistemas de control en digital proporciona l++;
ms comodidad y mejor desempeo en el uso de las }
}
interfaces de usuarios y de la manipulacin de los
i--;
datos para el procesamiento. Los controladores if(i==1){setp=valor[1];}
digitales son ms fciles de implementar en if(i==2){setp=valor[2]+valor[1]*10;}
comparacin con los analgicos, debido a que se if(i==3){setp=valor[3]+valor[2]*10+valor[1]*100;}//Convirtiendo
pueden realizar ajustes con reprogramar el los datos ingresado en entero
microcontrolador. Tambin son ms confiables debido if(i==4){setp=valor[4]+valor[3]*10+valor[2]*100+valor[1]*1000;}
a que su densidad de integracin permite mayor
precisin en el control del sistema. }

void main()
{
VI. BIBLIOGRAFA output_c (0); //Inicializacion del DAC
port_b_pullups(TRUE);
Ingeniera de control moderna, 3. Edicin, kbd_init(); //Inicializa el Teclado
lcd_init(); //Inicializa LCD
KatsuhikoOgata.
setup_adc(adc_clock_internal);
http://www.fing.edu.uy/inco/cursos/firmware/laborat setup_adc_ports(all_analog);
orio/cartillaPIC16F877.pdf set_adc_channel(0); //Lectura por el pin A0
printf(lcd_putc ,"\f Control P.D \n Velocidad ");
delay_ms(2000);
VII. ANEXOS
while(true)
{ teclado1=0;puerto_sal=0;
Programacin del PIC ek=0;uk=0;ek1=0;mk=0;
inicio();
#include <16F877a.h> //signo=1;
#fuses XT,NOWDT,NOPROTECT printf(lcd_putc,"\f Setpoint: \n %f",setp/1000);
#use delay(clock=4000000) delay_ms(3000);
#include <math.h>
#include <lcd.c> //while(teclado1 !=0) //Ciclo principal
#include <kbd.c> //while(ek<1)
while(teclado1==0)
int signo=3,teclado1=0,puerto_sal=0; {
doublevset,vsen,sensor=0; switch(kbd_getc())
doubleuk=0,ek=0,ek1=0,mk; { case '#': teclado1=1; break;
float valor[5],setp=0; default : teclado1=0; break;}
sal_planta=read_adc(); //Lectura del DAC
void inicio() //Funcin encargada de recibir los datos de entrada vsen=(sal_planta*5/255); //Conversion de binario a voltaje (sensor)
{ int i=1,l=1; vset=setp/1000; //Conversin del setpoint a voltaje
signo=3; ek=vset-vsen; //Error de la planta
valor[1]=0;valor[2]=0;valor[3]=0;valor[4]=0;
printf(lcd_putc,"\f Ingrese RPM"); uk=4.6423*ek-4.2848*ek1; //Ecuacin en diferencia del PD
if(uk>=3){uk=3;}
while(valor[i]!=12) if(uk<=0){uk=0;}
{ switch(kbd_getc()) }
{ case '1':valor[i]=1; break; output_e (0); //Led indicador de control OFF
case '2':valor[i]=2; break;
case '3':valor[i]=3; break; //while(teclado1==0)
case '4':valor[i]=4; break; //{ switch(kbd_getc())
case '5':valor[i]=5; break; // { case '#': teclado1=1; break;
case '6':valor[i]=6; break; //EsperasiguienteSetPoint
case '7':valor[i]=7; break; // default : teclado1=0; break;
case '8':valor[i]=8; break; //} //} }
>Planta de velocidad: Diseo de controlador PD< 6

SIMULACIN

LCD1
LM016L

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3

4
5
6

7
8
9
10
11
12
13
14
C3
22pF
U1
5v
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
35
RB2
X1 DAC
2
RA0/AN0 RB3/PGM
36
3 37
CRYSTAL
4
RA1/AN1
RA2/AN2/VREF-/CVREF
RB4
RB5
38
A 7 8 9
5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
7
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
15
A8
B 4 5 6
8 16
RE0/AN5/RD RC1/T1OSI/CCP2 A7
C2 9
RE1/AN6/WR RC2/CCP1
17
A6
10 18
22pF RE2/AN7/CS RC3/SCK/SCL
RC4/SDI/SDA
23
A5
A4
C 1 2 3
1 24
MCLR/Vpp/THV RC5/SDO A3
25
RC6/TX/CK A2 ON
RC7/RX/DT

RD0/PSP0
26

19
A1 D
C 0 = +

4
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A

15V

R1 R2
5.1k 10k 15
U2 R3
5 14 5.1k
A1 A1 VREF+
A2
6
A2 U3:A
7 15 U3:B

4
A3 A3 VREF-
8

8
A4 A4
9 4 2
A5 A5 IOUT
10 1 5
A6 A6
11 16 3 7
A7 A7 COMP PIC
12 3 6
A8 A8 VEE

8
DAC0808 C1 TL082

4
0.1uF TL082

-15

R4
10k
-15V
R5
10k

You might also like