Dynamic Simulator Optimization
This is a page showing ongoing activity by the IO Center. It involves highlighted research activities which are currently being carried out, description of goals, activities and expected results
2 users have rated this content. We would love to have your vote as well. Log in and rate!
The industry sees a steady increase in the use of dynamic simulators to model upstream production systems. The dynamic simulators are used for forecasting system behavior and to analyze what-if cases. However, they lack the capability to offer recommendations. Therefore, many engineering hours are invested in deciding how to operate a system under given conditions. Certainly, an 'automatic recommendation' tool is on the engineer's wish-list.
In our context, a dynamic simulator is a computer program capable to predict the behavior of a real-world process under certain conditions. For instance, K-Spice is a dynamic simulator developed by our partner Kongsberg Oil and Gas Technologies. K-Spice is capable to simulate the evolution of oil production thermodynamics and multiphase fluid flow with an easy and comprehensible user interface. With the aid of K-Spice it is possible, for example, to simulate the startup of a process or to analyze the reaction of the system to new controller set-points. These analyzes help to find better operational conditions which respect process limitations, such as surge in compressors or maximum pressure in pipelines.
Within a dynamic simulator, each system component is represented by a set of differential (or difference) equations. With numerical solvers, the simulator calculates the interaction between these components in time. The propagation of these interactions, and in particular, the future effect on each system component of the operator-process interaction is a complex process to be optimized.
Although this process is susceptible to be optimized, the application of existing optimization tools to obtain recommendations is not straightforward when dealing with this type of problems. Some of the reasons are:
• Alternative yes/no decisions: The presence of discrete decision variables, such as to use or not a given production facility, results in a tree diagram of alternative choices. Naive brute force algorithms need to check exhaustively all nodes for an optimal solution. Customized algorithms reduce the search space by making use of the process model.
• Nonlinear characteristics of real-world process: Sophisticated process models require complex optimization routines. Efficient global optimizers for nonlinear problems exist under certain conditions, for instance convexity. These conditions are usually not met. Therefore, specialized heuristics are developed to tackle this problem.
• Deadline meeting: An optimal control problem is solved to determine an operation recommendation for a given process condition. The calculated recommendation is valid if the process didn't change significantly its condition during the calculation time. Consequently, the calculation time is limited and therefore, the optimization procedure must be efficient.
An appropriate selection and implementation of an optimization solution observe the weakness cited above. We are currently researching on how to solve optimal control problems assuming interactions with a dynamic simulator. To this end, the following tools are studied:
• Problem formulation: The formulation of the optimization problem for a dynamic simulator is critical for the success of the solution implementation. A reduced formulation, removing unnecessary process bounds checking, can bring significant efficiency gains. The same optimization problem can be written in many ways, and for some formulations parallel computation can speed up the solution process significantly.
• Efficient computation: An optimization algorithm requires many simulator calls to search the variables space for an optimal solution. Depending on the optimization strategy, gradients and Hessians may also be required. Therefore, function calls running time must be reduced. Automatic differentiation tools and sensitivity analysis tools are suitable for some applications, but when handling black-box simulators, gradient and Hessians approximations might be an alternative.
• Applications interface: Dynamic simulator, optimization algorithm, and problem formulation should be linked to run the optimization procedure. A desired application interface handles fast information exchange, enable algorithms warm-start and avoid repeated function calls. Complex simulators have a large number of state variables, inputs and outputs, therefore data storage is also an issue to be solved.
Application example: Oil production optimization subject to dynamic constraints.
Consider the topside facilities illustrated in Figure 1.
The production flow is currently low and the well production chokes should be opened to increase the oil production. However, during this process, the three-phase separator cannot mix liquids and the compression capacity cannot be exceeded.
Figure 2 illustrates the software platform proposed to suggest a recommendation to the operational engineer.
An application manager, in this case based on C++ Qt objects, interfaces:
• The problem formulation: The objective function to be optimized subject to the constraints to be honored. These are easily written in terms of the process signals.
• The Optimizer: Mathematical algorithm suggesting new improved operational conditions based on previous evaluations. Currently, Coin-Or optimizers are interfaced, namely Ipopt and Bonmin.
• Dynamic Simulator: Application simulating the process behavior for given control inputs. K-Spice is currently interfaced to the platform.
The optimization process runs sequentially, therefore it is possible to track incumbent solutions, as illustrated in Figure 3:
The illustrated optimization process is inherently challenging due to the nature of the equations to be solved to guide the search and to prove optimality. Specialized optimization algorithms can bring efficiency and accuracy gains to this work-flow. Meanwhile, simple heuristics are still available and applicable making use of extensive computational power to test the potential of this application.
Towards the application in practice
The optimization platform was able to improve significantly the operational objective after few iterations of the optimization algorithm, say 10. However, algorithm iterations are very expensive, making its application impossible without exploiting properly its parallelization capability.
Roughly speaking, at each iteration, the optimization algorithm needs to acquire knowledge about the process before it provides a new recommendation. This knowledge can be constructed out of repeated simulations around the current operational condition. All this simulations can be executed in parallel, diminishing the iteration computational burden to the time required for a single simulation.
While this naive solution requires a huge computational power and simulation parallelization capabilities, Kongsberg with K-Spice is able to implement such solution straightforwardly. Meanwhile, specialized algorithms for gradient calculation can relieve computational power. However, these algorithms require more interfaces to K-Spice which are not currently available.
We plan to continue this activity by implementing the parallelization of simulations. This solution will provide operational recommendations at a high computational cost. If the interest for this tool increases after the engineers’ usage experience, the implementation of the sophisticated calculation approaches will be justified.
Other key informationI