Main Content

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

rlocus

동적 시스템의 근궤적 플롯

설명

예제

rlocus(sys)는 SISO 모델 sys의 근궤적을 계산하고 플로팅합니다. 근궤적은 폐루프 극점 궤적을 (음의 피드백을 가정하여) 피드백 이득 k의 함수로 반환합니다. 근궤적은 폐루프 극점 위치에 변화하는 피드백 이득이 미치는 영향을 연구하는 데 사용됩니다. 또한, 이들 위치는 시간 및 주파수 응답에 대한 간접적인 정보를 제공합니다.

rlocus를 사용하여 아래와 같이 sys를 설정하여 다음 음의 피드백 루프의 근궤적 다이어그램을 플로팅할 수 있습니다.

예를 들어 sys가 다음과 같이 표현되는 전달 함수인 경우

sys(s)=n(s)d(s)

폐루프 극점은 다음의 근입니다.

d(s)+kn(s)=0

근궤적 플롯은 피드백 이득 k가 0에서 무한대일 때 폐루프 극점의 궤적을 그립니다. rlocus는 양의 이득 집합 k를 적절하게 선택하여 매끄러운 플롯을 생성합니다. 근궤적 플롯에서 극점은 x로 표시되고 영점은 o로 표시됩니다.

예제

rlocus(sys1,sys2,...)는 여러 LTI 모델 sys1, sys2,...의 근궤적을 단일 플롯에 플로팅합니다. 각 모델에 대해 색, 선 스타일 및 마커를 지정할 수 있습니다. 플롯 사용자 지정 옵션에 대한 자세한 내용은 rlocusplot을 참조하십시오.

예제

[r,k] = rlocus(sys)는 피드백 이득으로 구성된 벡터 k와 이들 이득에 대한 복소수 근 위치 r을 반환합니다.

예제

r = rlocus(sys,k)는 피드백 이득으로 구성된 사용자 지정 벡터 k를 사용하여, 근궤적 플롯을 정의하는 폐루프 극점 r을 출력합니다.

예제

모두 축소

이 예제에서는 다음 SISO 동적 시스템의 근궤적을 플로팅합니다.

sys(s)=2s2+5s+1s2+2s+3.

sys = tf([2 5 1],[1 2 3]);
rlocus(sys)

Figure contains an axes object. The axes object contains 4 objects of type line. One or more of the lines displays its values using only markers This object represents sys.

근궤적 플롯에서 시스템의 극점은 x로 표시되고 영점은 o로 표시됩니다. 생성된 근궤적 플롯 내에서 메뉴를 사용하여 그리드 선을 추가하고 확대/축소할 수 있으며 속성 편집기를 호출하여 플롯을 사용자 지정할 수도 있습니다.

플롯 사용자 지정 옵션에 대한 자세한 내용은 rlocusplot을 참조하십시오.

이 예제에서는 다음 세 개의 SISO 모델이 있는 sisoModels.mat를 살펴보겠습니다.

  • sys1 - 전달 함수 모델

  • sys2 - 상태공간 모델

  • sys3 - 영점-극점-이득 모델

mat 파일에서 모델을 불러옵니다.

load('sisoModels.mat','sys1','sys2','sys3');

rlocus를 사용하여 근궤적 플롯을 만들고 각 시스템에 대한 색을 지정합니다. 근궤적 플롯에 범례도 추가합니다.

rlocus(sys1,'b',sys2,'k',sys3,'r')
hold on
legend('sys1','sys2','sys3')
hold off

Figure contains an axes object. The axes object contains 13 objects of type line. One or more of the lines displays its values using only markers These objects represent sys1, sys2, sys3.

세 개의 시스템에 대한 근궤적 다이어그램이 하나의 플롯에 포함되어 있습니다. 플롯 사용자 지정에 대한 자세한 내용은 rlocusplot을 참조하십시오.

이 예제에서는 다음과 같은 SISO 전달 함수 모델이 있다고 가정하겠습니다.

sys(s)=3s2+19s3+7s2+5s+6

rlocus에 위 전달 함수 모델을 사용하여 폐루프 극점과 관련 피드백 이득 값을 추출합니다.

sys = tf([3 0 1],[9 7 5 6]);
[r,k] = rlocus(sys)
r = 3×53 complex
102 ×

  -0.0094 + 0.0000i  -0.0104 + 0.0000i  -0.0105 + 0.0000i  -0.0106 + 0.0000i  -0.0107 + 0.0000i  -0.0108 + 0.0000i  -0.0109 + 0.0000i  -0.0111 + 0.0000i  -0.0112 + 0.0000i  -0.0113 + 0.0000i  -0.0115 + 0.0000i  -0.0117 + 0.0000i  -0.0119 + 0.0000i  -0.0121 + 0.0000i  -0.0124 + 0.0000i  -0.0126 + 0.0000i  -0.0129 + 0.0000i  -0.0132 + 0.0000i  -0.0135 + 0.0000i  -0.0139 + 0.0000i  -0.0143 + 0.0000i  -0.0148 + 0.0000i  -0.0152 + 0.0000i  -0.0158 + 0.0000i  -0.0163 + 0.0000i  -0.0170 + 0.0000i  -0.0177 + 0.0000i  -0.0184 + 0.0000i  -0.0192 + 0.0000i  -0.0201 + 0.0000i  -0.0211 + 0.0000i  -0.0222 + 0.0000i  -0.0233 + 0.0000i  -0.0246 + 0.0000i  -0.0259 + 0.0000i  -0.0274 + 0.0000i  -0.0290 + 0.0000i  -0.0307 + 0.0000i  -0.0326 + 0.0000i  -0.0346 + 0.0000i  -0.0368 + 0.0000i  -0.0392 + 0.0000i  -0.0418 + 0.0000i  -0.0446 + 0.0000i  -0.0476 + 0.0000i  -0.0508 + 0.0000i  -0.0543 + 0.0000i  -0.0582 + 0.0000i  -0.0623 + 0.0000i  -0.0667 + 0.0000i
   0.0008 + 0.0084i   0.0006 + 0.0083i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0081i   0.0005 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0080i   0.0004 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0079i   0.0002 + 0.0079i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0001 + 0.0077i   0.0001 + 0.0077i   0.0001 + 0.0076i   0.0000 + 0.0076i   0.0000 + 0.0075i  -0.0000 + 0.0074i  -0.0000 + 0.0074i  -0.0000 + 0.0073i  -0.0001 + 0.0073i  -0.0001 + 0.0072i  -0.0001 + 0.0071i  -0.0001 + 0.0071i  -0.0001 + 0.0070i  -0.0001 + 0.0070i  -0.0001 + 0.0069i  -0.0001 + 0.0068i  -0.0001 + 0.0068i  -0.0001 + 0.0067i  -0.0001 + 0.0067i  -0.0001 + 0.0066i  -0.0001 + 0.0066i  -0.0001 + 0.0065i  -0.0001 + 0.0065i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0063i  -0.0001 + 0.0063i
   0.0008 - 0.0084i   0.0006 - 0.0083i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0081i   0.0005 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0080i   0.0004 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0079i   0.0002 - 0.0079i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0001 - 0.0077i   0.0001 - 0.0077i   0.0001 - 0.0076i   0.0000 - 0.0076i   0.0000 - 0.0075i  -0.0000 - 0.0074i  -0.0000 - 0.0074i  -0.0000 - 0.0073i  -0.0001 - 0.0073i  -0.0001 - 0.0072i  -0.0001 - 0.0071i  -0.0001 - 0.0071i  -0.0001 - 0.0070i  -0.0001 - 0.0070i  -0.0001 - 0.0069i  -0.0001 - 0.0068i  -0.0001 - 0.0068i  -0.0001 - 0.0067i  -0.0001 - 0.0067i  -0.0001 - 0.0066i  -0.0001 - 0.0066i  -0.0001 - 0.0065i  -0.0001 - 0.0065i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0063i  -0.0001 - 0.0063i

k = 1×53

         0    0.4201    0.4542    0.4911    0.5309    0.5740    0.6205    0.6709    0.7253    0.7841    0.8477    0.9165    0.9908    1.0712    1.1581    1.2521    1.3536    1.4634    1.5822    1.7105    1.8493    1.9993    2.1614    2.3368    2.5263    2.7313    2.9529    3.1924    3.4514    3.7313    4.0340    4.3613    4.7151    5.0975    5.5111    5.9581    6.4415    6.9640    7.5289    8.1397    8.8000    9.5138   10.2856   11.1200   12.0220   12.9973   14.0516   15.1915   16.4238   17.7561

sys에 3개의 극점이 있으므로 결과로 생기는 극점 r로 구성된 배열의 크기는 3x53입니다. r의 각 열은 벡터 k의 이득 값에 해당합니다. 이 예제의 경우 rlocusk 값 53개를 0에서 무한대까지 자동으로 선택하여 세 개의 폐루프 극점에 대해 매끄러운 궤적을 구합니다.

display(r(:,39))
  -3.2585 + 0.0000i
  -0.0145 + 0.6791i
  -0.0145 - 0.6791i
display(k(39))
    7.5289

예를 들어 r(:,39)는 피드백 이득 값 7.5289에 대해 위의 폐루프 극점을 포함합니다.

이 예제에서는 다음과 같은 SISO 전달 함수 모델이 있다고 가정하겠습니다.

sys(s)=0.5s2-14s4+3s2+2

전달 함수 모델과 피드백 이득 값으로 구성된 벡터를 정의합니다. 이 예제에서는 이득 값이 1에서 8 사이에서 0.5씩 증가한다고 가정하고 rlocus를 사용하여 폐루프 극점 위치를 추출해 보겠습니다.

sys = tf([0.5 0 -1],[4 0 3 0 2]);
k = (1:0.5:5);
r = rlocus(sys,k);
size(r)
ans = 1×2

     4     9

sys에 4개의 폐루프 극점이 있으므로 결과로 생기는 폐루프 극점 위치로 구성된 배열 r의 크기는 4x9이며 여기서 9개의 열은 k에 정의된 9개의 특정 이득 값에 해당합니다.

k의 특정 이득 값에 대한 폐루프 극점의 궤적을 근궤적 플롯에 시각화할 수도 있습니다.

rlocus(sys,k)

Figure contains an axes object. The axes object contains 6 objects of type line. One or more of the lines displays its values using only markers This object represents sys.

입력 인수

모두 축소

SISO 동적 시스템으로, 다음 중 하나로 지정됩니다.

  • 연속시간 수치적 LTI 모델 또는 이산시간 수치적 LTI 모델(예: tf, zpk 또는 ss 모델).

  • 일반화된 모델 또는 불확실 LTI 모델(예: genss, uss (Robust Control Toolbox) 모델). (불확실 모델을 사용하려면 Robust Control Toolbox™가 필요합니다.)

    rlocus

    • 조정 가능한 제어 설계 블록의 경우 조정 가능한 구성요소의 현재 값을 가정합니다.

    • 불확실한 제어 설계 블록의 경우 공칭 모델 값을 가정합니다.

  • 식별된 LTI 모델(예: idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox), idpoly (System Identification Toolbox) 또는 idgrey (System Identification Toolbox) 모델). (식별된 모델을 사용하려면 System Identification Toolbox™가 필요합니다.)

극점 위치와 관련된 피드백 이득 값으로, 벡터로 지정됩니다. 피드백 이득은 극점의 궤적을 정의하므로 근궤적 플롯의 모양에 영향을 미칩니다.

출력 인수

모두 축소

k의 각 값에 해당되는 sys의 폐루프 극점 위치로, n×m 배열로 반환됩니다. 여기서 nsys의 폐루프 극점 개수이고 m = max(length(k))입니다.

극점 위치와 관련된 피드백 이득 값으로, 벡터로 반환됩니다. 피드백 이득은 극점의 궤적을 정의하므로 근궤적 플롯의 모양에 영향을 미칩니다. 사용자가 k를 정의하지 않은 경우 rlocus는 양의 이득 k를 0과 무한대 사이에서 적절하게 선택하여 매끄러운 플롯을 생성합니다.

버전 내역

R2006a 이전에 개발됨