(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;