Create a piecewise-linear nonlinearity estimator object
NL = pwlinear
NL = pwlinear(Name,Value)
a default piecewise-linear nonlinearity estimator object with 10 break
points for estimating Hammerstein-Wiener models. The value of the
nonlinearity at the break points are set to
NL = pwlinear
The initial value of the nonlinearity is determined from the estimation
data range during estimation using
Use dot notation to customize the object properties, if needed.
a piecewise-linear nonlinearity estimator object with properties specified
by one or more
NL = pwlinear(
Name,Value pair arguments. The
properties that you do not specify retain their default value.
pwlinear is an object that stores the piecewise-linear
nonlinearity estimator for estimating Hammerstein-Wiener models.
pwlinear to define a nonlinear function ,
where y and x are scalars, and θ represents
the parameters specifying the number of break points and the value
of nonlinearity at the break points.
The nonlinearity function, F, is a piecewise-linear
(affine) function of x. There are
(xk,yk), k =
1,...,n, such that yk =
F(xk). F is
linearly interpolated between the breakpoints.
F is also linear to the left and right
of the extreme breakpoints. The slope of these extensions is a function
of xi and yi breakpoints.
The breakpoints are ordered by ascending
which is important when you set a specific breakpoint to a different
There are minor difference between the breakpoint values you set and the values stored in the object because the toolbox has a different internal representation of breakpoints.
For example, in the following plot, the breakpoints are xk = [-2,1,4] and the corresponding nonlinearity values are yk = [4,3,5].
F(x) is computed by
NL is the
evaluate, the break points have to
be initialized manually.
pwlinear object properties, see Properties.
NL = pwlinear;
Specify the number of break points.
NL.NumberOfUnits = 5;
Load estimation data.
load twotankdata; z = iddata(y,u,0.2,'Name','Two tank system'); z1 = z(1:1000);
pwlinear object, and specify the breakpoints.
InputNL = pwlinear('BreakPoints',[-2,1,4]);
BreakPoints is specified as a vector, the specified vector is interpreted as the x-values of the break points. The y-values of the break points are set to 0, and are determined during model estimation.
Estimate model with no output nonlinearity.
sys = nlhw(z1,[2 3 0],InputNL,);
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name,Value arguments to specify additional properties of
NL= pwlinear('NumberofUnits',5) creates
a piecewise-linear nonlinearity estimator object with 5 breakpoints.
pwlinear object properties include:
Number of breakpoints, specified as an integer.
Break points, xk, and the corresponding nonlinearity values at the breakpoints, yk, specified as one of the following:
When the nonlinearity object is created, the breakpoints are
ordered by ascending
NL— Piecewise-linear nonlinearity estimator object
Piecewise-linear nonlinearity estimator object, returned as