Main Content

dare

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

dare no se recomienda. En su lugar, utilice la función idare. Para obtener más información, consulte Consideraciones sobre compatibilidad.

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 obtener 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 obtener más información, consulte idare.

No se tiene planeado eliminar dare en este momento.

Consulte también