grande-dev / pFT-ANLC

Automatic learning of fault-tolerant nonlinear (and linear) control functions for nonlinear dynamical systems affected by actuator faults. The stability of the closed-loop system is certified by means of a Lyapunov Function, whose correctness is verified via SMT solvers.
GNU General Public License v3.0
0 stars 0 forks source link

Passive Fault Tolerant-Augmented Neural Lyapunov Control (pFT-ANLC)

This repository contains the software tool discussed in the paper:
Passive Fault-Tolerant Augmented Neural Lyapunov Control: a method to synthesise control functions for marine vehicles affected by actuators faults

The work can be read open-access here.

Scope of the code

pFT-ANLC is a software tool to automatically synthesise:

  1. a stabilising control law for a desired equilibrium of a nonlinear system affected by actuator faults;
  2. a Control Lyapunov Function (CLF) to certify the stability of the equilibrium.

The code is based on a loop between a Learner and a Falsifier. Starting from a finite set of state-space samples, the Learner trains two Artificial Neural Networks (ANNs), one representing a control law and the other a CLF.
In parallel, the Falsifier is tasked with verifying whether the candidate CLF satisfies the theoretical Lyapunov conditions within the dense domain over the Reals.
If the theoretical Lyapunov conditions are satisifed, the learning is halted and the resulting control law and CLF are returned. If the conditions are not satisfied, the Falsifier returns a set of points (denoted as counterexample) where the Lyapunov conditions are violated. These points are added to the dataset and the learning process is further iterated.
The learning system attempts to simultaneously stabilise a set of dynamics, ecompassing the nominal dynamics (fault-free) and the faulty modes.

A schematic of the learning architecture is hereby illustrated:

Key features

The pFT-ANLC tool features:

Key property

Installation

Instructions on installation are available within the INSTALLATION file.

Step-by-step guide

To synthesise control laws and CLFs for your own dynamics, a step-by-step example is reported in the WIKI file.

Hereby an example of how a CLF and a corresponding Lie derivative function are updated over successive training iterations.
Note the yellow patches of the Lie derivative gradually disappearing as the training proceeds. The training halts once, at the same time, the CLF is certified to be positive definite and the Lie derivative is certified to be negative definite.

CLF evolution Lie derivative function evolution

Library architecture

The library architecture is composed of three main modules:

  1. the main file loading the configuration and the system dynamics;
  2. the file running the learning steps and training the ANNs;
  3. the postprocessing subroutines to plot the synthesised functions and to run the closed-loop tests.

Framework limitations

  1. The results presented in the associated article cover 2- and 3-dimensional dynamical systems.

The code currently supports:

Contacts

The authors can be contacted for feedback, requests of clarifications or requests of support at:
grande.rdev@gmail.com

Reference

The article can be read open-access here.

This work can be cited with the following BibTeX entry:

@article{grande2024passive,
  title={Passive Fault-Tolerant Augmented Neural Lyapunov Control: A method to synthesise control functions for marine vehicles affected by actuators faults},
  author={Grande, Davide and Peruffo, Andrea and Salavasidis, Georgios and Anderlini, Enrico and Fenucci, Davide and Phillips, Alexander B and Kosmatopoulos, Elias B and Thomas, Giles},
  journal={Control Engineering Practice},
  volume={148},
  pages={105935},
  year={2024},
  publisher={Elsevier}
}