Você está na página 1de 10

Interfaz gráfica de Usuario basado en el

método de la curva de reacción de Cohen y


Coon para Control PID
Facultad de Ingeniería Electrónica y Eléctrica, Universidad Nacional Mayor de San Marcos,
Lima Perú

I. OBJETIVO

Calcular los parámetros de control PID para su respetivo set POINT haciendo uso de una Interfaz
Gráfica de Usuario diseñada para realizar operaciones con métodos numéricos basados en el
método de la Curva de Reacción de Cohen y Coon, obteniendo estos datos se puede implementar
por ejemplo un control de Temperatura.

II. MARCO TEÓRICO

Control PID

Un controlador PID (Proporcional Integrativo Derivativo) es un mecanismo de control


genérico sobre una realimentación de bucle cerrado, ampliamente usado en la industria para
el control de sistemas. El PID es un sistema al que le entra un error calculado a partir de la
salida deseada menos la salida obtenida y su salida es utilizada como entrada en el sistema
que queremos controlar. El controlador intenta minimizar el error ajustando la entrada del
sistema.

El controlador PID viene determinado por tres parámetros: el proporcional, el integral y el


derivativo.

Acción proporcional
La respuesta proporcional es la base de los tres modos de control, si los otros dos, control
integral y control derivativo están presentes, éstos son sumados a la respuesta
proporcional. “Proporcional” significa que el cambio presente en la salida del controlador
es algún múltiplo del porcentaje del cambio en la medición.
Este múltiplo es llamado “ganancia” del controlador. Para algunos controladores, la acción
proporcional es ajustada por medio de tal ajuste de ganancia, mientras que para otros se
usa una “banda proporcional”. Ambos tienen los mismos propósitos y efectos.

Formula proporcional

1
Acción integral
La acción integral da una respuesta proporcional a la integral del error. Esta acción elimina
el error en régimen estacionario, provocado por el modo proporcional. Por contra, se
obtiene un mayor tiempo de establecimiento, una respuesta más lenta y el periodo de
oscilación es mayor que en el caso de la acción proporcional.

Formula integrativa

Acción derivativa
La acción derivativa da una respuesta proporcional a la derivada del error (velocidad de
cambio del error). Añadiendo esta acción de control a las anteriores se disminuye el exceso
de sobre oscilaciones.
Existen diversos métodos de ajuste para controladores PID, pero ninguno de ellos nos
garantiza que siempre encuentre un PID que haga estable el sistema. Por lo que el más
usado sigue siendo el método de prueba y error, probando parámetros del PID y en función
de la salida obtenida variando estos parámetros.

Formula derivativa

A continuación, en este caso usaremos el siguiente método de ajuste:

Método de Cohen y Coon

En el desarrollo del método de sintonización Ziegler y Nichols no consideraron que el proceso


fuera auto regulado. Cohen y Coon introdujeron, entonces, un índice de auto regulación
definido como R=tm/τ y plantearon nuevas ecuaciones de sintonización. Estas se basan en el
mejor modelo de primer orden más tiempo muerto que se pueda obtener para lazos de
control que funcionan como regulador, con el criterio de desempeño de decaimiento de 1/4
con sobrepaso mínimo, y con mínima área bajo la curva de respuesta, y un controlador PID-
Ideal. Las ecuaciones son:

Para el cuadro: grafico 1


L = tm =To.
K = ko.
τ = Yo.
u∞ - uo = Set POINT (Escalón)
Sabiendo que R = L/τ = To/Yo.

Tabla 1

2
III. ANÁLISIS DE LA INTERFAZ

Para realizar los cálculos nos apoyaremos de la Interfaz Gráfica de Usuario ‘ControlPID.m’
que se ha desarrollado basado en método numéricos. La ruta para esta aplicación es la
siguiente:

 Introducir datos: Se introducen los puntos xy de la gráfica de entrada de la planta así


como también el set POINT a fijar para la regulación y el error estimado en las
operaciones.
 Interpolación - Método de lagrange: Se obtiene el modelo matemático polinomial
mediante la fórmula de interpolación de lagrange, este modelo no es la función de
transferencia, pero nos servirá para los siguientes cálculos.
 Grafica Temperatura (C°) vs tiempo (s). Se procede a plotear el grafico de entrada de la
planta térmica, así como también la gráfica obtenida por el polinomio Interpolante.
 Pendiente a la tangente del 1er punto de inflexión. Este cálculo se hace atravesó de la
2da derivada del polinomio Interpolante para hallar el punto de inflexión y luego usar
este punto de inflexión para utilizar la ecuación de la recta con la 1ra derivada como
pendiente de esta. Se usará el método de la bisección para hallar el punto de inflexión.
Ver grafico1.
 Calcular los parámetros T y L: Se usará el método de la bisección para hallar L y como
función utilizaremos la recta tangente, del mismo modo se hallara T, solo que se
trasladará la recta tangente para poder usar el método de la bisección en el eje Y=0. Ver
gráfico 1.
 Obtener los valores parámetros de Kp ,Td y Ti, Usando la tabla 1 reemplazaremos los
datos y obtendremos los parámetros deseados que son nuestro objetivo.

CODIGO ‘ControlPID.m’

 Para la entrada de datos se usó una tabla, pop up menú y edit text.

function dimension_Callback(hObject, eventdata, handles)


% hObject handle to dimension (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
g = get(handles.dimension,'Value');
switch g

case 1
set(handles.tabla,'Visible','off');
set(handles.error1,'string','Seleccione la dimensión del
polinomio');

case 2
set(handles.tabla,'Visible','on');
num_elem=cell(2,2);
num_elem(:,:)={''};
set(handles.tabla,'data',num_elem);
set(handles.tabla,'ColumnEditable',true(1,1));
.
.
.
.

3
case 10
set(handles.tabla,'Visible','on');
num_elem=cell(10,2);
num_elem(:,:)={''};
set(handles.tabla,'data',num_elem);
set(handles.tabla,'ColumnEditable',true(1,1));

end

 Recogiendo los datos ingresados y aplicando el algoritmo de Lagrange


g=get(handles.dimension,'Value');
%obtenemos los valores de la tabla
t=(get(handles.tabla,'data'));
%convertimos los valores de tabla a números
t=str2double(t);
%guardamos los valores de X
X=t(:,1);
%guardamos los valores de Y
Y=t(:,2);
%calculamos el tamaño de X
d=length(X);
%aplicamos el algoritmo de lagrange para obtener el polinomio
for k=1:d
V=1;
for j=1:d
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
C=Y'*L;
%convertimos los vectores en un polinomio
Q=poly2sym(C);
pol=inline(Q);
%convertimos el polinomio en caracteres
Q=char(Q);
%enviamos los caracteres obtenidos en string para el modelo
matemático
set(handles.modelo,'String',Q);

 Opción para escoger cual visualizar, entre la gráfica del modelo matemático obtenido y
el de los puntos de entrada.
%enviamos la grafica y escogemos cual deseamos ver
k=get(handles.cond,'String');
switch k
case '1'

axes(handles.cuadro);
plot(X,Y,'g');;
grid on;

case '2'
axes(handles.cuadro);
fplot(Q,[0,(max(X))]);
grid on;

end

4
 Calculo del primer punto de inflexión y grafico

%Primer punto de inflexión


R=poly2sym(C);
%Usaremos el metodo de bisección para el valor del punto de
inflexión
A=diff(diff(R));
A=inline(A);
a=min(X);
b=max(X);
TOL=str2double(get(handles.error,'string'));
n=ceil(log((b-a)/TOL)/log(2));
for i=1:n
xr=(a+b)/2;
if A(a)*A(xr)<0
b=xr;
else
a=xr;
end
end
set(handles.xb,'String',xr)
set(handles.a,'String',a)
set(handles.b,'String',b)
%Grafico de la 2da derivada
axes(handles.cuadro2);
fplot(A,[0,(max(X))],'b');
grid on;

 Calculo de L y grafico
%Hallando la recta tangente al punto de inflexión
syms xt;
f1x=diff(R);
f1x=inline(f1x);
yt=pol(xr)+f1x(xr)*(xt-xr);
%ecuación de la recta tangente
yt=inline(yt);
%graficamos la recta tangente
axes(handles.cuadro5);
fplot(yt,[0,(max(X)+1),0,(max(Y)+1)],'y');
grid on;

%Hallando el valor de L con método de bisección


al=min(X);
bl=max(X);
n=ceil(log((bl-al)/TOL)/log(2));
for i=1:n
L=(al+bl)/2;
if yt(al)*yt(L)<0
bl=L;
else
al=L;
end

end
set(handles.L,'String',L)
set(handles.xal,'String',al)
set(handles.xbl,'String',bl)

5
 Calculo de T y grafico

%Hallando el valor de T con método de bisección


yT=pol(xr)+f1x(xr)*(xt-xr)-max(Y);
yT=inline(yT);

alT=min(X);
blT=max(X);
n=ceil(log((blT-alT)/(1e-3))/log(2));
for i=1:n
T=(alT+blT)/2;
if yT(alT)*yT(T)<0
blT=T;
else
alT=T;
end
end
t=T-L;
set(handles.T,'String',t)
set(handles.xat,'String',alT)
set(handles.xbt,'String',blT)
% Grafica
axes(handles.cuadro3);
fplot(yT,[0,(max(X)+1),0,(max(Y)+1)],'r');
grid on;

 Calculo de los parámetros kp, ti y td de Cohen y Coon calibrados atraes de Set POINT

%Hallando los valores de Kp, Ti, Tp para el respectivo set point


SP=str2double(get(handles.SP,'String'));
P=max(Y);
P=char(P);
k=P/SP;
B=(L/t);
kp=((4/3)+(1*B/4))/(B*k)
ti=L*((36+6*B)/(13+8*B))
td=L*(4/(11+2*B))
set(handles.kp,'String',kp);
set(handles.ti,'String',ti);
set(handles.td,'String',td);

 Respuesta en pantalla de comando de Matlab.


fprintf('- Metodo de la Curva de Reaccion - \n');
fprintf('---- Cohen y Coon ----- \n\n');
fprintf('- Resultados - \n\n');
fprintf('Los parametros son los siguientes: \n');
kp
ti
td
fprintf('¡El proceso concluyo de forma satisfactoria!\n\n');
fprintf('Proceda a ingresar los datos al controlador... \n\n');

6
IV. RESULTADOS

Gráfico de entrada de la planta

T(C°) vs t(s)
400
6541, 343.2
350

300 7200, 345.7


3570, 246.9
Temperatura (C°)

250
4900, 293.1
200
2000, 100 2700, 180
150

100
600, 35
50 1200, 50
0, 25
0
0 1000 2000 3000 4000 5000 6000 7000 8000
Tiempo (s)

GUI ‘ControlPID.m’

Grafica 1 (Grafico de Entrada)

7
Grafica 2 (Modelo Matemático)

Pantalla de comando MATLAB

8
V. APLICACIÓN

Para el diseño del controlador de temperatura que se podría implementar, deberá tener el
siguiente esquema.

Cuando la temperatura del horno eléctrico se mida en el termómetro (sensor), que es el


dispositivo analógico. La temperatura analógica se convierta en una temperatura digital
mediante un convertidor A/D. La temperatura digital se introduce en un controlador
mediante una interfaz.

Esta temperatura digital se compara con la temperatura de entrada programada, y si hay


una discrepancia (error) el controlador envía una señal al calefactor (resistencias térmicas),
a través de una interfaz, el amplificador y relé, para hacer que la temperatura del horno
adquiera el valor deseado (Set POINT).

La planta térmica puede ser por ejemplo un horno eléctrico Kalley KWS-10SS. Este horno es
de entrada alterna monofásica que funciona por calentamiento de dos resistencias térmicas
ubicadas al interior del mismo y como sensor de la variable de proceso se utilizan
termopares tipo K.

Recogiendo los datos de muestreo de la planta e ingresandolas en nuestra interfaz


ControlPID.m se hallaria los parametros de PID y lo siguiente seria implementarlo en el
codigo de programacion del microcontrolador que actuara como controlador.

De este modo se refleja la utilidad de nuestra INTERFAZ para el desarrollo de un controlador


PID.

9
VI. CONCLUSIONES

 El método de la Curva de reacción es pertinente usarlo cuando la gráfica de entrada


de la planta tiene forma de S, dado que presenta tiempo muerto y tiempo de
establecimiento.
 Es conveniente tener en cuenta la amplitud del escalón a usar, porque este pasara
a ser el denominado Set POINT cuando queramos ajustarlo.
 En caso de que estos parámetros no funcionen al 100% por algún motivo, siempre
estarán las reglas heurísticas para calibrar estos parámetros de control.
 Gracias al ajuste de Cohen y Coon, este método es más confiable al de Ziegler y
Nichols por presentar un mayor grafo de autorregulación ante cualquier
perturbación.

VII. BIBLIOGRAFIA

 http://www.cec.uchile.cl/~leherrer/IQ57A/sintonia.htm
 John H. Mathews & Kurtis D. Fink / Methods Numerical with MATLAB / Edit.
Prentice Hall. 64p, 236p.
 https://control-pid.wikispaces.com/
 Métodos de sintonización de controladores PID que operan como
reguladores – Victor M. Alfaro Ruiz

10

Você também pode gostar