How do I create a transfer function of a high order
19 次查看(过去 30 天)
显示 更早的评论
I am trying to write a high order transfer function in matlab that i need to approximate and reduce to a lower order transfer function. My question is, how do i write a transfer function that has multiplication in between in the denominator:
Looks like this:
G(s) = (14.14s^2 + 318.2s + 707) / (s^2 +20s+101)*(100*s+1)*(0.2*s^2 + 1.2*s+1)
0 个评论
回答(2 个)
Sulaymon Eshkabilov
2023-2-7
It can be done this way:
s = tf('s');
G = (14.14*s^2 + 318.2*s + 707) / ((s^2 +20*s+101)*(100*s+1)*(0.2*s^2 + 1.2*s+1))
% Simulate and get step response of this TF:
step(G)
0 个评论
Sam Chak
2023-2-8
Hi @DAL
Here is an alternative approach that should produce the same result.
Note that num, p3, and den are vectors of polynomial coefficients.
num = [14.14 318.2 707] % numerator
p3 = conv([1 20 101], [100 1]); % obtain a 3rd-order polynomial via Convolution
den = conv(p3, [0.2 1.2 1]) % denominator
G = tf(num, den) % transfer function
To find a reduced-order approximation rsys of the LTI model G, balred() function can be used.
rsys = balred(G, 1) % Model order reduction
subplot(2, 1, 1)
step(G, 1000) % step response of G behaves like a 1st-order system
subplot(2, 1, 2)
step(rsys, 1000) % step response of rsys
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Model Order Reduction 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!