(To, Qo, wr, wi) = Matrices.Internal.reorderRSFd(T, Q, alphaReal, alphaImag, alpha)
Reorder real Schur form according to alpha
, as used e.g. in
assignPolesMI
for discrete systems.
reorderRSF or reorderRSFc (for continuous systems).
function reorderRSFd extends Modelica.Icons.Function; input Real T[:, :] "Upper quasi-triangular matrix in Schur canonical form"; input Real Q[:, size(T, 2)] "Matrix of Schur vectors"; input Real alphaReal[size(T, 1)] "Real part of eigenvalue = alphaReal + i*alphaImag"; input Real alphaImag[size(T, 1)] "Imaginary part of eigenvalue = alphaReal + i*alphaImag"; input Real alpha "Maximum admissible value for moduli of the eigenvalues of A which will not be modified by the eigenvalue assignment algorithm"; output Real To[size(T, 1), size(T, 2)] "Reordered Schur form"; output Real Qo[size(T, 1), size(T, 2)] "Reordered Schur vectors"; output Real wr[size(T, 2)] "Reordered eigenvalues, real part"; output Real wi[size(T, 2)] "Reordered eigenvalues, imaginary part"; end reorderRSFd;