Re: problems with the identification if parameters
- From: "Rajiv Singh" <Rajiv.SinghNoSpam@xxxxxxxxxxxxx>
- Date: Tue, 22 Dec 2009 10:13:03 -0500
Under the hood, grey box estimation is basically solving a nonlinear least
squares problem. The considerations that apply in any numerical optimization
problem apply here too: why did estimation stop
(nlgr.EstimationInfo.WhyStop), should you run more iterations, could you try
another solver, could you try some other starting points (etc)?
To verify that your ODE file has no errors, set the parameters of the model
equal to their true values. Then compare the simulated response of the model
to the measured values in data object, as in:
setpar(nlgr, 'Value', {200, 20, 2})
compare(z, nlgr)
The comparison plot should show a 100% fit, provided initial conditions were
the same. What initial conditions were used? Did you assume fixed zero
values (default) or did you estimate them?
Rajiv
"Chris Mal" <kaiptenfrudesa@xxxxxx> wrote in message
news:hgo0ek$p18$1@xxxxxxxxxxxxxxxxxxxxx
Hi all,
i`m having a hard time using the system identification toolbox.
Here is what I have done so far:
1.) I created a grey box model
z=iddata(y',u,delta_t1);
y and u includes input and output of my model. Each vector contains 1000
entries. Delta_ t = 2.731731731731732e-005
Therefore the complete procedure has a timespane of 0.02731 sec.
2.) Set up necessary stuff
FileName='rad_event_2_fnc_m';
Order=[1 1 2];
%Parameters=[200 ; 20 ; 2]; % Right parameters
Parameters=[1 ; 1 ; 1]; InitialStates=[init_state(1);init_state(2)];
Ts=0;
nlgr=idnlgrey(FileName,Order,Parameters,InitialStates,Ts, ...
'Name', 'rad_event_2_fnc_m');
setinit(nlgr, 'Minimum', {0 0} );
setpar(nlgr, 'Minimum', num2cell(eps(0)*ones(3,1)));
nlgr.Parameters(1).Fixed=false; % K
nlgr.Parameters(2).Fixed=false; % D
nlgr.Parameters(3).Fixed=false; % n
getpar(nlgr, 'Fixed');
% ------------ Simulation Settings --------------
nlgr.Algorithm.SimulationOptions.AbsTol=1e-5;
nlgr.Algorithm.SimulationOptions.RelTol=1e-4;
nlgr.Algorithm.SearchMethod='auto';
%nlgr.Algorithm.Criterion='Det';
nlgr.EstimationInfo.Status
3.) Find Parameters
nlgr = pem(z, nlgr, 'Display', 'Full')
getpvec(nlgr)
The algorithm can`t find appropriate values. Even if I start at some
initial condition which are not to bad (10 , 5 , 1) / Real Values are
200,20,2
Can anybody see some errors in my code ? Is the iddata model not good
(long) enough ? If anybody needs more information or more code I`m using,
fell free to ask!
Help is always very appreciated.
.
- References:
- problems with the identification if parameters
- From: Chris Mal
- problems with the identification if parameters
- Prev by Date: Closing or deleting timer objects with "lost" handles
- Next by Date: Matlab x Windows 7
- Previous by thread: problems with the identification if parameters
- Next by thread: what definition of an object perimeter
- Index(es):
Relevant Pages
|