How can I extract numerator and denominator as polynomials from a transfer function?

577 vues (au cours des 30 derniers jours)
I'm am having some stupid trouble with transfer functions.
If I have to write the tf:
s^2 + 2 s
G(s) = ---------------------
s^3 - 2 s^2 + 4 s + 1
I could write: G=tf([2 1 0],[1 -2 4 1])
But now, I would like to extract numerator and denominator as array. If I write: [Num, Den]=tfdata(G) the programm gives me them as cells
Num =
cell
[1×4 double]
Den =
cell
[1×4 double]
How can I take numerator and denominator as arrays? I would like to receive
Num =
[2 1 0]
Den =
[1 -2 4 1]
Thank you
  3 commentaires
Walter Roberson
Walter Roberson le 21 Août 2018
Is that a question about a Simulink block?
Petr Danielka
Petr Danielka le 10 Déc 2022
If you make the "Transfer Function" block bigger, it will show properly

Connectez-vous pour commenter.

Réponse acceptée

Thiago Barreto
Thiago Barreto le 16 Août 2018
Just do this:
G = tf([2 1 0],[1 -2 4 1]);
[num den] = tfdata(G, 'v');
num =
0 2 1 0
den =
1 -2 4 1

Plus de réponses (1)

Bill Tubbs
Bill Tubbs le 24 Fév 2020
Modifié(e) : Bill Tubbs le 24 Fév 2020
The answer is good but what if I want to go one step further?
What if I want A(s) and B(s) where G(s) = B(s)/A(s)?
This seems to work, is this the right way to do it?
>> B = tf(num,1)
B =
2 s^2 + s
Continuous-time transfer function.
>> A = tf(den,1)
A =
s^3 - 2 s^2 + 4 s + 1
Continuous-time transfer function.

Catégories

En savoir plus sur Modeling 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!

Translated by