Estoy aprendiendo sobre la teoría del control mediante la Ingeniería de control moderno de Oagata .
Como parte de un ejercicio de práctica, intento diseñar un controlador de retroalimentación de estado completo que satisfaga mis requisitos de diseño utilizando la técnica de colocación de polos .
MathWorks proporciona documentación de alta calidad sobre la colocación de postes.
Requisitos de diseño :
Mi sistema de cuarto orden :
- 0.00198 s + 2
----------------------------------------------
s^4 + 0.1201 s^3 + 12.22 s^2 + 0.4201 s + 2
Respuesta de paso:
Lo que he hecho hasta ahora:
Primero comencé por comprender la técnica de colocación de postes. Dado que las ubicaciones de los polos de bucle cerrado tienen un impacto directo en el sobreimpulso, el tiempo de establecimiento y el error de estado estable, estos pueden ajustarse en consecuencia para obtener la respuesta deseada. La ubicación de los polos se puede realizar utilizando técnicas de espacio de estado y, por lo tanto, requiere un modelo de espacio de estado del sistema. Por lo tanto:
NUM4 = [-0.00198 2];
DEN4 = [1 0.1201 12.22 0.4201 2];
sys = tf(NUM4,DEN4)
[A, B, C, D] = tf2ss(NUM4,DEN4)
A = -0.1201 -12.2200 -0.4201 -2.0000
1.0000 0 0 0
0 1.0000 0 0
0 0 1.0000 0
B = [1; 0; 0; 0]
C = [0 0 -0.0020 2.0000]
D = 0
Luego, los polos en lazo cerrado son los valores propios de A-BK
, donde K
se pueden calcular usando la place
función.
K = place(A,B,p);
donde p
contiene las ubicaciones deseadas de los polos de bucle cerrado. Procedí con:
p = [-0.424+1i*1.263, -0.424-1i*1.263, -0.626+1i*0.4141,
-0.626-1i*0.4141];
K = place(A,B,p)
Y el resultado que obtuve fue:
K =
1.9799 -8.8200 2.2799 -1.0001
Esto significa que tengo polos en el lado derecho del avión, lo que resulta en un sistema inestable . Dado que necesito diseñar un controlador de retroalimentación de estado completo que satisfaga los requisitos de diseño, esto es claramente incorrecto.
Según lo indicado por los útiles comentarios de @TimWescott, tomo K como los valores propios del sistema con retroalimentación.
La dinámica de lazo cerrado está dictada por y no .
Por lo tanto, uno debe continuar:
Acl = A - B*K;
e = eig(Acl)
Resultado:
e =
-0.4240 + 1.2630i
-0.4240 - 1.2630i
-0.6260 + 0.4141i
-0.6260 - 0.4141i
El sistema de lazo cerrado en forma ss para este caso (D=0) es:
Trazado de la respuesta a una entrada de paso:
[n,d] = ss2tf(Acl,B,C,D)
n =
0 0 0 -0.0020 2.0000
d =
1.0000 2.1000 3.4000 2.7000 0.9999
Aunque configuré el valor final en Simulink para que 1
la salida se asiente en 2. Será necesario investigar por qué sucede esto.
Tim Wescott
Tim Wescott
rrz0
Tim Wescott