FractionOrderSystem/FOTF Toolbox/fpidfun.m

12 lines
407 B
Matlab

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