Professional Documents
Culture Documents
IV. PROCEDIMIENTO
0.0087046 ( 0.8132)
() =
( 0.9716)( 0.8072)
0.88615 ( + 20.68)
() =
( + 21.42)( + 2.886)
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
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
Donde Z=Zo
= 4.6423
4.6423 ( + 0.923)
() =
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
R4
10k
-15V
R5
10k
V. CONCLUSIONES
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