# TuningGoal.Rejection

Disturbance rejection requirement for control system tuning

## Description

Use `TuningGoal.Rejection`

to specify the minimum
attenuation of a disturbance injected at a specified location in a control system. This tuning
goal helps you tune control systems with tuning commands such as `systune`

or
`looptune`

.

When you use `TuningGoal.Rejection`

, the software attempts
to tune the system so that the attenuation of a disturbance at the specified location exceeds the
minimum attenuation factor you specify. This attenuation factor is the ratio between the open-
and closed-loop sensitivities to the disturbance and is a function of frequency. You can achieve
disturbance attenuation only inside the control bandwidth. The loop gain must be larger than one
for the disturbance to be attenuated (attenuation factor > 1).

## Creation

### Description

### 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 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.

## Algorithms

When you tune a control system using a `TuningGoal`

, the software converts
the tuning goal into a normalized scalar value *f*(*x*). In
this case, *x* is the vector of free (tunable) parameters in the control system.
The parameter values are adjusted automatically to minimize
*f*(*x*) or drive *f*(*x*)
below 1 if the tuning goal is a hard constraint.

For `TuningGoal.Rejection`

, *f*(*x*) is
given by:

$$f\left(x\right)=\underset{\omega \in \text{\hspace{0.17em}}\Omega}{\mathrm{max}}{\Vert {W}_{S}\left(j\omega \right)S\left(j\omega ,x\right)\Vert}_{\infty},$$

or its discrete-time equivalent. Here,
*S*(*jω*,*x*) is the closed-loop sensitivity
function measured at the disturbance location. Ω is the frequency interval over which the tuning
goal is enforced, specified in the `Focus`

property.
*W _{S}* is a frequency weighting function derived from the
specified attenuation profile. The gains of

*W*and

_{S}`MinAttenuation`

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
attenuation profile changes slope outside this range. This adjustment is called
*regularization*. Because poles of

*W*close to

_{S}*s*= 0 or

*s*=

`Inf`

might lead to poor numeric conditioning of the
`systune`

optimization problem, it is not recommended to specify attenuation
profiles with very low-frequency or very high-frequency 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.

## Version History

**Introduced in R2016a**

## See Also

`looptune`

| `viewGoal`

| `systune`

| `systune (for slTuner)`

(Simulink Control Design) | `looptune (for slTuner)`

(Simulink Control Design) | `TuningGoal.Tracking`

| `TuningGoal.LoopShape`

| `slTuner`

(Simulink Control Design)