FractionOrderSystem/FOTF Toolbox/@foss/foss.m

26 lines
1.0 KiB
Matlab

% foss - class constructor for an FOSS class
% Copyright (c) Dingyu Xue, Northeastern University, China
% Last modified 28 March, 2017
% Last modified 18 May, 2022
classdef foss
properties, a, b, c, d, alpha, ioDelay, E, x0, end
methods
function G=foss(a,b,c,d,alpha,L,E,x0)
if nargin<=7, x0=[]; end
if nargin<=6, E=[]; end, if nargin<=5, L=0; end
if nargin==1 && isa(a,'foss'), G=a;
elseif nargin==1 && isa(a,'fotf'), G=fotf2foss(a);
elseif nargin==1 && isa(a,'double'), G=foss([],[],[],a,0);
elseif (nargin==1||nargin==2) && (isa(a,'tf')||isa(a,'ss'))
alpha=1; if nargin==2, alpha=b; end
a=ss(a); L=a.ioDelay; [a,b,c,d,E]=dssdata(a);
G=foss(a,b,c,d,alpha,L,E);
elseif nargin>=5, msg=abcdchk(a,b,c,d);
if length(msg)>0, error(msg)
else, G.alpha=alpha; G.x0=x0;
G.a=a; G.b=b; G.c=c; G.d=d; G.E=E; G.ioDelay=L;
end
else, error('wrong input arguments'); end
end, end, end