c2d
연속시간 모델을 이산시간 모델로 변환
설명
예제
전달 함수 이산화하기
다음 연속시간 전달 함수를 이산화합니다.
이 시스템에는 0.3초의 입력 지연이 있습니다. 샘플 시간 Ts
= 0.1초로 삼각(일차 유지) 근사를 사용하여 시스템을 이산화합니다.
H = tf([1 -1],[1 4 5],'InputDelay', 0.3); Hd = c2d(H,0.1,'foh');
연속시간 시스템과 이산시간 시스템의 계단 응답을 비교합니다.
step(H,'-',Hd,'--')
분수 지연을 계수로 흡수하여 모델 이산화하기
입력에 대한 영차 유지와 10Hz 샘플링 레이트를 사용하여 다음과 같은 지연된 전달 함수를 이산화합니다.
h = tf(10,[1 3 10],'IODelay',0.25);
hd = c2d(h,0.1)
hd = 0.01187 z^2 + 0.06408 z + 0.009721 z^(-3) * ---------------------------------- z^2 - 1.655 z + 0.7408 Sample time: 0.1 seconds Discrete-time transfer function.
이 예제에서 이산화된 모델 hd
는 샘플링 주기 3만큼의 지연을 갖습니다. 이산화 알고리즘은 잔차 절반 주기 지연을 hd
의 계수로 흡수합니다.
연속시간 모델과 이산시간 모델의 계단 응답을 비교합니다.
step(h,'--',hd,'-')
근사 분수 지연으로 모델 이산화하기
2개의 상태와 1개의 입력 지연을 갖는 연속시간 상태공간 모델을 만듭니다.
sys = ss(tf([1,2],[1,4,2])); sys.InputDelay = 2.7
sys = A = x1 x2 x1 -4 -2 x2 1 0 B = u1 x1 2 x2 0 C = x1 x2 y1 0.5 1 D = u1 y1 0 Input delays (seconds): 2.7 Continuous-time state-space model.
Tustin 이산화 방법과 Thiran 필터로 분수 지연을 모델링하여 모델을 이산화합니다. 샘플 시간 Ts
는 1초입니다.
opt = c2dOptions('Method','tustin','FractDelayApproxOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 = A = x1 x2 x3 x4 x5 x1 -0.4286 -0.5714 -0.00265 0.06954 2.286 x2 0.2857 0.7143 -0.001325 0.03477 1.143 x3 0 0 -0.2432 0.1449 -0.1153 x4 0 0 0.25 0 0 x5 0 0 0 0.125 0 B = u1 x1 0.002058 x2 0.001029 x3 8 x4 0 x5 0 C = x1 x2 x3 x4 x5 y1 0.2857 0.7143 -0.001325 0.03477 1.143 D = u1 y1 0.001029 Sample time: 1 seconds Discrete-time state-space model.
이산화된 모델은 이제 3차 타이란 필터에 대응되는 3개의 추가 상태, 즉 x3
, x4
, x5
를 포함합니다. 시간 지연을 샘플 시간으로 나눈 값은 2.7이므로 3차 Thiran 필터('FractDelayApproxOrder'
= 3)가 전체 시간 지연을 근사할 수 있습니다.
식별된 모델 이산화하기
연속시간 전달 함수를 추정하고 이를 이산화합니다.
load iddata1 sys1c = tfest(z1,2); sys1d = c2d(sys1c,0.1,'zoh');
2차 이산시간 전달 함수를 추정합니다.
sys2d = tfest(z1,2,'Ts',0.1);
이산화된 연속시간 전달 함수 모델 sys1d
의 응답과 직접 추정된 이산시간 모델 sys2d
의 응답을 비교합니다.
compare(z1,sys1d,sys2d)
두 시스템은 거의 동일합니다.
예측 모델 작성하기
식별된 상태공간 모델을 이산화하여 향후 1-스텝 응답을 사전 예측하는 모델을 작성합니다.
추정 데이터를 사용하여 식별된 연속시간 상태공간 모델을 만듭니다.
load iddata2
sysc = ssest(z2,4);
sysc
의 향후 1-스텝 응답을 사전 예측합니다.
predict(sysc,z2)
모델을 이산화합니다.
sysd = c2d(sysc,0.1,'zoh');
이산화된 모델 sysd
에서 예측 모델을 작성합니다.
[A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);
Predictor
는 측정된 출력 신호와 입력 신호 ([z1.y z1.u])
를 사용하여 sysc
의 한 스텝 다음 응답을 예측하여 계산하는 2-입력 모델입니다.
predict
명령과 동일한 응답을 얻도록 예측 모델을 시뮬레이션합니다.
lsim(Predictor,[z2.y,z2.u])
예측 모델의 시뮬레이션은 predict(sysc,z2)
와 동일한 응답을 제공합니다.
입력 인수
sysc
— 연속시간 동적 시스템
동적 시스템 모델
연속시간 모델로, idtf
, idss
또는 idpoly
와 같은 동적 시스템 모델로 지정됩니다. sysc
는 주파수 응답 데이터 모델일 수 없습니다. sysc
는 SISO 또는 MIMO 시스템이 될 수 있으나, 'matched'
이산화 방법은 SISO 시스템만 지원합니다.
sysc
는 입력/출력 또는 내부 시간 지연을 가질 수 있으나, 'matched'
, 'impulse'
및 'least-squares'
방법은 내부 시간 지연을 갖는 상태공간 모델을 지원하지 않습니다.
다음과 같은 식별된 선형 시스템은 직접 이산화될 수 없습니다.
FunctionType
이'c'
인idgrey
모델. 먼저idss
모델로 변환하십시오.idproc
모델. 먼저idtf
또는idpoly
모델로 변환하십시오.
Ts
— 샘플 시간
양의 스칼라
샘플 시간으로, 결과로 생성되는 이산시간 시스템의 샘플링 주기를 나타내는 양의 스칼라로 지정됩니다. Ts
는 sysc.TimeUnit
속성인 TimeUnit
를 단위로 합니다.
method
— 이산화 방법
'zoh'
(디폴트 값) | 'foh'
| 'impulse'
| 'tustin'
| 'matched'
| 'least-squares'
이산화 방법으로, 다음 값 중 하나로 지정됩니다.
'zoh'
— 영차 유지(디폴트 값). 제어 입력이 샘플 시간Ts
에서 조각별 상수라고 가정합니다.'foh'
— 삼각 근사(변형 일차 유지). 제어 입력이 샘플 시간Ts
에서 조각별 선형이라고 가정합니다.'impulse'
— 임펄스 불변 이산화'tustin'
— 쌍선형(Tustin) 방법. 주파수 사전 워핑(이전 명칭:'prewarp'
방법)과 함께 이 방법을 지정하려면c2dOptions
의PrewarpFrequency
옵션을 사용하십시오.'matched'
— 영점-극점 대응 방법'least-squares'
— 최소제곱 방법'damped'
—TRBDF2
수식을 기반으로 하는 감쇠 Tustin 근사법(희소 모델의 경우에만 해당).
각 변환 방법의 알고리즘에 대한 자세한 내용은 Continuous-Discrete Conversion Methods 항목을 참조하십시오.
opts
— 이산화 옵션
c2dOptions
객체
이산화 옵션으로, c2dOptions
객체로 지정됩니다. 예를 들어, 사전 워핑 주파수, Thiran 필터의 차수 또는 이산화 방법을 옵션으로 지정할 수 있습니다.
출력 인수
sysd
— 이산시간 모델
동적 시스템 모델
이산시간 모델로, 입력 시스템 sysc
와 동일한 유형의 동적 시스템 모델로 반환됩니다.
sysc
가 식별된(IDLTI) 모델인 경우 sysd
는
sysc
의 측정된 구성요소와 잡음 구성요소를 모두 포함합니다.NoiseVariance
속성에 저장된, 식별된 연속시간 모델sysc
의 혁신 분산 λ는 잡음 스펙트럼의 스펙트럼 밀도의 강도로 해석됩니다. 따라서sysd
의 잡음 분산은 λ/Ts입니다.sysc
의 파라미터 공분산 추정값을 포함하지 않습니다. 모델을 이산화할 때 공분산을 변환하려면translatecov
를 사용하십시오.
G
— 상태공간 모델의 연속 초기 조건에서 이산시간 초기 상태 벡터로의 매핑
행렬
상태공간 모델 sysc
의 연속시간 초기 조건 x0과 u0의 이산시간 초기 상태 벡터 x[0]으로의 매핑으로, 행렬로 반환됩니다. 초기 조건의 초기 상태 벡터로의 매핑은 다음과 같습니다.
시간 지연이 있는 상태공간 모델의 경우 c2d
는 지연을 이산화한 결과 발생한 추가 상태를 고려하여 행렬 G
를 0으로 채웁니다. 이산화된 시스템에서 시간 지연을 모델링하는 방법에 대한 논의는 Continuous-Discrete Conversion Methods 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
c2dOptions
| d2c
| d2d
| thiran
(Control System Toolbox) | translatecov
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)