Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

idParametric/setpar

Set attributes such as values and bounds of linear model parameters

Syntax

  • sys1 = setpar(sys,'value',value)
    example
  • sys1 = setpar(sys,'free',free)
    example
  • sys1 = setpar(sys,'bounds',bounds)
    example
  • sys1 = setpar(sys,'label',label)
    example

Description

example

sys1 = setpar(sys,'value',value) sets the parameter values of the model sys. For model arrays, use setpar separately on each model in the array.

example

sys1 = setpar(sys,'free',free) sets the free or fixed status of the parameters.

example

sys1 = setpar(sys,'bounds',bounds) sets the minimum and maximum bounds on the parameters.

example

sys1 = setpar(sys,'label',label) sets the labels for the parameters.

Examples

collapse all

Estimate an ARMAX model.

load iddata8;
init_data = z8(1:100);
na = 1;
nb = [1 1 1];
nc = 1;
nk = [0 0 0];
sys = armax(init_data,[na nb nc nk]);

Set the parameter values.

sys = setpar(sys,'value',[0.5 0.1 0.3 0.02 0.5]');

To view the values, type val = getpar(sys,'value').

Construct a process model.

m = idproc('P2DUZI');
m.Kp = 1;
m.Tw = 100;
m.Zeta = .3;
m.Tz = 10;
m.Td = 0.4;

Set the free status of the parameters.

m = setpar(m,'free',[1 1 1 1 0]);

Here, you set Tz to be a fixed parameter.

To check the free status of Tz, type m.Structure.Tz.

Estimate an ARMAX model.

load iddata8;
init_data = z8(1:100);
na = 1;
nb = [1 1 1];
nc = 1;
nk = [0 0 0];
sys = armax(init_data,[na nb nc nk]);

Set the minimum and maximum bounds for the parameters. Each row represents the bounds for a single parameter. The first value in each row specifies the minimum bound and the second value specifies the maximum bound.

sys = setpar(sys,'bounds',[0 1; 1 1.5; 0 2; 0.5 1; 0 1]);

Estimate an ARMAX model.

load iddata8;
init_data = z8(1:100);
na = 1;
nb = [1 1 1];
nc = 1;
nk = [0 0 0];
sys = armax(init_data,[na nb nc nk]);

Assign default labels to model parameters.

sys = setpar(sys,'label','default');

View the default labels.

getpar(sys,'label')
ans =

  5×1 cell array

    'A1(1)'
    'B0(1)'
    'B0(2)'
    'B0(3)'
    'C1'

Input Arguments

collapse all

Identified linear model, specified as an idss, idproc, idgrey, idtf, or idpoly model object.

Parameter values, specified as a double vector of length nparams(sys).

Free or fixed status of parameters, specified as a logical vector of length nparams(sys).

Minimum and maximum bounds on parameters, specified as a double matrix of size nparams(sys)-by-2. The first column specifies the minimum bound and the second column the maximum bound.

Parameter labels, specified as a cell array of character vectors. The cell array is of length nparams(sys). For example, {'a1','a3'}, if nparams(sys) is two.

Use 'default' to assign default labels, A1, A2..., B1,B2,..., to the parameters.

Output Arguments

collapse all

Model with specified values of parameter attributes. The model sys you specify as the input to setpar gets updated with the specified parameter attribute values.

See Also

| |

Introduced in R2013b

Was this topic helpful?