idare

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

Описание

пример

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

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

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

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

пример

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

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

пример

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

Примеры

свернуть все

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

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: [2x1 double]
        Sr: 1
         U: [2x2 double]
         V: [2x2 double]
         W: [-0.0232 0.0428]
    Report: 0

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

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

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 должно быть несингулярным.

Когда матрицы RS и 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.

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

свернуть все

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

По умолчанию, X стабилизировавшееся решение алгебраического уравнения Риккати в дискретном времени. Когда '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 матрица.

  • UV и 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).

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

| | | | | | (Robust Control Toolbox) | (Robust Control Toolbox) | | (Robust Control Toolbox) | (Robust Control Toolbox)

Введенный в R2019a