[ST,gam,info] = looptune(ST0,wc,Req1,Req2,...)
[ST,gam,info] = looptune(...,options)
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
[ST,gam,info] = looptune(ST0,wc,Req1,Req2,...) tunes the feedback loop to meet additional design requirements specified in one or more tuning goal objects Req. Omit wc to use the requirements specified in the Req objects instead of an explicit target crossover frequency and the default performance and robustness requirements.
slTunable.looptune allows you to use the Robust Control Toolbox™ tuning command looptune on a control system described in a Simulink model. Using slTunable provides an interface between the Simulink model and the looptune command, allowing you to identify the tunable components of the system for looptune to tune. Using slTunable.looptune requires Robust Control Toolbox software.
slTunable interface object representing the Simulink control system to tune. For information on how to create and configure the slTunable interface, see the slTunable reference page.
Vector specifying the target crossover region [wcmin,wcmax]. The looptune command attempts to tune all loops in the control system so that the open-loop gain crosses 0 dB within the target crossover region.
A scalar wc specifies the target crossover region [wc/2,2*wc].
One or more TuningGoal objects specifying design requirements. Available requirement types include:
For a complete list of the design requirements you can specify, see Performance and Robustness Specifications for looptune.
Set of options for the looptune algorithm, specified using looptuneOptions. See looptuneOptions for information about the available options, including target gain margin and phase margin.
Tuned version of ST0.
Parameter indicating degree of success at meeting all tuning constraints. A value of gam <= 1 indicates that all requirements are satisfied. A value of gam >> 1 indicates failure to meet at least one requirement. Use slTunable.loopview to visualize the tuned result and identify the unsatisfied requirement.
For best results, use the RandomStart option in looptuneOptions to obtain several minimization runs. Setting RandomStart to an integer N > 0 causes looptune to run the optimization N additional times, beginning from parameter values it chooses randomly. You can examine gam for each run to help identify an optimization result that meets your design requirements.
Data for validating tuning results, returned as a structure. To use the data in info, use the command loopview(ST,info) to visualize tuning constraints and validate the tuned design.
info contains the following tuning data:
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 slTunable.systune to optimize tunable parameters to minimize the H∞ norm. For more information about the optimization algorithms, see .
 P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis." IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 71–86.
 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.
looptuneOptions | slTunable | slTunable.getIOTransfer | slTunable.getLoopTransfer | slTunable.loopview | slTunable.systune | slTunable.writeBlockValue | TuningGoal.Gain | TuningGoal.LoopShape | TuningGoal.Tracking