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. Model Properties
이 예제에서 이산화된 모델 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. Model Properties
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. Model Properties
기본적으로, 이 함수는 이산화된 모델에서 추가 지연을 내부 지연으로 모델링합니다. 이산화된 모델에서 추가 지연을 상태로 모델링하려면 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. Model Properties
이산화된 모델은 이제 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)
와 동일한 응답을 제공합니다.
입력 인수
연속시간 모델로, idtf
, idss
또는 idpoly
와 같은 동적 시스템 모델로 지정됩니다. sysc
는 주파수 응답 데이터 모델일 수 없습니다. sysc
는 SISO 또는 MIMO 시스템이 될 수 있으나, 'matched'
이산화 방법은 SISO 시스템만 지원합니다.
sysc
는 입력/출력 또는 내부 시간 지연을 가질 수 있으나, 'matched'
, 'impulse'
및 'least-squares'
방법은 내부 시간 지연을 갖는 상태공간 모델을 지원하지 않습니다.
다음과 같은 식별된 선형 시스템은 직접 이산화될 수 없습니다.
FunctionType
이'c'
인idgrey
모델. 먼저idss
모델로 변환하십시오.idproc
모델. 먼저idtf
또는idpoly
모델로 변환하십시오.
샘플 시간으로, 결과로 생성되는 이산시간 시스템의 샘플링 주기를 나타내는 양의 스칼라로 지정됩니다. Ts
는 sysc.TimeUnit
속성인 TimeUnit
를 단위로 합니다.
이산화 방법으로, 다음 값 중 하나로 지정됩니다.
'zoh'
— 영차 유지(디폴트 값). 제어 입력이 샘플 시간Ts
에서 조각별 상수라고 가정합니다.'foh'
— 삼각 근사(변형 일차 유지). 제어 입력이 샘플 시간Ts
에서 조각별 선형이라고 가정합니다.'impulse'
— 임펄스 불변 이산화'tustin'
— 쌍선형(Tustin) 방법. 주파수 사전 워핑(이전 명칭:'prewarp'
방법)과 함께 이 방법을 지정하려면c2dOptions
의PrewarpFrequency
옵션을 사용하십시오.'matched'
— 영점-극점 대응 방법'least-squares'
— 최소제곱 방법'damped'
—TRBDF2
수식을 기반으로 하는 감쇠 Tustin 근사(sparss
모델의 경우에만 해당).
각 변환 방법의 알고리즘에 대한 자세한 내용은 Continuous-Discrete Conversion Methods 항목을 참조하십시오.
이산화 옵션으로, c2dOptions
객체로 지정됩니다. 예를 들어, 사전 워핑 주파수, Thiran 필터의 차수 또는 이산화 방법을 옵션으로 지정할 수 있습니다.
출력 인수
이산시간 모델로, 입력 시스템 sysc
와 동일한 유형의 동적 시스템 모델로 반환됩니다.
sysc
가 식별된(IDLTI) 모델인 경우 sysd
는
sysc
의 측정된 성분과 잡음 성분을 모두 포함합니다.NoiseVariance
속성에 저장된, 식별된 연속시간 모델sysc
의 혁신 분산 λ는 잡음 스펙트럼의 스펙트럼 밀도의 강도로 해석됩니다. 따라서sysd
의 잡음 분산은 λ/Ts입니다.sysc
의 파라미터 공분산 추정값을 포함하지 않습니다. 모델을 이산화할 때 공분산을 변환하려면translatecov
를 사용하십시오.
상태공간 모델 sysc
의 연속시간 초기 조건 x0과 u0의 이산시간 초기 상태 벡터 x[0]으로의 매핑으로, 행렬로 반환됩니다. 초기 조건의 초기 상태 벡터로의 매핑은 다음과 같습니다.
시간 지연이 있는 상태공간 모델의 경우 c2d
는 지연을 이산화한 결과 발생한 추가 상태를 고려하여 행렬 G
를 0으로 채웁니다. 이산화된 시스템에서 시간 지연을 모델링하는 방법에 대한 논의는 Continuous-Discrete Conversion Methods 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨c2d
명령은 더 이상 추가 지연을 모델링할 때 상태를 더 추가하지 않습니다. 기본적으로, c2d
는 이제 내부 지연을 사용하고 동일한 개수의 상태를 가진 이산화된 모델을 반환합니다. 이로 인해 동작의 예측 가능성은 높아지고 연속시간에서 이산시간으로의 초기 상태 매핑은 단순화됩니다.
R2024a 이전의 기존 동작으로 되돌리려면 c2dOptions
를 사용하여 옵션 세트를 만들고 DelayModeling
을 "state"
로 설정합니다.
이제 쌍선형 Tustin 근사법을 사용하여 mechss
모델을 이산화할 수 있습니다. mechss
모델에서 'tustin'
근사법은 Tustin 이산화의 2차 형식을 계산합니다. 이는 mechss
모델에 상응하는 1차 sparss
에 Tustin을 적용하는 것과 동일합니다.
이제 c2d
를 사용하면 그리딩된 선형 파라미터 가변 모델과 같은 오프셋이 있는 모델을 이산화할 수 있습니다.
또한 c2dOptions
는 다음과 같은 두 가지 새로운 옵션을 제공합니다
DelayModeling
— 추가 지연을 내부 지연(디폴트 값)으로 모델링할지, 아니면 추가 상태로 모델링할지를 지정합니다.Consistency
— 상태공간 배열에 상태 및 지연 일관성을 적용합니다. 이 옵션은 그리딩된 LPV 또는 LTV 모델을 이산화할 때 유용합니다.
참고 항목
c2dOptions
| d2c
| d2d
| thiran
(Control System Toolbox) | translatecov
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)