Obtain State Space from two frequency response functions

2 views (last 30 days)
Hi,
is it possible to find the corresponding state space formulation from two frequency response functions?
In particular, my system is characterised by one input, and two outputs and three states.
I have the measurements of the input signal and the measurements of the two outputs (these are three noisy time series).
What I have already done, is computing the PSD of the three signals and then compute the two FRF using the typical formula cross_spectra=FRF*auto_spectra.
Now, what I have are the estimates of the two bode plots and therefore the two FRF, but my question is, how from this information I can obtain the state space representation of the system?
Thank you so much!
p.s. the system is LTI

Answers (1)

Hari
Hari on 10 Jan 2024
Edited: Hari on 10 Jan 2024
Hi Gregory Cottone,
I understand that you have a Linear Time-Invariant (LTI) system with one input, two outputs, and three states. You have obtained two Frequency Response Functions (FRFs) from the Power Spectral Densities (PSDs) of three noisy time series corresponding to the input and two outputs. You want to derive the state-space representation of the system from these FRFs.
The process involves fitting a state-space model to the frequency response data, which can be done using system identification techniques.
MATLAB provides functions for system identification, which can be found in the System Identification Toolbox. One approach is to use the "systune" or "tfest" functions to estimate a transfer function model and then convert it to state-space form using the "ss" function.
Here is a conceptual example using MATLAB functions:
% Assuming frf1 and frf2 are the frequency response functions for the two outputs
% and freq is the vector of frequencies at which the FRFs are computed.
% Create a frequency response data model
data_frd = frd([frf1; frf2], freq, 'FrequencyUnit', 'Hz');
% Estimate a state-space model from the frequency response data
% 'nx' is the desired order of the state-space model (number of states)
nx = 3;
ss_model = ssest(data_frd, nx);
% Now ss_model is the state-space representation of your system
Please note that the accuracy of the state-space model obtained will depend on the quality of the FRF estimates and the noise present in the measurements. Additional preprocessing steps, such as smoothing the FRF data, may be necessary before model fitting.
Refer to the documentation of "frd" for creating frequency response data models:
For more information on estimating state-space models from frequency response data, refer the documentation for "ssest":
The System Identification Toolbox provides tools for identifying and fitting models to data, which may be helpful for your problem:
Hope this helps!

Categories

Find more on Get Started with Control System Toolbox in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!