| |
| |
Preface | |
| |
| |
| |
Foundations | |
| |
| |
| |
Why Feedback? An Invitation | |
| |
| |
A Hands-On Example | |
| |
| |
Hoping for the Best | |
| |
| |
Establishing Control | |
| |
| |
Adding It Up | |
| |
| |
Summary | |
| |
| |
Code to Play With | |
| |
| |
| |
Feedback Systems | |
| |
| |
Systems and Signals | |
| |
| |
Tracking Error and Corrective Action | |
| |
| |
Stability, Performance, Accuracy | |
| |
| |
The Setpoint | |
| |
| |
Uncertainty and Change | |
| |
| |
Feedback and Feedforward | |
| |
| |
Feedback and Enterprise Systems | |
| |
| |
Code to Play With | |
| |
| |
| |
System Dynamics | |
| |
| |
Lags and Delays | |
| |
| |
Forced Response and Free Response | |
| |
| |
Transient Response and Steady-State Response | |
| |
| |
Dynamics in the Physical World and in the Virtual World | |
| |
| |
Dynamics and Memory | |
| |
| |
The Importance of Lags and Delays for Feedback Loops | |
| |
| |
Avoiding Delays | |
| |
| |
Theory and Practice | |
| |
| |
Code to Play With | |
| |
| |
| |
Controllers | |
| |
| |
Block Diagrams | |
| |
| |
On/Off Control | |
| |
| |
Proportional Control | |
| |
| |
Why Proportional Control Is Not Enough | |
| |
| |
Integral Control | |
| |
| |
Integral Control Changes the Dynamics | |
| |
| |
Integral Control Can Generate a Constant Offset | |
| |
| |
Derivative Control | |
| |
| |
Problems with Derivative Control | |
| |
| |
The Three-Term or PID Controller | |
| |
| |
Code to Play With | |
| |
| |
| |
Identifying Input and Output Signals | |
| |
| |
Control Input and Output | |
| |
| |
Directionality of the Input/Output Relation | |
| |
| |
Examples | |
| |
| |
Thermal Control 1: Heating | |
| |
| |
Item Cache | |
| |
| |
Server Scaling | |
| |
| |
Controlling Supply and Demand by Dynamic Pricing | |
| |
| |
Thermal Control 2: Cooling | |
| |
| |
Criteria for Selecting Control Signals | |
| |
| |
For Control Inputs | |
| |
| |
For Control Outputs | |
| |
| |
A Note on Multidimensional Systems | |
| |
| |
| |
Review and Outlook | |
| |
| |
The Feedback Idea | |
| |
| |
Iteration | |
| |
| |
Process Knowledge | |
| |
| |
Avoiding Instability | |
| |
| |
The Setpoint | |
| |
| |
Control, Not Optimization | |
| |
| |
| |
Practice | |
| |
| |
| |
Theory Preview | |
| |
| |
Frequency Representation | |
| |
| |
The Transfer Function | |
| |
| |
Block-Diagram Algebra | |
| |
| |
PID Controllers | |
| |
| |
Poles of the Transfer Function | |
| |
| |
Process Models | |
| |
| |
| |
Measuring the Transfer Function | |
| |
| |
Static Input/Output Relation: The Process Characteristic | |
| |
| |
Practical Considerations | |
| |
| |
Dynamic Response to a Step Input: The Process Reaction Curve | |
| |
| |
Practical Aspects | |
| |
| |
Process Models | |
| |
| |
Self-Regulating Process | |
| |
| |
Accumulating Process | |
| |
| |
Self-Regulating Process with Oscillation | |
| |
| |
Non-Minimum Phase System | |
| |
| |
Other Methods of System Identification | |
| |
| |
| |
PID Tuning | |
| |
| |
Tuning Objectives | |
| |
| |
General Effect of Changes to Controller Parameters | |
| |
| |
Ziegler-Nichols Tuning | |
| |
| |
Semi-Analytical liming Methods | |
| |
| |
Practical Aspects | |
| |
| |
A Closer Look at Controller Tuning Formulas | |
| |
| |
| |
Implementation Issues | |
| |
| |
Actuator Saturation and Integrator Windup | |
| |
| |
Preventing Integrator Windup | |
| |
| |
Serpoint Changes and Integrator Preloading | |
| |
| |
Smoothing the Derivative Term | |
| |
| |
Choosing a Sampling Interval | |
| |
| |
Variants of the PID Controller | |
| |
| |
Incremental Form | |
| |
| |
Error Feedback Versus Output Feedback | |
| |
| |
The General linear Digital Controller | |
| |
| |
Nonlinear Controllers | |
| |
| |
Error-Square and Gap Controllers | |
| |
| |
Simulating Floating-Point Output | |
| |
| |
Categorical Output | |
| |
| |
| |
Common Feedback Architectures | |
| |
| |
Changing Operating Conditions: Gain Scheduling | |
| |
| |
Gain Scheduling for Mildly Nonlinear Systems | |
| |
| |
Large Disturbances: Feedforward | |
| |
| |
Fast and Slow Dynamics: Nested or "Cascade" Control | |
| |
| |
Systems Involving Delays: The Smith Predictor | |
| |
| |
| |
Case Studies | |
| |
| |
| |
Exploring Control Systems Through Simulation | |
| |
| |
The Case Studies | |
| |
| |
Modeling Time | |
| |
| |
Control Time | |
| |
| |
Simulation Time | |
| |
| |
The Simulation Framework | |
| |
| |
Components | |
| |
| |
Plants and Systems | |
| |
| |
Controllers | |
| |
| |
Actuators and Filters | |
| |
| |
Convenience Functions for Standard Loops | |
| |
| |
Generating Graphical Output | |
| |
| |
| |
Case Study: Cache Hit Rate | |
| |
| |
Defining Components | |
| |
| |
Cache Misses as Manufacturing Defects | |
| |
| |
Measuring System Characteristics | |
| |
| |
Controller Tuning | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study: Ad Delivery | |
| |
| |
The Situation | |
| |
| |
Measuring System Characteristics | |
| |
| |
Establishing Control | |
| |
| |
Improving Performance | |
| |
| |
Variations | |
| |
| |
Cumulative Goal | |
| |
| |
Gain Scheduling | |
| |
| |
Integrator Preloading | |
| |
| |
Weekend Effects | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study: Scaling Server Instances | |
| |
| |
The Situation | |
| |
| |
Measuring and Tuning | |
| |
| |
Reaching 100 Percent With a Nonstandard Controller | |
| |
| |
Dealing with Latency | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study: Waiting-Queue Control | |
| |
| |
On the Nature of Queues and Buffers | |
| |
| |
The Architecture | |
| |
| |
Setup and Tuning | |
| |
| |
Derivative Control to the Rescue | |
| |
| |
Controller Alternatives | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study: Cooling Fan Speed | |
| |
| |
The Situation | |
| |
| |
The Model | |
| |
| |
Tuning and Commissioning | |
| |
| |
Closed-Loop Performance | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study: Controlling Memory Consumption In a Game Engine | |
| |
| |
The Situation | |
| |
| |
Problem Analysis | |
| |
| |
Architecture Alternatives | |
| |
| |
A Nontraditional Loop Arrangement | |
| |
| |
A Traditional Loop with Logarithms | |
| |
| |
Results | |
| |
| |
Simulation Code | |
| |
| |
| |
Case Study Wrap-Up | |
| |
| |
Simple Controllers, Simple Loops | |
| |
| |
Measuring and Tuning | |
| |
| |
Staying in Control | |
| |
| |
Dealing with Noise | |
| |
| |
| |
Theory | |
| |
| |
| |
The Transfer Function | |
| |
| |
Differential Equations | |
| |
| |
Laplace Transforms | |
| |
| |
Properties of the Laplace Transform | |
| |
| |
Using the Laplace Transform to Solve Differential Equations | |
| |
| |
A Worked Example | |
| |
| |
The Transfer Function | |
| |
| |
Worked Example: Step Response | |
| |
| |
Worked Example: Ramp Input | |
| |
| |
The Harmonic Oscillator | |
| |
| |
What If the Differential Equation Is Not Known? | |
| |
| |
| |
Block-Diagram Algebra and the Feedback Equation | |
| |
| |
Composite Systems | |
| |
| |
The Feedback Equation | |
| |
| |
An Alternative Derivation of the Feedback Equation | |
| |
| |
Block-Diagram Algebra | |
| |
| |
Limitations and Importance of Transfer Function Methods | |
| |
| |
| |
PIO Controllers | |
| |
| |
The Transfer Function of the PID Controller | |
| |
| |
The Canonical Form of the PID Controller | |
| |
| |
The General Controller | |
| |
| |
Proportional Droop Revisited | |
| |
| |
A Worked Example | |
| |
| |
| |
Poles and Zeros | |
| |
| |
Structure of a Transfer Function | |
| |
| |
Effect of Poles and Zeros | |
| |
| |
Special Cases and Additional Details | |
| |
| |
Pole Positions and Response Patterns | |
| |
| |
Dominant Poles | |
| |
| |
Pole Placement | |
| |
| |
What to Do About Delays | |
| |
| |
| |
Root Locus Techniques | |
| |
| |
Construction of Root Locus Diagrams | |
| |
| |
Root Locus or "Evans" Rules | |
| |
| |
Angle and Magnitude Criteria | |
| |
| |
Practical Issues | |
| |
| |
Examples | |
| |
| |
Simple Lag with a P Controller | |
| |
| |
Simple Lag with a PI Controller 253 | |
| |
| |
| |
Frequency Response and the Bode Plot | |
| |
| |
Frequency Response | |
| |
| |
Frequency Response in the Physical World | |
| |
| |
Frequency Response for Transfer Functions | |
| |
| |
A Worked Example | |
| |
| |
The Bode Plot | |
| |
| |
A Criterion for Marginal Stability | |
| |
| |
Other Graphical Techniques | |
| |
| |
| |
Topics Beyond This Book | |
| |
| |
Discrete-Tune Modeling and the z-Transform | |
| |
| |
State-Space Methods | |
| |
| |
Robust Control | |
| |
| |
Optimal Control | |
| |
| |
Mathematical Control Theory | |
| |
| |
| |
Appendices | |
| |
| |
| |
Glossary | |
| |
| |
| |
Creating Graphs with Gnuplot | |
| |
| |
| |
Complex Numbers | |
| |
| |
| |
Further Reading | |
| |
| |
Index | |