idproc - Class for storing low-order, continuous-time process models

Syntax

m = idproc(Type)
m = idproc(Type,'Property1',Value1,...,'PropertyN',ValueN)
m = pem(Data,Type) % to directly estimate an idproc model

Description

The function idproc is used to create typical simple, continuous-time process models as idproc objects. The model has one output, but can have several inputs.

The character of the model is defined by the argument Type. This is an acronym made up of the following symbols:

This means, for example, that Type = 'P1D' corresponds to the model with transfer function

while Type = 'P0I' is

and Type = 'P3UZ' is

For multiple-input systems, Type is a cell array where each cell describes the character of the model from the corresponding input, like Type = {'P1D'.'P0I'} for the two-input model

(2-1)

The parameters of the model are

These properties contain fields that give the values of the parameters, upper and lower bounds, and information whether they are locked to zero, have a fixed value, or are to be estimated. For multiple-input models, the number of entries in these fields equals the number of inputs. This is described in more detail below.

The idproc object is a child of idmodel. Therefore any idmodel properties can be set as property name/property value pairs in the idproc command. They can also be set by the command set, or by subassignment, as in

m.InputName = {'speed','voltage'}
m.kp = 12

In the multiple-input case, models for specific inputs can be obtained by regular subreferencing.

m(ku)

There are also two properties, DisturbanceModel and InitialState, that can be used to expand the model. See below.

idproc Properties

In addition, any idproc object also has all the properties of idmodel. See Algorithm Properties, EstimationInfo, and idmodel.

Note that all properties can be set or retrieved using either the set and get commands or subscripts. Autofill applies to all properties and values, and these are case insensitive. Also 'u' and 'y' are short for 'Input' and 'Output', respectively. You can also set all properties at estimation time as property name/property value pairs in the call to pem. An extended syntax allows direct setting of the fields of the parameter values, so that assigning a numerical value is automatically attributed to the value field, while a string is attributed to the status field.

m.kp = 10
m.tp1 = 'estimate'
% Initializing the parameter Kp at the value 10
m = pem(Data,'P1D','kp',10)
% Fixing the parameter Kp to the value 10
m = pem(Data,'P1D','kp',10,'kp','fix')
% constraining Kp to lie between 3 and 4
m = pem(Data,'P2U','kp',{'max',4},'kp',{'min',3})
% For two inputs, estimate the offset level
% of the first input
m = pem(Data,{'P2I','P1D',},'ulevel',{'est','zer'})
% estimate a noise model
m = pem(Data,'P2U','dist','est')
% Use a fixed noisemodel,
% given by the continuous-time idpoly model noimod
m = pem(Data,'P2U','dist',{'fix',noimod})
% (minimum Kp for the second input)
m.kp.min(2) = 12
% fixing the gain for the second input.
m.kp.status{2} = 'fix'

For a complete list of property values, use get(m). To see possible value assignments, use set(m).

idproc Definition of States

The states of an idproc model are defined as those corresponding to the model obtained by converting them to the state-space format using the idss command. For example, if you have an idproc model defined by m1 = idproc('P1D');, then the initial states of this model correspond to those of m2 = idss(m1). The concept of states is useful for functions such as sim, predict, compare and findstates.

Examples

m = pem(Data,'P2D','dist','arma1')
  


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