(249f) Non-Convex MINLP for Utility Optimization
AIChE Annual Meeting
2016
2016 AIChE Annual Meeting
Computing and Systems Technology Division
Interactive Session: Systems and Process Operations
Monday, November 14, 2016 - 3:45pm to 5:45pm
Rajkumar Vedam, Detong Zhang, Purt Tanartkit, Gareth Hiller, Schneider-Electric, 10900 Equity Drive, Houston, TX 77041, USA
Sankararao Boddupalli, Mallikarjun Lavate, Manju Murali, Cognizant Technology Solutions, Hyderabad, India
(Author for correspondence: rajkumar.vedam@schneider-electric.com)Extended Abstract
Utility optimization in the process industry offers the potential for significant energy cost savings. Among the technologies used for utility optimization are mixed integer linear programming (MILP) [1], nonlinear programming (NLP) [2], and case-study enumeration. In this paper, we present utility optimization using mixed-integer nonlinear programming (MINLP) [3], and highlight practical difficulties in the solution of the same. We highlight the typical non-convexities in operation, and present strategies to address them. We present novel modeling methods that encode plant operational logic as constraints and strategies for performance optimization.
Utility optimization involves calculating the best economic solution to meet the energy requirements of a process, while operating the underlying process optimally with desired operational specifications. The utility optimization problem is relevant when there are multiple sources that can supply the energy to do work in a process. Some sources can be endemic to the process â?? such as re-captured steam, and others, extraneous to the process â?? such as utility electricity. An additional requirement driving utility optimization is the dynamic nature of fuel costs, which can vary based on peak-pricing as well as other demand-related free-market forces. Thus an optimal solution for a given period might not be optimal at a different period where the energy costs have changed, necessitating frequent re-optimization.
Conventionally, the energy optimization problem has been solved as a nonlinear programming (NLP) problem, wherein using nonlinear models of switchable units such as steam and gas turbines, motors, generators, boilers, fuels, process streams and other process equipment, optimal values of independent process variables are computed, exploiting the degrees of freedom in the process, such that the energy costs are minimized while the throughput is maximized. Case-studies help to select between candidate switched configurations.
Typically, units in a process are operated between lower-bounds and upper-bounds, operation of which is infeasible beyond those limits. There is also a disjoint feasible point at the zero-state of the process unit (which can either be zero for power-off or non-zero for processes that are always-on, such as turbine units that always have a base-loading). This is a source of non-convexity in practical systems. When optimized using an NLP solver, the more operationally-expensive units are driven to their lower-bounds, whereas optimality might require the unit to be turned off (or operate at the disjoint zero-state). Designed to search in convex regions, conventional NLP solvers cannot turn off devices, because that requires crossing a non-convex boundary. NLPs therefore finding sub-optimal solutions. An additional drawback is that conventional NLP solvers seek the strongly optimal local minimum, thereby restricting their outlook to a neighborhood of operation. Depending on the size of the locally-convex regions, this sometimes precludes the ability of such solvers to find significantly different solutions that require large excursions from the current minimum.
Utility optimization requires the capability to switch in and out energy-supplying units, depending on the economics, energy and material balance, and underlying nonlinear-process optimality. Such switching could be done for example, using selective enumeration of case-studies where each case study involves solving an NLP problem that has encoded a particular switching of the energy-units. Due to exponential growth, the enumerative approach cannot be scaled up easily with increasing switchable units, even after screening out infeasible switching.
In this paper, we propose utility optimization using a Mixed Integer Nonlinear Programming (MINLP) branch and bound solver [3], using a reduced gradient sequential quadratic programming (SQP) NLP solver. Our novel methods include models for switching, the ability to handle a class of non-convexities in the process, and methods to control the complexity of state-space search and the performance and robustness of the solution.
The utility optimization problem can be expressed as follows:
min c (x,y,z), s.t. f(x,y,z)=0 and xmin <= x <= xmax and ymin <= y <= ymax and zis Boolean (1)
In (1), the nonlinear process is modeled with equality constraints, f(x, y, z) = 0, where the function â??fâ? is nonlinear in the vector variables x, y and z. Let f: RN x RS x BB -> RN. The variables â??xâ? are free-dependent, and can be varied between some operational bounds, of dimension Nx1. The variables â??yâ? are free-independent variables, and are usually referred to as â??specificationsâ?, and also varied between bounds, and is of dimension S x 1. Normally, S < N. The variables â??zâ? are free-independent, and are the binary-switches in the problem, and is of dimension B x 1. The cost function c is linear in the variables x, y, z.
Starting from an initial relaxed NLP solution, the branch-and-bound solver selects a relaxed binary variable for expansion based on a heuristic measure such as most-fractional, and performs a depth-first-search. When a binary variable is held at zero, the NLP solver is presented with a nonlinear problem that has the corresponding unit in its zero-state, thus circumventing the non-convex region between the bounds and zero-state. In continuum, a guarded relaxation of the lower-bound permits the obtaining of sensitivity of the solution in a direction towards zero. The branch and bound solver prunes branches on infeasibilities, as well as on branches that have worse cost than a â??best-so-farâ? candidate solution â?? both relying on assumptions of convexity and globalism of the NLP solutions. While the worst-case complexity is exponential in the number of binary variables, we have observed that the branch and bound solver obtains a solution by examining a small percentage of the NLP nodes, indicating good performance of the heuristics.
Plant operational constraints sometimes require some switching to be synchronous, i.e., some switches need to operate coherently or complementarily when a switching occurs. A group is defined as a set of binary switches that switch coherently or complementarily. In such a set, we have just one independent variable, termed the group-leader. All other binary members of the set have constraint equations describing their relationship to the group-leader, and are included in (1). The use of groups results in two advantages:
(a) The number of independent binary switches that the MINLP solver must see reduces to the number of group-leaders. Let there be B binary switches, and G groups, where, G <= B. In this case, the worst-case branches of MINLP reduce from 2B+1 to 2G+1, resulting in a provably improved worst-case performance.
(b) By encoding plant operational wisdom into grouping logic, we are reducing the state-space search to a smaller search-space, due to considering only operationally-feasible switching. This results in fewer infeasible NLP solutions, thereby improving the robustness and performance of MINLP, and time-to-result.
The use of logical cuts encodes known unit switching in the plant, to include â??must-runâ? units, or to take out units that are down for maintenance. This has the effect of reducing the number of binary solver variables, and reducing the infeasible search-space, thereby improving both the performance and robustness.
The price sensitivity around an MINLP solution is explored by performing â??What-Ifâ? analysis, where all binary variables are fixed either at 0 or 1, as set by the user, and by performing an NLP run. â??What-Ifâ? analysis allows performing case-studies and the selection of an operating point from a candidate set of case-studies.
The table below shows results obtained with an illustrative example of a generic utility optimization problem, where the switchable devices are nonlinear models of motors, steam turbines, and generators [4], whose numbers are doubled in each run. The number of NLP nodes visited by the MINLP solver and the number of NLP iterations are scalable linear functions of the number of binary variables in this example (but not always, owing to NP-Hard nature of the problem), using a heuristic of branching on the most-fractional node.
Binary Vars |
Eqns |
Total Variables |
NNz |
NLP Nodes |
NLP Iterations |
CPU Time (sec) |
4 |
145 |
153 |
325 |
6 |
31 |
2.66 |
8 |
242 |
257 |
560 |
10 |
50 |
5.73 |
16 |
436 |
465 |
1030 |
18 |
113 |
17.2 |
32 |
824 |
881 |
1970 |
34 |
224 |
49.5 |
64 |
1602 |
1715 |
3855 |
66 |
378 |
225 |
Conclusion
A branch and bound MINLP solver is proposed with a nonlinear SQP solver for the utility optimization problem. The non-convexity of the problem is discussed and addressed. Performance and robustness improvements are proposed. An illustrative example of utility optimization is presented. Reference
[1] Operational optimization of the utility system of an oil refinery, Sandra R. Michelettoa, Maria C.A. Carvalhoa,José M. Pinto, Computers & Chemical Engineering, Volume 32, Issues 1â??2, January 2008, Pages 170â??185
[2] Modeling and Optimization of Utility Systems, PS Varbanov, S Doyle, R Smith, Chemical Engineering Research & Design, Vo.82, Issue 5, May 2004, pp.561-578.
[3] An algorithmic framework for convex mixed integer nonlinear programs, P Bonami, LT Biegler, AR Conn, G Cornuéjols, IE Grossmann, CD Laird, J Lee, A Lodi, F Margot, N Sawaya, A Wachter, Discrete Optimization, Vol 5, Issue 2, 2008, pp. 186-204.
[4] SimSci ROMeo Process Optimization, Retrieved from http://software.schneider-electric.com/products/simsci/optimize/romeo-process-optimization/, April 2016.