care
(권장되지 않음) 연속시간 대수 리카티 방정식의 해
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
를 계산합니다.
care
함수는 이득 행렬 도 반환합니다.
[X,L,G] = care(A,B,Q,R,S,E)
는 다음과 같은 보다 일반적인 리카티 방정식을 풉니다.
R
, S
, E
값이 생략된 경우 디폴트 값 R=I
, S=0
, E=I
로 설정됩니다. care
는 해 X
외에도 이득 행렬 과 폐루프 고유값으로 구성된 벡터 L
을 반환합니다. 여기서 L은 다음과 같습니다.
L=eig(A-B*G,E)
[X,L,G,report] = care(A,B,Q,...)
는 다음 값을 포함하는 진단 report
를 반환합니다.
-
1
: 해당 해밀턴 펜슬이 허수축상에 또는 허수축 매우 가까이에 고유값을 갖는 경우(실패)-
2
: 유한한 안정화 해X
가 없는 경우X
가 존재하며 유한한 경우 상대 잔차의 프로베니우스 노름
이 구문은 X가 존재하지 않는 경우에도 오류 메시지를 생성하지 않습니다.
[X1,X2,D,L] = care(A,B,Q,...,'factor')
는 X = D*(X2/X1)*D
를 충족하는 2개의 행렬 X1
, X2
및 대각 스케일링 행렬 D
를 반환합니다.
벡터 L은 폐루프 고유값을 포함합니다. 관련 해밀턴 행렬이 허수축에 고유값을 갖는 경우 모든 출력은 비어 있습니다.
예제
예제 1
대수 리카티 방정식 풀기
다음과 같이 주어졌을 때
다음과 같은 리카티 방정식을
다음과 같이 풀 수 있습니다.
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
예제 2
H-무한대() 유사 리카티 방정식 풀기
다음과 같은 유사 리카티 방정식을 풀려면
다음과 같이 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)
제한 사항
쌍은 안정화 가능해야 합니다(즉, 모든 불안정한 모드가 제어 가능해야 함). 또한 관련 해밀턴 행렬 또는 펜슬이 허수축에 고유값을 갖지 않아야 합니다. 이것이 참이 되도록 하는 충분 조건은 이고 일 때는 가 검출 가능한 경우입니다. 또는 다음이 성립하는 경우입니다.
알고리즘
care
는 [1]에 설명되어 있는 알고리즘을 구현합니다. R이 조건이 좋고 인 경우 해밀턴 행렬을 사용하고, 그렇지 않은 경우 확장 해밀턴 펜슬과 QZ 알고리즘을 사용합니다.
참고 문헌
[1] Arnold, W.F., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE®, 72 (1984), pp. 1746-1754