Técnicas de control 3: alternativas al bucle simple

Hasta ahora lo que se ha visto en todo lo anterior es un bucle simple. Éste está sujeto a perturbaciones que, si no se atenúan convenientemente, pueden hacer variar demasiado al sistema y llegar a inestabilizarlo. Veamos un ejemplo de perturbación: dado el proceso con función de transferencia en bucle abierto G1 = 1/(s+1) y G2 = 1/(s+2), calcular un regulador para que su tiempo de establecimiento sea de 8 segundos (lento) y error de posición 0, comportamiento sobreamortiguado, pero además una perturbación de escalón 1 se añade a los 12 segundos.

He diseñado un regulador, por cancelación de polos, sin contar con la perturbación y su respuesta es así:

regu

Si añado la perturbación, queda un diagrama de bloques tal que así:

pertu2

Cuya respuesta, también comparada con la original, es:

pertu

Para evitar éste efecto, añadimos unos pocos bloques extra al bucle simple.

Control en cascada

El propósito de éste control es reducir el efecto de la perturbación en un 90% (0.1 veces la perturbación sin cc). Para ello, añadimos un regulador interno que nos relaciona la entrada de la perturbación (P*Gp -> fp) con la salida justo después de la perturbación (antes de G2)

rint

Ya he supuesto que el regulador interno va a ser una ganancia simplemente.

Aplicando álgebra de bloques, con superposición para no tener en cuenta la señal que llega por el regulador externo, para reducir la perturbación:

pertu3

En nuestro ejemplo extraemos que:

pertu4

¿Cómo sabemos cuánto vale f1/fp sin control en cascada? Abriendo el bucle, de forma que queda así:

pertu5

Como la Gp (función de transferencia que sigue la perturbación) que he puesto tiene ganancia estacionaria unitaria, la salida (la de la derecha), sin tomar en cuenta el regulador externo (lo que viene por la izquierda es 0) es 1. Igualamos y sale:

1/(1+K) = 0.1*1 -> K = 9

Ahora que ya sabemos el resultado, tenemos que cerrar el bucle de nuevo y ponerlo todo en un solo bloque (Gint), para rediseñar el regulador externo, que ya no nos vale.

pertu6

pertu7

Con las especificaciones que se pedían al principio, se extrae un regulador que ahora es PI:

pertu8

El diagrama de bloques del sistema es:

pertu9

Y su respuesta:

pertu10

Como veis, la diferencia es que no hemos añadido un cero, que pasaba a ser innecesario con el control en cascada, y la subida es un poco más lenta, aunque se establezca a la vez, y que se ha reducido la perturbación.

Control por prealimentación

Tiene el mismo objetivo que el control en cascada, pero una diferencia clave: la magnitud que produce la perturbación no tiene ninguna relación causal con la variable que nos indica la aparición de una perturbación. Otra cosa importante es que el regulador PID que diseñamos en bucle simple sigue siendo útil (nos ahorramos unos pasos).

En caso de que la función de transferencia que extraemos del diseño por prealimentación no sea realizable (tenga más ceros que polos, indicaría que el efecto provoca una causa), se sustituye por su ganancia.

Entonces pues, pongamos el mismo ejemplo. Para llevar a cabo el control por prealimentación tendremos que añadir un sensor (Hf) y una FDT que cause en el sistema el efecto que buscamos (anular la perturbación):

preal

Cortamos el bucle después de Gr porque consideramos que no hay entrada y sacamos la relación entre la salida y la perturbación:

preal2

Sabiendo que Hf = 1 y que Gp = 5/(s+5), calculalmos Gf:

preal3

Y ésa es la FDT de Gf que elimina completamente el efecto de la perturbación. Si sólo se quiere (o puede) reducir, se sustituiría por una ganancia que es su Kest, en éste caso 1.

Control de procesos con retardo

En ocasiones nos encontramos con procesos que tienen un retardo muy grande en la respuesta como para pasarlo por alto: transporte de fluidos o materiales, medidas con retraso, ... Cualquier cosa a la que la respuesta le cueste un tiempo llegar.

Éstos sistemas se expresan de la siguiente forma, siendo T el tiempo de retardo:

retar

Aproximación del retardo

Para tiempos de retardo pequeños, usamos una aproximación de e^-Ts mediante el desarrollo en serie de Taylor.

taylor

De forma que sustituimos e^-Ts por su desarrollo en serie de Taylor en la fdt G(s), que modifica Gp(s) (la original) para añadirle un retraso, y ésa nueva G(s) es la que usamos para rediseñar el regulador. No es tan complicado si cogemos por ejemplo una aproximación de 1er orden:

retar2

Como se suele decir: "En peores plazas hemos 'toreao'... "

Predictor de Smith

Éste se usa para retardos bastante más largos. Se trata de tener el bucle normal y añadir a la salida la e^-Ts. De ésta forma intentamos controlar la salida antes de que se atrase, pero no sabemos el retraso que tiene, sólo lo predecimos. Lo que ocurre a continuación, está sujeto a las leyes de los sabios, de entre los cuales no me encuentro.

retar3

retar4

Aquí lo que se ha hecho es pasar Gp de antes del nudo a después, multiplicando por el e^-sT de la salida, de forma que ahí se tiene la fdt real, y pasando la misma Gp (G'p, porque no es la verdadera, ya que estamos haciendo una predicción suponiendo el retardo "tal") a la realimentación. Es completamente equivalente. El problema es que seguimos teniendo un bucle abierto. Y en éste punto a alguien se le ocurrió: ¿Por qué no comparamos el error sin retardo con el error de la predicción con retardo?

retar5

Una vez ahí, sólo hay que aplicar un poco de álgebra de bloques para llegar a lo más sencillo:

retar6

En éste punto solo hay que añadir una cosa: el regulador PID se diseña como otro cualquiera (una sola vez y sin haber puesto todavía el predictor), pero teniendo en cuenta que el tiempo de establecimiento que vamos a tomar es el tiempo de establecimiento menos el de retardo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *