In many applications, a single-loop design is not feasible. If you have a design with inner loops, you can use the SISO Design Tool to design a compensator that meets your specifications.
A typical procedure is to design the innermost loop on its own. You can use the SISO Design Tool to isolate the design on individual loops. When used this way, the tool ignores outer loop dynamics. Once the inner loop is designed, you can move on to the design of the outer loop compensator to achieve the desired closed-loop behavior. Position Control of a DC Motor shows an example of this procedure.
Instead of controlling the angular rate of a DC motor, this example develops a control law for controlling the position (angle) of the motor shaft. The block diagram of the DC motor, as shown in the following figure, has an integrator added as an outer loop.
Block Diagram of the Position-Controlled DC Motor
The design goal for this example is the minimize the closed-loop step response settling time while maintaining an inner loop phase margin of at least 65º with maximum bandwidth.
For details on how to derive state-space and transfer function representations of a DC motor, see SISO Example: The DC Motor.
Designing a multi-loop compensator for a DC motor involves the following steps:
These are the relevant physical constants:
R=2.0 % Ohms L = 0.5 % Henrys Km=0.1; Kb = 0.1 % Torque and back emf constants Kf= 0.2; % Nms J = 0.02 % kg.m^2/s^2
First, construct a state-space model of the DC motor with one
input, the applied voltage (
Va). The output is
the angular rate
h1 = tf(Km,[L,R]); % Armature h2 = tf(1,[J, Kf]) % Equation of motion dcm = ss(h2) *h1; % w = h2 cascaded with h1 dcm = feedback(dcm, Kb, 1, 1);% Closes back emf loop
Adapting the Model to SISO Tool Architecture
One possible choice for your architecture is this multi-loop configuration.
Comparing this architecture to the original Block Diagram of the Position-Controlled DC Motor, it is evident that the two do not match. Using block diagram algebra, you can manipulate the original figure into one that fits this architecture.
Position-Controlled DC Motor Rearchitected
To create this representation, add an integrator to get Θ,
the angular displacement, and a pure differentiator in the inner loop's
return path. The channel from
making it the appropriate channel for adding the integrator.
G = dcm*tf(1,[1,0]) % Motor with integrator; output is theta. C2 = tf('s') % Differentiator
Open the SISO Design Tool by typing
at the MATLAB® prompt. Once the Controls & Estimation Tools Manager opens, click Control Architecture on the Architecture page. Select the multi-loop configuration with two compensators, C1 in the forward path and C2 in the inner feedback loop — located in the lower-right corner.
Control Architecture Window
Next, import the model parameters by clicking System
Data on the Architecture tab.
This opens the System Data dialog box. Set G to
the workspace. Assume a perfect sensor and set H to
C1 and C2 are the gains you will use to design a compensator. Set
1 and C2 to
C2 from the
workspace. Your System Data dialog box should look like this.
Once you have selected the multi-loop architecture, click the Graphical Tuning tab. Set the plot types as follows:
Open-Loop 1 to "Root-Locus"
Open-Loop 2 to "Open-Loop Bode"
Your Graphical Tuning page should look like this.
Graphical Tuning Page Set for DC Motor Multi-Loop Design
Click Show Design Plot to see the SISO Design Graphical editor.
You are now in a position to do the design. Start with the design of the inner loop. To do this, go to the Architecture page and remove the effects of the outer loop by following these steps:
Click Loop Configuration. This opens the Open-Loop Configuration dialog box.
From the pull-down menu, select Open-Loop Output of C2.
Click Highlight feedback loop. This opens a figure of the control architecture showing the loop configuration.
Notice how the C1 piece of the compensator and the outer loop are grayed out. This means that they will have no effect on the inner loop at this time.
Next, turn to the SISO Design Graphical editor. Use the Bode plot for open loop 2 (the inner loop) and increase the gain to maximize bandwidth subject to a 65º phase margin. This turns out to be a gain of about 16.1 for C2.
Setting the Inner Loop Gain
This finishes the design of the inner loop.
The goal in designing the outer loop is to minimize the settling time. Note that the outer loop can "see" the inner loop, so that the tuning affects the entire system. Follow these steps:
Go to the Analysis Plot tab in the Controls & Estimation Tools Manager. Select the Closed-Loop r to y check box.
Select Step from the Plot 1 pull-down menu. This opens the Linear System Analyzer for SISO Design.
Right-click in the step response plot and select Characteristics>Settling Time. Your Linear System Analyzer should look like this.
Initial Step Response with Settling Time
The settling time is about 79 s.
Return to the SISO Design Graphical editor and increase the gain of C1 in the root locus plot. At a gain of about 90.2, you will see the complex pair of poles move toward a slower time constant as the third pole moves toward a faster one. You can view the trade-off in the Linear System Analyzer for SISO Design. As the gain is changed, the closed-loop step response changes.
The 90.2 gain seems to yield a good compromise between rise and settling time.
Final Gain Choice for C1
Turning back to the Linear System Analyzer for SISO Design, it is evident that the settling time is now much lower than the original 78.9 s.
With a settling time of about 0.8 s, and a phase margin of 65º in the inner loop, the design is complete.