When designing a feedback control system, the complexity and dynamics of the system, the type and availability of data, and the desired performance and robustness must be taken into account. Proportional-integral-derivative (PID) control is a simple yet widely used method that adjusts the output based on the error, accumulated error, and rate of change of error. Model-based control is another method that uses a mathematical model to predict and optimize the output based on current and future states and inputs. Examples of this include model predictive control (MPC) and state feedback control. Adaptive control is a method that adapts the controller parameters or structure to cope with uncertainties, disturbances, or changes in the system. Examples include self-tuning control and gain scheduling control. Lastly, distributed control is a method that uses multiple controllers to communicate and coordinate with each other to achieve a global objective. Examples are hierarchical control and multi-agent control.