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).

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

| | | | | | | | | |

Введенный в R2019a