Main Content

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

nicholsplot

추가적인 플롯 사용자 지정 옵션으로 니콜스 주파수 응답 플로팅

    설명

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

    1. plot 핸들을 구합니다.

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

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

    자세한 내용은 Customizing Response Plots from the Command Line 항목을 참조하십시오. 디폴트 옵션을 사용하여 니콜스 플롯을 만들거나 니콜스 주파수 응답 데이터를 추출하려면 nichols를 사용하십시오.

    예제

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

    예제

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

    예제

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

    예제

    h = nicholsplot(___,w)w의 주파수로 지정된 주파수에 대한 니콜스 응답을 플로팅합니다.

    • w{wmin,wmax} 형식의 셀형 배열인 경우 nicholsplotwminwmax 사이의 주파수에서 응답을 플로팅합니다.

    • w가 주파수로 구성된 벡터인 경우 nicholsplot은 지정된 각 주파수에서의 응답을 플로팅합니다.

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

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

    h = nicholsplot(AX,___)는 핸들 AX를 사용하여 현재 Figure의 Axes 객체에 니콜스 응답을 플로팅합니다.

    예제

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

    예제

    모두 축소

    이 예제에서는 plot 핸들을 사용하여 제목을 변경하고, 그리드를 켜고, 축 제한을 설정합니다.

    5개의 상태를 갖는 무작위 상태공간 모델을 생성하고 plot 핸들 h를 사용하여 니콜스 플롯을 만듭니다.

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

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

    제목을 변경하고, 그리드를 켜고, 축 제한을 설정합니다. 이를 위해 setoptions를 사용하여 plot 핸들 h의 속성을 편집합니다.

    Title.String = 'Nichols Frequency Response';
    setoptions(h,'Title',Title,'Grid','on', 'XLim',{[-2,4]},'YLim',{[3.3,4.3]});

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

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

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

    plotoptions = nicholsoptions('cstprefs');

    옵션 세트의 원하는 속성을 변경합니다.

    plotoptions.Title.String = 'Nichols Frequency Response';
    plotoptions.Grid = 'on';
    plotoptions.XLim = {[-2,4]};
    plotoptions.YLim = {[3.3,4.3]};
    nicholsplot(sys,plotoptions);

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

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

    이 예제에서는 제목에 15포인트의 빨간색 텍스트를 사용하는 니콜스 플롯을 생성합니다. 이 플롯은 생성된 MATLAB 세션의 기본 설정에 관계없이 동일하게 보여야 합니다.

    먼저 nicholsoptions를 사용하여 디폴트 옵션 세트를 만듭니다.

    plotoptions = nicholsoptions;

    그런 다음, 옵션 세트 plotoptions의 필요한 속성을 변경합니다.

    plotoptions.Title.FontSize = 15;
    plotoptions.Title.Color = [1 0 0];
    plotoptions.FreqUnits = 'Hz';
    plotoptions.Grid = 'on';

    이제 옵션 세트 plotoptions를 사용하여 니콜스 플롯을 만듭니다.

    nicholsplot(tf(1,[1,1]),{0,15},plotoptions);

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

    plotoptions가 고정된 옵션 세트로 시작하기 때문에 플롯 결과는 MATLAB 세션의 툴박스 기본 설정과 관계없습니다.

    이 예제에서는 다음과 같은 연속시간 SISO 동적 시스템의 니콜스 플롯을 만듭니다. 그런 다음, 그리드를 켜고 플롯의 이름을 바꿉니다.

    sys(s)=s2+0.1s+7.5s4+0.12s3+9s2.Continuous-time SISO dynamic system

    전달 함수 sys를 만듭니다.

    sys = tf([1 0.1 7.5],[1 0.12 9 0 0]);

    그런 다음, nicholsoptions를 사용하여 옵션 세트를 만들고 필요한 플롯 속성을 변경합니다.

    plotoptions = nicholsoptions;
    plotoptions.Grid = 'on';
    plotoptions.Title.String = 'Nichols Plot of Transfer Function';

    이제 사용자 지정 옵션 세트 plotoptions를 사용하여 니콜스 플롯을 만듭니다.

    nicholsplot(sys,plotoptions)

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

    nicholsplot은 시스템 동특성을 기반으로 플롯 범위를 자동으로 선택합니다.

    이 예제에서는 입력 3개, 출력 3개, 상태 3개인 MIMO 상태공간 모델이 있다고 가정하겠습니다. 주파수 단위가 Hz인 니콜스 플롯을 만들고 그리드를 켭니다.

    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 = nicholsplot(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'
            MagLowerLimMode: 'auto'
                MagLowerLim: 0
                   MagUnits: 'dB'
                 PhaseUnits: 'deg'
              PhaseWrapping: 'off'
              PhaseMatching: 'off'
          PhaseMatchingFreq: 0
         PhaseMatchingValue: 0
        PhaseWrappingBranch: -180
                 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,'FreqUnits','Hz','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 모델의 경우 nicholsplot은 여러 니콜스 플롯으로 구성된 배열을 생성하며, 각각의 플롯은 I/O 쌍 하나의 주파수 응답을 표시합니다.

    이 예제에서는 입력/출력 데이터에서 식별된 모수적 모델의 니콜스 응답을 동일한 데이터를 사용하여 식별된 비모수적 모델의 니콜스 응답과 비교합니다. 데이터를 기반으로 모수적 모델과 비모수적 모델을 식별합니다.

    데이터를 불러오고 각각 tfestspa를 사용하여 모수적 모델과 비모수적 모델을 만듭니다.

    load iddata2 z2;
    w = linspace(0,10*pi,128);
    sys_np = spa(z2,[],w);
    sys_p = tfest(z2,2);

    spatfest는 System Identification Toolbox™ 소프트웨어가 필요합니다. 모델 sys_np는 식별된 비모수적 모델이며 sys_p는 식별된 모수적 모델입니다.

    위상 정합과 그리드를 켜기 위해 옵션 세트를 만듭니다. 그런 다음, 이 옵션 세트를 사용해 두 시스템을 모두 포함하는 니콜스 플롯을 만듭니다.

    plotoptions = nicholsoptions;  
    plotoptions.PhaseMatching = 'on';
    plotoptions.Grid = 'on';
    plotoptions.XLim = {[-240,0]};
    h = nicholsplot(sys_p,'r.-.',sys_np,'b.-.',w,plotoptions);
    legend('Parametric Model','Non-Parametric model');

    Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent Parametric Model, Non-Parametric model.

    입력 인수

    모두 축소

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

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

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

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

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

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

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

    • 식별된 LTI 모델(예: idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox) 모델). 이러한 모델의 경우, 이 함수는 신뢰구간을 플로팅하고 주파수 응답의 표준편차를 반환할 수도 있습니다. (식별된 모델을 사용하려면 System Identification Toolbox™가 필요합니다.)

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

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

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

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

    y

    노란색

    m

    자홍색

    c

    녹청색

    r

    빨간색

    g

    녹색

    b

    파란색

    w

    흰색

    k

    검은색

    대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않은 상태에서 현재 좌표축이 카테시안 좌표축인 경우, nicholsplot은 현재 좌표축에 플로팅합니다. 특정 좌표축에 플로팅하려면 AX를 사용하십시오.

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

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

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

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

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

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

    출력 인수

    모두 축소

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

    버전 내역

    R2006a 이전에 개발됨