How to create a transfer function with no simplification ?
显示 更早的评论
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.
回答(2 个)
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
Paul
2022-10-15
1 个投票
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 个评论
Sam Chak
2022-10-15
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'.
Dimosthenis Leonidas
2022-10-16
类别
在 帮助中心 和 File Exchange 中查找有关 Conversion Between Symbolic and Numeric 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
