exponenta event banner

мне не все равно

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

Описание

пример

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

ATXE + ETXA + ETXGXE- (ETXB + S) R-1 (  BTXE + ST) + Q = 0

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

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

пример

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

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

пример

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

Примеры

свернуть все

Для решения алгебраического уравнения Риккати ATX + XA-XBBTX + CCT = 0 рассмотрим следующие матрицы:

A = [1-23-456789] B = [56-7] C = [7-89].

Подход наименьших усилий заключается в использовании G = -BBT и Q = CTC, а затем поиске решения с помощьюicare.

A = [-1,2,3;4,5,-6;7,-8,9];
B = [5;6;-7];
C = [7,-8,9];
G = -B*B';
Q = C'*C;
[X1,K1,L1] = icare(A,[],Q,[],[],[],G)
X1 = 3×3

   15.3201    4.2369   17.0090
    4.2369    2.6252    4.4123
   17.0090    4.4123   19.0374

K1 =

  0x3 empty double matrix
L1 = 3×1

   -3.2139
  -10.1191
  -76.9693

Вышеописанный подход может привести к числовым неточностям, когда матрицы B и C имеют большие записи, так как они возведены в квадрат для вычисления G и Q матрицы. Из-за ограниченного числового диапазона вычисление может быть менее точным или даже неудачным. Например, если norm(B) является 1e6, то norm(G) является 1e12и любое собственное значение в пределах 1e-4 мнимая ось может быть диагностирована как «мнимая» из-за числовых ошибок.

Для большей числовой точности перепишите алгебраическое уравнение Риккати следующим образом:

ATX + XA- [XB, CT] * [I, 0; 0, -I] [BTX; C] = 0.

Вышеприведенное уравнение представляет собой стандартную форму ATX + XA- (XB + S) R-1 (BTX + ST) = 0,

где B = [B, 0], S = [0, CT] и R = [I, 0; 0, -I].

Вычислите решение с помощью icare с указанными выше значениями.

n = size(A,1);
m = size(B,2);
p = size(C,1);
R = blkdiag(eye(m),-eye(p));
BB = [B,zeros(n,p)];
S = [zeros(n,m),C'];
[X2,K2,L2,info] = icare(A,BB,0,R,S,[],[])
X2 = 3×3

   15.3201    4.2369   17.0090
    4.2369    2.6252    4.4123
   17.0090    4.4123   19.0374

K2 = 2×3

  -17.0406    6.0501  -21.7435
   -7.0000    8.0000   -9.0000

L2 = 3×1

   -3.2139
  -10.1191
  -76.9693

info = struct with fields:
        Sx: [3x1 double]
        Sr: [2x1 double]
         U: [3x3 double]
         V: [3x3 double]
         W: [2x3 double]
    Report: 0

Здесь, X2 является уникальным стабилизирующим раствором, K2 содержит коэффициент усиления обратной связи состояния и L2 содержит собственные значения замкнутого цикла.

Чтобы найти антистабилизирующее решение алгебраического уравнения Риккати непрерывного времени ATX + XA-XBBTX + CCT = 0, рассмотрим следующие матрицы:

A = [1-23-456789] B = [56-7] C = [7-89].

Для большей числовой точности перепишите алгебраическое уравнение Риккати следующим образом:

ATX + XA- [XB, CT] * [I, 0; 0, -I] [BTX; C] = 0.

Вышеприведенное уравнение представляет собой стандартную форму ATX + XA- (XB + S) R-1 (BTX + ST) = 0,

где B = [B, 0], S = [0, CT] и R = [I, 0; 0, -I].

Вычислите антистабилизирующее решение с помощью 'anti' вариант.

A = [-1,2,3;4,5,-6;7,-8,9];
B = [5;6;-7];
C = [7,-8,9];
n = size(A,1);
m = size(B,2);
p = size(C,1);
R = blkdiag(eye(m),-eye(p));
BB = [B,zeros(n,p)];
S = [zeros(n,m),C'];
[X,K,L] = icare(A,BB,0,R,S,[],[],'anti')
X = 3×3

  -18.0978   10.9090   -1.8466
   10.9090   -6.7195    1.4354
   -1.8466    1.4354   -0.9426

K = 2×3

  -12.1085    4.1803    5.9774
   -7.0000    8.0000   -9.0000

L = 3×1

   76.9693
   10.1191
    3.2139

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

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

свернуть все

Входные матрицы, указанные как матрицы.

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

Дополнительные сведения о матрицах эрмитова см. в разделе ishermitian.

Матрицы R и E должен быть обратимым.

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

  • B = 0

  • R = I

  • S = 0

  • E = I

  • G = 0

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

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

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

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

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

свернуть все

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

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

icare прибыль [] для X когда связанная гамильтонова матрица имеет собственные значения на воображаемой оси.

Коэффициент усиления обратной связи состояния, возвращаемый в виде матрицы.

Коэффициент усиления обратной связи по состоянию K вычисляется как:

K = R 1 (BTXE + ST).

icare прибыль [] для K когда связанная гамильтонова матрица имеет собственные значения на воображаемой оси.

Собственные значения замкнутого цикла, возвращаемые в виде матрицы.

Собственные значения замкнутого цикла L вычисляется как:

L = eig (A + GXE BK, E).

icare прибыль [] для X и K когда связанная гамильтонова матрица имеет собственные значения на воображаемой оси. Другими словами, L не пуст, даже когда X и K пустые матрицы.

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

  • Sx - вектор значений, используемый для масштабирования состояний.

  • Sr - Вектор значений, используемых для масштабирования R матрица.

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

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

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

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

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

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

Ограничения

  • (A-sE,B) должны быть стабилизируемыми, и E и R должен быть обратимым для конечного стабилизирующего раствора X существовать и быть конечным. Хотя эти условия в целом недостаточны, они становятся достаточными при выполнении следующих условий:

    • [QSTSR]  0

    • [A BR 1STQ SR − 1ST] обнаруживается

Алгоритмы

Основа инвариантного подпространства

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

M  sN = [AGB Q AT SSTBTR] s [E000ET0000]

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

Взаимосвязь между решением, коэффициентом усиления обратной связи и векторами масштабирования

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

X = Dx VU  1  Dx E  1 , K  = −  Dr WU − 1 Dx,

где,

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

Основа инвариантного подпространства

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

См. также

| | | | | | | (инструментарий надежного управления) | (Надёжная панель инструментов управления) | (Надёжная панель инструментов управления) | (Надёжная панель инструментов управления)

Представлен в R2019a