How to simplify transfer function?
이전 댓글 표시
Hi guys
I have used the function
s=tf('s')
to ceate a transfer function, but I find that Matlab do not simplify the tf at all.
for example.
s=tf('s');
A=1/(1+s);B=A/(1+A);
the result is 1+s/(s^2+3*s+2)
What I want is 1/(2+s)
Anyone know that how to simplify the tf in Matlab?
Thank you!
댓글 수: 1
s=tf('s');
A=1/(1+s); %B=A/(1+A);
B = feedback(A,1)
채택된 답변
추가 답변 (1개)
Artur Araujo
2016년 11월 14일
1 개 추천
You could try H = zpk(G(2,2))
댓글 수: 2
Zuhair Abduljabbar
2021년 1월 31일
Thanks
In addition to this, you can set the DisplayFormat of the zpk model to 'timeconstant' which would show it in the format needed when displayed in the Command Window.
s = tf('s');
G = (1.422e-5*s + 4.696e-6)/(s^2 + 21.76*s + 1.216);
G_zpk = zpk(G);
G_zpk.DisplayFormat = 'timeconstant';
disp(G_zpk);
If you want to store the time constants in variables, you can use zpkdata to first extract the zeros and poles and the compute it using those.
[z,p,k] = zpkdata(G_zpk,'v');
tau_z = -1./z
tau_p = -1./p
Note that for a general approach you will have to account for complex poles and zeros.
카테고리
도움말 센터 및 File Exchange에서 MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!