Cascade Compensator Design of Closed-Loop System AEM 468, Fall 2014 Lucas Carter Department of Aerospace Engineering and Mechanics University of Alabama, Tuscaloosa Problem Statement A cascade compensator (zeros, poles, gains of one or more cascade compensators) is to be designed to achieve the results for one of several classes of widgets, each having different natural poles. Parameters: a rise time less than 0.5 seconds, avoid "excessive" oscillation, settle to within 10% of the desired position in 1 second, and settle to within 1% of the desired position in 5 seconds. Solution Given the natural poles for this specific widget model, the plant transfer function G(s) is 𝐺(𝑠) = 1 𝑠(𝑠 + (−0.9456 + 0.2893𝑖))(𝑠 + (−0.9456 − 0.2893𝑖)) 𝐺(𝑠) = 𝑠3 1 + 1.891𝑠 2 + 0.9779𝑠 When plotting the step input, as seen in Figure 1, the uncompensated plant is nowhere near the settling criteria. Figure 1. Uncompensated Closed Loop Response to Step Input To meet the desired specifications for the jigamacrank, a cascade compensator must be added to the closed-loop system. The addition of the compensator in a closed-loop system is shown in Figure 2. Figure 2. Block Diagram of Closed-Loop System The response of the plant transfer function can be improved by adding a compensator that adds gain or poles and zeros through lead and/or lag compensation. The simplest solution would be to add a gain to the plant transfer function to decrease the rise and settling time. This is not always the solution, however, as too high of a gain can cause also cause a high overshoot or cause the system to become unstable. Examining the root locus diagram in Figure 3 shows that the gain can only be increased slightly before the system becomes unstable. In order to improve the response, the root locus will have to move more into the left-half plane, which corresponds to adding damping to the system. Figure 3. Plant Root Locus Compensator Design A lead compensator can be used to draw the root locus into the left-half plane. In the case of this design, one compensator did not provide enough damping, so two lead compensators were chosen. Both placed zeros close to the existing pole at the origin, while the poles were placed far away from the poles of the plant transfer function. This increased the point at which the root loci crossed the imaginary axis. The two lead compensators were chosen as 𝐻1 (𝑠) = 𝐻2 (𝑠) = 25(𝑠 + 1) (𝑠 + 25) 12(𝑠 + 1.5) (𝑠 + 18) The root locus after the addition of these compensators in Figure 4 shows the added stability of the system. The improved stability can also be seen in the improved phase and gain margins shown in the bode plot of the plant and compensated transfer functions, shown in Figure 5. Figure 4. Root Locus with the Addition of Lead Compensators Figure 5. Bode Plot Comparing Plant to Compensated Transfer Functions With the improved stability shown in the root loci and bode diagrams, a simple gain K can be added to meet the specific requirements. The gain for this design was chosen as 𝐾=5 After combining the lead compensators and the gain, the final cascade compensator, H(s), was simplified to 𝐻(𝑠) = 1500(𝑠 + 1)(𝑠 + 1.5) (𝑠 + 25)(𝑠 + 18) With the addition of this compensator, the system was well within the specified requirements. The step input of the closed-loop system was plotted in MATLAB with exponential decay envelopes to show the required settling criteria, as shown in Figure 6. Figure 6. Closed-Loop Response to Step Input The exact specifications of the compensated system were calculated using the function “stepinfo().” They are shown in Table 1. Rise Time 0.3568 seconds Settling Time 1.7352 seconds Overshoot 8.8530 % Table 1. Specifications of Closed-Loop Step Input Response The system not only rises and settles within the required time, but has an overshoot of less than 10%. A potential flaw in the compensator design could be the extremely high gain, but without any physical limitations given for the jigamacrank, it is considered feasible. Appendix A s = tf('s'); G = tf([1],[1 1.891 0.9779 0]); K = 5; %LeadComp = (1+0.67*s)/(1+0.055*s); %LeadComp2 = (1+s)/(1+0.04*s); LeadComp = 25*(1+s)/(s+25); LeadComp2 = 12*(1.5+s)/(s+18); OLTF = K*LeadComp*LeadComp2*G; CLTF = feedback(G,1); CLTF1 = feedback(OLTF,1); stepinfo(CLTF1) ans = RiseTime: SettlingTime: SettlingMin: SettlingMax: Overshoot: Undershoot: Peak: PeakTime: 0.3568 1.7352 0.9135 1.0885 8.8530 0 1.0885 0.8795 Exponential Envelopes time = 0:0.1:10; funct = 1 - exp(-0.921*time); funct2 = 1 + exp(-0.921*time); funct3 = 1 - exp(-2.3*time); funct4 = 1 + exp(-2.3*time); Uncompensated Figures figure(1) %G step input step(CLTF) title('Uncompensated Closed Loop Step Input','FontSize',12) figure(2) %G root locus rlocus(G) title('Plant Root Locus','FontSize',12) figure(3) nyquist(G) title('Plant Nyquist Plot','FontSize',12) Compensated Figures figure(4) %CLTF step input hold on step(CLTF1) plot(time,funct,':k',time,funct2,':k'); plot(time,funct3,'-.k',time,funct4,'-.k'); xlim([0,7]); ylim([0,2]); title('Compensated Closed Loop Step Input','FontSize',12) legend('Compensated Closed Loop Step Input','1% Settling Criteria','1% Settling Criteria','10% Settling Criteria','10% Settling Criteria') figure(5) %Lead comps * G root locus rlocus(LeadComp*LeadComp2*G) title('Compensated Plant Root Locus','FontSize',12) figure(6) nyquist(K*LeadComp*LeadComp2*G) title('Compensated Plant Nyquist Plot','FontSize',12) Bode Plot Information figure(7) bode(G,K*LeadComp*LeadComp2*G) grid on legend('Uncompensated Plant Bode Plot','Compensated Plant Bode Plot') title('Compensated vs Uncompensated Bode Diagram Comparison','FontSize',12) figure(8) margin(G) figure(9) margin(K*LeadComp*LeadComp2*G) Published with MATLAB® R2014a