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 внутри единичного диска.

Алгебраические уравнения Риккати играют ключевую роль в управлении 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 должно быть не сингулярным.

Когда матрицы 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) за пределами единичного диска.

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

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

свернуть все

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

По умолчанию 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 матрица.

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

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

    • 0 - Уникальное решение является точным.

    • 1 - Точность решения низкая.

    • 2 - Решение не является конечным.

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

Ограничения

  • (A-zE,B) должен быть стабилизируемым, 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