Clear Filters
Clear Filters

Why is the estimation using tfest with EnforceStability = true only so bad compared to a unstable estimation?

15 views (last 30 days)
Hello,
I am using tfest to estimate the transfer function of a measured frequency response.
The frequency response was measured on a real-world physical system. This physical system is stable.
However, when using tfest with EnforceStability = false, the estimated transfer function has unstable poles and the fit to the measured frequency response is very good:
With EnforceStability = true I get stable poles, but the fit to the measured frequency response is poor:
Why is the estimation using only stable poles so bad?
Any suggestions on how to improve the quality of the estimation?
Thanks in advance!

Answers (1)

Aditya
Aditya on 21 Mar 2024
When using tfest in MATLAB to estimate the transfer function of a system from its measured frequency response, enforcing stability can indeed sometimes lead to a less accurate fit to the data. This is because constraining the estimation process to only consider stable poles can limit the flexibility of the fitting algorithm, potentially preventing it from finding a solution that closely matches the measured data, especially if the true system dynamics or the measurement noise characteristics inherently suggest a model structure that includes poles on or near the stability boundary.
Here are several suggestions on how to potentially improve the quality of the estimation when enforcing stability:
  1. Increase the model order: Sometimes, a higher-order model can capture the system dynamics more accurately, even under stability constraints. Experiment with increasing the order of the model used in tfest. However, be cautious of overfitting, especially if you have a limited amount of data.
  2. Use regularization : If your version of MATLAB supports it, use regularization to improve the estimation process. Regularization can help in managing the trade-off between fitting the data and enforcing stability by adding a penalty for large parameter values, potentially leading to a more physically plausible model.
  3. Pre process the data : The quality of the input data significantly affects the estimation. Ensure that the data is clean and well-prepared before fitting:
  • Filtering: Apply a low-pass filter to remove high-frequency noise that might not be relevant to the system dynamics you're interested in.
  • Detrending: Remove any trends or offsets in the data, as these can affect the estimation.
  • Data Windowing: If applicable, select a portion of the data where the system is behaving linearly and is most representative of the dynamics you wish to model.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!