Can you please provide a general explanation of how the algorithm implemented in the SSEST function works?

2 views (last 30 days)
Hello,
I am using the MATLAB function called SSEST for performing system identification of dynamical systems. More specifically, I am interested in understanding more deeply how the algorithm behind this function works. However, when consulting the MATLAB help center (https://ch.mathworks.com/help/ident/ref/ssest.html), the explanations reported in "Algorithms" is quite vague and the bibliography reported in "References" is too general. Therefore, I have the following two questions.
1. Can you please provide a general explanation of how the algorithm implemented in the SSEST function works?
2. Can you please provide additional and more detailed references on the algorithm implemented in the SSEST function?
Many thanks for your help,
Sefika Ipek Lok

Answers (1)

Rajiv Singh
Rajiv Singh on 31 May 2022
ssest contains multiple algorithms for fitting time- and frequency domain data. Roughtly speaking the time-domain identification is based on initializing the model parameters using a subspace approach (n4sid) followed by iteratve refinements to minimize a weighted norm of the prediction errors. There are several branches to handle fixed entries, estimation of initial states (x0), handling the disturbance component (K), and the feedthrough term (D).
The frequency domain identification is based on a rational fitting approach, and a subspace approach. For the rational fitting approach, a good reference is:
It will be hard to document all the underlying routines. You will need to be more specific regarding the behavior you are trying to understand.
  2 Comments
Rajiv Singh
Rajiv Singh on 9 Aug 2022
The ssest algorithm takes the result of n4sid and uses it as initial guess in a nonlinear least squares optimization problem that tries to further reduce the prediction errors. The numerical optimization algorithm choice is dictated by the ssestOptions->SearchMethod choice. By default, a combination of line-search methods (Gauss-Newton, Levenberg–Marquardt, Gradient Descent) is used. You can also pick the solvers provided by the Optimization Toolbox such as 'lsqnonlin', 'fmincon'.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by