Convert model from continuous to discrete time
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)
G that maps the continuous initial conditions x0 and u0 of
the state-space model
sys to the discrete-time
initial state vector x.
optional. To specify additional discretization options, use
system model (except frequency response data models).
The following identified linear systems cannot be discretized directly:
For the syntax
Discretization method, specified as one of the following values:
For more information about discretization methods, see Continuous-Discrete Conversion Methods (Control System Toolbox).
Discretization options. Create
Discrete-time model of the same type as the input system
Matrix relating continuous-time initial conditions x0 and u0 of
the state-space model
For state-space models with time delays,
Discretize the following continuous-time transfer function:
This system has an input delay of 0.3 s. Discretize the system using the triangle (first-order-hold) approximation with sample time
Ts = 0.1 s.
H = tf([1 -1],[1 4 5],'InputDelay', 0.3); Hd = c2d(H,0.1,'foh');
Compare the step responses of the continuous-time and discretized systems.
Discretize the following 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); 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.
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
Compare the step responses of the continuous-time and discretized models.
Create a continuous-time state-space model with two states and an input delay.
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.
Discretize the model using the Tustin discretization method and a Thiran filter to model fractional delays. The sample time
Ts = 1 second.
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.
The discretized model now contains three additional states
x5 corresponding to a third-order Thiran filter. Since the time delay divided by the sample time is 2.7, the third-order Thiran filter (
'FractDelayApproxOrder' = 3) can approximate the entire time delay.
Estimate a continuous-time transfer function, and discretize it.
load iddata1 sys1c = tfest(z1,2); sys1d = c2d(sys1c,0.1,'zoh');
Estimate a second order discrete-time transfer function.
sys2d = tfest(z1,2,'Ts',0.1);
Compare the response of the discretized continuous-time transfer function model,
sys1d, and the directly estimated discrete-time model,
The two systems are almost identical.
Discretize an identified state-space model to build a one-step ahead predictor of its response.
Create a continuous-time identified state-space model using estimation data.
load iddata2 sysc = ssest(z2,4);
Predict the 1-step ahead predicted response of
Discretize the model.
sysd = c2d(sysc,0.1,'zoh');
Build a predictor model from the discretized model,
[A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);
Predictor is a two-input model which uses the measured output and input signals
([z1.y z1.u]) to compute the 1-step predicted response of
Simulate the predictor model to get the same response as the
The simulation of the predictor model gives the same response as
Use the syntax
sysd = c2d(sys,Ts,method) to
sys using the default options for
To specify additional discretization options, use the syntax
To specify the
tustin method with
frequency prewarping (formerly known as the
PrewarpFrequency option of
For information about the algorithms for each
method, see Continuous-Discrete Conversion Methods (Control System Toolbox).