Documentation

Tune Custom Masked Subsystems

This example shows how to enable custom masked subsystems in Control System Designer. Once configured, you can tune a custom masked subsystem in the same way as any supported blocks in Simulink Control Design. For more information, see "What Blocks Are Tunable?".

Lead-Lag Library Block

For this example, tune the Lead-Lag Controller block in the scdexblks library.

open_system('scdexblks')

This block implements a compensator with a single zero, a single pole, and a gain. To open the Block Parameters dialog box, add the Lead-Lag Controller block to your model, and double-click the block.

The block uses the specified Gain, K, Zero Frequency, wz, and Pole Frequency, wp, to implement the compensator transfer function:

Configure the Subsystem for Control System Designer

To configure a masked subsystem for tuning with Control System Designer, you specify a configuration function. In this example, use the configuration function in scdleadexample.m, which specifies that:

  • There is only one pole allowed (MaxPoles constraint)

  • There is only one zero allowed (MaxZeros constraint)

  • The gain is tunable (isStaticGainTunable constraint)

Register the configuration in the subsystem using the SCDConfigFcn block callback function. Right-click the Lead-Lag Controller block and select Properties. In the Block Properties dialog box, on the Callbacks tab, set SCDConfigFcn.

Alternatively, you can set SCDConfigFcn using the command set_param.

After setting the SCDConfigFcn the block is now ready to be used in a Simulink Compensator Design Task.

Example

The scdspeedctrlleadlag model uses the Lead-Lag Controller block to tune the feedback loop in "Single Loop Feedback/Prefilter Design". In this model, the SCDConfigFcn property is already set. .

open_system('scdspeedctrlleadlag')

Step 1 To open the Control System Designer, in the Simulink model window, select Analysis > Control Design > Control System Designer.

Step 2 In the Edit Architecture dialog box, on the Blocks tab, click Add Blocks. In the Select Blocks to Tune dialog box, click Feedback Controller, and select Lead-Lag Controller.

Step 3 On the Signals tab, the analysis points defined in the Simulink model are automatically added as Locations.

  • Input: scdspeedctrlleadlag/Speed Reference output port 1

  • Output scdspeedctrlleadlag/Plant Model output port 1

Step 4 On the Linearization Options tab, in the Operating Point drop-down list, select Model Initial Condition.

Step 5 Create new plots to view the step responses while tuning the controllers.

  • In the Control System Designer, click New Plot, and select New Step. In the Select Response to Plot drop-down menu, select New Input-Output Transfer Response. Configure the response as follows:

To view the response, click Plot.

Tune Compensators

The Control System Designer contains four methods to tune a control system:

  • Graphically tune the compensator poles, zeros, and gains using open/closed-loop Bode, root locus, or Nichols editor plots. Click Tuning Methods, and select an editor under Graphical Tuning.

  • Compute initial compensator parameters using automated tuning based on parameters such as closed-loop time constants. Click Tuning Methods, and select either PID tuning, IMC tuning, Loop shaping (requires Robust Control Toolbox™ software), or LQG synthesis.

Complete Design

The design requirements for the reference step response in the example "Single Loop Feedback/Prefilter Design" can be met with the following Lead-Lag Controller block parameters:

         Gain = 0.0075426
         Zero Frequency (rad/s) = 2
         Pole Frequency (rad/s) = 103.59

The responses of the closed-loop system are shown below:

Update Simulink Model

To write the compensator parameters back to the Simulink model, click Update Blocks. You can then test your design on the nonlinear model.

bdclose('scdexblks')
bdclose('scdspeedctrlleadlag')
Was this topic helpful?