Azzera filtri
Azzera filtri

Z transfer fcn under simulink and cmd line

1 visualizzazione (ultimi 30 giorni)
Bruce
Bruce il 5 Apr 2023
Commentato: Jon il 6 Apr 2023
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 Commenti
Jon
Jon il 5 Apr 2023
Please attach you Simulink model and any scripts or other functions needed to run your example - thanks
Jon
Jon il 5 Apr 2023
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

Accedi per commentare.

Risposta accettata

Jon
Jon il 5 Apr 2023
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 Commenti
Bruce
Bruce il 6 Apr 2023
Thanks a lot, Jon. Your answer and explaination is quite clear, thanks again!
Jon
Jon il 6 Apr 2023
Your welcome, it was an interesting problem

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Simulink in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by