www.gusucode.com > symbolic 源码程序 matlab案例代码 > symbolic/PadeApproximationOfDeadTimeStepInputExample.m
%% Find Response to Dead-Time Step Input using Pade Approximant %% 1 syms tau a x(t) y(t) xS(s) yS(s) H(s) tmp F = tau*diff(y)+y == a*x; %% 2 F = laplace(F,t,s) %% 3 F = subs(F,y(0),0) %% 4 F = simplify(F) %% 5 F = subs(F,[laplace(x(t),t,s) laplace(y(t),t,s)],[xS(s) yS(s)]) %% 6 F = F/xS(s); F = subs(F,yS(s)/xS(s),H(s)) %% 7 F = subs(F,H(s),tmp); H(s) = solve(F,tmp) %% 8 step = heaviside(t - 3); step = laplace(step) %% 9 y = H(s)*step %% 10 y = subs(y,[a tau],[1 3]); y = ilaplace(y,s); %% 11 stepPade22 = pade(step,'Order',[2 2]) %% 12 yPade22 = H(s)*stepPade22 %% 13 yPade22 = ilaplace(yPade22,s) %% 14 yPade22 = subs(yPade22,[a tau],[1 3]) %% 15 hold on grid on fplot([y yPade22],[0 20]) title('Pade Approximant for dead-time step input') legend('Response to dead-time step input',... 'Pade approximant [2 2]',... 'Location', 'Best') %% 16 stepPade22Rel = pade(step,'Order',[2 2],'OrderMode','Relative') yPade22Rel = H(s)*stepPade22Rel yPade22Rel = ilaplace(yPade22Rel) yPade22Rel = subs(yPade22Rel,[a tau],[1 3]) fplot(yPade22Rel,[0 20]) title('Pade Approximant for dead-time step input') legend('Response to dead-time step input',... 'Pade approximant [2 2]',... 'Relative Pade approximant [2 2]', 'Location', 'Best') %% 17 stepPade45 = pade(step,'Order',[4 5]) yPade45 = H(s)*stepPade45 yPade45 = subs(yPade45,[a tau],[1 3]) yPade45 = ilaplace(yPade45) yPade45 = vpa(yPade45) fplot(yPade45,[0 20]) title('Pade Approximant for dead-time step input') legend('Response to dead-time step input',... 'Pade approximant [2 2]',... 'Relative Pade approximant [2 2]',... 'Pade approximant [4 5]', 'Location', 'Best')