(Page Last updated Dec. 31, 2021)
Latest Release: PIETOOLS 2021b (Dec. 31, 2021):
Download from Github
We recommend using the installation script: pietools_install.m
- Downloads and Installs: PIETOOLS 2021b; sedumi; SOSTOOLS v4.00
PIETOOLS 2020a (July 2, 2020):
PIETOOLS 2021a (June 1, 2021):
PIETOOLS_2021a.zip 2021a Release Notes
PIETOOLS is a free MATLAB toolbox for formulating
and solving Linear PI Inequalities (LPIs) programs. PIETOOLS can
be used to define 3-PI or 4-PI operators, declare 3-PI or 4-PI operators variables (postive semidefinite or indefinite), add operator inequality constraints, and solve LPI optimization problems. The interface is inspired by YALMIP and the program structure is based on that used by SOSTOOLS. By default the LPIs are solved using SeDuMi.
What is a PIE?
PIE stands for Partial Integral Equation and is an alternative representation for many commonly encountered classes of systems, including Ordinary Differential Equations (ODEs), Partial-Differential Equations (PDEs), Delay Differential Equations (DDEs), and Differential-Difference Equations (DDFs).
The cool thing about PIEs is that, unlike PDEs and DDEs (which have lame boundary conditions, unbounded operators, and continuity constraints), PIEs are defined by the very slick linear algebra of 3/4 PI operators. This feature makes PIEs the representation of choice if you want to do anything computational with your beam equation, network model, reaction-diffusion equations, et c.
Now, you may be wondering if you are going to lose anything by switching your PDE/DDE/DDF to a PIE. No! That would be awful. You may have been hurt in the past by people wrecking your lovely PDE/DDE/DDF using such barbaric tools as approximation via discretization, projection, mollification, regularization or Pade. However, let us assure you that using PIEs is completely safe. The PIE representation of a PDE/DDE/DDF is exact. The solutions are one-to-one, only the tools used for representation have improved.
What if I don't like PIE?
Everyone likes PIE! But really, that's cool. If you are into the retro vibe, there are still lots of fun things you can do with PIETOOLS, like declaring PDEs, DDEs, and DDFs; converting between representations, finding minimal representations, and playing with integral inequalities. PIETOOLS is open-source, so feel free to use it as an interface to your own software. Just send us a link if you do, so we can recognize you on the website. Here's a list of PIETOOLS functionality which doesn't involve PIE at all:
- Use the GUI (Requires Matlab 2021) to construct and export a PDE data structure.
- Convert a DDE or a Neutral Type System (NDS) to a DDF.
- Find a minimal/low-dimensional realization of a DDF.
- Find optimal bounds for integral inequalities.
What can I do with PIETOOLS?
The use of PIETOOLS is organized into 4 categories. These are:
- Manipulation of 3-PI and 4-PI operators.
- Constructing and Solving Linear PI Inequalities (LPIs).
- Converting PDEs/DDEs/DDFs to PIEs.
- Solving LPIs for Analysis and Control of PIEs.
- Numerically simulate a PIE or PDE.
1. Manipulation of 3/4-PI operators
The opvar class allows you to define and examine 3-PI and 4-PI operators. Most Matlab operations which are valid for matrices are also valid for 3/4-PI operators.
- Composition/Multiplication (T1*T2).
- Addition/Substraction (T1+T2 or T1-T2).
- Concatentation/Matrices of operators ([T1 T2] or [T1;T2]).
- Scalar Multiplication (a*T).
- Inversion of 3/4-PI operators.
2. Construct and Solve LPIs
Inspired by the YALMIP syntax for constructing and solving LMIs, PIETOOLS allows the user to declare and then manipulate 3/4-PI decision variables as they would any other 3/4-PI object. The user may also add equality and inequality constraints on these 3/4-PI objects, where positivity is defined with respect to the L2 inner product. Construction of almost any LPI can be accomplished using a combination of the following four commands:
- Declare a 3/4-PI variable (T1=lpivar).
- Declare a positive semidefinite 3/4-PI variable (T2=poslpivar).
- Declare and equality constraints (T1=T2 -> opeq(T1-T2)).
- Declare an inequality constraints (T1>T2 -> opineq(T1-T2)).
3. Converting PDEs/DDEs/DDFs to PIEs
PIETOOLS currently includes several user-friendly functions for converting a very broad class of PDEs/DDEs/DDFs to PIEs. The header to each script describes the input format for each application, using as nearly universal a formulation as possible. The 3 scripts are:
- A Graphical User Interface (Requires Matlab 2021) for defining PDEs and converting them to PIES.
- Convert a PDE (in 1 spatial variable) to a PIE (convert_PIETOOLS_PDE2PIE_batch).
- Convert a DDE to a minimal DDF representation (minimize_PIETOOLS_DDE2DDF).
- Convert a Neutral Delay System (NDS) to a DDF representation (convert_PIETOOLS_NDS2DDF).
- Construct a minimal DDF representation of a DDF (minimize_PIETOOLS_DDF).
- Convert a DDF to a PIE (convert_PIETOOLS_DDF2PIE).
4. Scripts for Analysis and Control of PIEs
The list of LPIs for analysis and control of PIEs is constantly expanding. However, PIETOOLS comes with several pre-defined functions for analysis and control of PIEs using LPIs. Examples of these functions include:
- Analyze stability of a PIE (PIETOOLS_stability).
- Compute the H_inf system norm of a PIE (PIETOOLS_Hinf_gain).
- Design an optimal observer/state-estimator for a PIE (PIETOOLS_Hinf_estimator).
- Design an optimal state-feedback controller for a PIE (PIETOOLS_Hinf_control).
For a Complete List of Files Included with PIETOOLS, see our: Readme.m File
To install and run PIETOOLS, you need:
- MATLAB version 6.0 or later.
- The current version of the MATLAB Symbolic Math Toolbox. This is installed in most default versions of Matlab.
- An SDP solver. Sedumi is included in the installation script and can be obtained from: SeDuMi
The software has been written and is maintained by:
A guide to PIETOOLS 2020a can be found at:
S. Shivakumar and A. Das and M. Peet
PIETOOLS: A Matlab Toolbox for Manipulation and Optimization of Partial Integral Operators
American Control Conference, 2020.
Introduction to the fundamentals of PIEs, equivalence to PDEs, and an LPI for stability analysis can be found at:
M. M. Peet
Equivalence of PIEs, DDEs and DDFs can be found at:
A Partial Integral Equation Representation of Coupled
Linear PDEs and Scalable Stability Analysis using LMIs
Automatica. Vol. 125. March, 2021. Regular Paper.
[arXiv:1812.06794] [.pdf] [.ps] [related talk]
Representation of Networks and Systems with Delay: DDEs, DDFs, ODE-PDEs and PIEs
Automatica. Vol. 127. May, 2021.
A duality theory for PIEs and an LPI for optimal state-feedback controller synthesis for a certain class of PIEs can be found at:
Minimal Differential Difference Realizations of Delay Differential, Differential Difference, and Neutral Delay Systems
IEEE Control Systems Letters. Vol. 5. No. 4.
S. Shivakumar and A. Das and S. Weiland and M. Peet
An LPI for optimal observer/state-estimator synthesis for certain classes of PIEs (derived from DDEs and PDEs) can be found at:
Duality and H_\infty-Optimal Control Of Coupled ODE-PDE Systems
IEEE Conference on Decision and Control, 2020.
[arXiv] [.pdf] [slides] [CodeOcean]
A. Das and S. Shivakumar and S. Weiland and M. Peet
H-\infty Optimal Estimation for Linear Coupled PDE Systems
IEEE Conference on Decision and Control, 2019.
For those of you having trouble installing PIETOOLS, converting PDEs to PIEs, or solving LPIs, we have prepared a very incomplete Troublehooting Guide. This Guide addresses most of the problems which have been ecountered by our very helpful group of beta testers.
Our goal is to make use of PIETOOLS as simple as humanly possible. However, our background is not in coding and sometimes we come up short. If you are having a serious technical issue and neither the help commands nor the manual are helping, and believe there is a bug in the program, please report it to: email@example.com. If there is a bug, we will add it to the known bug list and do our best to fix it.
Alternatively, if you would like to volunteer for the PIETOOLS development team, we would be happy to include you (no compensation - Sorry). Send an email to firstname.lastname@example.org