Saltar al contenido
Control Automático Educación

Controlador PI por Asignación de Polos

En esta entrada aprenderemos a diseñar un controlador PI utilizando la técnica de asignación de polos. A continuación les presento el video de Youtube que contiene todo lo explicado en esta página y al final del post se encuentra los códigos de Ejemplo en MATLAB. Este es un Control PI de fácil implementación y que podrás aplicar en todos tus proyectos de control.

Puede interesarte ver como funciona el sistema de control proporcional y el sistema de control integral.

Controlador PI por Asignación de Polos – Planta de Primer Orden

Para este control vamos a suponer que tenemos el modelo matemático (función de transferencia) que representa nuestro proceso real y que esta FT es de primer orden:

G(s)=\dfrac{k_p}{\tau s+1}

donde k_p es la ganancia estática del proceso y \tau es la constante de tiempo del proceso. Un tiempo igual a 4\tau nos daría el tiempo que el proceso demoraría en llegar a la ganancia estática o estado estacionario.

Como sabemos que una función de transferencia son una división de polinomios vamos a expresar el numerador como el polinomio A y el denominador como un polinomio B asi:

G(s)=\dfrac{k_p}{\tau s+1}=\dfrac{A}{B}

tenemos que la función de transferencia del controlador PI viene dado por la siguiente expresión:

C(s)=k_c\dfrac{\tau_i s+1}{\tau_i s}

donde k_c es la ganancia proporcional y \tau_i es el tiempo integral (controlador Integral). Y vamos a hacer lo mismo que hicimos para la FT del proceso, expresemos la FT del controlador en dos polinomios, D para el numerador y E para el denominador, asi nuestro controlador esta expresado como:

C(s)=k_c\dfrac{\tau_i s+1}{\tau_i s}=\dfrac{D}{E}

Dinámica de control en lazo cerrado

Ahora analizando el siguiente lazo control, podremos obtener la función de transferencia del lazo cerrado:

H(s)=\dfrac{C(s)G(s)}{1+C(s)G(s)}

Si reemplazamos en la ecuación de lazo cerrado lo que equivale las funciones de transferencia del controlador y de la planta, tendríamos que:

H(s)=\dfrac{\dfrac{D}{E}\dfrac{A}{B}}{1+\dfrac{D}{E}\dfrac{A}{B}}

Resolviendo tenemos que:

H(s)=\dfrac{\dfrac{DA}{EB}}{\dfrac{EB+DA}{EB}}

H(s)=\dfrac{DA}{EB+DA}

Ahora si reemplazamos lo que vale cada polinomio, tendremos nuestra expresión del sistema en lazo cerrado:

H(s)=\dfrac{k_ck_p(\tau_i s+1)}{\tau_i s(\tau s+1) + k_ck_p(\tau_i s+1)}

H(s)=\dfrac{k_ck_p(\tau_i s+1)}{\tau_i s\tau s^2 +(\tau_i + k_ck_p\tau_i) s+ k_ck_p}

H(s)=\dfrac{\dfrac{k_ck_p}{\tau_i \tau}(\tau_i s +1)}{ s^2 +\dfrac{1}{\tau}(1 + k_ck_p) s+ \dfrac{k_ck_p}{\tau_i \tau}}

ahora si observamos el denominador de la función de transferencia en lazo cerrado, este denominador es conocido en el mundo del control como la ecuación característica del sistema, los polos que se encuentran en esta función de transferencia son los que determinan la dinámica del sistema.

Como todavía no hemos definido cuales serán los parámetros del controlador PI, estos nos servirán para ubicar los polos en el lugar que nosotros queremos, es por eso que esta técnica es conocida como asignación de polos.

Como ingenieros de control, vamos a querer definir como será el comportamiento del sistema en lazo cerrado, para eso tenemos varias opciones a escoger:

Control PI respuesta segundo orden

Tiempo de Establecimiento:

Es el tiempo que queremos definir para que el proceso llegue al estado estacionario. Podemos definirlo con respecto a una banda de tolerancia que puede ser del 2% o del 5%:

Para un factor de amortiguamiento 0<\zeta<1

Establecimiento en la banda del 5%:

t_s=\dfrac{3}{\zeta \omega_n}

Establecimiento en la banda del 2%:

t_s=\dfrac{4}{\zeta \omega_n}

Máximo sobreimpulso:

Podemos defirnir cuanto es el máximo sobreimpulso que deseamos en el sistema, recordando que esto solo es para sistemas subamortiguados o sea con 0<\zeta<1.

M_p=e^{\dfrac{-\pi \zeta}{\sqrt{1-\zeta^2}}}

Con base a los criterios de diseño visto, podremos hacer que nuestra función de transferencia de lazo cerrado H(s) tenga el mismo comportamiento de respuesta de un sistema de segundo orden que nosotros definiremos con el objetivo de alcanzar los criterios de diseño.

En otras palabras, tenemos que una función de transferencia de segundo orden convencional viene dada por la siguiente expresión:

G_d(s)=\dfrac{K\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}

Entonces lo que haremos será tomar las dos ecuaciones características (denominador) de H(s) y de G_d(s) e igualarlas, y con esto podremos determinar cuanto será nuestra ganancia k_c y nuestro tiempo integral \tau_i.

s^2 +\dfrac{1}{\tau}(1 + k_ck_p) s+ \dfrac{k_ck_p}{\tau_i \tau}=s^2+2\zeta\omega_ns+\omega_n^2=s^2+\alpha_1s+\alpha_2

s^2 +\dfrac{1}{\tau}(1 + k_ck_p) s+ \dfrac{k_ck_p}{\tau_i \tau}=s^2+\alpha_1s+\alpha_2

ahora igualando los coeficientes de cada lado de la expresión vamos a obtener el siguiente sistema de ecuaciones, podremos simplificar los coeficientes del sistema de segundo orden para no confundirnos en el calculo:

\dfrac{1}{\tau}(1 + k_ck_p) = \alpha_1 [1]

\dfrac{k_ck_p}{\tau_i \tau}=\alpha_2 [2]

Resolviendo tendremos que:

k_c=\dfrac{\alpha_1\tau-1}{k_p} [3]

\tau_i=\dfrac{k_ck_p}{\alpha_2 \tau} [4]

Como Usar el Control PI por Asignación de Polos – Ejemplo

Usaremos la función de transferencia del tanque de la entrada pasada para mostrar aplicaciones del controlador proporcional integral, por lo tanto después de haber hecho la linealización llegamos a la siguiente expresión:

G(s)=\dfrac{h(s)}{a_1(s)}=\dfrac{0.1}{s+0.0375}=\dfrac{A}{B}

Controlador PI:

El controlador PID se muestra a continuación, sin embargo como en esta entrada estamos aprendiendo TODO de como programar un controlador PI, simplemente colocamos en CERO la parcela derivativa, y únicamente nos concentramos en el efecto de la parcela PROPORCIONAL e INTEGRAL del controlador.

Controlador PI
Diagrama de bloques de PID

C(s)=k_c\dfrac{\tau_i s+1}{\tau_i s}=\dfrac{D}{E}

Como condiciones de Diseño vamos a establecer que queremos un pico máximo del 10\% y un tiempo de estabilización 75% mas rápido que la dinámica en lazo cerrado.

Si observamos la función de transferencia del Tanque, podemos saber cual es la constante de tiempo:

\tau=\dfrac{1}{0.0375}=26.66

Por lo tanto el tiempo de estabilización son cuatro veces la costante de tiempo, que serian 106.64s. Como deseamos que sea 75% mas rapido, vamos a diseñar nuestro controlador para que llegue al estacionario en 80 segundos.

Tss=80s

Mp=10\%

Sabemos que la función de transferencia en lazo cerrado viene dado por:

H(s)=\dfrac{DA}{EB+DA}

Donde la ecuación característica es:

P_s={EB+DA}

Reemplazando tenemos:

P_s={(\tau_i s)(s+0.0375)+0.1k_c(\tau_i s+1)}

P_s= s^2 +(0.0375 + 0.1k_c) s+ 0.1\dfrac{k_c}{\tau_i}

El factor de Amortiguamiento viene dado por:

M_p=100e^{\dfrac{-\pi \zeta}{\sqrt{1-\zeta^2}}}

\zeta=\sqrt{\dfrac{ln\left(\dfrac{M_p}{100}\right)^2}{\pi^2+ln\left(\dfrac{M_p}{100}\right)^2}}

\zeta=0.5912

Estableciendo la tolerancia permitida en el estacionario como 5\%, podremos determinar la frecuencia natural del sistema:

\omega_n=\dfrac{3}{\zeta Tss}

\omega_n=0.0634

Con estos datos podemos montar nuestra función de transferencia de lazo cerrado deseada, que tiene los polos ubicados justo donde queremos para que el sistema tenga el comportamiento deseado.

G_d(s)=\dfrac{K\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}

G_d(s)=\dfrac{0.0040}{s^2+0.0750s+0.0040}

Ecuación caracteristica:

P_d=s^2+0.0750s+0.0040=s^2+\alpha_1s+\alpha_2

Ahora igualamos las dos ecuaciones características. La deseada y la de nuestro sistema:

s^2+0.0750s+0.0040=s^2 +(0.0375 + 0.1k_c) s+ 0.0038\dfrac{k_c}{\tau_i}

Y ya habíamos definido como encontrar los parámetros del PI resolviendo el sistema de ecuaciones lineales:

k_c=\dfrac{\alpha_1\tau-1}{k_p}

k_c=\dfrac{0.0750*26.66-1}{2.66}=0.3750

\tau_i=\dfrac{k_ck_p}{\alpha_2 \tau}

\tau_i=\dfrac{0.3750*2.66}{0.0040 *26.66}=9.3190s

Puede interesarte también ver como funciona el 👉🏽 Controlador PI por Cancelación de Polos.

Controlador PI por Asignación de Polos – Planta de Segundo Orden

Para el caso de poseer una función de transferencia de segundo orden, el procedimiento es bastante similar al anterior. Para eso partimos de la siguiente función de transferencia:

G(s)=\dfrac{K\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}=\dfrac{k}{s^2+as+b}=\dfrac{A}{B}

Con el controlador PI expresado de la forma:

C(s)=K_c\dfrac{\tau_i s+1}{\tau_i s}=\dfrac{K_cs+K_i}{s}=\dfrac{D}{E}

recordando que:

K_i=\dfrac{K_c}{\tau_i}

Para este caso procedemos a encontrar la función de transferencia de lazo cerrado del controlador y la planta de segundo orden, similar al caso de primer orden:

H(s)=\dfrac{C(s)G(s)}{1+C(s)G(s)}

H(s)=\dfrac{DA}{EB+DA}

H(s)=\dfrac{k(K_cs+K_i)}{s^3+as^2+(b+kK_c)s+kK_i}

Donde la ecuación característica de lazo cerrado viene dado por el denominador de la función de transferencia anterior:

s^3+as^2+(b+kK_c)s+kK_i = 0

Notemos que en este caso, vamos a tener 3 polos y 1 cero.

Polos Sistema Tercer Orden con Cero
Polos Sistema Tercer Orden con Cero

Asignación de 2 polos complejos y 1 real.

Para este caso específico vamos a tratar de acomodar nuestro sistema, para que tenga el comportamiento dinámico similar al de un sistema de tercer orden con 2 polos complejos conjugados y un polo real.

Es importante destacar, que el comportamiento será similar después de la asignación de polos, dado que el cero presente en el sistema el cual es aportado por el controlador PI puede modificar levemente la dinámica según las condiciones de diseño.

En este caso establecemos el siguiente polinomio característico que cuya respuesta depende del factor de proporción \beta

Dos polos complejos conjugados y un polo real
Dos polos complejos conjugados y un polo real

la ecuación característica deseada viene dado por:

P_d = s^3+(\beta+2)\zeta\omega_ns^2+(2\beta\zeta^2+1)\omega_n^2s+\beta\zeta\omega_n^3

Definir una asignación de polos en base a un sistema de TERCER ORDEN con dos polos complejos conjugados y un polo real.

El efecto del polo real s=-p ante una entrada escalón unitario es la de reducir el máximo sobreimpulso y incrementar el tiempo de acomodación.

Si el polo real se localiza a la derecha de los polos complejos conjugados, la respuesta tiende a ser lenta.

Caso contrario el sistema tenderá a tener un comportamiento similar a un sistema sobreamortiguado.

Parámetros del Control PI (Planta Segundo Orden)

Igualando la ecuación característica deseada con la de lazo cerrado obtendremos un sistema de ecuaciones con 3 incógnitas.

s^3+as^2+(b+kK_c)s+kK_i = s^3+(\beta+2)\zeta\omega_ns^2+(2\beta\zeta^2+1)\omega_n^2s+\beta\zeta\omega_n^3
(1)\ a = (\beta + 2)\zeta\omega_n
(2)\ b+kK_c = (2\beta\zeta^2+1)\omega_n^2
(3)\ kK_i = \beta\zeta\omega_n^3

En este caso, definiremos algunos parámetros como condiciones de diseño, por ejemplo el máximo sobreimpulso (Mp) y el tiempo de establecimiento (Tss). Así encontramos el factor de amortiguamiento y la frecuencia natural:

\zeta=\sqrt{\dfrac{ln\left(\dfrac{M_p}{100}\right)^2}{\pi^2+ln\left(\dfrac{M_p}{100}\right)^2}}

\omega_n = \dfrac{4}{\zeta T_{ss}}

Y podremos determinar las incógnitas de las tres ecuaciones formuladas anteriormente:

\beta = \dfrac{a}{\zeta\omega_n}-2

K_c = \dfrac{(2\beta\zeta^2+1)\omega_n^2-b}{k}

K_i = \dfrac{\beta\zeta\omega_n^3}{k}

Códigos

Controlador PI en MATLAB (Ejemplo 1)

% Control PI Por Asignación de Polos
% Sergio Andres Castaño Giraldo
% Universidade Federal de Rio de Janeiro
% Rio de Janeiro - 2017
% https://controlautomaticoeducacion.com
% ------------------------------------------------------
clc
clear all
close all
%% Parametros del Proceso del Tanque de Nivel
%Variaveis do tanque
k1=0.05;k2=0.015;g=10;
A=0.5;
a1=0.0:0.1:1;   %Avertura da valvula de entrada
a2=0:0.1:1;     %Avertura da valvula de Saida
A1o=0.6; %Avertura da Valvula no Pto de Equilibrio
A2o=0.5; %Avertura da valvula de saida no equilibrio
%Encuentro o Pto de Equilibrio do Tanque
Ho=(k1^2*A1o^2)/(k2^2*A2o^2*2*g);
%% Diseño del Controlador PI
%Funcion de transferencia del proceso
% C=tf(Kc*[Ti 1],[Ti 0]);
P=tf(0.1,[1 0.0375]);
Q=tf(-0.12,[1 0.0375]);
%Obtiene la Ganancia de la Planta
k=dcgain(P);
%Obtiene el numerador y denominador de la FT
[n,d]=tfdata(P,'v');
L=P.iodelay;
% Especificaciones de Diseño
Mp=10; %Maximo Pico
ep=sqrt(((log(Mp/100))^2)/(pi^2+((log(Mp/100))^2))); %Fator de amortiguamiento
tau=1/d(2); %Toma o valor do polo dominante
Tss=(tau*4)*0.75; %Tempo de acomodação na faixa do 5%
Wn=3/(ep*Tss);
Pds=[1 2*ep*Wn Wn^2];
Kc=(Pds(2)*tau-1)/k;        %Calculo de Kc
ti=(k*Kc)/(Pds(3)*tau);     %Calculo de ti
td=0;
%Controlador PI
C=tf(Kc*[ti*td ti 1],[ti 0]);
%Simulación con el Modelo en lazo cerrado
H=minreal((C*P)/(1+C*P));
step(H);
figure
pzmap(H);

Control PI planta de Segundo Orden (Ejemplo 2)


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.

Summary
Controlador PI
Article Name
Controlador PI
Description
El controlador PI es uno de los más usados industrialmente dado que es un control robusto y se acopla bastante bien a todos los procesos. Veamos algunas aplicaciones del controlador proporcional integral y como implementar un controlador PI en MATLAB todo paso a paso y explicado en detalle.
Author
Publisher Name
Control Automático Educación
Publisher Logo