How to create a transfer function with no simplification ?

15 views (last 30 days)
s=tf('s')
num=(s+0.1946)*1.4;
den=(4*s+1)*(50*s+4)*(12*s+1);
G=tf(num/den)
G = zpk((s+0.1946)*1.4/((4*s+1)*(50*s+4)*(12*s+1)))
If I use zpk command I get finally a simplification which leads to:
(which is ideal for calculating directly the pole and zero locations)
G =
0.00058333 (s+0.1946)
-----------------------------
(s+0.25) (s+0.08333) (s+0.08)
Continuous-time zero/pole/gain model.
I would like to get excactly the same coefficients like is given to num and den above. ((s+0.1946)*1.4)/((4*s+1)*(50*s+4)*(12*s+1))
Is it posible?
Thank you.

Answers (2)

Sam Chak
Sam Chak on 15 Oct 2022
The zpk() command shows the zero/pole/gain model. (), , and () are not in pole forms.
If the native transfer function is required for analysis, then how about this form?
syms s
num = (s + 0.1946)*1.4;
den = (4*s + 1)*(50*s + 4)*(12*s + 1);
G = num/den
G = 

Paul
Paul on 15 Oct 2022
I'm almost certain that this can't be done in the CST. If just wanted for display purposes you'd have to write your own code, but even that might be painful because the numerator is in the form of (s + a) but the denominator factors are in the form (s/b + 1) so you'd need different code to handle those two formats.
This answer shows some code for reformatting the display of a discrete-time tf to show more precision of the coefficients. Maybe it could be a starting point for this use case?
  2 Comments
Sam Chak
Sam Chak on 15 Oct 2022
I think if OP wants for display purposes without any computational analysis, perhaps using LaTeX or any professional Equation Editor should make the Transfer Function looks 'beautiful'.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!