how to convert tranfer function into a polynomial function?

I have got an transfer function which is having a relative degree of 4 or higher. I want to find out the gain for root locus based design for a given dominant pole. for the Transfer function I have got i need to substitute the value of s. for that i need to convert Transfer function into a polynomial so that i can use substitution operation.

3 commentaires

Hi H,
You have a transfer an open-loop transfer function G(s) of relative degree 4 (or higher). You also have a value, s0, that you know for a fact is a closed loop pole. And you'd like to find the value of K such that 1 + K*G(s0) = 0. Am I correctly understanding the problem?
Can you include an example problem and show how you'd try to solve it? Is you question about the math or how to implement the math in Matlab.
also is there a way to convert transfer function to polynomial or symbolic?
i have an open loop transfer function C*P= 1.656e09 s^4 + 2.751e12 s^3 + 1.196e15 s^2 + 4.445e16 s + 4.433e15
------------------------------------------------------------------------------------
25 s^7 + 75982 s^6 + 8.552e07 s^5 + 4.409e10 s^4 + 1.057e13 s^3 + 1.049e15 s^2
+ 2.797e16 s
i am finding the closed loop Transfer function =CP/(1+CP) but the matlab is not solving it properly
like I am getting 4.14e10 s^11 + 1.946e14 s^10 + 3.805e17 s^9 + 4.003e20 s^8 + 2.445e23 s^7
+ 8.735e25 s^6 + 1.754e28 s^5 + 1.802e30 s^4 + 8.014e31 s^3 + 1.248e33 s^2
+ 1.24e32 s
---------------------------------------------------------------------------------------
625 s^14 + 3.799e06 s^13 + 1.005e10 s^12 + 1.524e13 s^11 + 1.474e16 s^10 + 9.58e18 s^9
+ 4.313e21 s^8 + 1.36e24 s^7 + 2.964e26 s^6 + 4.218e28 s^5 + 3.494e30 s^4
+ 1.388e32 s^3 + 2.031e33 s^2 + 1.24e32 s
instead of 1.656e09 s^4 + 2.751e12 s^3 + 1.196e15 s^2 + 4.445e16 s + 4.433e15
-----------------------------------------------------------------------------------
25 s^7 + 75982 s^6 + 8.552e07 s^5 + 4.574e10 s^4 + 1.332e13 s^3 + 2.245e15 s^2
+ 7.243e16 s + 4.433e15.??

Connectez-vous pour commenter.

Réponses (1)

Hi @H
I think you use the minreal() and tfdata() function.
s = tf('s');
ncp = 1.656e09*s^4 + 2.751e12*s^3 + 1.196e15*s^2 + 4.445e16*s + 4.433e15;
dcp = 25*s^7 + 75982*s^6 + 8.552e07*s^5 + 4.409e10*s^4 + 1.057e13*s^3 + 1.049e15*s^2 + 2.797e16*s;
G = ncp/dcp;
Gcl = feedback(G, 1)
Gcl = 1.656e09 s^4 + 2.751e12 s^3 + 1.196e15 s^2 + 4.445e16 s + 4.433e15 ------------------------------------------------------------------------------------------------------ 25 s^7 + 75982 s^6 + 8.552e07 s^5 + 4.575e10 s^4 + 1.332e13 s^3 + 2.245e15 s^2 + 7.242e16 s + 4.433e15 Continuous-time transfer function.
Gcl = minreal(Gcl)
Gcl = 6.624e07 s^4 + 1.1e11 s^3 + 4.784e13 s^2 + 1.778e15 s + 1.773e14 ------------------------------------------------------------------------------------------------ s^7 + 3039 s^6 + 3.421e06 s^5 + 1.83e09 s^4 + 5.328e11 s^3 + 8.98e13 s^2 + 2.897e15 s + 1.773e14 Continuous-time transfer function.
[num,den] = tfdata(Gcl, 'v')
num = 1×8
1.0e+15 * 0 0 0 0.0000 0.0001 0.0478 1.7780 0.1773
den = 1×8
1.0e+15 * 0.0000 0.0000 0.0000 0.0000 0.0005 0.0898 2.8968 0.1773

Catégories

Question posée :

H
H
le 12 Mar 2023

Community Treasure Hunt

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

Start Hunting!

Translated by