a problem with pade approximation
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi
I have te code below
And i want to approxiamte delay with pade of first order :
clc
clear all
close all
s = tf('s');
G = [(-21.6*exp(-1*s))/(8.5*s+1) (1.26*exp(-0.3*s))/(7.05*s+1);...
(-2.75*exp(-1.8*s))/(8.2*s+1) (-4.28*exp(-0.35*s))/(9.0*s+1)]
G_new = pade (G,1)
but the answers is like this :
My tf was first order and with first order pade it should be second order
why some of it is third order ?
Thanks
0 Kommentare
Akzeptierte Antwort
Paul
am 3 Jun. 2021
tf objects have three delay properties: InputDelay, OutputDelay, and IODelay. Look at all three of these properties for each element of G:
s = tf('s');
G = [(-21.6*exp(-1*s))/(8.5*s+1) (1.26*exp(-0.3*s))/(7.05*s+1);...
(-2.75*exp(-1.8*s))/(8.2*s+1) (-4.28*exp(-0.35*s))/(9.0*s+1)]
[G(1,1).InputDelay G(1,1).OutputDelay G(1,1).IODelay G(1,2).InputDelay G(1,2).OutputDelay G(1,2).IODelay; G(2,1).InputDelay G(2,1).OutputDelay G(2,1).IODelay G(2,2).InputDelay G(2,2).OutputDelay G(2,2).IODelay]
As shown, the exp(-Ts) terms in G11 and G21 were divided into two different types of delays. It looks like the software is trying capture a common delay at the two outputs, and then makes up for the additional delay as needed with the IODelay. Then pade() comes along and substitutes a first order approximant for both of those delays in G11 and G21, resulting in third order models for Gnew11 and Gnew21
Gnew = pade(G,1)
Verify that Gnew11 is based on two first order approximants:
[num1,den1]=pade(.7,1);[num2,den2]=pade(.3,1);
Gnew(1,1), tf(-21.6,[8.5 1])*tf(num1,den1)*tf(num2,den2)
Explicitly using IODelay on the individual elements looks like it yields what you might have expected.
G2 = [-21.6/(8.5*s+1) (1.26)/(7.05*s+1);...
(-2.75)/(8.2*s+1) (-4.28)/(9.0*s+1)];
G2(1,1).IODelay = 1; G2(1,2).IODelay = 0.3; G2(2,1).IODelay = 1.8; G2(2,2).IODelay = 0.35;
G2
pade(G2,1)
Make sure that G and G2 have the same IO characteristics:
bode(G,G2)
1 Kommentar
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!