El controlador RST (Reference Signal Tracking en sus siglas en inglés) o también conocido como Seguidor de Referencia en español, es un método de control que usa de una forma más elegante el clasico método de Asignación de Polos. Y en esta entrada vas a aprender a hacerlo!!
Antes de empezar, te hago la invitación de que veas:
CURSO GRATUITO DE CONTROL DE PROCESOS AVANZADOS
RST – Introducción
Existen aplicaciones donde las estrategias de control no son efectivas debido a diversos factores tales como:
- Pueden producirse oscilaciones en la malla de control.
- Pueden presentarse condiciones diversas en los procesos (perturbaciones)
Para esto se debe pensar en realizar técnicas de control mas sofisticadas, con el objetivo de garantizar las especificaciones de desempeño del proyecto de control.
Controlador por Asignación de Polos
Para realizar un controlador por asignación de polos, debe conocerse a priori el modelo matemático que representa la dinámica de la planta (Funcion de Transferencia). Para posteriormente poder manipular la ubicación de esos polos en el lazo cerrado de control y poderlos ubicar asi, en el lugar deseado, para obtener una respuesta especificada.
El comportamiento dinámico del lazo cerrado es especificado por el usuario, utilizando la siguente representación en el dominio discreto:
Donde:
: Son los Polos de Malla Abierta
: Salida del sistema
: Retardo en tiempo discreto
: Son los ceros de malla abierta
: Acción de Control
La ley de control en la asignación de polos que obedece a una estructura RST se puede expresar de la siguiente forma:
donde el diagrama de bloques del control RST aplicando los conceptos del Álgebra de Bloques viene dado por:
De la representación anterior se puede observar que el controlador tiene una estructura de dos grados de libertad. El controlador RST se compone de tres polinomios: R, S y T que son generalmente sintonizado por el método de colocación de polos.
SI es un sistema con dos grados de libertad. El filtro T filtra la referencia y sirve para atenuar sobreimpulsos, el S filtra la salida, que junto con el filtro R actuan en la regulación (rechazo de perturbación) y en la dinámica Servo (seguimiento de referencia)
Sin embargo, como veremos más adelante, esta configuración es conocida como un control RST posicional, quiere decir, que no posee una acción integradora dentro del lazo de control para el rechazo de perturbaciones y por lo tanto va a poseer un error en estado estacionario cuando el disturbio es un escalón, tal y como lo explicamos en la entrada del modelo interno.
Sistemas Dinámicos de Primer Orden
Controlador PI por Asignación de Polos
Control PID con microcontrolador PIC
Diseño del Control RST Posicional
Calculando la función de transferencia en lazo cerrado del controlador se obtiene la siguiente ecuación.
A partir de la funcion caracteristica se derivan los coeficientes de los polinomios R,S, en base a la dinamica del lazo cerrado especificado o dado por el diseñador .
Donde:
: Es atribuido por el usuario.
nR,nS,nA,nB son el grado de los polinomios.
Ahora se tiene que:
Cuando el sistema llega a estado estable, quiere decir que la salida alcanza el Set-Point
Aplicando teorema de valor final, donde todas las z de los polinomios se colocan en 1
Obtenemos el polinomio T
Ahora debe abordarse la manera de diseñar el polinomio deseado en lazo cerrado .
Dinámica de primer orden.
: Asignación del polo deseado.
: Periodo de Muestreo.
Para seleccionar el polo deseado puede optarse por establecerlo en el siguiente rango . Si el polo esta más cerca del 1, el controlador va a ser mas conservador, y la respuesta va a ser lenta. Si el polo esta mas cerca del cero el controlador va a ser agresivo dando una dinámica mas rápida.
Dinámica de segundo orden.
Comentarios del RST Posicional
- El controlador por asignación de polos RST posicional es capaz de controlar procesos lentos, oscilatorios o inestables en lazo abierto, siempre y cuando en el proyecto no exista ninguna restricción sobre la naturaleza física de la planta.
- La técnica de asignación de polos puede ser empleada en la sintonia de diferentes algoritmos de control discreto (PID, modelo inverso, mínima varianza, control predictivo)
- Esta técnica se hace en base al conocimiento previo de la función de transferencia del proceso, si no se conoce, se deben aplicar técnicas de identificación recursivas o no recursivas.
- Por ser un control RST posicional, el sistema presentará un error en estado estacionario cuando se ingresa una perturbación al sistema, para solucionar eso, se debe agregar una dinámica integradora, la cual es tratada en el RST Incremental.
Ejemplos de Implementación de un Control RST
Vamos a ver dos ejemplos de implementación del controlador RST posicional usando la tecnica de la asignación o colocación de polos y mostraremos su código en MATLAB para que lo puedas reproducir tu mismo.
RST Sistema de Primer Orden
Diseñar un controlador por asignación de polos para el siguiente proceso de primer orden. La acción de control debe estar limitada en un rango de 0v – 5v.
Solución
Se procede discretizando la función de transferencia con un tiempo de muestreo T=1.
Segun el calculo anterior solo vamos a tener un termino en el polinomio R y un termino en el polinomio S
Procedemos ahora al calculo del polo que vamos a asignar.
Igualo termino a termino para obtener un sistema de ecuaciones
Resolviendo se obtiene
Por ultimo se calcula la ganancia T (Coloco las Z=1)
La ley de control para este sistema queda de la siguiente manera
El codigo en Matlab es el siguiente:
clc clear all close all %Condiciones iniciales para realizar el ciclo de control nit = 400; umin = 0; umax = 4.9; ts = 1; u(1:10) = 0; erro(1:10) = 0; y(1:10) = 0; % Referência r(1:100) = 1; r(101:200) = 4; r(201:300) = 2; r(301:nit) = 3; %% Planta num=1; %Numerador Continuo den=[10 1]; %Denominador Continuo gp=tf(num,den); %Funcion de transferencia ftz=c2d(gp,ts); %Planta Discreta [B,A]=tfdata(ftz,'v'); %Divide Numerador em B e denominador em A %PMF (Polo asignado) p1=exp(-ts/den(1)); pmf=[1 -p1]; %Solucion de ecuaciones por metodo matricial M=[1 0; A(2) B(2)]; q=[1; pmf(2)]; X=inv(M)*q; R=X(1); %Polinomio R S=X(2:end)'; %Polinomio S %Polinomio T T=sum(pmf)/sum(B); %Loop de Control for k = 4:nit y(k)=B(2)*u(k-1)-A(2)*y(k-1); %Salida del sistema u(k)=(T*r(k)-S*y(k))/R; %Ley de control % Saturacion para la ley de control min=0 y max=5 if u(k) >= umax u(k) = umax; elseif u(k) <= umin u(k) = umin; end end %Codigo para graficar la respuesta transitoria y la accion de control t = 0:ts:(nit-1)*ts; figure subplot(2,1,1),plot(t,r,'--k',t,y,'-r','Linewidth',2.5) xlabel('Tempo (s)'); ylabel('Velocidade'); legend('W_t','Y_t','Location','SouthEast') grid on; hold subplot(2,1,2),plot(t,u,'--b','Linewidth',3) xlabel('Tempo (s)'); ylabel('Controle (volts)'); legend('U_t') grid on;
La respuesta del sistema se presenta a continuación, donde se observa que la variable y(t) sigue la referencia w(t) y la acción de control u(t) se mantiene dentro del rango de 0v-5v.
RST Sistema de Segundo Orden
Diseñe un controlador por asignación de polos para el siguiente proceso teniendo encuenta la misma restricción del ejemplo anterior. Usando los conceptos de diseño de un sistema de segundo orden sobreamortiguado.
Con un tiempo de muestreo T=0.1
Solución
Se discretiza la planta.
Se realiza el calculo de los polos deseados, según criterio del diseñador. Para este caso yo quiero que mi sistema tenga un tiempo de establecimiento en lazo cerrado de 1 segundo (Tss=1) seg y tenga un coeficiente de amortiguamiento de 0.6 (ζ=0.6).
Con estos dos criterios se puede encontrar la frecuencia natural del sistema ωn
solucionando la ecuación anterior puede agruparse cada termino del lado derecho con los terminos del lado izquierdo para formar un sistema de ecuaciones
en otros términos el sistema de ecuaciones anterior puede expresarse de manera matricial. A continuacion se muestra el método matricial con literales.
Por ultimo se calcula la ganancia T
La ley de control para este sistema queda de la siguiente manera
El codigo en Matlab es el siguiente:
clc clear all close all nit = 400; umin = 0; umax = 4.9; u(1:10) = 0; erro(1:10) = 0; y(1:10) = 0; % Referência r(1:100) = 1; r(101:200) = 4; r(201:300) = 2; r(301:nit) = 3; %% Planta T=0.1; %Tempo de muestreo num=1; %Numerador Continuo den=[0.1 1.1 1]; %Denominador Continuo gp=tf(num,den); %Função de transferencia ftz=c2d(gp,T); %Planta Discreta [B,A]=tfdata(ftz,'v'); %Divide Numerador em B e denominador em A gpz=filt(B,A,T,'name','Planta'); %Funcao de transferenca discreta %% PMF %Asignacion de Polos Ts=1; %Tempo de estabelecimento deseado lazo cerrado ep=0.6; %Epsilon (Coeficiente de amortiguamiento) wn=4/(ep*Ts); %Frecuencia natural del sistema %Polos conjugados p1=-2*exp(-ep*wn*T)*cos(wn*T*sqrt(1-ep^2)); p2=exp(-2*ep*wn*T); % Polinomio deseado con un polo insignificante igual a zero Am=[1 p1 p2 0]; %Resolução de Equações metodo matricial M=[1 0 B(2); A(2) B(2) B(3); A(3) B(3) 0]; q=[Am(2)-A(2); Am(3)-A(3);Am(4)]; X=inv(M)*q; R=[1 X(1)]; %Polinomio R S=[X(3) X(2)]; %Polinomio S %Polinomio T Tz=sum(Am)/sum(B); for k = 4:nit y(k)=B(2)*u(k-1)+B(3)*u(k-2)-A(2)*y(k-1)-A(3)*y(k-2); u(k)=Tz*r(k)-S(1)*y(k)-S(2)*y(k-1)-R(2)*u(k-1); % Saturação if u(k) >= umax u(k) = umax; elseif u(k) <= umin u(k) = umin; end end t = 0:T:(nit-1)*T; figure subplot(2,1,1),plot(t,r,'--k',t,y,'-r','Linewidth',2.5) xlabel('Tempo (s)'); ylabel('Velocidade'); legend('y_r','y','Location','SouthEast') grid on; hold subplot(2,1,2),plot(t,u,'--b','Linewidth',3) xlabel('Tempo (s)'); ylabel('Controle (volts)'); legend('u') grid on;
La respuesta del sistema de control se muestra a continuación, donde la salida sigue en todo momento la referencia y la acción de control se mantiene dentro de los limites establecidos de 0v y 5v.
Si se desea una respuesta mas conservadora, se pueden modificar los polos asignados para lograr una acción mas suave de control, pero se tendría que sacrificar tiempo de respuesta. Es decir la salida alcanzaría la referencia en un mayor tiempo (Lento).
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.