# TuningGoal.StepRejection

Step disturbance rejection requirement for control system tuning

## Description

Use `TuningGoal.StepRejection`

to specify how
a step disturbance injected at a specified location in your control system affects the
signal at a specified output location. Use this tuning goal with control system tuning
commands such as `systune`

or `looptune`

.

You can specify the desired response in time-domain terms of peak value, settling time, and damping ratio. Alternatively, you can specify the response as a stable reference model having DC-gain. In that case, the tuning goal is to reject the disturbance as well as or better than the reference model.

To specify disturbance rejection in terms of a frequency-domain attenuation profile,
use `TuningGoal.Rejection`

.

## Creation

### Syntax

### Description

creates a tuning goal that constrains how a step disturbance injected at a
location `Req`

= TuningGoal.StepRejection(`inputname`

,`outputname`

,`refsys`

)`inputname`

affects the response at
`outputname`

. The tuning goal is that the disturbance
be rejected as well as or better than the reference system.
`inputname`

and `outputname`

can
describe a SISO or MIMO response of your control system. For MIMO responses,
the number of inputs must equal the number of outputs.

specifies an oscillation-free response in terms of a peak value and a
settling time. `Req`

= TuningGoal.StepRejection(`inputname`

,`outputname`

,`peak`

,`tSettle`

)

allows for damped oscillations with a damping ratio of at least
`Req`

= TuningGoal.StepRejection(`inputname`

,`outputname`

,`peak`

,`tSettle`

,`zeta`

)`zeta`

.

### Input Arguments

## Properties

## Examples

## Tips

This tuning goal imposes an implicit stability constraint on the closed-loop transfer function from

`Input`

to`Output`

, 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*), 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.

`TuningGoal.StepRejection`

aims to keep the gain from disturbance to
output below the gain of the reference model. The scalar value of the tuning goal
*f*(*x*) is given by:

$$f\left(x\right)={\Vert {W}_{F}\left(s\right){T}_{dy}\left(s,x\right)\Vert}_{\infty},$$

or its discrete-time equivalent. Here,
*T _{dy}*(

*s*,

*x*) is the closed-loop transfer function from

`Input`

to
`Output`

, and $${\Vert \text{\hspace{0.17em}}\cdot \text{\hspace{0.17em}}\Vert}_{\infty}$$ denotes the *H*

_{∞}norm (see

`norm`

). *W*is a frequency weighting function derived from the step-rejection profile you specify in the tuning goal. The gains of

_{F}*W*and

_{F}`1/ReferenceModel`

roughly match for gain values within 60 dB of
the peak gain. For numerical reasons, the weighting function levels off outside this
range, unless you specify a reference model that changes slope outside this range. This
adjustment is called *regularization*. Because poles of

*W*close to

_{F}*s*= 0 or

*s*=

`Inf`

might lead to poor numeric conditioning
of the `systune`

optimization problem, it is not recommended to
specify reference models with very low-frequency or very high-frequency dynamics.To obtain *W _{F}*, use:

WF = 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`

| `systune`

| `systune (for slTuner)`

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

(Simulink Control Design) | `viewGoal`

| `evalGoal`

| `TuningGoal.Gain`

| `TuningGoal.LoopShape`

| `slTuner`

(Simulink Control Design)