Main Content

idDeadZone

Create a dead-zone nonlinearity estimator object

Syntax

NL = idDeadZone
NL = idDeadZone('ZeroInterval',[a,b])

Description

NL = idDeadZone creates a default dead-zone nonlinearity estimator object for estimating Hammerstein-Wiener models. The interval in which the dead-zone exists (zero interval) is set to [NaN NaN]. The initial value of the zero interval is determined from the estimation data range, during estimation using nlhw. Use dot notation to customize the object properties, if needed.

NL = idDeadZone('ZeroInterval',[a,b]) creates a dead-zone nonlinearity estimator object initialized with zero interval, [a,b].

Alternatively, use NL = idDeadZone([a,b]).

Object Description

idDeadZone is an object that stores the dead-zone nonlinearity estimator for estimating Hammerstein-Wiener models.

Use idDeadZone to define a nonlinear function y=F(x,θ), where y and x are scalars, and θ represents the parameters a and b, which define the zero interval.

The dead-zone nonlinearity function has the following characteristics:

ax<b              F(x)=0x<a                   F(x)=xaxb                   F(x)=xb

For example, in the following plot, the dead-zone is in the interval [-4,4].

The value F(x) is computed by evaluate(NL,x), where NL is the idDeadZone object.

For idDeadZone object properties, see Properties.

Examples

collapse all

NL = idDeadZone;

Specify the zero interval.

NL.ZeroInterval = [-4,5];

Load estimation data.

load twotankdata;
z = iddata(y,u,0.2,'Name','Two tank system');
z1 = z(1:1000);

Create an idDeadZone object, and specify the initial guess for the zero-interval.

OutputNL = idDeadZone('ZeroInterval',[-0.1 0.1]);

Estimate model with no input nonlinearity.

m = nlhw(z1,[2 3 0],[],OutputNL);

Load the estimation data.

load motorizedcamera;

Create an iddata object.

z = iddata(y,u,0.02,'Name','Motorized Camera','TimeUnit','s');

z is an iddata object with 6 inputs and 2 outputs.

Specify the model orders and delays.

Orders = [ones(2,6),ones(2,6),ones(2,6)];

Specify the same nonlinearity estimator for each input channel.

InputNL = idSaturation;

Specify different nonlinearity estimators for each output channel.

 OutputNL = [idDeadZone,idWaveletNetwork];

Estimate the Hammerstein-Wiener model.

sys = nlhw(z,Orders,InputNL,OutputNL);

To see the shape of the estimated input and output nonlinearities, plot the nonlinearities.

plot(sys)

Figure Hammerstein-Wiener Model Plot contains 6 axes objects and other objects of type uipanel, uicontrol. Axes object 1 with xlabel Input to nonlinearity at input "u1", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation. Axes object 2 with xlabel Input to nonlinearity at input "u2", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation. Axes object 3 with xlabel Input to nonlinearity at input "u3", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation. Axes object 4 with xlabel Input to nonlinearity at input "u4", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation. Axes object 5 with xlabel Input to nonlinearity at input "u5", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation. Axes object 6 with xlabel Input to nonlinearity at input "u6", ylabel Nonlinearity Value contains an object of type line. This object represents sys:idSaturation.

Click on the input and output nonlinearity blocks on the top of the plot to see the nonlinearities.

Input Arguments

collapse all

Zero interval of the dead-zone, specified as a 2–element row vector of doubles.

The dead-zone nonlinearity is initialized at the interval [a,b]. The interval values are adjusted to the estimation data by nlhw. To remove the lower limit, set a to -Inf. The lower limit is not adjusted during estimation. To remove the upper limit, set b to Inf. The upper limit is not adjusted during estimation.

When the interval is [NaN NaN], the initial value of the zero interval is determined from the estimation data range during estimation using nlhw.

Example: [-2 1]

Properties

ZeroInterval

Zero interval of the dead-zone, specified as a 2–element row vector of doubles.

Default: [NaN NaN]

Free

Option to fix or free the parameters of ZeroInterval, specified as a 2–element logical row vector. When you set an element of Free to false, the corresponding value in ZeroInterval remains fixed during estimation to the initial value that you specify.

Default: [true true]

Output Arguments

collapse all

Dead-zone nonlinearity estimator object, returned as an idDeadZone object.

Version History

Introduced in R2007a

expand all