# idFeedforwardNetwork

(Not recommended) Multilayer feedforward neural network mapping function for nonlinear ARX models (requires Deep Learning Toolbox)

`idFeedforwardNetwork`

is not recommended. Use `idNeuralNetwork`

instead to create mapping objects based on neural networks. For more information, see Compatibility Considerations.

## Description

An `idFeedforwardNetwork`

object implements a neural network
function, and is a nonlinear mapping object for estimating nonlinear ARX models. This mapping
object lets you use `network`

(Deep Learning Toolbox) objects that are created using Deep Learning Toolbox™ in nonlinear ARX models.

Mathematically, `idFeedforwardNetwork`

is a function that maps
*m* inputs *X*(*t*) =
[*x*(*t*_{1}),*x*_{2}(*t*),…,*x _{m}*(

*t*)]

^{T}to a scalar output

*y*(

*t*), using a multilayer feedforward (static) neural network, as defined in Deep Learning Toolbox.

You create multi-layer feedforward neural networks by using commands such as `feedforwardnet`

(Deep Learning Toolbox), `cascadeforwardnet`

(Deep Learning Toolbox) and `linearlayer`

(Deep Learning Toolbox). When you create the network,

Designate the input and output sizes to be unknown by leaving them at the default value of zero (recommended method). When estimating a nonlinear ARX model using the

`nlarx`

command, the software automatically determines the input and output sizes of the network.Initialize the sizes manually by setting input and output ranges to

*m*-by-2 and 1-by-2 matrices, respectively, where*m*is the number of nonlinear ARX model regressors and the range values are minimum and maximum values of regressors and output data, respectively.

See Examples for more information.

Use `evaluate(net_estimator,x)`

to compute the value of the function
defined by the `idFeedforwardNetwork`

object
`net_estimator`

at input value *x*. When used for
nonlinear ARX model estimation, *x* represents the model regressors for the
output for which the `idFeedforwardNetwork`

object is assigned as the
nonlinearity estimator.

You cannot use `idFeedforwardNetwork`

when the `Focus`

option in `nlarxOptions`

is `'simulation'`

because the underlying `network`

object is considered to be nondifferentiable
for estimation. Minimization of simulation error requires differentiable nonlinear
functions.

Use `idFeedforwardNetwork`

as the value of the
`OutputFcn`

property of an `idnlarx`

model. For example, specify `idFeedforwardNetwork`

when you
estimate an `idnlarx`

model with the following
command.

sys = nlarx(data,regressors,idFeedforwardNetwork)

`nlarx`

estimates the model, it essentially estimates the parameters
of the `idFeedforwardNetwork`

function.
## Creation

### Description

creates a feedforward neural network mapping object that is based on the feedforward
(static) network object `net_estimator`

= idFeedforwardNetwork(`Network`

)`Network`

that has been created using one of
the neural network commands `feedforwardnet`

,
`cascadeforwardnet`

, or `linearlayer`

.
`Network`

must represent a static mapping between the inputs and
output without I/O delays or feedback. The number of outputs of the network, if assigned,
must be set to one. For a multiple-output nonlinear ARX models, create a separate
`idFeedforwardNetwork`

object for each output—that is, each element
of the output function must represent a single-output network object.

## Properties

## Examples

## Algorithms

The `nlarx`

command uses the `train`

method of the `network`

object, defined in the Deep Learning Toolbox software, to compute the network parameter values.

## Version History

**Introduced in R2007a**

## See Also

`nlarx`

| `idnlarx`

| `evaluate`

| `network`

(Deep Learning Toolbox) | `feedforwardnet`

(Deep Learning Toolbox) | `cascadeforwardnet`

(Deep Learning Toolbox) | `linearlayer`

(Deep Learning Toolbox)