Discrete transfer function show different results in Simulink and in Matlab!

4 views (last 30 days)
I have a discrete transfer function,
s = tf('s')
Gs=(5*s+1)/(s^2+2*s+1)
The step response of Gs is;
Step_Resp_Gs.jpg
then descritize Gs with Zoh with T=0.001,
Gz_inv =
z^2 - 1.998 z + 0.998
---------------------
0.004996 z - 0.004995
Step response of Gz is;
Step_Resp_Gz.jpg
Both results are the same, that is good.
Let s do the same thing in Simulink;
simulink_model.JPG
As you see below, the the step responses of Gs and Gz DO NOT match each other! Gs's response is the same as the one in Matlab, but the Gz's response is like a ramp output!
Simulink_step_response.JPG
Where is the problem? Why the discrete Gz's response does not match to either Matlab's result or Gs's step response? Can you please help on that?
Thank you
Murat Gozu

Answers (1)

Navya Seelam
Navya Seelam on 11 Dec 2019
Hi,
This might be because of the unstable poles in discrete transfer function. Try using LTI block instead of discrete transfer function block.

Products


Release

R2016a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!