Skip to content

An open-source MATLAB toolbox for finding lower bounds on long-time averaged polynomial magnitudes in hydrodynamic-type systems

License

Notifications You must be signed in to change notification settings

aeroimperial-optimization/PONDS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PONDS (Polynomial Optimisation of Non-linear Systems)

An open-source MATLAB toolbox for studying non-linear dynamical systems using polynomial optimisation. Such systems should be expresed as ODE systems, hence PDEs must be truncated to N-dimensional ODE systems before using PONDS. Below is a quick guide to PONDS, for a more deatiled description and examples refer to the user manual, which can be found inside the ./docs/ folder.

Note: This code is under very active development and will be subject to changes and improvements, so watch this space! We expect that in the future PONDS will be able to go beyond just bounding infinite-time averages.

  • Latest release: 1.0
  • Release date: 29 August 2019
  • Release notes:
    • Toolbox UODESys has been included. UODESys interface has been modified to be more user-friendly.
    • Functions in ./BoundSys/ folder are design to find bounds on long-time averaged polynomial magnitudes in hydrodynamic-type systems.
    • Examples have been included for Lorenz attractor and N-dimensional truncations of Kuramoto-Sivashinsky equation.

Contents

System requirements

In order to use PONDS, you will need:

  1. A working version of YALMIP, the MATLAB optimization modelling software by J. Löfberg.
  2. Alternatively to YALMIP, SPOTLess can be used. However, YALMIP is yet needed by UODESys.
  3. A suitable SDP solver. If you are using YALMIP, choices include SeDuMi, SDPT3, SDPA and Mosek (free for users in academia). If you are using SPOTLess you can chose between Mosek and SeDuMi.

License

PONDS is distributed under the Apache 2.0 licence:

Copyright 2019, M. Lino.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Installation

To install PONDS:

  1. Download and install YALMIP.
  2. You can also clone or download SPOTLess from GitHub and install it by running spotinstall.m in MATLAB.
  3. Install a semidefinite programming (SDP) solver compatible with YALMIP and/or SPOTLess, such as Mosek or SeDuMi.
  4. Add folder lib/ and its subfolders to MATLAB's path by running
>> addpath(genpath(’./lib’))

at MATLAB's command prompt.

Getting started

To get started with PONDS, please look at the sample scripts on the folder ./examples/. A description of the examples can be found in the manual available in the ./docs/ folder.

For more information on the main functions in BoundSys() and BoundUsys(), please consult the documentation or type

>> help BoundSys
>> help BoundUsys

at MATLAB's command prompt.

How to cite PONDS

Should you use PONDS in your own work, please reference it by citing

  • Lino M. Bounds on long-time averaged magnitudes in hydrodynamic-type systems using sum-of-squares of polynomials technique. MSc thesis, Department of Aeronautics, Imperial College London, 2019.
@misc{ponds,
   author={Lino M},
   year={2019},
   title={Bounds on Long-Time Averaged Magnitudes in Hydrodynamic-Type Systems Using Sum-of-Squares of Polynomials Technique},
   school={Department of Aeronautics, Imperial College London}
}

Copyright

About

An open-source MATLAB toolbox for finding lower bounds on long-time averaged polynomial magnitudes in hydrodynamic-type systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages