Main Content


(Not recommended) Modal form realization and projection

modreal is not recommended. Use modalreal and freqsep instead. (since R2023b) For more information on updating your code, see Version History.


[G1,G2] = modreal(G,cut)


[G1,G2] = modreal(G,cut) returns a set of state-space LTI objects G1 and G2 in modal form given a state-space G and the model size of G1, cut.

The modal form realization has its A matrix in block diagonal form with either 1x1 or 2x2 blocks. The real eigenvalues will be put in 1x1 blocks and complex eigenvalues will be put in 2x2 blocks. These diagonal blocks are ordered in ascending order based on eigenvalue magnitudes.

The complex eigenvalue a+bj is appearing as 2x2 block


This table describes input arguments for modreal.




LTI model to be reduced.


(Optional) an integer to split the realization. Without it, a complete modal form realization is returned

This table lists output arguments.




LTI models in modal form

G can be stable or unstable. G1 = (A1, B1, C1, D1), G2 = (A2, B2, C2, D2) and D1 = D + C2(–A2)–1B2 is calculated such that the system DC gain is preserved.


Given a continuous stable or unstable system, G, the following commands can get a set of modal form realizations depending on the split index -- cut:

G = rss(50,2,2);
[G1,G2] = modreal(G,2); % cut = 2 for two rigid body modes
G1.D = zeros(2,2); % remove the DC gain of the system from G1


Using a real eigen structure decomposition reig and ordering the eigenvectors in ascending order according to their eigenvalue magnitudes, we can form a similarity transformation out of these ordered real eigenvectors such that he resulting systems G1 and/or G2 are in block diagonal modal form.


This routine is extremely useful when model has jω-axis singularities, e.g., rigid body dynamics. It has been incorporated inside Hankel based model reduction routines - hankelmr, balancmr, bstmr, and schurmr to isolate those jω-axis poles from the actual model reduction process.

Version History

Introduced before R2006a

collapse all

R2023b: Not recommended

modreal is not recommended.

  • To compute modal realizations, use modalreal.

  • To compute slow-fast decompositions, use freqsep.

See Also