Problema de la guía 5.
De la parte de optativos, ejercicio N°3.
Sea un sistema dado por las variables de estado:
𝑥̇(𝑡) = 𝐴𝑥(𝑡) + 𝐵𝑢(𝑡)
𝑦(𝑡) = 𝐶𝑥(𝑡)
Donde
−0.0197 0 0.0263
𝐴=( ) 𝐵=( ) 𝐶 = (0 1)
0.0178 −0.0129 0
Diseñar un controlador tal que el sistema en lazo cerrado tenga error en estado
estacionario nulo para una entrada escalón en la referencia y un margen de fase de 50° a
0.025 rad/seg.
El ejercicio presenta un sistema en variables de estados, para buscar un controlador según las
especificaciones debemos buscar su función de transferencia.
Función de transferencia 𝐺(𝑠) = 𝐶(𝑠𝐼 − 𝐴)−1 𝐵 . Con los datos dados solo es necesario operar
matricialmente de la siguiente manera. Se calcula aparte la matriz inversa de (𝑠𝐼 − 𝐴)−1
1
0
(𝑠 + 0.0197) 0.0263
𝐺(𝑠) = (0 1 ) ( )
0.0178 1 0
(𝑠 + 0.0129)(𝑠 + 0.0197) (𝑠 + 0.0129)
( )
0.0178 1 0.0263
𝐺(𝑠) = ( )( )
(𝑠 + 0.0129)(𝑠 + 0.0197) (𝑠 + 0.0129) 0
0.00046814
𝐺(𝑠) =
(𝑠 + 0.0129)(𝑠 + 0.0197)
Una vez obtenida la función de transferencia de la planta G(s) se propone un controlador PI en
cascada al sistema. Se usará un integrador para asegurar que el error en estado estacionario sea
nulo.
𝑘𝑖
El controlador propuesto es 𝐺𝑐 (𝑠) = 𝑘𝑝 + 𝑠
Por lo tanto, la función de transferencia del sistema en lazo cerrado será:
𝐺𝑐 𝐺
𝐻(𝑠) =
1 + 𝐺𝑐 𝐺
El controlador PI está compuesto por dos parámetros que pueden modificarse para llegar al
control deseado. El requisito del problema es un margen de fase de 50° para la frecuencia
w=0.025, por lo tanto, la ganancia de lazo directo debe ser 1. Si el producto de las magnitudes es 1
la magnitud del controlador es el inverso al de la planta
1
|𝐺𝑐 (𝑗𝑤)| =
|𝐺(𝑗𝑤)|
|0.00046814| 0.00046814
|𝐺(𝑗𝑤)| = = = 0.5228197
|𝑗𝑤 + 0.0129||𝑗𝑤 + 0.0197| (√𝑤 2 + 0.01292 )(√𝑤 2 + 0.01972 )
1 1
|𝐺𝑐 (𝑗𝑤)| = =
|𝐺(𝑗𝑤)| 0.5228197
Lo siguiente a tener en cuenta es la fase que debe tener el controlador para que quede un margen
de fase de 50°. Este margen es la fase que se le puede agregar al sistema para que se mantenga
estable. Necesitamos conocer la fase del sistema para la frecuencia w=0.025 rad/seg.
𝑤 𝑤
∡𝐺(𝑗𝑤) = 0° − tan−1 ( ) − tan−1 ( ) = −114.4681°
0.0197 0.0129
La fase que debe tener el controlador será
∡𝐺𝑐 (𝑗𝑤) = −180° + 𝑀𝐹 − ∡𝐺(𝑗𝑤)
∡𝐺𝑐 (𝑗𝑤) = −180° + 50° + 114.4681°
∡𝐺𝑐 (𝑗𝑤) = −15.5319°
Una vez calculada la magnitud y fase que debe tener el controlador podemos ajustar las variables
𝑘𝑝 , 𝑘𝑖 del controlador propuesto.
𝑘𝑖
𝐺𝑐 (𝑠) = 𝑘𝑝 +
𝑠
Con la función de transferencia 𝐺𝑐 (𝑠) podemos obtener la respuesta en frecuencia del
controlador.
𝑘𝑝 𝑗𝑤 + 𝑘𝑖
𝐺𝑐 (𝑗𝑤) =
𝑗𝑤
El cálculo de la magnitud:
√𝑘𝑝2 𝑤 2 + 𝑘𝑖2 1
|𝐺𝑐 (𝑗𝑤)| = =
√𝑤 2 0.5228197
𝑤
√𝑘𝑝2 𝑤 2 + 𝑘𝑖2 =
0.5228197
𝑤 2
𝑘𝑝2 𝑤 2 + 𝑘𝑖2 = ( )
0.5228197
2
0.025
𝑘𝑝2 0.0252 + 𝑘𝑖2 =( )
0.5228197
El cálculo de la fase del controlador es:
𝑘𝑝 𝑤
∡𝐺𝑐 (𝑗𝑤) = tan−1 ( ) − 90° = −15.5319°
𝑘𝑖
𝑘𝑝 𝑤
= tan(74.4681)
𝑘𝑖
𝑘𝑝 = 143.6 𝑘𝑖
Fase y magnitud quedan en términos de 𝑘𝑝 , 𝑘𝑖 . Son dos ecuaciones y dos incógnitas. Entonces de
existir habrá una única solución.
2
0.025
(143.6 𝑘𝑖 )2 0.0252 + 𝑘𝑖2 = ( )
0.5228197
2
0.025
(143.62 ∗ 0.0252 + 1)𝑘𝑖2 = ( )
0.5228197
𝑘𝑖 = 0.01283
𝑘𝑝 = 143.6 𝑘𝑖 = 1.8431
Los parámetros anteriores determinan el controlador PI:
0.01283
𝐺𝑐 (𝑠) = 1.8431 +
𝑠
Verificamos el error en estado estacionario del sistema realimentado
𝐺𝑐 (𝑠)𝐺(𝑠)
𝑒(𝑠) = (1 − 𝐻(𝑠))𝑟(𝑠) = (1 − ) 𝑟(𝑠)
1 + 𝐺𝑐 (𝑠)𝐺(𝑠)
Utilizando el teorema del valor final
𝐺𝑐 (𝑠)𝐺(𝑠)
lim 𝑒(𝑡) = lim 𝑠𝐸(𝑠) = 𝑠 (1 − ) 𝑟(𝑠)
𝑡→∞ 𝑠→0 1 + 𝐺𝑐 (𝑠)𝐺(𝑠)
1.8431𝑠 + 0.01283 0.00046814
𝑠 (𝑠 + 0.0129)(𝑠 + 0.0197) 1
𝑒(𝑠) = lim 𝑠 (1 − )
𝑠→0 1.8431𝑠 + 0.01283 0.00046814 𝑠
1+ 𝑠 (𝑠 + 0.0129)(𝑠 + 0.0197)
(1.8431𝑠 + 0.01283) 0.00046814 1
𝑒(𝑠) = lim 𝑠 (1 − )
𝑠→0 𝑠 (𝑠 + 0.0129)(𝑠 + 0.0197) + (1.8431𝑠 + 0.01283) 0.00046814 𝑠
(1.8431𝑠 + 0.01283) 0.00046814
𝑒(𝑠) = lim (1 − )=0
𝑠→0 𝑠 (𝑠 + 0.0129)(𝑠 + 0.0197) + (1.8431𝑠 + 0.01283) 0.00046814
El error en estado estacionario es cero. Este resultado debería comprobarse para cualquier valor
de 𝑘𝑖 mientras 𝑘𝑖 ≠ 0. Esto es así debido al integrador en el lazo directo y eso es algo que se
cumple con el controlador propuesto. La variación de 𝑘𝑝 no arriesga la estabilidad del sistema
mientras 𝑘𝑝 > 0 .
El margen de fase puede verse realizando el diagrama de bode para la función 𝐺𝑐 (𝑠)𝐺(𝑠).
El diagrama muestra una fase de -130° para una magnitud de 0db en la frecuencia w=0.025
rad/seg, el margen de fase es de 50°.
A continuación, estará el código para la realización del ejercicio en Matlab. Algo interesante para
que vean del código es como se puede acceder a la fase y magnitud de un diagrama de bode para
frecuencias específicas.
Resolución del problema mediante Matlab
% sistema
A=[-0.0197 0; 0.0178 -0.0129];
B=[0.0263;0];
C=[0,1];
% Pide un controlador que le dé un margen de fase 50 y error nulo en
estado estacionario
%% funcion de transferencia
s= tf('s');
I=diag([1 1]);
G=C*inv(s*I-A)*B;
% propongo un controlador PI de la forma Gc=kp+ki/s;
w = 0.025; % a esta frecuencia busco la magnitud y fase de la
planta(función de transferencia que calcule antes)
[mag,phase] = bode(G,w);
%la magnitud del controlador debe ser 1/|G| y la fase del controlador
%fase=-180+MF-fase(G)
%con esto se consiguen dos ecuaciones con dos incognitas (Los parametros
del controlador)
%% Controlador
kp=1.843164;
ki=0.0128354;
Gc=kp+ki/s;
%% step
[mag_lazo,phase_lazo] = bode(G*Gc,w);% acá puede verse el margen de fase
H=(G*Gc)/(1+G*Gc);
step(H) %acá puede verse el error en estado estacionario
xlim([0 1000])