Products & Services Solutions Academia Support User Community Company

Learn more about System Identification Toolbox   

nlhw - Estimate Hammerstein-Wiener models

Syntax

m = nlhw(data,[nb nf nk])
m = nlhw(data,[nb nf nk],InputNL,OutputNL)
m = nlhw(data,[nb nf nk],InputNL,OutputNL,'PropertyName',PropertyValue)

Description

m = nlhw(data,[nb nf nk]) creates and estimates a Hammerstein-Wiener model with orders nb, nf, and nk, specified as positive integers. nb is the number of zeros plus 1, nf is the number of poles, and nk is the input delay. By default, both the input and output nonlinearity estimators are piecewise linear functions (see pwlinear). data is a time-domain iddata object.

m = nlhw(data,[nb nf nk],InputNL,OutputNL) constructs and estimates a Hammerstein-Wiener model with specified input nonlinearity InputNL and output nonlinearity OutputNL. InputNL and OutputNL can be a string or an estimator object. To use nonlinearity estimators with default settings, specify InputNL and OutputNL using strings (such as 'wave' for wavelet network or 'sig' for sigmoid network). If you need to configure the properties of a nonlinearity estimator, use its object representation. For supported nonlinearities, see For supported nonlinearities, see Nonlinearity Estimators for Hammerstein-Wiener Models.

m = nlhw(data,[nb nf nk],InputNL,OutputNL,'PropertyName',PropertyValue) creates an idnlhw object using options specified as idnlhw property name and value pairs.

Inputs

data

Time-domain iddata object.

nb nf nk

Order of the linear transfer function, where nb is the number of zeros plus 1, nf is the number of poles, and nk is the input delay.

For nu inputs and ny outputs, nb, nf and, nk are ny-by-nu matrices whose i-jth entry specifies the orders and delay of the transfer function from the jth input to the ith output.

InputNL, OutputNL

Input and output nonlinearity estimator objects, respectively. Specify InputNL and OutputNL as strings to use the default configuration of the object. Alternatively, specify these values as object constructors (see the corresponding nonlinearity reference page).

For ny output channels, you can specify nonlinear estimators individually for each output channel by setting InputNL or OutputNL to an ny-by-1 cell array or object array of nonlinearity estimators. To specify the same nonlinearity for all outputs, specify a single input and output nonlinearity estimator.

NonlinearityValue (Default Nonlinearity Configuration)Class
Piecewise linear
(default)
'pwlinear' or 'pwlin'pwlinear
One layer sigmoid network'sigmoidnet' or 'sigm'sigmoidnet
Wavelet network'wavenet' or 'wave'wavenet
Saturation'saturation' or 'sat'saturation
Dead zone'deadzone' or 'dead'deadzone
One-
dimensional polynomial
'poly1d' or 'poly'poly1d
Unit gain'unitgain' or [ ]unitgain

Specify a custom network by defining a function called gaussunit.m, as described in the customnet reference page. Define the custom network object CNetw and estimate the model:

CNetw = cutomnet(@gaussunit);
m = nlhw(data,[na nb nk],CNetw)

Examples

Estimate a Hammerstein-Wiener model:

load iddata3
m1=nlhw(z3,[4 2 1],'sigmoidnet','deadzone')

Estimate a Hammerstein model with saturation:

  load iddata1
% Create a saturation object with lower limit of 0
% and upper limit of 5:
  InputNL = saturation('LinearInterval', [0 5]);
% Estimate model with no output nonlinearity.
  m = nlhw(z1,[2 3 0],InputNL,[]);

Estimate a Wiener model with a nonlinearity containing 5 sigmoid units:

 load iddata1
 m2 = nlhw(z1,[2 3 0],[],sigmoidnet('num', 5))

Estimate a MISO Hammerstein model with a different nonlinearity for each input:

m = nlhw(data,[nb,nf,nk],...
              [sigmoidnet;pwlinear],...
              [])

Refine a Hammerstein-Wiener model using successive calls of nlhw:

load iddata3
m3 = nlhw(z3,[4 2 1],'sigmoidnet','deadzone')
m3 = nlhw(z3,m3)
LinearBlock = m3.LinearModel % retrieves the linear block

See Also

customnet | deadzone | findop(idnlhw) | linapp | linearize(idnlhw) | pem | poly1d | pwlinear | saturation | sigmoidnet | unitgain | wavenet

Tutorials

How To

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS