Cuando un proceso o sistema tiene un retardo dominante, realizar un sistema de control puede ser complicado y para solucionar este problema uno de los métodos más famosos es conocido como el Predictor de Smith.
En esta entrada vas a aprender en detalle como funciona el predictor de Smith, aprenderás sus limitaciones y finalmente verás como simularlo en Matlab y Simulink.
Antes de comenzar, te invito a que te suscribas al canal de YouTube si deseas seguir aprendiendo sobre estos temas y que mires nuestro curso gratuito de control clásico.
Procesos con Tiempo Muerto
La mayoría de los procesos industriales presentan retardos (tiempos muertos) en sus dinámicas que dificultan la tarea de regulación de sus variables.
Ejemplos típicos en la industria son las columnas de destilación y los evaporadores e intercambiadores de calor.
¿Qué es un Retardo?
El retardo es un fenómeno que transcurre por el desplazamiento temporal que puede aparecer entre dos o mas variables de control y este puede ser generado por ejemplo por el tiempo necesario para transportar masa, energía o información.
En el siguiente ejemplo se muestra como el retardo o el tiempo muerto aparece en la dinámica de calentamiento de un liquido al interior de un tanque.
Cuando la resistencia se activa (escalón azul) observemos que la temperatura al final del tubo solo responde un tiempo despues (linea roja), sin embargo si tuvieramos la posibilidad de colocar un sensor justo en el tanque, el retardo de tiempo sería eliminado (linea azul).
Sistemas de Control para procesos con Retardo
Para tratar el problema de los retardos sobre los sistemas de control en lazo cerrado existen dos grandes lineas de investigación las cuales son:
- Compensadores de tiempo muerto (DTC)
- Control predictivo basado en modelo (MPC)
En esta entrada, vamos a hablar exclusivamente de los compensadores de tiempo muerto (DTC), sin embargo si estás interesado en la segunda estratégia, aquí tenemos un curso completo de Control Predictivo Basado en Modelo – MPC.
En 1957, el norte americano Otto Smith sugirió un compensador que remueve efectivamente el retardo de la ecuación característica del sistema. Ese compensador de tiempo muerto fue conocido como el predictor de Smith (PS) y fue la base de diversos estudios que actualmente se vienen desarrollando para tratar los problemas del retardo dentro de los lazos de control.
Predictor de Smith
El uso de diagramas de bloques de los sistemas de control es esencial para comprender y diseñar sistemas de control como el predictor de Smith, permitiendo la visualización clara de la interacción entre sus componentes y la retroalimentación.
La estructura del predictor de Smith (Smith predictor en ingles) viene dado por la siguiente representación de modelo interno:
En la estructura el control primario es C(s), el proceso real es P(s), el modelo rápido o modelo sin retardo es Gn(s) y el retardo viene dado por la expresión .
Note además que si el modelo es igual a el proceso real implica que .
Este compensador de tiempo muerto es capaz de predecir la salida del proceso real, y(t), por medio de la dinámica sin retardo , o sea que con esa estructura el control es capaz de predecir el comportamiento del proceso real, P(s), en un tiempo igual al retardo Ln.
El método de Smith en Control, se puede reducir utilizando el algebra de bloques a la siguiente representación equivalente:
donde el control esquivalente viene dado por:
Así las relaciones de la entrada r(t) y la salida y(t) suponiendo viene dado por:
Notamos que gracias a la estructura del predictor de Smith, la ecuación característica del proceso queda libre de la influencia del retardo.
Por otro lado, la relación de la entrada q(t) y la salida y(t) viene dado por:
Limitaciones del Predictor de Smith
El predictor de Smith tiene algunas limiaciones las cuales pueden enunciarse a continuación:
- El predictor de Smith solo sirve para procesos estables.
- La estructura NO es capaz de acelerar la dinámica de rechazo de perturbaciones.
- No se puede usar la estructura de el predictor de Smith en procesos integradores o en procesos inestables porque la estructura es internamente inestable, lo que quiere decir que si entra una perturbación, la estructura se inestabilizara para estos dos procesos.
- Pequeños errores de modelo, por ejemplo cuando P(s) es diferente a Pn(s), puede hacer que la estructura entre rápidamente a la inestabilidad.
Estas limitaciones del predictor de Smith, pueden ser tratadas por medio de una modificación propuesta por Normey-Rico y Camacho en 1997, adicionando a la estructura un filtro. Esa nueva estructura se conoce como el Predictor de Smith Filtrado. Esa estructura será estudiada en otra entrada.
Respuestas obtenidas con el Predictor de Smith
Para hacer simulaciones de procesos del predictor de Smith y el predictor de Smith filtrado, pueden descargar el mismo software que utilicé en la presentación del video de Youtube.
>>>Click aca para descargar<<<
Vamos a ver como funciona el predictor de Smith en un proceso estable y para eso vamos a sintonizar un controlador primario C(s) del tipo PI.
En este caso se realizará una comparación de un lazo cerrado de control con y sin la estructura del predictor de Smith.
Si se tiene el siguiente proceso del sistema real, P(s), y vamos a suponer que tenemos un modelo, Pn(s), perfecto, o sea P(s)=Pn(s). Supongamos entonces que nuestro proceso tiene la siguiente representación de un sistema de primer orden con retardo:
y se diseña el siguiente controlador PI:
donde Kc=1 y Ti=1.2
De esa forma tenemos la siguiente representacion, utilizando la estructura convencional de un control PI y utilizando la estructura del Predictor de Smith con el mismo PI:
En linea roja, tenemos el control convencional con el PI y en linea azul tenemos el control PI en la estructura del predictor de Smith.
Caso integrador
La siguiente respuesta muestra esta estructura de control no consigue rechazar perturbaciones en el caso que tengamos procesos integradores:
Vemos que en el caso integrador, la estructura consigue controlar, pero al momento de entrar una perturbación la estructura queda con un error en estado estacionario, como vimos en el video la respuesta de Hq(0) es diferente de cero y es por eso que se demuestra que esta estructura no consigue controlar este tipo de sistemas.
Caso Inestable
En el caso inestable sucede lo mismo que en el caso integrador, la unica diferencia es que cuando entra la perturbación, la variable se va para el infinito.
Ejemplo de un Predictor de Smith
Para este ejemplo vamos a diseñar un controlador PI por cancelamiento de polos para un proceso con retardo (atraso) dominante representado por la siguiente función de transferencia:
El controlador PI es proyectado colocando el parámetro Ti igual al tau (constante de tiempo) de la planta, o sea Ti=6.
Para este ejemplo se desea una respuesta en lazo cerrado un 75% más rápido que la respuesta en lazo abierto. Asi Tr=0.75*Ti. De esa forma obtenemos el siguiente controlador PI:
Smith predictor en Simulink
A continuación se puede descargar el código del predictor de Smith en Simulink y también el código del Predictor de Smith en Matlab.
Ambas implementaciones son equivalentes:
- La implementación en MATLAB realiza un predictor de Smith discreto;
- La implementación en Simulink realiza un predictor de Smith en tiempo Continuo y en tiempo discreto.
Los códigos del el compensador de smith pueden ser descargados a través del siguiente botón:
% Predictor de Smith % Sergio Andres Castaño Giraldo % http:\\controlautomaticoeducacion.com %_________________________________________________________________________ clc clear all close all Ts=0.4; %Tiempo de Muestreo %% Proceso Real P(s) nP=0.12; %Numerador de la Planta dP=[6 1]; %Denominador de la Planta P=tf(nP,dP); %Processo real P(s) L=3.0; %Retardo de P(s) P.iodelay=L; %Aplico el retardo en P(s) Pd=c2d(P,Ts); %Discretizo el Proceso con retendedor de Orden Cero P(z) [B,A]=tfdata(Pd,'v'); %Divido el proceso discreto en numerador y denominador d=Pd.iodelay; %Obtengo el retardo en discreto %% Modelo Nominal Pn(s) nPn=0.12; %Numerador del Proceso Nominal dPn=[6 1]; %Denominador del Proceso Nominal Gn=tf(nP,dP); %Modelo Nominal sin retardo Gn(s) Ln=3.0; %Retardo de Pn(s) Pn=Gn; Pn.iodelay=Ln; %Aplico el retardo en P(s) Pdn=c2d(Pn,Ts); %Discretizo el Proceso nominal con retendedor de Orden Cero Pn(z) Gnd=Pdn; Gnd.iodelay=0; %Modelo Nominal sin retardo Gn(z) [Bgn,Agn]=tfdata(Gnd,'v'); %Divido el modelo discreto en numerador y denominador [Bn,An]=tfdata(Pd,'v'); %Divido el proceso discreto en numerador y denominador dn=Pdn.iodelay; %Obtengo el retardo en discreto %% Controlador Primario por cancelamiento de polos Ti=dPn(1); %Selecciono el parametro Ti=Tn (Parametro Integral) Kn=nPn; %Ganancia de la planta Tr=dPn(1)*0.75; %Constante de tiempo que deseo en lazo cerrado (75% del tao de la planta) Kc=Ti/(Kn*Tr); %Parametro proporcional del controlador PI C=tf(Kc*[Ti 1],[Ti 0]); %Controlador PI [C(s)] Cd=c2d(C,Ts,'tustin'); %Discretizo el controlador [Bc,Ac]=tfdata(Cd,'v'); %Divido el controlador discreto en numerador y denominador %% Simulacion nit=400; %Numero de Interacciones ref(1:nit)=0; %Vector de SetPoint ref(27:end)=1; %Escalon unitario en el Set Point rq(1:nit)=0; rq(120:nit)=1; %Estimulo de perturbacion de carga rn(1:nit)=0; rn(250:nit)=0.05; %Estimulo da perturbacion de salida %Variables de simulacion y1(1:nit) = 0; y(1:nit) = 0; u(1:nit) = 0;e(1:nit) = 0;yp(1:nit) = 0; yt(1:nit) = 0; yp(1:nit) = 0; ep(1:nit) = 0;yn(1:nit) = 0; up(1:nit) = 0; %Loop de Control for k=d+5:nit %Salida del proceso real P(z) [y(t)] y1(k)= B(1)*up(k-1-d)+B(2)*up(k-2-d)-A(2)*y1(k-1); y(k)=y1(k)+rn(k); %Salida del proceso nominal Pn(z) yn(k)= Bn(1)*u(k-1-dn)+Bn(2)*u(k-2-dn)-An(2)*yn(k-1); %Diferencia entre proceso real y proceso nominal (error de prediccion) ep(k)=y(k)-yn(k); %Salida del modelo rapido Gn(z) [y(k+d)] yt(k)= Bgn(1)*u(k-1)+Bgn(2)*u(k-2)-Agn(2)*yt(k-1); %Suma entre error de prediccion y salida predicha yp(k)=yt(k)+ep(k); %Error de la ley de control e(k)=ref(k)-yp(k); %ley de control u(k)=u(k-1)+ Bc(1)*e(k)+Bc(2)*e(k-1); %Ingreso de perturbacion en la entrada up(k)=u(k)+rq(k); end %Grafico t = 0:Ts:(nit-1)*Ts; subplot(3,1,1); hold on; plot(t,ref,'-m',t,y,'-r','Linewidth',2) legend('Referencia','Salida'); xlabel('Tiempo (s)'); ylabel('Salida'); grid on; hold on subplot(3,1,2); hold on; plot(t,u,'-b','Linewidth',2) xlabel('Tiempo (s)'); ylabel('Control'); grid on; subplot(3,1,3); hold on; plot(t,rq,t,rn,'Linewidth',2) legend('Perturbacion de carga','perturbacion de salida'); xlabel('Tiempo (s)'); ylabel('Salida'); grid on;
BIBLIOGRAFIA
- S. A. C. Giraldo, R. C. C. Flesch, and J. E. Normey-Rico, “Multivariable greenhouse control using the filtered Smith predictor,” Journal of Control, Automation and Electrical Systems, pp. 1–10, 2016. (click aca)
- S. A. C. Giraldo, R. C. C. Flesch, J. E. Normey-Rico, and M. Z. P. Sejas, “Decoupling filtered smith predictor design for multivariable systems with multiple time delays,” in 2016 12th IEEE International Conference on Industry Applications (INDUSCON), Nov 2016, pp. 1–8. (Click aca)
- S. A. C. Giraldo, “ESTUDO DE TECNICAS DE SINTONIA DO PREDITOR DE SMITH FILTRADO PARA SISTEMAS MULTIVARIAVEIS COM ATRASO ” (Portugués) Mestrado, Florianópolis, 2016. (Click aca)
- J. E. Normey-Rico and E. F. Camacho, Control of dead-time processes. London: Springer, 2007. (click aca)
Si te gusto la información no olvides en compartir en redes sociales, también te puedes sucribir a mi canal de youtube o darle me gusta a mi pagina en Facebook.
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.