Main Content

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)

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

Sintaxis

[X,L,G] = dare(A,B,Q,R)
[X,L,G] = dare(A,B,Q,R,S,E)
[X,L,G,report] = dare(A,B,Q,...)
[X1,X2,L,report] = dare(A,B,Q,...,'factor')

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 la matriz de ganancia, G=(BTXB+R)1BTXA, y el vector L de los valores propios de lazo cerrado, donde

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

[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

donde F=ABR1ST. Cuando se omiten, R, S y E se establecen en sus valores predeterminados: R=I, S=0 y E=I.

La función dare devuelve la matriz de ganancia correspondiente G=(BTXB+R)1(BTXA+ST)

y un vector L de valores propios de lazo cerrado, donde

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

[X,L,G,report] = dare(A,B,Q,...) devuelve un diagnóstico report con un valor:

  • -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

[X1,X2,L,report] = dare(A,B,Q,...,'factor') devuelve dos matrices: X1 y X2, y una matriz de escalado diagonal D de modo que X = D*(X2/X1)*D. El vector L contiene los valores propios de lazo cerrado. Todas las salidas están 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., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE®, 72 (1984), pp. 1746-1754.

Historial de versiones

Introducido antes de R2006a

contraer todo

R2019a: dare no se recomienda

A partir de la versión R2019a, utilice el comando idare para resolver ecuaciones de Riccati de tiempo discreto. Este enfoque proporciona mayor precisión y escalado. El cálculo de K es más preciso cuando R está mal condicionado en relación con dare. Además, idare incluye una estructura info opcional para recopilar los datos implícitos de la solución para la ecuación de Riccati.

La siguiente tabla muestra algunos usos habituales de dare y cómo actualizar el código para utilizar idare en su lugar.

No recomendadoRecomendado

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

[X,K,L] = idare(A,B,Q,R,S,E) calcula la solución estabilizadora X, la ganancia de feedback de estados K y los valores propios de lazo cerrado L de la ecuación algebraica de Riccati de tiempo discreto. Para más información, consulte idare.

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

[X,K,L,info] = idare(A,B,Q,R,S,E) calcula la solución estabilizadora X, la ganancia de feedback de estados K, los valores propios de lazo cerrado L de la ecuación algebraica de Riccati de tiempo discreto. La estructura info contiene los datos de la solución implícita. Para más información, consulte idare.

No se tiene planeado eliminar dare en este momento.

Consulte también