Sensitivity requirement for control system tuning
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
a tuning goal for limiting the sensitivity to disturbances entering
a feedback loop at the specified location.
Req = TuningGoal.Sensitivity(
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
makeweight (Robust Control Toolbox) command.
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:
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
The software automatically maps the input argument
Frequency band in which tuning goal is enforced, specified as
a row vector of the form
Req.Focus = [1,100];
Toggle for automatically scaling loop signals, specified as
In multi-loop or MIMO control systems, the feedback channels
are automatically rescaled to equalize the off-diagonal terms in the
open-loop transfer function (loop interaction terms). Set
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.
Req.Models = 2:4;
Feedback loops to open when evaluating the tuning goal, specified as a cell array of character vectors that identify loop-opening locations. The tuning goal is evaluated against the open-loop 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 state-space
For example, if
Name of the tuning goal, specified as a character vector.
For example, if
Req.Name = 'LoopReq';
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 piecewise-specified gain profile. Visualize this function using
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
tuning a control system that has an analysis point called
Focus property limits the application
of the tuning goal to frequencies between 0 and 5 rad/s. Setting the
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
This tuning goal imposes an implicit stability constraint on
the closed-loop sensitivity function measured at
evaluated with loops opened at the points identified in
The dynamics affected by this implicit constraint are the stabilized
dynamics for this tuning goal. The
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,
systuneOptions to change
When you tune a control system using a
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.
is given by:
or its discrete-time equivalent. Here, S(s,x)
is the closed-loop sensitivity function measured at the location specified
in the tuning goal. WS is
a frequency weighting function derived from the specified sensitivity
profile. The gains of WS and
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 WS close to s =
0 or s =
Inf might lead to poor
numeric conditioning of the
problem, it is not recommended to specify sensitivity profiles with
very low-frequency or very high-frequency dynamics.
To obtain WS, use:
WS = getWeight(Req,Ts)
Req is the tuning goal, and
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.
Behavior changed in R2016a
Prior to R2016a, this functionality required a Robust Control Toolbox™ license.
(for slTuner) (Simulink Control Design) |
slTuner (Simulink Control Design) |
systune (for slTuner) (Simulink Control Design)