Anonymous
×
Create a new article
Write your page title here:
We currently have 106 articles on MOR Wiki. Type your article name above or click on one of the titles below and start writing!



Inverse Lyapunov Procedure: Difference between revisions

m Usage: another code update
Added missing section and various fixes
Line 7: Line 7:
==Description==
==Description==
The '''Inverse Lyapunov Procedure''' (ilp) is a synthetic random linear system generator.
The '''Inverse Lyapunov Procedure''' (ilp) is a synthetic random linear system generator.
It is based on reversing the [[Balanced_Truncation|Balanced Truncation]] procedure and was developed in <ref name="smith03">S.C. Smith, J. Fisher, "<span class="plainlinks">[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1243494 On generating random systems: a gramian approach]</span>", Proceedings of the American Control Conference, 2003.</ref>, where a description of the algorithm is given.
It is based on reversing the [[Balanced_Truncation|Balanced Truncation]] procedure and was developed in <ref name="smith03"/>,
where a description of the algorithm is given.
In aggregate form, for randomly generated controllability and observability gramians, a balancing transformation is computed.
In aggregate form, for randomly generated controllability and observability gramians, a balancing transformation is computed.
The balanced gramian is the basis for an associated state-space system, which is determined by solving a [[wikipedia:Lyapunov_equation|Lyapunov equation]] and then unbalanced.
The balanced gramian is the basis for an associated state-space system,
which is determined by solving a [[wikipedia:Lyapunov_equation|Lyapunov equation]] and then unbalanced.
A central point is the solution of the Lyapunov equations for the system matrix instead of the gramian matrix.
A central point is the solution of the Lyapunov equations for the system matrix instead of the gramian matrix.
This is feasable due to the symmetric (semi-)positive definiteness of the gramians and the requirement for a stable system, yet with a non-unique solution.
This is feasable due to the symmetric (semi-)positive definiteness of the gramians and the requirement for a stable system, yet with a non-unique solution.


==Implementation==
===Inverse Sylvester Procedure===
A variant of the '''Inverse Lyapunov Procedure''' is the inverse Sylvester procedure <ref name="himpe17"/>.


An efficient approach to solving the Lyapunov equation is provided by empirical gramians.
==Data==
This benchmark is procedural and the input, state and output dimensions can be chosen.
Use the following [http://matlab.com MATLAB] code to generate a random system as described above:


==Usage==
<div class="thumbinner" style="width:20%;text-align:left;"><!--[[Media:ilp.m|-->
 
Use the following matlab code to generate a random system as described above:
 
<div class="thumbinner" style="width:540px;text-align:left;"><!--[[Media:ilp.m|-->
<source lang="matlab">
<source lang="matlab">


Line 82: Line 83:


A variant of the above code using empirical Gramians instead of a matrix equation solution can be found at http://gramian.de/utils/ilp.m , which may yield preferable results.
A variant of the above code using empirical Gramians instead of a matrix equation solution can be found at http://gramian.de/utils/ilp.m , which may yield preferable results.
==Dimensions==
System structure:
:<math>
\begin{align}
\dot{x}(t) &= Ax(t) + Bu(t) \\
y(t) &= Cx(t)
\end{align}
</math>
System dimensions:
<math>A \in \mathbb{R}^{N \times N}</math>,
<math>B \in \mathbb{R}^{N \times M}</math>,
<math>C \in \mathbb{R}^{Q \times N}</math>.
==Citation==
To cite this benchmark, use the following references:
* For the benchmark itself and its data:
::The MORwiki Community. '''Inverse Lyapunov Procedure'''. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Inverse_Lyapunov_Procedure
    @MISC{morwiki-invlyapproc,
    author = {The {MORwiki} Community},
    title = {Inverse Lyapunov Procedure},
    howpublished = {{MORwiki} -- Model Order Reduction Wiki},
    url = {<nowiki>http://modelreduction.org/index.php/Inverse Lyapunov Procedure</nowiki>},
    year = {2018}
    }
* For the background on the benchmark:
    @INPROCEEDINGS{SmiF03,
      author =      {Smith, S.~C. and Fisher, J.},
      title =        {On generating random systems: a gramian approach},
      booktitle =    {Proc. Am. Control. Conf.},
      volume =      3,
      pages =        {2743--2748},
      year =        2003,
      doi =          {10.1109/ACC.2003.1243494}
    }


==References==
==References==
<references />
<references>
 
<ref name="smith03">S.C. Smith, J. Fisher, "<span class="plainlinks">[https://doi.org/10.1109/ACC.2003.1243494 On generating random systems: a gramian approach]</span>", Proceedings of the American Control Conference, 3: 2743--2748, 2003.</ref>


<ref name="himpe17">C. Himpe, M. Ohlberger, "<span class="plainlinks">[https://doi.org/10.1007/978-3-319-58786-8_17 Cross-Gramian-Based Model Reduction: A Comparison]</span>", In: Model Reduction of Parametrized Systems, Modeling, Simulation and Applications, vol. 17: 271--283, 2017.</ref>


</references>


==Contact==  
==Contact==  
[[User:Himpe|Christian Himpe]]
[[User:Himpe|Christian Himpe]]

Revision as of 14:53, 6 March 2018


Description

The Inverse Lyapunov Procedure (ilp) is a synthetic random linear system generator. It is based on reversing the Balanced Truncation procedure and was developed in [1], where a description of the algorithm is given. In aggregate form, for randomly generated controllability and observability gramians, a balancing transformation is computed. The balanced gramian is the basis for an associated state-space system, which is determined by solving a Lyapunov equation and then unbalanced. A central point is the solution of the Lyapunov equations for the system matrix instead of the gramian matrix. This is feasable due to the symmetric (semi-)positive definiteness of the gramians and the requirement for a stable system, yet with a non-unique solution.

Inverse Sylvester Procedure

A variant of the Inverse Lyapunov Procedure is the inverse Sylvester procedure [2].

Data

This benchmark is procedural and the input, state and output dimensions can be chosen. Use the following MATLAB code to generate a random system as described above:

function [A,B,C] = ilp(M,N,Q,s,r)
% ilp (inverse lyapunov procedure)
% by Christian Himpe, 2013--2018
% released under BSD 2-Clause License
%*
  if(nargin==5)
    rand('seed',r);
    randn('seed',r);
  end;

% Gramian Eigenvalues
  WC = exp(0.5*rand(N,1));
  WO = exp(0.5*rand(N,1));

% Gramian Eigenvectors
  [P,S,R] = svd(randn(N));

% Balancing Transformation
  WC = P*diag(sqrt(WC))*P';
  WO = R*diag(sqrt(WO))*R';
  [U,D,V] = svd(WC*WO);

% Input and Output
  B = randn(N,M);

  if(nargin>=4 && s~=0)
    C = B';
  else
    C = randn(Q,N);
  end

% Scale Output Matrix
  BB = sum(B.*B,2);  % = diag(B*B')
  CC = sum(C.*C,1)'; % = diag(C'*C)
  C = bsxfun(@times,C,sqrt(BB./CC)');

% Solve System Matrix
  A = -sylvester(D,D,B*B');

% Unbalance System
  A = V*A*U';
  B = V*B;
  C = C*U';

end

The function call requires three parameters; the number of inputs M, of states N and outputs Q. Optionally, a symmetric system can be enforced with the parameter s0. For reproducibility, the random number generator seed can be controlled by the parameter r. The return value consists of three matrices; the system matrix A, the input matrix B and the output matrix C.

[A,B,C] = ilp(M,N,Q,s,r);

A variant of the above code using empirical Gramians instead of a matrix equation solution can be found at http://gramian.de/utils/ilp.m , which may yield preferable results.

Dimensions

System structure:

x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)

System dimensions:

AN×N, BN×M, CQ×N.


Citation

To cite this benchmark, use the following references:

  • For the benchmark itself and its data:
The MORwiki Community. Inverse Lyapunov Procedure. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Inverse_Lyapunov_Procedure
   @MISC{morwiki-invlyapproc,
    author = {The {MORwiki} Community},
    title = {Inverse Lyapunov Procedure},
    howpublished = {{MORwiki} -- Model Order Reduction Wiki},
    url = {http://modelreduction.org/index.php/Inverse Lyapunov Procedure},
    year = {2018}
   }
  • For the background on the benchmark:
    @INPROCEEDINGS{SmiF03,
     author =       {Smith, S.~C. and Fisher, J.},
     title =        {On generating random systems: a gramian approach},
     booktitle =    {Proc. Am. Control. Conf.},
     volume =       3,
     pages =        {2743--2748},
     year =         2003,
     doi =          {10.1109/ACC.2003.1243494}
    }


References

  1. S.C. Smith, J. Fisher, "On generating random systems: a gramian approach", Proceedings of the American Control Conference, 3: 2743--2748, 2003.
  2. C. Himpe, M. Ohlberger, "Cross-Gramian-Based Model Reduction: A Comparison", In: Model Reduction of Parametrized Systems, Modeling, Simulation and Applications, vol. 17: 271--283, 2017.

Contact

Christian Himpe