Preface |
|
xv | |
Acknowledgment |
|
xvii | |
|
List of Symbols and Acronyms |
|
|
xix | |
About the Companion Website |
|
xxi | |
|
|
1 | (30) |
|
|
1 | (1) |
|
1.2 PID Controller Structure |
|
|
1 | (12) |
|
1.2.1 Proportional Controller |
|
|
1 | (2) |
|
1.2.2 Proportional Plus Derivative Controller |
|
|
3 | (2) |
|
1.2.3 Proportional Plus Integral Controller |
|
|
5 | (4) |
|
|
9 | (3) |
|
1.2.5 The Commercial PID Controller Structure |
|
|
12 | (1) |
|
|
13 | (1) |
|
1.3 Classical Tuning Rules for PID Controllers |
|
|
13 | (5) |
|
1.3.1 Ziegler-Nichols Oscillation Based Tuning Rules |
|
|
13 | (2) |
|
1.3.2 Tuning Rules based on the First Order Plus Delay Model |
|
|
15 | (2) |
|
|
17 | (1) |
|
1.4 Model Based PID Controller Tuning Rules |
|
|
18 | (3) |
|
1.4.1 IMC-PID Controller Tuning Rules |
|
|
18 | (1) |
|
1.4.2 Padula and Visioli Tuning Rules |
|
|
19 | (1) |
|
1.4.3 Wang and Cluett Tuning Rules |
|
|
20 | (1) |
|
|
21 | (1) |
|
1.5 Examples for Evaluations of the Tuning Rules |
|
|
21 | (6) |
|
1.5.1 Examples for Evaluating the Tuning Rules |
|
|
21 | (4) |
|
1.5.2 Fired Heater Control Example |
|
|
25 | (2) |
|
|
27 | (1) |
|
|
28 | (3) |
|
|
28 | (3) |
|
2 Closed-loop Performance and Stability |
|
|
31 | (40) |
|
|
31 | (1) |
|
2.2 Routh---Hurwitz Stability Criterion |
|
|
31 | (5) |
|
2.2.1 Determining Closed-loop Poles |
|
|
32 | (1) |
|
2.2.2 Routh---Hurwitz Stability Criterion |
|
|
33 | (3) |
|
|
36 | (1) |
|
2.3 Nyquist Stability Criterion |
|
|
36 | (6) |
|
|
36 | (2) |
|
|
38 | (1) |
|
|
38 | (1) |
|
|
38 | (2) |
|
2.3.2 Rework of Tuning Rules based PID Controllers |
|
|
40 | (2) |
|
|
42 | (1) |
|
2.4 Control System Structures and Sensitivity Functions |
|
|
42 | (5) |
|
2.4.1 One Degree of Freedom Control System Structure |
|
|
43 | (1) |
|
2.4.2 Two Degrees of Freedom Design |
|
|
44 | (1) |
|
2.4.2.1 Two degrees of freedom implementation of PI controllers |
|
|
45 | (1) |
|
2.4.3 Sensitivity Functions in Feedback Control |
|
|
45 | (2) |
|
|
47 | (1) |
|
2.5 Reference Following and Disturbance Rejection |
|
|
47 | (7) |
|
2.5.1 Closed-loop Bandwidth |
|
|
47 | (3) |
|
2.5.2 Reference Following and Disturbance Rejection with PID Controllers |
|
|
50 | (3) |
|
2.5.3 Reference Following and Disturbance Rejection with Resonant Controllers |
|
|
53 | (1) |
|
|
54 | (1) |
|
2.6 Disturbance Rejection and Noise Attenuation |
|
|
54 | (5) |
|
2.6.1 Conflict between Disturbance Rejection and Noise Attenuation |
|
|
54 | (1) |
|
2.6.2 PID Controller for Disturbance Rejection and Noise Attenuation |
|
|
55 | (3) |
|
|
58 | (1) |
|
2.7 Robust Stability and Robust Performance |
|
|
59 | (6) |
|
|
59 | (1) |
|
|
60 | (2) |
|
2.7.3 Case Study: Robust Control of Polymer Reactor |
|
|
62 | (3) |
|
|
65 | (1) |
|
|
65 | (2) |
|
|
67 | (4) |
|
|
67 | (4) |
|
3 Model-Based PID and Resonant Controller Design |
|
|
71 | (42) |
|
|
71 | (1) |
|
|
71 | (7) |
|
3.2.1 Desired Closed-loop Performance Specification |
|
|
71 | (1) |
|
3.2.2 Model and Controller Structures |
|
|
72 | (3) |
|
3.2.3 Closed-loop Transfer Functions for Different Configurations |
|
|
75 | (2) |
|
|
77 | (1) |
|
3.3 Model Based Design for PID Controllers |
|
|
78 | (18) |
|
3.3.1 PD Controller Design |
|
|
78 | (3) |
|
3.3.2 Analytical Examples for Ideal PID with Pole-zero Cancellation |
|
|
81 | (3) |
|
3.3.3 Analytical Examples for PID Controllers with Filters |
|
|
84 | (8) |
|
3.3.4 PID Controller Design without Pole-Zero Cancellation |
|
|
92 | (2) |
|
3.3.5 MATLAB Tutorial on Solution of a PID Controller with Filter |
|
|
94 | (1) |
|
|
95 | (1) |
|
3.4 Resonant Controller Design |
|
|
96 | (6) |
|
3.4.1 Resonant Controller Design |
|
|
96 | (1) |
|
3.4.2 Steady-state Error Analysis |
|
|
97 | (2) |
|
3.4.3 Pole-Zero Cancellation in the Design of a Resonant Controller |
|
|
99 | (2) |
|
|
101 | (1) |
|
|
102 | (6) |
|
3.5.1 Basic Ideas about Feedforward Control |
|
|
102 | (1) |
|
3.5.2 Three Springs and Double Mass System |
|
|
103 | (5) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
108 | (5) |
|
|
109 | (4) |
|
4 Implementation of PID Controllers |
|
|
113 | (26) |
|
|
113 | (1) |
|
4.2 Scenario of a PID Controller at work |
|
|
113 | (1) |
|
4.3 PID Controller Implementation using the Position Form |
|
|
114 | (3) |
|
4.3.1 The Steady-state Information Needed |
|
|
114 | (1) |
|
4.3.2 Discretization of a PID Controller |
|
|
115 | (1) |
|
|
116 | (1) |
|
4.4 PID Controller Implementation using the Velocity Form |
|
|
117 | (5) |
|
4.4.1 Discretization of a PI Controller |
|
|
117 | (2) |
|
4.4.2 Discretization of a PID Controller using the Velocity Form |
|
|
119 | (1) |
|
4.4.3 Improving Accuracy in a Slower Sampling Environment |
|
|
120 | (2) |
|
|
122 | (1) |
|
4.5 Anti-windup Implementation using the Position Form |
|
|
122 | (4) |
|
4.5.1 Integrator Windup Scenario |
|
|
122 | (2) |
|
4.5.2 Anti-windup Mechanisms in the Position Form of PI Controllers |
|
|
124 | (1) |
|
|
125 | (1) |
|
4.6 Anti-windup Mechanisms in the Velocity Form |
|
|
126 | (4) |
|
4.6.1 Anti-windup Mechanism on the Amplitude of the Control Signal |
|
|
126 | (3) |
|
4.6.2 Limits on the Rate of Change of the Control Signal |
|
|
129 | (1) |
|
|
129 | (1) |
|
4.7 Tutorial on PID Anti-windup Implementation |
|
|
130 | (3) |
|
4.8 Dealing with Other Implementation Issues |
|
|
133 | (3) |
|
|
134 | (1) |
|
4.8.2 Dealing with Quantization Errors in PID Controller Implementation |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
137 | (2) |
|
|
137 | (2) |
|
5 Disturbance Observer-Based PID and Resonant Controller |
|
|
139 | (40) |
|
|
139 | (1) |
|
5.2 Disturbance observer-Based PI Controller |
|
|
139 | (10) |
|
5.2.1 Estimation of Disturbance with Control |
|
|
139 | (1) |
|
5.2.1.1 Choice of Proportional Controller K1 |
|
|
140 | (1) |
|
5.2.1.2 Compensation of Steady-state Error |
|
|
140 | (1) |
|
5.2.1.3 The closed-loop poles |
|
|
141 | (1) |
|
5.2.1.4 Implementation procedure |
|
|
142 | (1) |
|
5.2.2 Equivalence to PI controller |
|
|
143 | (1) |
|
5.2.3 MATLAB Tutorial for Implementation of a PI Controller via Estimation |
|
|
144 | (1) |
|
5.2.4 Examples for Estimator based PI Controllers |
|
|
145 | (3) |
|
|
148 | (1) |
|
5.3 Disturbance observer-Based PID Controller |
|
|
149 | (7) |
|
5.3.1 Proportional Plus Derivative Control |
|
|
149 | (1) |
|
5.3.2 Adding Integral Action |
|
|
150 | (1) |
|
5.3.3 Equivalence to a PID Controller |
|
|
151 | (2) |
|
5.3.4 MATLAB Tutorial on the Implementation of a disturbance observer-based PID Controller |
|
|
153 | (2) |
|
5.3.5 Examples for Disturbance observer-based PID Controller |
|
|
155 | (1) |
|
|
156 | (1) |
|
5.4 Disturbance observer-Based Resonant Controller |
|
|
156 | (11) |
|
5.4.1 Resonant Controller Design |
|
|
156 | (2) |
|
5.4.2 Resonant Controller Implementation |
|
|
158 | (1) |
|
5.4.3 Equivalence to a Resonant Controller |
|
|
159 | (1) |
|
5.4.4 MATLAB Tutorial on Disturbance observer-Based Resonant Controller Implementation |
|
|
160 | (2) |
|
5.4.5 Examples for Disturbance observer-Based Resonant Controllers |
|
|
162 | (5) |
|
|
167 | (1) |
|
5.5 Multi-frequency Resonant Controller |
|
|
167 | (5) |
|
5.5.1 Adding Integral Action to the Resonant Controller |
|
|
168 | (2) |
|
5.5.2 Adding More Periodic Components |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
172 | (1) |
|
|
172 | (7) |
|
|
173 | (6) |
|
6 PID Control of Nonlinear Systems |
|
|
179 | (24) |
|
|
179 | (1) |
|
6.2 Linearization of the Nonlinear Model |
|
|
179 | (8) |
|
6.2.1 Approximation of a Nonlinear Function |
|
|
179 | (2) |
|
6.2.2 Linearization of nonlinear differential equations |
|
|
181 | (1) |
|
6.2.3 Case Study: Linearization of the Coupled Tank Model |
|
|
181 | (3) |
|
6.2.4 Case Study: Linearization of the Induction Motor Model |
|
|
184 | (2) |
|
|
186 | (1) |
|
6.3 Case Study: Ball and Plate Balancing System |
|
|
187 | (1) |
|
6.3.1 Dynamics of the Ball and Plate Balancing System |
|
|
187 | (1) |
|
6.3.2 Linearization of the Nonlinear Model |
|
|
188 | (1) |
|
6.3.3 PID Controller Design |
|
|
189 | (1) |
|
6.3.4 Implementation and Experimental Results |
|
|
190 | (1) |
|
6.3.4.1 Disturbance Rejection |
|
|
191 | (1) |
|
6.3.4.2 Making a Square Movement |
|
|
192 | (1) |
|
6.3.4.3 Making a Circle Movement |
|
|
192 | (2) |
|
6.3.4.4 Making more Complicated Movements |
|
|
194 | (1) |
|
|
194 | (1) |
|
6.4 Gain Scheduled PID Control Systems |
|
|
194 | (5) |
|
6.4.1 The Weighting Parameters |
|
|
194 | (2) |
|
6.4.2 Gain Scheduled Implementation using PID Velocity Form |
|
|
196 | (1) |
|
6.4.3 Gain Scheduled Implementation using an Estimator Based PID Controller |
|
|
197 | (2) |
|
|
199 | (1) |
|
|
199 | (1) |
|
|
199 | (4) |
|
|
200 | (3) |
|
7 Cascade PID Control Systems |
|
|
203 | (30) |
|
|
203 | (1) |
|
7.2 Design of a Cascade PID Control System |
|
|
203 | (6) |
|
7.2.1 Design Steps for a Cascade Control System |
|
|
203 | (1) |
|
7.2.2 Simple Design Examples |
|
|
204 | (4) |
|
7.2.3 Achieving Closed-loop Performance Invariance (Approximate) in a Cascade Structure |
|
|
208 | (1) |
|
|
209 | (1) |
|
7.3 Cascade Control System for Input Disturbance Rejection |
|
|
209 | (5) |
|
7.3.1 Frequency Characteristics for Disturbance Rejection |
|
|
210 | (1) |
|
|
211 | (2) |
|
|
213 | (1) |
|
7.4 Cascade Control System for Actuator Nonlinearities |
|
|
214 | (16) |
|
7.4.1 Cascade Control for Actuator with a Deadzone |
|
|
214 | (4) |
|
7.4.2 Cascade Control for Actuators with Quantization Errors |
|
|
218 | (3) |
|
7.4.3 Cascade Control for Actuators with Backlash Nonlinearity |
|
|
221 | (6) |
|
|
227 | (3) |
|
|
230 | (1) |
|
|
230 | (3) |
|
|
231 | (2) |
|
8 PID Controller Design for Complex Systems |
|
|
233 | (26) |
|
|
233 | (1) |
|
8.2 PI Controller Design via Gain and Phase Margins |
|
|
233 | (5) |
|
8.2.1 PI Controller Design Using Gain Margin and Phase Margin Specifications |
|
|
233 | (1) |
|
|
234 | (4) |
|
|
238 | (1) |
|
8.3 PID Controller Design using Two Frequency Points |
|
|
238 | (11) |
|
8.3.1 Finding the PID Controller Parameters |
|
|
238 | (2) |
|
8.3.2 Desired Closed-loop Performance Specification using Two Frequency Points |
|
|
240 | (2) |
|
|
242 | (1) |
|
8.3.4 MATLAB Tutorial on PID Controller Design Using two Frequency Points |
|
|
243 | (2) |
|
8.3.5 PID Controller Design for Beer Filtration Process |
|
|
245 | (3) |
|
|
248 | (1) |
|
8.4 PID Controller Design for Integrating Systems |
|
|
249 | (7) |
|
8.4.1 The Approximate Model |
|
|
249 | (1) |
|
8.4.2 Selection of Desired Closed-loop Performance |
|
|
250 | (1) |
|
8.4.3 Normalization of the Parameters and Empirical Rules |
|
|
251 | (2) |
|
8.4.4 Gain and Phase Margins |
|
|
253 | (1) |
|
8.4.5 Simulation Examples |
|
|
253 | (3) |
|
|
256 | (1) |
|
|
256 | (1) |
|
|
257 | (2) |
|
|
257 | (2) |
|
9 Automatic Tuning of PID Controllers |
|
|
259 | (46) |
|
|
259 | (1) |
|
9.2 Relay Feedback Control |
|
|
259 | (8) |
|
9.2.1 Relay Control with Hysteresis |
|
|
259 | (4) |
|
9.2.2 Relay Control with Integrator |
|
|
263 | (4) |
|
|
267 | (1) |
|
9.3 Estimation of Frequency Response using the Fast Fourier Transform (FFT) |
|
|
267 | (6) |
|
|
268 | (1) |
|
9.3.2 MATLAB Tutorial using the FFT for Estimation |
|
|
269 | (1) |
|
9.3.3 Monte-Carlo Simulation Studies |
|
|
270 | (2) |
|
|
272 | (1) |
|
9.4 Estimation of Frequency Response Using the frequency sampling filter (FSF) |
|
|
273 | (6) |
|
9.4.1 Frequency Sampling Filter Model |
|
|
273 | (3) |
|
9.4.2 MATLAB Tutorial on Estimation Using the FSF Model |
|
|
276 | (2) |
|
9.4.3 Monte-Carlo Simulation using the FSF Estimation |
|
|
278 | (1) |
|
|
279 | (1) |
|
9.5 Monte-Carlo Simulation Studies |
|
|
279 | (4) |
|
9.5.1 Effect of Unknown Constant Disturbance |
|
|
279 | (1) |
|
9.5.2 Effect of Unknown Low Frequency Disturbance |
|
|
280 | (2) |
|
9.5.3 Estimation of the Steady-state Value |
|
|
282 | (1) |
|
|
283 | (1) |
|
9.6 Auto-tuner Design for Stable Plant |
|
|
283 | (8) |
|
9.6.1 MATLAB Tutorial on Auto-tuner for Stable Plant |
|
|
284 | (2) |
|
9.6.2 Evaluation of the Auto-tuner for a Stable Plant |
|
|
286 | (1) |
|
9.6.2.1 PID Controller Parameters |
|
|
287 | (1) |
|
|
287 | (1) |
|
9.6.2.3 Closed-loop Simulation Results |
|
|
288 | (1) |
|
9.6.3 Comparative Studies |
|
|
289 | (1) |
|
|
290 | (1) |
|
9.7 Auto-tuner Design for a Plant with an Integrator |
|
|
291 | (9) |
|
9.7.1 Estimation of an Integrating Plus Delay Model |
|
|
291 | (1) |
|
9.7.2 Auto-tuner for Integrating Systems |
|
|
292 | (5) |
|
9.7.3 Auto-tuning of Cascade Control Systems |
|
|
297 | (3) |
|
|
300 | (1) |
|
|
300 | (1) |
|
|
301 | (4) |
|
|
302 | (3) |
|
10 PID Control of Multi-rotor Unmanned Aerial Vehicles |
|
|
305 | (22) |
|
|
305 | (1) |
|
10.2 Multi-rotor Dynamics |
|
|
305 | (6) |
|
10.2.1 Dynamic Models for Attitude Control |
|
|
305 | (2) |
|
10.2.2 Actuator Dynamics for Quadrotor UAVs |
|
|
307 | (2) |
|
10.2.3 Actuator Dynamics of Hexacopters |
|
|
309 | (2) |
|
|
311 | (1) |
|
10.3 Cascade Attitude Control of Multi-rotor UAVs |
|
|
311 | (2) |
|
10.3.1 Linearized Model for the Secondary Plant |
|
|
312 | (1) |
|
10.3.2 Linearized Model for the Primary Plant |
|
|
313 | (1) |
|
|
313 | (1) |
|
10.4 Automatic Tuning of Attitude Control Systems |
|
|
313 | (11) |
|
10.4.1 Test Rigs for Auto-tuning Cascade PI Controllers of Multi-rotor UAVs |
|
|
314 | (1) |
|
10.4.2 Experimental Results for Quadrotor UAV |
|
|
314 | (6) |
|
10.4.3 Experimental Results for Hexacopter |
|
|
320 | (4) |
|
|
324 | (1) |
|
|
324 | (1) |
|
|
325 | (2) |
|
|
325 | (2) |
Suggestions to Food for Thought Questions |
|
327 | (4) |
Bibliography |
|
331 | (10) |
Index |
|
341 | |