주요 콘텐츠

pole

동적 시스템의 극점

설명

P = pole(sys)는 SISO 또는 MIMO 동적 시스템 모델 sys의 극점을 반환합니다. 출력은 sys.TimeUnit에 지정된 시간 단위의 역수로 표현됩니다. 동적 시스템의 극점은 시스템의 안정성과 응답을 결정합니다.

개루프 선형 시불변 시스템은 다음과 같은 경우에 안정적입니다.

  • 연속시간에서, 전달 함수의 모든 극점이 음의 실수부를 갖는 경우. 극점을 복소 평면 s상에서 시각화했을 때 안정성을 보장하기 위해 모두 좌반면(LHP)에 있어야 합니다.

  • 이산시간에서, 모든 극점이 1보다 엄격하게 작은 크기를 가져야 합니다. 즉, 모든 극점이 단위원 안에 있어야 합니다.

희소 상태공간 모델의 경우, 이 구문은 크기가 가장 작은 처음 1000개의 극점을 계산합니다. (R2025a 이후)

예제

P = pole(sys,J1,...,JN)은 모델 배열 sys의 항목의 극점 P를 아래 첨자 (J1,...,JN)을 사용하여 반환합니다.

예제

P = pole(___,Name=Value)는 지정된 하나 이상의 이름-값 인수를 기반으로 희소 모델 sys의 일부 극점을 계산합니다. 이름-값 인수를 지정하지 않으면 함수는 크기가 가장 작은 처음 1000개의 극점을 계산합니다. sys가 비희소 모델인 경우 이 함수는 이름-값 인수를 무시합니다. (R2025a 이후)

예제

예제

모두 축소

다음 이산시간 전달 함수의 극점을 계산합니다.

sys(z)=0.0478z-0.0464z2-1.81z+0.9048

sys = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1);
P = pole(sys)
P = 2×1 complex

   0.9050 + 0.2929i
   0.9050 - 0.2929i

안정적인 이산 시스템의 경우, 모든 극점이 1보다 엄격하게 작은 크기를 가져야 합니다. 즉, 모든 극점이 단위원 안에 있어야 합니다. 이 예제의 극점은 켤레 복소수 쌍이며, 단위원 안에 있습니다. 따라서 시스템 sys는 안정적입니다.

다음 전달 함수의 극점을 계산합니다.

sys(s)=4.2s2+0.25s-0.004s2+9.6s+17

sys = tf([4.2,0.25,-0.004],[1,9.6,17]);
P = pole(sys)
P = 2×1

   -7.2576
   -2.3424

안정적인 연속 시스템의 경우, 모든 극점이 음의 실수부를 가져야 합니다. sys는 극점이 음수이므로, 즉 복소 평면의 좌반면에 있으므로 안정적입니다.

이 예제에서는 역진자 모델로 구성된 3×3 배열을 포함하는 invertedPendulumArray.mat를 불러옵니다. sys에서 한 열을 따라 모델을 변경하면 진자의 질량이 달라지고 한 행을 따라 모델을 변경하면 진자의 길이가 달라집니다. 사용된 질량 값은 100g, 200g, 300g이고 사용된 진자 길이는 3m, 2m, 1m입니다.

Column1Column2Column3Row1100g,3m100g,2m100g,1mRow2200g,3m200g,2m200g,1mRow3300g,3m300g,2m300g,1m

load('invertedPendulumArray.mat','sys');
size(sys)
3x3 array of transfer functions.
Each model has 1 outputs and 1 inputs.

모델 배열의 극점을 찾습니다.

P = pole(sys);
P(:,:,2,1)
ans = 3×1

    2.1071
   -2.1642
   -0.1426

P(:,:,2,1)은 진자의 무게가 200g이고 길이가 3m인 모델의 극점에 해당합니다.

R2025a 이후

이 예제에서는 보(beam)에 대한 희소 모델의 극점을 계산하는 방법을 보여줍니다. 희소 상태공간 모델의 경우 pole은 관심 주파수 범위를 기반으로 일부 극점을 계산합니다.

모델을 불러옵니다.

load linBeam.mat
size(sys)
Sparse second-order model with 1 outputs, 1 inputs, and 3303 degrees of freedom.

희소 모델은 종종 규모가 크고 모든 극점을 계산하는 것이 불가능하거나 많은 계산량을 요합니다. 기본적으로 pole 함수는 크기가 가장 작은 처음 1000개의 극점을 계산합니다.

p = pole(sys);
size(p)
ans = 1×2

        1000           1

많은 수의 극점을 계산하는 것을 피하려면, 관심 주파수 범위와 같은 추가 옵션을 지정할 수 있습니다. 일반적으로 사용자가 저주파 대역을 지정하면 함수는 해당 범위 내에서 고유 주파수를 갖는 극점만 계산합니다.

p2 = pole(sys,Focus=[0 1e4]);
size(p2)
ans = 1×2

     4     1

입력 인수

모두 축소

동적 시스템으로, SISO 또는 MIMO 동적 시스템 모델이나 SISO 또는 MIMO 동적 시스템 모델로 구성된 배열로 지정됩니다. 사용 가능한 동적 시스템에는 tf (Control System Toolbox), zpk (Control System Toolbox) 또는 ss (Control System Toolbox) 모델과 같은 연속시간 또는 이산시간 수치적 LTI 모델이 포함됩니다.

sys가 일반화된 상태공간 모델 genss 또는 불확실 상태공간 모델 uss인 경우 polesys의 현재 값 또는 공칭 값의 극점을 반환합니다. sys가 모델로 구성된 배열인 경우 polesys에서 아래 첨자 J1,...,JN에 대응하는 모델의 극점을 반환합니다. 모델 배열에 대한 자세한 내용은 모델 배열 (Control System Toolbox) 항목을 참조하십시오.

sys가 희소 상태공간 모델이면(sparss (Control System Toolbox) 또는 mechss (Control System Toolbox)), 지정된 관심 주파수 대역에서 일부 극점을 계산합니다. 희소 모델의 경우 이름-값 인수를 사용하여 계산 옵션을 지정하십시오. 아무 옵션도 지정하지 않으면 크기가 가장 작은 처음 1000개의 극점을 계산합니다. 레일리 감쇠가 적용된 mechss 모델이면, (K,M)의 고유값으로부터 극점을 계산합니다. 그 외의 경우에는 동등한 sparss 모델로부터 극점을 계산합니다. (R2025a 이후)

배열에서 그 극점을 추출하려는 모델의 인덱스로, 양의 정수로 지정됩니다. sys의 배열 차원 개수만큼 인덱스를 제공할 수 있습니다. 예를 들어, sys가 동적 시스템 모델로 구성된 4×5 배열인 경우 다음 명령은 배열의 요소 (2,3)에 대한 극점을 추출합니다.

P = pole(sys,2,3);

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: B = pole(sparseSys,Focus=[0 10],Display="off")

R2025a 이후

관심 주파수 범위로, [fmin,fmax] 형식의 벡터로 지정됩니다. 관심 주파수 범위를 지정하면, 알고리즘은 해당 범위 내에서 고유 주파수를 가진 극점만 계산합니다. 이산시간 모델이면 Tustin 변환을 통해 동등한 고유 주파수를 근사합니다.

준정부호 대칭 희소 모델이면 0 ≤ fmin < fmax의 임의의 주파수 범위를 지정할 수 있습니다. 비대칭 sparss 모델이면 주파수 범위를 [0,fmax] 또는 [fmin,inf]로 지정해야 합니다.

소프트웨어는 지정된 주파수 범위 내에서 모든 극점을 계산하므로, 일반적으로 사용자가 저주파 범위를 지정하여 많은 수의 극점이 계산되는 것을 제한합니다. 기본적으로 관심 범위는 지정되지 않으며([0 Inf]) 알고리즘은 최대 MaxNumber개의 극점을 계산합니다.

R2025a 이후

계산할 극점과 영점의 최대 개수로, 양의 정수로 지정됩니다. 이 값은 알고리즘이 계산하는 극점의 수를 제한합니다.

R2025a 이후

스펙트럼 이동으로, 유한한 스칼라로 지정됩니다.

A-sigma*E에 대한 역거듭제곱 반복을 사용하여 지정된 범위 [0,fmax]에서 고유 주파수를 갖는 극점을 계산하며, 이를 통해 이동 sigma에 가장 가까운 고유값을 얻습니다. A가 특이값이고 sigma가 0이면 역행렬이 존재하지 않으므로 알고리즘은 실패합니다. 따라서 적분 동작(s = 0 또는 이산시간 모델이면 z = 1)이 있는 희소 모델의 경우, 이 옵션을 사용하여 극점이나 영점을 이 이동 값에 가장 가까운 값으로 묵시적으로 이동할 수 있습니다. 이동 값을 원래 모델의 기존 극점 값과 동일하지 않은 값으로 지정하십시오.

R2025a 이후

계산된 극점의 정확도에 대한 허용오차로, 양의 유한한 스칼라로 지정됩니다. 이 값은 역거듭제곱 반복을 통해 계산되는 고유값의 수렴을 제어합니다.

R2025a 이후

진행률 리포트를 표시하거나 숨길지 여부로, "off" 또는 "on"으로 지정됩니다.

출력 인수

모두 축소

동적 시스템의 극점으로, 스칼라 또는 배열로 반환됩니다. sys

  • 단일 모델인 경우, P는 동적 시스템 모델 sys의 극점으로 구성된 열 벡터입니다.

  • 모델 배열인 경우, Psys의 각 모델의 극점으로 구성된 배열입니다.

Psys.TimeUnit에 지정된 시간 단위의 역수로 표현됩니다. 예를 들어, sys.TimeUnit = 'minutes'이면 극점은 1/분으로 표현됩니다.

극점은 시스템 모델의 유형에 따라 다음과 같은 방법으로 계산됩니다.

  • 상태공간 모델의 경우, 극점은 A 행렬의 고유값 또는 설명자의 경우 AλE의 일반 고유값입니다.

    희소 상태공간 모델의 경우, 극점은 역거듭제곱 반복[1]을 사용하여 얻은 일부 고유값입니다[1]. (R2025a 이후)

  • SISO 전달 함수 또는 영점-극점-이득 모델의 경우, 극점은 분모의 근입니다. 자세한 내용은 roots를 참조하십시오.

  • MIMO 전달 함수(또는 영점-극점-이득 모델)의 경우, 극점은 각 SISO 항목에 대한 극점의 합집합으로 반환됩니다. 공통 분모를 갖는 I/O 쌍이 있는 경우 해당 I/O 쌍 분모의 근은 한 번만 산정됩니다.

제한 사항

  • 여러 극점은 수치적으로 민감하며 높은 정확도로 계산될 수 없습니다. 중복도가 m인 극점 λ는 일반적으로 중심이 λ이고 반지름이 다음과 같은 차원을 갖는 원 위에 분포된, 계산된 극점으로 이루어진 군집을 야기합니다.

    ρε1/m,

    여기서 ε은 상대 기계 정밀도(eps)입니다.

    여러 극점에 대한 자세한 내용은 Sensitivity of Multiple Roots (Control System Toolbox) 항목을 참조하십시오.

  • sys에 내부 지연이 있는 경우 먼저 시스템이 유한한 개수의 극점을 갖도록 모든 내부 지연을 0으로 설정하여 0차 파데 근사를 생성함으로써 극점이 구해집니다. 일부 시스템의 경우 지연을 0으로 설정하면 특이 대수 루프가 생성되고, 이는 올바르지 않거나 정의되지 않은 0지연 근사를 야기합니다. 이러한 시스템의 경우 pole은 오류를 반환합니다.

    내부 지연이 있는 모델의 안정성을 평가하려면 step 또는 impulse를 사용하십시오.

알고리즘

희소 상태공간 모델의 경우, pole은 지정된 주파수 대역에서 극점을 계산하기 위한 역거듭제곱 반복에 크릴로프-슈어(Krylov-Schur) 알고리즘[1]을 사용합니다.

참고 문헌

[1] Stewart, G. W. “A Krylov--Schur Algorithm for Large Eigenproblems.” SIAM Journal on Matrix Analysis and Applications 23, no. 3 (January 2002): 601–14. https://doi.org/10.1137/S0895479800371529.

버전 내역

R2012a에 개발됨

모두 확장

참고 항목

| | | | |

도움말 항목