Main Content

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

nyquistplot

추가적인 플롯 사용자 지정 옵션을 사용한 나이퀴스트 플롯

    설명

    nyquistplot을 사용하면 nyquist보다 광범위한 플롯 사용자 지정 옵션으로 동적 시스템 모델의 나이퀴스트 다이어그램을 플로팅할 수 있습니다. nyquistplot을 사용하여 plot 핸들을 구할 수 있으며 축 레이블, 제한, 단위를 수정하는 등 플롯을 사용자 지정할 수도 있습니다. 또한 nyquistplot을 사용하면 axes 핸들에 의해 표현된 기존 좌표축에 나이퀴스트 다이어그램을 그릴 수도 있습니다. plot 핸들을 사용하여 기존 나이퀴스트 플롯을 사용자 지정하려면 다음을 수행합니다.

    1. plot 핸들을 구합니다.

    2. getoptions를 사용하여 옵션 세트를 구합니다.

    3. setoptions를 사용해 플롯을 업데이트하여 필요한 옵션을 수정합니다.

    자세한 내용은 Customizing Response Plots from the Command Line (Control System Toolbox) 항목을 참조하십시오. 디폴트 옵션을 사용하여 나이퀴스트 플롯을 만들거나 주파수 응답 데이터의 표준편차, 실수부, 허수부를 추출하려면 nyquist를 사용하십시오.

    예제

    h = nyquistplot(sys)동적 시스템 모델 sys의 나이퀴스트 플롯을 플로팅하고 플롯에 대한 plot 핸들 h를 반환합니다. 이 핸들 h를 사용하여 getoptions 명령과 setoptions 명령에서 플롯을 사용자 지정할 수 있습니다. sys가 MIMO(다중 입력 다중 출력) 모델인 경우 nyquistplot은 여러 나이퀴스트 플롯의 그리드를 생성하는데, 각각의 플롯은 한 입력/출력 쌍의 주파수 응답을 보여줍니다.

    예제

    h = nyquistplot(sys1,sys2,...,sysN)은 여러 동적 시스템 sys1,sys2,…,sysN의 나이퀴스트 플롯을 동일한 플롯에 플로팅합니다. 이 구문을 사용하려면 모든 시스템이 동일한 개수의 입력과 출력을 가져야 합니다.

    예제

    h = nyquistplot(sys1,LineSpec1,...,sysN,LineSpecN)은 각 시스템의 나이퀴스트 플롯에 대해 선 스타일, 마커 유형, 색을 설정합니다. 이 구문을 사용하려면 모든 시스템이 동일한 개수의 입력과 출력을 가져야 합니다.

    예제

    h = nyquistplot(___,w)w의 주파수로 지정된 주파수에 대한 나이퀴스트 다이어그램을 플로팅합니다.

    • w{wmin,wmax} 형식의 셀형 배열인 경우 nyquistplotwminwmax 사이의 주파수에서 나이퀴스트 다이어그램을 플로팅합니다.

    • w가 주파수로 구성된 벡터인 경우 nyquistplot은 지정된 각 주파수에서의 나이퀴스트 다이어그램을 플로팅합니다.

    w와 위에 열거된 구문에 나와 있는 입력 인수를 원하는 대로 조합하여 사용할 수 있습니다.

    로그 간격의 주파수 벡터를 생성하려면 logspace를 참조하십시오.

    h = nyquistplot(AX,___)는 핸들 AX를 사용하여 현재 Figure의 Axes 객체에 나이퀴스트 플롯을 플로팅합니다.

    예제

    h = nyquistplot(___,plotoptions)plotoptions에 지정된 옵션 세트를 사용하여 나이퀴스트 플롯을 플로팅합니다. 이러한 옵션은 명령줄을 사용하여 나이퀴스트 플롯의 모양을 사용자 지정하는 데 사용할 수 있습니다. plotoptions에 지정한 설정은 nyquistplot을 실행하는 MATLAB® 세션에서 기본 설정을 재정의합니다. 따라서 이 구문은 개별 시스템의 기본 설정에 관계없이 동일한 모양의 여러 플롯을 생성하는 스크립트를 작성하려는 경우 유용합니다.

    예제

    모두 축소

    이 예제에서는 plot 핸들을 사용하여 위상 단위를 라디안으로 변경하고 그리드를 켭니다.

    5개의 상태를 갖는 무작위 상태공간 모델을 생성하고 plot 핸들 h를 사용하여 나이퀴스트 다이어그램을 만듭니다.

    rng("default")
    sys = rss(5);
    h = nyquistplot(sys);

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    위상 단위를 라디안으로 변경하고 그리드를 켭니다. 이를 위해 setoptions를 사용하여 plot 핸들 h의 속성을 편집합니다.

    setoptions(h,'PhaseUnits','rad','Grid','on');

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    setoptions를 호출하면 나이퀴스트 플롯이 자동으로 업데이트됩니다.

    nyquistoptions 명령을 사용하여 필요한 플롯 옵션을 지정할 수도 있습니다. 먼저 툴박스 기본 설정에 따라 옵션 세트를 만듭니다.

    plotoptions = nyquistoptions('cstprefs');

    위상 단위를 라디안으로 설정하고 그리드를 활성화하여 옵션 세트의 속성을 변경합니다.

    plotoptions.PhaseUnits = 'rad';
    plotoptions.Grid = 'on';
    nyquistplot(sys,plotoptions);

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    동일한 옵션 세트를 사용하여 동일한 사용자 지정으로 여러 나이퀴스트 플롯을 만들 수 있습니다. 사용자 고유의 툴박스 기본 설정에 따라, 이 플롯과 다른 모양의 플롯을 얻게 될 수 있습니다. 이 예제의 PhaseUnitsGrid처럼 툴박스 기본 설정 중에서 명시적으로 설정하는 속성들만 재정의됩니다.

    동적 시스템 모델의 나이퀴스트 플롯을 만들고 플롯에 대한 핸들을 저장합니다.

    sys = tf(100,[1,2,1]);
    h = nyquistplot(sys);

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    플롯 제목을 "Nyquist Plot of sys"로 변경합니다. 이렇게 하기 위해 getoptions를 사용하여 plot 핸들 h에서 기존 플롯 옵션을 추출합니다.

    opt = getoptions(h)
    opt =
    
                             FreqUnits: 'rad/s'
                              MagUnits: 'dB'
                            PhaseUnits: 'deg'
                       ShowFullContour: 'on'
              ConfidenceRegionNumberSD: 1
        ConfidenceRegionDisplaySpacing: 5
                            IOGrouping: 'none'
                           InputLabels: [1x1 struct]
                          OutputLabels: [1x1 struct]
                          InputVisible: {'on'}
                         OutputVisible: {'on'}
                                 Title: [1x1 struct]
                                XLabel: [1x1 struct]
                                YLabel: [1x1 struct]
                             TickLabel: [1x1 struct]
                                  Grid: 'off'
                             GridColor: [0.1500 0.1500 0.1500]
                                  XLim: {[-20 100]}
                                  YLim: {[-80 80]}
                              XLimMode: {'auto'}
                              YLimMode: {'auto'}
    

    Title 옵션은 여러 필드가 있는 구조체입니다.

    opt.Title
    ans = struct with fields:
             String: 'Nyquist Diagram'
           FontSize: 11
         FontWeight: 'bold'
          FontAngle: 'normal'
              Color: [0 0 0]
        Interpreter: 'tex'
    
    

    Title 구조체의 String 필드를 변경하고, setoptions를 사용하여 변경 사항을 플롯에 적용합니다.

    opt.Title.String = 'Nyquist Plot of sys';
    setoptions(h,opt)

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    동적 시스템의 나이퀴스트 주파수 응답을 플로팅합니다. 추가 조작을 위해 액세스할 수 있도록 plot 핸들에 변수 이름을 할당합니다.

    sys = tf(100,[1,2,1]);
    h = nyquistplot(sys);

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    임계점 (-1,0) 위주로 봅니다. 플롯을 마우스 오른쪽 버튼으로 클릭하고 (-1,0) 위주로 보기를 선택하여 대화형 방식으로 이를 수행할 수 있습니다. 또는 plot 핸들 h에 대해 zoomcp 명령을 사용할 수도 있습니다.

    zoomcp(h)

    Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

    모든 50번째 주파수 샘플에서 렌더링된 1-std 신뢰영역과 함께 차수 2와 6의 식별된 상태공간 모델의 주파수 응답을 비교합니다.

    식별된 모델 데이터를 불러오고 n4sid를 사용하여 상태공간 모델을 추정합니다. 그런 다음 나이퀴스트 다이어그램을 플로팅합니다.

    load iddata1
    sys1 = n4sid(z1,2); 
    sys2 = n4sid(z1,6);
    w = linspace(10,10*pi,256);
    h = nyquistplot(sys1,sys2,w);

    Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1, sys2.

    두 모델 모두 데이터에 대해 약 76%의 피팅을 생성합니다. 그러나 sys2는 주파수 응답에서 더 높은 불확실성을 보여주며, 특히 플롯에서 볼 수 있듯이 나이퀴스트 주파수에 가까울수록 그러합니다. 이를 확인하기 위해 나이퀴스트 응답이 표시되는 지점의 일부에 신뢰 영역을 표시합니다.

    setoptions(h,'ConfidenceRegionDisplaySpacing',50,...
                 'ShowFullContour','off');

    Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1, sys2.

    신뢰영역 표시를 켜려면 플롯을 마우스 오른쪽 버튼으로 클릭하고 특성 > 신뢰영역을 선택하십시오.

    nyquistplot_conf.png

    이 예제에서는 입력 3개, 출력 3개, 상태 3개인 MIMO 상태공간 모델이 있다고 가정하겠습니다. 나이퀴스트 플롯을 만들고 부분 등고선만 표시하고 그리드를 켭니다.

    MIMO 상태공간 모델 sys_mimo를 만듭니다.

    J = [8 -3 -3; -3 8 -3; -3 -3 8];
    F = 0.2*eye(3);
    A = -J\F;
    B = inv(J);
    C = eye(3);
    D = 0;
    sys_mimo = ss(A,B,C,D);
    size(sys_mimo)
    State-space model with 3 outputs, 3 inputs, and 3 states.
    

    plot 핸들 h를 사용하여 나이퀴스트 플롯을 만들고 사용 가능한 옵션 목록을 얻기 위해 getoptions를 사용합니다.

    h = nyquistplot(sys_mimo);

    Figure contains 9 axes objects. Axes object 1 with title From: In(1), ylabel To: Out(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 with ylabel To: Out(2) contains an object of type line. This object represents sys\_mimo. Axes object 3 with ylabel To: Out(3) contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

    p = getoptions(h)
    p =
    
                             FreqUnits: 'rad/s'
                              MagUnits: 'dB'
                            PhaseUnits: 'deg'
                       ShowFullContour: 'on'
              ConfidenceRegionNumberSD: 1
        ConfidenceRegionDisplaySpacing: 5
                            IOGrouping: 'none'
                           InputLabels: [1x1 struct]
                          OutputLabels: [1x1 struct]
                          InputVisible: {3x1 cell}
                         OutputVisible: {3x1 cell}
                                 Title: [1x1 struct]
                                XLabel: [1x1 struct]
                                YLabel: [1x1 struct]
                             TickLabel: [1x1 struct]
                                  Grid: 'off'
                             GridColor: [0.1500 0.1500 0.1500]
                                  XLim: {3x1 cell}
                                  YLim: {3x1 cell}
                              XLimMode: {3x1 cell}
                              YLimMode: {3x1 cell}
    

    setoptions를 사용하여 필요한 사용자 지정 옵션으로 플롯을 업데이트합니다.

    setoptions(h,'ShowFullContour','off','Grid','on');

    Figure contains 9 axes objects. Axes object 1 with title From: In(1), ylabel To: Out(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 with ylabel To: Out(2) contains an object of type line. This object represents sys\_mimo. Axes object 3 with ylabel To: Out(3) contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

    setoptions를 호출하면 나이퀴스트 플롯이 자동으로 업데이트됩니다. MIMO 모델의 경우 nyquistplot은 여러 나이퀴스트 다이어그램으로 구성된 배열을 생성하며, 각각의 플롯은 I/O 쌍 하나의 주파수 응답을 표시합니다.

    입력 인수

    모두 축소

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

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

    • 희소 상태공간 모델(예: sparss (Control System Toolbox) 또는 mechss (Control System Toolbox) 모델). 희소 모델의 경우 주파수 그리드 w를 지정해야 합니다.

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

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

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

    • 주파수 응답 데이터 모델(예: frd 모델). 이러한 모델의 경우, 이 함수는 모델에 정의된 주파수에서 나이퀴스트 플롯을 플로팅합니다.

    • 식별된 LTI 모델(예: idtf, idss, idproc 모델).

    sys가 모델로 구성된 배열인 경우 이 함수는 배열에 포함된 모든 모델의 나이퀴스트 응답을 동일한 좌표축에 플로팅합니다.

    선 스타일, 마커 및 색으로, 기호를 포함하는 문자형 벡터 또는 string형으로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다.

    예: '--or'은 원형 마커가 있는 빨간색 파선입니다.

    선 스타일설명
    -실선
    --파선
    :점선
    -.일점 쇄선
    마커설명
    'o'
    '+'플러스 기호
    '*'별표
    '.'
    'x'십자
    '_'가로선
    '|'세로선
    's'정사각형
    'd'다이아몬드
    '^'위쪽 방향 삼각형
    'v'아래쪽 방향 삼각형
    '>'오른쪽 방향 삼각형
    '<'왼쪽 방향 삼각형
    'p'펜타그램
    'h'헥사그램
    설명

    y

    노란색

    m

    자홍색

    c

    녹청색

    r

    빨간색

    g

    녹색

    b

    파란색

    w

    흰색

    k

    검은색

    대상 좌표축으로, AxesUIAxes 객체로 지정됩니다. 좌표축을 지정하지 않은 상태에서 현재 좌표축이 카테시안 좌표축인 경우, nyquistplot은 현재 좌표축에 플로팅합니다.

    나이퀴스트 플롯 옵션 세트로, NyquistPlotOptions 객체로 지정됩니다. 이 옵션 세트를 사용하여 나이퀴스트 플롯의 모양을 사용자 지정할 수 있습니다. 옵션 세트를 만들려면 nyquistoptions를 사용하십시오. plotoptions에 지정한 설정은 nyquistplot을 실행하는 MATLAB 세션에서 기본 설정을 재정의합니다. 따라서 plotoptions는 개별 시스템의 기본 설정에 관계없이 동일한 모양의 여러 플롯을 생성하는 스크립트를 작성하려는 경우 유용합니다.

    사용 가능한 옵션의 목록은 nyquistoptions 항목을 참조하십시오.

    나이퀴스트 응답을 계산하고 플로팅할 주파수로, 셀형 배열 {wmin,wmax} 또는 주파수 값으로 구성된 벡터로 지정됩니다.

    • w{wmin,wmax} 형식의 셀형 배열인 경우 함수는 wminwmax 사이의 주파수에서 응답을 계산합니다.

    • w가 주파수로 구성된 벡터인 경우 함수는 지정된 각 주파수에서 응답을 계산합니다. 예를 들어, logspace를 사용하여 로그 간격의 주파수 값을 갖는 행 벡터를 생성할 수 있습니다.

    주파수는 rad/TimeUnit 단위로 지정합니다. 여기서 TimeUnit은 모델의 TimeUnit 속성입니다.

    출력 인수

    모두 축소

    plot 핸들로, handle 객체로 반환됩니다. getoptionssetoptions를 사용하여 나이퀴스트 플롯의 속성을 가져오고 설정하려면 핸들 h를 사용합니다. 사용 가능한 옵션 목록은 Customizing Response Plots from the Command Line (Control System Toolbox) 항목에서 속성 및 값 도움말 섹션을 참조하십시오.

    • 나이퀴스트 플롯에만 적용되는 두 가지 확대/축소 옵션을 마우스 오른쪽 클릭 메뉴에서 사용할 수 있습니다.

      • 전체 보기 — 나이퀴스트 플롯의 비유계 분기를 잘라내되, 임계점 (–1, 0)은 여전히 포함합니다.

      • (-1,0) 위주로 보기 — 임계점 (-1,0) 위주로 봅니다. 프로그래밍 방식으로 임계점 위주로 보려면 zoomcp 명령을 사용하십시오. 임계점 위주로 보기 항목을 참조하십시오.

    • 지정된 주파수에서의 실수 값과 허수 값을 표시하는 데이터 마커를 활성화하려면 곡선 위의 아무 곳이나 클릭하십시오. 다음 Figure는 데이터 마커가 있는 나이퀴스트 플롯을 보여줍니다.

    버전 내역

    R2012a에 개발됨