Cascaded Multi-Loop/Multi-Compensator Feedback Design

This example shows how to tune two cascaded feedback loops using Simulink Control Design.

Open the Model

Open the airframe model and take a few moments to explore it.


Design Overview

This example introduces the process of designing two cascaded feedback loops so that the acceleration component (az) tracks reference signals with a maximum rise time of 0.5 seconds. The feedback loop structure in this example uses the body rate (q) as an inner feedback loop and the acceleration (az) as an outer feedback loop.

The two feedback controllers are:

  • scdairframectrl/q Control - A discrete-time integrator and a gain block stabilize the inner loop.

open_system('scdairframectrl/q Control')

  • scdairframectrl/az Control - A discrete-time integrator, a discrete transfer function, and a gain block stabilize the outer loop.

open_system('scdairframectrl/az Control')

Decoupling Loops in a Multi-Loop Design

The typical design procedure for cascaded feedback systems is to first design the inner loop and then the outer loop. In the Control System Designer it is possible to design both loops simultaneously; by default, when designing a multi-loop feedback system the coupling effects between loops are taken into account. However, when designing two feedback loops simultaneously, it might be necessary to remove the effect of the outer loop when tuning the inner loop. In this example, you design the inner feedback loop (q) with the effect of the outer loop removed (az). The example shows how to decouple feedback loops in the Control System Designer.

Open the Control System Designer

In this example, you will use Control System Designer to tune the compensators in this feedback system. To open the Control System Designer

  • Launch a pre-configured Control System Designer session by double-clicking the subsystem in the lower left corner of the model.

  • Configure the Control System Designer using the following procedure.

Start a New Design

Step 1 To open Control System Designer, in the Simulink model window, on the Apps tab, click Control System Designer.

Step 2 In the Edit Architecture dialog box, on the Blocks tab, select the following blocks to tune:

  • scdairframectrl/q Control/q Gain

  • scdairframectrl/az Control/az Gain

  • scdairframectrl/az Control/az DTF

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

  • Input: scdairframectrl/Step az - output port 1

  • Output: scdairframectrl/Airframe Model - output port 1

In addition, the following loops are shown in Data Browser in the Responses area, since they are automatically recognized as potential feedback loops for open-loop design:

  • Open Loop at outport 1 of scdairframectrl/az Control/az DTF

  • Open Loop at outport 1 of scdairframectrl/az Control/az Gain

  • Open Loop at outport 1 of scdairframectrl/q Control/q Gain

Step 3 Open graphical Bode editors for each of the following responses. In the Control System Designer, select Tuning Methods > Bode Editor. Then, in the Select Response to Edit drop-down list, select the corresponding open-loop responses.

  • Open Loop at outport 1 of scdairframectrl/az Control/az DTF

  • Open Loop at outport 1 of scdairframectrl/q Control/q Gain

Step 4 To view the closed-loop response of the feedback system, create a step plot for a new input-output transfer function response. Select New Plot > New Step, and in the Select Response to Plot drop-down list, select New Input-Output Transfer Response.

  • Add scdairframectrl/Step az/1 as an input signal and scdairframectrl/Airframe Model/1 as an output signal.

Removing Effect of Outer Feedback Loop

In the outer-loop bode editor plot, Bode Editor for LoopTransfer_scdairframectrl_az_Control_az_DTF, increase the gain of the feedback loop, by dragging the magnitude response upward. The inner-loop bode editor plot, Bode Editor for LoopTransfer_scdairframectrl_q_Control_q_Gain, plot also changes. This is a result of the coupling between the feedback loops. A more systematic approach is to first design the inner feedback loop, with the outer loop open.

To remove the effect of the outer loop when designing the inner loop, add a loop opening to the open-loop response of the inner loop.

Step 1 In the Data Browser, in the Responses area, right-click on the inner loop response, and select Open Selection.

Step 2 In the Open-Loop Transfer Function dialog box, specify scdairframectrl/az Control/az DTF/1 as the loop opening. Click OK.

Step 3 In the outer-loop bode editor plot, increase the gain by dragging the magnitude response. Since the loops are decoupled, the inner-loop bode editor plot does not change.

You can now complete the design of the inner loop without the effect of the outer loop and simultaneously design the outer loop while taking the effect of the inner loop into account.

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 following compensator parameters satisfy the design requirements:

  • scdairframectrl/q Control/q Gain:

         K_q = 2.7717622
  • scdairframectrl/az Control/az Gain

         K_az = 0.00027507
  • scdairframectrl/az Control/az DTF

         Numerator = [100.109745 -99.109745]
         Denominator = [1 -0.88893]

The response of the closed-loop system is 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.