How do I create a transfer function of a high order
Afficher commentaires plus anciens
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)
Réponses (2)
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)
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
Catégories
En savoir plus sur LPV and LTV Models dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

