LozioAlce / ERP

An implementation of the ERP - Fast Exact Redistributed Pseudoinverse Method for Linear Actuation Systems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ERP

An implementation of the ERP method- Exact Redistributed Pseudoinverse Method

This is a code implementation based on the paper of Johannes Stephan and Walter Fichter:
Title: "Fast Exact Redistributed Pseudoinverse Method for Linear Actuation Systems"
DOI: 10.1109/TCST.2017.2765622

It solves the problem of control allocation when the request τ may lead to some of the control inputs to be saturated.
It clips the saturated actuator to its maximum and redistributes the remain part of the request among the other actuators.

Update 1

An extension is introduced:
In the original implementation of ERP method the pseudo-inverse is computed using Eq 15 (only if the reduced control effectiveness matrix is not rank deficient ).
The SVD decomposition exists even if the reduced control effectiveness matrix is rank deficient (M_eps_k in the code).

Using SVD decomposition (used by MATLAB pinv Moore-Penrose pseudoinverse) can increase the iterations and reduce the norm between the request τ and the possible deliverable τ.
The only required modification is that the while condition has to change into:
while(c_next < 1)

This result overlaps with the one from the paper of David Buzorgnia and Ali Khaki-Sedigh:
Title: "Constrained Dynamic Control Allocation in the Presence of Singularity and Infeasible Solutions"
https://arxiv.org/abs/1607.05209

The same solution for the example at section IV is found with this simple modification.

Update 2

Added a Quadratic Programming example to compare the solutions.
QP solution is based on the python package GEKKO.

To install GEKKO:
pip3 install gekko

To install tabulate python package (for printing final results):
pip3 install tabulate

About

An implementation of the ERP - Fast Exact Redistributed Pseudoinverse Method for Linear Actuation Systems


Languages

Language:MATLAB 51.2%Language:Python 48.8%