Documentation

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

## 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.