Accelerating the pace of engineering and science

# 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));`

expand all

### Tips

Use sigmoidnet to define a nonlinear function $y=F\left(x\right)$, 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:

$f\left(z\right)=\frac{1}{{e}^{-z}+1}.$

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.