  Model-based optimization approaches for monitoring and control, such as model
predictive control and optimal state and parameter estimation, have been used
for decades in many engineering applications. Models describing the dynamics,
constraints, and desired performance criteria are fundamental to model-based
approaches. Thanks to recent technological advancements in digitalization,
machine learning methods such as deep learning, and computing power, there has
been an increasing interest in using machine learning methods alongside
model-based approaches for control and estimation. The number of new methods
and theoretical findings using machine learning for model-based control and
optimization is increasing rapidly. This paper outlines the basic ideas and
principles behind an easy-to-use Python toolbox that allows to quickly and
efficiently solve machine-learning-supported optimization, model predictive
control, and estimation problems. The toolbox leverages state-of-the-art
machine learning libraries to train components used to define the problem. It
allows to efficiently solve the resulting optimization problems. Machine
learning can be used for a broad spectrum of tasks, ranging from model
predictive control for stabilization, setpoint tracking, path following, and
trajectory tracking to moving horizon estimation and Kalman filtering. For
linear systems, it enables quick code generation for embedded MPC applications.
HILO-MPC is flexible and adaptable, making it especially suitable for research
and fundamental development tasks. Due to its simplicity and numerous already
implemented examples, it is also a powerful teaching tool. The usability is
underlined, presenting a series of application examples.
