  The contribution of this paper is a framework for training and evaluation of
Model Predictive Control (MPC) implemented using constrained neural networks.
Recent studies have proposed to use neural networks with differentiable convex
optimization layers to implement model predictive controllers. The motivation
is to replace real-time optimization in safety critical feedback control
systems with learnt mappings in the form of neural networks with optimization
layers. Such mappings take as the input the state vector and predict the
control law as the output. The learning takes place using training data
generated from off-line MPC simulations. However, a general framework for
characterization of learning approaches in terms of both model validation and
efficient training data generation is lacking in literature. In this paper, we
take the first steps towards developing such a coherent framework. We discuss
how the learning problem has similarities with system identification, in
particular input design, model structure selection and model validation. We
consider the study of neural network architectures in PyTorch with the explicit
MPC constraints implemented as a differentiable optimization layer using CVXPY.
We propose an efficient approach of generating MPC input samples subject to the
MPC model constraints using a hit-and-run sampler. The corresponding true
outputs are generated by solving the MPC offline using OSOP. We propose
different metrics to validate the resulting approaches. Our study further aims
to explore the advantages of incorporating domain knowledge into the network
structure from a training and evaluation perspective. Different model
structures are numerically tested using the proposed framework in order to
obtain more insights in the properties of constrained neural networks based
MPC.
