Ing.
C F Riquett
PREDICTOR DE SMITH
Objetivo: Desarrollar un ejercicio práctico donde se emplee la estrategia de mejora de lazo
de control con el Predictor de Smith con ayuda de MatLab y Simulink.
Planteamiento: Se debe diseñar un controlador PID para un sistema con retardo de tiempo
dominante que posee un tiempo de retardo de 0,5 s.
𝑡
Nota: se asume que 𝑇 > 1
Función de transferencia del sistema:
2𝑒 −0,5𝑠
𝐺𝑝 = (1)
𝑠3 +3𝑠2 +2𝑠+1
Solución:
Para trabajar con sistemas que tienen retardo de transporte o tiempo muerto
significativo (sistemas dominantes), se puede hacer uso de la aproximación de Padé.
Padé aproxima retardos de tiempo para modelos LTI de tiempo continuo.
De forma general, la aproximación de Padé puede expresarse con la siguiente
igualdad:
𝑇𝑠 ሺ𝑇𝑠ሻ2
1− 2 + 12 …
𝑒 −𝑇𝑠 = 𝑇𝑠 ሺ𝑇𝑠ሻ2
(2)
1+ 2 + 12 …
Si para el caso solo se consideran los tres primeros términos, se tendrá un modelo de
aproximación de segundo orden:
𝑇𝑠 ሺ𝑇𝑠ሻ2
1− +
12
𝑒 −𝑇𝑠 = 2
𝑇𝑠 ሺ𝑇𝑠ሻ2
(3)
1+ +
2 12
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Reemplazando T = 0,5 en la ecuación (3) y operando:
0,5𝑠 ሺ0,5𝑠ሻ2
1− +
2 12
0,5𝑠 ሺ0,5𝑠ሻ2
1+ +
2 12
Si multiplicamos toda la expresión por 48:
24𝑠 48ሺ0,5𝑠ሻ2
48 − +
2 12
24𝑠 48ሺ0,5𝑠ሻ2
48 + +
2 12
48 − 12𝑠 + 4ሺ0,5𝑠ሻ2
48 + 12𝑠 + 4ሺ0,5𝑠ሻ2
48 − 12𝑠 + 𝑠 2
48 + 12𝑠 + 𝑠 2
𝑠2 −12𝑠+48
(4)
𝑠2 +12𝑠+48
Haciendo uso de MatLab también se puede conocer el término de la aproximación. Usando
la función
pade(T, n)
donde T es el tiempo muerto y n es el orden del modelo de retardo.
Para nuestro caso, 𝑇 = 0,5 y 𝑛 = 2
www.linkedin.com/in/cfriquett
Ing. C F Riquett
%% Aproximación de Padé
clc
[num,den]=pade(0.5,2)
Gf = tf(num,den)
Gf =
s^2 - 12 s + 48
---------------
s^2 + 12 s + 48 cferrer
Obsérvese que es igual a la expresión (4)
Con lo que el sistema puede ahora escribirse como sigue:
2𝑒 −0,5𝑠 2 𝑠 2 − 12𝑠 + 48
𝐺𝑝 = 3 =
𝑠 + 3𝑠 2 + 2𝑠 + 1 𝑠 3 + 3𝑠 2 + 2𝑠 + 1 𝑠 2 + 12𝑠 + 48
Operando los bloques en serie, se obtiene la nueva función de transferencia que contempla
el retardo:
2ሺ𝑠2 − 12𝑠 + 48ሻ
ሺ𝑠 3 + 3𝑠 2 + 2𝑠 + 1ሻሺ𝑠2 + 12𝑠 + 48ሻ
Operando:
2𝑠 2 − 24𝑠 + 96
𝑠 5 + 12𝑠 4 + 48𝑠 3 + 3𝑠 4 + 36𝑠 3 + 144𝑠 2 + 2𝑠 3 + 24𝑠 2 + 96𝑠 + 𝑠2 + 12𝑠 + 48
Simplificando:
2𝑠2 −24𝑠+96
(5)
𝑠5 +15𝑠4 +86𝑠3 +169𝑠2 +108𝑠+48
www.linkedin.com/in/cfriquett
Ing. C F Riquett
En Matlab se pueden operar bloques en serie, como el caso que tenemos, con lo cual
% Sistema sin retardo
n=2;
d=[1 3 2 1];
sys1 = tf(n,d)
% Retardo de 0.5 segundos expresado mediante función de
segundo orden
[nr,dr]=pade(0.5,2);
sysr=tf(nr,dr)
% Sistema con retardo
sysd=series(sysr,sys1)
sys1 =
2
---------------------
s^3 + 3 s^2 + 2 s + 1
sysr =
s^2 - 12 s + 48
---------------
s^2 + 12 s + 48
sysd =
2 s^2 - 24 s + 96
--------------------------------------------
s^5 + 15 s^4 + 86 s^3 + 169 s^2 + 108 s + 48
cferrer
Obsérvese que es igual a la expresión (5)
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Ahora bien, si el sistema se realimenta con realimentación unitaria negativa, y se le aplica
una entrada escalón unitario, se observará el siguiente comportamiento:
% Sistema con retardo retroalimentado
syst= feedback(sysd,1)
% Respuesta al escalón unitario del sistema
retroalimentado con retardo
step(syst)
grid
Ilustración 1. Respuesta modelo con retardo con aproximación de Padé
Se aprecia que el sistema presenta un sobreimpulso cercano al 92%, un error en estado
estacionario de 0.3 (33%) aproximadamente y un tiempo de establecimiento que supera los
300 segundos.
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Si se construye el modelo inicial en SimuLink, se obtendrá la misma respuesta:
Ilustración 2. Modelo creado en SimuLink
Ilustración 3. Respuesta del sistema con retardo de T=0,5 en SimuLink
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Si el sistema no presentara tiempo muerto, la respuesta del sistema ante una entrada
escalón unitario sería
Ilustración 4. Respuesta del sistema sin retardo.
Si se halla la función de transferencia de lazo cerrado del sistema con retardo, se tendrá:
2𝑒 −0,5𝑠
𝑠 3 + 3𝑠 2 + 2𝑠 + 1
𝐺𝑙 =
2𝑒 −0,5𝑠
1+ 3
𝑠 + 3𝑠 2 + 2𝑠 + 1
Operando:
2𝑒 −0,5𝑠
𝑠 3 + 3𝑠 2 + 2𝑠 + 1
𝐺𝑙 = 3
𝑠 + 3𝑠 2 + 2𝑠 + 1 + 2𝑒 −0,5𝑠
𝑠 3 + 3𝑠 2 + 2𝑠 + 1
www.linkedin.com/in/cfriquett
Ing. C F Riquett
2𝑒 −0,5𝑠
𝑠 3 + 3𝑠 2 + 2𝑠 + 1
𝐺𝑙 = 3
𝑠 + 3𝑠 2 + 2𝑠 + 1 + 2𝑒 −0,5𝑠
𝑠 3 + 3𝑠 2 + 2𝑠 + 1
2𝑒 −0,5𝑠 ሺ𝑠 3 + 3𝑠 2 + 2𝑠 + 1ሻ
𝐺𝑙 = 3
𝑠 + 3𝑠 2 + 2𝑠 + 1ሺ𝑠 3 + 3𝑠 2 + 2𝑠 + 1 + 2𝑒 −0,5𝑠 ሻ
2𝑒 −0,5𝑠
𝐺𝑙 = 3
𝑠 + 3𝑠 2 + 2𝑠 + 1 + 2𝑒 −0,5𝑠
Se observa que la expresión 2𝑒 −0,5𝑠 hace parte de la ecuación característica del sistema y
ello generará problemas al momento de aplicar el control PID. Lo que se buscará será
eliminar esa expresión de la ecuación característica y para ello, se hará uso del Predictor de
Smith.
El control con Predictor de Smith presenta la siguiente arquitectura:
Ilustración 5 Predictor de Smith
Para este caso, se considera D = 0
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Método para sintonizar el controlador PID para el control del sistema con
retardo de tiempo utilizando el Predictor de Smith.
Primero, hallamos el lugar geométrico de las raíces del sistema:
%% LGR
rlocus(sys1)
Ilustración 6. Lugar geométrido de las raíces del sistema
Del lugar geométrico de las raíces se puede apreciar que existe un valor de 𝐾𝑐𝑟 para el cual
el sistema se hace críticamente estable (oscilación sostenida).
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Del lugar geométrico de raíces podemos determinar dos variables importantes:
- La ganancia crítica del sistema ሺ𝑘𝑐𝑟ሻ = 2,74
- La velocidad angular ሺ𝑤ሻ = 1,46
Ilustración 7. Ganancia crítica del sistema
Con estos datos podemos aplicar las siguientes ecuaciones:
𝐾𝑝 = 0,6𝐾𝑐𝑟
2𝜋
𝑇𝑖 = 0,5
𝑤
2𝜋
𝑇𝑑 = 0,125
𝑤
Lo que resulta en las constantes de los modos de control P, I y D:
𝐾𝑝 = 0,6ሺ2,74ሻ = 1,644
2𝜋
𝑇𝑖 = 0,5 = 2,1517
1,46
2𝜋
𝑇𝑑 = 0,125 = 0,5379
1,46
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Podemos determinar estas constantes en MatLab y la estructura del controlador PID
%% Constantes del controlador
Kcr = 2.74;
w = 1.46;
Kp=0.6*Kcr
Ti=0.5*(2*pi/w)
Td=0.125*(2*pi/w)
%% Estructura del PID
npid= [Kp*Td Kp Kp/Ti]
dpid=[1 0]
syspid=tf(npid,dpid)
Kp = 1.6440
Ti = 2.1518
Td = 0.5379
npid = 0.8844 1.6440 0.7640
dpid = 1 0
syspid =
0.8844 s^2 + 1.644 s + 0.764
----------------------------
s
cferrer
Ahora, para realizar la simulación en SimuLink, es necesario convertir los datos del
controlador con las siguientes expresiones que corresponden a un PID en forma paralela:
𝑃 = 𝐾𝑝
𝐼 = 𝐾𝑝 /𝑇𝑖
𝐷 = 𝐾𝑝 𝑇𝑑
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Con lo que resulta:
𝑃 = 𝐾𝑝 = 1,6440
𝐾𝑝 1.6440
𝐼= = = 0,7640
𝑇𝑖 2.1518
𝐷 = 𝐾𝑝 𝑇𝑑 = 1.6440ሺ0,5379ሻ = 0,8843
Se construye y simula la respuesta del sistema en SimuLink:
Ilustración 8. Sistema con el controlador PID
Ilustración 9. Respuesta del sistema con el controlador PID
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Se observa que, al intentar controlar el sistema, este se vuelve inestable. Por tanto, será
necesario incluir el Predictor de Smith en la arquitectura del sistema:
Ilustración 10. Predictor de Smith
Ilustración 11. Respuesta del sistema con Predictor de Smith
www.linkedin.com/in/cfriquett
Ing. C F Riquett
Se observa que el error de estado estable fue eliminado.
Para variaciones en la entrada, el sistema se comporta de manera óptima: El controlador
fue optimizado con la función PID Tuner.
Ilustración 12. Variaciones en la entrada del sistema.
¡Hola! Gracias por leer y compartir este material. Espero te sea
de mucha ayuda para entender este fascinante mundo del
control automático y los sistemas de control.
Puedes seguir revisando y compartiendo mi material en mi perfil
de LinkedIn https://www.linkedin.com/in/cfriquett y en
YouTube @carlosmauroferrerriquett529
Un gusto servirte.
Ing. Carlos Ferrer Riquett.
www.linkedin.com/in/cfriquett