This repository contains the MATLAB implementation and numerical results of the paper "A Convex Optimization Approach to Compute Trapping Regions for Lossless Quadratic Systems" by Shih-Chi Liao, A. Leonid Heide, Maziar S. Hemati, Peter Seiler.
The manuscript is currently under review. You can find the pre-print version here.
Trapping Region of the Lorenz attractor. The left plot shows the trajectories in x2-x3 plane with x1=0. The right plot shows energy versus time evaluated along the state trajectories. All trajectorise eventually converges into both trapping regions (blue and red circles), while the proposed method (red) is the more accurate characterization of the system.
Quadratic systems with lossless quadratic terms arise in many applications, including models of atmosphere and incompressible fluid flows. Such systems have a trapping region if all trajectories eventually converge to and stay within a bounded set. Conditions for the existence and characterization of trapping regions have been established in prior works for boundedness analysis. However, prior solutions have used non-convex optimization methods, resulting in conservative estimates. In this paper, we build on this prior work and provide a convex semidefinite programming condition for the existence of a trapping region. The condition allows precise verification or falsification of the existence of a trapping region. If a trapping region exists, then we provide a second semidefinite program to compute the least conservative trapping region in the form of a ball. Two low-dimensional systems are provided as examples to illustrate the results. A third high-dimensional example is also included to demonstrate that the computation required for the analysis can be scaled to systems of up to
The scripts is developed under Matlab R2021a with the following packages:
- CVX: Matlab Software for Disciplined Convex Programming V2.2
- MOSEK optimization solver V9.1.9
- BoundednessAnalysis folder contains the functions used for the trapping region analysis
- Model folder contains the mathematical models for the system to be analyzed. The models are implemented as an object instance. The system data is stored in the script for each model.
- Scripts folder contains major scripts to use the boundedness analysis and to reproduce the results in the paper.
- Data folder contains the data for the result in the paper.
- Figure folder contains the figure generated by the scripts and used in the paper.
To reproduce the result in the paper, run init.m
to initialize the package and do:
- For Section 4.1: Bounded Two-Dimensional System, run
script/script_TwoState_NotAligned.m
. - For Section 4.2: Lorenz Chaotic Attractor, run
script/script_Lorenz.m
. - For Section 4.3: High-Dimensional Systems, run
script/script_Scalability_KStackedLorenz.m
.
Note that the script script/script_Scalability_KStackedLorenz.m
defaults to visualize the stored result in Data/KStackedLorenz_RunTime_1_223.mat. To run the whole process of creating random system, run trapping region analysis, and visualization, enable the flag if_sim = true
and adjust maxK
for desired system dimensions.
If you find this project helpful, please cite the following reference:
@misc{liao2024convex,
title={A Convex Optimization Approach to Compute Trapping Regions for Lossless Quadratic Systems},
author={Shih-Chi Liao and A. Leonid Heide and Maziar S. Hemati and Peter J. Seiler},
year={2024},
eprint={2401.04787},
archivePrefix={arXiv},
primaryClass={math.OC}
}
- This research was supported by the This material is based upon work supported by the Army Research Office under grant number W911NF-20-1-0156 and the Air Force Office of Scientific Research under grant number FA9550-21-1-0434.
- The authors acknowledge valuable discussions with Diganta Bhattacharjee.