필터 지우기
필터 지우기

How to simplify the discrete time tf?

조회 수: 4 (최근 30일)
Jaikrishnan Mahalekshmi Sahasranamam
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개)

카테고리

Help CenterFile Exchange에서 Classical Control Design에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by