Practical applications of industrial optimization: from high-speed embedded controllers to large discrete utility systems
Optimization of large-scale industrial systems requires not only state-of-the-art numerical algorithms, but also accurate tailor-made underlying models to ensure the solution is both sensible and useful. The combination of setting up a rigorous optimization solver together with building a high-fidelity model can cause the typical industrial user to become overwhelmed with formulating one or both of these steps, resulting in poor performance and/or a suboptimal solution. This work addresses the problem by developing a high-level framework for modelling and solving industrially significant optimization problems. The framework allows the user to concentrate on their domain specialization, while the framework automatically tailors the optimization problem by exploiting structural features within the user's model. To illustrate the benefit of this approach, two widely varying industrial optimization problems are investigated: Online optimization within an embedded predictive controller and large-scale steam utility system operational optimization.
Within the first chosen example, an embedded model predictive controller, an optimal control problem must be solved at each sample in order to calculate the next control move(s). In a traditional linear predictive controller, this requires solving online a quadratic programming problem which, even for modest problems with relatively short prediction horizons, can involve tens of decision variables and hundreds of linear constraints. On an embedded platform, such as a microcontroller, solving a problem of this size online requires substantial computational power together with a large amount of dynamic memory, both of which are highly constrained on typical hardware. To overcome the hurdle, this work introduces the jMPC Toolbox, a high-level MATLAB framework for describing, tuning, simulating and generating embedded predictive controllers. Furthermore, the quad_wright and quad_mehrotra interior-point quadratic programming solvers have been developed, which are specifically tailored to solve modestly-sized online optimization problems within a model predictive controller on embedded hardware. Together, these two contributions allow an embedded predictive controller with an online optimization solver capable of over 10kHz sampling rates to be built, verified and deployed to modest embedded hardware in less than ten seconds. A case study demonstrates the effectiveness of the approach applied to an unstable, nonlinear laboratory-scale helicopter, while benchmarks against literature show for the problems of interest that the quad_mehrotra solver is the best in class.
The second chosen example, steam utility systems, are designed to supply the heating, mechanical and electrical demands of an on-site process system, such as an oil refinery, paper mill, chemical process plant or a variety of other energy intensive industries. Steam is used as the working fluid within the utility system, and is generated by boilers or recovered from waste heat, which is then used to supply the heating requirements of the process, or used to drive steam turbines to supply mechanical and electrical loads. In addition, gas turbines provide modern utility systems with co-generation potential, allowing the system to export excess electricity if economically viable. However, due to the discrete nature of a utility system where equipment can be switched in and out of service, steam flows redistributed, and where zero-flow conditions are normal, optimizing the operation of a utility system requires a rigorous model based on thermodynamics and state-of-the-art numerical algorithms. To address this problem, a second MATLAB framework, the OPTI Toolbox, has been developed which provides a suite of state-of-the-art open-source optimization algorithms suitable for solving the discrete optimization problems that arise from operational optimization. Furthermore, to tailor the utility system model to the optimizer, a symbolic mixed integer nonlinear modelling strategy is developed to approximate a rigorous simulator model, combining regressions from literature, industrial experience and process specific knowledge, resulting in an efficient model for optimization. Multiple case studies are presented to demonstrate the efficiency of the approach, including the operational optimization of an industrial petrochemical utility system. Each of the case studies encompass a range of operating conditions and superstructures, noting the framework correctly solves for the global optimum for all problems in less than 5 seconds, matches the solution from an equivalent rigorous thermodynamic model and provides industrially significant CAPEX-free economic savings.
While the jMPC and OPTI Toolboxes target substantially different ends of the industrial optimization spectrum in terms of physical size and dynamic response, this work shows that the common approach of abstracting the optimization problem via a higher-level framework, together with exploiting problem specific characteristics, allows high-speed and robust solutions to be obtained to industrially significant problems. Moreover, in both examples the complexities of the model and the interface to the optimizer are hidden, allowing the user to focus directly on the problem at hand, yet still obtain best-in-class performance.