Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

dare

(No recomendado) Resolver ecuaciones algebraicas de Riccati de tiempo discreto

dare no se recomienda. En su lugar, utilice idare. Para obtener más información, consulte Historial de versiones.

Descripción

[X,L,G] = dare(A,B,Q,R) calcula la solución estabilizadora única X de la ecuación algebraica de Riccati de tiempo discreto:

ATXAXATXB(BTXB+R)1BTXA+Q=0

La función dare también devuelve una matriz de ganancia G y un vector L de valores propios de lazo cerrado.

ejemplo

[X,L,G] = dare(A,B,Q,R,S,E) resuelve la ecuación algebraica de Riccati de tiempo discreto más general:

ATXAETXE(ATXB+S)(BTXB+R)1(BTXA+ST)+Q=0

o, de manera equivalente, si R es no singular:

ETXE=FTXFFTXB(BTXB+R)1BTXF+QSR1ST

En este caso, F=ABR1ST.

[X,L,G,report] = dare(___) también devuelve un informe de diagnóstico.

[X1,X2,D,L] = dare(___,'factor') devuelve una solución factorizada de la ecuación de Riccati.

Ejemplos

contraer todo

Resuelva la ecuación algebraica de Riccati de tiempo discreto considerando el siguiente conjunto de matrices:

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;

Encuentre la solución estabilizadora usando dare para resolver las matrices anteriores con valores predeterminados para S y E.

[X,L,G,report] = dare(A,B,Q,R)
X =

    4.7687    0.9438
    0.9438    3.2369


L =

   -0.4460
   -0.0027


G =

   -0.2216   -0.1297


report =

   9.4192e-16

Argumentos de entrada

contraer todo

Matrices de entrada, especificadas como matrices. Cuando se omiten R, S y E, la función utiliza los valores predeterminados R = I, S = 0 y E = I.

Argumentos de salida

contraer todo

Solución de la ecuación algebraica de Riccati de tiempo discreto, devuelta como una matriz.

dare devuelve [] para X cuando la matriz simpléctica asociada presenta valores propios en el círculo unitario.

Valores propios de lazo cerrado, devueltos como una matriz.

Los valores propios de lazo cerrado L se calculan como:

L=eig(A-B*G,E)

Ganancia de feedback de estados, devuelta como una matriz.

La ganancia de feedback de estados G se calcula como:

G=(BTXB+R)1(BTXA+ST)

dare devuelve [] para G cuando la matriz simpléctica asociada presenta valores propios en el círculo unitario.

Informe de diagnóstico, devuelto como escalar con uno de estos valores:

  • -1 cuando el haz simpléctico asociado presenta valores propios en el círculo unitario o muy cerca de él.

  • -2 cuando no existe una solución estabilizadora finita X.

  • La norma de Frobenius si X existe y es finito.

Matrices de solución factorizada, devueltas como matrices. La función devuelve X1, X2 y una matriz de escalado diagonal D de modo que X = D(X1/X2)D.

dare devuelve X1, X2 y D como vacías cuando la matriz simpléctica asociada presenta valores propios en el círculo unitario.

Limitaciones

El par (A, B) debe ser estabilizable (es decir, todos los valores propios de A fuera del disco de la unidad deben ser controlables). Además, el haz simpléctico asociado no puede tener valores propios en el círculo unitario. Las condiciones suficientes para que esto se cumpla son detectables con (Q, A) cuando S = 0 y R > 0, o

[QSSTR]>0

Algoritmos

dare implementa los algoritmos descritos en [1]. Utiliza el algoritmo QZ para reducir el haz simpléctico ampliado y calcular su subespacio invariante estable.

Referencias

[1] Arnold, W.F., and A.J. Laub. “Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations.” Proceedings of the IEEE 72, no. 12 (1984): 1746–54. https://doi.org/10.1109/PROC.1984.13083.

Historial de versiones

Introducido antes de R2006a

contraer todo

Consulte también