## Documentation Center |

Tune MIMO feedback loops in Simulink using `slTuner` interface

`[st,gam,info] = looptune(st0,controls,measurements,wc)`example`[st,gam,info] = looptune(st0,controls,measurements,wc,req1,...,reqN)``[st,gam,info] = looptune(___,opt)`

`[ st,gam,info]
= looptune(st0,controls,measurements,wc)` tunes
the free parameters of
the control system of the Simulink

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`

`controls` and `measurements` are
strings that specify the controller output signals and measurement
signals that are subject to the goals, respectively. `st` is
the updated `slTuner` interface, `gam` indicates
the measure of success in satisfying the goals, and `info` gives
details regarding the optimization run.

Tuning is performed at the sample time specified by the `Ts` property
of `st0`. For tuning algorithm details, see Algorithms.

This command requires a Robust Control Toolbox™ license.

`[ st,gam,info]
= looptune(st0,controls,measurements,wc,req1,...,reqN)` tunes
the feedback loop to meet additional goals specified in one or more
tuning goal objects,

`[ st,gam,info]
= looptune(___,opt)` specifies
further options, including target gain and phase margins, number of
runs, and computation options for the tuning algorithm. Use

If you specify multiple runs using the `RandomStarts` property
of `opt`, `looptune` performs
only as many runs required to achieve the target objective value of
1. Note that all tuning goals should be normalized so that a maximum
value of 1 means that all design goals are met.

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

[2] Bruisma, N.A. and M. Steinbuch, "A Fast
Algorithm to Compute the H_{∞}-Norm of
a Transfer Function Matrix," *System Control Letters*,
14 (1990), pp. 287-293.

`addPoint` | `getIOTransfer` | `getLoopTransfer` | `hinfstruct` | `looptune (for
genss)` | `looptuneOptions` | `slTuner` | `systune` | `TuningGoal.Gain` | `TuningGoal.LoopShape` | `TuningGoal.Margins` | `TuningGoal.Poles` | `TuningGoal.StableController` | `TuningGoal.Tracking` | `TuningGoal.Variance` | `TuningGoal.WeightedGain` | `TuningGoal.WeightedVariance` | `writeBlockValue`

Was this topic helpful?