Filters Module¶
Contents¶
Helper function for resolving different filter arguments passed to |
|
Function returning the order of the given filter vector vec. |
|
Compute the step size ratio based on filtered interpretation of previous step sizes and associated controller errors. |
Members¶
This module establishes standard filter vectors and functions to implement discrete PID-style stepsize controllers. The following filters are provided:
- First order filters:
Elementary: [1] (Also used as fallback filter if no step history exists)
- Second order filters:
H211D: [1, 1, -1] / 2
H211b: [1, 1, -1] / (b) (* Default b = 4)
H211PI: [1, 1, 0] / 6
PI3333: [2, -1, 0] / 3
PI3040: [7, -4, 0] / 10
PI4020: [3, -1, 0] / 5
- Third order filters:
H312D: [1, 2, 1, -3, -1] / 4,
H312b: [1, 2, 1, -3, -1] / (b) (* Default b = 8)
H312PID: [1, 2, 1, 0, 0] / 18
H321D: [5, 2 - 3, 1, 3] / 4
H321: [6, 1, -5, 15, 3] / 18Note
Filters marked (*) must be passed as a tuple to MODES
__init__with a given divisor b e.g. (‘H312b’, 8). This allows for a non-default value of the b parameter in these cases.
- modespy.filters._parse_filter_arg(filt_arg)¶
Helper function for resolving different filter arguments passed to
MODES.
- modespy.filters.filter_order(vec: ndarray) int¶
Function returning the order of the given filter vector vec.
- modespy.filters.filter_r(vec: ndarray, p: int, hs: array, errs: array, unit_errors: bool) float¶
Compute the step size ratio based on filtered interpretation of previous step sizes and associated controller errors.
- Parameters:
vec (array_like) – Filter vector.
p (int) – Order of method being filtered, used when scaling errors.
hs (array_like) – Recent step sizes with
len(hs)>= filter order.errs (array_like) – Recent controller errors corresponding to hs.
unit_errors (bool) – True if scaling errors to unit step sizes is required.
- Returns:
r – Step size ratio obtained via filtering.
- Return type:
float