Package: TuningGoal
Sensitivity requirement for control system tuning
Use TuningGoal.Sensitivity
to limit the sensitivity
of a feedback loop to disturbances. Constrain the sensitivity to be
smaller than one at frequencies where you need good disturbance rejection.
Use this tuning goal for control system tuning with tuning commands
such as systune
or looptune
.
creates
a tuning goal for limiting the sensitivity to disturbances entering
a feedback loop at the specified location. Req
= TuningGoal.Sensitivity(location
,maxsens
)maxsens
specifies
the maximum sensitivity as a function of frequency. You can specify
the maximum sensitivity profile as a smooth transfer function or sketch
a piecewise error profile using an frd
model
or the makeweight
(Robust Control Toolbox) command.
See getSensitivity
(Simulink Control Design)
for more information about sensitivity functions.)

Location at which the sensitivity to disturbances is constrained, specified as a character vector or cell array of character vectors that identify one or more locations in the control system to tune. What locations are available depends on what kind of system you are tuning:
If 

Maximum sensitivity to disturbances as a function of frequency. You can specify maxsens = frd([0.01 1 1],[1 50 100]); bodemag(maxsens) ylim([45,5]) When you use an If you are tuning in discrete time (that is, using a 

Maximum sensitivity as a function of frequency, specified as
a SISO The software automatically maps the input argument 

Frequency band in which tuning goal is enforced, specified as
a row vector of the form Set the Req.Focus = [1,100]; Default: 

Toggle for automatically scaling loop signals, specified as In multiloop or MIMO control systems, the feedback channels
are automatically rescaled to equalize the offdiagonal terms in the
openloop transfer function (loop interaction terms). Set Default: 

Location of disturbance, specified as a cell array of character
vectors that identify one or more analysis points in the control system
to tune. For example, if The initial value of the 

Models to which the tuning goal applies, specified as a vector of indices. Use the Req.Models = 2:4; When Default: 

Feedback loops to open when evaluating the tuning goal, specified as a cell array of character vectors that identify loopopening locations. The tuning goal is evaluated against the openloop configuration created by opening feedback loops at the locations you identify. If you are using the tuning goal to tune a Simulink model
of a control system, then If you are using the tuning goal to tune a generalized statespace
( For example, if Default: 

Name of the tuning goal, specified as a character vector. For example, if Req.Name = 'LoopReq'; Default: 
Create a tuning goal that limits the sensitivity to disturbance at the plant input of the following control system. The control system contains an analysis point named 'X'
at the plant input.
Specify a maximum sensitivity of 0.01 (–40 dB) at 1 rad/s, increasing to 1 (0 dB) past 10 rad/s. Use an frd
model to sketch this target sensitivity.
maxsens = frd([0.01 1 1],[1 10 100]);
Req = TuningGoal.Sensitivity('X',maxsens);
The software converts maxsens
into a smooth function of frequency that approximates the piecewisespecified gain profile. Visualize this function using viewGoal
.
viewGoal(Req)
The shaded region indicates regions where the tuning goal is violated. The shaded region differs from the specified gain profile (dashed line) at very low frequencies because of modifications that the software introduces for numeric stability, as described in Algorithms.
Create a tuning goal that specifies a maximum sensitivity of 0.1 (10%) at frequencies below 5 rad/s. Configure the tuning goal to apply only to the second and third plant models.
Req = TuningGoal.Sensitivity('u',0.1);
Req.Focus = [0 5];
Req.Models = [2 3];
You can use Req
as an input to looptune
or systune
when
tuning a control system that has an analysis point called 'u'
.
Setting the Focus
property limits the application
of the tuning goal to frequencies between 0 and 5 rad/s. Setting the Models
property
restricts application of the tuning goal to the second and third models
in an array, when you use the tuning goal to tune an array of control
system models.
This tuning goal imposes an implicit stability constraint on
the closedloop sensitivity function measured at Location
,
evaluated with loops opened at the points identified in Openings
.
The dynamics affected by this implicit constraint are the stabilized
dynamics for this tuning goal. The MinDecay
and MaxRadius
options
of systuneOptions
control 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,
use systuneOptions
to change
these defaults.
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.Sensitivity
, f(x)
is given by:
$$f\left(x\right)={\Vert {W}_{S}\left(s\right)S\left(s,x\right)\Vert}_{\infty},$$
or its discretetime equivalent. Here, S(s,x)
is the closedloop sensitivity function measured at the location specified
in the tuning goal. W_{S} is
a frequency weighting function derived from the specified sensitivity
profile. The gains of W_{S} and 1/MaxSensitivity
roughly
match for gain values ranging from –20 dB to 60 dB. For numerical
reasons, the weighting function levels off outside this range, unless
the specified sensitivity profile changes slope outside this range.
This adjustment is called regularization. Because
poles of W_{S} close to s =
0 or s = Inf
might lead to poor
numeric conditioning of the systune
optimization
problem, it is not recommended to specify sensitivity profiles with
very lowfrequency or very highfrequency dynamics.
To obtain W_{S}, use:
WS = getWeight(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 regularization and its
effects, see Visualize Tuning Goals.
looptune
 systune
 looptune
(for slTuner)
(Simulink Control Design)  systune (for slTuner)
(Simulink Control Design)  viewGoal
 evalGoal
 TuningGoal.Gain
 TuningGoal.LoopShape
 TuningGoal.Rejection
 TuningGoal.MinLoopGain
 TuningGoal.MaxLoopGain
 slTuner
(Simulink Control Design)