¿Colocación del polo para crear un controlador de retroalimentación de estado completo?

1

Estoy aprendiendo sobre la teoría del control al revisar Ingeniería de control moderna de Oagata .

Como parte de un ejercicio de práctica, estoy tratando de 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 la pole.

Requisitos de diseño :

  1. exceso del 5% de exceso
  2. Tiempo de establecimiento inferior a 2 s
  3. Error de estado estacionario minimizado

Mi sistema de 4to orden :

                 - 0.00198 s + 2
  ----------------------------------------------
   s^4 + 0.1201 s^3 + 12.22 s^2 + 0.4201 s + 2

Respuesta al paso:

Loquehehechohastaahora:

Comencéporentenderlatécnicadecolocacióndelospolos.Dadoquelasubicacionesdelospolosdebuclecerradotienenunimpactodirectoenelrebasamiento,eltiempodeestablecimientoyelerrordeestadoestable,estospuedenajustarseenconsecuenciaparaobtenerlarespuestadeseada.Lacolocacióndelospostessepuedehacerusandotécnicasdeespaciodeestado,yporlotantorequiereunmodelodeespaciodeestadodelsistema.Porlotanto:

NUM4=[-0.001982];DEN4=[10.120112.220.42012];sys=tf(NUM4,DEN4)[A,B,C,D]=tf2ss(NUM4,DEN4)A=-0.1201-12.2200-0.4201-2.00001.000000001.000000001.00000B=[1;0;0;0]C=[00-0.00202.0000]D=0

Acontinuación,lospolosdebuclecerradosonlosvalorespropiosdeA-BK,dondeKsepuedecalcularutilizandoel place función.

K = place(A,B,p); donde p contiene las ubicaciones deseadas de los polos de bucle cerrado. He procedido 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 que postes 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.

    
pregunta Rrz0

1 respuesta

1

Según lo dirigido por los útiles comentarios de @TimeWescott, estoy tomando a K como los valores propios del sistema con comentarios.

La dinámica de bucle cerrado está dictada por \ $ A_cl = A -BK \ $ y no por \ $ K \ $ .

Por lo tanto, uno debe seguir adelante:

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 bucle cerrado en formato ss para este caso (D = 0) es:

\ $ ẋ = (A-BK) x + Bu \ $

Graficando la respuesta a un paso de entrada:

[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 establezco el valor final en Simulink en 1 , la salida se establece en 2. Será necesario investigar por qué sucede esto.

    
respondido por el Rrz0

Lea otras preguntas en las etiquetas