Description
Pade approximants to e^-sT with equal degrees for the numerator and denominator have some undesirable properties, in particular the behavior right at time t=0. Miklós Vajta has a nice paper exploring the effects of using a slightly lower degree for the numerator and it would be helpful to add an optional argument control.pade(T, n=1, m=None)
where if m
is None
, it is set equal to n
, otherwise it provides an independent degree for the numerator. (restricted to 0 ≤ m ≤ n).
I am not exactly familiar with the right numerical way to construct polynomials of this type; I have done some exploration by calculating the polynomial coefficients of the Taylor series of degree m+n
for e^-sT and then using scipy.misc.pade
to compute an nth-degree rational approximant. This seems to work fairly well for small degrees but I suspect it has deficiencies of numerical errors.
Here's some example plots showing the issue for (m,n) = (7,11) and (m,n) = (11,11):
The equal-degree rational approximation produces lower error after the step begins, but has a lot of oscillation during the delay time; lower degrees in the numerator produce a "quieter" delay, at the cost of a worse approxiation after the step begins.