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,'-')
근사 분수 지연으로 모델 이산화하기
R2024a 이후
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','ThiranOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 = A = x1 x2 x1 -0.4286 -0.5714 x2 0.2857 0.7143 B = u1 x1 0.5714 x2 0.2857 C = x1 x2 y1 0.2857 0.7143 D = u1 y1 0.2857 (values computed with all internal delays set to zero) Internal delays (sampling periods): 1 1 1 Sample time: 1 seconds Discrete-time state-space model.
기본적으로, 이 함수는 이산화된 모델에서 추가 지연을 내부 지연으로 모델링합니다. 이산화된 모델에서 추가 지연을 상태로 모델링하려면 c2dOptions
의 DelayModeling
옵션을 'state'
로 설정합니다.
opt2 = c2dOptions('Method','tustin','ThiranOrder',3,'DelayModeling','state'); sysd2 = c2d(sys,1,opt2)
sysd2 = 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 필터('ThiranOrder'
= 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'
| 'damped'
이산화 방법으로, 다음 값 중 하나로 지정됩니다.
'zoh'
— 영차 유지(디폴트 값). 제어 입력이 샘플 시간Ts
에서 조각별 상수라고 가정합니다.'foh'
— 삼각 근사(변형 일차 유지). 제어 입력이 샘플 시간Ts
에서 조각별 선형이라고 가정합니다.'impulse'
— 임펄스 불변 이산화'tustin'
— 쌍선형(Tustin) 방법. 주파수 사전 워핑(이전 명칭:'prewarp'
방법)과 함께 이 방법을 지정하려면c2dOptions
의PrewarpFrequency
옵션을 사용하십시오.'matched'
— 영점-극점 대응 방법'least-squares'
— 최소제곱 방법'damped'
—TRBDF2
수식을 기반으로 하는 감쇠 Tustin 근사(sparss
모델의 경우에만 해당).
각 변환 방법의 알고리즘에 대한 자세한 내용은 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 이전에 개발됨R2024a: 변환 시 상태를 더 추가하지 않음
c2d
명령은 더 이상 추가 지연을 모델링할 때 상태를 더 추가하지 않습니다. 기본적으로, c2d
는 이제 내부 지연을 사용하고 동일한 개수의 상태를 가진 이산화된 모델을 반환합니다. 이로 인해 동작의 예측 가능성은 높아지고 연속시간에서 이산시간으로의 초기 상태 매핑은 단순화됩니다.
R2024a 이전의 기존 동작으로 되돌리려면 c2dOptions
를 사용하여 옵션 세트를 만들고 DelayModeling
을 "state"
로 설정합니다.
R2024a: mechss
모델에 대한 지원
이제 쌍선형 Tustin 근사법을 사용하여 mechss
모델을 이산화할 수 있습니다. mechss
모델에서 'tustin'
근사법은 Tustin 이산화의 2차 형식을 계산합니다. 이는 mechss
모델에 상응하는 1차 sparss
에 Tustin을 적용하는 것과 동일합니다.
R2024a: 오프셋이 있는 모델에 대한 지원과 기타 개선 사항
이제 c2d
를 사용하면 그리딩된 선형 파라미터 가변 모델과 같은 오프셋이 있는 모델을 이산화할 수 있습니다.
또한 c2dOptions
는 다음과 같은 두 가지 새로운 옵션을 제공합니다
DelayModeling
— 추가 지연을 내부 지연(디폴트 값)으로 모델링할지, 아니면 추가 상태로 모델링할지를 지정합니다.Consistency
— 상태공간 배열에 상태 및 지연 일관성을 적용합니다. 이 옵션은 그리딩된 LPV 또는 LTV 모델을 이산화할 때 유용합니다.
참고 항목
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)