Quantcast

Documentation Center

  • Trial Software
  • Product Updates

sigmoidnet

Class representing sigmoid network nonlinearity estimator for nonlinear ARX and Hammerstein-Wiener models

Syntax

s=sigmoidnet('NumberOfUnits',N)
s=sigmoidnet(Property1,Value1,...PropertyN,ValueN)

Description

sigmoidnet is an object that stores the sigmoid network nonlinear estimator for estimating nonlinear ARX and Hammerstein-Wiener models.

You can use the constructor to create the nonlinearity object, as follows:

s=sigmoidnet('NumberOfUnits',N) creates a sigmoid nonlinearity estimator object with N terms in the sigmoid expansion.

s=sigmoidnet(Property1,Value1,...PropertyN,ValueN) creates a sigmoid nonlinearity estimator object specified by properties in sigmoidnet Properties.

Use evaluate(s,x) to compute the value of the function defined by the sigmoidnet object s at x.

sigmoidnet Properties

You can include property-value pairs in the constructor to specify the object.

After creating the object, you can use get or dot notation to access the object property values. For example:

% List all property values
get(s)
% Get value of NumberOfUnits property
s.NumberOfUnits

You can also use the set function to set the value of particular properties. For example:

set(s, 'LinearTerm', 'on')

The first argument to set must be the name of a MATLAB® variable.

Property NameDescription
NumberOfUnits

Integer specifies the number of nonlinearity units in the expansion.
Default=10.

For example:

sigmoidnet(H,'NumberOfUnits',5)
LinearTerm

Can have the following values:

  • 'on'—Estimates the vector L in the expansion.

  • 'off'—Fixes the vector L to zero.

For example:

sigmoidnet(H,'LinearTerm','on')
Parameters

A structure containing the parameters in the nonlinear expansion, as follows:

  • RegressorMean: 1-by-m vector containing the means of x in estimation data, r.

  • NonLinearSubspace: m-by-q matrix containing Q.

  • LinearSubspace: m-by-p matrix containing P.

  • LinearCoef: p-by-1 vector L.

  • Dilation: q-by-n matrix containing the values bn.

  • Translation: 1-by-n vector containing the values cn.

  • OutputCoef: n-by-1 vector containing the values an.

  • OutputOffset: scalar d.

Typically, the values of this structure are set by estimating a model with a sigmoidnet nonlinearity.

Examples

Use sigmoidnet to specify the nonlinear estimator in nonlinear ARX and Hammerstein-Wiener models. For example:

m=nlarx(Data,Orders,sigmoidnet('num',5));

More About

expand all

Tips

Use sigmoidnet to define a nonlinear function , where y is scalar and x is an m-dimensional row vector. The sigmoid network function is based on the following expansion:

where f is the sigmoid function, given by the following equation:

P and Q are m-by-p and m-by-q projection matrices. The projection matrices P and Q are determined by principal component analysis of estimation data. Usually, p=m. If the components of x in the estimation data are linearly dependent, then p<m. The number of columns of Q, q, corresponds to the number of components of x used in the sigmoid function.

When used in a nonlinear ARX model, q is equal to the size of the NonlinearRegressors property of the idnlarx object. When used in a Hammerstein-Wiener model, m=q=1 and Q is a scalar.

r is a 1-by-m vector and represents the mean value of the regressor vector computed from estimation data.

d, a, and c are scalars.

L is a p-by-1 vector.

b are q-by-1 vectors.

Algorithms

sigmoidnet uses an iterative search technique for estimating parameters.

See Also

|

Was this topic helpful?