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,);
Specify optional comma-separated pairs of
Name is the argument
Value is the corresponding
Name must appear
inside single 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