pith. sign in

arxiv: 2411.09764 · v4 · submitted 2024-11-14 · 📡 eess.SY · cs.SY

ModelPredictiveControl.jl: advanced process control made easy in Julia

Pith reviewed 2026-05-23 17:36 UTC · model grok-4.3

classification 📡 eess.SY cs.SY
keywords model predictive controlJulia programming languageopen source softwarenonlinear controlmoving horizon estimationprocess controlsimulation case studies
0
0 comments X

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.

This paper presents ModelPredictiveControl.jl as an open-source package for model predictive control in the Julia language. It seeks to provide an easy-to-use and modular alternative to proprietary software while incorporating advanced capabilities such as nonlinear control and moving horizon estimation. The package builds on Julia's existing frameworks for control systems, optimization, and automatic differentiation to streamline the creation of state estimators and controllers. Case studies include a linear continuously stirred tank reactor and various controllers for an inverted pendulum. Solving times are compared to MATLAB implementations to demonstrate efficiency.

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

These are editorial extensions of the paper, not claims the author makes directly.

  • 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

Figures reproduced from arXiv: 2411.09764 by Alex Thivierge, Andr\'e Desbiens, Francis Gagnon, Fredrik Bagge Carlson.

Figure 1
Figure 1. Figure 1: CSTR process. 3.1.1. Linear Model At the steady-state operating point uc = uh = 20, yL = 50, and yT = 30, the following linear model accurately describes the plant dynamics: G(s) = y(s) u(s) = " 1.90 18s+1 1.90 18s+1 −0.74 8s+1 0.74 8s+1 # (14) The syntax to construct a linear model with a sample time of 2 s is: using ModelPredictiveControl, ControlSystemsBase G = [ tf(1.90, [18, 1]) tf(1.90, [18, 1]); tf(… view at source ↗
Figure 2
Figure 2. Figure 2: CSTR closed-loop simulation (MPC) [PITH_FULL_IMAGE:figures/full_fig_p005_2.png] view at source ↗
Figure 3
Figure 3. Figure 3: CSTR closed-loop simulation with feedforward (MPC). [PITH_FULL_IMAGE:figures/full_fig_p006_3.png] view at source ↗
Figure 4
Figure 4. Figure 4: depicts the system. τ K θ m L [PITH_FULL_IMAGE:figures/full_fig_p006_4.png] view at source ↗
Figure 6
Figure 6. Figure 6: Pendulum output setpoint tracking (NMPC). [PITH_FULL_IMAGE:figures/full_fig_p007_6.png] view at source ↗
Figure 5
Figure 5. Figure 5: Pendulum state estimation [PITH_FULL_IMAGE:figures/full_fig_p007_5.png] view at source ↗
Figure 7
Figure 7. Figure 7: Pendulum output disturbance rejection (NMPC). [PITH_FULL_IMAGE:figures/full_fig_p007_7.png] view at source ↗
Figure 8
Figure 8. Figure 8: Pendulum output setpoint tracking (EMPC). [PITH_FULL_IMAGE:figures/full_fig_p008_8.png] view at source ↗
Figure 9
Figure 9. Figure 9: Pendulum output disturbance rejection (EMPC). [PITH_FULL_IMAGE:figures/full_fig_p008_9.png] view at source ↗
Figure 10
Figure 10. Figure 10: Pendulum output setpoint tracking (SLMPC). [PITH_FULL_IMAGE:figures/full_fig_p009_10.png] view at source ↗
Figure 11
Figure 11. Figure 11: Pendulum output disturbance rejection (SLMPC). [PITH_FULL_IMAGE:figures/full_fig_p009_11.png] view at source ↗
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.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit. Tearing a paper down is the easy half of reading it; the pith above is the substance, this is the friction.

Referee Report

2 major / 2 minor

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)
  1. [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.
  2. [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)
  1. 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.
  2. 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

2 responses · 0 unresolved

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
  1. 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

  2. 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

0 steps flagged

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

0 free parameters · 0 axioms · 0 invented entities

This is a software package description paper with no mathematical derivations, fitted constants, or new physical models. No free parameters, axioms, or invented entities are introduced.

pith-pipeline@v0.9.0 · 5731 in / 1172 out tokens · 41781 ms · 2026-05-23T17:36:36.471765+00:00 · methodology

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Reference graph

Works this paper leans on

26 extracted references · 26 canonical work pages · 1 internal anchor

  1. [1]

    , author Bemporad, A

    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. [2]

    , author Fält, M

    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. [3]

    , author Hill, D

    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. [4]

    , year = 2017, journal =

    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. [5]

    Distributed optimization and statistical learning via the alternating direction method of multipliers,

    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. [6]

    , author Nocedal, J

    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. [7]

    , author Schwabeneder, D

    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. [8]

    , author Lyon, S

    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. [9]

    , author Wilson, D.I

    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

  10. [10]

    , author Hodouin, D

    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. [11]

    , author Karg, B

    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. [12]

    , author Mei, G

    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. [13]

    , author Nichols, N.K

    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. [14]

    , author Dowson, O

    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. [15]

    , year 2000

    author Maciejowski, J. , year 2000 . title Predictive control : with constraints . edition 1st ed., publisher Prentice Hall

  16. [16]

    , author Rawlings, J.B

    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

  17. [17]

    Numerical Optimization

    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. [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

  19. [19]

    , author Bauer, M

    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. [20]

    , author Biegler, L

    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. [21]

    , year 2006

    author Simon, D. , year 2006 . title Optimal State Estimation . publisher Wiley

  22. [22]

    , author Banjac, G

    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. [23]

    , author Petlenkov, E

    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. [24]

    , author Frison, G

    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. [25]

    On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming,

    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. [26]

    , author Morales, J.L

    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