Different optimization results when using Parameter Estimation tool and bare lsqnonlin

8 visualizzazioni (ultimi 30 giorni)
Hi, I have a MIMO system in Simulink (two inputs, two outputs) and I'm trying to optimize its parameters using real data. At first I was using Parameter Estimation tool from Simulink Design Optimization toolbox (GUI version, as well as "sdo" methods from Matlab script using this tutorial https://www.mathworks.com/help/sldo/examples/estimate-model-parameter-values-code.html) but it was slow.
Then I formulated, as I thought, same optimization problem in Matlab script. My objective function has two columns and each column contains difference between one simulated and real output.
At first value of my objective function differed from the value of objective function in Simulink Design Optimization toolbox but I figured out that GUI Parameter Estimation normalizes somehow the objective function value and that normalization can be switched off in command line (sdo.requirements.SignalTracking.Normalize = 'off'). After switching normalization off, value of objective function in SDO toolbox Parameter Estimation as well as in my script was the same in first iteration but SDO performs more Function Counts in every iteration which lead to different solutions.
I compared optimization options in both cases everything was same (tolerances and max iterations) beside 'SpecifyObjectiveGradient' set to true in sdo.OptimizeOptions.MethodOptions. After I set it manually to false now the Function Counts are the same but still with the same tolerances set the SDO Parameter Estimation is doing more iterations then my procedure.
Questions:
1. How and from where does SDO take Objective Gradient when SpecifyObjectiveGradient is set to true. Objective Function passed to it returns only model error.
2. How does SDO normalizes the objective function value when sdo.requirements.SignalTracking.Normalize = 'on'? What is the formula?
3. Is SDO Parameter Estimation more appropriate for that task then bare lsqnonlin?

Risposte (0)

Categorie

Scopri di più su Parameter Estimation in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by