Bienvenido al Repositorio Institucional del Concytec

El Repositorio Institucional del Concytec tiene como objetivo permitir el libre acceso a la producción científica institucional, optimizando su visibilidad; así mismo garantizar la preservación y conservación de la información relacionada a la ciencia, tecnología e innovación.


Por favor, utiliza este identificador para citar o enlazar este ítem:

Título: High performance implementation of MPC schemes for fast systems
Autor(es): Correa Córdova, Max Leo 
Resumen: In recent years, the number of applications of model predictive control (MPC) is rapidly increasing due to the better control performance that it provides in comparison to traditional control methods. However, the main limitation of MPC is the computational e ort required for the online solution of an optimization problem. This shortcoming restricts the use of MPC for real-time control of dynamic systems with high sampling rates. This thesis aims to overcome this limitation by implementing high-performance MPC solvers for real-time control of fast systems. Hence, one of the objectives of this work is to take the advantage of the particular mathematical structures that MPC schemes exhibit and use parallel computing to improve the computational e ciency. Firstly, this thesis focuses on implementing e cient parallel solvers for linear MPC (LMPC) problems, which are described by block-structured quadratic programming (QP) problems. Speci cally, three parallel solvers are implemented: a primal-dual interior-point method with Schur-complement decomposition, a quasi-Newton method for solving the dual problem, and the operator splitting method based on the alternating direction method of multipliers (ADMM). The implementation of all these solvers is
based on C++. The software package Eigen is used to implement the linear algebra operations. The Open Message Passing Interface (Open MPI) library is used for the communication between processors. Four case-studies are presented to demonstrate the potential of the implementation. Hence, the implemented solvers have shown high performance for tackling large-scale LMPC problems by providing the solutions in
computation times below milliseconds. Secondly, the thesis addresses the solution of nonlinear MPC (NMPC) problems, which are described by general optimal control problems (OCPs). More precisely,
implementations are done for the combined multiple-shooting and collocation (CMSC) method using a parallelization scheme. The CMSC method transforms the OCP into a nonlinear optimization problem (NLP) and de nes a set of underlying sub-problems for computing the sensitivities and discretized state values within the NLP solver. These underlying sub-problems are decoupled on the variables and thus, are solved in parallel.
For the implementation, the software package IPOPT is used to solve the resulting NLP problems. The parallel solution of the sub-problems is performed based on MPI and Eigen. The computational performance of the parallel CMSC solver is tested using case studies for both OCPs and NMPC showing very promising results. Finally, applications to autonomous navigation for the SUMMIT robot are presented.
Specially, reference tracking and obstacle avoidance problems are addressed using an NMPC approach. Both simulation and experimental results are presented and compared to a previous work on the SUMMIT, showing a much better computational e ciency and control performance.
Tema: Programación lineal
Editorial: Pontificia Universidad Católica del Perú
Technische Universitat ILMENAU
Fecha de publicación: mar-2016
Tipo de publicación: info:eu-repo/semantics/masterThesis
Identificador Handle:
Nivel de acceso: info:eu-repo/semantics/openAccess
Colección:2.2 Estudios de maestría

Ficheros en este ítem:
Fichero Descripción TamañoFormato
2016_Correa_High-performance-implementation-of-MPC.pdf1,41 MBAdobe PDFVista previa
  Visualizar / Abrir
Registro Dublin Core completo

Páginas vistas

marcado en 19-ene-2022


marcado en 19-ene-2022

Google ScholarTM


  • Compartir este item
  • QR Code

Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons