Building a transfer function.

Function I want to build is this:
Gp(s)
----------------------
1 + Gc(s)Gp(s)H(s)
1
Gp(s) = ---- Gc(s) = 0.8(s+12.5) H(s) = 1
s(s+10)
However, I can't seem to construct the transfer function due to Gp(s) being a fraction over itself.
My attempts at doing so do not result in the same answer as when I calculate it manually.
Thanks!

 Accepted Answer

Hi Jason Gauthier,
I do not see any troubles in constructing the transfer function you wrote above:
Gp = tf(1, [1 10 0]);
Gc = 0.8*tf([1 12.5],1);
H = tf(1,1);
Gp/(1 + Gc*Gp*H)
Result:
>> ans =
s^2 + 10 s
--------------------------------
s^4 + 20.8 s^3 + 118 s^2 + 100 s
Continuous-time transfer function.
The result shows the transfer function without cancelling poles and zeros. If you do so, you come up with the same transfer function behaviour:
bodeplot(Gp/(1+Gc*Gp*H))
hold on
bodeplot(tf(1,[1 10.8 10]))
Kind regards,
Robert

2 Comments

Thanks. The example I had is using a method that includes conv(), and it wasn't clear. I was able to produce the same output by building the transfers function like this:
s= tf('s')
Gp = (1/(s*(s+10))
But, one of the requirements presented was to build a function that accepted the numerator and denominator as arguments, of Gp, and Gc. Your method was much better for this, because I can provide those and build the transfer function out of them directly.
Thanks for presenting me with (yet) another method to accomplish this!
Hi Jason Gauthier,
Thank you for your positive feedback. If you like my answer, please, vote for it by clicking on the "thumb up"-symbol.
In case it serves your needs and answers your question thoroughly, accept it.
Kind regards,
Robert

Sign in to comment.

More Answers (1)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!