TuningGoal.Sensitivity class
Package: TuningGoal
Sensitivity requirement for control system tuning
Description
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
.
Construction
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.)
Input Arguments
|
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 |
Properties
|
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 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 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 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 Default: |
|
Name of the tuning goal, specified as a character vector. For example, if Req.Name = 'LoopReq'; Default: |
Examples
Disturbance Sensitivity at Plant Input
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 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.
Sensitivity Goal with Limited Frequency Range and Model Application
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.
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. TheMinDecay
andMaxRadius
options ofsystuneOptions
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, usesystuneOptions
to 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.Sensitivity
, f(x)
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 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 WS 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 low-frequency or very high-frequency dynamics.
To obtain WS, 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.
Version History
Introduced in R2016aSee Also
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)