How to simplify the discrete time tf?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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;
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Classical Control Design dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!