# TuningGoal.ConicSector

Sector bound for control system tuning

## Description

Use `TuningGoal.ConicSector`

to create a conic sector bound for
control system tuning.

A conic sector bound is a restriction on the output trajectories of a system. If for
all nonzero input trajectories *u*(*t*), the output trajectory *z*(*t*) =
(*Hu*)(*t*) of a linear system *H* satisfies:

$${\int}_{0}^{T}z{\left(t\right)}^{\text{T}}Q\text{\hspace{0.17em}}z\left(t\right)dt}<0,$$

for all *T* ≥ 0, then the output trajectories of *H* lie in the conic
sector described by the symmetric indefinite matrix *Q*. Selecting
different *Q* matrices imposes different conditions on the system
response.

When tuning a control system with `systune`

, use `TuningGoal.ConicSector`

to restrict the output trajectories
of the response between specified inputs and outputs to a specified sector. For more
information about sector bounds, see About Sector Bounds and Sector Indices.

## Creation

### Description

`Req = TuningGoal.ConicSector(`

creates a tuning goal for restricting the response
`inputname`

,`outputname`

,`Q`

)*H*(*s*) from inputs
`inputname`

to outputs
`outputname`

to the conic sector specified by the
symmetric matrix `Q`

. The tuning goal constrains
*H* such that its trajectories
*z*(*t*) =
(*Hu*)(*t*) satisfy:

$${\int}_{0}^{T}z{\left(t\right)}^{\text{T}}Q\text{\hspace{0.17em}}z\left(t\right)dt}<0,$$

for all *T* ≥ 0. (See About Sector Bounds and Sector Indices.) The matrix `Q`

must have as many negative
eigenvalues as there are inputs in *H*.

To specify frequency-dependent sector bounds, set `Q`

to an LTI model that satisfies *Q*(*s*)^{T}
= *Q*(–*s*).

### Input Arguments

## Properties

## Examples

## Tips

The conic sector tuning goal requires that $${W}_{2}^{\text{T}}H\left(s\right)$$ be square and minimum phase, where

*H*(*s*) is the transfer function between the specified inputs and outputs, and*W*_{2}spans the negative invariant subspace of the sector matrix,*Q*:$$Q={W}_{1}{W}_{1}^{\text{T}}-{W}_{2}{W}_{2}^{\text{T}},\text{\hspace{1em}}{W}_{1}^{\text{T}}{W}_{2}=0$$

(See Algorithms.) This means that the stabilized dynamics for this goal are not the poles of

*H*, but rather the transmission zeros of $${W}_{2}^{\text{T}}H\left(s\right)$$. 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

Let

$$Q={W}_{1}{W}_{1}^{\text{T}}-{W}_{2}{W}_{2}^{\text{T}},\text{\hspace{1em}}{W}_{1}^{\text{T}}{W}_{2}=0$$

be an indefinite factorization of *Q*. When $${W}_{2}^{\text{T}}H\left(s\right)$$ is square and minimum phase, then the time-domain sector bound on
trajectories *z*(*t*) =
*H**u*(*t*),

$${\int}_{0}^{T}z{\left(t\right)}^{\text{T}}Q\text{\hspace{0.17em}}z\left(t\right)dt}<0,$$

is equivalent to the frequency-domain sector condition,

$$H{\left(-j\omega \right)}^{\text{T}}Q\text{\hspace{0.17em}}H\left(j\omega \right)\text{\hspace{0.17em}}\text{\hspace{0.17em}}<\text{\hspace{0.17em}}\text{\hspace{0.17em}}0$$

for all frequencies. The `TuningGoal.ConicSector`

goal uses this
equivalence to convert the time-domain characterization into a frequency-domain
condition that `systune`

can handle in the same way it handles gain
constraints. To secure this equivalence, `TuningGoal.ConicSector`

also
makes $${W}_{2}^{\text{T}}H\left(s\right)$$ minimum phase by making all its zeros stable.

For sector bounds, the *R*-index plays the same role as the peak gain
does for gain constraints (see About Sector Bounds and Sector Indices). The
condition

$$H{\left(-j\omega \right)}^{\text{T}}Q\text{\hspace{0.17em}}H\left(j\omega \right)\text{\hspace{0.17em}}\text{\hspace{0.17em}}<\text{\hspace{0.17em}}\text{\hspace{0.17em}}0$$

is satisfied at all frequencies if and only if the *R*-index is less
than one. The `viewGoal`

plot for
`TuningGoal.ConicSector`

shows the *R*-index value
as a function of frequency (see `sectorplot`

).

When you tune a control system using a `TuningGoal`

object to specify
a tuning goal, 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 the sector bound

$$H{\left(-j\omega \right)}^{\text{T}}Q\text{\hspace{0.17em}}H\left(j\omega \right)\text{\hspace{0.17em}}\text{\hspace{0.17em}}<\text{\hspace{0.17em}}\text{\hspace{0.17em}}0$$

`TuningGoal.ConicSector`

uses the objective function
given by:

$$f\left(x\right)=\frac{R}{1+R/{R}_{\mathrm{max}}},\text{\hspace{1em}}{R}_{\mathrm{max}}={10}^{6}.$$

*R* is the sector-bound *R*-index (see `getSectorIndex`

for details).

The dynamics of *H* affected by the minimum-phase condition 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.

## Version History

**Introduced in R2016b**

## See Also

`systune`

| `systune (for slTuner)`

(Simulink Control Design) | `getSectorIndex`

| `viewGoal`

| `evalGoal`

| `slTuner`

(Simulink Control Design)