Embedded Control Systems in C/C++: An Introduction for Software Developers Using MATLAB

In Chapters 2 (PID control), 4 (classical control system design), and 5 (pole placement), I described techniques for designing control systems that satisfy a given set of performance specifications. In those approaches, the controller design effort proceeds until it is "good enough" in terms of satisfying performance requirements. There has been no attempt to design the "best" controller possible for a given application.
In this chapter, I introduce techniques that produce the best, or optimal, controller design for a given plant model and associated weighting criteria. As a first step, it is necessary to precisely define what is meant by "optimal" and describe it in mathematical terms. The MATLAB Control System Toolbox commands for selecting controller and observer gains on the basis of the optimality criteria will then be discussed. As in the preceding chapters, I will not address the complex algorithms used by the Toolbox to perform the computations. Only the necessary steps to make effective use of the commands and their results will be covered.
In Chapter 5, I identified an ad hoc approach (using the select_poles() function) for choosing closed-loop system and observer pole locations that satisfy a set of performance specifications. The techniques introduced in this chapter determine the pole locations for the closed-loop system and the observer on the basis of optimality criteria described below. The resulting controller designs are optimal in the sense that no other set of pole locations could do a better job of satisfying the optimality criteria...