reorderRSF

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

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

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

Syntax

(To, Qo, wr, wi) = reorderRSF(T, Q, alphaReal, alphaImag, iscontinuous)

Inputs (5)

T

Type: Real[:,:]

Description: Real Schur form

Q

Type: Real[:,size(T, 2)]

Description: Schur vector Matrix

alphaReal

Type: Real[size(T, 1)]

Description: Real part of eigenvalue=alphaReal+i*alphaImag

alphaImag

Type: Real[size(T, 1)]

Description: Imaginary part of eigenvalue=alphaReal+i*alphaImag

iscontinuous

Default Value: true

Type: Boolean

Description: = true, if the according system is continuous. False for discrete systems

Outputs (4)

To

Type: Real[size(T, 1),size(T, 2)]

Description: Reordered Schur form

Qo

Type: Real[size(T, 1),size(T, 2)]

Description: Reordered Schur vector matrix

wr

Type: Real[size(T, 2)]

Description: Reordered eigenvalues, real part

wi

Type: Real[size(T, 2)]

Description: Reordered eigenvalues, imaginary part