# looptune

Tune fixed-structure feedback loops

## Syntax

## Description

`[`

tunes the feedback loop`G`

,`C`

,`gam`

]
= looptune(`G0`

,`C0`

,`wc`

)

to meet the following default requirements:

Bandwidth — Gain crossover for each loop falls in the frequency interval

`wc`

Performance — Integral action at frequencies below

`wc`

Robustness — Adequate stability margins and gain roll-off at frequencies above

`wc`

The tunable `genss`

model
`C0`

specifies the controller structure, parameters, and
initial values. The model `G0`

specifies the plant.
`G0`

can be a Numeric LTI model, or,
for co-tuning the plant and controller, a tunable `genss`

model. The sensor signals
`y`

(measurements) and actuator signals `u`

(controls) define the boundary between plant and controller.

**Note**

For tuning Simulink^{®} models with `looptune`

, use `slTuner`

(Simulink Control Design) to create an
interface to your Simulink model. You can then tune the control system with `looptune`

(Simulink Control Design) for
`slTuner`

(requires Simulink
Control Design™).

`[`

tunes the feedback loop to meet additional design requirements specified in one or
more tuning goal objects `G`

,`C`

,`gam`

]
= looptune(`G0`

,`C0`

,`wc`

,`Req1,...,ReqN`

)`Req1,...,ReqN`

. Omit
`wc`

to use the requirements specified in
`Req1,...,ReqN`

instead of an explicit target crossover
frequency and the default performance and robustness requirements.

## Examples

## Input Arguments

## Output Arguments

## Algorithms

`looptune`

automatically converts target bandwidth, performance
requirements, and additional design requirements into weighting functions that express
the requirements as an *H _{∞}* optimization
problem.

`looptune`

then uses `systune`

to optimize tunable parameters to minimize the
*H*norm. For more information about the optimization algorithms, see [1].

_{∞}`looptune`

computes the
*H _{∞}* norm using the algorithm of
[2] and structure-preserving eigensolvers from the SLICOT library. For more information
about the SLICOT library, see https://github.com/SLICOT.

## Alternatives

For tuning Simulink models with `looptune`

, see `slTuner`

(Simulink Control Design) and `looptune`

(Simulink Control Design) (requires Simulink
Control Design).

## References

[1] P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis."
*IEEE Transactions on Automatic Control*, Vol. 51, Number 1,
2006, pp. 71–86.

[2] Bruinsma, N.A., and M. Steinbuch. "A Fast Algorithm to
Compute the H_{∞} Norm of a Transfer Function Matrix."
*Systems & Control Letters*, 14, no.4 (April 1990):
287–93.

## Extended Capabilities

## Version History

**Introduced in R2016a**

## See Also

`TuningGoal.Tracking`

| `slTuner`

(Simulink Control Design) | `systune`

| `looptune (for slTuner)`

(Simulink Control Design) | `TuningGoal.Gain`

| `TuningGoal.LoopShape`

| `hinfstruct`

(Robust Control Toolbox) | `looptuneOptions`

| `loopview`

| `diskmargin`

(Robust Control Toolbox) | `genss`

| `connect`