ModelPredictiveControl.jl: advanced process control made easy in Julia
Pith reviewed 2026-05-23 17:36 UTC · model grok-4.3
The pith
ModelPredictiveControl.jl is an open-source Julia package that supports design of model predictive controllers with nonlinear and moving horizon features through modular code.
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
ModelPredictiveControl.jl is an open-source software package for designing model predictive controllers in the Julia programming language. It is designed to be easy to use and modular while providing advanced features like nonlinear control and moving horizon estimation. It relies on powerful control system, mathematical optimization and automatic differentiation frameworks to simplify the construction and testing of state estimators and predictive controllers. It also integrates with the standard plotting library to quickly visualize closed-loop data. The paper presents the main functionalities and illustrates them with two case studies in simulation, with solving times benchmarked against
What carries the argument
ModelPredictiveControl.jl package, which integrates with control system, mathematical optimization, and automatic differentiation frameworks to simplify construction of state estimators and predictive controllers.
If this is right
- Nonlinear model predictive control and moving horizon estimation become available without proprietary software.
- Users can combine economic and successive linearization controllers in the same open-source framework.
- Closed-loop data from simulations can be visualized immediately using standard Julia plotting libraries.
- Solving times for the tested cases are competitive with MATLAB implementations.
- Modular structure supports customization and testing of different predictive control approaches.
Where Pith is reading between the lines
- Wider adoption could promote greater transparency and code sharing in process control research.
- The package may lower barriers for prototyping economic model predictive control strategies in industry.
- Its structure suggests potential for extension to larger-scale systems or embedded real-time applications.
- Side-by-side testing against other open-source control packages would clarify relative strengths.
Load-bearing premise
The simulation case studies and MATLAB timing comparisons accurately represent the package's usability, modularity, and computational performance in realistic settings without unstated implementation details or hardware-specific optimizations.
What would settle it
Independent execution of the inverted pendulum example code from the package on standard hardware, with direct measurement of solving times against an equivalent MATLAB implementation on the same machine.
Figures
read the original abstract
Proprietary closed-source software is still the norm in advanced process control. Transparency and reproducibility are key aspects of scientific research. Free and open-source toolkit can contribute to the development, sharing and advancement of new and efficient control approaches, and the industrial sector will certainly benefit from them. This paper presents ModelPredictiveControl.jl, an open-source software package for designing model predictive controllers in the Julia programming language. It is designed to be easy to use and modular, while providing advanced features like nonlinear control and moving horizon estimation. It relies on powerful control system, mathematical optimization and automatic differentiation frameworks to simplify the construction and testing of state estimators and predictive controllers. It also integrates with the standard plotting library to quickly visualize closed-loop data. The paper presents the main functionalities and illustrates them with two case studies in simulation. The first example is a continuously stirred tank reactor described by linear dynamics. The second one implements a nonlinear, an economic, and a successive linearization model predictive controllers for an inverted pendulum. The solving times are benchmarked against equivalent implementations in MATLAB to show the efficiency of the package.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The manuscript introduces ModelPredictiveControl.jl, an open-source Julia package for designing model predictive controllers. It emphasizes ease of use and modularity while supporting advanced capabilities including nonlinear MPC and moving horizon estimation, leveraging Julia's control, optimization, and automatic differentiation ecosystems. Functionalities are illustrated via two simulation case studies (linear CSTR dynamics and inverted pendulum with nonlinear/economic/successive-linearization MPC variants) and solving-time benchmarks against equivalent MATLAB implementations.
Significance. If the implementation and benchmarks hold, the package provides a transparent, reproducible open-source alternative to proprietary APC software, potentially lowering barriers for research and industrial adoption. Integration with established Julia frameworks for optimization and AD is a strength that could enable rapid prototyping of new control strategies; the public availability of the package supports independent verification.
major comments (2)
- [Benchmarking section] Benchmarking section: the efficiency claim rests on solving-time comparisons to MATLAB, but the manuscript does not specify the hardware platform, solver tolerances, or whether the MATLAB implementations use equivalent modeling and backend choices; this detail is needed to evaluate whether reported speedups are reproducible and general.
- [Case studies section] Case studies section: while the abstract lists moving horizon estimation among the advanced features, the two presented examples focus exclusively on MPC variants; a short note or additional illustration confirming MHE functionality would make the demonstration of all claimed capabilities more complete.
minor comments (2)
- Add a brief table or paragraph comparing ModelPredictiveControl.jl to other open-source MPC packages (e.g., in Julia or Python) to better position its modularity and feature set.
- Ensure that any code listings or pseudocode in the main text are accompanied by repository links or version tags for reproducibility.
Simulated Author's Rebuttal
We thank the referee for the positive evaluation and the recommendation of minor revision. The two major comments are addressed point by point below.
read point-by-point responses
-
Referee: [Benchmarking section] Benchmarking section: the efficiency claim rests on solving-time comparisons to MATLAB, but the manuscript does not specify the hardware platform, solver tolerances, or whether the MATLAB implementations use equivalent modeling and backend choices; this detail is needed to evaluate whether reported speedups are reproducible and general.
Authors: We agree that these details are required for reproducibility. In the revised manuscript we will add the hardware platform specifications, the solver tolerances applied in both Julia and MATLAB runs, and explicit confirmation that the MATLAB implementations use equivalent modeling formulations and backend solvers. revision: yes
-
Referee: [Case studies section] Case studies section: while the abstract lists moving horizon estimation among the advanced features, the two presented examples focus exclusively on MPC variants; a short note or additional illustration confirming MHE functionality would make the demonstration of all claimed capabilities more complete.
Authors: We acknowledge the observation. Although the package implements moving horizon estimation, the current case studies emphasize MPC. In the revised manuscript we will insert a concise note (and, if space permits, a brief additional illustration) confirming MHE functionality to demonstrate all advertised capabilities. revision: yes
Circularity Check
No significant circularity
full rationale
The manuscript presents a software package implementation together with two standard simulation demonstrations and timing benchmarks against MATLAB. No mathematical derivations, fitted parameters renamed as predictions, or load-bearing self-citations appear; the claims rest on direct description of code functionality and publicly inspectable examples rather than any self-referential reduction.
Axiom & Free-Parameter Ledger
Reference graph
Works this paper leans on
-
[1]
author Arnström, D. , author Bemporad, A. , author Axehill, D. , year 2022 . title A dual active-set solver for embedded quadratic programming using recursive LDL ^ T updates . journal IEEE Trans. Autom. Contr. volume 67 . :10.1109/TAC.2022.3176430
-
[2]
author Bagge Carlson, F. , author Fält, M. , author Heimerson, A. , author Troeng, O. , year 2021 . title Controlsystems.jl: A control toolbox in julia , in: booktitle Proceedings of CDC 2021 , pp. pages 4847--4853 . :10.1109/CDC45484.2021.9683403
-
[3]
author Beal, L. , author Hill, D. , author Martin, R. , author Hedengren, J. , year 2018 . title Gekko optimization suite . journal Processes volume 6 , pages 106 . :10.3390/pr6080106
-
[4]
author Bezanson, J. , author Edelman, A. , author Karpinski, S. , author Shah, V.B. , year 2017 . title Julia: A fresh approach to numerical computing . journal SIAM Review volume 59 . :10.1137/141000671
-
[5]
author Boyd, S. , author Parikh, N. , author Chu, E. , author Peleato, B. , author Eckstein, J. , year 2011 . title Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers . volume volume 3 . publisher now publishers . :10.1561/2200000016
-
[6]
author Byrd, R.H. , author Nocedal, J. , author Waltz, R.A. , year 2006 . title Knitro: An Integrated Package for Nonlinear Optimization . publisher Springer US . :10.1007/0-387-30065-1\_4
-
[7]
author Christ, S. , author Schwabeneder, D. , author Rackauckas, C. , author Borregaard, M.K. , author Breloff, T. , year 2023 . title Plots.jl -- a user extendable plotting api for the julia programming language . journal J. of Open Research Software :10.5334/jors.431
-
[8]
author Coleman, C. , author Lyon, S. , author Maliar, L. , author Maliar, S. , year 2021 . title Matlab, Python, Julia: What to Choose in Economics? journal Comput. Econ. volume 58 . :10.1007/s10614-020-09983-3
-
[9]
author Currie, J. , author Wilson, D.I. , author Sahinidis, N. , author Pinto, J. , year 2012 . title OPTI : Lowering the barrier between open source optimizers and the industrial matlab user , in: booktitle FOCAPO / CPC 2012 , pp. pages 1--6
work page 2012
-
[10]
author Desbiens, A. , author Hodouin, D. , author Plamondon, \' E . , year 2000 . title Global predictive control: a unified control structure for decoupling setpoint tracking, feedforward compensation and disturbance rejection dynamics . journal IEE proc., Control theory appl. volume 147 . :10.1049/ip-cta:20000443
-
[11]
author Fiedler, F. , author Karg, B. , author Lüken, L. , author Brandner, D. , author Heinlein, M. , author Brabender, F. , author Lucia, S. , year 2023 . title do-mpc: Towards fair nonlinear and robust model predictive control . journal Control Engineering Practice volume 140 , pages 105676 . :10.1016/j.conengprac.2023.105676
-
[12]
author Gao, K. , author Mei, G. , author Piccialli, F. , author Cuomo, S. , author Tu, J. , author Huo, Z. , year 2020 . title Julia language in machine learning: Algorithms, applications, and open issues . journal Comput. Sci. Rev. volume 37 . :10.1016/j.cosrev.2020.100254
-
[13]
author Kautsky, J. , author Nichols, N.K. , author van Dooren, P. , year 1985 . title Robust pole assignment in linear state feedback . journal Int. J. of Control volume 41 . :10.1080/0020718508961188
-
[14]
author Lubin, M. , author Dowson, O. , author Dias Garcia , J. , author Huchette, J. , author Legat, B. , author Vielma, J.P. , year 2023 . title JuMP 1.0: R ecent improvements to a modeling language for mathematical optimization . journal Math. Program. Comput. :10.1007/s12532-023-00239-3
-
[15]
author Maciejowski, J. , year 2000 . title Predictive control : with constraints . edition 1st ed., publisher Prentice Hall
work page 2000
-
[16]
author Meadows, E.S. , author Rawlings, J.B. , year 1997 . title Model Predictive Control . publisher Prentice Hall PTR . chapter chapter 5 . pp. pages 233--310
work page 1997
-
[17]
author Nocedal, J. , author Wright, S.J. , year 2006 . title Sequential Quadratic Programming . publisher Springer New York , address New York, NY . chapter chapter 18 . pp. pages 529--562 . :10.1007/978-0-387-40065-5\_18
-
[18]
Forward-Mode Automatic Differentiation in Julia
author Revels, J. , author Lubin, M. , author Papamarkou, T. , year 2016 . title Forward-mode automatic differentiation in J ulia . journal arXiv:1607.07892 :10.48550/arXiv.1607.07892
work page internal anchor Pith review Pith/arXiv arXiv doi:10.48550/arxiv.1607.07892 2016
-
[19]
author Samad, T. , author Bauer, M. , author Bortoff, S. , author Di Cairano , S. , author Fagiano, L. , author Odgaard, P.F. , author Rhinehart, R.R. , author Sánchez-Peña, R. , author Serbezov, A. , author Ankersen, F. , author Goupil, P. , author Grosman, B. , author Heertjes, M. , author Mareels, I. , author Sosseh, R. , year 2020 . title Industry eng...
-
[20]
author Schmid, C. , author Biegler, L. , year 1994 . title Quadratic programming methods for reduced hessian sqp . journal Computers & Chemical Engineering volume 18 , pages 817--832 . :10.1016/0098-1354(94)E0001-4
-
[21]
author Simon, D. , year 2006 . title Optimal State Estimation . publisher Wiley
work page 2006
-
[22]
author Stellato, B. , author Banjac, G. , author Goulart, P. , author Bemporad, A. , author Boyd, S. , year 2020 . title OSQP : an operator splitting solver for quadratic programs . journal Math. Program. Comput. volume 12 . :10.1007/s12532-020-00179-2
-
[23]
author Vansovits, V. , author Petlenkov, E. , author Tepljakov, A. , author Vassiljeva, K. , author Belikov, J. , year 2022 . title Bridging the gap in technology transfer for advanced process control with industrial applications . journal Sensors volume 22 . :10.3390/s22114149
-
[24]
author Verschueren, R. , author Frison, G. , author Kouzoupis, D. , author Frey, J. , author van Duijkeren, N. , author Zanelli, A. , author Novoselnik, B. , author Albin, T. , author Quirynen, R. , author Diehl, M. , year 2020 . title acados: a modular open-source framework for fast embedded optimal control . https://arxiv.org/abs/1910.13753, http://arxi...
-
[25]
author W \"a chter, A. , author Biegler, L.T. , year 2006 . title On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming . journal Mathematical Programming volume 106 . :10.1007/s10107-004-0559-y
-
[26]
author Waltz, R.A. , author Morales, J.L. , author Nocedal, J. , author Orban, D. , year 2006 . title An interior algorithm for nonlinear optimization that combines line search and trust region steps . journal Mathematical Programming volume 107 , pages 391--408 . :10.1007/s10107-004-0560-5
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.