EJERCICIO RESUELTO En el siguiente ejercicio se desarrollan diferentes técnicas para el calculo de los parámetros de un controlador. En la siguiente figura se muestra el diagrama de bloque del sistema.
R(S)
C(S)
+
Gc
Gv
-
Gm
Donde: Función de transferencia de la válvula 0.54
=
+1
Función de transferencia del proceso =
0.15 2.8 + 1
Función de transferencia del canal de medición =
1 0.6 + 1
Función de transferencia del controlador P.I.D. = ∗ [ 1 +
1
+ ]
Ahora se se harán los los cálculos cálculos de los parámetros parámetros del regulador regulador P.I.D. P.I.D. utilizando utilizando diferentes métodos.
MÉTODO DE LAS OSCILACIONES PERMANENTES (MOP) Se hará de forma analítica utilizando el diagrama de BODE.
Gp
Se traza el diagrama de BODE a lazo abierto con el controlador proporcional de ganancia uno (kc=1). = ∗ ∗ ∗
Utilizando la programación en matlab que a continuación se muestra; se obtiene los siguientes resultados:
clc; hold off; t=0:0.01:20; %funcion de transferencia de la válvula kv=0.54; tv=1; dv=[tv 1]; Gv=tf(kv,dv); %funcion de transferencia del proceso kp=.15; tp=2.8; dp=[tp 1]; Gp=tf(kp,dp); %funcion de transferencia del canal de medicion km=1; tm=0.6; dm=[tm 1]; Gm=tf(km,dm); %funcion de transferencia a lazo cerrado Gs=series(Gv,Gp); Gslc=feedback(Gs,Gm,-1) %raices de la ecuacion caracteristicas [nsp,dsp] = tfdata(Gslc,'v'); roots(dsp); % CALCULOS DE LOS PARAMETROS DEL REGULADOR UTILIZANDO % EL METODO DE OSCILACIONES PERMANENTES (MOP) POR % Diagrama de Bode Gla=series(Gs,Gm); %FUNCION DE TRANSFERENCIA A LAZO ABIERTO %margin(Gla); %DIAGRAMA DE BODE grid [Km,Pm,Wg,Wp] = margin(Gla); % Km es K critica y Wg es w critica kcrit=Km; Pc=2*pi/Wg; % PARAMETRO DEL CONTROLADOR PID SEGUN TABLA DE ZIEGLE-NICHOLS kc=kcrit/1.7;
ti=Pc/2; td=Pc/8; % CONTROLADOR PID = KC*[1 + 1/tiS + tdS] Gc=pidar(kc,ti,td); % pidar() es una funcion creada para el calculo % de la funcion de tranferencia del P.I.D. % FUNCION DE TRANFERENCIA DEL SISTEMA CON EL CONTROLADOR Gst=series(Gs,Gc) Gt=feedback(Gst,Gm,-1); hold on; step(Gslc,t); % Grafica del comportamiento del sistema sin PID step(Gt,t); % Grafica del comportamiento del sistema con PID grid
Para el calculo de la función de transferencia del controlador P.I.D. se realizo una
función en matlab llamada
pidar.m
. Cuyos comandos son:
function [Gcf]=pidar(kcf,tif,tdf) %programa de pid = Kc( 1 + 1/(tiS)+ tdS ) % CONTROLADOR PID = KC*[1 + 1/tiS + tdS] Gcp=tf(1); Gci=tf(1,[tif 0]); Gcd=tf([tdf 0],1); Gc1=parallel(Gcp,Gci); Gc2=parallel(Gc1,Gcd); % FUNCION DE TRANFERENCIA DEL CONTROLADOR PID Gcf=series(Gc2,kcf); End
Con el comando margin() se obtienen la “k” critica y “w” critico , y se calculan los parámetros del controlador con la Tabla de Ziegler y Nichols. Que se observan en el programa.
Y los resultados son los siguientes: kcrit = 151.9187 Pc = 3.8824 kc = 89.3639 ti = 1.9412 td = 0.4853 En la figura se observa la respuesta del sistema sin el controlador y con el controlador PID con los parámetros calculados anteriormente.
Se puede observar que la respuesta del sistema al escalón unitario es sobreamortiguada y con el valor en estado estacionario de 0.08 aproximadamente. En cambio, al colocarle el controlador el sistema se comporta ahora como subamortiguado siguiendo la respuesta en estado estacionario a la entrada, es decir, mejoro notablemente su respuesta.
MÉTODO DE LA CURVA DE REACCIÓN DEL PROCESO. En este método se abre el lazo y se aplica el estímulo a la válvula directamente, observándose que la respuesta a un paso escalón tiene una forma sigmoidal que puede ser aproximada por un modelo de primer orden con retardo. Para calcular los parámetros se traza una resta tangente al punto de inflexión. Para tal fin se utilizo un polinomio interpolante a la función original. Para tal fin se utilizo el siguiente programa
clc;
hold off; t=0:0.01:25; %funcion de transferencia de la válvula kv=0.54; tv=1; dv=[tv 1]; Gv=tf(kv,dv); %funcion de transferencia del proceso kp=.15; tp=2.8; dp=[tp 1]; Gp=tf(kp,dp); %funcion de transferencia del canal de medicion km=1; tm=0.6; dm=[tm 1]; Gm=tf(km,dm); %funcion de transferencia a lazo cerrado Gs=series(Gv,Gp); Gslc=feedback(Gs,Gm,-1); %step(Gslc,t) % CALCULOS DE LOS PARAMETROS DEL REGULADOR UTILIZANDO % EL METODO DE CURVA DE REACCION del PROCESO % B=Gv*Gp*Gm*M que es igual a lazo abierto = Gla hold on; step(Gla,t) y=step(Gla,t); % POLINOMIO INTERPOLANTE DEL SISTEMA ORIGINAL k=t'; p=polyfit(k,y,7); y1=polyval(p,t); plot(t,y1,'r') grid %BUSCAR EL PUNTO DE INFLEXION CON LA SEGUNDA DERIVADA ES IGUAL CERO p1=polyder(p); p2=polyder(p1); roots(p2) y2=polyval(p,2.3826); % hallar la ecuacion de la recta y2= mx + b m=polyval(p1,2.3826); b=y2-m*2.3826; y2=polyval([m b],t); plot(t,y2,'r') % PARAMETROS DEL CONTROLADOR % h=y(15/(0.01))*.632 % 63.2% del valor final T=3.62; L=0.88;
kcrp=y(15/0.01); kc=1.2*T/(kcrp*L) ti=2*L td=L/2 % CONTROLADOR PID = KC*[1 + 1/tiS + tdS] Gc=pidar(kc,ti,td); % FUNCION DE TRANFERENCIA DEL SISTEMA CON EL CONTROLADOR Gst=series(Gs,Gc); Gt=feedback(Gst,Gm,-1); %step(Gt,t) %grid
Y los resultados fueron los siguientes:
Kc=1.2* T/K*L ; donde K = Amplitud del estado estacionario/ escalon unitario
T = 4.5 – 0.88 y L = 0.88 Es decir que: kc = 61.5190 ti = 1.7600 td = 0.4400 y la respuesta del sistema fue el siguiente.
MÉTODO DE LAS OSCILACIONES AMORTIGUADAS Con el controlador con ganancia proporcional solamente, se aumenta la ganancia hasta que la respuesta al paso escalón oscile con una atenuación de ¼. Para calcular el rango de K donde el sistema es estable se utilizo el método de Ruth-Hurwitz. Dando como resultado 0 < < 151.888
Entonces con K a la mitad del rango máximo se empezó hacer las pruebas, utilizando el programa %clc; hold off; t=0:0.01:20; %funcion de transferencia de la válvula krh=1; % rango de k segun Routh-Hurwitz (0- 151.88) kv=krh*0.54; tv=1; dv=[tv 1]; Gv=tf(kv,dv); %funcion de transferencia del proceso kp=.15; tp=2.8; dp=[tp 1]; Gp=tf(kp,dp); %funcion de transferencia del canal de medicion km=1; tm=0.6; dm=[tm 1]; Gm=tf(km,dm); %funcion de transferencia a lazo cerrado Gs=series(Gv,Gp); %disp(' funcion de trasferencia a lazo cerrado') Gslc=feedback(Gs,Gm,-1) %step(Gslc,t); % salida del sistema a lazo cerrado grid; %raices de la ecuacion caracteristicas [nsp,dsp] = tfdata(Gslc,'v'); %descompone la funcion de trasferencia en %numerador y denominador roots(dsp);
% CALCULOS DE LOS PARAMETROS DEL REGULADOR UTILIZANDO % EL METODO DE OSCILACIONES AMORTIGUADAS (MOA) % PARAMETRO DEL CONTROLADOR PID SEGUN %clc; hold off;
t=0:0.01:20; %funcion de transferencia de la válvula krh=1; % rango de k segun Routh-Hurwitz (0- 151.88) kv=krh*0.54; tv=1; dv=[tv 1]; Gv=tf(kv,dv); %funcion de transferencia del proceso kp=.15; tp=2.8; dp=[tp 1]; Gp=tf(kp,dp); %funcion de transferencia del canal de medicion km=1; tm=0.6; dm=[tm 1]; Gm=tf(km,dm); %funcion de transferencia a lazo cerrado Gs=series(Gv,Gp); %disp(' funcion de trasferencia a lazo cerrado') Gslc=feedback(Gs,Gm,-1) %step(Gslc,t); % salida del sistema a lazo cerrado grid; %raices de la ecuacion caracteristicas [nsp,dsp] = tfdata(Gslc,'v'); %descompone la funcion de trasferencia en %numerador y denominador roots(dsp); % CALCULOS DE LOS PARAMETROS DEL REGULADOR UTILIZANDO % EL METODO DE OSCILACIONES AMORTIGUADAS (MOA) % PARAMETRO DEL CONTROLADOR PID SEGUN TABLA DE ZIEGLE-NICHOLS P=4.85; %PERIODO ENTRE LOS DOS PICOS (1/4) kc=70; ti=P/1.5; td=P/6; % PARAMETROS METODO DE OSCILACIONES PERMANENTES % kcrit 152 por Ruth-Hurwitz % pcrit 3.8 MOP % ti=pcit/2 y td=pcit/8 %kc=(152/2); %ti=(3.8/2); %td=(3.8/8);
% FUNCION DE TRANFERENCIA DEL SISTEMA CON EL CONTROLADOR Gc=pidar(kc,ti,td); Gst=series(Gs,Gc) Gt=feedback(Gst,Gm,-1);
%hold on; step(Gt,t) grid P=4.85; %PERIODO ENTRE LOS DOS PICOS (1/4) kc=70; ti=P/1.5; td=P/6; % PARAMETROS METODO DE OSCILACIONES PERMANENTES % kcrit 152 por Ruth-Hurwitz % pcrit 3.8 MOP % ti=pcit/2 y td=pcit/8 %kc=(152/2); %ti=(3.8/2); %td=(3.8/8); % FUNCION DE TRANFERENCIA DEL SISTEMA CON EL CONTROLADOR Gc=pidar(kc,ti,td); Gst=series(Gs,Gc) Gt=feedback(Gst,Gm,-1); %hold on; step(Gt,t) grid
después de hacer varias sintonizaciones se logro conseguir la relación de un “1/4” entre los dos picos, como se observa en la figura. El periodo fue de (P) = 7.12 – 2.27 = 4.85.
utilizando la TABLA DE ZIEGLE-NICHOLS para el método, los parámetros dieron: kc = 70 ti = 3.2333 td = 0.8083 y el resultado fue el siguiente.
Se observa que este es la mejor respuesta encontrada de los tres métodos, ya que tiene un máximo sobre pico de 25% y un tiempo de estabilización en ts= 8 seg.