Documentation Center

  • Trial Software
  • Product Updates

TuningGoal.StableController class

Package: TuningGoal

Constraint on controller stability and fast dynamics for control system tuning

Description

Use the TuningGoal.StableController requirement object to specify a tuning requirement that constrains the dynamics of a tunable component in a control system model. Use this requirement for constraining ltiblock.tf or ltiblock.ss components for control system tuning with tuning commands such as systune or looptune. The TuningGoal.StableController requirement ensures that the tuned value of the tunable component is stable and free of fast dynamics.

After you create a requirement object, you can further configure the tuning requirement by setting Properties of the object.

Construction

Req = TuningGoal.StableController(blockID) creates a tuning requirement. The tuning requirement specifies that the tunable component identified by blockID is stable and free of fast dynamics.

By default, the TuningGoal.StableController requirement imposes an implicit stability constraint on the specified tunable component. However, the default requirement does not impose a finite minimum decay rate or a finite maximum frequency for poles in the tunable component. To change this behavior, set the MinDecay and MaxFrequency properties, respectively. (See Properties.)

To limit the enforcement of this requirement to poles having natural frequency within a specified frequency range, set the Focus property. If you want to constrain the poles of the system with one or more feedback loops opened, set the Openings property. (See Properties.)

Input Arguments

blockID

Tunable component to constrain, specified as a string.

The string blockID must correspond to the Name property of a Control Design Block in the control system you are tuning.

Properties

Block

Name of tunable component to constrain, specified as a string. The blockID input argument sets the value of Block.

MinDecay

Minimum decay rate of poles of tunable component, specified as a positive scalar value in radians per second. When you tune the control system using this requirement, all poles of the tunable component are constrained to satisfy Re(s) < -MinDecay. This constraint helps ensure stable dynamics in the tunable component.

By default, MinDecay = 0. In that case, the requirement imposes an implicit constraint on stability of the tunable component.

Change the value of this property to set a finite minimum decay rate. For example, suppose Req is a TuningGoal.StableContoller requirement. Change the minimum decay rate to 0.001:

Req.MinDecay = 0.001;

This constraint only applies to poles with natural frequencies in the range specified by the Focus property.

Default: 0

MaxFrequency

Maximum natural frequency of poles of tunable component, specified as a positive scalar value in radians per second. When you tune the control system using this requirement, all poles of the tunable component are constrained to satisfy |s| < MaxFrequency. This constraint prevents fast dynamics in the tunable component.

Change the value of this property to set a finite maximum frequency. For example, suppose Req is a TuningGoal.StableContoller requirement. Change the maximum frequency to 1000:

Req.MaxFrequency = 1000;

This constraint only applies to poles with natural frequencies in the range specified by the Focus property.

Default: Inf

Name

Name of the requirement object, specified as a string.

For example, if Req is a requirement:

Req.Name = 'LoopReq';

Default: []

Examples

expand all

Constrain Dynamics of Tunable Transfer Function

Create a tuning requirement that constrains the dynamics of a tunable transfer function block in a tuned control system.

For this example, suppose that you are tuning a control system that includes a compensator block parametrized as a second-order transfer function. Create a tuning requirement that restricts the poles of that transfer function to the region Re(s) < –0.1, |s| < 30.

Create a tunable component that represents the compensator.

C = ltiblock.tf('Compensator',2,2);

This command creates a Control Design Block named 'Compensator' with two poles and two zeroes. You can construct a tunable control system model, T, by interconnecting this Control Design Block with other tunable and numeric LTI models. If you tune T using systune, the values of these poles and zeroes are unconstrained by default.

Create a tuning requirement to constrain the dynamics of the compensator block.

Req = TuningGoal.StableController('Compensator');

Set the minimum decay rate to 0.1 rad/s, and set the maximum frequency to 30 rad/s.

Req.MinDecay = 0.1;
Req.MaxFrequency = 30;

If you tune T using systune and the tuning requirement Req, the poles of the compensator block are constrained satisfy these values.

After you tune T, you can use viewSpec to validate the tuned control system against the requirement.

Tips

  • TuningGoal.StableController restricts the dynamics of a single tunable component of the control system. To ensure the stability or restrict the overall dynamics of the tuned control system, use TuningGoal.Poles.

See Also

| | | | | | | |

How To

Was this topic helpful?