10000 add numerator degree m to control.pade · Issue #73 · python-control/python-control · GitHub
[go: up one dir, main page]

Skip to content
add numerator degree m to control.pade #73
Closed
@jason-s

Description

@jason-s

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):

image

image

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0