Grey-box estimation in frequency domain using greyest

12 views (last 30 days)
I'm trying to do grey-box estimation in the frequency domain with matlab function greyest.
sys = greyest(data,idgrey_object)
Based on the documentation of greyest, 'data' should be either time-or frequency domain data.
I have some measured data that I'm using 'tfestimate' and further 'frd' to represent the data in the frequency domain. I have made a 'idgrey' model based on what I known about the system, just simplified.
When I know do the greyest-call it produces:
Undefined function 'greyest' for input arguments of type 'frd'.
Here an example for simplicity, based on the Example: Estimate Grey-Box Model:
N =256;
[tfdata,f] = tfestimate(u(2:end,1),y(2:end,1),hann(N),[],[],1000);
tf1 = frd(tfdata(2:end-1),f(2:end-1),'units','Hz');
[tfdata,f] = tfestimate(u(2:end,1),y(2:end,2),hann(N),[],[],1000);
tf2 = frd(tfdata(2:end-1),f(2:end-1),'units','Hz');
Hresp = zeros(2,1,length(tf1.Frequency));
Hresp(1,1,:) = reshape(tf1.ResponseData,1,length(tf1.Frequency));
Hresp(2,1,:) = reshape(tf2.ResponseData,1,length(tf2.Frequency));
frddata = frd(Hresp,tf1.Frequency,'FrequencyUnit','Hz');
G = 0.25;
tau = 1;
init_sys = idgrey('motor',tau,'cd',G,0);
sys = greyest(frddata,init_sys);
Is it possible to do this type of greybox estimation in the frequency domain when time-domain data produces bad results?

Answers (0)

Community Treasure Hunt

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

Start Hunting!