Modify unmeasured output disturbance model




setoutdist(MPCobj,'integrators') sets the output disturbance model used by the model predictive controller object, MPCobj, to its default value. This model, in combination with the input disturbance model (if any), governs how well the controller compensates for unmeasured disturbances and prediction errors. The output 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 measured outputs and the need to maintain controller state observability. For custom output disturbance models, the number of inputs is your choice.

  • Has ny outputs, where ny is the number of plant outputs defined in MPCobj.Model.Plant. Each model output is added to the corresponding plant output.

The default output disturbance model has integrators with dimensionless unity gain added to its outputs according to the following rules:

  • No integrators are added for unmeasured plant outputs.

  • An integrator is added for each measured output in order of decreasing output weight.

    • For time-varying weights, the sum of the absolute values over time is considered for each output channel.

    • For equal output weights, the order within the output vector is followed.

  • For each measured output, an integrator is not added if one of the following is true:

    • Adding the integrator would cause a violation of state observability.

    • The corresponding value in MPCobj.Weights.OutputVariables is zero.

    In this case, when an integrator is not added, zero gain is used instead.

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.

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

When specifying a custom output disturbance model, the number of inputs is your choice. setoutdist does not check custom output 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.

Introduced before R2006a

Was this topic helpful?