function fy=fpidfun(x,G,t,key)
% fpidfun - objective function for optimum fractional-order PID

% Copyright (c) Dingyu Xue, Northeastern University, China
% Last modified 28 March, 2017 
% Last modified 19 May, 2022 
   arguments, x(1,:), G, t(:,1), key=1; end
   C=fopid(x); dt=t(2)-t(1); e=step(feedback(1,G*C),t); 
   if key==1, fy=dt*sum(t.*abs(e)); else, fy=dt*sum(e.^2); end
   disp([x(:).', fy])
end