Documentation Center

  • Trial Software
  • Product Updates

TuningGoal.Overshoot class

Package: TuningGoal

Overshoot constraint for control system tuning

Description

Use the TuningGoal.Overshoot object to limit the overshoot in the step response from specified inputs to specified outputs of a control system. Use this requirement for control system tuning with tuning commands such as systune or looptune.

Construction

Req = TuningGoal.Overshoot(inputname,outputname,maxpercent) creates a tuning requirement for limiting the overshoot in the step response between the specified signal locations. The scalar maxpercent specifies the maximum overshoot as a percentage.

When you use TuningGoal.Overshoot for tuning, the software maps overshoot constraints to peak gain constraints assuming second-order system characteristics. Therefore, the mapping is only approximate for higher-order systems. In addition, this requirement cannot reliably reduce the overshoot below 5%.

Input Arguments

inputname

Input signal for requirement, specified as a string or a cell array of strings for vector-valued signals. The signals available to designate as input signals for the tuning requirement are as follows.

  • If you are using the requirement to tune a Simulink® model of a control system, then inputname can include:

    • Any model input.

    • Any linearization input point in the model.

    • Any signal identified as an analysis point or a loop-opening location in an slTuner interface associated with the Simulink model. Use addPoint and addOpening to add analysis points and loop openings to the slTuner interface.

  • If you are using the requirement to tune a generalized state-space model (genss) of a control system using systune, then inputname can include:

    • Any input of the control system model

    • Any loopswitch channel in the control system model

    For example, if you are tuning a control system model, T, then inputname can be a string contained in T.InputName. Also, if T contains a loopswitch block with a switch channel X, then inputname can include X.

  • If you are using the requirement to tune a controller model, C0 for a plant G0, using looptune, then inputname can include:

    • Any input of C0 or G0

    • Any loopswitch channel in C0 or G0

If inputname is a loopswitch channel of a generalized model, the input signal for the requirement is the implied input associated with the switch:

outputname

Output signal for requirement, specified as a string or a cell array of strings for vector-valued signals. The signals available to designate as output signals for the tuning requirement are as follows.

  • If you are using the requirement to tune a Simulink model of a control system, then outputname can include:

    • Any model output

    • Any linearization output point in the model

    • Any signal identified as an analysis point or a loop-opening location in an slTuner interface associated with the Simulink model. Use addPoint and addOpening to add analysis points and loop openings to the slTuner interface.

  • If you are using the requirement to tune a generalized state-space model (genss) of a control system using systune, then outputname can include:

    • Any output of the control system model

    • Any loopswitch channel in the control system model

    For example, if you are tuning a control system model,T, then outputname can be a string contained in T.OutputName. Also, if T contains a loopswitch block with a switch channel X, then outputname can include X.

  • If you are using the requirement to tune a controller model, C0, for a plant, G0, using looptune, then outputname can include:

    • Any output of C0 or G0

    • Any loopswitch channel in C0 or G0

If outputname is a loopswitch channel of a generalized model, the output signal for the requirement is the implied output associated with the switch:

maxpercent

Maximum percent overshoot, specified as a scalar value. For example, the following code specifies a maximum 5% overshoot in the step response from 'r' to 'y'.

Req = TuningGoal.Overshoot('r','y',5);

TuningGoal.OverShoot cannot reliably reduce the overshoot below 5%.

Properties

Input

Input signal names, specified as a cell array of strings. These strings specify the names of the inputs of the transfer function that the tuning requirement constrains. The initial value of the Input property is set by the inputname input argument when you construct the requirement object.

InputScaling

Reference signal scaling, specified as a vector of positive real values.

For a MIMO tuning requirement, when the choice of units results in a mix of small and large signals in different channels of the response, use this property to specify the relative amplitude of each entry in the vector-valued step input. This information is used to scale the off-diagonal terms in the transfer function from reference to tracking error. This scaling ensures that cross-couplings are measured relative to the amplitude of each reference signal.

For example, suppose that Req is a requirement that signals {'y1','y2'} track reference signals {'r1','r2'}. Suppose further that you require the outputs to track the references with less than 10% cross-coupling. If r1 and r2 have comparable amplitudes, then it is sufficient to keep the gains from r1 to y2 and r2 and y1 below 0.1. However, if r1 is 100 times larger than r2, the gain from r1 to y2 must be less than 0.001 to ensure that r1 changes y2 by less than 10% of the r2 target. To ensure this result, set the InputScaling property as follows.

Req.InputScaling = [100,1];

This tells the software to take into account that the first reference signal is 100 times greater than the second reference signal.

The default value, [] , means no scaling.

Default: []

Output

Output signal names, specified as a cell array of strings. These strings specify the names of the outputs of the transfer function that the tuning requirement constrains. The initial value of the Output property is set by the outputname input argument when you construct the requirement object.

MaxOvershoot

Maximum percent overshoot, specified as a scalar value. For example, the scalar value 5 means the overshoot should not exceed 5%. The initial value of the MaxOvershoot property is set by the maxpercent input argument when you construct the requirement object.

Models

Models to which the tuning requirement applies, specified as a vector of indices.

Use the Models property when tuning an array of control system models with systune, to enforce a tuning requirement for a subset of models in the array. For example, suppose you want to apply the tuning requirement, Req, to the second, third, and fourth models in a model array passed to systune. To restrict enforcement of the requirement, use the following command:

Req.Models = 2:4;

When Models = NaN, the tuning requirement applies to all models.

Default: NaN

Openings

Feedback loops to open when evaluating the requirement, specified as a cell array of strings that identify loop-opening locations. The available loop-opening locations depend on what kind of system you are tuning:

  • If you are tuning a control system specified as a genss model in MATLAB®, a loop-opening location can be any feedback channel in a loopswitch block in the model. In this case, set Openings to a cell array containing the names of one or more loop-opening locations listed in the Location property of a loopswitch block in the control system model.

  • If you are using looptune to tune a system that includes a plant model and controller model, a loop-opening location can be any control or measurement signal. In this case, set Openings to a cell array containing the names of one or more measurement or control signals.

    • A control signal is a signal that is an output of the controller model and an input of the plant model.

    • A measurement signal is a signal that is an output of the plant model and an input of the controller model.

  • If you are tuning a Simulink model of a control system using an slTuner interface, a loop-opening location can be any analysis point added to the interface using addPoint. In this case, set Openings to a cell array containing the names of one or more of these analysis points.

All feedback loops are closed by default, except where there is a permanent loop-opening defined in an slTuner interface.

Default: {}

Name

Name of the requirement object, specified as a string.

For example, if Req is a requirement:

Req.Name = 'LoopReq';

Default: []

Examples

expand all

Overshoot Constraint

Create a requirement that limits the overshoot of the step response from signals named 'r' to 'y' in a control system to 8 percent.

Req = TuningGoal.Overshoot('r','y',8);

You can use Req as an input to looptune or systune when tuning the control system.

Configure the requirement to apply only to the second model in a model array to tune. Also, configure the requirement to be evaluated with a loop open in the control system.

Req.Models = 2;
Req.Openings = 'OuterLoop';   

Setting the Models property restricts application of the requirement to the second model in an array, when you use the requirement to tune an array of control system models. Setting the Openings property specifies that requirement is evaluated with a loop opened at the location in the control system identified by 'OuterLoop'.

See Also

| | | | | | | |

How To

Was this topic helpful?