(Не рекомендуемый) Непрерывное время алгебраическое решение для уравнения Riccati
care
не рекомендуется. Использование icare
вместо этого. Для получения дополнительной информации см. Вопросы совместимости.
[X,L,G] = care(A,B,Q)
[X,L,G] = care(A,B,Q,R,S,E)
[X,L,G,report] = care(A,B,Q,...)
[X1,X2,D,L] = care(A,B,Q,...,'factor')
[X,L,G] = care(A,B,Q)
вычисляет уникальное решение X
из непрерывного времени алгебраическое уравнение Riccati
care
функционируйте также возвращает матрицу усиления, .
[X,L,G] = care(A,B,Q,R,S,E)
решает более общее уравнение Riccati
Когда не использовано, R
S
, и E
установлены в значения по умолчанию R=I
, S=0
, и E=I
. Наряду с решением X
, care
возвращает матрицу усиления и векторный L
из собственных значений с обратной связью, где
L=eig(A-B*G,E)
[X,L,G,report] = care(A,B,Q,...)
возвращает диагноз report
с:
Этот синтаксис не выпускает сообщения об ошибке когда X сбоев, чтобы существовать.
[X1,X2,D,L] = care(A,B,Q,...,'factor')
возвращает две матрицы X1
x2
и диагональный масштабирующийся матричный D
таким образом, что X = D*(X2/X1)*D
.
Вектор L содержит собственные значения с обратной связью. Все выходные параметры пусты, когда связанная гамильтонова матрица имеет собственные значения на мнимой оси.
Решите алгебраическое уравнение Riccati
Данный
можно решить уравнение Riccati
a = [-3 2;1 1] b = [0 ; 1] c = [1 -1] r = 3 [x,l,g] = care(a,b,c'*c,r)
Это дает к решению
x x = 0.5895 1.8216 1.8216 8.8188
Можно проверить, что это решение действительно стабилизировалось путем сравнения собственных значений a
и a-b*g
.
[eig(a) eig(a-b*g)] ans = -3.4495 -3.5026 1.4495 -1.4370
Наконец, обратите внимание что переменная l
содержит собственные значения с обратной связью eig(a-b*g)
.
l l = -3.5026 -1.4370
Решите H-бесконечность () - как уравнение Riccati
Решить - как уравнение Riccati
перепишите его в care
формат как
Можно теперь вычислить стабилизировавшееся решение
B = [B1 , B2] m1 = size(B1,2) m2 = size(B2,2) R = [-g^2*eye(m1) zeros(m1,m2) ; zeros(m2,m1) eye(m2)] X = care(A,B,C'*C,R)
пара должна быть stabilizable (то есть, все нестабильные режимы управляемы). Кроме того, связанная гамильтонова матрица или карандаш не должны иметь никакого собственного значения на мнимой оси. Достаточные условия для этого, чтобы содержать обнаруживаемый, когда и , или
care
реализует алгоритмы, описанные в [1]. Это работает с гамильтоновой матрицей, когда R хорошо подготовлен и ; в противном случае это использует расширенный гамильтонов карандаш и алгоритм QZ.
[1] Арнольд, W.F., III и А.Дж. Лоб, "Обобщенные алгоритмы Eigenproblem и программное обеспечение для алгебраических уравнений Riccati", Proc. IEEE®, 72 (1984), стр 1746-1754