What are the best practices in parameter estimation through optimization toolbox?

3 ビュー (過去 30 日間)
pietro
pietro 2014 年 4 月 12 日
Hi all,
I am using simscape to estimate the parameters of a simscape model using the optimization toolbox and I have few questions about the best practices of doing it.
1- My model simulates a pneumatic spool valve and I need to identify the spool mass, spool damping, spool, spring stiffness, etc and I need to fit the valve step response, the valve hysteresis and the valve steady response of a flow rate during the charge and the discharge. So I created an objective function that runs the model with different inputs for getting the before meantioned parameters and then computes the SSEs between the simulation and the reference values. The objective function is barely the sum of the 4 SSE, such as:
f=SSEHyst+SSEStep+SSECharge+SSEDischarge;
where SSEHyst is the SSE of the hysteresis test, SEStep is the SSE of the step response test, SSECharge is the SSE of the pressure-flow rate curve during the charging process and SSEDischarge is the SSE of the pressure-flow rate curve during the discharging process. Unfortunately the magnitudes between each data is different therefore is necessary to scale all the SSEs. I scaled each SSE in function of the max value of the Reference data of each test, as in the following formula:
SSECharge=sum(sqrt(((RefDataCharge(:,2)-OutletFlowRateSpline)/max(RefDataCharge(:,2))).^2));
Despite this the magnitude are not very similar and so the solver is anyhow mislead. What is the best way to scale each component of the objective function?
2- When performing several simulink simulation inside an objective function what is the best simulation mode? Is it the normal one?
3- When the optimization solver is running, sometimes the simulation gets very slow because the parameter set makes the model ill-conditioned. I have to set properly the optimization bounds and also I have to avoid that the solvers makes unstable systems. Is there any systematic way to understand how setting the right bounds or how avoiding that the solver leads unstable systems? I usually do it by trial and error but when there are more than 10 design variable is very time consuming.
Thanks
Cheers
Pietro

回答 (0 件)

カテゴリ

Help Center および File ExchangeTrimming and Linearization についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by