주요 콘텐츠

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

tf

전달 함수 모델

설명

tf를 사용하여 실수 값 또는 복소수 값 전달 함수 모델을 만들거나 동적 시스템 모델을 전달 함수 형식으로 변환합니다.

전달 함수는 선형 시불변 시스템의 주파수 영역 표현입니다. 예를 들어, 전달 함수 sys(s) = N(s)/D(s)로 표현되는 연속시간 SISO 동적 시스템이 있다고 가정하겠습니다. 여기서 s = jw이고 N(s)D(s)는 각각 분자 다항식 및 분모 다항식입니다. tf 모델 객체는 연속시간 또는 이산시간에서 SISO 또는 MIMO 전달 함수를 표현할 수 있습니다.

전달 함수 모델 객체는 계수를 직접 지정하여 만들 수도 있고 다른 유형의 모델(예: 상태공간 모델 ss)을 전달 함수 형식으로 변환하여 만들 수도 있습니다. 자세한 내용은 전달 함수 항목을 참조하십시오.

tf를 사용하여 일반화된 상태공간(genss) 모델 또는 불확실 상태공간(uss (Robust Control Toolbox)) 모델을 만들 수도 있습니다.

생성

설명

전달 함수 모델 만들기

sys = tf(numerator,denominator)NumeratorDenominator 속성을 설정하여 연속시간 전달 함수 모델을 만듭니다. 예를 들어, 전달 함수 sys(s) = N(s)/D(s)로 표현되는 연속시간 SISO 동적 시스템에서 입력 인수 numeratordenominator는 각각 N(s)D(s)의 계수입니다.

예제

sys = tf(numerator,denominator,ts)Numerator, DenominatorTs 속성을 설정하여 이산시간 전달 함수 모델을 만듭니다. 예를 들어, 전달 함수 sys(z) = N(z)/D(z)로 표현되는 이산시간 SISO 동적 시스템에서 입력 인수 numeratordenominator는 각각 N(z)D(z)의 계수입니다. 샘플 시간을 지정하지 않은 상태로 두려면 ts 입력 인수를 -1로 설정하십시오.

예제

sys = tf(numerator,denominator,ltiSys)는 샘플 시간을 포함하여 동적 시스템 모델 ltiSys에서 상속한 속성을 사용하여 전달 함수 모델을 만듭니다.

예제

sys = tf(m)은 정적 이득 m을 표현하는 전달 함수 모델을 만듭니다.

예제

sys = tf(___,PropertyName=Value)는 위에 열거된 입력 인수 조합에 대해 하나 이상의 속성 이름-값 인수를 사용하여 전달 함수 모델의 속성을 설정합니다.

예제

전달 함수 모델로 변환

sys = tf(ltiSys)는 동적 시스템 모델 ltiSys를 전달 함수 모델로 변환합니다.

예제

sys = tf(ltiSys,Name=Value)는 하나 이상의 지정된 이름-값 인수를 기반으로 영점과 극점을 계산하여 희소 모델 ltiSys의 절단된 전달 함수 표현을 얻습니다. 이 방법은 각 입력-출력 쌍에 대해 영점을 계산하므로 입력-출력 크기가 작은 모델에 가장 적합합니다. (R2025a 이후)

예제

sys = tf(ltiSys,component)ltiSys의 지정된 component를 전달 함수 형식으로 변환합니다. 이 구문은 ltiSys가 식별된 LTI(선형 시불변) 모델인 경우에만 사용하십시오.

예제

유리식에 대한 변수 생성

s = tf('s')는 유리식에서 연속시간 전달 함수 모델을 만드는 데 사용할 수 있는 특수 변수 s를 만듭니다. 유리식을 사용하는 것이 다항식 계수를 지정하는 것보다 쉽고 직관적인 경우가 있습니다.

예제

z = tf('z',ts)는 유리식에서 이산시간 전달 함수 모델을 만드는 데 사용할 수 있는 특수 변수 z를 만듭니다. 샘플 시간을 지정하지 않은 상태로 두려면 ts 입력 인수를 -1로 설정하십시오.

예제

입력 인수

모두 확장

전달 함수의 분자 계수로, 다음과 같이 지정됩니다.

  • 다항식 계수로 구성된 행 벡터.

  • MIMO 전달 함수를 지정하는 행 벡터로 구성된 Ny×Nu 셀형 배열. 여기서 Ny는 출력의 개수이고 Nu는 입력의 개수입니다.

전달 함수를 만들 때는 분자 계수를 거듭제곱 내림차순으로 지정하십시오. 예를 들어, 전달 함수 분자가 3s^2-4s+5인 경우 numerator[3 -4 5]로 지정합니다. 분자가 2z-1인 이산시간 전달 함수의 경우 numerator[2 -1]로 설정합니다.

tf 객체의 속성이기도 합니다. 자세한 내용은 Numerator를 참조하십시오.

분모 계수로, 다음과 같이 지정됩니다.

  • 다항식 계수로 구성된 행 벡터.

  • MIMO 전달 함수를 지정하는 행 벡터로 구성된 Ny×Nu 셀형 배열. 여기서 Ny는 출력의 개수이고 Nu는 입력의 개수입니다.

전달 함수를 만들 때는 분모 계수를 거듭제곱 내림차순으로 지정하십시오. 예를 들어, 전달 함수 분모가 7s^2+8s-9인 경우 denominator[7 8 -9]로 지정합니다. 분모가 2z^2+1인 이산시간 전달 함수의 경우 denominator[2 0 1]로 설정합니다.

tf 객체의 속성이기도 합니다. 자세한 내용은 Denominator를 참조하십시오.

샘플 시간으로, 스칼라로 지정됩니다. tf 객체의 속성이기도 합니다. 자세한 내용은 Ts를 참조하십시오.

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

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

    ltiSys가 희소 상태공간 모델이면(sparss 또는 mechss), 지정된 관심 주파수 대역에서 극점과 영점을 계산하여 절단된 전달 함수 근사를 계산합니다. 희소 모델의 경우 이름-값 인수를 사용하여 계산 옵션을 지정하십시오. 아무런 옵션도 지정하지 않으면 크기가 가장 작은 처음 1000개의 극점과 영점을 계산합니다. 또한, 이러한 근사를 구하는 것은 유효한 sparss 표현을 갖는 모델에만 적용할 수 있습니다. (R2025a 이후)

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

    결과로 생성되는 전달 함수는

    • 조정 가능한 제어 설계 블록의 경우 조정 가능한 컴포넌트의 현재 값을 가정합니다.

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

  • 식별된 LTI 모델(예: idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox), idpoly (System Identification Toolbox) 또는 idgrey (System Identification Toolbox) 모델). 식별된 모델의 변환할 성분을 선택하려면 component를 지정하십시오. component를 지정하지 않으면 기본적으로 tf는 식별된 모델의 측정된 성분을 변환합니다. (식별된 모델을 사용하려면 System Identification Toolbox™가 필요합니다.)

정적 이득으로, 스칼라 또는 행렬로 지정됩니다. 시스템의 정적 이득 또는 정상 상태 이득은 정상 상태 조건에서의 출력과 입력의 비율을 나타냅니다.

식별된 모델의 성분으로, 변환의 대상이며 다음 중 하나로 지정됩니다.

  • 'measured'sys의 측정된 성분을 변환합니다.

  • 'noise'sys의 잡음 성분을 변환합니다.

  • 'augmented'sys의 측정된 성분과 잡음 성분을 모두 변환합니다.

componentsys가 식별된 LTI 모델인 경우에만 적용됩니다.

식별된 LTI 모델과 그 측정된 성분 및 잡음 성분에 대한 자세한 내용은 Identified LTI Models 항목을 참조하십시오.

이름-값 인수

모두 확장

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

예: sys = tf(sparseSys,Focus=[0 100],Display="off")

R2025a 이후

영점-극점 계산에 병렬 연산을 사용할지 여부로, 숫자형 또는 논리형 0 (false) 또는 1(true)로 지정됩니다.

UseParalleltrue로 설정하면 원하는 병렬 환경으로 확장하도록 명시적으로 선택할 수 있습니다. 병렬 연산을 활성화하면 영점-극점 계산 시 성능이 향상될 수 있습니다. 하지만 UseParallelfalse로 설정한 경우에도 알고리즘은 내장된 멀티스레딩을 사용하여 로컬 리소스를 최대한 활용할 수 있습니다. 자세한 내용은 MATLAB 멀티코어를 참조하십시오.

이 옵션을 사용하려면 Parallel Computing Toolbox™ 라이선스가 필요합니다.

R2025a 이후

롤오프 기울기로, 양이 아닌 스칼라 또는 행렬로 지정됩니다.

  • SISO 모델인 경우, 또는 MIMO 모델에서 모든 입력-출력 쌍에 대해 기울기가 균일한 경우 스칼라 값을 사용합니다.

  • MIMO 모델에서 각 입력-출력 쌍의 기울기가 다른 경우 행렬을 사용합니다.

이 옵션을 사용하면 지정된 주파수 범위를 벗어나는 경우 근사에 어떻게 롤오프를 적용할지 명시적으로 지정할 수 있습니다. 예를 들어, Slope -2fmax를 초과할 경우 이득이 최소 -40dB/decade 레이트로(1/s2의 롤오프 레이트) 롤오프되도록 합니다.

R2025a 이후

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

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

R2025a 이후

계산할 극점과 영점의 최대 개수로, 양의 정수로 지정됩니다. 이 값은 알고리즘에 의해 계산되는 극점과 영점의 개수, 그리고 원래 희소 모델의 근사 차수를 제한합니다.

R2025a 이후

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

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

R2025a 이후

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

R2025a 이후

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

출력 인수

모두 확장

출력 시스템 모델로, 다음과 같이 반환됩니다.

  • 전달 함수(tf) 모델 객체: numeratordenominator 입력 인수가 숫자형 배열인 경우. ltiSystf 모델 유형으로 변환할 경우 sys는 항상 tf 모델 객체입니다.

  • 일반화된 상태공간 모델(genss) 객체: numerator 또는 denominator 입력 인수가 realp 파라미터 또는 일반화된 행렬(genmat)과 같은 조정 가능한 파라미터를 포함하는 경우. 예제는 조정 가능한 저역통과 필터 항목을 참조하십시오.

  • 불확실 상태공간 모델(uss) 객체: numerator 또는 denominator 입력 인수가 불확실한 파라미터를 포함하는 경우. 불확실 모델을 사용하려면 Robust Control Toolbox가 필요합니다. 예제는 Transfer Function with Uncertain Coefficients (Robust Control Toolbox) 항목을 참조하십시오.

속성

모두 확장

분자 계수로, 다음과 같이 지정됩니다.

  • 거듭제곱 내림차순(Variable's', 'z', 'p' 또는 'q'의 경우) 또는 거듭제곱 오름차순(Variable'z^-1' 또는 'q^-1'의 경우)으로 정렬된 다항식 계수로 구성된 행 벡터.

  • MIMO 전달 함수를 지정하는 행 벡터로 구성된 Ny×Nu 셀형 배열. 여기서 Ny는 출력의 개수이고 Nu는 입력의 개수입니다. 셀형 배열의 각 요소는 지정된 입력/출력 쌍에 대한 분자 계수를 지정합니다. NumeratorDenominator를 모두 셀형 배열로 지정할 경우 둘은 동일한 차원을 가져야 합니다.

Numerator의 계수는 실수 값 또는 복소수 값일 수 있습니다.

분모 계수로, 다음과 같이 지정됩니다.

  • 거듭제곱 내림차순(Variable's', 'z', 'p' 또는 'q'의 경우) 또는 거듭제곱 오름차순(Variable'z^-1' 또는 'q^-1'의 경우)으로 정렬된 다항식 계수로 구성된 행 벡터.

  • MIMO 전달 함수를 지정하는 행 벡터로 구성된 Ny×Nu 셀형 배열. 여기서 Ny는 출력의 개수이고 Nu는 입력의 개수입니다. 셀형 배열의 각 요소는 지정된 입력/출력 쌍에 대한 분자 계수를 지정합니다. NumeratorDenominator를 모두 셀형 배열로 지정할 경우 둘은 동일한 차원을 가져야 합니다.

MIMO 전달 함수의 모든 SISO 항목이 동일한 분모를 가질 경우 Denominator는 행 벡터로 지정하고 Numerator는 셀형 배열로 지정할 수 있습니다.

Denominator의 계수는 실수 값 또는 복소수 값일 수 있습니다.

전달 함수 표시 변수로, 다음 중 하나로 지정됩니다.

  • 's' — 연속시간 모델의 디폴트 값

  • 'z' — 이산시간 모델의 디폴트 값

  • 'p''s'와 동일

  • 'q''z'와 동일

  • 'z^-1''z'의 역수

  • 'q^-1''z^-1'과 동일

Variable의 값은 표시에 반영되며, 이산시간 모델에 대한 NumeratorDenominator 계수 벡터의 해석에도 영향을 미칩니다.

  • Variable's', 'z', 'p' 또는 'q'의 경우 계수는 변수의 거듭제곱 내림차순으로 정렬됩니다. 예를 들어 행 벡터 [ak ... a1 a0]가 있다고 가정하겠습니다. 다항식 순서는 akzk+...+a1z+a0로 지정됩니다.

  • Variable'z^-1' 또는 'q^-1'의 경우 계수는 변수의 거듭제곱 오름차순으로 정렬됩니다. 예를 들어 행 벡터 [b0 b1 ... bk]가 있다고 가정하겠습니다. 다항식 순서는 b0+b1z1+...+bkzk로 지정됩니다.

예제는 이산시간 전달 함수에서 다항식 순서 지정하기 항목, 유리식을 사용한 전달 함수 모델 항목, 유리식을 사용한 이산시간 전달 함수 모델 항목을 참조하십시오.

전송 지연으로, 다음 중 하나로 지정됩니다.

  • 스칼라 — SISO 시스템에 대한 전송 지연을 지정하거나 MIMO 시스템의 모든 입력/출력 쌍에 대해 동일한 전송 지연을 지정합니다.

  • Ny×Nu 배열 — MIMO 시스템의 각 입력/출력 쌍에 대해 개별적인 전송 지연을 지정합니다. 여기서 Ny는 출력의 개수이고 Nu는 입력의 개수입니다.

연속시간 시스템의 경우 TimeUnit 속성으로 지정된 시간 단위로 전송 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts의 정수 배로 전송 지연을 지정합니다.

각 입력 채널에 대한 입력 지연으로, 다음 중 하나로 지정됩니다.

  • 스칼라 — SISO 시스템에 대한 입력 지연을 지정하거나 다중 입력 시스템의 모든 입력에 대해 동일한 지연을 지정합니다.

  • Nu×1 벡터 — 다중 입력 시스템의 입력에 대해 개별적인 입력 지연을 지정합니다. 여기서 Nu는 입력의 개수입니다.

연속시간 시스템의 경우 TimeUnit 속성으로 지정된 시간 단위로 입력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts의 정수 배로 입력 지연을 지정합니다.

자세한 내용은 선형 시스템의 시간 지연 항목을 참조하십시오.

각 출력 채널에 대한 출력 지연으로, 다음 중 하나로 지정됩니다.

  • 스칼라 — SISO 시스템에 대한 출력 지연을 지정하거나 다중 출력 시스템의 모든 출력에 대해 동일한 지연을 지정합니다.

  • Ny×1 벡터 — 다중 출력 시스템의 출력에 대해 개별적인 출력 지연을 지정합니다. 여기서 Ny는 출력의 개수입니다.

연속시간 시스템의 경우 TimeUnit 속성으로 지정된 시간 단위로 출력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts의 정수 배로 출력 지연을 지정합니다.

자세한 내용은 선형 시스템의 시간 지연 항목을 참조하십시오.

샘플 시간으로, 다음으로 지정됩니다.

  • 연속시간 시스템의 경우 0.

  • 이산시간 시스템의 샘플링 주기를 나타내는 양의 스칼라. TsTimeUnit 속성으로 지정된 시간 단위로 지정합니다.

  • 샘플 시간이 지정되지 않은 이산시간 시스템의 경우 -1.

참고

Ts를 변경해도 모델이 이산화되거나 리샘플링되지 않습니다. 연속시간 표현과 이산시간 표현 간에 변환하려면 c2dd2c를 사용하십시오. 이산시간 시스템의 샘플 시간을 변경하려면 d2d를 사용하십시오.

시간 변수 단위로, 다음 중 하나로 지정됩니다.

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

TimeUnit을 변경해도 다른 속성에 영향을 미치지 않으나 전체적인 시스템 동작이 변경됩니다. 시스템 동작을 수정하지 않고 시간 단위 간 변환을 수행하려면 chgTimeUnit을 사용하십시오.

입력 채널 이름으로, 다음 중 하나로 지정됩니다.

  • 단일 입력 모델의 경우 문자형 벡터.

  • 다중 입력 모델의 경우 문자형 벡터로 구성된 셀형 배열.

  • 입력 채널에 대해 지정된 이름이 없는 경우 ''.

또는 자동 벡터 확장을 사용하여 다중 입력 모델에 입력 이름을 할당할 수 있습니다. 예를 들어, sys가 2-입력 모델인 경우 다음을 입력합니다.

sys.InputName = 'controls';

입력 이름이 자동으로 {'controls(1)';'controls(2)'}로 확장됩니다.

축약 표기법 u를 사용하여 InputName 속성을 참조할 수 있습니다. 예를 들어, sys.usys.InputName과 동일합니다.

InputName을 사용하여 다음을 수행할 수 있습니다.

  • 모델 표시 화면과 플롯에서 채널 식별.

  • MIMO 시스템의 서브시스템 추출.

  • 모델 상호 연결 시 연결 점 지정.

입력 채널 단위로, 다음 중 하나로 지정됩니다.

  • 단일 입력 모델의 경우 문자형 벡터.

  • 다중 입력 모델의 경우 문자형 벡터로 구성된 셀형 배열.

  • 입력 채널에 대해 지정된 단위가 없는 경우 ''.

InputUnit을 사용하여 입력 신호 단위를 지정합니다. InputUnit은 시스템 동작에 영향을 미치지 않습니다.

입력 채널 그룹으로, 구조체로 지정됩니다. InputGroup을 사용하여 MIMO 시스템의 입력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. InputGroup의 필드 이름은 그룹 이름이고 필드 값은 각 그룹의 입력 채널입니다. 예를 들어 다음을 입력하여 각각 입력 채널 1, 2와 입력 채널 3, 5를 포함하는 controlsnoise라는 입력 그룹을 만듭니다.

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

이때 다음을 사용하여 controls 입력에서 모든 출력으로 서브시스템을 추출할 수 있습니다.

sys(:,'controls')

기본적으로 InputGroup은 필드가 없는 구조체입니다.

출력 채널 이름으로, 다음 중 하나로 지정됩니다.

  • 단일 출력 모델의 경우 문자형 벡터.

  • 다중 출력 모델의 경우 문자형 벡터로 구성된 셀형 배열.

  • 출력 채널에 대해 지정된 이름이 없는 경우 ''.

또는 자동 벡터 확장을 사용하여 다중 출력 모델에 출력 이름을 할당할 수 있습니다. 예를 들어, sys가 2-출력 모델인 경우 다음을 입력합니다.

sys.OutputName = 'measurements';

출력 이름이 자동으로 {'measurements(1)';'measurements(2)'}로 확장됩니다.

축약 표기법 y를 사용하여 OutputName 속성을 참조할 수도 있습니다. 예를 들어, sys.ysys.OutputName과 동일합니다.

OutputName을 사용하여 다음을 수행할 수 있습니다.

  • 모델 표시 화면과 플롯에서 채널 식별.

  • MIMO 시스템의 서브시스템 추출.

  • 모델 상호 연결 시 연결 점 지정.

출력 채널 단위로, 다음 중 하나로 지정됩니다.

  • 단일 출력 모델의 경우 문자형 벡터.

  • 다중 출력 모델의 경우 문자형 벡터로 구성된 셀형 배열.

  • 출력 채널에 대해 지정된 단위가 없는 경우 ''.

OutputUnit을 사용하여 출력 신호 단위를 지정합니다. OutputUnit은 시스템 동작에 영향을 미치지 않습니다.

출력 채널 그룹으로, 구조체로 지정됩니다. OutputGroup을 사용하여 MIMO 시스템의 출력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. OutputGroup의 필드 이름은 그룹 이름이고 필드 값은 각 그룹의 출력 채널입니다. 예를 들어, 각각 출력 채널 1과 출력 채널 3, 5를 포함하는 temperaturemeasurement라는 출력 그룹을 만듭니다.

sys.OutputGroup.temperature = [1];
sys.OutputGroup.measurement = [3 5];

이때 다음을 사용하여 모든 입력에서 measurement 출력으로 서브시스템을 추출할 수 있습니다.

sys('measurement',:)

기본적으로 OutputGroup은 필드가 없는 구조체입니다.

시스템 이름으로, 문자형 벡터로 지정됩니다. (예: 'system_1'.)

사용자가 시스템에 연동하려는 사용자 지정 텍스트로, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 예를 들면 'System is MIMO'와 같습니다.

사용자가 시스템에 연동하려는 사용자 지정 데이터로, 어떤 MATLAB 데이터형으로든 지정 가능합니다.

모델 배열의 샘플링 그리드로, 구조체형 배열로 지정됩니다.

SamplingGrid를 사용하여 IDLTI(식별된 선형 시불변) 모델 배열을 비롯한 모델 배열의 각 모델에 대응되는 변수 값을 추적합니다.

구조체의 필드 이름을 샘플링 변수의 이름으로 설정합니다. 필드 값을 배열의 각 모델에 대응되는 샘플링된 변수 값으로 설정하십시오. 모든 샘플링 변수는 숫자형 스칼라여야 하며, 샘플링된 값으로 구성된 모든 배열은 모델 배열의 차원과 일치해야 합니다.

예를 들어, 시간 t = 0:10에 선형 시변 시스템의 스냅샷을 찍어서 선형 모델로 구성된 11×1 배열 sysarr을 만들 수 있습니다. 다음 코드는 시간 샘플을 선형 모델과 함께 저장합니다.

 sysarr.SamplingGrid = struct('time',0:10)

마찬가지로, 2개의 변수 zetaw를 독립적으로 샘플링하여 6×9 모델 배열 M을 만들 수 있습니다. 다음 코드는 (zeta,w) 값을 M에 매핑합니다.

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
M.SamplingGrid = struct('zeta',zeta,'w',w)

M을 표시해 보면 배열의 각 요소가 대응되는 zeta 값과 w 값을 포함하는 것을 알 수 있습니다.

M
M(:,:,1,1) [zeta=0.3, w=5] =
 
        25
  --------------
  s^2 + 3 s + 25
 

M(:,:,2,1) [zeta=0.35, w=5] =
 
         25
  ----------------
  s^2 + 3.5 s + 25
 
...

여러 파라미터 값 또는 동작점에서 Simulink® 모델을 선형화하여 생성된 모델 배열의 경우, SamplingGrid는 자동으로 배열의 각 요소에 대응되는 변수 값으로 채워집니다. 예를 들어, Simulink Control Design™ 명령 linearize (Simulink Control Design)slLinearizer (Simulink Control Design)는 자동으로 SamplingGrid를 채웁니다.

기본적으로 SamplingGrid는 필드가 없는 구조체입니다.

객체 함수

다음 목록은 일부이기는 하나 tf 모델과 함께 사용할 수 있는 대표적인 함수들입니다. 일반적으로, 동적 시스템 모델에 적용되는 모든 함수는 tf 객체에 적용됩니다.

모두 확장

step동적 시스템의 계단 응답
impulse동적 시스템의 임펄스 응답 플롯, 임펄스 응답 데이터
lsim임의 입력에 대한 동적 시스템의 시간 응답 시뮬레이션 데이터 계산
bode동적 시스템의 보드 주파수 응답
nyquist동적 시스템의 나이퀴스트 응답
nichols동적 시스템의 니콜스 응답
bandwidth주파수 응답 대역폭
pole동적 시스템의 극점
zeroSISO 동적 시스템의 영점 및 이득
pzplotPlot pole-zero map of dynamic system
margin이득 여유, 위상 여유 및 교차 주파수
zpk영점-극점-이득 모델
ss상태공간 모델
c2d연속시간 모델을 이산시간 모델로 변환
d2c이산시간 모델을 연속시간 모델로 변환
d2dResample discrete-time model
feedback여러 모델의 피드백 연결
connectBlock diagram interconnections of dynamic systems
series두 모델의 직렬 연결
parallel두 모델의 병렬 연결
pidtune선형 플랜트 모델에 대한 PID 조정 알고리즘
rlocus동적 시스템의 근궤적
lqr선형-2차 조절기(LQR) 설계
lqg선형-2차-가우스(LQG) 설계
lqi선형-2차-적분 제어
kalman상태 추정을 위한 칼만 필터 설계

예제

모두 축소

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

sys(s)=12s2+3s+4.

분자와 분모 계수를 s의 거듭제곱 내림차순으로 지정하고 전달 함수 모델을 만듭니다.

numerator = 1;
denominator = [2,3,4];
sys = tf(numerator,denominator)
sys =
 
         1
  ---------------
  2 s^2 + 3 s + 4
 
Continuous-time transfer function.
Model Properties

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

sys(z)=2z4z3+3z-1.

분자와 분모 계수를 z의 거듭제곱 내림차순으로 지정하고 샘플 시간을 0.1초로 지정합니다. 이산시간 전달 함수 모델을 만듭니다.

numerator = [2,0];
denominator = [4,0,3,-1];
ts = 0.1;
sys = tf(numerator,denominator,ts)
sys =
 
        2 z
  ---------------
  4 z^3 + 3 z - 1
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

이 예제에서는 알려진 고유 주파수와 감쇠비를 갖는 2차 시스템을 나타내는 전달 함수 모델을 살펴봅니다.

감쇠비 ζ와 고유 주파수 ω0에 대해 표현된 2차 시스템의 전달 함수는 다음과 같습니다.

sys(s)=ω02s2+2ζω0s+ω02.

감쇠비 ζ = 0.25이고 고유 주파수 ω0 = 3 rad/s라고 가정하고 2차 전달 함수를 만듭니다.

zeta = 0.25;
w0 = 3;
numerator = w0^2;
denominator = [1,2*zeta*w0,w0^2];
sys = tf(numerator,denominator)
sys =
 
         9
  ---------------
  s^2 + 1.5 s + 9
 
Continuous-time transfer function.
Model Properties

계단 입력에 대한 이 전달 함수의 응답을 검토합니다.

stepplot(sys)

MATLAB figure

이 플롯에서 감쇠비가 낮은 2차 시스템에서 예상되는 링다운을 볼 수 있습니다.

이산시간 다중 입력 다중 출력 모델의 전달 함수를 만듭니다.

sys(z)=[1z+0.3zz+0.3-z+2z+0.33z+0.3]

샘플 시간은 ts = 0.2초입니다.

분자 계수를 2×2 행렬로 지정합니다.

numerators = {1 [1 0];[-1 2] 3};

공통 분모의 계수를 행 벡터로 지정합니다.

denominator = [1 0.3];

이산시간 MIMO 전달 함수 모델을 만듭니다.

ts = 0.2;
sys = tf(numerators,denominator,ts)
sys =
 
  From input 1 to output...
          1
   1:  -------
       z + 0.3
 
       -z + 2
   2:  -------
       z + 0.3
 
  From input 2 to output...
          z
   1:  -------
       z + 0.3
 
          3
   2:  -------
       z + 0.3
 
Sample time: 0.2 seconds
Discrete-time transfer function.
Model Properties

MIMO 전달 함수를 만드는 방법에 대한 자세한 내용은 MIMO 전달 함수 항목을 참조하십시오.

이 예제에서는 SISO 전달 함수 모델을 결합하여 MIMO 전달 함수 모델을 만듭니다. 다음과 같이 1-입력 2-출력 전달 함수가 있다고 가정하겠습니다.

sys(s)=[s-1s+1s+2s2+4s+5].

SISO 항목을 결합하여 MIMO 전달 함수 모델을 지정합니다.

sys1 = tf([1 -1],[1 1]);		
sys2 = tf([1 2],[1 4 5]);
sys = [sys1;sys2]
sys =
 
  From input to output...
       s - 1
   1:  -----
       s + 1
 
           s + 2
   2:  -------------
       s^2 + 4 s + 5
 
Continuous-time transfer function.
Model Properties

MIMO 전달 함수를 만드는 방법에 대한 자세한 내용은 MIMO 전달 함수 항목을 참조하십시오.

이 예제에서는 유리식을 사용하여 연속시간 전달 함수 모델을 만듭니다. 유리식을 사용하는 것이 분자와 분모의 다항식 계수를 지정하는 것보다 쉽고 직관적인 경우가 있습니다.

다음과 같은 시스템이 있다고 가정하겠습니다.

sys(s)=ss2+2s+10.

전달 함수 모델을 만들려면 먼저 stf 객체로 지정하십시오.

s = tf('s')
s =
 
  s
 
Continuous-time transfer function.
Model Properties

유리식에 s를 사용하여 전달 함수 모델을 만듭니다.

sys = s/(s^2 + 2*s + 10)
sys =
 
        s
  --------------
  s^2 + 2 s + 10
 
Continuous-time transfer function.
Model Properties

이 예제에서는 유리식을 사용하여 이산시간 전달 함수 모델을 만듭니다. 유리식을 사용하는 것이 다항식 계수를 지정하는 것보다 쉽고 직관적인 경우가 있습니다.

다음과 같은 시스템이 있다고 가정하겠습니다.

sys(z)=z-1z2-1.85z+0.9.Discrete-time transfer function

전달 함수 모델을 만들려면 먼저 ztf 객체와 샘플 시간 Ts로 지정하십시오.

ts = 0.1;
z = tf('z',ts)
z =
 
  z
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

유리식에 z를 사용하여 전달 함수 모델을 만듭니다.

sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys =
 
        z - 1
  ------------------
  z^2 - 1.85 z + 0.9
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

이 예제에서는 다른 전달 함수 모델에서 상속한 속성을 갖는 전달 함수 모델을 만듭니다. 다음과 같은 2개의 전달 함수가 있다고 가정하겠습니다.

sys1(s)=2ss2+8sandsys2(s)=s-17s4+2s3+9.

이 예제에서는 TimeUnitInputDelay 속성을 'minutes'로 설정한 상태로 sys1을 만듭니다.

numerator1 = [2,0];
denominator1 = [1,8,0];
sys1 = tf(numerator1,denominator1,'TimeUnit','minutes','InputUnit','minutes')
sys1 =
 
     2 s
  ---------
  s^2 + 8 s
 
Continuous-time transfer function.
Model Properties
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1×2 cell
    {'minutes'}    {'minutes'}

sys1에서 상속한 속성으로 두 번째 전달 함수 모델을 만듭니다.

numerator2 = [1,-1];
denominator2 = [7,2,0,0,9];
sys2 = tf(numerator2,denominator2,sys1)
sys2 =
 
        s - 1
  -----------------
  7 s^4 + 2 s^3 + 9
 
Continuous-time transfer function.
Model Properties
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1×2 cell
    {'minutes'}    {'minutes'}

전달 함수 모델 sys2sys1과 동일한 속성을 가짐을 알 수 있습니다.

for 루프를 사용하여 전달 함수 모델로 구성된 배열을 지정할 수 있습니다.

먼저 전달 함수 배열에 0을 사전할당합니다.

sys = tf(zeros(1,1,3));

처음 2개의 인덱스는 모델의 출력 개수와 입력 개수를 나타내고, 세 번째 인덱스는 배열에 있는 모델의 개수를 나타냅니다.

for 루프에서 유리식을 사용하여 전달 함수 모델 배열을 만듭니다.

s = tf('s');                                                  
for k = 1:3                                                             
    sys(:,:,k) = k/(s^2+s+k);                                          
end
sys
sys(:,:,1,1) =
 
       1
  -----------
  s^2 + s + 1
 

sys(:,:,2,1) =
 
       2
  -----------
  s^2 + s + 2
 

sys(:,:,3,1) =
 
       3
  -----------
  s^2 + s + 3
 
3x1 array of continuous-time transfer functions.
Model Properties

이 예제에서는 다음 상태공간 모델의 전달 함수를 계산합니다.

A=[-2-11-2],B=[112-1],C=[10],D=[01].

상태공간 행렬을 사용하여 상태공간 모델을 만듭니다.

A = [-2 -1;1 -2];
B = [1 1;2 -1];
C = [1 0];
D = [0 1];
ltiSys = ss(A,B,C,D);

상태공간 모델 ltiSys를 전달 함수로 변환합니다.

sys = tf(ltiSys)
sys =
 
  From input 1 to output:
        s
  -------------
  s^2 + 4 s + 5
 
  From input 2 to output:
  s^2 + 5 s + 8
  -------------
  s^2 + 4 s + 5
 
Continuous-time transfer function.
Model Properties

이 예제에서는 식별된 다항식 모델의 측정된 성분과 잡음 성분을 2개의 개별적인 전달 함수로 추출합니다.

identifiedModel.mat에서 Box-Jenkins 다항식 모델 ltiSys를 불러옵니다.

load('identifiedModel.mat','ltiSys');

ltiSysy(t)=BFu(t)+CDe(t) 형식의 식별된 이산시간 모델입니다. 여기서 BF는 측정된 성분을 나타내고 CD는 잡음 성분을 나타냅니다.

측정된 성분과 잡음 성분을 전달 함수로 추출합니다.

sysMeas = tf(ltiSys,'measured') 
sysMeas =
 
  From input "u1" to output "y1":
            -0.1426 z^-1 + 0.1958 z^-2
  z^(-2) * ----------------------------
           1 - 1.575 z^-1 + 0.6115 z^-2
 
Sample time: 0.04 seconds
Discrete-time transfer function.
Model Properties
sysNoise = tf(ltiSys,'noise')
sysNoise =
 
  From input "v@y1" to output "y1":
           0.04556 + 0.03301 z^-1
  ----------------------------------------
  1 - 1.026 z^-1 + 0.26 z^-2 - 0.1949 z^-3
 
Input groups:        
    Name     Channels
    Noise       1    
                     
Sample time: 0.04 seconds
Discrete-time transfer function.
Model Properties

측정된 성분은 플랜트 모델로 기능할 수 있고, 잡음 성분은 제어 시스템 설계를 위한 외란 모델로 사용할 수 있습니다.

전달 함수 모델 객체는 모델이 나타내는 바를 확인하는 데 도움이 되는 모델 데이터를 포함합니다. 예를 들어, 모델의 입력과 출력에 이름을 할당할 수 있습니다.

다음과 같은 연속시간 MIMO 전달 함수 모델이 있다고 가정하겠습니다.

sys(s)=[s+1s2+2s+21s]

이 모델에는 1개의 입력 - Current와 2개의 출력 - Torque 및 Angular Velocity가 있습니다.

먼저 모델의 분자 계수와 분모 계수를 지정합니다.

numerators = {[1 1] ; 1};
denominators = {[1 2 2] ; [1 0]};

입력 이름과 출력 이름을 지정하여 전달 함수 모델을 만듭니다.

sys = tf(numerators,denominators,'InputName','Current',...
        'OutputName',{'Torque' 'Angular Velocity'})
sys =
 
  From input "Current" to output...
                s + 1
   Torque:  -------------
            s^2 + 2 s + 2
 
                      1
   Angular Velocity:  -
                      s
 
Continuous-time transfer function.
Model Properties

이 예제에서는 'Variable' 속성을 사용하여 이산시간 전달 함수 모델의 다항식 순서를 지정합니다.

샘플 시간이 0.1초인 다음과 같은 이산시간 전달 함수가 있다고 가정하겠습니다.

sys1(z)=z2z2+2z+3sys2(z-1)=11+2z-1+3z-2.

z 계수를 지정하여 첫 번째 이산시간 전달 함수를 만듭니다.

numerator = [1,0,0];
denominator = [1,2,3];
ts = 0.1;
sys1 = tf(numerator,denominator,ts)
sys1 =
 
       z^2
  -------------
  z^2 + 2 z + 3
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

sys1의 계수는 z의 거듭제곱 내림차순으로 정렬됩니다.

tf는 'Variable' 속성의 값에 따라 규칙을 전환합니다. sys2sys1의 역 전달 함수 모델이므로 'Variable'을 'z^-1'로 지정하고 동일한 분자 및 분모 계수를 사용합니다.

sys2 = tf(numerator,denominator,ts,'Variable','z^-1')
sys2 =
 
           1
  -------------------
  1 + 2 z^-1 + 3 z^-2
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

sys2의 계수는 이제 z^-1의 거듭제곱 오름차순으로 정렬됩니다.

다른 규칙이 필요한 경우 'Variable' 속성을 사용하여 전달 함수 모델의 다항식 순서를 지정할 수 있습니다.

이 예제에서는 하나의 조정 가능한 파라미터 a를 갖는 저역통과 필터를 만듭니다.

F=as+a

tunableTF 블록의 분자 계수와 분모 계수는 독립적이므로 tunableTF를 사용하여 F를 표현할 수 없습니다. 그 대신 조정 가능한 실수 parameter 객체 realp를 사용하여 F를 생성하십시오.

초기값 10을 사용하여 조정 가능한 실수 파라미터를 만듭니다.

a = realp('a',10)
a = 
       Name: 'a'
      Value: 10
    Minimum: -Inf
    Maximum: Inf
       Free: 1

Real scalar parameter.

tf를 사용하여 조정 가능한 저역통과 필터 F를 만듭니다.

numerator = a;
denominator = [1,a];
F = tf(numerator,denominator)
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 1 states, and the following blocks:
  a: Scalar parameter, 2 occurrences.
Model Properties

Type "ss(F)" to see the current value and "F.Blocks" to interact with the blocks.

FBlocks 속성에 조정 가능한 파라미터 a가 있는 genss 객체입니다. F를 다른 조정 가능한 모델 또는 수치 모델과 연결하여 더 복잡한 제어 시스템 모델을 만들 수 있습니다. 예제는 Control System with Tunable Components 항목을 참조하십시오.

이 예제에서는 정적 이득 MIMO 전달 함수 모델을 만듭니다.

다음과 같은 2-입력 2-출력 정적 이득 행렬 m을 만듭니다.

m=[2435]

이득 행렬을 지정하고 정적 이득 전달 함수 모델을 만듭니다.

m = [2,4;...
    3,5];
sys1 = tf(m)
sys1 =
 
  From input 1 to output...
   1:  2
 
   2:  3
 
  From input 2 to output...
   1:  4
 
   2:  5
 
Static gain.
Model Properties

위에서 얻은 정적 이득 전달 함수 모델 sys1을 사용하여 다른 전달 함수 모델에 종속 연결할 수 있습니다.

이 예제에서는 또 다른 2-입력 2-출력 이산 전달 함수 모델을 만들고 series 함수를 사용하여 두 모델을 연결합니다.

numerators = {1,[1,0];[-1,2],3};
denominator = [1,0.3];
ts = 0.2;
sys2 = tf(numerators,denominator,ts)
sys2 =
 
  From input 1 to output...
          1
   1:  -------
       z + 0.3
 
       -z + 2
   2:  -------
       z + 0.3
 
  From input 2 to output...
          z
   1:  -------
       z + 0.3
 
          3
   2:  -------
       z + 0.3
 
Sample time: 0.2 seconds
Discrete-time transfer function.
Model Properties
sys = series(sys1,sys2)
sys =
 
  From input 1 to output...
       3 z^2 + 2.9 z + 0.6
   1:  -------------------
       z^2 + 0.6 z + 0.09
 
       -2 z^2 + 12.4 z + 3.9
   2:  ---------------------
        z^2 + 0.6 z + 0.09
 
  From input 2 to output...
       5 z^2 + 5.5 z + 1.2
   1:  -------------------
       z^2 + 0.6 z + 0.09
 
       -4 z^2 + 21.8 z + 6.9
   2:  ---------------------
        z^2 + 0.6 z + 0.09
 
Sample time: 0.2 seconds
Discrete-time transfer function.
Model Properties

R2025a 이후

이 예제는 희소 상태공간 모델의 절단된 전달 함수 모델을 얻는 방법을 보여줍니다. 이 예제에서는 원형 원통형 막대의 열 분포에 대한 열 모델을 선형화하여 얻은 희소 모델을 사용합니다.

모델 데이터를 불러옵니다.

load cylindricalRod.mat
sys = sparss(A,B,C,D,E);
w = logspace(-7,-1,20);
size(sys)
Sparse state-space model with 3 outputs, 1 inputs, and 7522 states.

모델의 주파수 응답을 분석합니다.

sigmaplot(sys,w)

MATLAB figure

절단된 근사를 구하기 위해 tf를 사용하고 관심 주파수 대역을 지정합니다. 이 모델에서는 0rad/s ~ 0.01rad/s 주파수 범위를 사용하여 저차 근사를 구할 수 있습니다.

tsys = tf(sys,Focus=[0 1e-2],Display="off");

주파수 응답을 비교합니다.

sigmaplot(sys,tsys,w)

MATLAB figure

이 열 모델은 0.001rad/s를 넘어서면 매우 급격한 롤오프를 보입니다. 기본적으로 tf를 사용하여 얻은 축소 모델은 이 롤오프와 잘 일치되지 않습니다. 이를 완화하려면 tfRollOff 인수를 사용하여 관심 주파수 대역을 벗어날 경우에 대한 최소 롤오프 값을 지정할 수 있습니다. 롤오프 기울기 값을 -45로 지정합니다. 이 값은 최소 -900db/decade의 레이트에 해당합니다.

tsys2 = tf(sys,Focus=[0 1e-2],RollOff=-45,Display="off");
sigmaplot(sys,tsys2,w)

MATLAB figure

이제 축소된 모델이 롤오프 값을 훨씬 잘 근사합니다. 하지만 이 예제에서 tf를 사용하여 롤오프 기울기를 재조정하려면 영점과 극점을 다시 계산해야 합니다. 이 경우 대규모 모델이면 계산 비용이 많이 들 수 있습니다. 대안으로, reducespec의 영점-극점 절단 방법을 사용할 수 있으며, 소프트웨어가 극점과 영점을 계산한 후 추가 계산 비용 없이 롤오프를 조정할 수 있습니다. 예제는 Zero-Pole Truncation of Thermal Model 항목을 참조하십시오.

제한 사항

  • 전달 함수 모델은 수치 계산에 적합하지 않습니다. 생성한 후에는 다른 모델과 결합하거나 모델 변환을 수행하기 전에 상태공간 형식으로 변환하십시오. 그런 다음 결과로 생성되는 모델을 검토를 위해 다시 전달 함수 형식으로 변환할 수 있습니다.

  • 식별된 비선형 모델은 tf를 사용하여 전달 함수 모델로 직접 변환할 수 없습니다. 전달 함수 모델을 얻으려면 다음을 수행하십시오.

    1. 식별된 비선형 모델을 linapp (System Identification Toolbox), idnlarx/linearize (System Identification Toolbox) 또는 idnlhw/linearize (System Identification Toolbox)를 사용하여 식별된 LTI 모델로 변환합니다.

    2. 그런 다음 결과로 생성되는 모델을 tf를 사용하여 전달 함수 모델로 변환합니다.

알고리즘

희소 모델을 변환하기 위해, tf는 지정된 주파수 대역에서 극점과 영점을 계산하기 위한 역거듭제곱 반복에 크릴로프-슈어(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.

버전 내역

R2006a 이전에 개발됨

모두 확장