Skip to content

FraCTune is a Matlab package for tuning fractional-order controllers with the Cross-Entropy method and augmented Lagrangian formulation.

License

Notifications You must be signed in to change notification settings

americocunhajr/FraCTune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fractional Control Tuner via Cross-Entropy Method

FraCTune: Fractional Control Tuner via Cross-Entropy Method is a Matlab package that implements a framework for tuning fractional-order controllers. The package leverages the Cross-Entropy (CE) method for global search optimization and employs an augmented Lagrangian formulation to handle equality and inequality constraints. With some straightforward adaptations, the FracTune strategy can also be applied to other types of modern controllers.

FraCTune uses as optimization tool the package CEopt - Cross-Entropy Optimizer, which can be downloaded at https://ceopt.org.

Table of Contents

Overview

FraCTune was developed to tune fractional-order controllers for dynamical systems by solving nonconvex optimization problems via the cross-entropy method. The underlying results are reported in the following publication: More details are in the following paper:

  • J. C. C. Basilio, J. G. Telles Ribeiro, T. R. Oliveira and A. Cunha Jr, Optimal tunning of fractional controllers via cross-entropy method, 2024 (under review)

Preprint available here.

Features

  • Implements Cross-Entropy method for fractional-control tuning
  • Handles equality and inequality constraints using augmented Lagrangian method
  • Transparent "gray-box" optimizer with intuitive control parameters
  • Robust and scalable for moderately sized complex problems
  • Demonstrated applicability through select case studies

Usage

To get started with FraCTune, follow these steps:

  1. Clone the repository:
    git clone https://github.com/americocunhajr/FraCTune.git
  2. Navigate to the code directory:
    cd FraCTune/FraCTune-1.0
  3. Navigate to the desired case directory:
    cd FraCTune/FraCTune-1.0/CaseX-XXX
  4. To tune a fractional controller, execute the main file corresponding to your case:
    MainCEoptCaseX_XXXX

Documentation

The routines in FraCTune are well-commented to explain their functionality. Each routine includes a description of its purpose, as well as inputs and outputs.

Reproducibility

Simulations done with FraCTune are fully reproducible, as can be seen on this CodeOcean capsule.

Authors

  • Julio Cesar de Castro Basilio
  • José Geraldo Telles Ribeiro
  • Americo Cunha Jr

Citing FracTune

We ask the code users to cite the following manuscript in any publications reporting work done with our code:

  • J. C. C. Basilio, J. G. Telles Ribeiro, T. R. Oliveira and A. Cunha Jr, Optimal tunning of fractional controllers via cross-entropy method, 2024 (under review)
@article{Basilio2024FraCTune,
   author  = {J. C. C. Basilio and J. G. {Telles Ribeiro} and T. R. Oliveira and A {Cunha~Jr}},
   title   = {Optimal tunning of fractional controllers via cross-entropy method},
   journal = {Under Review},
   year    = {2024},
   volume  = {~},
   pages   = {~},
   doi    = {~},
}

License

FraCTune is released under the MIT license. See the LICENSE file for details. All new contributions must be made under the MIT license.

Institutional support

Funding

         

About

FraCTune is a Matlab package for tuning fractional-order controllers with the Cross-Entropy method and augmented Lagrangian formulation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published