Extraction of modal parameters from state space system

16 views (last 30 days)
I have transformed my experiemtnal input - output responses data into a data object
where sampling frequency is 2048 Hz. I have then constructed state-space matrices of my system using an estimate 20th model order
ss.System = n4sid(Sample.Data,20,'Ts',Sample.Data.Ts);
How / what is the most efficient method of extracting the modal parameters frequencies (Hz), modal damping ratios (%) and mode shapes from the state-space matrices in matlab? To find the natural frequencies and damping ratios I have written the following however I seem to have issues with my modeshapes:
%Obtain the Eigenvalues and Eigenvectors
[V,D] = eig(ss.System.a);
%Ensure eigen values and vectors are sorted correctly
[d,ind] = sort(diag(D));EigenFreq= D(ind,ind);EigVector=V(:,ind);
% Calculate the frequencies and damping ratios from the eigenvalues of A
for jj=1:1:length(EigenFreq)
%Calculate the mode shapes from eigenvectors and C matrix
The mode shapes I obatin are complex numbers and I am unsure of how to convert them to real modeshapes.
Any help on the subject would be greatly appreciated. Thank you in advance

Answers (1)

Khaled Aljanaideh
Khaled Aljanaideh on 24 Feb 2021
The modal frequencies and damping ratios can be obtained using the Matlab command 'damp' as follows:
This will show a list of the system's poles and their corresponding modal frequencies and damping ratios.
n4sid has an option to select the form of the estimated state space model. This will return the state space model in the modal form
ss.System = n4sid(Sample.Data,20,'Ts',Sample.Data.Ts,'Form','modal');
Please check the documentation of n4sid here for more information

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by