Main Content

Speed Up Tuning with Parallel Computing Toolbox Software

Commands for tuning fixed-structure control systems such as systune, looptune, hinfstruct (Robust Control Toolbox), or musyn (Robust Control Toolbox), you can use the RandomStart option to run multiple optimization starts using randomized initial parameter values. Doing so decreases the chances of falling into a local minimum in parameter space and obtaining a controller that does not perform as well as it could. However, additional optimization runs take time. If you have a Parallel Computing Toolbox™ license, you can use parallel computing to speed up tuning by distributing these independent optimization runs among workers.

If Automatically create a parallel pool is not selected in your Parallel Computing Toolbox preferences (Parallel Computing Toolbox), manually start a parallel pool using parpool. For example:

parpool;

If Automatically create a parallel pool is selected in your preferences, you do not need to manually start a pool.

Next, create an options set that specifies multiple random starts and sets the UseParallel flag to true. For example, the following options set specifies 20 random restarts to run in parallel for tuning with systune:

options = systuneOptions('RandomStart',20,'UseParallel',true);

Use the options set when you call the tuning command. For example, if you have already created a tunable control system model, CL0, and tunable controller, and tuning requirement vectors SoftReqs and HardReqs, the following command uses parallel computing to tune the control system of CL0 with systune.

[CL,fSoft,gHard,info] = systune(CL0,SoftReq,Hardreq,options);

To learn more about configuring a parallel pool, see the Parallel Computing Toolbox documentation.

See Also

(Parallel Computing Toolbox) | | | (Robust Control Toolbox) | (Robust Control Toolbox)

Related Topics