Research


        My research has been concerned with developing a toolbox (MRedTool) in MATLAB for Model Reduction of Multi-dimensional and Uncertain systems
Here is a small account of what Model Reduction is all about and how it all started. The language is fairly simple and informal though a control background may be sometimes helpful .

Introduction

        Accurate descriptions of complex dynamical systems often require highly sophisticated mathematical modeling to capture the finer details in the behaviour of the systems. This is especially true when models are built from first principles where the interactions between the subsystems that make up the whole system may be quite complicated. One ready example that comes to mind is a Power Network (Power Grid) over a large region. In the control parlance, this means the resulting realization has a very high state order. Our primary interest in modeling such systems is to perform analysis to understand and predict the behaviour in order to build suitable controllers to achieve certain performance objectives.

        However, in many situations, modeling introduces unnecessary complexity that makes it difficult to analyze or predict the system's response (we fail in our objectives right at the outset!). For example, one may want to model a motor's behaviour by a third order differential equation to take into account fast dynamics like vibrations/chatter at high frequencies. But, it may be sufficient to approximate the dynamics of interest by a single-pole system for, say, a low frequency application. While there may be ways to perform accurate analysis on highly complex systems, our computing resources are not sophisticated enough to do so at present. Moreover, control design carried out using well-known methods like H2/H-infinity Synthesis, when performed even with the current computing capabilites, often result in controllers with orders equal to or comparable to the original order of the system. Even such superior standards of computing technology and performance cannot guarantee the design of the simplest, most efficient controllers for large-scale systems as it turns out to be an NP-hard problem. Such controllers are not only complicated for analysis, simulation or validation but also makes them practically expensive and in some occasions, unrealizable. Simply put, existing algorithms, softwares and processors are just not good enough for solving this problem. 

        There is also another practical aspect to system modeling. On most occasions, one specific model, however complex it is, can never represent all possible dynamics exhibited by the physical system. Hence, controllers designed using a single-model representation may not work well in practice. This problem is overcome by introducing uncertainty into the model. One induces perturbations on the nominal system to include a range of possible models around the nominal one. Then, a controller is designed that works for all possible plant models in this range. But again, this uncertainty comes with a price tag.   The controller we come up with may be more than what we need (in fact, the cost of the controller goes up steadily as the uncertainty increases as one would expect). In other words, the controller obtained may still be complex and unworkable. Hence, it would be very useful to obtain simplifications in the uncertain model too (may be even get rid of some needless uncertainty descriptions). In short, there exists a great practical necessity to approximate the system models with simpler, more tractable ones with pre-determinable error on the approximation. This calls for systematic numerical methods for Model Reduction of Systems.

Brief History of Model Reduction

        Starting in the late 70s, several procedures have been developed to reduce the model order with apriori error bounds. The early methods were concerned with reducing the well-known class of Linear Time Invariant (LTI) Systems with no uncertainty in the models (the simplest case!). One of the popular methods that held much promise was the Balanced Truncation Algorithm(BTA). It comes under the broader category of Gramian-based approaches and has an appealing symmetry to it. With the advent of the information age, several software tools were developed to implement these algorithms. For example, the Control System Toolbox, Robust Control Toolbox and Mu-synthesis Toolbox, that were developed in the 90s, each have their own set of routines to compute lower order approximations of systems. BTA underwent significant modifications and refinements that made the implementations more efficient and robust to finite-precision numerical errors. At the time of writing this, there are several excellent solvers  available as freewares on the web for this purpose. However, as it suggests itself, their application is restricted to a very small class of systems - LTI with no uncertainty in the models. This renders them not as useful as physical systems are almost always not LTI and as mentioned earlier, the models should have uncertainty incorporated to effectively capture the behaviour of the system.

        The theory and generalization of BTA to Multi-dimensional and Uncertain systems came in place in the 90s. This led to the development of the Linear Matrix Inequalities (LMI) as a basis for solving reduction problems. The LMI-based approach, as it is called, has one of its origins as a relaxation of the well-known Lyapunov Equations to inequality constaints. Alternatives to the classical Ricatti-based control synthesis methods were also formulated. Inevitably, such a  framework served as the right platform for optimization using matrix variables and matrix inequality constraints. The optimization problems that are formulated using the LMI machinery may also be called Semi-Definite Programs (SDPs). One way to think about LMIs and SDPs is as generalizations of the well-known Linear Programming (LP) to the matrix case. Karmarkar's seminal paper on solving LPs published in the mid-90s was the starting point in enthusing interest in solving SDPs. Active research led to the extension of Karmarkar's Algorithm to the semi-definite case - now, called the Interior Point Methods. Much of the earlier work is credited to Nesterov and Nemirovsky in this area. The algorithms they developed compute the global optimum of a convex Semi-Definite program. More importantly, they are solvable in polynomial-time. Such computational tractability of control-based optimization problems aroused tremendous research interest and activity in the control arena since a lot of control problems that looked unsolvable could now be re-formulated as LMIs and the Interior-Point methods can now be successfully applied. For the past decade or so, LMIs and SDPs have been and still are, very hot research topics!

       One needs to observe that model reduction and control synthesis are closely tied.  Naturally, the LMI-based approaches found their applicability in this field as well.  Our problem is,  say we are given a multi-dimensional/uncertain system realization that has a high state order and complex uncertainty description. How does one go about obtaining a lower-order approximation to this model with an apriori upper error bound ?  This research endeavor and MRedTool attempt to give the solution to this problem. As well, the algorithms implemented in the toolbox may also be used to reduce calssical multiD realizations and spatially distributed control models.
 
About MRedTool
        The model reduction algorithms have been implemented in MATLAB along with some analysis tools. MRedTool extensively uses the features of MATLAB to optimize these routines. At the core of the toolbox is a Semi-Definite Program (a double trace minimization problem) that is solved with a general purpose Optimization Solver 'SeDuMi'. In order to talk to SeDuMi and code the given data in its format, we make use of a very user-friendly interface - Yalmip. This parser lets one to input the problem data as an LMI formulation instead of a more generic form adopted by SeDuMi. So, these two softwares need to be downloaded and installed in addition to MRedTool and they run in the background as one interacts with MRedTool.

       Now, for the most important thing you would want to read!!!

What can MRedTool do for you?

Well..., these are the tasks that it can perform effectively.

      Note that the functions that are written for the above are equally applicable to the simple LTI  systems  as well. In a way, this is a generalization of some of the Model Reduction functions in the MATLAB built-in toolboxes. However, the principal algorithms used for the computations are different.


DOWNLOAD and INSTALLATION PROCEDURE

A comprehensive step-by-step installation procedures for SeDuMi1.05R5, YALMIP3 and MRedTool1R2 have been described below to get everything started up and running smoothly.

Let us assume you are presently in your home directory (call it /home).
First, create the appropriate subfolders by typing the following:
$ mkdir MRedSoftwares 
   to create a new folder MRedSoftwares in your home directory.
$ cd MRedSoftwares
   to change to this newly created folder and

$ mkdir SeDuMi105R5
$ mkdir YALMIP3
$ mkdir MRedTool1R2
   to create separate subfolders for SeDuMi, YALMIP and MRedTool.

Now, download the respective softwares and stroe them in the appropriate subfolders.
Download SeDuMi1.05R5 and save it as SeDumi105R5.tar file in the folder /home/MRedSoftwares/SeDuMi105R5/ .
Download YALMIP3 and save it as yalmip3.tar file in the folder /home/MRedSoftwares/YALMIP3/ .
Download MRedTool1R2 and save it as MRedTool.tar file in the folder /home/MRedSoftwares/MRedTool1R2/ .
 
Installing Softwares :

SeDuMi1.05R5 :
Make sure you are in the  sub-folder SeDuMi105R5 (that you just created) and from the terminal, type
$ tar -xvf  SeDuMi105R5.tar
    to extract the contents of the .tar file into that folder.
Read and follow the Installation Instructions for Unix. Before using SeDuMi, you should edit the Makefile (located at /home/MRedSoftwares/SeDuMi105R5/SeDuMi105/Makefile in our case). The main changes that one need to make are
1) Give the path for the location of matlab in your computer and assign it to MATLABROOT in the Makefile
2) Set correct EXARCH = ... by uncommenting (removing the #) against the appropriate processor configuration - for example, if you are using a Linux machine, then the # has to be removed from line EXARCH=lx and all other EXARCH lines should have the # in front.
3) Make sure you are in SeDuMi105 folder and type $make to convert the C source files into mex-files for use with matlab.
 
YALMIP3:
YALMIP3 is much simpler and all that you need to do is to extract the corresponding .tar file and add it to the matlab path, that is,
Make sure you are in the  sub-folder YALMIP3 (that you just created) and from the terminal, type
$ tar -xvf  yalmip3.tar
    to extract the contents of the .tar file into that folder.

MRedTool1R2:
MRedTool1R2 is a collection of m-files that make use of the parser YALMIP3 and optimization solver SeDuMi105R5 to perform model reduction and to get started up, all that needs to be done is de-compress the corresponding tar file (MRedTool.tar) and add it to the MATLAB path in the same way as it was illustrated for YALMIP3, that is,
Make sure you are in the  sub-folder MRedTool1R2 (that you just created) and from the terminal, type
$ tar -xvf  MRedTool.tar
to extract the contents of the .tar file into that folder. 

You might be wondering that we never added YALMIP3 or SeDuMi105R5 to the matlab path. There is no need to do this becuase MRedTool does this for you automatically everytime yalmip or SeDuMi is needed by the program.  So, it is only natural to let MRedTool know where yalmip and SeDuMi files are located. In order to do this, the user needs to do the following.

Open the file softwarepath.m and locate the lines
parserpath='Give the address of the folder in which YALMIP3 files are located' ;
solverpath='Give the address of the folder in which SeDuMi105R5 files are located' ;
and replace with the appropriate paths.
For our example, they would look like
parserpath='/home/MRedSoftwares/YALMIP3/' ;
solverpath='/home/MRedSoftwares/SeDuMi105R5/' ;


After adding to the MATLAB path, type >>help MredTool and you must see a Welcome message!
You are all set to use the toolbox now. Type help filename to learn the syntax before using the functions.

Note:
In case, you want to check if SeDuMi and/or yalmip are being installed correctly or use them separately (as  stand alone) for some other purpose or in some other program, you may do the following to add them to the matlab path manually. (Remember that this action is not required to perform model reduction using MRedTool since MRedTool does this automatically and internally when needed)

     Go to File->Set Path-> Add with Subfolders and direct it to the folder SeDuMi105R5. You can save this path using the 'Save' option and use it later when MATLAB is    re-started. Otherwise, every time MATLAB is started, the paths need to be added again.
Type >>help sedumi at the MATLAB prompt and you should see some help statements on the screen if the paths have been correctly installed.
Similarly, Go to File->Set Path-> Add with Subfolders and direct it to the folder YALMIP3.
Type >>help yalmip at the MATLAB prompt and you should see some help statements on the screen if YALMIP3 has been correctly added.

____________________________________________________________________________________________________________________________________________________________

Downloads for Unix/Linux: 
Releases!  (updated march 2004)
SeDuMi Version 1.05R5, Installation Instructions for Unix, User's Guide (in compressed postscript)
YALMIP Version 3
Model Reduction Toolbox (MredTool Version 1 R2)  (latest release: MRedTool Ver1 Release2). Click here to download the User's Manual. (ps, pdf).

Older Version
SeDuMi Version 1.05R4, Installation Instructions for Unix, User's Guide
YALMIP Version 2
MRedTool Old Release (MRedTool Ver1 Release1)
     Please note the difference between the two releases. Release 2 is updated with YALMIP3 and SeDuMi1.05R5 while Release 1 uses YALMIP 2 and SeDuMi1.05R4. Since there are significant changes in YALMIP, MRedTool had to be updated  with syntax modifications in the second release. 

Warning!
Do not use both  sets of softwares  simultaneously.  It does not work. YALMIP 2 and YALMIP 3 interfere with each other and cause errors.
If you are using both, then type
clear classes
everytime you use one of the two.

Useful Links
SeDuMi  home page
YALMIP home page 

MRedTool Release History

Links on Model Reduction - to be added...

Links on SDPs
- to be added...

Acknowledgements

All comments and critiques are most welcome. Please email them to ssivakum@uiuc.edu.