## Loop Shape Goal

### Purpose

Shape open-loop response of feedback loops when using **Control System Tuner**.

### Description

Loop Shape Goal specifies a target *gain profile* (gain
as a function of frequency) of an open-loop response. Loop Shape Goal
constrains the open-loop, point-to-point response (*L*)
at a specified location in your control system.

When you tune a control system, the target open-loop gain profile
is converted into constraints on the inverse sensitivity function inv(*S*) = (*I* + *L*) and the complementary
sensitivity function *T* = 1–*S*.
These constraints are illustrated for a representative tuned system
in the following figure.

Where *L* is much greater than 1, a minimum
gain constraint on inv(*S*) (green shaded region)
is equivalent to a minimum gain constraint on *L*.
Similarly, where *L* is much smaller than 1, a maximum
gain constraint on *T* (red shaded region) is equivalent
to a maximum gain constraint on *L*. The gap between
these two constraints is twice the crossover tolerance, which specifies
the frequency band where the loop gain can cross 0 dB.

For multi-input, multi-output (MIMO) control systems, values
in the gain profile greater than 1 are interpreted as minimum performance
requirements. Such values are lower bounds on the smallest singular
value of the open-loop response. Gain profile values less than one
are interpreted as minimum roll-off requirements, which are upper
bounds on the largest singular value of the open-loop response. For
more information about singular values, see `sigma`

.

Use Loop Shape Goal when the loop shape near crossover is simple or well understood (such as integral action). To specify only high gain or low gain constraints in certain frequency bands, use Minimum Loop Gain Goal or Maximum Loop Gain Goal. When you do so, the software determines the best loop shape near crossover.

#### Creation

In the **Tuning** tab of **Control System Tuner**, select **New Goal** > **Target shape for open-loop response** to create a Loop Shape Goal.

#### Command-Line Equivalent

When tuning control systems at the command line, use `TuningGoal.LoopShape`

to
specify a loop-shape goal.

### Open-Loop Response Selection

Use this section of the dialog box to specify the signal locations at which to compute the open-loop gain. You can also specify additional loop-opening locations for evaluating the tuning goal.

**Shape open-loop response at the following locations**Select one or more signal locations in your model at which to compute and constrain the open-loop gain. To constrain a SISO response, select a single-valued location. For example, to constrain the open-loop gain at a location named

`'y'`

, click**Add signal to list**and select`'y'`

. To constrain a MIMO response, select multiple signals or a vector-valued signal.**Compute response with the following loops open**Select one or more signal locations in your model at which to open a feedback loop for the purpose of evaluating this tuning goal. The tuning goal is evaluated against the open-loop configuration created by opening feedback loops at the locations you identify. For example, to evaluate the tuning goal with an opening at a location named

`'x'`

, click**Add signal to list**and select`'x'`

.

**Tip**

To highlight any selected signal in the Simulink^{®} model, click . To remove a signal from the input or output list, click . When you have selected multiple signals, you can reorder
them using and . For more information on how to specify signal locations
for a tuning goal, see
Specify Goals for Interactive Tuning.

### Desired Loop Shape

Use this section of the dialog box to specify the target loop shape.

**Pure integrator wc/s**Check to specify a pure integrator and crossover frequency for the target loop shape. For example, to specify an integral gain profile with crossover frequency 10 rad/s, enter 10 in the

**Crossover frequency wc**text box.**Other gain profile**Check to specify the target loop shape as a function of frequency. Enter a SISO numeric LTI model whose magnitude represents the desired gain profile. For example, you can specify a smooth transfer function (

`tf`

,`zpk`

, or`ss`

model). Alternatively, you can sketch a piecewise target loop shape using an`frd`

model. When you do so, the software automatically maps the profile to a smooth transfer function that approximates the desired loop shape. For example, to specify a target loop shape of 100 (40 dB) below 0.1 rad/s, rolling off at a rate of –20 dB/decade at higher frequencies, enter`frd([100 100 10],[0 1e-1 1])`

.If you are tuning in discrete time, you can specify the loop shape as a discrete-time model with the same sample time that you are using for tuning. If you specify the loop shape in continuous time, the tuning software discretizes it. Specifying the loop shape in discrete time gives you more control over the loop shape near the Nyquist frequency.

### Options

Use this section of the dialog box to specify additional characteristics of the loop shape goal.

**Enforce loop shape within**Specify the tolerance in the location of the crossover frequency, in decades. For example, to allow gain crossovers within half a decade on either side of the target crossover frequency, enter 0.5. Increase the crossover tolerance to increase the ability of the tuning algorithm to enforce the target loop shape for all loops in a MIMO control system.

**Enforce goal in frequency range**Limit the enforcement of the tuning goal to a particular frequency band. Specify the frequency band as a row vector of the form

`[min,max]`

, expressed in frequency units of your model. For example, to create a tuning goal that applies only between 1 and 100 rad/s, enter`[1,100]`

. By default, the tuning goal applies at all frequencies for continuous time, and up to the Nyquist frequency for discrete time.**Stabilize closed loop system**By default, the tuning goal imposes a stability requirement on the closed-loop transfer function from the specified inputs to outputs, in addition to the gain constraint. If stability is not required or cannot be achieved, select

`No`

to remove the stability requirement. For example, if the gain constraint applies to an unstable open-loop transfer function, select`No`

.

**Equalize loop interactions**For multi-loop or MIMO loop gain constraints, the feedback channels are automatically rescaled to equalize the off-diagonal (loop interaction) terms in the open-loop transfer function. Select

`Off`

to disable such scaling and shape the unscaled open-loop response.

**Apply goal to**Use this option when tuning multiple models at once, such as an array of models obtained by linearizing a Simulink model at different operating points or block-parameter values. By default, active tuning goals are enforced for all models. To enforce a tuning requirement for a subset of models in an array, select

**Only Models**. Then, enter the array indices of the models for which the goal is enforced. For example, suppose you want to apply the tuning goal to the second, third, and fourth models in a model array. To restrict enforcement of the requirement, enter`2:4`

in the**Only Models**text box.For more information about tuning for multiple models, see Robust Tuning Approaches (Robust Control Toolbox).

### Algorithms

#### Evaluating Tuning Goals

When you tune a control system, the software converts each tuning
goal into a normalized scalar value *f*(*x*).
Here, *x* is the vector of free (tunable) parameters
in the control system. The software then adjusts the parameter values
to minimize *f*(*x*) or to drive *f*(*x*)
below 1 if the tuning goal is a hard constraint.

For **Loop Shape Goal**, *f*(*x*)
is given by:

$$f\left(x\right)={\Vert \begin{array}{c}{W}_{S}S\\ {W}_{T}T\end{array}\Vert}_{\infty}.$$

*S* = *D*^{–1}[*I* – *L*(*s*,*x*)]^{–1}*D* is
the scaled sensitivity function.

*L*(*s*,*x*)
is the open-loop response being shaped.

*D* is an automatically-computed loop scaling
factor. (If **Equalize loop interactions** is set
to `Off`

, then *D* = *I*.)

*T* = *S* – *I* is the
complementary sensitivity function.

*W _{S}* and

*W*are frequency weighting functions derived from the specified loop shape. The gains of these functions roughly match your specified loop shape and its inverse, respectively, for values ranging from –20 dB to 60 dB. For numerical reasons, the weighting functions level off outside this range, unless the specified gain profile changes slope outside this range. Because poles of

_{T}*W*or

_{S}*W*close to

_{T}*s*= 0 or

*s*=

`Inf`

might
lead to poor numeric conditioning for tuning, it is not recommended
to specify loop shapes with very low-frequency or very high-frequency
dynamics. For more information about regularization and its effects,
see Visualize Tuning Goals. #### Implicit Constraints

This tuning goal imposes an implicit stability constraint on
the closed-loop sensitivity function measured at the specified, evaluated
with loops opened at the specified loop-opening locations. The dynamics
affected by this implicit constraint are the *stabilized
dynamics* for this tuning goal. The **Minimum decay
rate** and **Maximum natural frequency** tuning
options control the lower and upper bounds on these implicitly constrained
dynamics. If the optimization fails to meet the default bounds, or
if the default bounds conflict with other requirements, on the **Tuning** tab,
use **Tuning Options** to change the defaults.