1 view (last 30 days)
Amir Hamzah UTeM on 10 Aug 2011
hi..im try to use pade-laplace method in matlab to model multi exponential,however im stuck at part with pade approximation. here my code,
for t=1:100
syms A1 A2 L1 L2
y(t)=A1*exp(-L1*t)+A2*exp(-L2*t);
end
lap=laplace(y)
i dont know how to use pade approximation with this function for the next process. can someone guide me? thanks.
Amir Hamzah UTeM on 10 Aug 2011
my problem is right now,i dont know how to use pade approximation for the next procedure. when i do it manually like pade=L(s-1)/L(s) matlab take too long to produce the last equation.
for t=1:100
syms A1 A2 L1 L2
y(t)=A1*exp(-L1*(t-1))+A2*exp(-L2*(t-1)); %y(t-1)
y1(t)=A1*exp(-L1*t)+A2*exp(-L2*t); %y(t)
end
lap=laplace(y); % get L(s-1)
lap1=laplace(y1); % get L(s)
pad=lap/lap1; % take too long to process L(s-1)/L(s

Paulo Silva on 11 Aug 2011
Why do you define the symbolic variables in every loop? there's no need for it, just define the symbolic variables once before the for loop.
Now for the time it takes you probably know the reason, the symbolic operations and mostly the laplace is causing the slowness.
Try the pade function from the Control System Toolbox
This version of your code should be faster
syms A1 A2 L1 L2
t=1:100;
y(t)=A1*exp(-L1*(t-1))+A2*exp(-L2*(t-1)); %y(t-1)
y1(t)=A1*exp(-L1*t)+A2*exp(-L2*t); %y(t)
lap=laplace(y); % get L(s-1)
lap1=laplace(y1); % get L(s)
pad=lap./lap1; % take too long to process L(s-1)/L(s)
Paulo Silva on 11 Aug 2011
http://www.mathworks.com/help/toolbox/control/ug/bstzkhr.html