The evolution of computer science and information technology has made possible the application of control techniques to systems that were beyond the possibilities of control theory just a decade ago. The size of the problems faced today by control engineers has grown enormously as the limitations imposed by the communication and computational capabilities decrease. In this sense, there are strong incentives to be ambitious: society heavily depends on infrastructure systems, such as road-traffic networks, water networks, electricity networks, etc. These are examples of large-scale, networked systems, that almost everybody uses on a daily basis, and any performance improvement would have a great direct impact on the society. However, traditional centralized control approaches cannot be used with these kind of systems due to, e.g., centralized computational issues or issues with centralized modeling, data collection and actuation.

It is at this point where distributed controllers come into play. The idea behind distributed control approaches is simple: the centralized problem is divided in several different parts whose control is assigned to a certain number of local controllers or agents. Therefore, each agent does not have a global vision of the problem. Depending on the degree of interaction that exists between the local subsystems, the agents may need to communicate so that they can coordinate themselves. Distributed approaches have important advantages that justify their use. The first advantage is that in general these schemes are easier to implement. Their computational requirements are lower because a difficult problem is substituted by several smaller problems. In addition, these schemes are scalable. Their inherent modularity simplifies the system maintenance and the possible expansions of the control system. Moreover, the modularity provides robustness in comparison with a centralized controller. A possible failure does not have to affect the overall system. For this reason, distributed systems have a greater tolerance to failures. Nevertheless, these systems have also several drawbacks that have to be taken into account, being the main one the loss of performance in comparison with a centralized controller. This loss depends on the degree of interaction between the local subsystems and the coordination mechanisms between the agents.

During the last years many distributed control approaches using MPC have been proposed. MPC is a popular control strategy for the design of high performance model-based process control systems because of its ability to handle multi-variable interactions, constraints on control (manipulated) inputs and system states, and optimization requirements in a systematic manner. These features are essential in this context because they allow the control engineer to handle explicitly the interactions between the different subsystems.

Although many approaches for distributed MPC have been proposed, a coherent and easily accessible description of the components of these approaches is lacking. It is the intention of this book to bring together such descriptions, making it easy for control practitioners to implement their preferred approach. For researchers and students, the book will provide a state-of-the-art overview, while at the same time making clear directions of research that deserve more attention.