주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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.Sxinfo.Sr의 모든 요소를 1로 설정합니다. 스케일링을 끄면 계산 속도가 빨라지지만, A,B,Q,R,S,E가 제대로 스케일링되지 않은 경우 정확성을 저해할 수 있습니다.

[___] = idare(___,'anti')는 모든 고유값 L을 단위 원판 외부에 두는 반안정화 해(anti-stabilizing solution) X를 계산합니다.

예제

예제

모두 축소

이 예제에서는 다음과 같은 행렬 집합을 고려하여 이산시간 대수 리카티 방정식을 풉니다.

A=[-0.9-30.70.1]B=[11]Q=[1003]R=0.1.

SE에는 디폴트 값을 사용하고 위 행렬에 대한 해를 구하기 위해 idare을 사용해 안정화 해를 구합니다.

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: [2×1 double]
        Sr: 1
         U: [2×2 double]
         V: [2×2 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.

SE에는 디폴트 값을 사용하고 위 행렬에 대한 해를 구하기 위해 'anti' 옵션을 사용해 반안정화 해를 구합니다.

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은 폐루프 고유값을 포함합니다.

입력 인수

모두 축소

입력 행렬로, 행렬로 지정됩니다.

행렬 QR은 에르미트여야 합니다. 정사각 행렬이 자신의 켤레 복소수 전치(즉, ai,j=a¯j,i)와 동일하면 에르미트 행렬입니다.

에르미트 행렬에 대한 자세한 내용은 ishermitian을 참조하십시오.

행렬 E는 정칙 행렬이어야 합니다.

행렬 R, S, E가 생략되었거나 []로 설정된 경우, idare는 다음 디폴트 값을 사용합니다.

  • R = I

  • S = 0

  • E = I

입력 QR이 스칼라 값인 경우 idare는 이를 단위 행렬의 배수로 해석합니다.

내장 스케일링을 끄기 위한 옵션으로, 'noscaling'으로 지정됩니다. 내장 스케일링을 끄면 idare는 스케일링 벡터 info.Sxinfo.Sr의 모든 요소를 1로 설정합니다. 스케일링을 끄면 계산 속도가 빨라지지만, A,B,Q,R,S,E가 제대로 스케일링되지 않은 경우 정확성을 저해할 수 있습니다.

반안정화 해를 계산하기 위한 옵션으로, 'anti'로 지정됩니다. 이 옵션을 활성화하면 idare(A-B*K,E)의 모든 고유값을 단위 원판 외부에 두는 반안정화 해 X를 계산합니다.

리카티 미분 방정식의 전체 위상 모방(phase portrait)을 알려면 유일한 안정화와 반안정화가 모두 필요합니다.

출력 인수

모두 축소

이산시간 대수 리카티 방정식의 유일한 해로, 행렬로 반환됩니다.

기본적으로 X는 이산시간 대수 리카티 방정식의 안정화 해입니다. 'anti' 옵션이 사용되는 경우 X는 반안정화 해입니다.

idare는 유한한 안정화 해가 없는 경우 X에 대해 []을 반환합니다.

펜슬이 특이 행렬인 경우(즉, [B;S;R]의 랭크가 부족함) idare[]을 반환합니다. (R2024a 이후)

상태-피드백 이득으로, 행렬로 반환됩니다.

상태-피드백 이득 K는 다음과 같이 계산됩니다.

K = (BTXB+R)1(BTXA+ST).

idare는 유한한 안정화 해가 없는 경우 K에 대해 []을 반환합니다.

펜슬이 특이 행렬인 경우(즉, [B;S;R]의 랭크가 부족함) idare[]을 반환합니다. (R2024a 이후)

폐루프 고유값으로, 행렬로 반환됩니다.

폐루프 고유값 L은 다음과 같이 계산됩니다.

L = eig(ABK,E).

idare는 유한한 안정화 해가 없는 경우 XK에 대해 []을 반환합니다. XK가 빈 행렬이더라도 L은 비어 있지 않습니다.

펜슬이 특이 행렬인 경우(즉, [B;S;R]의 랭크가 부족함) idareL = NaN(n,1)을 반환합니다. (R2024a 이후)

유일한 해에 대한 정보로, 다음 필드를 갖는 구조체로 반환됩니다.

  • Sx — 상태를 스케일링하는 데 사용되는 값으로 구성된 벡터.

  • SrR 행렬을 스케일링하는 데 사용되는 값으로 구성된 벡터.

  • U, V, W — 스케일링된 관련 행렬 펜슬의 안정적인 불변 부분공간의 기저를 나타내는 값으로 구성된 벡터. 자세한 내용은 알고리즘 항목을 참조하십시오.

  • Report — 다음 값 중 하나를 갖는 스칼라

    • 0 — 유일한 해가 정확합니다.

    • 1 — 해의 정확도가 떨어집니다.

    • 2 — 해가 유한하지 않습니다.

    • 3[L;1./L]로 표기되는 심플렉틱 스펙트럼이 단위원에 고유값을 가지므로 해를 구할 수 없습니다.

    • 4 — 펜슬이 특이 행렬([B;S;R]의 랭크가 부족함)입니다. (R2024a 이후)

제한 사항

  • (A-zE,B)는 안정화 가능해야 하고, ER은 가역적이어야 합니다. 그리고 유한한 안정화 해 X가 존재하고 유한하려면 [B;S;R]에 완전 열 랭크가 있어야 합니다. 이러한 조건은 일반적으로 충분하지 않지만, 다음 조건이 충족될 경우에는 충분해집니다.

    • [QSTSR]  0

    • [ABR1STQSR1ST]가 감지 가능함

알고리즘

불변 부분공간의 기저

idare는 다음 펜슬을 사용하고, 이 펜슬의 안정적(stable)이거나 반안정적(anti-stable)인 유한 고유값과 관련된 불변 부분공간의 기저 [U;V;W]를 계산합니다.

MzN = [A0BQETSST0R]z[E000AT00BT0]

데이터는 단위원 가까이에 있는 고유값의 민감도를 줄이고 안정적인 불변 부분공간과 반안정적인 불변 부분공간을 더 잘 분리하기 위해 자동으로 스케일링됩니다.

해와 상태-피드백 이득과 스케일링 벡터 간의 관계

X와 상태 피드백 이득 K는 스케일링 벡터 및 U,V,W와 다음 수식의 관계가 있습니다.

X = Dx VU1 Dx E1,K = Dr WU1 Dx,

여기서

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

버전 내역

R2019a에 개발됨

모두 확장

참고 항목

| | | | | | (Robust Control Toolbox) | (Robust Control Toolbox) | | (Robust Control Toolbox) | (Robust Control Toolbox)