TuningGoal.LoopShape
Target loop shape for control system tuning
Description
Use TuningGoal.LoopShape to specify a target
gain profile (gain as a function of frequency) of an open-loop response.
TuningGoal.LoopShape constrains the open-loop, point-to-point
response (L) at a specified location in your control system. Use this tuning
goal for control system tuning with tuning commands, such as systune or
looptune.
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
CrossTol parameter, 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 TuningGoal.LoopShape 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 TuningGoal.MinLoopGain and TuningGoal.MaxLoopGain. When you do so, the software
determines the best loop shape near crossover.
Creation
Syntax
Description
creates a tuning goal for shaping the open-loop response measured at the specified location.
The magnitude of the single-input, single-output (SISO) transfer function
Req =
TuningGoal.LoopShape(location,loopgain)loopgain specifies the target open-loop gain profile. You can specify
the target gain profile (maximum gain across the I/O pair) as a smooth transfer function or
sketch a piecewise error profile using an frd model.
specifies a tolerance on the location of the crossover frequency.
Req = TuningGoal.LoopShape(location,loopgain,crosstol)crosstol expresses the tolerance in decades. For example,
crosstol = 0.5 allows gain crossovers within half a decade on either
side of the target crossover frequency specified by loopgain. When you
omit crosstol, the tuning goal uses a default value of 0.1 decades. You
can increase crosstol when tuning MIMO control systems. Doing so allows
more widely varying crossover frequencies for different loops in the system.
Req = TuningGoal.LoopShape(
specifies a range for the target gain crossover frequency. The range is a vector of the form
location,wcrange)wcrange = [wc1,wc2]. This syntax is equivalent to
using the geometric mean sqrt(wc1*wc2) as wc and
setting crosstol to the half-width of wcrange in
decades. Using a range instead of a single wc value increases the ability
of the tuning algorithm to enforce the target loop shape for all loops in a MIMO control
system.
Input Arguments
Properties
Examples
Tips
This tuning goal imposes an implicit stability constraint on the closed-loop sensitivity function measured at
Location, evaluated with loops opened at the points identified inOpenings. The dynamics affected by this implicit constraint are the stabilized dynamics for this tuning goal. TheMinDecayandMaxRadiusoptions ofsystuneOptionscontrol the bounds on these implicitly constrained dynamics. If the optimization fails to meet the default bounds, or if the default bounds conflict with other requirements, usesystuneOptionsto change these defaults.
Algorithms
When you tune a control system using a TuningGoal, the software converts
the tuning goal into a normalized scalar value f(x), where
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 TuningGoal.LoopShape, f(x) is
given by:
Here,
S = D–1[I – L(s,x)]–1D
is the scaled sensitivity function at the specified location, where
L(s,x) is the open-loop response being
shaped. D is an automatically-computed loop scaling factor. (If the
LoopScaling property is set to 'off', then
D = I.)
T = S – I is the
complementary sensitivity function.
WS and
WT are frequency weighting functions derived from the
specified loop shape. The gains of these functions roughly match LoopGain and
1/LoopGain, for values ranging from –20 dB to 60 dB. For numerical reasons,
the weighting functions level off outside this range, unless the specified loop gain profile
changes slope for gains above 60 dB or below –60 dB. Because poles of
WS or WT
close to s = 0 or s = Inf might lead to
poor numeric conditioning of the systune optimization problem, it is not
recommended to specify loop shapes with very low-frequency or very high-frequency
dynamics.
To obtain WS and WT, use:
[WS,WT] = getWeights(Req,Ts)
where Req is the tuning goal, and Ts is the sample
time at which you are tuning (Ts = 0 for continuous time). For more
information about the effects of the weighting functions on numeric stability, see Visualize Tuning Goals.
Version History
Introduced in R2014aSee Also
looptune | systune | looptune (for slTuner) (Simulink Control Design) | systune (for slTuner) (Simulink Control Design) | TuningGoal.MinLoopGain | TuningGoal.MaxLoopGain | viewGoal | TuningGoal.Tracking | TuningGoal.Gain | slTuner (Simulink Control Design) | frd




