idare

Неявный решатель в течение дискретного времени алгебраические уравнения Riccati

Синтаксис

[X,K,L] = idare(A,B,Q,R,S,E)
[X,K,L,info] = idare(___)
[___] = idare(___,'noscaling')
[___] = idare(___,'anti')

Описание

пример

[X,K,L] = idare(A,B,Q,R,S,E) вычисляет уникальное решение для стабилизации X, усиление обратной связи состояния K и собственные значения с обратной связью L следующего дискретного времени алгебраическое уравнение Riccati.

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

Стабилизировавшееся решение X помещает все собственные значения L в единичном диске.

Алгебраические уравнения Riccati играют ключевую роль в управлении LQR/LQG, H2 - и управлении H-бесконечности, Кальман, фильтрующий и спектральные или взаимно-простые факторизации.

пример

[X,K,L,info] = idare(___) также возвращает структуру info, который содержит дополнительную информацию о решении дискретного времени алгебраическое уравнение Riccati.

[___] = idare(___,'noscaling') выключает встроенное масштабирование и устанавливает все записи масштабирующихся векторов info.Sx и info.Sr к 1. Выключение масштабирования ускоряет вычисление, но может быть вредно для точности, когда A,B,Q,R,S,E плохо масштабируется.

пример

[___] = idare(___,'anti') вычисляет антистабилизировавшееся решение X, который помещает все собственные значения L вне единичного диска.

Примеры

свернуть все

В данном примере решите дискретное время алгебраическое уравнение Riccati, рассматривая следующий набор матриц:

A=[-0.9-30.70.1]B=[11]Q=[1003]R=0.1.

Найдите стабилизировавшееся решение с помощью idare, чтобы решить для вышеупомянутых матриц со значениями по умолчанию для S и E.

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;
[X,K,L,info] = idare(A,B,Q,R,[],[])
X = 2×2

    4.7687    0.9438
    0.9438    3.2369

K = 1×2

   -0.2216   -0.1297

L = 2×1

   -0.4460
   -0.0027

info = struct with fields:
        Sx: [2×1 double]
        Sr: 1
         U: [2×2 double]
         V: [2×2 double]
         W: [-0.0232 0.0428]
    Report: 0

Здесь, X является уникальным решением для стабилизации, K содержит усиление обратной связи состояния, L содержит собственные значения с обратной связью, в то время как info содержит дополнительную информацию о решении.

В данном примере решите дискретное время алгебраическое уравнение Riccati, рассматривая следующий набор матриц:

A=[-0.9-30.70.1]B=[11]Q=[1003]R=0.1.

Найдите антистабилизировавшееся решение с помощью опции 'anti', чтобы решить для вышеупомянутых матриц со значениями по умолчанию для S и E.

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;
[X,K,L] = idare(A,B,Q,R,[],[],'anti')
X = 2×2

   -0.5423    0.4996
    0.4996   -0.5569

K = 1×2

 -118.0177  490.9023

L = 2×1

 -371.4426
   -2.2420

Здесь, X является уникальным решением антистабилизации, K содержит усиление обратной связи состояния, и L содержит собственные значения с обратной связью.

Входные параметры

свернуть все

Введите матрицы, заданные как матрицы.

Матрицы Q и R должны быть Эрмитовыми. Квадратная матрица является Эрмитовой, если это равно своему комплексному сопряженному транспонированию, то есть, ai,j=a¯j,i.

Для получения дополнительной информации об Эрмитовых матрицах смотрите ishermitian.

Матричный E должен быть несингулярным.

Когда матрицы R, S и E не использованы или установлены в [], idare использует следующие значения по умолчанию:

  • R = I

  • S = 0

  • E = I

Если входные параметры Q и R со скалярным знаком, idare интерпретирует их как множители единичной матрицы.

Опция, чтобы выключить встроенное масштабирование, заданное как 'noscaling'. Когда вы выключаете встроенное масштабирование, idare устанавливает все записи в масштабирующихся векторах info.Sx и info.Sr к 1. Выключение масштабирования ускоряет вычисление, но может быть вредно для точности, когда A,B,Q,R,S,E плохо масштабируется.

Опция, чтобы вычислить антистабилизировавшееся решение, заданное как 'anti'. Когда вы включаете эту опцию, idare вычисляет антистабилизировавшееся решение X, который помещает все собственные значения (A-B*K,E) вне единичного диска.

Уникальная стабилизация и антистабилизация оба необходимы, чтобы знать полный портрет фазы дифференциальных уравнений Riccati.

Выходные аргументы

свернуть все

Уникальное решение дискретного времени алгебраическое уравнение Riccati, возвращенное как матрица.

По умолчанию X является стабилизировавшимся решением дискретного времени алгебраическое уравнение Riccati. Когда опция 'anti' используется, X является антистабилизировавшимся решением.

idare возвращает [] для X, когда нет никакого конечного решения для стабилизации.

Усиление обратной связи состояния, возвращенное как матрица.

Усиление обратной связи состояния K вычисляется как:

K = (BTXB+R)1(BTXA+ST).

idare возвращает [] для K, когда нет никакого конечного решения для стабилизации.

Собственные значения с обратной связью, возвращенные как матрица.

Собственные значения с обратной связью L вычисляются как:

L = eig(ABK,E).

idare возвращает [] для X и K, когда нет никакого конечного решения для стабилизации. L непуст, даже когда X и K являются пустыми матрицами.

Информация об уникальном решении, возвращенном как структура со следующими полями:

  • Sx — Вектор значений раньше масштабировал состояния.

  • Sr — Вектор значений раньше масштабировал матрицу R.

  • U, V и W — Векторы значений, представляющих основание стабильного инвариантного подпространства связанного масштабированного матричного карандаша. Для получения дополнительной информации см. Алгоритмы.

  • Report — Скаляр с одним из следующих значений:

    • 0 — Уникальное решение точно.

    • 1 — Точность решения плоха.

    • 2 — Решение не конечно.

    • 3 — Никакое решение, найденное начиная с Симплектического спектра, обозначенного [L;1./L], не имеет собственные значения на модульном круге.

Ограничения

  • (A-zE,B) должен быть stabilizable, E и R должны быть обратимыми, и [B;S;R] имеют полный ранг столбца для конечного решения для стабилизации X, чтобы существовать и быть конечными. В то время как эти условия не достаточны в целом, они становятся достаточными, когда следующим условиям отвечают:

    • [QSTSR]  0

    • [ABR1STQSR1ST] обнаружимо

Алгоритмы

Basis of the invariant subspace

idare работает со следующим карандашом и вычисляет основание [U;V;W] инвариантного подпространства, сопоставленного со стабильными или антистабильными конечными собственными значениями этого карандаша.

MzN = [A0BQETSST0R]z[E000AT00BT0]

Данные автоматически масштабируются, чтобы уменьшать чувствительность собственных значений около модульного круга и разделения увеличения между стабильными и антистабильными инвариантными подпространствами.

Relationship between the solution, the state-feedback gain, and the scaling vectors

Решение X и обратная связь состояния получают K, связано с масштабирующимися векторами и U,V,W следующей системой уравнений:

X = Dx VU1 Dx E1,K = Dr ВУ1 Dx,

где,

Dx = diag(Sx),Dr = diag(Sr).

Смотрите также

| | | | | | | | | |

Введенный в R2019a