Clear Filters
Clear Filters

How to simplify the discrete time tf?

18 views (last 30 days)
Jaikrishnan Mahalekshmi Sahasranamam
Edited: Teo on 5 Sep 2024 at 15:59
I have a code given below. Initially I have used the function s=tf('s') to ceate a transfer function in continous domain. Then I convert it in to discrete domain using c2d function. I want to find two TF, STF and NTF from the discrete domain. But the STF I am getting is not the simplified one. But for NTF i get the simplified version.
For STF I should get (0.02503z2+0.1001z+0.02503)/(z3-4.4625z2+5.4739z-2.16116)
But I am getting (0.02503z5+0.02503z4-0.2002z3+0.2002z2-0.02503z-0.02503)/(z6-7.463z5+21.86z4-32.97z3+27.37z2-11.96z+2.16116)
I used simplify(STF) - doesnt work
I used simplifyFraction(STF) - Throwed error "Undefined function 'simplifyFraction' for input arguments of type 'tf'".
I used minreal(STF) - doesnt work. I think minreal is for continous time signals and doesnot work for DT TF.
Please help me how to simplify the DT TF STF.
clc
clear
close
fs=6e6;
b1=0.8076;
a1=-0.8076;
a2=-2.7856;
a3=-9.9000;
c1=1.7166;
c2=0.8332;
c3=1;
s = tf('s');
Kq=0.13;
%Forward path gain
Lo=(b1*c1*c2*c3*(fs^3))/(s^3);
%Feedback path gain
L11=(a1*c1*c2*c3*(fs^3))/(s^3);
L12=(a2*c2*c3*(fs^2))/(s^2);
L13=(a3*c3*fs)/s;
%Total Feedback path gain using superposition
L1=L11+L12+L13;
%CT to DT transfer
Loz = c2d(Lo,1/fs,'ZOH');
L1z = c2d(L1,1/fs,'ZOH');
FF=Loz*Kq;
FB=1+L1z*Kq;
% STF = (Loz*Kq)/(1+(L1z*Kq));
% NTF = 1/(1+(L1z*Kq));
STF=FF/FB;
NTF=1/FB;

Answers (1)

Teo
Teo on 5 Sep 2024 at 15:58
Edited: Teo on 5 Sep 2024 at 15:59
Try to type "zpk(L1z)" for example in the command window once you ran your project, you should get a simplified discrete time function

Categories

Find more on Networks in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!