The contents are summarised as follows.
An introduction to prediction in decision making.
Choosing tuning parameters for a finite horizon algorithm
Challenging scenarios and what might go wrong with finite horizon algorithms?
Handling uncertainty and noise: the T-filter
Constraint handling and why MPC is so useful
Feedforward and target information
Table of contents
Overview
Predictive control is a very popular technique in industry and thus having resources on this within the control101 toolbox makes sense. The focus of these resources will be to reinforce a good understanding of the underlying concepts by enabling extensive visualisation. For detailed theory please see chapter 8 and the numerous text books on the topic.
Those who wish to implement MPC in anger should note that there are numerous MATLAB toolboxes available for this on file exchange.
As normal in the toolbox, all the interactive laboratories are supported by manuals written as livescripts which give more detailed background information. As the focus is on concepts, for now the available resources focus on linear SISO systems as more complicated scenarios make the core concepts harder to illustrate.
These items are in preparation so have not yet been published.
The file mpcsourcecode_control101.mlx gives a detailed summary of the underlying m-files used by the apps to implement finite horizon MPC on transfer function models. A number of code snippets are provided so that users can access and use these m-files directly which thus enables them to personalise choices such as the model, scenario, horizons, weights, constraints and uncertainty.
The code is deliberately written to be simple and transparent so should be relatively easy for a competent MATLAB user to follow. However, there is the caveat that consequently the code is not designed to be robust to misuse or other incidental issues such as infeasibility.
This is a simple interface (predictionconcepts_control101.mlapp) to understand both how prediction underpins control decision making modelling and also how, with poor choices of horizons, these decisions may be poorly thought through. Users can select their desired values for the future inputs and view the impact on the predictions. There is also an option to view the associated GPC/DMC predictions. The implement button will then use the first of these and move to the next sample.
Boxes at the top summarise the sum of errors squared and input changes squared to help with any quantitative assessment. The manual is in predictionconcepts_control101_manual.mlx.
This app (mpctuning_control101.mlapp) is a simple interface to understand and investigate how the core tuning parameters within an MPC law affect the decision making and performance. The tuning paramters dictate the performance index used to determine the 'optimal' current control and thus their choice is important. However, it can be seen that different choices lead to hugely variable behaviour and thus understanding what constitute good and bad choices is essential. The manual is in mpctuning_control101_manual.mlx.
This app also allows a simplistic investigation of the impact of uncertainty.
This app (mpcfailing_control101.mlapp) allows the investigation finite horizon MPC on some specific case studies with challenging dynamics. The intention is to allow users to visualise how closed-loop behaviour can be highly sensitive to horizon choices and weights and thus decisions and understanding on what constitute good choices are very important. It is also an indication of scenarios where finite horizon MPC may be a poor choice. The manual is in mpcfailing_control101_manual.mlx.
The app mpctfilter_control101.mlapp is a simple interface to understand and investigate how the inclusion of a T-filter within an MPC law affects the performance. The T-filter orginates from the simple conceptual observation that we should filter out high frequency noise before we make inferences, such as predictions. If we fail to do this, our predictions can be more sensitive to noise than we expect leading to poor closed-loop behaviours, especially of the input. The legend keeps track of the core choices so that systematic comparisons can be undertaken. The manual is in mpctfilter_control101_manual.mlx.
The file mpcsourcecode_control101.mlx gives a detailed summary and examples of how to use these files.
caha_control101 Used to build prediction matrices.
mpc_constraints2_control101 Used to build inequalities to manage constraints.
mpc_constraints_control101 Used to build inequalities to manage constraints.
mpc_law_control101 Used to build unconstrained control law.
mpc_predmat_control101 Used to build prediction matrices.
mpc_predmat_toeplitz_control101 Used to build prediction matrices.
mpc_predtfilt_control101 Used to build prediction matrices with a T-filter.
mpc_simulate_inputconstraints_control101 Performs closed-loop simulations with just input constraints
mpc_simulate_limited_control101 Performs closed-loop simulations with no constraints and limited decimal places
mpc_simulate_noconstraints_control101 Performs closed-loop simulations with no constraints
mpc_simulate_noconstraints_withff_control101 Performs closed-loop simulations with no constraints and feedforward
mpc_simulate_outputconstraints_control101 Performs closed-loop simulations with all constraints
mpc_simulate_tfilt_noconstraints_control101 Performs closed-loop simulations with a T-filter and no constraints
mpc_simulate_tfiltoutputconstraints_control101 Performs closed-loop simulations with a T-filter and constraints