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

5 次查看(过去 30 天)
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

回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Classical Control Design 的更多信息

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by