26 lines
1.0 KiB
Matlab
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
|