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:
donde es la ganancia estática del proceso y
es la constante de tiempo del proceso. Un tiempo igual a
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 y el denominador como un polinomio
asi:
tenemos que la función de transferencia del controlador PI viene dado por la siguiente expresión:
donde es la ganancia proporcional y
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,
para el numerador y
para el denominador, asi nuestro controlador esta expresado como:

Control PID por Asignación de Polos

Acción de Control Integral – Control PID

Lazo Abierto y Lazo Cerrado
Dinámica de control en lazo cerrado
Ahora analizando el siguiente lazo control, podremos obtener la función de transferencia del lazo cerrado:
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:
Resolviendo tenemos que:
Ahora si reemplazamos lo que vale cada polinomio, tendremos nuestra expresión del sistema en lazo cerrado:
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:
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
Establecimiento en la banda del 5%:
Establecimiento en la banda del 2%:

Principio del Modelo Interno

Acción de Control Derivativo – Control PID

Control PID via sintesis DAHLIN
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 .
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 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:
Entonces lo que haremos será tomar las dos ecuaciones características (denominador) de y de
e igualarlas, y con esto podremos determinar cuanto será nuestra ganancia
y nuestro tiempo integral
.
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:
[1]
[2]
Resolviendo tendremos que:
[3]
[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:
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.

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:
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.
s
Sabemos que la función de transferencia en lazo cerrado viene dado por:
Donde la ecuación característica es:
Reemplazando tenemos:
El factor de Amortiguamiento viene dado por:
M_p=100e^{\dfrac{-\pi \zeta}{\sqrt{1-\zeta^2}}}
\zeta=0.5912
Estableciendo la tolerancia permitida en el estacionario como , podremos determinar la frecuencia natural del sistema:
\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.
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:
Y ya habíamos definido como encontrar los parámetros del PI resolviendo el sistema de ecuaciones lineales:
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:
Con el controlador PI expresado de la forma:
recordando que:
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:
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.

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

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:
Y podremos determinar las incógnitas de las tres ecuaciones formuladas anteriormente:
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.

