| Contents | Index |
This table summarizes what's new in Version 4.0 (R2011b):
New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems |
|---|---|---|
Yes | Yes | Bug
Reports |
New features introduced in this version:
Use looptune to tune fixed-structure control systems to meet your requirements. To use looptune, specify design requirements such as loop bandwidth, stability margin, setpoint tracking, or target loop shape. looptune automatically tunes the parameters of your controller to meet the specified requirements.
The requirements objects TuningGoal.MaxGain, TuningGoal.Tracking, and TuningGoal.LoopShape let you express your design requirements directly. You do not have to first convert them to weighting functions or mathematical constraints on an optimization problem.
You can use loopview to validate the performance the performance of the tuned control structure against your specified design requirements.
For more information, see Tuning Fixed Control Architectures and the looptune and loopview reference pages.
If you have Simulink Control Design™ software, you can use tuning commands, such as slTunable.looptune and hinfstruct, to tune control systems modeled in Simulink. The slTunable object provides an interface between your Simulink model and these commands.
Use slTunable to specify information about your control structure and parametrization. slTunable also automates tasks such as linearizing the Simulink model, parametrizing the tunable blocks of your system, and applying tuned parameter values to the model. After you create and configure an slTunable object for your control architecture, you can tune the control system using slTunable.looptune or hinfstruct.
For more information, see Tuning Fixed Control Architectures and the following demos:
wcgainplot plots the nominal, sampled, and worst-case gains of uncertain systems as a function of frequency. Use wcgainplot for visual analysis of uncertain systems.
For more information, see the wcgainplot reference page.
| Functionality | What Happens When You Use This Functionality? | Use This Instead | Compatibility Considerations |
|---|---|---|---|
| umat object can no longer contain ultidyn or udyn uncertainty. | Expect a model type of uss or ufrd instead of umat when working with udyn or ultidyn uncertain elements. | Update code to work with uss or ufrd instead of umat when udyn or ultidyn elements are present. | |
| uss(sys_frd), where sys_frd is a frd model object no longer converts sys_frd to ufrd. | Errors. | ufrd(sys_frd). | Replace uss(sys_frd) with ufrd(sys_frd). |
| ufrd(udat,freq,...) no longer constructs an uncertain frd model from the umat object udat. | Converts udat to a ufrd object with frequencies freq. | Use frd(udat,freq,...) to construct an uncertain frd model from the umat object udat. | Replace ufrd(udat,freq,...) with frd(udat,freq,...). |
| frd(sys_uss,w) where sys_uss is a uss model. | Warns; returns frd model containing data based on nominal response of sys_uss. | ufrd(sys_uss,w) to obtain a ufrd model. | Replace frd(sys_uss,w) with ufrd(sys_uss,w). |
| Nominal value of ultidyn object. | Nominal value is ss model object. | None. | Update code to work with ss model objects when working nominal value of ultidyn. |
| usubs. | Applied to array of uncertain models, default substitution is '-once'. | Use '-batch' to perform batch substitution on uncertain model arrays. | Replace usubs(...) with usubs(...,'-batch'). |
| usubs(M,{a1;a2;...}, {v1;v2;...}) returns error. | usubs(M,a1,v1,a2, v2,...). | Replace usubs(M,{a1;a2;...}, {v1;v2;...}) with usubs(M,a1,v1,a2, v2,...). | |
| usample(sys,'a',na, 'b',nb) where uncertain element b does not exist in sys. | Returns na-by-nb array with constant values across nb dimension, instead of na-by-1 array. | None. | Update code to reflect correct dimensionality. |
| wcgopt. | Still runs. | wcgainOptions or wcmarginOptions. | Replace wcgopt with wcgainOptions or wcmarginOptions. |
| robuststab and robustperf. | For ufrd models, BadUncertainValues field of Info output returns Nf-by-1 struct array, where Nf is the number of frequency points. | None. | Update code to work with Nf-by-1 struct array for BadUncertainValues instead of Nf-by-1 cell array. |
| For nominally unstable models, performance margin is zero (instead of a negative value). | None. | Update code to reflect correct performance margin . | |
| robopt. | Still runs. | robuststabOptions or robustperfOptions. | Replace robopt with robuststabOptions or robustperfOptions. |
| actual2normalized. | First output argument is normalized uncertain block value. The second output argument is normalized distance between block value and nominal value. | [NV,ndist] = actual2normalized( BLK,AV). | Use second output argument ndist for normalized distance. |
| reshape(unc_sys,S). | S does not include the I/O size of the models in the array unc_sys. For example, if unc_sys is a 6-by-1 array of 2-output, 4-input models, reshape(unc_sys,[2 3]) converts unc_sys to a 2-by-3 array. | None. | Remove I/O size dimensions from reshape on uncertain model arrays. |
| diag(uss_sys) where uss_sys is a uss model. | Errors. | None. | Remove diag(uss_sys). |
![]() | Version 4.1 (R2012a) Robust Control Toolbox Software | Version 3.6 (R2011a) Robust Control Toolbox Software | ![]() |

Learn more about resources for designing, testing, and implementing control systems.
Get free kit| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |