이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
zpk
영점-극점-이득 모델
설명
zpk
를 사용하여 영점-극점-이득 모델을 만들거나 동적 시스템 모델을 영점-극점-이득 형식으로 변환합니다.
영점-극점-이득 모델은 전달 함수가 분해된 형식으로 표현된 것입니다. 예를 들어 다음과 같은 연속시간 SISO 전달 함수가 있다고 가정하겠습니다.
G(s)
는 다음과 같이 영점-극점-이득 형식으로 분해될 수 있습니다.
SISO 영점-극점-이득 모델의 더 일반적인 표현은 다음과 같습니다.
여기서 z
와 p
는 실수 값 또는 복소수 값의 영점 및 극점으로 구성된 벡터이고 K
는 실수 값 또는 복소수 값의 스칼라 이득입니다.
영점-극점-이득 모델 객체는 극점, 영점 및 이득을 직접 지정하거나 다른 유형의 모델(예: 상태공간 모델 ss
)을 영점-극점-이득 형식으로 변환하여 만들 수 있습니다.
zpk
를 사용하여 일반화된 상태공간(genss
) 모델 또는 불확실 상태공간(uss
(Robust Control Toolbox)) 모델을 만들 수도 있습니다.
생성
구문
설명
입력 인수
zeros
— 영점-극점-이득 모델의 영점
행 벡터 | 행 벡터로 구성된 Ny
×Nu
셀형 배열
영점-극점-이득 모델의 영점으로, 다음과 같이 지정됩니다.
SISO 모델의 경우 행 벡터. 예를 들어
s = 1
,s = 2+i
,s = 2-i
에서 영점을 갖는 모델을 만들려면[1,2+i,2-1]
을 사용하십시오. 예제는 연속시간 SISO 영점-극점-이득 모델 항목을 참조하십시오.MIMO 영점-극점-이득 모델을 지정하는 행 벡터로 구성된
Ny
×Nu
셀형 배열. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다. 예제는 이산시간 MIMO 영점-극점-이득 모델 항목을 참조하십시오.
예를 들어 a
가 공칭 값 3
을 갖는 조정 가능한 파라미터 realp
인 경우 zeros = [1 2 a]
를 사용하여 s = 1
과 s = 2
에서 영점을 갖고 s = 3
에서 조정 가능한 영점을 갖는 genss
모델을 만들 수 있습니다.
zpk
객체의 속성이기도 합니다. 이 입력 인수는 속성 Z의 초기값을 설정합니다.
poles
— 영점-극점-이득 모델의 극점
행 벡터 | 행 벡터로 구성된 Ny
×Nu
셀형 배열
영점-극점-이득 모델의 극점으로, 다음과 같이 지정됩니다.
SISO 모델의 경우 행 벡터. 예제는 연속시간 SISO 영점-극점-이득 모델 항목을 참조하십시오.
MIMO 영점-극점-이득 모델을 지정하는 행 벡터로 구성된
Ny
×Nu
셀형 배열. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다. 예제는 이산시간 MIMO 영점-극점-이득 모델 항목을 참조하십시오.
zpk
객체의 속성이기도 합니다. 이 입력 인수는 속성 P의 초기값을 설정합니다.
gain
— 영점-극점-이득 모델의 이득
스칼라 | 행 벡터로 구성된 Ny
×Nu
셀형 배열
영점-극점-이득 모델의 이득으로, 다음과 같이 지정됩니다.
SISO 모델의 경우 스칼라. 예제는 연속시간 SISO 영점-극점-이득 모델 항목을 참조하십시오.
MIMO 영점-극점-이득 모델을 지정하는
Ny
×Nu
행렬. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다. 예제는 이산시간 MIMO 영점-극점-이득 모델 항목을 참조하십시오.
zpk
객체의 속성이기도 합니다. 이 입력 인수는 속성 K의 초기값을 설정합니다.
ts
— 샘플 시간
스칼라
샘플 시간으로, 스칼라로 지정됩니다. zpk
객체의 속성이기도 합니다. 이 입력 인수는 속성 Ts의 초기값을 설정합니다.
ltiSys
— 동적 시스템
동적 시스템 모델 | 모델 배열
동적 시스템으로, SISO 또는 MIMO 동적 시스템 모델로 지정되거나 동적 시스템 모델로 구성된 배열로 지정됩니다. 사용 가능한 동적 시스템에는 다음이 포함됩니다.
일반화된 모델 또는 불확실 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™가 필요합니다.)식별된 비선형 모델은
zpk
모델 객체로 변환할 수 없습니다. 먼저linearize
및linapp
과 같은 선형 근사 함수를 사용할 수 있습니다(이 기능을 사용하려면 System Identification Toolbox가 필요함).
m
— 정적 이득
스칼라 | 행렬
정적 이득으로, 스칼라 또는 행렬로 지정됩니다. 시스템의 정적 이득 또는 정상 상태 이득은 정상 상태 조건에서의 출력과 입력의 비율을 나타냅니다.
component
— 식별된 모델의 구성요소
'measured'
(디폴트 값) | 'noise'
| 'augmented'
식별된 모델의 구성요소로, 변환의 대상이며 다음 중 하나로 지정됩니다.
'measured'
—sys
의 측정된 구성요소를 변환합니다.'noise'
—sys
의 잡음 구성요소를 변환합니다.'augmented'
—sys
의 측정된 구성요소와 잡음 구성요소를 모두 변환합니다.
component
는 sys
가 식별된 LTI 모델인 경우에만 적용됩니다.
식별된 LTI 모델과 그 측정된 구성요소 및 잡음 구성요소에 대한 자세한 내용은 Identified LTI Models 항목을 참조하십시오.
출력 인수
sys
— 출력 시스템 모델
zpk
모델 객체 | genss
모델 객체 | uss
모델 객체
출력 시스템 모델로, 다음과 같이 반환됩니다.
속성
Z
— 시스템 영점
셀형 배열 | 행 벡터로 구성된 Ny
×Nu
셀형 배열
시스템 영점으로, 다음과 같이 지정됩니다.
SISO 모델의 경우, 전달 함수 영점이나 분자 근으로 구성된 셀형 배열.
MIMO 모델의 경우, 각 I/O 쌍에 대한 영점으로 구성된 행 벡터를 요소로 갖는
Ny
×Nu
셀형 배열. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다.
Z
의 값은 실수 또는 복소수일 수 있습니다.
P
— 시스템 극점
셀형 배열 | 행 벡터로 구성된 Ny
×Nu
셀형 배열
시스템 극점으로, 다음과 같이 지정됩니다.
SISO 모델의 경우, 전달 함수 극점이나 분모 근으로 구성된 셀형 배열.
MIMO 모델의 경우, 각 I/O 쌍에 대한 극점으로 구성된 행 벡터를 요소로 갖는
Ny
×Nu
셀형 배열. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다.
P
의 값은 실수 또는 복소수일 수 있습니다.
K
— 시스템 이득
스칼라 | Ny
×Nu
행렬
시스템 이득으로, 다음과 같이 지정됩니다.
SISO 모델의 경우, 스칼라 값.
MIMO 모델의 경우, 각 I/O 쌍에 대한 이득 값을 저장하는
Ny
×Nu
행렬. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다.
K
의 값은 실수 또는 복소수일 수 있습니다.
DisplayFormat
— 분자 및 분모 다항식 분해의 표시 형태 지정
'roots'
(디폴트 값) | 'frequency'
| 'time constant'
분자 및 분모 다항식 분해의 표시 형태 지정으로, 다음 중 하나로 지정됩니다.
'roots'
— 다항식 근의 위치에 대해 인수를 표시합니다.'roots'
는DisplayFormat
의 디폴트 값입니다.'frequency'
— 근 고유 주파수 ω0과 감쇠비 ζ에 대해 인수를 표시합니다.Variable
값'z^-1'
또는'q^-1'
을 갖는 이산시간 모델에서는'frequency'
표시 형식을 사용할 수 없습니다.'time constant'
— 근 시정수 τ와 감쇠비 ζ에 대해 인수를 표시합니다.Variable
값'z^-1'
또는'q^-1'
을 갖는 이산시간 모델에서는'time constant'
표시 형식을 사용할 수 없습니다.
연속시간 모델의 경우, 다음 표에 각 표시 형식에서 다항식 인수가 어떻게 정렬되는지 나와 있습니다.
DisplayName 값 | 1차 인수(실근 ) | 2차 인수(복소수 근 쌍 ) |
---|---|---|
'roots' | , 여기서 | |
'frequency' | , 여기서 | , 여기서 |
'time constant' | , 여기서 | , 여기서 |
이산시간 모델의 경우, 다항식 인수는 다음과 같은 변수 치환을 거쳐 연속시간 모델과 유사하게 정렬됩니다.
여기서 Ts는 샘플 시간입니다. 이산시간에서는 일 때 τ와 ω0은 그에 상응하는 연속시간 근의 시정수 및 고유 주파수와 거의 일치합니다.
Variable
— 영점-극점-이득 모델 표시 변수
's'
(디폴트 값) | 'z'
| 'p'
| 'q'
| 'z^-1'
| 'q^-1'
영점-극점-이득 모델 표시 변수로, 다음 중 하나로 지정됩니다.
's'
— 연속시간 모델의 디폴트 값'z'
— 이산시간 모델의 디폴트 값'p'
—'s'
와 동일'q'
—'z'
와 동일'z^-1'
—'z'
의 역수'q^-1'
—'z^-1'
과 동일
IODelay
— 전송 지연
0
(디폴트 값) | 스칼라 | Ny
×Nu
배열
전송 지연으로, 다음 중 하나로 지정됩니다.
스칼라 — SISO 시스템에 대한 전송 지연을 지정하거나 MIMO 시스템의 모든 입력/출력 쌍에 대해 동일한 전송 지연을 지정합니다.
Ny
×Nu
배열 — MIMO 시스템의 각 입력/출력 쌍에 대해 개별적인 전송 지연을 지정합니다. 여기서Ny
는 출력의 개수이고Nu
는 입력의 개수입니다.
연속시간 시스템의 경우 TimeUnit
속성으로 지정된 시간 단위로 전송 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts
의 정수 배로 전송 지연을 지정합니다. 시간 지연에 대한 자세한 내용은 Time Delays in Linear Systems 항목을 참조하십시오.
InputDelay
— 입력 지연
0
(디폴트 값) | 스칼라 | Nu
×1 벡터
각 입력 채널에 대한 입력 지연으로, 다음 중 하나로 지정됩니다.
스칼라 — SISO 시스템에 대한 입력 지연을 지정하거나 다중 입력 시스템의 모든 입력에 대해 동일한 지연을 지정합니다.
Nu
×1 벡터 — 다중 입력 시스템의 입력에 대해 개별적인 입력 지연을 지정합니다. 여기서Nu
는 입력의 개수입니다.
연속시간 시스템의 경우 TimeUnit
속성으로 지정된 시간 단위로 입력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts
의 정수 배로 입력 지연을 지정합니다.
자세한 내용은 Time Delays in Linear Systems 항목을 참조하십시오.
OutputDelay
— 출력 지연
0
(디폴트 값) | 스칼라 | Ny
×1 벡터
각 출력 채널에 대한 출력 지연으로, 다음 중 하나로 지정됩니다.
스칼라 — SISO 시스템에 대한 출력 지연을 지정하거나 다중 출력 시스템의 모든 출력에 대해 동일한 지연을 지정합니다.
Ny
×1 벡터 — 다중 출력 시스템의 출력에 대해 개별적인 출력 지연을 지정합니다. 여기서Ny
는 출력의 개수입니다.
연속시간 시스템의 경우 TimeUnit
속성으로 지정된 시간 단위로 출력 지연을 지정합니다. 이산시간 시스템의 경우 샘플 시간 Ts
의 정수 배로 출력 지연을 지정합니다.
자세한 내용은 Time Delays in Linear Systems 항목을 참조하십시오.
TimeUnit
— 시간 변수 단위
'seconds'
(디폴트 값) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...
시간 변수 단위로, 다음 중 하나로 지정됩니다.
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
TimeUnit
을 변경해도 다른 속성에 영향을 미치지 않으나 전체적인 시스템 동작이 변경됩니다. 시스템 동작을 수정하지 않고 시간 단위 간 변환을 수행하려면 chgTimeUnit
을 사용하십시오.
InputName
— 입력 채널 이름
''
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
입력 채널 이름으로, 다음 중 하나로 지정됩니다.
단일 입력 모델의 경우 문자형 벡터.
다중 입력 모델의 경우 문자형 벡터로 구성된 셀형 배열.
입력 채널에 대해 지정된 이름이 없는 경우
''
.
또는 자동 벡터 확장을 사용하여 다중 입력 모델에 입력 이름을 할당할 수 있습니다. 예를 들어, sys
가 2-입력 모델인 경우 다음을 입력합니다.
sys.InputName = 'controls';
입력 이름이 자동으로 {'controls(1)';'controls(2)'}
로 확장됩니다.
축약 표기법 u
를 사용하여 InputName
속성을 참조할 수 있습니다. 예를 들어, sys.u
는 sys.InputName
과 동일합니다.
InputName
을 사용하여 다음을 수행할 수 있습니다.
모델 표시 화면과 플롯에서 채널 식별.
MIMO 시스템의 서브시스템 추출.
모델 상호 연결 시 연결 점 지정.
InputUnit
— 입력 채널 단위
''
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
입력 채널 단위로, 다음 중 하나로 지정됩니다.
단일 입력 모델의 경우 문자형 벡터.
다중 입력 모델의 경우 문자형 벡터로 구성된 셀형 배열.
입력 채널에 대해 지정된 단위가 없는 경우
''
.
InputUnit
을 사용하여 입력 신호 단위를 지정합니다. InputUnit
은 시스템 동작에 영향을 미치지 않습니다.
InputGroup
— 입력 채널 그룹
구조체
입력 채널 그룹으로, 구조체로 지정됩니다. InputGroup
을 사용하여 MIMO 시스템의 입력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. InputGroup
의 필드 이름은 그룹 이름이고 필드 값은 각 그룹의 입력 채널입니다. 예를 들어 다음을 입력하여 각각 입력 채널 1
, 2
와 입력 채널 3
, 5
를 포함하는 controls
와 noise
라는 입력 그룹을 만듭니다.
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
이때 다음을 사용하여 controls
입력에서 모든 출력으로 서브시스템을 추출할 수 있습니다.
sys(:,'controls')
기본적으로 InputGroup
은 필드가 없는 구조체입니다.
OutputName
— 출력 채널 이름
''
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
출력 채널 이름으로, 다음 중 하나로 지정됩니다.
단일 출력 모델의 경우 문자형 벡터.
다중 출력 모델의 경우 문자형 벡터로 구성된 셀형 배열.
출력 채널에 대해 지정된 이름이 없는 경우
''
.
또는 자동 벡터 확장을 사용하여 다중 출력 모델에 출력 이름을 할당할 수 있습니다. 예를 들어, sys
가 2-출력 모델인 경우 다음을 입력합니다.
sys.OutputName = 'measurements';
출력 이름이 자동으로 {'measurements(1)';'measurements(2)'}
로 확장됩니다.
축약 표기법 y
를 사용하여 OutputName
속성을 참조할 수도 있습니다. 예를 들어, sys.y
는 sys.OutputName
과 동일합니다.
OutputName
을 사용하여 다음을 수행할 수 있습니다.
모델 표시 화면과 플롯에서 채널 식별.
MIMO 시스템의 서브시스템 추출.
모델 상호 연결 시 연결 점 지정.
OutputUnit
— 출력 채널 단위
''
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
출력 채널 단위로, 다음 중 하나로 지정됩니다.
단일 출력 모델의 경우 문자형 벡터.
다중 출력 모델의 경우 문자형 벡터로 구성된 셀형 배열.
출력 채널에 대해 지정된 단위가 없는 경우
''
.
OutputUnit
을 사용하여 출력 신호 단위를 지정합니다. OutputUnit
은 시스템 동작에 영향을 미치지 않습니다.
OutputGroup
— 출력 채널 그룹
구조체
출력 채널 그룹으로, 구조체로 지정됩니다. OutputGroup
을 사용하여 MIMO 시스템의 출력 채널을 그룹으로 할당하고 각 그룹을 이름으로 참조할 수 있습니다. OutputGroup
의 필드 이름은 그룹 이름이고 필드 값은 각 그룹의 출력 채널입니다. 예를 들어, 각각 출력 채널 1
과 출력 채널 3
, 5
를 포함하는 temperature
와 measurement
라는 출력 그룹을 만듭니다.
sys.OutputGroup.temperature = [1]; sys.OutputGroup.measurement = [3 5];
이때 다음을 사용하여 모든 입력에서 measurement
출력으로 서브시스템을 추출할 수 있습니다.
sys('measurement',:)
기본적으로 OutputGroup
은 필드가 없는 구조체입니다.
Name
— 시스템 이름
''
(디폴트 값) | 문자형 벡터
시스템 이름으로, 문자형 벡터로 지정됩니다. (예: 'system_1'
.)
Notes
— 사용자 지정 텍스트
{}
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
사용자가 시스템에 연동하려는 사용자 지정 텍스트로, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 예를 들면 'System is MIMO'
와 같습니다.
UserData
— 사용자 지정 데이터
[]
(디폴트 값) | 모든 MATLAB® 데이터형
사용자가 시스템에 연동하려는 사용자 지정 데이터로, 어떤 MATLAB 데이터형으로든 지정 가능합니다.
SamplingGrid
— 모델 배열의 샘플링 그리드
구조체형 배열
모델 배열의 샘플링 그리드로, 구조체형 배열로 지정됩니다.
SamplingGrid
를 사용하여 IDLTI(식별된 선형 시불변) 모델 배열을 비롯한 모델 배열의 각 모델에 대응되는 변수 값을 추적합니다.
구조체의 필드 이름을 샘플링 변수의 이름으로 설정합니다. 필드 값을 배열의 각 모델에 대응되는 샘플링된 변수 값으로 설정하십시오. 모든 샘플링 변수는 숫자형 스칼라여야 하며, 샘플링된 값으로 구성된 모든 배열은 모델 배열의 차원과 일치해야 합니다.
예를 들어, 시간 t = 0:10
에 선형 시변 시스템의 스냅샷을 찍어서 선형 모델로 구성된 11×1 배열 sysarr
을 만들 수 있습니다. 다음 코드는 시간 샘플을 선형 모델과 함께 저장합니다.
sysarr.SamplingGrid = struct('time',0:10)
마찬가지로, 2개의 변수 zeta
와 w
를 독립적으로 샘플링하여 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
는 필드가 없는 구조체입니다.
객체 함수
다음 목록은 일부이기는 하나 zpk
모델과 함께 사용할 수 있는 대표적인 함수들입니다. 일반적으로, 동적 시스템 모델에 적용되는 모든 함수는 zpk
객체에 적용됩니다.
선형 분석
안정성 분석
모델 변환
모델 상호 연결
예제
연속시간 SISO 영점-극점-이득 모델
이 예제에서는 다음과 같은 연속시간 SISO 영점-극점-이득 모델이 있다고 가정하겠습니다.
영점, 극점 및 이득을 지정하고, SISO 영점-극점-이득 모델을 만듭니다.
zeros = 0; poles = [1-1i 1+1i 2]; gain = -2; sys = zpk(zeros,poles,gain)
sys = -2 s -------------------- (s-2) (s^2 - 2s + 2) Continuous-time zero/pole/gain model.
이산시간 SISO 영점-극점-이득 모델
이 예제에서는 다음과 같이 샘플 시간이 0.1초인 SISO 이산시간 영점-극점-이득 모델이 있다고 가정하겠습니다.
영점, 극점, 이득 및 샘플 시간을 지정하고 이산시간 SISO 영점-극점-이득 모델을 만듭니다.
zeros = [1 2 3]; poles = [6 5 4]; gain = 7; ts = 0.1; sys = zpk(zeros,poles,gain,ts)
sys = 7 (z-1) (z-2) (z-3) ------------------- (z-6) (z-5) (z-4) Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
SISO 영점-극점-이득 모델을 MIMO 영점-극점-이득 모델로 결합하기
이 예제에서는 SISO 영점-극점-이득 모델을 결합하여 MIMO 영점-극점-이득 모델을 만듭니다. 다음과 같은 1-입력 2-출력 연속시간 영점-극점-이득 모델이 있다고 가정하겠습니다.
SISO 항목을 결합하여 MIMO 영점-극점-이득 모델을 지정합니다.
zeros1 = 1; poles1 = -1; gain = 1; sys1 = zpk(zeros1,poles1,gain)
sys1 = (s-1) ----- (s+1) Continuous-time zero/pole/gain model.
zeros2 = -2; poles2 = [-2+1i -2-1i]; sys2 = zpk(zeros2,poles2,gain)
sys2 = (s+2) -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
sys = [sys1;sys2]
sys = From input to output... (s-1) 1: ----- (s+1) (s+2) 2: -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
이산시간 MIMO 영점-극점-이득 모델
이산시간 다중 입력 다중 출력 모델에 대한 영점-극점-이득 모델을 만듭니다.
샘플 시간은 ts = 0.2
초입니다.
영점과 극점을 셀형 배열로 지정하고 이득을 배열로 지정합니다.
zeros = {[] 0;2 []}; poles = {-0.3 -0.3;-0.3 -0.3}; gain = [1 1;-1 3]; ts = 0.2;
이산시간 MIMO 영점-극점-이득 모델을 만듭니다.
sys = zpk(zeros,poles,gain,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 zero/pole/gain model.
영점-극점-이득 모델에 대한 입력 이름 지정하기
샘플 시간과 함께 영점, 극점 및 이득을 지정하고, 이름-값 쌍으로 상태 및 입력 이름을 지정하여 영점-극점-이득 모델을 만듭니다.
zeros = 4; poles = [-1+2i -1-2i]; gain = 3; ts = 0.05; sys = zpk(zeros,poles,gain,ts,'InputName','Force')
sys = From input "Force" to output: 3 (z-4) -------------- (z^2 + 2z + 5) Sample time: 0.05 seconds Discrete-time zero/pole/gain model.
입력 이름의 개수는 영점의 개수와 일치해야 합니다.
입력 이름과 출력 이름을 지정하면 MIMO 시스템의 응답 플롯을 처리할 때 유용할 수 있습니다.
step(sys)
계단 응답 플롯 제목에 입력 이름 Force
가 있습니다.
유리식을 사용한 연속시간 영점-극점-이득 모델
이 예제에서는 유리식을 사용하여 연속시간 영점-극점-이득 모델을 만듭니다. 유리식을 사용하는 것이 영점과 극점을 지정하는 것보다 쉽고 직관적인 경우가 있습니다.
다음과 같은 시스템이 있다고 가정하겠습니다.
전달 함수 모델을 만들려면 먼저 s
를 zpk
객체로 지정하십시오.
s = zpk('s')
s = s Continuous-time zero/pole/gain model.
유리식에 s를 사용하여 영점-극점-이득 모델을 만듭니다.
sys = s/(s^2 + 2*s + 10)
sys = s --------------- (s^2 + 2s + 10) Continuous-time zero/pole/gain model.
유리식을 사용한 이산시간 영점-극점-이득 모델
이 예제에서는 유리식을 사용하여 이산시간 영점-극점-이득 모델을 만듭니다. 유리식을 사용하는 것이 영점과 극점을 지정하는 것보다 쉽고 직관적인 경우가 있습니다.
다음과 같은 시스템이 있다고 가정하겠습니다.
영점-극점-이득 모델을 만들려면 먼저 z
를 zpk
객체와 샘플 시간 ts
로 지정하십시오.
ts = 0.1;
z = zpk('z',ts)
z = z Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
유리식에 z
를 사용하여 영점-극점-이득 모델을 만듭니다.
sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys = (z-1) ------------------- (z^2 - 1.85z + 0.9) Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
상속된 속성이 있는 영점-극점-이득 모델
이 예제에서는 다른 영점-극점-이득 모델에서 상속한 속성을 사용하여 영점-극점-이득 모델을 만듭니다. 다음과 같은 두 개의 영점-극점-이득 모델이 있다고 가정하겠습니다.
이 예제에서는 TimeUnit
및 InputDelay
속성을 'minutes
'로 설정한 상태로 sys1
을 만듭니다.
zero1 = 0; pole1 = [0;-8]; gain1 = 2; sys1 = zpk(zero1,pole1,gain1,'TimeUnit','minutes','InputUnit','minutes')
sys1 = 2 s ------- s (s+8) Continuous-time zero/pole/gain model.
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
{'minutes'} {'minutes'}
sys1
에서 상속한 속성으로 두 번째 영점-극점-이득 모델을 만듭니다.
zero = 1; pole = [-3,5]; gain2 = 0.8; sys2 = zpk(zero,pole,gain2,sys1)
sys2 = 0.8 (s-1) ----------- (s+3) (s-5) Continuous-time zero/pole/gain model.
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
{'minutes'} {'minutes'}
영점-극점-이득 모델 sys2
가 sys1
과 동일한 속성을 가짐을 알 수 있습니다.
정적 이득 MIMO 영점-극점-이득 모델
다음과 같은 2-입력 2-출력 정적 이득 행렬 m
을 만듭니다.
이득 행렬을 지정하고 정적 이득 영점-극점-이득 모델을 만듭니다.
m = [2,4;...
3,5];
sys1 = zpk(m)
sys1 = From input 1 to output... 1: 2 2: 3 From input 2 to output... 1: 4 2: 5 Static gain.
위에서 얻은 정적 이득 영점-극점-이득 모델 sys1
을 사용하여 이 모델을 다른 영점-극점-이득 모델에 종속 연결할 수 있습니다.
sys2 = zpk(0,[-1 7],1)
sys2 = s ----------- (s+1) (s-7) Continuous-time zero/pole/gain model.
sys = series(sys1,sys2)
sys = From input 1 to output... 2 s 1: ----------- (s+1) (s-7) 3 s 2: ----------- (s+1) (s-7) From input 2 to output... 4 s 1: ----------- (s+1) (s-7) 5 s 2: ----------- (s+1) (s-7) Continuous-time zero/pole/gain model.
상태공간 모델을 영점-극점-이득 모델로 변환하기
이 예제에서는 다음 상태공간 모델의 영점-극점-이득 모델을 계산합니다.
상태공간 행렬을 사용하여 상태공간 모델을 만듭니다.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
상태공간 모델 ltiSys
를 영점-극점-이득 모델로 변환합니다.
sys = zpk(ltiSys)
sys = From input 1 to output: s -------------- (s^2 + 4s + 5) From input 2 to output: (s^2 + 5s + 8) -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
영점-극점-이득 모델로 구성된 배열
for
루프를 사용하여 영점-극점-이득 모델로 구성된 배열을 지정할 수 있습니다.
먼저, 영점을 갖는 영점-극점-이득 모델 배열을 사전할당합니다.
sys = zpk(zeros(1,1,3));
처음 2개의 인덱스는 모델의 출력 개수와 입력 개수를 나타내고, 세 번째 인덱스는 배열에 있는 모델의 개수를 나타냅니다.
for
루프에서 유리식을 사용하여 영점-극점-이득 모델 배열을 만듭니다.
s = zpk('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 zero/pole/gain models.
식별된 모델에서 영점-극점-이득 모델 추출하기
이 예제에서는 식별된 다항식 모델의 측정된 구성요소와 잡음 구성요소를 2개의 개별적인 영점-극점-이득 모델로 추출합니다.
identifiedModel.mat
에서 Box-Jenkins 다항식 모델 ltiSys
를 불러옵니다.
load('identifiedModel.mat','ltiSys');
ltiSys
는 형식의 식별된 이산시간 모델입니다. 여기서 는 측정된 구성요소를 나타내고 는 잡음 구성요소를 나타냅니다.
측정된 구성요소와 잡음 구성요소를 영점-극점-이득 모델로 추출합니다.
sysMeas = zpk(ltiSys,'measured')
sysMeas = From input "u1" to output "y1": -0.14256 z^-1 (1-1.374z^-1) z^(-2) * ----------------------------- (1-0.8789z^-1) (1-0.6958z^-1) Sample time: 0.04 seconds Discrete-time zero/pole/gain model.
sysNoise = zpk(ltiSys,'noise')
sysNoise = From input "v@y1" to output "y1": 0.045563 (1+0.7245z^-1) -------------------------------------------- (1-0.9658z^-1) (1 - 0.0602z^-1 + 0.2018z^-2) Input groups: Name Channels Noise 1 Sample time: 0.04 seconds Discrete-time zero/pole/gain model.
측정된 구성요소는 플랜트 모델로 기능할 수 있고, 잡음 구성요소는 제어 시스템 설계를 위한 외란 모델로 사용할 수 있습니다.
입력 지연 및 출력 지연이 있는 영점-극점-이득 모델
이 예제에서는 입력 지연이 0.5초이고 출력 지연이 2.5초인 SISO 영점-극점-이득 모델을 만듭니다.
zeros = 5; poles = [7+1i 7-1i -3]; gains = 1; sys = zpk(zeros,poles,gains,'InputDelay',0.5,'OutputDelay',2.5)
sys = (s-5) exp(-3*s) * ---------------------- (s+3) (s^2 - 14s + 50) Continuous-time zero/pole/gain model.
get
명령을 사용하여 MATLAB 객체의 모든 속성을 표시할 수도 있습니다.
get(sys)
Z: {[5]} P: {[3x1 double]} K: 1 DisplayFormat: 'roots' Variable: 's' IODelay: 0 InputDelay: 0.5000 OutputDelay: 2.5000 InputName: {''} InputUnit: {''} InputGroup: [1x1 struct] OutputName: {''} OutputUnit: {''} OutputGroup: [1x1 struct] Notes: [0x1 string] UserData: [] Name: '' Ts: 0 TimeUnit: 'seconds' SamplingGrid: [1x1 struct]
LTI 모델의 시간 지연을 지정하는 방법에 대한 자세한 내용은 Specifying Time Delays 항목을 참조하십시오.
영점-극점-이득 모델을 사용한 제어기 설계
이 예제에서는 다음의 영점-극점-이득 모델로 표현되는 시스템에 대해 목표 대역폭이 0.75 rad/s인 2-DOF PID 제어기를 설계합니다.
zpk
명령을 사용하여 영점-극점-이득 모델 객체 sys
를 만듭니다.
zeros = []; poles = [-0.25+0.2i;-0.25-0.2i]; gain = 1; sys = zpk(zeros,poles,gain)
sys = 1 --------------------- (s^2 + 0.5s + 0.1025) Continuous-time zero/pole/gain model.
목표 대역폭으로 pidtune
항목을 사용하여 2-DOF 제어기를 생성합니다.
wc = 0.75;
C2 = pidtune(sys,'PID2',wc)
C2 = 1 u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y) s with Kp = 0.512, Ki = 0.0975, Kd = 0.574, b = 0.38, c = 0 Continuous-time 2-DOF PID controller in parallel form.
'PID2'
유형을 사용하면 pidtune
이 pid2
객체로 표현되는 2-DOF 제어기를 생성하게 됩니다. 이 결과가 표시되는 것을 확인할 수 있습니다. pidtune
이 설정점 가중치 b
, c
를 포함해 모든 제어기 계수를 조정하여 성능과 강인성의 균형을 맞추는 것도 표시됩니다.
라이브 편집기에서의 대화형 방식 PID 조정에 대한 자세한 내용은 Tune PID Controller 라이브 편집기 작업을 참조하십시오. 이 작업은 대화형 방식으로 PID 제어기를 설계할 수 있도록 해주며 라이브 스크립트에 대한 MATLAB 코드를 자동으로 생성해 줍니다.
독립 실행형 앱에서 대화형 방식으로 PID 조정을 수행하려면 PID 조정기를 사용하십시오. 앱을 사용한 제어기 설계에 대한 예제는 빠른 기준 추종을 위한 PID 제어기 설계 항목을 참조하십시오.
알고리즘
zpk
는 MATLAB 함수 roots
를 사용하여 전달 함수를 변환하고 함수 zero
와 pole
을 사용하여 상태공간 모델을 변환합니다.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)