(To, Qo, wr, wi) = Matrices.Internal.reorderRSF(iscontinuous, T, Q, alphaReal, alphaImag)
Reorder real Schur form used for pole assignment design for
continuous or discrete systems. For a continuous system
(iscontinuous = true), those eigenvalues
of A will not be modified by the eigenvalue assignment
algorithm which real part is negative. For a discrete system
(iscontinuous = false), eigenvalues of moduli
less then one will not be modified.
reorderRSFc for continuous systems or reorderRSFd for discrete systems.
function reorderRSF extends Modelica.Icons.Function; input Boolean iscontinuous; 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"; 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 reorderRSF;