Main Content

lqr

Diseño de un regulador lineal cuadrático (LQR)

Descripción

ejemplo

[K,S,P] = lqr(sys,Q,R,N) calcula la matriz de ganancia óptima K, la solución S de la ecuación algebraica de Riccati asociada y los polos de lazo cerrado P para el modelo de espacio de estados en tiempo continuo o tiempo discreto sys. Q y R son las matrices de ponderación para estados y entradas, respectivamente. La matriz de término cruzado N se establece en cero cuando se omite.

ejemplo

[K,S,P] = lqr(A,B,Q,R,N) calcula la matriz de ganancia óptima K, la solución S de la ecuación algebraica de Riccati asociada y los polos de lazo cerrado P utilizando las matrices de espacio de estados en tiempo continuo A y B. Esta sintaxis solo es válida para modelos de tiempo continuo. Para modelos de tiempo discreto, utilice dlqr.

Ejemplos

contraer todo

pendulumModelCart.mat contiene el modelo de espacio de estados para un péndulo invertido en un carro donde las salidas son el desplazamiento del carro x y el ángulo del péndulo θ. La entrada de control u es la fuerza horizontal sobre el carro.

[x˙x¨θ˙θ¨]=[01000-0.13000010-0.5300][xx˙θθ˙]+[0205]uy=[10000010][xx˙θθ˙]+[00]u

Primero, cargue el modelo de espacio de estados sys en el área de trabajo.

load('pendulumCartModel.mat','sys')

Puesto que las salidas son x y θ, y solo hay una entrada, utilice la regla de Bryson para determinar Q y R.

Q = [1,0,0,0;...
    0,0,0,0;...
    0,0,1,0;...
    0,0,0,0];
R = 1;

Encuentre la matriz de ganancia K utilizando lqr. Puesto que N no se especifica, lqr establece N en 0.

[K,S,P] = lqr(sys,Q,R)
K = 1×4

   -1.0000   -1.7559   16.9145    3.2274

S = 4×4

    1.5346    1.2127   -3.2274   -0.6851
    1.2127    1.5321   -4.5626   -0.9640
   -3.2274   -4.5626   26.5487    5.2079
   -0.6851   -0.9640    5.2079    1.0311

P = 4×1 complex

  -0.8684 + 0.8523i
  -0.8684 - 0.8523i
  -5.4941 + 0.4564i
  -5.4941 - 0.4564i

Aunque la regla de Bryson suele ofrecer resultados satisfactorios, normalmente solo es el punto de partida para un procedimiento de diseño iterativo de prueba y error para ajustar la respuesta del sistema de lazo cerrado en función de los requisitos de diseño.

aircraftPitchModel.mat contiene las matrices de espacio de estados de una aeronave donde la entrada es el ángulo de deflexión del elevador δ y la salida es el ángulo de inclinación de la aeronave θ.

[α˙q˙θ˙]=[-0.31356.70-0.0139-0.4260056.70][αqθ]+[0.2320.02030][δ]y=[001][αqθ]+[0][δ]

Para una referencia de escalón de 0,2 radianes, considere los siguientes criterios de diseño:

  • Tiempo de subida inferior a 2 segundos

  • Tiempo de estabilización inferior a 10 segundos

  • Error de estado estacionario inferior al 2%

Cargue los datos del modelo en el área de trabajo.

load('aircraftPitchModel.mat')

Defina la matriz ponderada de coste de estado Q y la matriz ponderada de control R. Por lo general, puede utilizar la regla de Bryson para definir las matrices ponderadas iniciales Q y R. En este ejemplo, considere el vector de salida C junto con un factor de escalado de 2 para la matriz Q y elija R como 1. R es un escalar porque el sistema solo tiene una entrada.

R = 1
R = 1
Q1 = 2*C'*C
Q1 = 3×3

     0     0     0
     0     0     0
     0     0     2

Calcule la matriz de ganancia utilizando lqr.

[K1,S1,P1] = lqr(A,B,Q1,R);

Compruebe la respuesta al escalón de lazo cerrado con la matriz de ganancia generada K1.

sys1 = ss(A-B*K1,B,C,D);
step(sys1)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys1.

Puesto que esta respuesta no cumple los objetivos de diseño, aumente el factor de escalado a 25, calcule la matriz de ganancia K2 y compruebe la respuesta al escalón de lazo cerrado para la matriz de ganancia K2.

Q2 = 25*C'*C
Q2 = 3×3

     0     0     0
     0     0     0
     0     0    25

[K2,S2,P2] = lqr(A,B,Q2,R);
sys2 = ss(A-B*K2,B,C,D);
step(sys2)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys2.

En la gráfica de respuesta al escalón de lazo cerrado, el tiempo de subida, el tiempo de estabilización y el error de estado estacionario cumplen los objetivos de diseño.

Argumentos de entrada

contraer todo

Modelo de sistema dinámico, especificado como objeto de modelo ss.

Matriz de estado, especificada como una matriz de n por n, donde n es el número de estados.

Matriz de entrada a estado, especificada como matriz de entrada a estado de n por m, donde m es el número de entradas.

Matriz ponderada de coste de estado, especificada como una matriz de n por n, donde n es el número de estados. Puede utilizar la regla de Bryson para establecer los valores iniciales de Q dados por:

Qi,i=1maximum acceptable value of (errorstates)2, i{1,2,...,n}Q=[Q1,1000Q2,200000Qn,n]

En este caso, n es el número de estados.

Matriz ponderada de coste de entrada, especificada como escalar o matriz del mismo tamaño que D'D. En este caso, D es la matriz de espacio de estados de alimentación. Puede utilizar la regla de Bryson para establecer los valores iniciales de R dados por:

Rj,j=1maximum acceptable value of (errorinputs)2, j{1,2,...,m}R=[R1,1000R2,200000Rm,m]

En este caso, m es el número de entradas.

Matriz de término cruzado opcional, especificada como matriz. Si N no se especifica, lqr establece N en 0 de forma predeterminada.

Argumentos de salida

contraer todo

Ganancia óptima del sistema de lazo cerrado, devuelta como un vector fila de tamaño n, donde n es el número de estados.

Solución de la ecuación algebraica de Riccati asociada, devuelta como una matriz de n por n, donde n es el número de estados. Dicho de otra forma, S es la misma dimensión que la matriz de espacio de estados A. Para obtener más información, consulte icare e idare.

Polos del sistema de lazo cerrado, devueltos como un vector columna de tamaño n, donde n es el número de estados.

Limitaciones

Los datos de entrada deben cumplir las siguientes condiciones:

  • El par A y B debe ser estabilizable.

  • [Q,N;N',R] debe ser definido no negativo.

  • R>0 y QNR1NT0.

  • (QNR1NT,ABR1NT) no tiene ningún modo no observable en el eje imaginario (o círculo unitario en el tiempo discreto).

Sugerencias

  • lqr soporta los modelos de descriptores con E no singular. La salida S de lqr es la solución de la ecuación algebraica de Riccati para el modelo de espacio de estados explícito equivalente:

    dxdt=E1Ax+E1Bu

Algoritmos

En sistemas de tiempo continuo, lqr calcula el control de feedback de estados u=Kx que disminuye la función cuadrática de coste

J(u)=0(xTQx+uTRu+2xTNu)dt

en función de la dinámica del sistema x˙=Ax+Bu.

Además de la ganancia de feedback de estados K, lqr devuelve la solución S de la ecuación algebraica de Riccati asociada

ATS+SA(SB+N)R1(BTS+NT)+Q=0

y los polos de lazo cerrado P = eig(ABK). La matriz de ganancia K deriva de S utilizando

K=R1(BTS+NT).

En sistemas de tiempo discreto, lqr calcula el control de feedback de estados un=Kxn que disminuye

J=n=0{xTQx+uTRu+2xTNu}

en función de la dinámica del sistema xn+1=Axn+Bun.

En todos los casos, al omitir la matriz de término cruzado N, lqr establece N en 0.

Historial de versiones

Introducido antes de R2006a