functionreorderRSF

Reorders a real Schur form to clusters of stable and unstable eigenvalues

Extends from Modelica.Icons.Function (Icon for functions).

Information

Syntax

              To = Matrices.Utilities.reorderRSF(T, Q, alphaReal, alphaImag);
(To, Qo, wr, wi) = Matrices.Utilities.reorderRSF(T, Q, alphaReal, alphaImag, iscontinuous);

Description

Function reorderRSF() reorders a real Schur form such that the stable eigenvalues of the system are in the 1-by-1 and 2-by-2 diagonal blocks of the block upper triangular matrix. If the Schur form is referenced to a continuous system the staple eigenvalues are in the left complex half plane. The stable eigenvalues of a discrete system are inside the complex unit circle.
This function is used for example to solve algebraic Riccati equations (continuousRiccati, discreteRiccati). In this context the Schur form as well as the corresponding eigenvalues and the transformation matrix Q are known, why the eigenvalues and the transformation matrix are inputs to reorderRSF().
The Schur vector matrix Qo is also reordered according to To. The vectors wr and wi contains the real and imaginary parts of the reordered eigenvalues respectively.

Example

T := [-1,2, 3,4;
       0,2, 6,5;
       0,0,-3,5;
       0,0, 0,6];
To := Matrices.Utilities.reorderRSF(T,identity(4),{-1, 2, -3, 6},{0, 0, 0, 0}, true);

// To = [-1.0, -0.384, 3.585, 4.0;
//        0.0, -3.0,   6.0,   0.64;
//        0.0,  0.0,   2.0,   7.04;
//        0.0,  0.0,   0.0,   6.0]

See also Matrices.realSchur

Inputs

TypeNameDefaultDescription
Real[:,:]TReal Schur form
Real[:,size(T, 2)]QSchur vector Matrix
Real[size(T, 1)]alphaRealReal part of eigenvalue=alphaReal+i*alphaImag
Real[size(T, 1)]alphaImagImaginary part of eigenvalue=alphaReal+i*alphaImag
Booleaniscontinuoustrue= true, if the according system is continuous. False for discrete systems

Outputs

TypeNameDefaultDescription
Real[size(T, 1),size(T, 2)]ToReordered Schur form
Real[size(T, 1),size(T, 2)]QoReordered Schur vector matrix
Real[size(T, 2)]wrReordered eigenvalues, real part
Real[size(T, 2)]wiReordered eigenvalues, imaginary part

Revisions

  • 2010/04/30 by Marcus Baur, DLR-RM