Z transfer fcn under simulink and cmd line

1 回表示 (過去 30 日間)
Bruce
Bruce 2023 年 4 月 5 日
コメント済み: Jon 2023 年 4 月 6 日
I create a simple cmd from S to Z domain as below, and the result is matched with my understanding;
clear
rth1=0.0268;
tau1=1066.6;
Ts=0.05;
tf1=tf(rth1,[tau1 1])
dtf1=c2d(tf1,Ts)
figure;
step(tf1);
figure
step(dtf1);
but when i create this under simulink, the result is not matched, as you can see the Z transfer fcn output is quite different with the S transfer fcn.
Is there anyone can help me?
  2 件のコメント
Jon
Jon 2023 年 4 月 5 日
Please attach you Simulink model and any scripts or other functions needed to run your example - thanks
Jon
Jon 2023 年 4 月 5 日
Please see my answer below, I was able to work out what the issue was without your code, so no need to attach it now

サインインしてコメントする。

採用された回答

Jon
Jon 2023 年 4 月 5 日
This appears to be due to a round off error in the denominator of the discrete transfer function input to Simulink.
Try for example with the denominator set to
[1 -0.999949]
instead of
[1 -1]
and you will see that the step response of the continuous and discrete approximation are now much closer
  5 件のコメント
Bruce
Bruce 2023 年 4 月 6 日
Thanks a lot, Jon. Your answer and explaination is quite clear, thanks again!
Jon
Jon 2023 年 4 月 6 日
Your welcome, it was an interesting problem

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink Environment Customization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by