Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

zpk

영점-극점-이득 모델 만들기, 영점-극점-이득 모델로 변환

구문

sys = zpk(Z,P,K)
sys = zpk(Z,p,k,Ts)
sys = zpk(M)
sys = zpk(Z,p,k,ltisys)
s = zpk('s')
z = zpk('z',Ts)
zsys = zpk(sys)
zsys = zpk(sys, 'measured')
zsys = zpk(sys, 'noise')
zsys = zpk(sys, 'augmented')

설명

zpk를 사용하여 영점-극점-이득 모델(zpk 모델 객체)을 만들거나 동적 시스템을 영점-극점-이득 형식으로 변환합니다.

영점-극점-이득 모델 만들기

sys = zpk(Z,P,K) 는 영점 Z, 극점 P, 이득 K를 갖는 연속시간 영점-극점-이득 모델을 만듭니다. 출력 sys는 모델 데이터를 저장하는 zpk 모델 객체입니다.

SISO의 경우, ZP는 실수 또는 복소수 값의 영점 및 극점으로 구성된 벡터이고 K는 실수 또는 복소수 값의 스칼라 이득입니다.

h(s)=k(sz(1))(sz(2))(sz(m))(sp(1))(sp(2))(sp(n))

영점 또는 극점이 없는 시스템의 경우 Z 또는 p[]로 설정하십시오. 이들 두 벡터는 길이가 같지 않아도 되며, 모델이 적정하지 않아도 됩니다(즉, 극점이 더 많지 않아도 됨).

MIMO 영점-극점-이득 모델을 만들려면 이 모델의 각 SISO 항목의 영점, 극점, 이득을 지정하십시오. 이 경우:

  • ZP는 행 개수가 출력의 개수와 같고 열 개수가 입력의 개수와 같은 벡터로 구성된 셀형 배열이고, K는 행 개수가 출력의 개수와 같고 열 개수가 입력의 개수와 같은 행렬입니다.

  • 벡터 Z{i,j}P{i,j}는 입력 j에서 출력 i로의 전달 함수의 영점과 극점을 지정합니다.

  • K(i,j)는 입력 j에서 출력 i로의 전달 함수의 (스칼라) 이득을 지정합니다.

MIMO 예제는 아래를 참조하십시오.

sys = zpk(Z,p,k,Ts) 는 샘플 시간이 Ts(단위: 초)인 이산시간 영점-극점-이득 모델을 만듭니다. 샘플 시간을 지정하지 않은 상태로 두려면 Ts = -1 또는 Ts = []로 설정하십시오. 입력 인수 Z, P, K는 연속시간의 경우와 같습니다.

sys = zpk(M) 은 정적 이득 M을 지정합니다.

sys = zpk(Z,p,k,ltisys) 는 LTI 모델 ltisys에서 상속한 속성(샘플 시간 포함)을 사용하여 영점-극점-이득 모델을 만듭니다.

zpk 모델 객체로 구성된 배열을 만들려면 for 루프를 사용하거나 아니면 ZP에 대해 다차원 셀형 배열을 사용하고 K에 대해 다차원 배열을 사용하십시오.

위에 열거된 모든 구문 뒤에는 속성 이름/속성 값 쌍이 올 수 있습니다.

'PropertyName',PropertyValue

각 쌍은 모델의 특정 속성(예: 입력 이름 또는 입력 지연 시간)을 지정합니다. zpk 모델 객체의 속성에 대한 자세한 내용은 속성 항목을 참조하십시오. 참고로, 다음 명령은

sys = zpk(Z,P,K,'Property1',Value1,...,'PropertyN',ValueN)

다음 명령 시퀀스와 동일한 간략한 방법입니다.

sys = zpk(Z,P,K)
set(sys,'Property1',Value1,...,'PropertyN',ValueN)

s 또는 z의 유리식으로서의 영점-극점-이득 모델

유리식을 사용하여 ZPK 모델을 만들 수도 있습니다. 이렇게 하려면 먼저 다음과 같이 입력하십시오.

  • 라플라스 변수 s의 유리식을 사용하여 ZPK 모델을 지정하려면 s = zpk('s')를 입력합니다.

  • 이산시간 변수 z의 유리식을 사용하여 샘플 시간이 Ts인 ZPK 모델을 지정하려면 z = zpk('z',Ts)를 입력합니다.

이들 변수 중 하나를 지정한 후에는 전달 함수를 변수 s 또는 z의 유리식으로 입력하여 ZPK 모델을 s 또는 z의 유리식으로 직접 지정할 수 있습니다.

영점-극점-이득 형식으로의 변환

zsys = zpk(sys) 는 임의의 LTI 모델 sys를 영점-극점-이득 형식으로 변환합니다. 출력 zsys는 ZPK 객체입니다. 기본적으로 zpk는 상태공간을 영점-극점-이득으로 변환할 때 zero를 사용하여 영점을 계산합니다. 또는 다음을 사용합니다.

zsys = zpk(sys,'inv')

이 구문은 상태공간 모델의 역변환 공식을 사용하여 영점을 계산합니다. 이 알고리즘은 s = 0에서 낮은 이득을 갖는 고차 모델의 경우 속도는 빠르나 정확도가 떨어집니다.

식별된 모델의 변환

식별된 모델은 y(t) = Gu(t) + He(t) 형식의 입력-출력 방정식으로 표현됩니다. 여기서 u(t)는 측정된 입력 채널의 집합이고 e(t)는 잡음 채널을 나타냅니다. Λ= LL'이 잡음 e(t)의 공분산을 나타낸다면 이 방정식은 y(t) = Gu(t) + HLv(t)로 표현할 수도 있습니다. 여기서 cov(v(t)) = I입니다.

zsys = zpk(sys) 또는 zsys = zpk(sys, 'measured')는 식별된 선형 모델의 측정된 구성요소를 ZPK 형식으로 변환합니다. sysidss, idproc, idtf, idpoly 또는 idgrey 유형의 모델입니다. zsysuy 사이의 관계를 나타냅니다.

zsys = zpk(sys, 'noise')는 식별된 선형 모델의 잡음 구성요소를 ZPK 형식으로 변환합니다. 이는 잡음 입력 v(t)와 출력 y_noise = HL v(t) 사이의 관계를 나타냅니다. 잡음 입력 채널은 InputGroup 'Noise'에 속합니다. 잡음 입력 채널의 이름은 v@yname입니다. 여기서 yname은 대응하는 출력 채널의 이름입니다. zsys는 출력 개수만큼의 입력을 갖습니다.

zsys = zpk(sys, 'augmented')는 측정된 동특성과 잡음 동특성을 모두 ZPK 모델로 변환합니다. zsys에는 ny+nu개의 입력이 있습니다. 처음 nu개 입력은 채널 u(t)를 나타내고, 나머지 채널은 잡음 채널 v(t)를 나타냅니다. zsys.InputGroup은 2개의 입력 그룹 'measured''noise'를 포함합니다. zsys.InputGroup.Measured1:nu로 설정되고, zsys.InputGroup.Noisenu+1:nu+ny. zsys로 설정됩니다. zsys는 방정식 y(t) = [G HL] [u; v]를 나타냅니다.

식별된 비선형 모델은 ZPK 시스템으로 변환할 수 없습니다. linearize, linapp과 같은 선형 근사 함수를 사용하십시오.

변수 선택

전달 함수의 경우, 영점-극점-이득 모델을 표시할 때 어느 변수를 사용할지 지정할 수 있습니다. 사용 가능한 선택 사항에는 연속시간 모델의 경우 s(디폴트 값)와 p, 이산시간 모델의 경우 z(디폴트 값), z-1, q-1(z-1과 동일) 또는 q(z와 동일)가 있습니다. 디폴트 값을 재정의하려면 'Variable' 속성을 재할당하십시오. 변수 변경은 영점-극점-이득 모델의 표시에만 영향을 미칩니다.

속성

zpk 객체는 다음과 같은 속성을 갖습니다.

Z

시스템 영점.

Z 속성은 전달 함수 영점(분자 근)을 저장합니다. SISO 모델의 경우, Z는 영점을 포함하는 벡터입니다. 출력이 Ny개이고 입력이 Nu개인 MIMO 모델의 경우, ZNyxNu 셀형 배열이며 배열의 요소는 각 입력/출력 쌍에 대한 영점으로 구성된 벡터입니다.

P

시스템 극점.

P 속성은 전달 함수 극점(분모 근)을 저장합니다. SISO 모델의 경우, P는 극점을 포함하는 벡터입니다. 출력이 Ny개이고 입력이 Nu개인 MIMO 모델의 경우, PNyxNu 셀형 배열이며 배열의 요소는 각 입력/출력 쌍에 대한 극점으로 구성된 벡터입니다.

K

시스템 이득.

K 속성은 전달 함수 이득을 저장합니다. SISO 모델의 경우, K는 스칼라 값입니다. 출력이 Ny개이고 입력이 Nu개인 MIMO 모델의 경우, K는 각 입력/출력 쌍에 대한 이득을 저장하는 NyxNu 행렬입니다.

DisplayFormat

분자 및 분모 다항식 분해의 표시 형태를 지정합니다.

분자 및 분모 다항식은 각각 1차 인수와 2차 인수의 곱으로 표시됩니다. DisplayFormat은 이러한 인수의 표시를 제어합니다. DisplayFormat은 다음과 같은 값을 가질 수 있습니다.

  • 'roots'(디폴트 값) — 다항식 근의 위치에 대해 인수를 표시합니다.

  • 'frequency' — 근 고유 주파수 ω0과 감쇠비 ζ에 대해 인수를 표시합니다.

    Variable'z^-1' 또는 'q^-1'을 갖는 이산시간 모델에서는 'frequency' 표시 형식을 사용할 수 없습니다.

  • 'time constant' — 근 시정수 τ와 감쇠비 ζ에 대해 인수를 표시합니다.

    Variable'z^-1' 또는 'q^-1'을 갖는 이산시간 모델에서는 'time constant' 표시 형식을 사용할 수 없습니다.

연속시간 모델의 경우, 다음 표에 각 표시 형식에서 다항식 인수가 어떻게 기술되는지 나와 있습니다.

DisplayName1차 인수(실근 R)2차 인수(복소수 근 쌍 R = a±jb)
'roots'(s – R)(s2 – αs + β), 여기서 α = 2a, β = a2 + b2
'frequency'(1 – s/ω0), 여기서 ω0 = R1 – 2ζ(s/ω0) + (s/ω0)2, 여기서 ω02 = a2 + b2, ζ = a/ω0
'time constant'(1 – τs), 여기서 τ = 1/R1 – 2ζ(τs) + (τs)2, 여기서 τ = 1/ω0, ζ = aτ

이산시간 모델의 경우, 다항식 인수는 다음과 같은 변수 치환을 거쳐 연속시간에서와 마찬가지로 기술됩니다.

sw=z1Ts;RR1Ts,

여기서 Ts는 샘플 시간입니다. 이산시간에서는 |z–1| ≪ Ts(ω0 ≪ π/Ts  = 나이퀴스트 주파수)일 때 τ와 ω0은 그에 상응하는 연속시간 근의 시정수 및 고유 주파수와 거의 일치합니다.

디폴트 값: 'roots'

Variable

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

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

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

  • 'p''s'와 동일

  • 'q''z'와 동일

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

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

Variable의 값은 zpk 모델의 표시에만 영향을 미칩니다.

디폴트 값: 's'

IODelay

전송 지연. IODelay는 각 입력/출력 쌍에 대해 개별적인 전송 지연을 지정하는 숫자형 배열입니다.

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

출력이 Ny개이고 입력이 Nu개인 MIMO 시스템의 경우 IODelayNyxNu 배열로 설정합니다. 이 배열의 각 요소는 대응되는 입력/출력 쌍에 대한 전송 지연을 나타내는 숫자형 값입니다. IODelay를 스칼라 값으로 설정하여 모든 입력/출력 쌍에 동일한 지연을 적용할 수도 있습니다.

디폴트 값: 모든 입력/출력 쌍의 경우 0

InputDelay

각 입력 채널의 입력 지연으로, 스칼라 값 또는 숫자형 벡터로 지정됩니다. 연속시간 시스템의 경우 TimeUnit 속성에 저장된 시간 단위로 입력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts의 정수 배로 입력 지연을 지정합니다. 예를 들어, InputDelay = 3은 3개 샘플 시간만큼의 지연을 의미합니다.

입력이 Nu개인 시스템의 경우 InputDelayNux1 벡터로 설정합니다. 이 벡터의 각 요소는 대응되는 입력 채널에 대한 입력 지연을 나타내는 숫자형 값입니다.

InputDelay를 스칼라 값으로 설정하여 모든 채널에 동일한 지연을 적용할 수도 있습니다.

디폴트 값: 0

OutputDelay

출력 지연. OutputDelay는 각 출력 채널에 대해 시간 지연을 지정하는 숫자형 벡터입니다. 연속시간 시스템의 경우 TimeUnit 속성에 저장된 시간 단위로 출력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts의 정수 배로 출력 지연을 지정합니다. 예를 들어, OutputDelay = 3은 3개 샘플링 주기만큼의 지연을 의미합니다.

출력이 Ny개인 시스템의 경우 OutputDelayNyx1 벡터로 설정합니다. 여기서 각 요소는 대응되는 출력 채널에 대한 출력 지연을 나타내는 숫자형 값입니다. OutputDelay를 스칼라 값으로 설정하여 모든 채널에 동일한 지연을 적용할 수도 있습니다.

디폴트 값: 모든 출력 채널의 경우 0

Ts

샘플 시간. 연속시간 모델의 경우 Ts = 0입니다. 이산시간 모델의 경우 Ts는 샘플링 주기를 나타내는 양의 스칼라입니다. 이 값은 모델의 TimeUnit 속성으로 지정된 단위로 표현됩니다. 샘플 시간이 지정되지 않은 이산시간 모델을 나타내려면 Ts = -1로 설정하십시오.

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

디폴트 값: 0(연속시간)

TimeUnit

시간 변수, 샘플 시간 Ts 및 모델의 시간 지연에 대한 단위로, 다음 값 중 하나로 지정됩니다.

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

디폴트 값: 'seconds'

InputName

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

  • 문자형 벡터 — 단일 입력 모델의 경우. 예: 'controls'.

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

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

sys.InputName = 'controls';

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

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

입력 채널 이름에는 다음을 비롯한 몇 가지 용도가 있습니다.

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

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

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

디폴트 값: 모든 입력 채널에 대해 ''

InputUnit

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

  • 문자형 벡터 — 단일 입력 모델의 경우. 예: 'seconds'.

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

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

디폴트 값: 모든 입력 채널에 대해 ''

InputGroup

입력 채널 그룹. InputGroup 속성을 사용하면 MIMO 시스템의 입력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. 입력 그룹을 구조체로 지정합니다. 이 구조체에서, 필드 이름은 그룹 이름이고 필드 값은 각 그룹에 속하는 입력 채널입니다. 예를 들어, 다음은

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

각각 입력 채널 1, 2와 3, 5를 포함하는 controlsnoise라는 입력 그룹을 만듭니다. 이때 다음을 사용하여 controls 입력에서 모든 출력으로 서브시스템을 추출할 수 있습니다.

sys(:,'controls')

디폴트 값: 필드가 없는 구조체

OutputName

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

  • 문자형 벡터 — 단일 출력 모델의 경우. (예: 'measurements'.)

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

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

sys.OutputName = 'measurements';

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

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

출력 채널 이름에는 다음을 비롯한 몇 가지 용도가 있습니다.

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

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

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

디폴트 값: 모든 출력 채널에 대해 ''

OutputUnit

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

  • 문자형 벡터 — 단일 출력 모델의 경우. (예: 'seconds'.)

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

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

디폴트 값: 모든 출력 채널에 대해 ''

OutputGroup

출력 채널 그룹. OutputGroup 속성을 사용하면 MIMO 시스템의 출력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. 출력 그룹을 구조체로 지정합니다. 이 구조체에서, 필드 이름은 그룹 이름이고 필드 값은 각 그룹에 속하는 출력 채널입니다. 예를 들어, 다음은

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

각각 출력 채널 1과 3, 5를 포함하는 temperaturemeasurement라는 출력 그룹을 만듭니다. 이때 다음을 사용하여 모든 입력에서 measurement 출력으로 서브시스템을 추출할 수 있습니다.

sys('measurement',:)

디폴트 값: 필드가 없는 구조체

Name

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

디폴트 값: ''

Notes

사용자가 시스템에 지정할 수 있는 임의의 텍스트로, string형 또는 문자형 벡터로 구성된 셀형 배열로 저장됩니다. 이 속성은 사용자가 입력하는 데이터형을 저장합니다. 예를 들어, sys1sys2가 동적 시스템 모델인 경우 다음과 같이 Notes 속성을 설정할 수 있습니다.

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

디폴트 값: [0×1 string]

UserData

사용자가 시스템에 연동하려는 임의의 데이터 유형으로, 임의의 MATLAB® 데이터형으로 지정됩니다.

디폴트 값: []

SamplingGrid

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

하나 이상의 독립 변수를 샘플링하여 파생된 모델 배열의 경우, 이 속성은 배열에 있는 각 모델에 대응되는 변수 값을 기록합니다. 이 정보는 모델 배열을 표시하거나 플로팅할 때 나타납니다. 이 정보를 사용하여 결과를 독립 변수로 역추적할 수 있습니다.

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

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

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

마찬가지로, 2개의 변수 zetaw를 독립적으로 샘플링하여 6x9 모델 배열 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를 채웁니다.

디폴트 값: []

예제

예제 1

연속시간 SISO 전달 함수를 만듭니다.

h(s)=2s(s1+j)(s1j)(s2)

다음을 사용하여 h(s)를 zpk 객체로 만듭니다.

h = zpk(0, [1-i 1+i 2], -2);

예제 2

다음과 같이 1-입력 2-출력인 영점-극점-이득 모델을 지정합니다.

H(z)=[1z0.32(z+0.5)(z0.1+j)(z0.1j)].

이렇게 하려면 다음을 입력하십시오.

Z = {[] ; -0.5};
P = {0.3 ; [0.1+i 0.1-i]};
K = [1 ; 2];
H = zpk(Z,P,K,-1);    % unspecified sample time

예제 3

다음 전달 함수를

h = tf([-10 20 0],[1 7 20 28 19 5]);

다음을 사용하여 영점-극점-이득 형식으로 변환합니다.

zpk(h)

이 명령은 다음 결과를 반환합니다.

Zero/pole/gain:
     -10 s (s-2)
----------------------
(s+1)^3 (s^2 + 4s + 5)

예제 4

변수 z의 유리식에서 이산시간 ZPK 모델을 만듭니다.

z = zpk('z',0.1); 
H = (z+.1)*(z+.2)/(z^2+.6*z+.09)

이들 명령은 다음 결과를 반환합니다.

Zero/pole/gain:
(z+0.1) (z+0.2)
---------------
   (z+0.3)^2
 
Sample time: 0.1

예제 5

영점과 극점으로 구성된 셀형 배열을 사용하여 MIMO zpk 모델을 만듭니다.

다음과 같이 2-입력 2-출력인 영점-극점-이득 모델을 만듭니다.

H(s)=[1s3(s+5)(s+1)22(s22s+2)(s1)(s2)(s3)0]

다음을 입력합니다.

Z = {[],-5;[1-i 1+i] []};

P = {0,[-1 -1];[1 2 3],[]};

K = [-1 3;2 0];

H = zpk(Z,P,K);

H(s)의 대응되는 항목이 영점 또는 극점을 갖지 않을 경우 Z 또는 P에서 []을 자리 표시자로 사용하십시오.

예제 6

식별된 다항식 모델의 측정된 구성요소와 잡음 구성요소를 2개의 개별적인 ZPK 모델로 추출합니다. 전자(측정된 구성요소)는 플랜트 모델로 기능할 수 있고, 후자는 제어 시스템 설계를 위한 외란으로 기능할 수 있습니다.

load icEngine
z = iddata(y,u,0.04);
nb = 2; nf = 2; nc = 1; nd = 3; nk = 3;
sys = bj(z, [nb nc nd nf nk]);

sysy(t) = B/F u(t) + C/D e(t) 형식의 모델입니다. 여기서 B/F는 측정된 구성요소를 나타내고 C/D는 잡음 구성요소를 나타냅니다.

sysMeas = zpk(sys, 'measured') 

또는 간단하게 zpk(sys)를 사용하여 측정된 구성요소를 추출할 수도 있습니다.

sysNoise = zpk(sys, 'noise')

알고리즘

zpk는 MATLAB 함수 roots를 사용하여 전달 함수를 변환하고 함수 zeropole을 사용하여 상태공간 모델을 변환합니다.

참고 항목

| | | | |

R2006a 이전에 개발됨