


PFID Parametrized time-domain identification of FOTF SISO systems
Usage: [IDPARAMS,G] = PFID(FIDATA,EXPR|FSIM,PARAMS,MPARAMS,OP)
Where IDPARAMS is a structure with identified parameters,
G is a FOTF object holding the identified model,
FIDATA is a FIDATA object with time-domain identification dataset,
EXPR is a symbolic expression with the FOTF model structure, e.g.
EXPR = 'p_1/(1+T*s^{q_1}) exp(-p_2*s)'; % Defines a FFOPDT model
% with T (time constant)
% known in advance
OR FSIM is a simulation object of type FSPARAM with a valid
.fotf_expr parameter which must be formatted exactly as
EXPR in the above example.
PARAMS (optional) is a structure holding the model parameter
min/initial/max values, i.e.
params.p_1 = p_1_ini or
params.p_1 = [p_1_min, p_1_max] or
params.p_1 = [p_1_min, p_1_ini, p_1_max]. This is an optional
argument. Set parameters in the following format: "pk", "p_k",
"qk", "q_k", where k is some integer number. The difference between
"p" and "q" parameters is that if min/max values are not provided
for "q", the default search range will be [0, +LN], while in case
of "p" it will be [-LN, +LN], where LN is a large number.
Therefore, it is suggested to use "q" parameters for fractional
powers. Supply "[]" as an argument to use default values
(min/ini/max generated automatically). Default values will also be
used in case some of the parameter min/ini/max values are missing
from the structure supplied.
OP holds additional optimization options for lsqnonlin (use
optimset). Note, that you can set the preferred optimization
algorithm here. This is done as follows:
OP.IdentificationAlgorithm = 'trr':
Trust-Region-Reflective algorithm is used;
OP.IdentificationAlgorithm = 'lm':
Levenberg-Marquardt algorithm is used, for the latter
OP.Lambda determines the lambda parameter, 0.01 by
default. A coordinate transformation method is used to handle
bound constraints in case of this algorithm.