Sie sind auf Seite 1von 53

INGENIERÍA DE CONTROL – MT221A

Unidad 4
Sintonización de Controladores PID
Temario
• Estrategias previas ser aplicadas para la compresión
operativa de un controlador PID
• Estructura del Controlador PID
• Sintonía de Controladores
• Regla de Ziegler – Nichols
• Diseños con circuitos
1

Estrategias previas a ser aplicadas


para la comprensión operativa de un
controlador PID
Fases para la comprensión del uso de
controladores PID en sistemas de control
2𝑛
GC(s) 𝑠 2 + 2𝑛 𝑠 + 2𝑛

Diagrama de bloques de referencia

Fase 1: Experimentación con Simulink las consecuencias de la inserción de un controlador


PID, variando parámetros y observar y analizar consecuencias en la variable de salida a
controlar.

Fase 2: Proceso de sintonía = calibración o determinación de parámetros que dependerá


de la modelación de la planta. Será mediante el análisis.

Fase 3: Diseño del controlador usando Matlab

Fase 4: Construcción del controlador PID usando Opamps


2

Uso del Simulink


Estructura de un controlador PID
Fase 1: experimentación con Simulink
a) Con factor de amortiguamiento  = 0.5

Sin PID

GC(s) = 𝐾𝑃 1 + 𝑇1 𝑠 + 𝑇𝑑 𝑠 = 5(1 + 1𝑠
1
+ 0.2𝑠)
𝑖

Con PID ideal


Fase 1: experimentación con Simulink
b) Con factor de amortiguamiento  = 0.1

Sin PID

Con PID ideal


Fase 1: experimentación con Simulink
c) Con factor de amortiguamiento  = 2

Sin PID

Con PID ideal


c) Con factor de amortiguamiento  = 2

Con PID
Sin PID
3

Modelado de un controlador PID.


Regla de Ziegler-Nichols
Introducción

Se presenta en primer lugar el diseño de un sistema controlado por un PID


utilizando las reglas de sintonía de Ziegler y Nichols

Recordando que el término sintonización se refiere a la selección de los parámetros


del sistema que se compone el controlador.

Tales reglas de sintonía sugieren establecer un conjunto de valores de Kp, Ti y Td que


darán una operación estable del sistema. Las reglas de Ziegler-Nichols, que se presentan a
continuación, son muy convenientes cuando no se conocen los modelos matemáticos de
las plantas. También se pueden aplicar al diseño de sistemas con modelos matemáticos
conocidos.
Reglas de Ziegler-Nichols para sintonizar
controladores PID.
John Ziegler y Nathaniel Nichols propusieron reglas para determinar los valores de la
ganancia proporcional Kp, del tiempo integral Ti y del tiempo derivativo Td, basándose en
las características de respuesta transitoria de una planta dada.
Primer método. En el primer método, la
respuesta de la planta a una entrada escalón
unitario se obtiene de manera experimental,
tal como se muestra en la figura (1). Si la
planta no contiene integradores ni polos
dominantes complejos conjugados, la curva
de respuesta escalón unitario puede tener
forma de S, como se observa en la figura (2).

Figura (1) Figura (2)


Reglas de Ziegler-Nichols para sintonizar
controladores PID.
Este método se puede aplicar si la respuesta muestra una curva con forma de S. Tales
curvas de respuesta escalón se pueden generar experimentalmente o a partir de una
simulación dinámica de la planta.

La curva con forma de S se caracteriza por dos parámetros: el tiempo de retardo L y la


constante de tiempo T. El tiempo de retardo y la constante de tiempo se determinan
dibujando una recta tangente en el punto de inflexión de la curva con forma de S y
determinando las intersecciones de esta tangente con el eje del tiempo y con la línea
c(t)=K, tal como se muestra en la figura (2)

Regla de sintonía de Ziegler-


Nichols basada en la respuesta
escalón de la planta (primer
método).
Reglas de Ziegler-Nichols para sintonizar
controladores PID.
la función de transferencia C(s)/U(s) se aproxima mediante un sistema
de primer orden con un retardo del modo siguiente:

Note que el controlador PID sintonizado mediante el primer método de las reglas de
Ziegler-Nichols produce

Por tanto, el controlador PID tiene un polo en el origen y un cero doble en s = -1/L.
Reglas de Ziegler-Nichols para sintonizar
controladores PID.
Segundo método. En el segundo método, primero se fija Ti =  y Td = 0. Usando sólo
la acción de control proporcional, según la figura (3), se incrementa Kp desde 0 hasta un
valor crítico Kcr, en donde la salida presente oscilaciones sostenidas. (Si la salida no
presenta oscilaciones sostenidas para cualquier valor que pueda tomar Kp, entonces este
método no se puede aplicar.) Así, la ganancia crítica Kcr y el periodo Pcr correspondiente se
determinan experimentalmente (ver la figura (5).
Reglas de Ziegler-Nichols para sintonizar
controladores PID.
Ziegler-Nichols sugirieron que se establecieran los valores de los parámetros Kp, Ti y Td de
acuerdo con la fórmula que se muestra en la Tabla siguiente:

Obsérvese que el controlador PID


sintonizado mediante el segundo
método de las reglas de Ziegler-
Nichols produce
Por tanto, el controlador PID tiene un polo
en el origen y un cero doble en s = -4/Pcr.
Reglas de Ziegler-Nichols para sintonizar
controladores PID.
Otras tablas disponibles para el diseño
4

Diseño de un controlador de un sistema de


control usando criterio de estabilidad de
Routh
Ejemplo de diseño
Sea el sistema de control que se muestra en la figura mostrada, en el cual se usa un
controlador PID para controlar el sistema. El controlador PID tiene la función de
transferencia

Función de transferencia del PID

Aplique la regla de sintonía de Ziegler-Nichols para la determinación de los valores de los


parámetros Kp, Ti y Td. A continuación, obtenga una curva de respuesta escalón unitario
y verifique si el sistema diseñado presenta un máximo sobreimpulso de aproximadamente
del 25%. Si se excediera más del 40% nuevamente haga una sintonía fina y reduzca la
cantidad del máximo sobreimpulso al 25% o menos.
Ejemplo de diseño
Como la planta tiene un integrador, se utiliza el segundo método de las reglas de sintonía de
Ziegler-Nichols. Fijando Ti =  y Td = 0, se obtiene la función de transferencia en lazo cerrado
del modo siguiente:

El valor de Kp que hace al sistema marginalmente estable para que ocurra una oscilación
sostenida se obtiene mediante el criterio de estabilidad de Routh. Como la ecuación
característica para el sistema en lazo cerrado es

el array de Routh es:


Ejemplo de diseño
Revisando los coeficientes de la primera columna del array de Routh, se encuentra que
ocurrirá una oscilación sostenida si Kp=30. Así, la ganancia crítica Kcr es

Con la ganancia Kp fijada igual a


Kcr (=30), la ecuación
característica es

Para encontrar la frecuencia de la oscilación sostenida, se sustituye s = j en la ecuación


característica, del modo siguiente:
Ejemplo de diseño
a partir de lo cual se encuentra que la frecuencia de la oscilación sostenida es 2=5 o

Así, el periodo de la oscilación sostenida es

Teniendo en cuenta la Tabla del segundo método, se determinan Kp, Ti y Td del modo
siguiente:

Por tanto, la función de transferencia del controlador PID es


Ejemplo de diseño
El controlador PID tiene un polo en el origen y un cero doble en s = -1.4235. En la figura se
muestra un diagrama de bloques del sistema de control con el controlador PID diseñado.
A continuación, se examina la respuesta escalón unitario del sistema. La función de
transferencia en lazo cerrado C(s)/R(s) está dada por

Diagrama de bloques del sistema con controlador PID diseñado mediante


la regla de sintonía de Ziegler-Nichols (segundo método).
Ejemplo de diseño

clc
close all
%Respuesta a escalon unitario
num=[6.3223 18 12.811];
den=[1 6 11.3223 18 12.811];
step(num,den);
grid
title('Respuesta al escalón
unitario')
xlabel('Tiempo')
ylabel('Amplitud')

El máximo sobre impulso en la


respuesta un escalón unitario es de
aproximadamente 62%. Este valor es
un alto. Requiere un ajuste fino en el
diseño del controlador.
Ejemplo de diseño
Dicha sintonía se puede hacer en la computadora. Se encuentra que manteniendo Kp=18
y moviendo el cero doble del controlador PID a s = -0.65, es decir, usando el controlador PID
Respuesta al escalón unitario
1.4
(1)
1.2
MP = 18%
1
clc
close all
0.8
%Respuesta a escalon unitario

Amplitud
num=[13.846 18 5.849935];
den=[1 6 18.846 18 5.849935]; 0.6
step(num,den);
grid 0.4
title('Respuesta al escalón unitario')
xlabel('Tiempo')
0.2
ylabel('Amplitud')

0
0 1 2 3 4 5 6 7 8
Tiempo (seconds)

Respuesta a un escalón unitario del sistema mostrado en la figura con controlador PID
teniendo parámetros Kp= 18, Ti = 3.077 y Td = 0.7692
Ejemplo de diseño
Dicha sintonía se puede hacer en la computadora. Se encuentra que manteniendo Kp=39.42
y moviendo el cero doble del controlador PID a s = -0.65, es decir, usando el controlador PID
Respuesta al escalón unitario
1.4
(2)
1.2

MP = 28%
1
clc
close all
0.8
%Respuesta a escalon unitario

Amplitud
num=[30.322 39.4186 12.811045];
den=[1 6 35.322 39.4186 12.811045]; 0.6
step(num,den);
grid
title('Respuesta al escalón unitario') 0.4
xlabel('Tiempo')
ylabel('Amplitud')
0.2

0
0 1 2 3 4 5 6 7
Tiempo (seconds)

Respuesta a un escalón unitario del sistema mostrado en la figura con controlador PID teniendo
parámetros Kp= 39.42, Ti = 3.077 y Td = 0.7692.
5

Programación de diseño de controladores


usando Matlab
Programación con Matlab
Sea el sistema que se muestra en la figura mostrada que está controlado por un
controlador PID. El controlador PID está dado por

Se desea encontrar una combinación de K y a tal que el sistema en lazo cerrado sea
subamortiguado y su máximo sobreimpulso en la respuesta a un escalón unitario sea
menor que el 10%.
Programación con Matlab
Para resolver este problema con MATLAB, primero se especifica la región para buscar
valores adecuados de K y a. A continuación se escribe un programa MATLAB tal que en la
respuesta a un escalón unitario se pueda encontrar una combinación de K y a que
satisfagan el criterio de que el máximo sobreimpulso sea menor que el 10%.

Note que la ganancia K no debería ser demasiado grande para evitar que el sistema
necesite una innecesaria unidad de potencia. Se supone que la región para buscar K y a
está acotada por

Si en esta región no existe una solución será necesario ampliarla. Sin embargo, en algunos
problemas independientemente de la región de búsqueda no hay solución.

En el método computacional es necesario determinar el tamaño del paso de cálculo para


cada K y a, que para este ejemplo se usará con pasos de 0.2 tanto para K como a. En el
proceso de diseño real es necesario escoger tamaños de paso de cálculo bastante
pequeños.
Programación con Matlab
En este programa, la sentencia

producirá una tabla de valores de K, a y m. (En el sistema que se considera hay 15


conjuntos de K y a que cumplen m < 1.10; esto es, el máximo sobreimpulso es menor
que el 10%.)

Para ordenar los conjuntos de soluciones con respecto a la magnitud del máximo
sobreimpulso (comenzando en el valor más pequeño y finalizando en el valor más
grande de m en la tabla), se utiliza la orden

Nota: m representa al máximo sobreimpulso Mp


Programación con Matlab

%'K' y 'a' valores a comprobar


K = [2.0 2.2 2.4 2.6 2.8 3.0];
a = [0.5 0.7 0.9 1.1 1.3 1.5];
% Evaluar la respuesta en lazo cerrado a un escalón unitario en cada combinación
% de 'K' y 'a' que dará el máximo sobreimpulso menor que el 10%
t = 0:0.01:5;
g = tf([1.2],[0.36 1.86 2.5 1]);

k=0;
for i = 1:6;
for j = 1:6;
gc = tf(K(i)*[1 2*a(j) a(j)^2],[1 0]); % controlador
G = gc*g/(1+gc*g); % función de transferencia en lazo cerrado
y = step(G,t);
m = max(y);
if m<1.10
k=k+1;
solution(k,:) = [K(i) a(j) m];
end
end
end
solution % Imprime tabla solución
Programación con Matlab
Si se desea ordenar la información del máximo
sobreimpulso MP (columna 3) escriba el comando

solution = >> sortsolution = sortrows(solution,3)


K a Mp
2.0000 0.5000 0.9002 sortsolution =
K a Mp
2.0000 0.7000 0.9807
2.0000 0.5000 0.9002
2.0000 0.9000 1.0614 2.2000 0.5000 0.9114
2.2000 0.5000 0.9114 2.4000 0.5000 0.9207
2.2000 0.7000 0.9837 2.6000 0.5000 0.9283
2.2000 0.9000 1.0772 2.8000 0.5000 0.9348
2.4000 0.5000 0.9207 3.0000 0.5000 0.9402
2.4000 0.7000 0.9859 2.0000 0.7000 0.9807
2.4000 0.9000 1.0923 2.2000 0.7000 0.9837
2.4000 0.7000 0.9859
2.6000 0.5000 0.9283
2.6000 0.7000 0.9877
2.6000 0.7000 0.9877 2.8000 0.7000 1.0024
2.8000 0.5000 0.9348 3.0000 0.7000 1.0177
2.8000 0.7000 1.0024 2.0000 0.9000 1.0614
3.0000 0.5000 0.9402 2.2000 0.9000 1.0772
3.0000 0.7000 1.0177 2.4000 0.9000 1.0923
Programación con Matlab
>>
% sigue esta parte de la programación
K = sortsolution(k,1)
K=
a = sortsolution(k,2) 2.4000
gc = tf(K*[1 2*a a^2],[1 0]); a=
G = gc*g/(1+gc*g);
figure(1) 0.9000
step(G,t)
grid % Ver Figura 1
% Si desea representar la respuesta con el máximo sobreimpulso más pequeña
% que es mayor que 0%, introduzca los siguientes valores de 'K' y 'a'
pause
K = sortsolution(11,1) >>
a = sortsolution(11,2)
gc = tf(K*[1 2*a a^2],[1 0]); K=
G = gc*g/(1+gc*g); 2.8000
figure(2)
step(G,t)
a=
grid % Ver Figura 2 0.7000
Programación con Matlab
Figura 1 Figura 2

Step Response Step Response


1.4 1.4

1.2 1.2

1
1

0.8
Amplitude

0.8

Amplitude
0.6
0.6

0.4
0.4

0.2
0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0
Time (seconds) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)
Programación con Matlab

Para representar la curva de respuesta a un escalón unitario del sistema con cualquier
conjunto mostrado en la tabla ordenada, se especifican los valores de K y a
introduciendo una orden sortsolution apropiada.

Observe que para una especificación de que el máximo sobreimpulso esté entre el 10%
y el 5%, habría tres conjuntos de soluciones:

En la siguiente se muestran las curvas de respuesta a un escalón unitario para estos


tres casos. Observe que el sistema con la ganancia K más grande tiene un tiempo de subida
menor y un máximo sobreimpulso mayor.
¿Cuál de estos tres sistemas es mejor? Esto depende del objetivo del sistema.
Programación con Matlab
Programación con Matlab
Sea el sistema que se muestra en la figura mostrada. Se desean encontrar todas las
combinaciones de K y a tal que el sistema en lazo cerrado tenga un máximo sobreimpulso
en la respuesta a un escalón unitario menor que el 15% pero mayor que el 10%.
Además, el tiempo de asentamiento debe ser menor de 3 seg.

En este problema, se supone que la región para buscar K y a está acotada por

Determine cuál es la mejor elección de los parámetros K y a.


Programación con Matlab
En este problema se escoge el tamaño del paso de cálculo a un valor razonable
—por ejemplo, 0.2 para K y 0.1 para a. El programa genera la solución de este problema.

De la tabla sortsolution parece que la primera fila es una buena elección.


En la figura se muestra la respuesta a un escalón unitario para K=3.2 y a=0.9.
Como esta elección requiere un valor de K menor que el resto de opciones, se decide que la
primera fila es la mejor opción.
Programación con Matlab
clc
close all
t = 0:0.01:8; % hay 801 valores para t. puede usar el comando length(t)
k=0;
for K = 3:0.2:5;
for a = 0.1:0.1:3;
num = [4*K 8*K*a 4*K*a^2];
den = [1 6 8+4*K 4+8*K*a 4*K*a^2];
y =step(num,den,t);
s = length(t);while y(s)>0.98 & y(s)<1.02; s = s - 1;end;
ts = (s-1)*0.01; % ts = settling time;
m = max(y); solution =
if m<1.15 & m>1.10; if ts<3.00; K a m ts
k = k+1; 3.0000 1.0000 1.1469 2.7700
solution(k,:) = [K a m ts]; 3.2000 0.9000 1.1065 2.8300
end 3.4000 0.9000 1.1181 2.7000
end
3.6000 0.9000 1.1291 2.5800
end
end 3.8000 0.9000 1.1396 2.4700
solution 4.0000 0.9000 1.1497 2.3800
4.2000 0.8000 1.1107 2.8300
4.4000 0.8000 1.1208 2.5900
Si deseamos ordenar la información para el máximo 4.6000 0.8000 1.1304 2.4300
sobreimpulso aplicamos el comando 4.8000 0.8000 1.1396 2.3100
sortsolution = sortrows(solution,3) 5.0000 0.8000 1.1485 2.2100
Programación con Matlab
sortsolution =
K a m ts
3.2000 0.9000 1.1065 2.8300
4.2000 0.8000 1.1107 2.8300
3.4000 0.9000 1.1181 2.7000
4.4000 0.8000 1.1208 2.5900
3.6000 0.9000 1.1291 2.5800
4.6000 0.8000 1.1304 2.4300
4.8000 0.8000 1.1396 2.3100
3.8000 0.9000 1.1396 2.4700
3.0000 1.0000 1.1469 2.7700
5.0000 0.8000 1.1485 2.2100
4.0000 0.9000 1.1497 2.3800

K = sortsolution(1,1), a = sortsolution(1,2)

K=
3.2000
a=
0.9000
num =
12.8000 23.0400 10.3680
den =
1.0000 6.0000 20.8000 27.0400 10.3680
6

Diseño de controladores PID usando


amplificadores operacionales
Circuitos característicos – controladores PI
Control de velocidad con controlador PI

r(t) = referencia
Por lo general una señal
de tipo escalón

u = señal de control
v = es la salida del sistema
Diseño del controlador PI

Se desea :
1.- Error de estado estacionario cero para entrada
escalón de lazo cerrado.
2.- máximo sobreimpulso ligeramente menor a
16.30%.
3.- Tiempo de establecimiento de 2s.
Diseño del controlador PI



1−2
𝑀𝑃 = 𝑒 = 0.1630 =0.5

5 5
𝑡𝑠 = = =2  = 2.5 y 𝑛 = 5𝑟𝑎𝑑/𝑠
 𝑛

Luego los polos deseados son:


𝑠1,2 = − ± 𝑑 = −𝑛 ± 𝑗𝑛 1 − 2 = −2.5 ± 𝑗4.3296
Diseño del controlador PI

Reto: programar en Matlab los valores de los parámetros del controlador para la respuesta
para GPI(s)
Circuitos característicos – controladores PID
Diseño del controlador PID

Se desea :
1.- Error de estado estacionario cero para entrada
escalón de lazo cerrado.
2.- máximo sobreimpulso ligeramente menor a
16.30%.
3.- Tiempo de establecimiento de 2s.
Diseño del controlador PID



1−2
𝑀𝑃 = 𝑒 = 0.1630 =0.5

5 5
𝑡𝑠 = = =2  = 2.5 y 𝑛 = 5𝑟𝑎𝑑/𝑠
 𝑛

Luego los polos deseados son:


𝑠1,2 = − ± 𝑑 = −𝑛 ± 𝑗𝑛 1 − 2 = −2.5 ± 𝑗4.3296
Diseño del controlador PID

Reto: programar en Matlab los valores de los parámetros del controlador para la respuesta
para GPI(s)
Bibliografía

 Ingeniería de Control Moderno. K. Ogata. Pearson.


 Mecatrónica. W. Bolton. Alfaomega

Das könnte Ihnen auch gefallen