| Contents | Index |
sysd =
c2d(sys,Ts)
sysd =
c2d(sys,Ts,method)
sysd =
c2d(sys,Ts,opts)
[sysd,G]
= c2d(sys,Ts,method)
[sysd,G]
= c2d(sys,Ts,opts)
sysd = c2d(sys,Ts) discretizes the continuous-time dynamic system model sys using zero-order hold on the inputs and a sample time of Ts seconds.
sysd = c2d(sys,Ts,method) discretizes sys using the specified discretization method method.
sysd = c2d(sys,Ts,opts) discretizes sys using the option set opts, specified using the c2dOptions command.
[sysd,G] = c2d(sys,Ts,method) returns a matrix, G that maps the continuous initial conditions x0 and u0 of the state-space model sys to the discrete-time initial state vector x [0]. method is optional. To specify additional discretization options, use [sysd,G] = c2d(sys,Ts,opts).
Use the syntax sysd = c2d(sys,Ts,method) to discretize sys using the default options formethod. To specify additional discretization options, use the syntax sysd = c2d(sys,Ts,opts).
To specify the tustin method with frequency prewarping (formerly known as the 'prewarp' method), use the PrewarpFrequency option of c2dOptions.
sys |
Continuous-time dynamic system model (except frequency response data models). sys can represent a SISO or MIMO system, except that the 'matched' discretization method supports SISO systems only. sys can have input/output or internal time delays; however, the 'matched' and 'impulse' methods do not support state-space models with internal time delays. The following identified linear systems cannot be discretized directly:
For the syntax [sysd,G] = c2d(sys,Ts,opts), sys must be a state-space model. |
Ts |
Sample time. |
method |
String specifying a discretization method:
For more information about discretization methods, see Continuous-Discrete Conversion Methods. |
opts |
Discretization options. Create opts using c2dOptions. |
sysd |
Discrete-time model of the same type as the input system sys. Discretization of an identified model transforms both its measured and noise components. The innovations variance λ of the continuous-time identified model sys, stored in its NoiseVarianceproperty, is interpreted as the intensity of the spectral density of the noise spectrum. The noise variance in sysd is thus λ/Ts. |
G |
Matrix relating continuous-time initial conditions x0 and u0 of the state-space model sys to the discrete-time initial state vector x [0], as follows:
For state-space models with time delays, c2d pads the matrix G with zeroes to account for additional states introduced by discretizing those delays. See Continuous-Discrete Conversion Methods for a discussion of modeling time delays in discretized systems. |
Discretize the continuous-time transfer function:
![]()
with input delay Td = 0.35 second. To discretize this system using the triangle (first-order hold) approximation with sample time Ts = 0.1 second, type
H = tf([1 -1], [1 4 5], 'inputdelay', 0.35);
Hd = c2d(H, 0.1, 'foh'); % discretize with FOH method and
% 0.1 second sample time
Transfer function:
0.0115 z^3 + 0.0456 z^2 - 0.0562 z - 0.009104
---------------------------------------------
z^6 - 1.629 z^5 + 0.6703 z^4
Sampling time: 0.1
The next command compares the continuous and discretized step responses.
step(H,'-',Hd,'--')

Discretize the delayed transfer function
![]()
using zero-order hold on the input, and a 10-Hz sampling rate.
h = tf(10,[1 3 10],'iodelay',0.25); % create transfer function hd = c2d(h, 0.1) % zoh is the default method
These commands produce the discrete-time transfer function
Transfer function:
0.01187 z^2 + 0.06408 z + 0.009721
z^(-3) * ----------------------------------
z^2 - 1.655 z + 0.7408
Sampling time: 0.1
In this example, the discretized model hd has a delay of three sampling periods. The discretization algorithm absorbs the residual half-period delay into the coefficients of hd.
Compare the step responses of the continuous and discretized models using
step(h,'--',hd,'-')

Discretize a state-space model with time delay, using a Thiran filter to model fractional delays:
sys = ss(tf([1, 2], [1, 4, 2])); % create a state-space model sys.InputDelay = 2.7 % add input delay
This command creates a continuous-time state-space model with two states, as the output shows:
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 (listed by channel): 2.7
Continuous-time model.Use c2dOptions to create a set of discretization options, and discretize the model. This example uses the Tustin discretization method.
opt = c2dOptions('Method', 'tustin', 'FractDelayApproxOrder', 3);
sysd1 = c2d(sys, 1, opt) % 1s sampling time These commands yield the result
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
Sampling time: 1
Discrete-time model.The discretized model now contains three additional states x3, x4, and x5 corresponding to a third-order Thiran filter. Since the time delay divided by the sampling time is 2.7, the third-order Thiran filter (FractDelayApproxOrder = 3) can approximate the entire time delay.
Discretize an identified, continuous-time transfer function and compare its performance against a directly estimated discrete-time model
load iddata1 sys1c = tfest(z1, 2);
second order continuous-time transfer function:
sys1d = c2d(sys1c, 0.1, 'zoh'); sys2d = tfest(z1, 2, 'Ts', 0.1);
discrete-time transfer function:
compare(z1, sys1d, sys2d)
the two systems are virtually identical.
Discretize an identified state-space model in order to build a one-step ahead predictor of its response.
load iddata2 sysc = ssest(z2, 4); sysd = c2d(sysc, 0.1, 'zoh') [A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C, [K B-K*D], C, [0 D], 0.1);
The Predictor is a two input model which uses the measured output and input signals ([z1.y z1.u]) to compute the 1-steap predicted response of sysc.
For information about the algorithms for each c2d conversion method, see Continuous-Discrete Conversion Methods.
c2dOptions | d2c | d2d | thiran

Learn more about resources for designing, testing, and implementing control systems.
Get free kit| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |