주요 콘텐츠

rlocus

동적 시스템의 근궤적

설명

[r,kout] = rlocus(sys)는 SISO 모델 sys의 근궤적을 계산하고 피드백 이득 k와 해당 복소수 근 위치 r로 구성된 결과 벡터를 반환합니다.

rlocus는 매끄러운 근궤적을 생성하기 위해 양의 피드백 이득 세트를 자동으로 선택합니다.

동적 시스템의 근궤적에 대한 자세한 내용은 알고리즘 항목을 참조하십시오.

예제

r = rlocus(sys,k)k에 지정된 피드백 이득에 해당하는 폐루프 극점을 반환합니다.

예제

rlocus(___)는 위에 열거된 모든 입력 인수의 조합에 디폴트 플로팅 옵션을 사용하여 SISO 모델 sys의 근궤적을 플로팅합니다. 추가 플롯 사용자 지정 옵션이 필요하면 rlocusplot을 사용하십시오.

  • 여러 동적 시스템의 근궤적을 동일한 플롯에 플로팅하기 위해 sys를 쉼표로 구분된 모델 목록으로 지정할 수 있습니다. 예를 들어, rlocus(sys1,sys2,sys3)은 세 모델의 근궤적을 동일한 플롯에 플로팅합니다.

  • 플롯에 있는 각 시스템의 색, 선 스타일 및 마커를 지정하려면 각 시스템의 LineSpec 값을 지정합니다. 예를 들어, rlocus(sys1,LineSpec1,sys2,LineSpec2)는 두 모델을 플로팅하고 각각의 플롯 스타일을 지정합니다. LineSpec 값 지정에 대한 자세한 내용은 rlocusplot 항목을 참조하십시오.

예제

모두 축소

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

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

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

MATLAB figure

근궤적 플롯에서 시스템의 극점은 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

MATLAB figure

세 개의 시스템에 대한 근궤적 다이어그램이 하나의 플롯에 포함되어 있습니다. 플롯 사용자 지정에 대한 자세한 내용은 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)

MATLAB figure

입력 인수

모두 축소

동적 시스템으로, SISO 동적 시스템 모델로 지정되거나 동적 시스템 모델로 구성된 배열로 지정됩니다. 사용 가능한 동적 시스템에는 다음이 포함됩니다.

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

  • 희소 상태공간 모델(예: sparss 또는 mechss 모델).

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

    • 조정 가능한 제어 설계 블록의 경우, 이 함수는 현재 값에서 모델을 계산하여 응답을 플로팅합니다.

    • 불확실한 제어 설계 블록의 경우, 이 함수는 모델의 공칭 값과 임의 샘플을 플로팅합니다.

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

sys가 모델로 구성된 배열인 경우, 플롯은 배열에 있는 모든 모델의 응답을 동일한 좌표축에 표시합니다.

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

출력 인수

모두 축소

각 피드백 이득 값 kout에 해당되는 sys의 폐루프 극점 위치로, N×M 배열로 반환됩니다. 여기서 Nsys의 폐루프 극점 개수이고 Mmax(length(k))입니다.

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

  • 대화형 방식으로 근궤적을 플로팅하는 방법은 제어 시스템 디자이너를 참조하십시오.

  • 근궤적 플롯의 모양을 사용자 지정하는 추가 옵션이 필요한 경우 rlocusplot을 사용하십시오.

  • rlocus를 사용하여 생성된 플롯은 string형 배열이나 문자형 벡터로 구성된 셀형 배열을 사용해서 여러 줄로 된 제목이나 레이블을 지정하는 것을 지원하지 않습니다. 여러 줄로 된 제목과 레이블을 지정하려면 newline 문자가 포함된 단일 문자열을 사용하십시오.

    rlocus(sys)
    title("first line" + newline + "second line");

알고리즘

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

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

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

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

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

d(s)+kn(s)=0

근궤적 플롯은 피드백 이득 k가 0에서 무한대일 때 폐루프 극점의 궤적을 그립니다.

버전 내역

R2006a 이전에 개발됨

모두 확장