Synopses & Reviews
How can you take advantage of feedback control for enterprise programming? With this book, author Philipp K. Janert demonstrates how the same principles that govern cruise control in your car also apply to data center management and other enterprise systems. Through case studies and hands-on simulations, youll learn methods to solve several control issues, including mechanisms to spin up more servers automatically when web traffic spikes.
Feedback is ideal for controlling large, complex systems, but its use in software engineering raises unique issues. This book provides basic theory and lots of practical advice for programmers with no previous background in feedback control.
- Learn feedback concepts and controller design
- Get practical techniques for implementing and tuning controllers
- Use feedback “design patterns” for common control scenarios
- Maintain a caches “hit rate” by automatically adjusting its size
- Respond to web traffic by scaling server instances automatically
- Explore ways to use feedback principles with queueing systems
- Learn how to control memory consumption in a game engine
- Take a deep dive into feedback control theory
Control theory has applications to everything from cloud computing to supply chain management. It's an amazingly important tool--and people have few accessible texts on it to learn from. "Feedback Control" will teach programmers how to apply concepts and methods from control theory to problems common in enterprise programming and data center management.
About the Author
After previous careers in physics and software development, Philipp K. Janert currently provides consulting services for data analysis, algorithm development, and mathematical modeling. He has worked for small start-ups and in large corporate environments, both in the U.S. and overseas. He prefers simple solutions that work to complicated ones that don't, and thinks that purpose is more important than process. Philipp is the author of "Gnuplot in Action - Understanding Data with Graphs" (Manning Publications), and has written for the O'Reilly Network, IBM developerWorks, and IEEE Software. He is named inventor on a handful of patents, and is an occasional contributor to CPAN. He holds a Ph.D. in theoretical physics from the University of Washington. Visit his compa
Table of Contents
Preface; What Is Feedback?; Why This Book?; How to Read This Book; Conventions Used in This Book; Using Code Examples; Safari® Books Online; How to Contact Us; Acknowledgments; Foundations; Chapter 1: Why Feedback? An Invitation; 1.1 A Hands-On Example; 1.2 Hoping for the Best; 1.3 Establishing Control; 1.4 Adding It Up; 1.5 Summary; 1.6 Code to Play With; Chapter 2: Feedback Systems; 2.1 Systems and Signals; 2.2 Tracking Error and Corrective Action; 2.3 Stability, Performance, Accuracy; 2.4 Uncertainty and Change; 2.5 Feedback and Enterprise Systems; 2.6 Code to Play With; Chapter 3: System Dynamics; 3.1 Lags and Delays; 3.2 Dynamics in the Physical World and in the Virtual World; 3.3 The Importance of Lags and Delays for Feedback Loops; 3.4 Theory and Practice; 3.5 Code to Play With; Chapter 4: Controllers; 4.1 Block Diagrams; 4.2 On/Off Control; 4.3 Proportional Control; 4.4 Integral Control; 4.5 Derivative Control; 4.6 The Three-Term or PID Controller; 4.7 Code to Play With; Chapter 5: Identifying Input and Output Signals; 5.1 Control Input and Output; 5.2 Examples; 5.3 Criteria for Selecting Control Signals; 5.4 A Note on Multidimensional Systems; Chapter 6: Review and Outlook; 6.1 The Feedback Idea; 6.2 Iteration; 6.3 Process Knowledge; 6.4 Avoiding Instability; 6.5 The Setpoint; 6.6 Control, Not Optimization; Practice; Chapter 7: Theory Preview; 7.1 Frequency Representation; 7.2 The Transfer Function; 7.3 Block-Diagram Algebra; 7.4 PID Controllers; 7.5 Poles of the Transfer Function; 7.6 Process Models; Chapter 8: Measuring the Transfer Function; 8.1 Static Input/Output Relation: The Process Characteristic; 8.2 Dynamic Response to a Step Input: The Process Reaction Curve; 8.3 Process Models; 8.4 Other Methods of System Identification; Chapter 9: PID Tuning; 9.1 Tuning Objectives; 9.2 General Effect of Changes to Controller Parameters; 9.3 Ziegler-Nichols Tuning; 9.4 Semi-Analytical Tuning Methods; 9.5 A Closer Look at Controller Tuning Formulas; Chapter 10: Implementation Issues; 10.1 Actuator Saturation and Integrator Windup; 10.2 Smoothing the Derivative Term; 10.3 Choosing a Sampling Interval; 10.4 Variants of the PID Controller; 10.5 Nonlinear Controllers; Chapter 11: Common Feedback Architectures; 11.1 Changing Operating Conditions: Gain Scheduling; 11.2 Large Disturbances: Feedforward; 11.3 Fast and Slow Dynamics: Nested or "Cascade" Control; 11.4 Systems Involving Delays: The Smith Predictor; Case Studies; Chapter 12: Exploring Control Systems Through Simulation; 12.1 The Case Studies; 12.2 Modeling Time; 12.3 The Simulation Framework; Chapter 13: Case Study: Cache Hit Rate; 13.1 Defining Components; 13.2 Measuring System Characteristics; 13.3 Controller Tuning; 13.4 Simulation Code; Chapter 14: Case Study: Ad Delivery; 14.1 The Situation; 14.2 Measuring System Characteristics; 14.3 Establishing Control; 14.4 Improving Performance; 14.5 Variations; 14.6 Simulation Code; Chapter 15: Case Study: Scaling Server Instances; 15.1 The Situation; 15.2 Measuring and Tuning; 15.3 Reaching 100 Percent With a Nonstandard Controller; 15.4 Dealing with Latency; 15.5 Simulation Code; Chapter 16: Case Study: Waiting-Queue Control; 16.1 On the Nature of Queues and Buffers; 16.2 The Architecture; 16.3 Setup and Tuning; 16.4 Derivative Control to the Rescue; 16.5 Controller Alternatives; 16.6 Simulation Code; Chapter 17: Case Study: Cooling Fan Speed; 17.1 The Situation; 17.2 The Model; 17.3 Tuning and Commissioning; 17.4 Closed-Loop Performance; 17.5 Simulation Code; Chapter 18: Case Study: Controlling Memory Consumption in a Game Engine; 18.1 The Situation; 18.2 Problem Analysis; 18.3 Architecture Alternatives; 18.4 Results; 18.5 Simulation Code; Chapter 19: Case Study Wrap-Up; 19.1 Simple Controllers, Simple Loops; 19.2 Measuring and Tuning; 19.3 Staying in Control; 19.4 Dealing with Noise; Theory; Chapter 20: The Transfer Function; 20.1 Differential Equations; 20.2 Laplace Transforms; 20.3 Using the Laplace Transform to Solve Differential Equations; 20.4 The Transfer Function; 20.5 What If the Differential Equation Is Not Known?; Chapter 21: Block-Diagram Algebra and the Feedback Equation; 21.1 Composite Systems; 21.2 The Feedback Equation; 21.3 Block-Diagram Algebra; 21.4 Limitations and Importance of Transfer Function Methods; Chapter 22: PID Controllers; 22.1 The Transfer Function of the PID Controller; 22.2 The Canonical Form of the PID Controller; 22.3 The General Controller; 22.4 Proportional Droop Revisited; Chapter 23: Poles and Zeros; 23.1 Structure of a Transfer Function; 23.2 Effect of Poles and Zeros; 23.3 Pole Positions and Response Patterns; 23.4 What to Do About Delays; Chapter 24: Root Locus Techniques; 24.1 Construction of Root Locus Diagrams; 24.2 Root Locus or "Evans" Rules; 24.3 Angle and Magnitude Criteria; 24.4 Practical Issues; 24.5 Examples; Chapter 25: Frequency Response and the Bode Plot; 25.1 Frequency Response; 25.2 The Bode Plot; 25.3 A Criterion for Marginal Stability; 25.4 Other Graphical Techniques; Chapter 26: Topics Beyond This Book; 26.1 Discrete-Time Modeling and the z-Transform; 26.2 State-Space Methods; 26.3 Robust Control; 26.4 Optimal Control; 26.5 Mathematical Control Theory; Appendices; Glossary; Creating Graphs with Gnuplot; Basic Plotting; Plot Ranges; Inline Transformations; Plotting Simulation Results; Summary; Complex Numbers; Basic Operations; Polar Coordinates; The Complex Exponential; Further Reading; Recommended Reading; Additional References; Mathematical Prerequisites; Colophon;