How to simplify transfer function?

156 次查看(过去 30 天)
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!

采纳的回答

Thomas
Thomas 2012-4-25
Try
s=tf('s');
A=1/(1+s);B=A/(1+A);
minreal(B)
  2 个评论
tqy
tqy 2012-4-27
Thanks a lot.
But in another case, I have to set the tolerance so that I can get what I want.
I think Matlab only keeps the default effective bit of the a number.
Tim
Tim 2015-2-5
Looks like a solution to my problem, however I need to find variables from a rewritten tf.
I have a tf G like below
lsys = ss(A B C D); % were all matrices are 3x3
G = tf(lsys);
from which I am intersted in rewriting G(2,2)
G(2,2)=
1.422e-05 s + 4.696e-06
-----------------------
s^2 + 21.76 s + 1.216
into
a * (b*s + 1)
-----------------
(c*s +1)*(d*s+1)
to yield constants a b c d
MatLab does not accept
minreal(G(2,2));
any suggestions?

请先登录,再进行评论。

更多回答(1 个)

Artur Araujo
Artur Araujo 2016-11-14
You could try H = zpk(G(2,2))

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by