Imposing Constraints on Model Parameter Values

All identified linear (IDLTI) models, except idfrd, contain a Structure property. The Structure property contains the adjustable entities (parameters) of the model. Each parameter has attributes such as value, minimum/maximum bounds, and free/fixed status that allow you to constrain them to desired values or a range of values during estimation. You use the Structure property to impose constraints on the values of various model parameters.

The Structure property contains the essential parameters that define the structure of a given model:

  • For identified transfer functions, includes the numerator, denominator, and delay parameters

  • For polynomial models, includes the list of active polynomials

  • For state-space models, includes the list of state-space matrices

For information about other model types, see the model reference pages.

For example, the following example constructs an idtf model, specifying values for the Numerator and Denominator parameters:

num = [1 2];
den = [1 2 2];
sys = idtf(num,den)

You can update the value of the Numerator and Denominator properties after you create the object as follows:

new_den = [1 1 10];
sys.Denominator = new_den;

To fix the denominator to the value you specified (treat its coefficients as fixed parameters), use the Structure property of the object as follows:

sys.Structure.Denominator.Value = new_den;
sys.Structure.Denominator.Free = false(1,3);

For a transfer function model, the Numerator, Denominator, and IODelay model properties are simply pointers to the Value attribute of the corresponding parameter in the Structure property.

Similar relationships exist for other model structures. For example, the A property of a state-space model contains the double value of the state matrix. It is an alias to the A parameter value stored in Structure.A.Value.

Was this topic helpful?