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

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.??

댓글을 달려면 로그인하십시오.

답변 (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

카테고리

도움말 센터File Exchange에서 Dynamic System Models에 대해 자세히 알아보기

질문:

H
H
2023년 3월 12일

답변:

2023년 3월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by