Documentation

setindist

Modify unmeasured input disturbance model

Syntax

setindist(MPCobj,'integrators')
setindist(MPCobj,'model',model)

Description

setindist(MPCobj,'integrators') sets the unmeasured input disturbance model used by model predictive controller object, MPCobj, to its default value. This model, in combination with the output disturbance model (if any), governs how well the controller compensates for unmeasured disturbances and prediction errors. The input disturbance model:

  • Is a discrete-time, delay-free, state-space (ss) object.

  • Has unit-variance white noise input signals. By default, the number of inputs depends upon the number of unmeasured input disturbances and the need to maintain controller state observability. For custom input disturbance models, the number of inputs is your choice.

  • Has nd outputs, where nd is the number of unmeasured disturbance inputs defined in MPCobj.Model.Plant. Each output channel is sent to the corresponding plant unmeasured disturbance input.

The default input disturbance model has integrators with dimensionless unity gain added to its outputs. An integrator is added for each unmeasured input disturbance, unless doing so would cause a violation of state observability. In this case, a dimensionless unity gain is used instead.

This syntax is equivalent to MPCobj.Model.Disturbance = [].

For details on the role of disturbance modeling in model predictive control and about the model used in the algorithm for state estimation, see Controller State Estimation.

setindist(MPCobj,'model',model) specifies a custom input disturbance model, model. This model can be a state-space (ss), transfer function (tf), or zero-pole-gain (zpk) object with nd outputs. If model is not specified, the default input disturbance model is used.

When specifying a custom input disturbance model, the number of inputs is your choice. setindist does not check custom input disturbance models for violations of state observability. This check is performed later in the MPC design process, when the internal states of MPCobj.Model are updated using commands such as sim or mpcmove.

This syntax is equivalent to MPCobj.Model.Disturbance = model.

Introduced before R2006a

Was this topic helpful?