How do I create a transfer function of a high order
33 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Sulaymon Eshkabilov
il 7 Feb 2023
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 Commenti
Sam Chak
il 8 Feb 2023
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 Commenti
Vedere anche
Categorie
Scopri di più su Model Order Reduction in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!