Saltar al contenido
Control Automático Educación

Controlador por Asignación de Polos – RST Posicional

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:

A(z^{-1}) y(t) = z^{-d} B(z^{-1}) u(t)

Donde:
A(z^{-1}): Son los Polos de Malla Abierta
y(t): Salida del sistema
d: Retardo en tiempo discreto
B(z^{-1}): Son los ceros de malla abierta
u(t): 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:

R(z^{-1})u(t) = T(z^{-1}) w(t)- S(z^{-1}) y(t)

donde el diagrama de bloques del control RST viene dado por:

Control RST

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.

Diseño del Control RST Posicional

Calculando la función de transferencia en lazo cerrado del controlador se obtiene la siguiente ecuación.

y(t) = \dfrac{z^{-d} B(z^{-1}) T(z^{-1}) w(t)}{A(z^{-1}) R(z^{-1}) + z^{-d} B(z^{-1}) S(z^{-1})}

A partir de la funcion caracteristica A(z^{-1}) R(z^{-1}) + z^{-d} B(z^{-1}) S(z^{-1}) se derivan los coeficientes de los polinomios R,S, en base a la dinamica del lazo cerrado especificado o dado por el diseñador  P_{MF}(z^{-1}).

A(z^{-1}) R(z^{-1}) + z^{-d} B(z^{-1}) S(z^{-1}) = P_{MF}(z^{-1})

Donde:
 P_{MF}(z^{-1}): Es atribuido por el usuario.

R,S = \begin{cases} & \text{ nR } =nB + nA -1 \\ & \text{ nS } =nA – 1 \end{cases}

nR,nS,nA,nB son el grado de los polinomios.

Ahora se tiene que:

y(t) = \dfrac{z^{-d} B(z^{-1}) T(z^{-1}) w(t)}{P_{MF}(z^{-1})}

Cuando el sistema llega a estado estable, quiere decir que la salida alcanza el Set-Point y(t) = w(t)

Aplicando teorema de valor final, donde todas las z de los polinomios se colocan en 1

\dfrac{B(1) T(1)}{P_{MF}(1)}=1

Obtenemos el polinomio T

T(1) = \dfrac{P_{MF}(1)}{B(1)}

Ahora debe abordarse la manera de diseñar el polinomio deseado en lazo cerrado  P_{MF}(z^{-1}).

Dinámica de primer orden.

P_{MF}(S)=\tau S+1P_{MF}(z^{-1}) = 1 – p_{1} z^{-1}

 p_{1}: Asignación del polo deseado.

p_{1}=e^ {-T/\tau}

T: Periodo de Muestreo.

Para seleccionar el polo deseado puede optarse por establecerlo en el siguiente rango 0.6<p_{1}<0.9. 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.

P_{MF}(S)=s^{2}+2\zeta \omega_{n}s+\omega_{n}^{2}P_{MF}(z^{-1}) =1+p_{1}z^{-1}+p_{2}z^{-2}p_{1}=-2 e^{-\zeta \omega_n T }\cos (\omega_n T\sqrt{1-\zeta^{2}}) \ \ (angulo\ en\ radianes)p_{2}=e^{-2 \zeta \omega_n T }

Comentarios del RST Posicional

  1. 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.
  2. 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)
  3. 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.
  4. 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.

Gp(s)=\dfrac{1}{10s + 1}

Solución

Se procede discretizando la función de transferencia con un tiempo de muestreo T=1.

Gp(z)=z^{-1}\dfrac{0.095}{1-0.905z^{-1}}n_a=1;n_b=0;d=1n_r=n_b+d-1=0+1-1=0 (R_0)n_s=n_a-1=1-1=0(S_0)

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.

P_{MF}(z^{-1}) = 1 – p_{1} z^{-1}p_{1}=e^ {\dfrac{T}{\tau}}p_{1}=e^ {\dfrac{1}{10}}=0.9048PMF=AR+z^{-d}BS(1-0.9048z^{-1})=(1-0.905z^{-1})R_0+z^{-1}(0.0952)S_0](1-0.9048z^{-1})=R_0-0.905R_0z^{-1}+0.0952S_0z^{-1}=R_0+(0.0952S_0-0.905R_0)z^-1

Igualo termino a termino para obtener un sistema de ecuaciones

0.0952S_0-0.905R_0=-0.9048\ (1)R_0=1\ (2)

Resolviendo se obtiene

R_0=1 ; S_0=0

Por ultimo se calcula la ganancia T (Coloco las Z=1)

T(1) = \dfrac{P_{MF}(1)}{B(1)}=\dfrac{1-0.9048}{0.095}=1

La ley de control para este sistema queda de la siguiente manera

R(z^{-1})u(t) = T(z^{-1}) w(t)- S(z^{-1}) y(t)u(t)=1w(t)-0y(t)

El codigo en Matlab es el siguiente:

Respuesta del Control por AP 1

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.

Gm(s)=\dfrac{1}{0.1s^{2}+1.1s+1}

Con un tiempo de muestreo T=0.1

Solución

Se discretiza la planta.

Gm(z)=\dfrac{0.0355+0.0247z^{-1}}{1-1.273z^{-1}+0.332z^{-2}}z^{-1}n_a=2;n_b=1;d=1n_r=n_b+d-1=1+1-1=1\rightarrow (R_0+R_1z^{-1})n_s=n_a-1=2-1=1\rightarrow (S_0+S_1z^{-1})

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

\omega _n=\dfrac{4}{\zeta *Tss}=\dfrac{4}{0.6*1}=6.667p_{1}=-2 e^{-0.6* 6.6667*1 }\cos (6.6667*1*\sqrt{1-0.6^{2}}) = -1.1544p_{2}=e^{-2* 0.6*6.6667*1 } =0.4493PMF=1-1.1544z^{-1}+0.4493z^{-2}PMF=AR+z^{-d}BS1-1.1544z^{-1}+0.4493z^{-2}=(1-1.272z^{-1}+0.332z^{-2})(R_0+R_1z^{-1})+z^{-1}(0.0355z^{-1}+0.0247z^{-2})(S_0+S_1z^{-1})

solucionando la ecuación anterior puede agruparse cada termino del lado derecho con los terminos del lado izquierdo para formar un sistema de ecuaciones

R_0=1R_1+0.0355S_0=-1.1544+1.272R_0-1.272R_1+0.0247S_0+0.0355S_1=0.4493-0.332R_00.332R_1+0.0247S_1=0

en otros términos el sistema de ecuaciones anterior puede expresarse de manera matricial. A continuacion se muestra el método matricial con literales.

\begin{bmatrix} R_1\\ S_1\\ S_0\\ \end {bmatrix}= \begin{bmatrix} 1 & 0& B_1& \\ A_1 & B_1 & B_2 \\ A_2 & B_2 & 0 \end{bmatrix}^{-1}\begin{bmatrix} Pmf_1-A_1\\ Pmf_2-A_2\\ 0 \end{bmatrix}

\begin{bmatrix} R_1\\ S_1\\ S_0\\ \end {bmatrix}= \begin{bmatrix} 1 & 0& 0.0355& \\ -1.272 & 0.0355 & 0.0247 \\ 0.332 & 0.0247 & 0 \end{bmatrix}^{-1}\begin{bmatrix} 0.1183\\ 0.1165\\ 0 \end{bmatrix}

\begin{bmatrix} R_1\\ S_1\\ S_0\\ \end {bmatrix}=\begin{bmatrix} -0.0140\\ 0.1894\\ 3.7267 \end{bmatrix}

Por ultimo se calcula la ganancia T

T(1) = \dfrac{P_{MF}(1)}{B(1)}=\dfrac{1.0000-1.1544+0.4493}{0.0355+0.0247}=4.9021

La ley de control para este sistema queda de la siguiente manera

R(z^{-1})u(t) = T(z^{-1}) w(t)- S(z^{-1}) y(t)(R_0+R_1z^{-1})u(t) = T(z^{-1}) w(t)- (S_0+S_1z^{-1}) y(t)u(t)=Tw(t)-S_0y(t)-S_1y(t-1)+R_1u(t-1)u(t)=4.9021w(t)-3.7267y(t)-0.1894y(t-1)-0.0140u(t-1)

El codigo en Matlab es el siguiente:

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).

Control RST

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.