Sunteți pe pagina 1din 33

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos

Julin Salazar Vaca

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen N. Angulo Jos J. Salazar Estudiantes de Ingeniera Mecatrnica de la Escuela Politcnica del Ejrcito

1. RESUMEN En el siguiente artculo se presenta la implementacin de un control PID Fuzzy para una planta de iluminacin manejada por un PWM, determinando las reglas para su respectivo comportamiento a travs de sus variables de entrada y salida, mediante la programacin en Matlab realizando la comunicacin serial con el computador. Se detallar el procedimiento necesario para el clculo de las variables que intervienen en el control Fuzzy PID y la relacin existente entre ellas. Se realiza el anlisis de estabilidad, se implementa el control PD en lazo cerrado y un control difuso, donde el control difuso hace la funcin de compensador para eliminar el error en estado estable.

2. ABSTRACT The present paper describes implementation for lighting plant driven by PWM, setting the rules for respective controlled behavior using the appropiate input and output variables programming in matlab stablishing serial communication between circuit and PC. It will be detailed the neccesary procedure to calculate the variables which will work in fuzzy PID control and relationship between them, stability analysis will be done, setting a PD closed-loop control and Fuzzy control, where the fuzzy one makes the function of compensator for deleting steady state error. 3. PALABRAS CLAVE Fuzzy, PID, Sintonizacin, Error, Comunicacin Serial, derivada, compensador, set point, Kp. FPD controllers, FPD+I Controllers. 4. FILIACIN DEL AUTOR Karen Nataly Angulo Acunso Jos Julin Salazar Vaca karen_nat_7@hotmail.com +59384682247 josejuliansalazar@gmail.com +59384587028

Estudiantes de Ing. Mecatrnica 9no nivel cursando la materia de Automatizacin Industrial Mecatrnica.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

5. INTRODUCCIN 5.1 Objetivos Disear un controlador Fuzzy-PID para una planta de iluminacin mediante la programacin en Matlab y la comunicacin serial para adquirir los datos. 5.2 Objetivos Especficos Analizar y establecer el sistema. Determinar las constantes del controlador PID que estabilice la planta. Escoger el mejor control de acuerdo a la respuesta de la planta Realizar las reglas para el control difuso del error en el controlador PID. 5.3 Alcance de estudio El alcance del presente proyecto es fortalecer los conceptos obtenidos de los controladores PID y Fuzzy relacionndolos entre s para la optimizacin del controlador del sistema logrando que el lector utilice el documento para conocer el procedimiento que debe seguir en el control de una planta de iluminacin. Adems se puede utilizar el artculo para eleccin del tipo de controlador de acuerdo a la respuesta requerida por el lector mayor rapidez o mayor estabilizacin y de acuerdo a esto parmetros decidir el controlador que ms se ajuste o si es necesario utilizarlos juntos. 6. GENERALIDADES 6.1 Controlador FUZZY PID Cuando el problema de control es regular la salida del proceso en torno a un punto de ajuste, es posible considerar el error como una entrada incluso en un controlador difuso y la integral del error y la derivada del error puede ser usado como entrada tambin. Sin embargo en el controlador PID es difcil hablar del efecto de cada factor de ganancia en el tiempo de subida, sobre pico, y el tiempo de establecimiento porque los controladores fuzzy PID exigen mayores cambios adems de trabajar con su no linealidad y ganancias. Se requiere encontrar un procedimiento de ajuste sistemtico hara ms simple la instalacin de controladores difusos. Los controladores PID pueden ser sintonizados en una variedad de formas, incluyendo la sintonizacin de Ziegler-Nichols puesto que dan forma al bucle, los mtodos de anlisis mediante la optimizacin, la colocacin del autotuning.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

6.2 Control Fuzzy Proporcional y Derivativo La accin derivativa ayuda a predecir el error y el control proporcional derivado utiliza la accin derivada para mejorar la estabilidad de lazo cerrado. La estructura del controlador PID es:

Ec(1) La seal de control es proporcional a una estimacin de los segundos por delante del error Td, donde la estimacin se obtiene por la interpolacin. Para Td=0 el control es puramente proporcional, cuando Td se aumenta gradualmente, se vuelve amortiguado. Si es demasiado grande Td el sistema se vuelve sobreamortiguado y comenzar a oscilar de nuevo.

Fig1.Fuzzy PD controller

La entrada del controlador fuzzy proporcional derivativo (FPD) es el error y la derivada del error. En el control fuzzy el ltimo trmino es usualmente llamado cambio del error.

Ec(2) Esta es una aproximacin discreta al cociente diferencial utilizando una diferencia en atraso. En los controladores anteriores no se usaba el tiempo de muestreo para determinar el cambio del error. La salida del controlador es una funcin no lineal del error y del cambio del error. Ec(3)

Ec(4) Ec(5)

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

Ec(6) La aproximacin corresponde a la sustitucin de la superficie de fuzzy de entrada-salida con un plano. La aproximacin es mejor si se escoge el universo de salida sea la suma de la entrada de los universos de entrada. El fuzzy PID puede ser aplicado cuando el control proporcional es inadecuado. El trmino derivativo reduce el sobre pico, pero puede ser sensible al ruido o bien a un cambio abrupto a la referencia causando el fenmeno llamado derivate kick. 6.3 Control Incremental Si hay un error en estado estacionario, es necesaria la accin integral. La accin integral aumentar la seal de control si hay un error positivo pequeo, no importa cun pequeo sea el error, la accin integral siempre volver a cero en el estado de equilibrio. Es posible obtener un controlador fuzzy PID utilizando el error y el cambio en el error como entradas a la base de reglas. La experiencia muestra, que es bien difcil de escribir las reglas para el accin integral. No se ahondar en este concepto debido a que el presente artculo no es usado.

Fig2. Control Fuzzy integral

6.4 Control Integral- proporcional y derivativo. Es sencillo visualizar en un controlador Fuzzy PID con tres trminos de entrada: error, integral del error y derivada del error. Una regla basada con 3 entradas, sin embargo se vuelve un valor grande, las reglas del error suelen ser un problema. Entonces es comn separar la accin integral como un controlador fuzzy PD+I. El error integral es calculado.

Ec(7)

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

Fig3. Controlador fuzzy PD+I

El controlador es as una funcin de 3 entradas. Ec(8) La aproximacin lineal es:

Ec(9) En la ltima lnea se asume que GE no es cero: Ec(10) Ec(11) Ec(12) Este controlador provee todos los beneficios de un controlador PID, pero tambin las desventajas del dervate kick e integrador winup.

Tabla1. Rpida referencia de los controladores.

7. MATERIALES Y MTODOS 7.1 Diseo del circuito Para el diseo de la planta se estableci el funcionamiento de acuerdo al control que se desea realizar.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

La variacin de luminosidad requiere un PWM para la variar la frecuencia del foco, para evitar realizar un circuito de potencia se reemplaz el foco por una lmpara de leds que consume una potencia mucho menor a la de un foco. Para el control es necesario medir la cantidad de luminosidad por lo tanto se requiere un sensor, el escogido es una fotorresistencia (LDR) que vara valor de resistencia de acuerdo a la luminosidad que sensa. 7.2 Implementacin del circuito Para realizar el circuito se deben establecer el acondicionamiento de las seales para el funcionamiento de los componentes. Divisor de Voltaje El sensor que se utiliza (LDR) tiene una salida de variacin de resistencia, debido a que este tipo de seal un microcontrolador no leera se acondicion a voltaje mediante un circuito divisor, el cual consta de una alimentacin de voltaje de 5V, una resistencia de 10K y la salida del LDR en paralelo; de esta manera se obtiene una variacin de voltaje de 0-3.5V que ser la variable de entrada al controlador PWM El PWM es un variador de frecuencia, en el presente proyecto se aplica para la variacin de luminosidad de la lmpara. Con la ayuda de un microcontrolador PIC16F877A se realizar la generacin del PWM, generando un cdigo de programacin que realiza la conversin de voltaje a porcentaje de frecuencia de salida. Dentro del pic tambin se realiza la programacin de la comunicacin y la librera para el control de LCD para visualizar los datos. A continuacin se muestra el programa del PIC #include <serial232_pic.h> #include <flex_lcd.c> float pv=0, send=0; int16 pwm=0; int16 pid=0; char pidc=0; #int_RDA void RDA_isr(void) { pidc=getch(); if (pidc=='0')

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

{pid=0;} else {pid=pidc;} } void main()

{ setup_adc_ports(AN0_AN1_VSS_VREF); setup_adc(ADC_CLOCK_DIV_8); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_16,249,1); setup_ccp1(CCP_PWM); setup_ccp2(CCP_OFF); set_pwm1_duty(0); set_pwm2_duty(0); setup_comparator(NC_NC_NC_NC); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); lcd_init(); while(true) { set_adc_channel(0); delay_us(10); int1 done = adc_done();

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

while(!done) { done = adc_done(); } pv=read_adc(); send=pv*5/1023; pwm=pid*4;//envio de duty cycle por porcentaje set_pwm1_duty(pwm); delay_ms(20); lcd_gotoxy(1,1); printf(lcd_putc,"SP %lu PWM %lu",pid,pwm); printf(lcd_putc," lcd_gotoxy(1,2); printf (lcd_putc,"PV= %2.2f V",send); printf ("%.2fF",send); delay_us(10); } } Acondicionamiento a la salida del PWM Debido a que la salida PWM del PIC maneja corrientes bajas, se requiere aumentar la corriente para el funcionamiento de la lmpara de leds por tal motivo se requiri un transistor 2N3904 para limitar la corriente de la lmpara y controlar la variacin de frecuencia. Comunicacin Serial Para la comunicacin serial se utiliza un Max232 que realiza la conversin de TTL a serial y conector DB9 en el que se realizar la conexin de los pines con el transmisor y receptor serial del PIC y el computador. ");

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

Fig4.Circuito implementado

7.3 Diseo del Controlador PID - Determinacin de la funcin de transferencia y constantes de PID Antes de realizar la programacin del controlador en Labview se debe encontrar las constantes Kc, Ti y Td. Para determinar estas constantes se requiere la funcin de transferencia de la planta, para lo cual se realizan mediciones de entrada y salida. Mediante una funcin de Matlab (Ident) se ingresan los datos tomados y se determina la funcin de transferencia.

Fig5. Funcin Ident para determinar la funcin de transferencia

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

10

Con la ayuda de esta funcin se obtienen las constantes para la funcin de transferencia.

Fig6. Funcin de transferencia obtenida

Una vez determinada la funcin de transferencia se escoge el mtodo para el diseo del controlador: el mtodo escogido es Ziegler Nichols mediante una programacin en matlab se encuentran las constantes.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

11

Obteniendo las constantes, en la grfica podemos notar que el overshoot obtenido es de 44.4% :

Fig7.Grfica de controlador PID

A continuacin mostraremos la grfica del controlador luego de la sintonizacin realizada para el artculo Control Fuzzy y PID en una planta de luminosidad en Labview de los mismos autores. El objetivo del presente estudio es alcanzar esta sintonizacin mediante un control Fuzzy PD o Fuzzy PD+I.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

12

Fig8. Grfica de estabilizacin del controlador

7.4 Clculos Se realizaron clculos para dos controladores Fuzzy PD y Fuzzy PD+I de acuerdo a lo establecido anteriormente en el punto 6.4.

Estos valores fueron obtenidos por la sintonizacin en matlab por el mtodo de Ziegler-Nichols. [ [ ] ]

Debido a que las variaciones del error en nuestro sistema son mayores que 1 en algunos casos se decidi usar un rango de -50 a 50 de esa manera GE tendra una ganancia unitaria.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

13

Ec(13) Ec(14) Ec(15) Con los valores obtenidos se procede a realizar la programacin para los diferentes tipos de controladores Fuzzy PID. 7.5 Reglas para la fuzzificacin del error CE/E NB NS ZE PS PB NB PB PB PS PS ZE NS PB PS PS ZE NS ZE PS PS ZE NS NS PS PS ZE NS NS NB PB ZE NS NS NB NB

Tabla2. Reglas para la fuzzificacin

CE : Cambio en el error E: Error PB: Positive Big PS: Positive Small ZE: Zero NS: Negative Small NB: Negative Big Los rangos para las variables se detallaran a continuacin en la explicacin de la fuzzificacin. 7.6 Programacin en Matlab o Controlador Fuzzy PD con derivada en el error con filtro.

Es el controlador fuzzy utilizado por defecto en el cual se usa la derivada del error. Con un filtro que asienta la seal cuando se empieza a disparar. %ESCUELA POLITECNICA DEL EJERCITO %AUTOMATIZACION MECATRONICA %ANGULO KAREN %SALAZAR JOSE JULIAN %----------------------------------------------------%CONTROL FUZZY PD DE ILUMINACION %Uso de derivada del error y filtro

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

14

%----------------------------------------------------warning off clc clear all fismat=readfis('FPD'); l=0; pidc = 0; sp=input('Ingrese % luminocidad: '); sp2=sp/2; kp=7.5; %0.018; kd=0.65595; %0.0000045; ki=0.017798; %0.0000006722; GE=1; GCE=3.0354; GIE=0.08236; GU=0.2161; error1=0; error2=0; % Deri=0; Io=0; sent=0; lastsent=0; i=0; clear tgrafy clear tgrafx clear show % Configuraion recepcion---------------------------s=serial('COM7'); set(s,'BaudRate',19200,'DataBits',8,'Parity','none','StopBits',1,'FlowControl','no ne','timeout',5,'terminator',70,'inputbuffersize',1024,'requesttosend','off');

num=30; tabla=zeros(num,3);

while (1) pidc = sp2; i=i+1; sent=0; fopen(s) dato=fscanf(s); pause(0.05) fclose(s) dato=strrep(dato,'F',''); daton=str2double(dato); sent=5.0982*(daton^3)-3.3542*(daton^2)+17.09*daton-0.1518;

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

15

%Perturbacion-------------------------------------------if (sent >= 60) && (sent<=120) sp2=15; elseif (sent >= 121) && (sent <= 250) sp2=6; elseif (sent>=251) sp2=1; else sp2=sp/2; end; %Filtro---------------------------------------------------if (sp2 >= sent+20)||(sp2 <= sent-20) sent=sp2; end; %----------------------------------------------------------%--------------PID-----------------error1=sp2-sent; %dinput=sent-lastsent; %Prop=(kp*error1); %Inte=(Io*ki*error1); %Io=Inte; Deri=(kd*(error1-error2)/3); %Deri=-1*(kd*(dinput)/3); %pid=(Prop+Inte+Deri); Deriv=Deri*GCE; lastsent=sent; error2=error1; u=evalfis([error1 Deriv], fismat); out=u*GU; %----Generacion de seal FPD----------------------------pidc=convergent(sp2*(1+out)); if (pidc >= 49) pidc = sp2; elseif (pidc <= 0) pidc = sp2; end; clc sp sent2=sent*2; disp(' # % Luz Error') tabla(i,1)=i; tabla(i,2)=sent2; tabla(i,3)=error2; disp(tabla) %----------- grafica-----------------------------tgrafy(1,i)=sp;

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

16

tgrafy(2,i)=tabla(i,2); tgrafx(i)=i; %t=whos('envio'); % Configuraion envio 1----------------------------set(s,'outputBufferSize',512); %t.bytes fopen(s) fprintf(s,'%s',pidc) pause(0.05) fclose(s) l=l+1; if l==10 cc=input('Continuar?: 1/0 --> '); if (cc == 1) sp=0; sp=input('Ingrese % luminocidad: '); sp2=sp/2; % sent=0; % lastsent=0; pidc=sp2; l=0; error1=sp2-sent; error2=0; % Deri=0; elseif (cc == 0) break; end; end; plot(tgrafx,tgrafy) title('Respuesta del Sistema') xlabel('Iteracion') ylabel('Respuesta') AXIS([0 i 0 100]) end o Controlador Fuzzy PD con derivada de salida con filtro. Se analiz tambin un controlador Fuzzy PD con derivada a la salida para analizar posibles problemas relacionados con el dervate kick. De igual manera se us un filtro para evitar que el valor de la salida se dispare. warning off clc clear all fismat=readfis('FPD'); l=0; pidc = 0; sp=input('Ingrese % luminocidad: ');

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

17

sp2=sp/2; kp=7.5; %0.018; kd=0.65595; %0.0000045; ki=0.017798; %0.0000006722; GE=1; GCE=3.0354; GIE=0.08236; GU=0.2161; error1=0; error2=0; % Deri=0; Io=0; sent=0; lastsent=0; i=0; clear tgrafy clear tgrafx clear show % Configuraion recepcion---------------------------s=serial('COM7'); set(s,'BaudRate',19200,'DataBits',8,'Parity','none','StopBits',1,'FlowControl','n one','timeout',5,'terminator',70,'inputbuffersize',1024,'requesttosend','off'); num=30; tabla=zeros(num,3); while (1) pidc = sp2; i=i+1; sent=0; fopen(s) dato=fscanf(s); pause(0.05) fclose(s) dato=strrep(dato,'F',''); daton=str2double(dato); sent=5.0982*(daton^3)-3.3542*(daton^2)+17.09*daton-0.1518; %Perturbacion-------------------------------------------if (sent >= 60) && (sent<=120) sp2=15; elseif (sent >= 121) && (sent <= 250) sp2=6; elseif (sent>=251) sp2=1; else sp2=sp/2; end; %Filtro---------------------------------------------------if (sp2 >= sent+20)||(sp2 <= sent-20) sent=sp2;

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

18

end; %----------------------------------------------------------%--------------PID-----------------error1=sp2-sent; dinput=sent-lastsent; %Prop=(kp*error1); %Inte=(Io*ki*error1); %Io=Inte; %Deri=(kd*(error1-error2)/3); Deri=-1*(kd*(dinput)/3); %pid=(Prop+Inte+Deri); Deriv=Deri*GCE; lastsent=sent; error2=error1; u=evalfis([error1 Deriv], fismat); out=u*GU; %----Generacion de seal PID con perturbacion---pidc=convergent(sp2*(1+out)); if (pidc >= 49) pidc = sp2; elseif (pidc <= 0) pidc = sp2; % else pidc=convergent(sp2*(1+out)); end; clc sp sent2=sent*2; disp(' # % Luz Error') tabla(i,1)=i; tabla(i,2)=sent2; tabla(i,3)=error2; disp(tabla) %----------- grafica-----------------------------tgrafy(1,i)=sp; tgrafy(2,i)=tabla(i,2); tgrafx(i)=i; %t=whos('envio'); % Configuraion envio 1----------------------------set(s,'outputBufferSize',512); %t.bytes fopen(s) fprintf(s,'%s',pidc) pause(0.05) fclose(s) l=l+1; if l==10

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

19

cc=input('Continuar?: 1/0 --> '); if (cc == 1) sp=0; sp=input('Ingrese % luminocidad: '); sp2=sp/2; % sent=0; % lastsent=0; pidc=sp2; l=0; error1=sp2-sent; error2=0; % Deri=0; elseif (cc == 0) break; end; end; plot(tgrafx,tgrafy) title('Respuesta del Sistema') xlabel('Iteracion') ylabel('Respuesta') AXIS([0 i 0 100]) End o Control fuzzy PD+I Se trabaja solo con el error y la sumatoria de la accin integral. La accin integral se multiplica con el GIE encontrado en la Ec 15, este valor es sumado con el fuzzy y a esto se multiplica por la ganancia Gu. A continuacin se presenta la programacin en el matlab: warning off clc clear all fismat=readfis('FPD'); l=0; pidc = 0; sp=input('Ingrese % luminocidad: '); sp2=sp/2; kp=7.5; %0.018; kd=0.65595; %0.0000045; ki=0.017798; %0.0000006722; GE=1; GCE=3.0354; GIE=0.08236; GU=0.2161; error1=0; error2=0; % Deri=0; Io=0; sent=0;

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

20

lastsent=0; i=0; clear tgrafy clear tgrafx clear show % Configuraion recepcion---------------------------s=serial('COM7'); set(s,'BaudRate',19200,'DataBits',8,'Parity','none','StopBits',1,'FlowControl','none','ti meout',5,'terminator',70,'inputbuffersize',1024,'requesttosend','off'); num=30; tabla=zeros(num,3); while (1) pidc = sp2; i=i+1; sent=0; fopen(s) dato=fscanf(s); pause(0.05) fclose(s) dato=strrep(dato,'F',''); daton=str2double(dato); sent=5.0982*(daton^3)-3.3542*(daton^2)+17.09*daton-0.1518; %Perturbacion-------------------------------------------if (sent >= 60) && (sent<=120) sp2=15; elseif (sent >= 121) && (sent <= 250) sp2=6; elseif (sent>=251) sp2=1; else sp2=sp/2; end; %Filtro---------------------------------------------------if (sp2 >= sent+20)||(sp2 <= sent-20) sent=sp2; end; %----------------------------------------------------------%--------------PID-----------------error1=sp2-sent; %dinput=sent-lastsent; %Prop=(kp*error1); Inte=(Io*ki*error1); Io=Inte; Deri=(kd*(error1-error2)/3); %Deri=-1*(kd*(dinput)/3);

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

21

%pid=(Prop+Inte+Deri); Deriv=Deri*GCE; lastsent=sent; error2=error1; Integr=Inte*GIE; u=evalfis([error1 Deriv], fismat); out=(u+Integr)*GU; %----Generacion de seal FPD----------------------------pidc=convergent(sp2*(1+out)); if (pidc >= 49) pidc = sp2; elseif (pidc <= 0) pidc = sp2; end; clc sp sent2=sent*2; disp(' # % Luz Error') tabla(i,1)=i; tabla(i,2)=sent2; tabla(i,3)=error2; disp(tabla) %----------- grafica-----------------------------tgrafy(1,i)=sp; tgrafy(2,i)=tabla(i,2); tgrafx(i)=i; %t=whos('envio'); % Configuraion envio 1----------------------------set(s,'outputBufferSize',512); %t.bytes fopen(s) fprintf(s,'%s',pidc) pause(0.05) fclose(s) l=l+1; if l==10 cc=input('Continuar?: 1/0 --> '); if (cc == 1) sp=0; sp=input('Ingrese % luminocidad: '); sp2=sp/2; % sent=0; % lastsent=0; pidc=sp2; l=0; error1=sp2-sent; error2=0; Io=0; % Deri=0;

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

22

elseif (cc == 0) break; end; end; plot(tgrafx,tgrafy) title('Respuesta del Sistema') xlabel('Iteracion') ylabel('Respuesta') AXIS([0 i 0 100]) end 7.7 Reglas y rangos de fuzzyficacin del error o Rangos del error El rango intermedio es ms pequeo para que se pueda obtener una mejor respuesta para un error de 0.

Fig9. Fuzzificacin de la variable de error

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

23

Rangos del cambio de error

Fig10. Fuzzificacin de la variable cambio de error o

Rangos de variable de salida El rango de valor de cero es ms pequeo para que se pueda obtener una mejor respuesta.

Fig11. Rangos de Salida

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

24

De igual manera para el labview se realiz la fuzzificacin con las mismas reglas y rangos con la ayuda de una herramienta de este programa que permite crear el archivo fuzzy .fs.

Fig12. Superficie obtenida de la fuzzificacin

7.8 Controladores en Labview Como trabajo adicional se realizaron los controladores FPD con la derivada del error y el FPD+I para comparar la respuesta respecto a la programacin en matlab, debido a que la toma de datos es mejor y ms rpida. FPD Las lneas de programacin en el matlab se convierten en mtodo grfico para realizar las operaciones aritmticas y la respectiva conexin con las DAQ para adquirir y generar los datos.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

25

Fig13. Programacin en Labview FPD

FPD+I Esta vez se le agrega a la programacin la constante integral con sus respectivas operaciones para el control.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

26

Fig14. Programacin en Labview FPD+I

8. RESULTADOS Se implement la planta con los circuitos antes mencionados y se realiz la conexin serial para intercambiar los datos entre el programa en el computador (Matlab) y el microcontrolador encargado de manejar la luminosidad de la lmpara. 8.1 Control FPD con derivada en el error o A continuacin se presenta la grfica de la respuesta de la planta con el controlador FDP con la derivada del error sin filtro.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

27

Fig.15 Respuesta al controlador FPD con derivada del error sin filtro

Ahora se puede comparar la respuesta del mismo controlador con filtro. Se puede observar que el filtro es otra manera que ayuda a eliminar el derivate kick.

Fig16. Respuesta de controlador FPD con derivada del error con filtro

Se puede notar la diferencia en la respuesta del controlador el filtro ingresado evita la formacin de picos y sobresaltos en la salida.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

28

Se muestra el resultado de las iteraciones para un control FPD con derivada en el error y con filtro observando la variacin del error y porcentaje de luminosidad a la salida del microcontrolador.

Tabla3. Presentacin de las iteraciones realizadas en el matlab

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

29

Fig17. Control FPD derivada del error y filtro

8.2 Control FPD con derivada a la salida Otro mtodo con el que realizaron pruebas para observar la respuesta del controlador fue con derivada de la salida, el cual es otra manera de eliminar el dervate kick que se produce sin necesidad de un filtro.

Fig18. Respuesta del controlador FPD con derivada a la salida

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

30

8.3 Control FPD+I Se muestra la grfica para un controlador FPD+I, como se mencion anteriormente este tipo de controlador tienes las mismas ventajas que un PID sin embargo en este se produce el fenmeno de dervate kick y winup los cuales deben ser eliminados mediantes filtros y establecimiento de lmites.

Fig19. Respuesta del control FPD+I

8.4 Control en Labview Se realiz el controlador en labview como un adicional para la verificacin de la respuesta. Las respuestas en el Labview sirvieron como gua para observar la diferencia de operacin del controlador de acuerdo al software de programacin adems de realizarse el control en tiempo real dentro de un entorno grfico.

Se observa que el tiempo de estabilizacin del sistema est bordeando los valores de 3 a 4s.

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

31

Fig20. Control FPD en labview

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca
Fig21. Control FPD+I en labview

32

9. CONCLUSIONES Y RECOMENDACIONES El uso de un controlador FPD+I ofrece todas las ventajas de los controladores anteriormente citados sin embargo, la aplicacin del criterio para usar cada una de las configuraciones depende el sistema a ser aplicado. Tal como se mostr en la figura 7, la respuesta real del sistema ofrece tiempos de estabilizacin demasiado altos, adems de un overshoot considerable, en el estudio anteriormente realizado "Control PID de la luminosidad de una lmpara de LEDs referenciado a una LDR", sirvindose de las constantes obtenidas, se produjo un refinamiento de las mismas para adecuar la planta de modo ms efectivo, figura 8; ahora con la implementacin del controlador fuzzy pd o fuzzy pd+il la refinacin de las variables se da de forma automtica y el sistema se estabiliza de acuerdo al set point requerido, sin embargo no llega a los tiempos usados con el refinamiento manual. El uso de controladores fuzzy no lineales ayudara a q el sistema no produzca un comportamiento similar a un crisp pid controller, ya que las respuestas se acomodaran mejor al sistema, sin embargo, la respuesta obtenida fue sumamente satisfactoria para esta aplicacin, que en este caso utiliz un fuzzificacin lineal. Es necesario una sintonizacin previa de las constantes PID antes de la implementacin de un controlador de la magnitud de un Fuzzy PD+I, ya que ste es el punto de partida para encontrar las ganancias responsables del controlador [GE, GCE, GIE, GU]. Es importante conocer posibles rangos de accin del error en el sistema, debido que con esto se pueden setear rangos de accin para las entradas del error y del cambio del error [derivada del error], as como el valor de GE que es asumido dependiendo de los valores anteriores.

10. REFERENCIAS Tuning of Fuzzy PID Controllers. Jantzen Jan, Technical University of Denmark: Dept of automation. Jantzen Jan. Dessing of fuzzy Controllers, Technical University of Denmark: Dept of automation. https://docs.google.com/document/edit?id=1Xcu0nYEUPb03MXdxvmewMzF4xxOzP gEfw-gNZkkyrbc&hl=en&pli=1 http://www.dia.uned.es/~fmorilla/MaterialDidactico/El%20controlador%20PID.pdf

Control Fuzzy PID en una planta de luminosidad en Matlab mediante comunicacin Serial Karen Nataly Angulo Acunso Jos Julin Salazar Vaca

33

S-ar putea să vă placă și