Jerk Bounded Filter

Introduction

The performances of feedback control systems are affected by the characteristics of their reference signals. Better performances can typically be obtained when the dynamics of driving signals is limited, with limits that can be modulated depending on the control targets. The required smoothness can be rarely guaranteed when reference signals are evaluated on-the-fly on the basis of the operating conditions: systems performances can worsen due to the occurrence of saturation and signal discontinuities. Improved answers can be obtained by smoothing reference signals through proper filters.

The Jerk Bounded Filter here proposed is able to generate output signals that are characterized by limited velocities, accelerations and jerks. In particular, given any rough reference signal composed by steps, ramps, and parabolas, it generates output signals that are continuous up to the second time derivative and whose first three time derivatives are constrained between assigned asymmetric bounds.


The following list summarizes the main characteristics of the filter output

  1. The output signal in continuous, together with its first two time derivatives;
  2. The first three time derivatives of the output signal are bounded. Bounds can be asymmetric and can be changed in real-time;
  3. The filter output exactly tracks any feasible input signal given by steps, ramps, and parabolas;
  4. Any feasible input signal is hanged with minimum time transients and without overshoot;
  5. The filter output mimics at best any unfeasible input signal;
  6. If the output signal is unfeasible due to bound changes, feasibility is newly gained in minimum time.

The demo package that can be downloaded from this page has been developed for the Matlab® environment and is has been tested under Windows® OS (32 and 64 bit), Mac® OS X (64 bit), and Debian/Linux® (32 and 64 bit).

The provided filter is fully functioning, i.e., all its features have been activated, but the demo version is not optimized for speed, so that it can be profitably used for simulation purposes, but not for real-time applications.

A complete description of the Jerk Bounded Filter can be found in


C. Guarino Lo Bianco and F. Ghilardelli (2014). A discrete-time filter for the generation of signals with asymmetric and variable bounds on velocity, acceleration, and jerk. IEEE Trans on Industrial Electronics, Vol. 61, NO. 8, pp. 4115-4125 DOI: 10.1109/TIE.2013.2284135


Package Content

  1. init.m: Matlab® script that initializes the simulation variables;
  2. modelGuarinoGhilardelli.mdl: Matlab® model which implements a simple Reference Generator and the Jerk Constrained Filter;
  3. Model_GUI.m and Model_GUI.fig: A simple Matlab® GUI that that is used to online change the given bounds on velocity, acceleration, and jerk;
  4. curv.m, vel.m, acc.m, line_param.m, and parabola_param.m: Matlab® scripts that are used by the Reference Generator in order to produce a sequence of parabolas and segments. It is possible to change the definition of these curves by acting on the init.m file;
  5. plotT.m: Matlab® script that is used to show the filter outputs;
  6. controller.m: Matlab® script which implements the sliding mode controller of the Jerk Bounded Filter;
  7. findbox.*: Platform dependent library that is needed by the sliding mode controller of the Jerk Bounded Filter.

How it works

The demo can be run by executing the following steps::

  1. From the Matlab® shell launch init.m;
  2. Open JerkBounderFilter.mdl which, in turn, automatically opens a GUI that permits the online handling of the filter bounds;
  3. Start simulation;
  4. Enjoy!
  1. The output of the Jerk Bounded Filter.

Download

Please complete as much of the form below, and then push the Send button. Bold fields are mandatory.

An email, containing the download link, will be sent to the provided email address. The link lasts for 2 days.


E-mail *
Name
Surname
Your organization *

Your country *

Type of application *