Filter löschen
Filter löschen

How to simplify transfer function?

156 Ansichten (letzte 30 Tage)
tqy
tqy am 25 Apr. 2012
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!

Akzeptierte Antwort

Thomas
Thomas am 25 Apr. 2012
Try
s=tf('s');
A=1/(1+s);B=A/(1+A);
minreal(B)
  2 Kommentare
tqy
tqy am 27 Apr. 2012
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 am 5 Feb. 2015
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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Artur Araujo
Artur Araujo am 14 Nov. 2016
You could try H = zpk(G(2,2))

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by