SYSTEM AND METHOD FOR HYDROCARBON PRODUCTION ALLOCATION
Systems and methods are disclosed relating to hydrocarbon production allocation. In an example, an allocation system can receive well performance data for one or more wells and constraints data. The allocation system includes a trained machine learning (ML) model. The trained ML model can be used to predict a production volume for the one or more wells based on the well performance data and the constraints data. A production volume of the one or more wells can be adjusted based on the predicted production volume.
Latest SAUDI ARABIAN OIL COMPANY Patents:
This disclosure relates to hydrocarbons, and more particularly, to hydrocarbon production allocation.
BACKGROUND OF THE DISCLOSUREA reservoir is a subsurface formation containing accumulations of hydrocarbons (e.g., oil and gas) in porous rocks. The reservoir rocks have enough porosity to store hydrocarbons and sufficient permeability to allow these hydrocarbons to flow through the rock. Reservoirs are the natural, underground containers of oil and gas, formed over millions of years from the decomposition of organic matter under heat and pressure. The goal of hydrocarbon production is to extract the hydrocarbons safely and efficiently from the reservoir to the surface. To extract the hydrocarbons, a wellbore (e.g., a hole) is drilled into a planet (e.g. Earth) to access a hydrocarbon reservoir. The term “wellbore” refers to an actual drilled hole and/or tunnel that extends from a surface down into the reservoir. The wellbore can be lined with casing and/or cement to stabilize the hole to prevent a movement of subsurface fluids, and isolate different subsurface formations encountered while drilling. The wellbore serves as a conduit through which the hydrocarbons are brought from the reservoir to the surface.
A well refers to a complete system for extraction of the hydrocarbon from the reservoir. The well can encompass the wellbore as well as the surface and downhole equipment used for production. The downhole equipment can include, but not limited to, the casing, tubing, pumps, valves, sensors, instrumentalities and/or other machinery designed to control and manage the extraction of the hydrocarbons. Thus, a wellbore includes downhole equipment for accessing the hydrocarbons to the equipment that pumps the hydrocarbons to the surface and controls the flow.
SUMMARY OF THE DISCLOSUREVarious details of the present disclosure are hereinafter summarized to provide a basic understanding. This summary is not an extensive overview of the disclosure and is neither intended to identify certain elements of the disclosure nor to delineate the scope thereof. Rather, the primary purpose of this summary is to present some concepts of the disclosure in a simplified form prior to the more detailed description that is presented hereinafter.
According to an embodiment, a method can include receiving, at an allocation system, well performance data for one or more wells and constraints data, predicting, using a machine learning (ML) model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data, and adjusting a production volume of the one or more wells based on the predicted production volume.
According to another embodiment, a system can include one or more computing platforms configured to: receive input data for training an ML algorithm. The input data can include historical production data, historical reservoir data, and historical equipment performance data. The one or more computing platforms can be configured to preprocess the input data to provide processed input data for training the ML algorithm, train the ML algorithm to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data, and employ the trained ML model to adjust a production volume of the one or more wells based on the predicted production volume.
In yet another embodiment, a method can include receiving, at an ML training system, input data for training a ML algorithm. The input data can include historical production data, historical reservoir data, and historical equipment performance data. The method can include preprocessing, using a data input processor of the ML training system, the input data to provide processed input data for training the ML algorithm, modifying a loss function to include one or more penalty terms to account for one or more constraints for one or more wells, training, using an ML engine of the ML training system, the ML algorithm according to the modified loss function to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data, outputting, using the ML training system, the trained ML model for use in an allocation system in response to the training, receiving, at an allocation system, well performance data for one or more wells and constraints data, predicting, using the trained ML model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data, simulating, using a simulator, a reservoir model to evaluate an outcome of the predicted production volume for the one or more wells, updating, using the allocation system, the predicted production volume for the one or more wells based on the simulation of the reservoir model, and adjusting a production volume of the one or more wells based on the predicted production volume.
Any combinations of the various embodiments and implementations disclosed herein can be used in a further embodiment, consistent with the disclosure. These and other aspects and features can be appreciated from the following description of certain embodiments presented herein in accordance with the disclosure and the accompanying drawings and claims.
Embodiments of the present disclosure will now be described in detail with reference to the accompanying Figures. Like elements in the various figures may be denoted by like reference numerals for consistency. Further, in the following detailed description of embodiments of the present disclosure, numerous specific details are set forth to provide a more thorough understanding of the claimed subject matter. However, it will be apparent to one of ordinary skill in the art that the embodiments disclosed herein may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description. Additionally, it will be apparent to one of ordinary skill in the art that the scale of the elements presented in the accompanying Figures may vary without departing from the scope of the present disclosure.
According to one or more examples, a system is disclosed for hydrocarbon production allocation, which is referred to herein as an allocation system, and uses thereof. The allocation system addresses a series of complex technical challenges inherent to managing and optimizing a vast network of interconnected wells, pipelines, facilities, and/or equipment. Optimization is important for maximizing production and minimizing costs, all while adhering to various constraints including equipment capacities, transportation limitations, regulatory requirements, and/or contractual obligations. The complexity and interdependencies within a production network make it difficult to allocate resources effectively and optimize hydrocarbon production as changes in one part of the production network can significantly impact others. In some examples, to address this, the allocation system can use a multi-optimization approach, selecting appropriate optimization protocols based on historical or user-defined trends.
Another significant challenge with existing hydrocarbon production allocation and optimization is an uncertain behavior of hydrocarbon reservoirs, influenced by factors like changing pressures, fluid dynamics, and/or geological heterogeneity, which complicates a prediction of production performance. The allocation system disclosed herein uses a data-driven approach to minimize these uncertainties, which enhances prediction accuracy. Furthermore, accurate production allocation depends on high-quality timely data. In practice, data can be incomplete, inaccurate, and/or delayed, which reduces the effectiveness of allocation decisions when physics-based models are used. The allocation system disclosed herein can employ a data anomaly detection and correlation workflow (method) in this process to improve computation speed and/or accuracy.
Operational constraints also pose a considerable challenge, as allocation strategies must account for a range of limitations while trying to maximize production efficiency, a task made difficult by a dynamic nature of objective functions. The allocation system disclosed herein supports both maximization and minimization approaches to reconcile differences in model predictions and user objectives. Additionally, a dynamic nature of hydrocarbon production necessitates real-time decision-making, a challenge for traditional static allocation strategies, which may not adapt quickly enough to changing conditions. The allocation system disclosed herein minimizes user involvement, facilitating more dynamic decision-making.
Moreover, balancing multiple objectives such as maximizing production, optimizing asset utilization, minimizing downtime, and fulfilling contractual obligations presents a complex task. Existing methods are based on rule-based systems and linear programming models, and struggle with a complexity and dynamic nature of these challenges. Existing methods require significant manual effort to update and maintain, may not effectively handle uncertainty, leading to suboptimal decisions, and may not fully utilize available data, missing out on valuable insights that could improve hydrocarbon production allocation decisions.
The allocation system disclosed herein provides a framework for optimizing hydrocarbon production allocation, such as in an oil and/or gas industry. The allocation system utilizes artificial intelligence (AI) and data process techniques to optimize hydrocarbon production allocation in the hydrocarbon industry. For example, the allocation system can be used for optimizing an allocation of hydrocarbon production. In some instances, one or more machine learning (ML) algorithms can be employed to analyze a wide range of data, including production data, reservoir characteristics, equipment capacities, export limitations, and historical production records. The one or more ML algorithms can be used to capture complex interdependencies, identify patterns, and generate models for optimization. The allocation system can be used to perform in-depth analysis of the input variables to identify relationships, trends, and anomalies. The allocation system can leverage ML techniques to understand historical production records, reservoir behavior, and equipment capabilities. The allocation system can utilize an optimization framework that considers multiple factors, such as contractual obligations, equipment capacities, transportation limitations, and market demand. The allocation system can formulate optimization models and use one or more algorithms to determine the optimal hydrocarbon production allocation plan. Furthermore, the allocation system can incorporate real-time monitoring capabilities, and continuously collect data from wells and sensors. This enables dynamic adjustments and optimization in response to changing conditions, ensuring efficient production allocation, and minimizing downtime. The allocation system can also provide decision support tools that assist operators in making informed decisions regarding production allocation. The allocation system can be configured to offer insights, recommendations, and visualizations to facilitate effective resource management and operational decision-making. By combining AI algorithms, data analysis, optimization frameworks, real-time monitoring, and decision support, the allocation system, as disclosed herein, allows for accurate and optimized allocation of hydrocarbons, addressing the technical problems related to resource calculation, contractual obligations, resource management, operational efficiency, regulatory compliance, and reservoir evaluation. Accordingly, the allocation system addresses the technical complexities and uncertainties inherent in hydrocarbon production and improves a hydrocarbon production allocation process by making it more efficient, effective, and accurate. The allocation system enables users and/or other systems to make more informed data-driven decisions, which enhances operational efficiency and increases profitability.
The allocation system 102 can be implemented using one or more modules, shown in block form in the drawings. The one or more modules can be in software or hardware form, or a combination thereof. In some examples, the allocation system 102 can be implemented as machine readable instructions for execution on a computing platform 108, as shown in
The computing platform 108 can include a processor 110 and a memory 112. By way of example, the memory 112 can be implemented, for example, as a non-transitory computer storage medium, such as volatile memory (e.g., random access memory), non-volatile memory (e.g., a hard disk drive, a solid-state drive, a flash memory, or the like), or a combination thereof. The processor 110 can be implemented, for example, as one or more processor cores. The memory 112 can store machine-readable instructions that can be retrieved and executed by the processor 110 to implement the allocation system 102. Each of the processor 110 and the memory 112 can be implemented on a similar or a different computing platform. The computing platform 108 can be implemented in a cloud computing environment (for example, as disclosed herein) and thus on a cloud infrastructure. In such a situation, features of the computing platform 108 can be representative of a single instance of hardware or multiple instances of hardware executing across the multiple of instances (e.g., distributed) of hardware (e.g., computers, routers, memory, processors, or a combination thereof). Alternatively, the computing platform 108 can be implemented on a single dedicated server or workstation.
The allocation system 102 can include a data monitoring system 114. The data monitoring system 114 can collect (e.g., receive, retrieve, query, etc.) production data 122 from a data acquisition system 152. The data acquisition system 152 can be located on a platform 154, which can be located or used at the production field 118. The production field 118 can be an offshore or onshore production field, such as an oil and/or gas production field. While examples are described herein relative to an offshore production field environment, those skilled in the art having reference to this specification will readily recognize that this invention is also applicable to the management of terrestrial hydrocarbon production fields, and of individual wells and groups of wells. The data acquisition system 152 can be in communication with one or more instrumentations used at the wells 116. Thus, the data acquisition system 152 can be coupled to the one or more instrumentations. The data acquisition system 152 can include one or more computing and processing systems that can be used at a production area (or location), and which manage acquisition of measurements from the one or more instrumentations. The instrumentations can include one or more of, but not limited to, sensors, transducers, and transmitters. The data acquisition system 152 can communicate the measurements corresponding to the production data 122 to the data monitoring system 114, which can be over a wireless and/or wired communication link. In some examples, each well 116 can have its own data acquisition system and communicate the measurements to the data monitoring system 114. In some examples, the data acquisition system 152 can be deployed near multiple wells in the production field, and as such can manage the communication of measurements from those multiple wells in a same or similar manner as disclosed herein.
The data monitoring system 114 can be configured to continuously (or periodically in some instances) collect data from the data acquisition system 152. The collected data (the production data 122) can be used to generate the plan 104 or dynamically adjust the plan 104 to optimize hydrocarbon production rates (per well) and thus minimize downtime. Thus, as well conditions change, the allocation system 102 can adjust the plan 104 for the production field 118. There can be any number of wells at production field 118 and thus there can be more or less than three wells as shown in
For example, the production data 122 can identify each well (well type) and can specify for each well one or more flow rates (e.g., a volume of fluid produced by a well per unit of time), pressures and/or temperatures. The data monitoring system 114 can also receive equipment performance data 124 and reservoir data 126. The equipment performance data 124 can characterize equipment capacities (or capabilities), such as pump rates, compressor capacities, and/or pipeline capacities for the one or more wells 116. The reservoir data 126 can include reservoir characteristics of the wells 116, such as geological information (e.g., one or more of well type, rock type, porosity, permeability, structural features, stratigraphy information, reservoir geometry, etc.) and/or fluid properties (e.g., one or more of viscosity, gas-to-oil ratio (GOR), formation water salinity, phase behavior, etc.). The equipment performance data 124 and/or the reservoir data 126 can be retrieved from or provided by a database, in some instances.
The allocation system 102 includes an optimizer 128 that can be programmed to optimize the hydrocarbon production of the production field 118 by adjusting a product volume of the wells 116 and/or specifying the production volume for the wells 116. In some examples, the optimizer 128 includes the trained ML model 106. The optimizer 128 can use the trained ML model 106 to determine (e.g., predict) the production volume for the wells 116. The trained ML model 106 can determine the production volume for the wells 116 according to one or more constraints, which can be specified by constraint data 130. The constraint data 130 can specify one or more restrictions and/or constraints, such as limitations. The limitations can include one or more: regulatory requirements, contractual obligations, export constraints, production constraints, market demand, and/or transportation capacities (or limitations). The production data 122, the equipment performance data 124, and reservoir data 126 can be referred to herein collectively as well performance data 120.
The trained ML model 106 can be provided by an ML training system (e.g., a ML training system 200), such as disclosed herein. The trained ML model 106 can be programmed to identify correlations and/or patterns in the well performance data 120 to understand the performance of the wells 116 and respective impact on overall hydrocarbon production. The output of the trained ML model 106 can be used to optimize the allocation of hydrocarbon production volumes among the wells 116, ensuring efficient resource utilization. The trained ML model 106 can analyze equipment capacities, such as pumps, compressors, and/or pipelines. In some examples, the trained ML model 106 can be provided with historical performance data 152. The historical performance data can be used for model validation and testing, adapting the trained ML model 106 to changing conditions, refinement and optimization, anomaly detection and correction, scenario analysis and planning, and/or customization of the trained ML model 106 for a well or field. For example, the trained ML model 106 can be continuously (or periodically) provided with historical data which allows for ongoing validation and testing of the model's accuracy and predictive capabilities. It helps ensure that the model remains relevant and accurate over time, especially as new patterns or trends emerge in the data. In some examples, trained ML model 106 can be provided with updated historical data to configure the trained model 106 to adapt to hydrocarbon reservoir and production systems changes (e.g., environment changes), ensuring that a model's predictions are reflective of current conditions. In some examples, the trained ML model 106 can analyze the historical performance 152 data to identify new patterns or anomalies that were not present or not recognized in an initial training dataset. This can lead to improvements in a model's predictive accuracy and operational efficiency. Thus, in some instances, the trained MIL model 106 can continuously (or periodically) learn from the historical performance data 152 for the refinement and optimization of the model.
In some examples, providing the trained ML model 106 with the historical performance data 152 on a continuous (or periodic) basis allows for the detection of anomalies or errors in the data that may affect production allocation decisions. This enables timely corrections and adjustments to be made, ensuring that the allocation plan is based on accurate and reliable data. In some examples, the historical performance data 152 can be used by a simulator 142 to simulate various production scenarios and evaluate the outcomes of different allocation strategies. This supports strategic planning and decision-making by providing insights into how changes in production allocation might impact overall production and efficiency. In some instances, one or more different wells or fields can exhibit unique characteristics and behaviors over time. Providing the trained ML model 106 with the historical performance data 152 specific to each well or field allows for the customization of a model's predictions (recommendations), ensuring that the model's predictions are tailored to specific characteristics and needs of each production site (or well).
By considering the constraints and/or capabilities of each piece of equipment, the trained ML model 106 can determine the optimal allocation of hydrocarbon production volumes to maximize utilization and minimize bottlenecks. This ensures that hydrocarbon production is allocated in a way for the production field 118 that optimizes the capacity of the equipment, reducing inefficiencies and potential downtime.
The trained ML model 106 can make predictions based on the constraint data 130. Thus, the trained ML model 106 can be programmed to maximize hydrocarbon production rates of the wells 116 while adhering to operational and/or contractual constraints. For example, the trained ML model 106 can provide one or more predictions considering constraints and/or limitations. Thus, by analyzing historical export data, market demand, and/or export infrastructure constraints, the trained ML model 106 can be used to optimize the allocation of hydrocarbon production volumes to meet contractual obligations while maximizing export volumes. Operators can use the predictions to make more informed decisions about the allocation of resources to different export routes or destinations, ensuring efficient utilization of export infrastructure. By processing and analyzing these input variables (e.g., the well performance data 120 and the constraint data 130), the allocation system 102 can be used for making data-driven decisions and/or recommendations for hydrocarbon production allocation, resulting in improved efficiency, enhanced resource utilization, and maximization of production rates.
The predictions provided by the trained ML model 106 can correspond to the plan 104 or can be included as part of the plan 104. In some examples, the allocation system 102 includes a graphical user interface (GUI) generator 132 that can provide a graphical user interface (GUI) with the plan 104 and rendered on an output device 134. The output device 134 can be implemented as a display, a portable device (e.g., tablet, laptop, mobile phone, etc.), or as a stationary device (e.g., a desktop computer). Thus, the allocation system 102 can provide a user interface or dashboard that presents an optimized production allocation plan to operators and decision-makers. In some examples, the user interface or dashboard can include visualizations, reports, and/or key performance indicators, which can be generated based on other data and/or algorithms to facilitate informed decision-making. Thus, the operators and/or decision-makers can access a user interface that presents the plan 104, real-time performance data, and key performance indicators, enabling them to make informed decisions and maximize production efficiency.
In some examples, the optimizer 128 includes a plan adjuster 136. The plan adjuster 136 can be used for updating the plan 104 using the new predictions provided by the trained ML model 106. For example, the trained ML model 106 can provide an initial prediction (an initial plan) and the trained ML model 106 can provide a subsequent prediction so that an updated production plan can be provided for the wells 116. The plan adjuster 136 can compare the initial and subsequent predictions to update a current plan. Thus, the plan adjuster 136 can dynamically adjust the plan 104 based on real-time data (e.g., as new well performance data and/or constraints data is received by the allocation system 102). In some examples, the plan adjuster 136 can optimize (or update) the plan 104 based on user data 138, which can be provided by an input device 140 in response to a user. For example, the user data 138 can specify a change to the plan 104, such as the production volume of the wells 116.
In some examples, the allocation system 102 includes a simulator 142. The simulator 142 can be used to simulate a reservoir model 144, such as to evaluate one or more outcomes of each predicted production volume, enabling the allocation system 102 to further refine and improve its accuracy. The reservoir model 144 is a mathematical representation of a physical reservoir that includes the wells 116, capturing its geometry, heterogeneity, and/or physical properties. The reservoir model 144 can be generated, for example, by a reservoir model generator 146 and can range from a simple homogeneous model to a complex model incorporating faults and/or fractures. For example, the reservoir model generator 146 can integrate or include various types of data and/or information, such as one or more of geological data, petrophysical data, fluid properties data, historical production data, and the production volume for the wells 116. The reservoir model generator 146 can provide the reservoir model 144 based on the production volume of the wells 116 that had been predicted by the trained ML model 106. The historical production data can include one or more of data on past production volumes, pressures, water cut, gas-oil ratios, and/or other relevant production metrics for each well), the petrophysical data can include one or more of information on rock properties (porosity, permeability, compressibility) and/or fluid properties (viscosity, density, phase behavior of oil, gas, and water), details about the well 116 (e.g., their locations, trajectories, completions, stimulations (e.g., hydraulic fracturing), and/or production or injection histories, and can include a specified production volume for each well). Thus, the reservoir model 144 can be generated to match or mimic actual reservoir performance.
The reservoir model 144 can be simulated by the simulator 142 to predict an outcome of the plan 104, which can be provided as simulation data 150. For example, the simulator 142 can use Monte Carlo simulation to predict the outcome of the plan 104. The predicted outcome of plan 104 can present one or more predictive insights into a (potential) future performance of production operations under various scenarios. Simulation can also provide a secondary dataset that can be used to improve a predictive accuracy of the allocation system 102. For example, the simulation data 1150 can characterize one or more of production forecasts (e.g., forecasts of future production volumes from each well or across a field, considering the current and projected conditions of the reservoir and operational capabilities), operational efficiency (e.g., how changes in operations could impact efficiency. This includes the potential effects of adjusting production rates, modifying shift schedules, or deploying new technologies), equipment utilization (e.g., predictions on equipment load, potential bottlenecks, or the likelihood of equipment failures, helping to plan maintenance and capital expenditures), economic implications (e.g., financial outcomes of different production scenarios, including costs, revenues, and profit margins, can be characterized, helping in budgeting and financial planning), risk analysis (e.g., provide a probabilistic assessment of risks associated with certain decisions, including the likelihood and potential impact of undesirable events), resource allocation (e.g., suggest how to allocate resources optimally, including human resources, equipment, and capital, under various operational scenarios), regulatory compliance (e.g., implications of regulatory changes, helping companies to understand whether they will remain compliant and what adjustments may be necessary), environmental impact (e.g., environmental impact of different operational strategies, aiding in sustainability planning and reporting), scenario planning (e.g., how different strategic decisions may play out, providing a basis for scenario planning and the development of contingency plans), market dynamics (e.g., how changes in the market, such as shifts in demand or price fluctuations, could impact production and sales strategies) and reservoir management (e.g., characterize the response of the reservoir to different extraction strategies, helping in planning for optimal recovery over the life of the reservoir). The simulation data can be used to create a dynamic model of a production environment that can help predict outcomes and guide decision-making. It is a representation of how the real-world system might behave in the future, given current data and hypothesized conditions. This outcome provides a virtual testing ground for strategies and decisions, allowing companies to explore the consequences of actions before they are taken in the real world.
The simulator 142 can be used to run simulations based on different scenarios and given data types (e.g., various operational conditions and datasets that the allocation system 102 can use for simulation in assisting decision-makers). For example, there are various possible situations that can could affect hydrocarbon production including, but not limited to, market fluctuations (e.g., changes in demand and price of oil and gas), operational changes (e.g., adjustments in production strategies due to new wells coming online or existing wells going offline), regulatory changes (e.g., shifts in legal requirements or environmental regulations that impact how production must be conducted), technological updates (e.g., incorporation of new technologies or practices in the production process), environmental conditions (e.g., variations in weather or geological events that could impact production alongside operating temperatures and pressures). Each of these scenarios could significantly influence the decision-making process, and the allocation system 102 can simulate the potential outcomes of decisions under each different scenario. The given data type can include production data (e.g., Real-time and historical data on how much hydrocarbon is being extracted from each well), reservoir data (e.g., information on the geological properties and current conditions of the hydrocarbon reservoirs), equipment performance data (data on the operational status and efficiency of production equipment), and/or constraint data (e.g., information on any limitations or restrictions, such as capacity caps, maintenance schedules, or contractual obligations that must be met). The allocation system 102 can use these data types to inform the simulations it runs for each scenario. For example, in a scenario where market demand decreases, the allocation system 102 could simulate the impact of reducing production rates. If a new regulatory policy is introduced, the allocation system 102 could simulate how adjusting production to meet these new regulations would affect overall output and compliance.
By running simulations with these considerations, the allocation system 102 can provide decision-makers with a clearer understanding of the potential impacts of different strategies. This enables them to make more informed decisions, especially in times of uncertainty or when facing significant changes in external conditions. Using techniques like Monte Carlo simulations, which use randomness to predict the probability of different outcomes, the system can offer a range of results based on the current data and scenarios, feeding these predictions into reinforcement learning models to optimize decision-making further.
The capability to simulate different scenarios using AI is particularly useful during periods of uncertainty or significant shifts in regulatory policies for several reasons: risk assessment (e.g., uncertainty, whether due to market volatility, geopolitical events, or other factors, carries inherent risks. Simulations enable decision-makers to assess the potential impacts of these risks on production and plan accordingly), regulatory compliance (e.g., when regulatory policies change, companies must quickly adapt to remain compliant. Simulations can help anticipate the effects of new regulations on operations, allowing companies to make proactive adjustments), strategy planning (e.g., in uncertain times, long-term planning becomes challenging. Scenario simulations provide insights into a range of possible futures, helping companies to create flexible strategic plans that can accommodate different outcomes), financial forecasting (e.g., financial projections can be significantly affected by uncertainty and regulatory changes. Simulations allow companies to forecast various financial scenarios, aiding in budgeting and investment decisions), operational resilience (e.g., by simulating different scenarios, companies can identify potential vulnerabilities in their operations and take steps to mitigate them, increasing overall resilience), resource allocation (e.g., during uncertain periods, it can be crucial to allocate resources efficiently. AI simulations can suggest the best allocation strategies under various conditions, ensuring that resources are not wasted), maintaining competitive advantage (e.g., companies that can quickly adapt to change are more likely to maintain or gain a competitive advantage. Scenario simulations facilitate rapid adaptation by providing actionable intelligence), decision support (e.g., simulations act as a decision support tool, providing data-driven insights that help decision-makers choose the best courses of action when faced with uncertainty or regulatory changes), training and preparedness (e.g., simulations can be used to train staff on how to respond to different scenarios, ensuring that when real-world uncertainties arise, teams are prepared to manage them effectively), and market responsiveness (e.g., in volatile markets, the ability to predict and respond to changes can make the difference between profit and loss. Simulations help companies stay responsive and agile). The use of AI for scenario simulations can help users or companies navigate periods of uncertainty or regulatory change by providing a clearer understanding of potential impacts, allowing for informed decision-making, and ensuring agility and compliance in a changing environment.
In some examples, the trained ML model 106 can provide a number of plans corresponding to a number of potential hydrocarbon production volumes for the wells 116. The simulator 142 can run a number of different simulation scenarios to predict the outcomes of the plans. For example, the simulator 142 can use techniques like Monte Carlo simulations to predict the outcomes of various allocation strategies in real-time. The ML model 106 can use the output of simulations to refine its predictions and improve decision-making processes (predictive accuracy). This iterative feedback loop allows the ML model 106 to learn from simulated scenarios and enhance its accuracy over time. The ML model 106 can use simulation outputs as a source of synthetic data to learn how different factors affect production. This allows the ML model 106 to make more informed predictions and provide better decision-making support, which becomes more refined with each iteration. In some examples, these predictions (the simulation data 150) can then be fed back into the trained ML model 106 to determine which of the various hydrocarbon allocation strategies is an optimal plan for the reservoir. If not used for dynamic adjustments, real-time simulations can belong to the decision support part of the allocation system 102. In some examples, the simulation data 150 can be provided to the GUI generator 132 and output on the output device 134 to provide decision-makers with insights into potential outcomes, helping them make informed choices.
In some examples multiple plans for production allocation can be generated by running various simulations and using different scenarios and constraints. Selecting the most appropriate plan from these options involves a decision-making process based on predefined criteria that align with the company's objectives and constraints. For example, the selection can begin with identifying the primary optimization goals, which could include maximizing production, reducing costs, increasing profitability, or extending the life of the reservoir; Compliance with Constraints: Plans must adhere to operational constraints such as equipment capacities, transportation limitations, and regulatory requirements. Any plan that fails to meet these essential constraints is usually discarded; Risk Assessment: The selected plan should balance the potential rewards with the associated risks. Plans are evaluated based on their risk profiles, considering factors such as market volatility, political stability, and environmental risks; Financial Analysis: Economic factors such as cash flow, return on investment, and net present value are critical. The plan that provides the best financial outcome while considering the cost of implementation might be favored; Resilience to Uncertainty: In uncertain environments, the plan that offers the best resilience, or the ability to perform well across a range of unforeseen future scenarios, is often preferred; Scalability and Flexibility: The selected plan should be scalable to accommodate changes in production levels and flexible enough to allow adjustments in response to new information or changing conditions; Stakeholder Interests: The interests of all stakeholders, including investors, partners, local communities, and regulatory bodies, are considered. The plan that aligns with stakeholder expectations and contractual obligations is often chosen; Environmental Impact: Companies increasingly consider the environmental impact of their operations. The plan with the lowest environmental footprint that still meets production goals may be selected; Technical Feasibility: The practicality of implementing the plan with available technology and within a reasonable timeframe is a crucial factor; Model Confidence: The confidence level in the predictions made by the ML model for each plan can also influence the decision. Higher confidence levels typically lead to a preference for those plans; and/or Historical Performance: Plans that are similar to historically successful strategies might be given preference, assuming the underlying conditions have not changed significantly. After considering these criteria, decision-makers may use a scoring system, ranking each plan against these factors, or they may employ decision-making frameworks such as multi-criteria decision analysis (MCDA) to systematically evaluate and select the most suitable plan. The decision is often supported by visualization tools and dashboards that present a comprehensive view of the potential impact of each plan, facilitating an informed and balanced decision.
In some examples, the allocation system 102 is configured to use a dynamic adaptation approach for optimizing hydrocarbon production of the wells 116. The ML model 106 can be implemented as a reinforced learning (RL) model. In some examples, the trained ML model 106 is initially trained using supervised learning according to one or more examples herein, and then the trained ML model 106 is refined using RL as it operates in a real world. For example, the trained ML model 106 can receive the simulation data 150 and use that information to select an optimal (or best) plan among a number of plans that it has predicted for the production field 118. Such a hybrid approach leverages both supervised learning and RL, offering a practical solution for scenarios where initial training data is available but ongoing adaptation and optimization are required based on interaction with the environment. RL is a type of ML where a ML model, referred to as an agent, learns to make decisions by interacting with an environment. The agent learns from the outcomes of its actions, rather than from explicit predictions, to achieve a goal. The learning process is driven by rewards: positive feedback is given for actions that move the agent closer to its goal, and negative feedback for actions that move it away. Unlike supervised learning, RL does not require labeled input/output pairs and instead learns to map situations to actions based on the reward signal. For example, a model-free RL algorithm that learns a value of taking a given action in a given state can be used. The model-free RL algorithm can use a table (Q-table) to store Q-values, which are estimates of a total reward an agent can expect to receive by taking an action from a particular state. For example, the states could represent different conditions or scenarios in a production process, such as demand levels, resource availability, or any other relevant factors that might influence allocation decisions. Actions correspond to different allocation strategies (plans) that can be recommended. For instance, allocating more resources to one production line over another based on current demand and efficiency. The agent can receive rewards based on an efficiency of the plan. Efficiency can be measured in various ways, such as minimizing waste, maximizing output, and/or optimizing resource utilization. The reward is a way to quantify the success of an allocation strategy. Over time, through a process of exploration (trying out different actions to learn about their outcomes) and exploitation (using the knowledge gained to make better decisions), the agent can learn which actions (allocation strategies) lead to higher rewards in different states. In some examples, a Q-learning algorithm can be used by a trainer (e.g., the trainer 220) to update Q-values based on the rewards received, gradually improving the policy, the mapping from states to actions, to maximize the cumulative reward. For example, as the agent interacts with the environment, it continuously updates the Q-values based on the feedback (rewards) received for its actions. This enables the agent to adapt to changing conditions in the production environment. For example, if demand for a product increases, the agent can learn to allocate more resources to specific production, assuming such actions lead to higher rewards (e.g., higher sales revenue, lower storage costs). In essence, using Q-learning for production allocation in the allocation system 102 allows the allocation system 102 to adapt its strategies over time based on the outcomes of its actions. This approach leverages the power of RL to optimize decision-making processes in complex, variable environments without needing predefined rules or supervision.
Accordingly, using an RL model as the trained ML model 106, the allocation system 102 can dynamically adapt to changing conditions in real time. For instance, if a piece of equipment fails or there is a sudden shift in market demand, the allocation system 102 can adjust a production allocation strategy to minimize disruptions and maintain efficiency using the dynamic adaptation approach.
In some examples, a plan (e.g., the plan 104) can be used to automate various aspects of well operation by integrating with a Supervisory Control and Data Acquisition (SCADA) system, distributed control systems (DCS), or other industrial control systems (ICS). These systems can actuate equipment such as pumps, valves, and chokes, controlling the flow of hydrocarbons without human intervention. Thus, the allocation system 102 can be used to automated control of production of a well, such as one of the wells 116. For example, the allocation system 102 provides an optimal production volume for a specific well based on various inputs and simulations according to one or more examples herein. The allocation system 102 communicates the optimal production volume to the well's SCADA system or DCS, which is responsible for the real-time operational control of the well. A control system (e.g., of the SCADA system or DCS) can automatically adjust the settings on the well's equipment to meet the new production target. For instance, if the optimal production volume is higher than the current output, the control system might open a choke valve to increase the flow rate or adjust the speed of the submersible pump accordingly. In some examples, if the optimal production volume is lower, the control system would take the opposite action, reducing the flow by adjusting the valve or pump settings. Sensors can continuously monitor the well's output, pressure, temperature, and/or other relevant parameters to ensure that the production remains at the optimal level. This data is fed back to the SCADA system. If there is a deviation from the optimal production volume, the control system automatically makes further adjustments to bring the well back to the desired output level. While the system operates automatically, safety protocols are built-in to shut down operations if sensor readings indicate a potential hazard, such as a pressure spike suggesting a blowout. Manual overrides are also available for human operators to take control if necessary. The SCADA system logs all actions and changes in well performance, providing a dataset for further analysis by the allocation system 102, which can learn and optimize future production allocation plans. The allocation system 102 can interface with the control system via an Industrial Internet of Things (IoT) platform, which allows seamless communication between the AI's software domain and the physical equipment. By using this automated approach, hydrocarbon production can be optimized in real-time, maximizing efficiency and responsiveness while minimizing the need for human intervention. Thus, in some instances, the allocation system 102 not only informs the initial allocation plan but can play a role in ongoing operation and adjustment, with a feedback loop that continually refines the process based on live operational data.
Accordingly, the allocation system 102 offers significant technical advantages in terms of adaptability, real-time decision-making, and handling vast amounts of data. Furthermore, the allocation system 102 can be used to complement or support physics-driven models and/or can be combined with physics-driven models (e.g., the reservoir model 144) for improved hydrocarbon allocation and optimization. Physics-driven models are based on fundamental principles and laws of physics that describe the behavior of hydrocarbon reservoirs, flow dynamics, and other related processes. These models provide a foundational understanding of a system's behavior and capture underlying mechanisms of a hydrocarbon production process. In examples where data might be sparse or not available, physics-driven models can provide accurate predictions based on the known physical properties and behaviors of the system. The allocation system 102 is configured to identify patterns, trends, and relationships in large datasets, especially when the relationships might be nonlinear or too complex, such as for the physics-driven models. Physics-driven models provide a mechanistic understanding. In some examples, combining the allocation system 102 with physics-driven models (the reservoir model 144) lead to a more robust and accurate modeling system. In some examples, physics-driven models can be used to validate and calibrate the trained ML model 106. For example, if the ML model 106 produces results that are inconsistent with known physical principles, this is an indication that the ML model 106 may need refinement.
ML Training SystemThe ML training system 200 can be used to provide (output) the trained ML model 106 based on input data 204. A ML algorithm is a set of rules and mathematical equations that specify how data is processed and/or patterns are learned. It is the methodology that is followed to transform input data into a predictive output. Examples of ML algorithms that can be used within the scope of this disclosure can include, but not limited to, linear regression, decision trees, neural networks (NNs), such as deep NNs, and support vector machines. By contrast, a ML model is an output of the ML algorithm run on (or trained on) data, such as the input data 204. The ML model represents what the ML algorithm has learned from a training process. For instance, after training a NN algorithm on a dataset of images to recognize cats, the weights and structure that encapsulate the learned patterns constitute the ML model. The ML model is used to make predictions on new unseen data. In some instances, a single ML algorithm can be used to generate multiple ML models depending on the data it is trained on and hyper-parameters (e.g., configuration settings used to structure the ML model and its learning process) used during training. For example, the same NN algorithm can be used to create one model for image recognition and another for voice recognition, each trained with different datasets and potentially using different network configurations. As such, a ML model is an instantiation of the ML algorithm that has been trained on data. For example, the ML model can include a (final) set of parameters (e.g., weights, biases) that have been adjusted during the training process. Accordingly, the trained ML model 106 is an instantiation of an ML algorithm.
The ML training system 200 includes a ML model generator 202 that can provide the trained ML model 106 based on the input data 204. The input data 204 can include production data 206, reservoir data 208, equipment performance data 210. In some instances, the input data 204 can include constraint data 212. The input data 204 can be provided from one or more various data sources, such as disclosed herein. The production data 206 can be generated or captured over a period of time and can be referred to as historical production data. The production data 206 can be gathered from one or more data acquisition systems, such as the data acquisition system 152, as shown in
The ML model generator 202 includes a data input processor 214 to receive and process the input data 204 (or a subset thereof, such as the production data 206, the reservoir data 208, the equipment performance data 210, and the constraint data 212) to provide processed data 216, which can be used for training a ML model 224 corresponding to providing the trained ML model 106. Preprocessing these data types would ensure that the ML model 224 is trained on clean, accurate, and relevant information, which is essential for making precise predictions and decisions. Thus, the data input processor 214 can implement a preprocessing step to ensure quality and/or compatibility of data for ML training. The data input processor 214 can handle missing values, outliers and/or inconsistencies in the input data 204 (e.g., the production data 206). The data input processor 214 can normalize and/or standardize the input data 204 for data compatibility and/or remove any data bias. For example, the data input processor 214 can apply one or more techniques to the input data 204, such as outlier detection, normalization, and imputation. The data input processor 214 can validate the input data 204 for quality and relevance.
For example, to predict missing data points in the input data 204 (e.g., production data 206), the data input processor 214 can include a data prediction model 218. The data prediction model 218 can correspond to an ML algorithm that has been trained to predict one or more missing data points in a time-series data set, such as one or more time-series data sets of the input data 204. Thus, in some examples, the data prediction model 218 can be referred to as a trained time-series ML algorithm. In some examples, an ML engine 244 can include a trainer 220 that can be programmed to provide the data prediction model 218. The trainer 220 can apply relevant training data (e.g., a subset of this data, known as test data in some instances, or all the data) to the time-series ML algorithm to train the time-series ML algorithm to provide the data prediction model 218 (the trained time-series ML algorithm). As an example, the time-series ML algorithm can include a recurrent neural network (RNN), such as a Long Short-Term Memory Network (LSTM). A LSTM is suited for time-series data, such as production data in hydrocarbon industries, as these algorithms can remember past information and are sensitive to sequence of data. In some examples, the trainer 220 can invoke a ML algorithm retriever 222 to retrieve a ML algorithm. The trainer 220 can apply the relevant training data to the retrieved ML algorithm to produce the data prediction model 218.
In some examples, the data input processor 214 can include an outlier detector 226. The outlier detector 226 can be used by the data input processor 214 to identify and remove anomalies and/or inconsistent data points in the time-series data set. The outlier detector 226 can include a Z-score method or an inter-quartile (IQR) method. In some instances, the data input processor 214 can include a feature generator 228. The feature generator 228 can be used to provide one or more features 230 based on the input data 204, which can be used to provide meaningful insights for a ML algorithm establishing trends. Features in the context of machine learning (ML) are individual measurable properties or characteristics of the phenomena being observed. Essentially, features are input variables that are used by ML models to make predictions or decisions. Features can be derived from the raw data and are selected or engineered to improve the model's performance by providing relevant information that the model can learn from. In supervised ML, the features 230 are distinct from labels. Labels are the data points that the model is attempting to predict, based on the features. For example, in a hydrocarbon production optimization scenario, the features 230 can include variables, such as well pressure, temperature, flow rate, and equipment status, while the label could be the optimal production volume for a given well. Feature engineering is the process of selecting, modifying, or creating new features from the raw data to improve model accuracy. This can involve transforming data into a format that is more easily interpreted by the model, creating new variables that capture important information, or selecting a subset of available variables to reduce complexity and overfitting. While the data input processor 214 primarily processes the production data 206, there is the possibility of handling reservoir data 208 and equipment performance data 210 in similar ways. This implies that features could potentially be extracted not only from production data but also from reservoir characteristics and equipment performance metrics. The validation and preprocessing of production data 206 is also possible. Similar techniques could be applied to reservoir data and equipment performance data. This suggests a comprehensive approach to feature engineering, where multiple sources of data are considered to provide a comprehensive set of features for the ML model. This approach would allow the ML model to learn from a wide range of inputs, potentially leading to more accurate and robust predictions regarding hydrocarbon production optimization. In some examples, the data input processor 214 includes a data normalizer 232. The data normalizer 232 can be used to transform data points and/or variables from the input data 204 (e.g., production data 206) into a standard scale to ensure that the ML engine 244 trains the ML algorithm more efficiently.
The ML engine 244 can receive the processed data 216 and the features 230 for ML training. For example, the ML engine 244 includes a data partitioner 234 to partition (e.g., split or divide) the processed data 216 into training data 236 and test data 238. In some examples, the trainer 220 uses the data partitioner 234 to partition the processed data 216. The data partitioner 234 can time-series split the processed data 216 given this dataset's temporal nature. Unlike random splits, the data partitioner 234 can ensure that a training dataset consists of data up to a certain point in time. The data partitioner 234 can partition time-series data (the processed data 216) into the training data 236 and the test data 238, which can collectively define or form a dataset 240. According to the one or more examples herein, the dataset 240 can be derived from historical production data, reservoir characteristics, equipment capacities, and/or other relevant variables. For example, data from the most recent years can be reserved for validation (as the test data 238), while older data is used for training (as the training data 236). This ensures that the ML model 224 can be trained on a comprehensive dataset that captures various production scenarios, seasonal trends, and/or anomalies. In some examples, the data partitioner 234 can be programmed to use stratified sampling. By using stratified sampling, the data partitioner 234 can provide the training data 236 and the test data 238 with a similar distribution of variables (e.g., one or more of well types, reservoir characteristics, etc.). This partitioning process, especially when it involves time-series split and potentially stratified sampling, is crucial for ensuring that the ML model is trained on a representative sample of the data that captures various production scenarios, seasonal trends, and anomalies. Stratified sampling is used to ensure that the ML model 224 is trained and tested on a representative sample of an entire dataset. The trainer 220 can use the training data 236 to train the ML model 224.
For example, the trainer 220 can use the ML algorithm retriever 222 to retrieve a select ML algorithm from the ML algorithm database 246 for training, which can correspond to the ML model 224, as shown in
In some examples, the ML engine 244 can utilize one or more libraries such as TensorFlow, PyTorch, and/or Scikit-learn to define an ML model architecture. These libraries are equipped with tools and pre-built components for designing models, including various types of NN layers (such as convolutional, recurrent, and dense layers) in TensorFlow and PyTorch. For some ML tasks, Scikit-learn provides an assortment of ready-to-use algorithms with predefined model structures, facilitating rapid development and deployment. The choice of library for the ML engine 244 can depend on the specific needs of the optimization task, such as ML model complexity and computational resource availability.
For example, during a training stage, the trainer 220 can apply the training data 236 to the ML model 224. The ML model 224 can be trained to identify correlations and/or patterns in the training data 236. The ML model 224 can be trained according to a loss function. During the training stage, the trainer 220 can adjust the one or more parameters of the ML model 224 to “learn” from the training data 236. The “learning” process of the ML model 224 can be guided or be based on the loss function. The loss function can quantify how well the ML model 224 is performing (e.g., a lower loss indicates a better performance). During the training stage, the trainer 220 can iteratively adjust one or more parameters (e.g., weights, biases, etc.) of the ML model 224 to minimize the loss function. For example, the trainer 220 can calculate a gradient of the loss with respect to each parameter and update the parameters in a direction that reduces the loss, using an optimization algorithm, for example, Gradient Descent.
In some examples, the loss function can include constraint inputs for consideration of constraints in training of the ML model 224. The trainer 220 can use the constraint data 212 to populate the constraint inputs so that the “learning” of the ML model 224 is based on the constraint data 212. In examples in which the ML model 224 is a NN and is constrained, the ML model can be referred to as a constrained satisfaction neural network (CSNN). Thus, in some examples, the trained ML model 106 is a trained CSNN. In some examples, a constraint optimization technique can be used during training of the ML model 224 to constrain (using the constraint data 212) a prediction of the ML model 224. The neural network's architecture can be designed to consider constraints as part of the learning process. Thus, the ML model 224 in examples in which it is a NN, a learning objective (the loss function) can be adjusted to account for the constraints. For example, the loss function can be modified to include one or more terms that represent the constraints. For example, the loss function can be modified to add one or more penalty terms to the loss function. Example loss functions can include a mean squared error (e.g., for regression tasks) and cross-entropy (e.g., for classification tasks). The inclusion of the one or more penalty terms in the loss function is used to account for well constraints and allows the ML model 224 to consider operational limitations during an optimization process. The ML model 224 is trained according to the modified loss function to create the trained ML model 106, for example, for predicting production volumes.
By way of further example, the ML model 224 is a NN and is configured to optimize hydrocarbon production, and the constraint data 212 indicates that hydrocarbon production is not to exceed a specific limit (e.g., due to storage limitations or regulatory requirements), which can be referred to as a limit constraint. To integrate the limit constraint, the trainer generates a penalty term 220. The trainer 220 modifies the loss function for the ML model 224 and adds the penalty term to the loss function. This term penalizes the ML model 224 when a predicted production level exceeds the specified limit. The penalty term can be a simple linear term or a more complex function (e.g., based on a complexity and information of the constraint data 212) designed to steeply increase the loss as the prediction moves further beyond a constraint threshold. During training, the NN learns to minimize the modified loss function, which now includes the penalty for violating the limit constraint. As a result, the NN not only learns to make accurate predictions but also to ensure that these predictions adhere to specified production limits.
In some examples, the trainer 220 can use an ensemble learning technique. Ensemble learning is a technique in ML where multiple ML models (often called “learners” or “base models”) are trained to solve a same problem and then combined to get better results. The premise behind ensemble learning is that by combining the predictions of multiple models, one can often achieve better accuracy, reliability, and performance than with a single model alone. The ML models within an ensemble can be of the same type (homogeneous ensembles) or different types (heterogeneous ensembles). The trainer 220 can use the ensemble learning technique to train multiple ML models (which can be of a same or different types) based on the training data 236 (e.g., different subsets of the training data 236). Predictions from individual ML algorithms can be combined (or aggregated) to provide or produce a final prediction result (each production volume for each, such as the wells 116). The aggregation can be done through various methods, such as voting for classification tasks or averaging for regression tasks. Thus, in some examples, the ML model 224 is an ensemble ML model that combines predictions from multiplied subset ML models to produce the final prediction result.
In some examples, during a validation stage, the trainer 220 can adjust (tune) one or more hyper-parameters of the ML model 224 to improve its performance (e.g., optimize the ML algorithms' ability to accurately predict an outcome and/or identify one or more patterns in data). In some examples, during the validation stage, parameters, weights, and/or the biases of the ML model 224 can be fine-tuned. After an ML model is trained with a set of hyper-parameters, its performance is evaluated on a separate dataset, known as the validation set. Hyper-parameters are external settings and/or configurations that govern a training process. These are not learned from the training data 236 but are set prior to the training process. Examples can include a learning rate, batch size, number of epochs, and architecture choices (e.g., a number of layers in a neural network). Hyper-parameters can influence the training process and the ML algorithm's ability to learn effectively, but these parameters are not adjusted by the model itself through the training process. Instead, hyper-parameters can be tuned through a separate process (using the test data 238) to find the most effective values.
The trainer 220 can be programmed with one or more hyper-parameter tuning techniques (or options), such as grid search, random search, Bayesian optimization, automated ML learning (AutoML), and/or an evolutionary algorithm to identify one or more optimal hyper-parameters. Grid search can be used to systematically work through multiple combinations of hyper-parameter tunes, cross-validating as it goes to determine which tune gives the best performance. Random search can be used to randomly sample from a distribution of hyper-parameters. Bayesian optimization uses a probability to find a minimum of a function. Using Bayesian optimization, the trainer 220 can build a probabilistic model of the function and use it to select one or more hyper-parameters to evaluate in an objective function. In some examples, the trainer 220 can use evolutionary algorithms to find the one or more optimal hyper-parameters, which uses mechanisms inspired by biological evolution, such as reproduction, mutation, recombination, and selection. AutoML can be used in some instances by the trainer 220 to automate a process of identifying the one or more optimal hyper-parameters.
The trainer 220 during the validation phase can tune the one or more hyper-parameters of the ML model 224 based on a performance metric for the ML model 224. The trainer 220 can compute one or more performance metrics for the ML model 224. The one or more (error) performance metrics can include Root Mean Square Error (RMSE) for regression tasks and Mean Absolute Error (MAE), a coefficient of determination (R{circumflex over ( )}2), accuracy, precision, recall, F1 score, etc. The one or more performance metrics provide feedback to the trainer 220 on how well the ML model 224 is learning and generalizing from the training data 236. Based on this feedback, the trainer 220 can adjust the one or more hyper-parameters or training process, and the ML model 224 can be retrained and reevaluated. Accordingly, the trainer 220 can evaluate an accuracy of the ML model 224 (or each ML model). For example, the trainer 220 can determine how accurate predictions of the ML model 224 are based on unseen data (the test data 238). Thus, the trainer 220 can apply the test data 238 to the ML model 224 to evaluate how accurate the model's predictions are (e.g., relative to a threshold, or some type of criteria). The accuracy of the model's predictions can be interpreted and used to drive generation of the trained ML model 106.
In some examples, the trainer 220 can use a cross-validation technique. Cross-validation is a technique for evaluating ML models by training several ML models on subsets of the available input data and evaluating the trained ML models on a complementary subset of the data. For example, the trainer 220 can use k-fold cross-validation to assess performance of each trained ML model. Cross-Validation helps in mitigating overfitting and provides a more accurate measure of a model's predictive performance. The k-fold cross-validation method can be used by the trainer 220 to perform cross-validation. In k-fold cross-validation, the trainer 220 can split input data into k subsets of data (also known as folds). The trainer 220 can train the ML model 224 on all but one (k−1) of the subsets, and then evaluate the model on the subset that was not used for training. This process can be repeated k times, with a different subset reserved for evaluation (and excluded from training) each time.
In some instances, for example, when multiple ML models are being tested and compared, the trainer 220 can employ a ranking technique to select or identify a ML model from multiple ML models. For example, the trainer 220 can compute performance metrics (e.g., as disclosed herein), in some instances, obtained from the cross-validation technique. The trainer 220 can rank the multiple ML models based on performance metrics. For instance, in a regression problem, the multiple ML models can be ranked by a computed RMSE for the multiple ML models, with lower values indicating better performance. The trainer 220 can generate and maintain a leaderboard. The leaderboard can track the performance of various ML models over time. The trainer 220 can use the leaderboard to identify a best performing ML model (as the trained ML model 106). The leaderboard can also be used to monitor how model performance changes with different modifications or when trained with new data. The ML model generator 202 can be configured to support contiguous data integration. As new data becomes available, the trained ML model 106 can be retrained and retested. This ensures that the models remain relevant and accurate as production scenarios evolve.
In view of the foregoing structural and functional features described above, example methods will be better appreciated with reference to
At 310, the collected data can be analyzed to understand its structure, relationships between variables, and/or potential outliers and/or anomalies. At 310, features can be created or generated from the collected data to improve a performance of the ML model 224. Given the temporal nature of oil and gas production data, a time-series split can be employed at 312. Unlike random splits, this method ensures that the training set consists of data up to a certain time point, and the testing set consists of data after that point. This approach respects the chronological order of data and is particularly useful for forecasting tasks. To ensure that both training and testing datasets have a similar distribution of key variables (e.g., well types, reservoir characteristics), stratified sampling can be used. This ensures that the model is trained and tested on a representative sample of the entire dataset. At 314, the ML model 224 is selected based on the problem and the collected data. A modular framework can be selected and used to allow for integration of various ML models. The modular framework can support both supervised learning models (for prediction tasks) and unsupervised models (for clustering and pattern recognition). A library supporting the framework can include TensorFlow or PyTorch due to their flexibility, scalability, and/or support for deep learning architectures. Scikit-learn can be used as well. The choice of library can be based on specific requirements of an optimization task and an available computational infrastructure.
At 316, the ML model 224 can be trained using the training dataset. The training dataset can be derived from one or more historical production data, reservoir characteristics, equipment capacities, and other relevant variables. Data from most recent years can be reserved for validation and testing, while the older data is used for training. This ensures that the ML model 224 is trained on a comprehensive dataset that captures various production scenarios, seasonal trends, and anomalies. At 318, hyper-parameters of the ML model 224 can be adjusted to improve its performance using one or more hyper-parameter tuning options, as disclosed herein. At 320, the ML model 224 can be validated and tested using a separate set of data. At 322, one or more error metrics can be calculated to assess an accuracy of one or more predictions provided by the ML model 224. At 324, one or more GUIs (e.g., by the GUI generator 132, as shown in
At 328, the ML model 224 can provide one or more plans for optimization of hydrocarbon production of a reservoir. At 330, a select plan from one or more plans can be implemented for the reservoir. At 332, a production system can be monitored (e.g., in real time) and the select plan can be adjusted as conditions change as the ML model 224 is being trained. Monitoring a production system in the context of adjusting the selected plan as conditions change (at step 332) pertains to monitoring the reservoir and the associated production infrastructure, which includes the wells, pipelines, and equipment used for hydrocarbon extraction and processing. In the broader context of hydrocarbon production allocation, the “production system” can encompass all components involved in extracting hydrocarbons from the reservoir and bringing them to the surface for processing and sale.
In the method 300, monitoring the production system and adjusting the selected plan as conditions change involves continuously collecting data from these components to assess the current state of the production operation. This data can include real-time production data, equipment performance metrics, and reservoir conditions. The allocation system, equipped with a trained machine learning model, uses this data to dynamically optimize hydrocarbon production allocation, ensuring that production volumes are adjusted in response to changing conditions in the reservoir and the broader production system. Furthermore, even within a single reservoir, different production allocation strategies (plans) can be considered and evaluated to determine a most effective approach for maximizing hydrocarbon extraction while minimizing costs and adhering to regulatory constraints. In some examples, scenarios or strategies under consideration or simulation (e.g., multiple plans) can be adapted to changing conditions within the reservoir and the broader production system. The reservoir's behavior and production system's performance can vary over time due to numerous factors, including changes in reservoir pressure, the introduction of new wells, depletion of existing wells, and fluctuating market demands. Monitoring multiple plans allows for a flexible approach to quickly adapt the production strategy as these conditions change, ensuring that the operation remains optimized for current circumstances. For example, an adjustment of the ML model after implementing and adjusting the plan is part of a continuous improvement cycle. Initially, a plan is selected and implemented based on the current predictions and insights from the machine learning model. As the plan is executed, real-time data is collected to monitor its performance. The subsequent adjustment of the model with new data serves several purposes: refinement, adaptation and optimization. The model is refined and improved with the latest data, enhancing its predictive accuracy and decision-making capabilities for future allocations. The model adapts to changes in the reservoir's behavior, production system performance, and external factors (e.g., market conditions) that were not fully captured or anticipated in the initial plan. Continuous model adjustment ensures that the production allocation strategies remain optimal over time, accounting for new insights, operational changes, and evolving objectives.
Accordingly, the process of monitoring multiple plans and adjusting the model after implementing a plan is integral to a dynamic and adaptive approach to hydrocarbon production allocation. It allows for a proactive and data-driven management of the production system, ensuring that strategies are always aligned with the latest conditions and insights for optimal performance. This iterative cycle of implementation, monitoring, and adjustment facilitates continuous optimization of hydrocarbon production, leveraging machine learning models to respond effectively to the complex and changing nature of reservoir and production system dynamics.
At 334, the performance of the plan can be monitored and the ML model 224 can be adjusted (e.g., by the method 300 returning back to step 316) based on the performance monitoring. At 336, once the model's performance is satisfactory, the ML model 224 can be deployed for real-world use as the trained ML model 106.
At 338, regular maintenance and updates can be performed to ensure that the allocation system 102 continues to operate effectively. The maintenance mentioned in the context of ensuring that the allocation system 102 continues to operate effectively can refer to both the system and the ML model For example, the maintenance can involve ensuring that all components of the allocation system, including hardware, software, data acquisition systems, and user interfaces, are functioning correctly. In some examples, the maintenance can include updating software to fix bugs, improve security, and enhance performance, replacing and/or repairing hardware components as needed. System maintenance can include in some instances ensuring that the system's integration with external data sources, production equipment, and other systems remains seamless and efficient. This could include updating APIs, improving data processing pipelines, and ensuring compatibility with other systems.
ML model maintenance can include periodically retraining the trained ML model 106 with new data to ensure its predictions remain accurate and relevant. As new production data, reservoir characteristics, and equipment performance data become available, the model needs to learn from this data to adapt to changes in the reservoir's behavior and production system's performance. Maintenance of the trained ML model 106 also includes tuning hyperparameters, updating the model architecture if necessary, and addressing any drift in the model's performance over time. This ensures that the trained ML model 106 continues to provide optimal production allocation strategies based on the most current data At 340, the method 300 can end. In some examples, the method 300 can include one or more routines for continuous learning and improvement. The trained ML model 106 can be updated periodically using new production data to capture evolving patterns and optimize allocation strategies. Incorporate feedback from operators and incorporate domain expertise can be used to refine the trained ML model 106 to provide more accurate predictions.
For example, the allocation system 102 can be used for a portfolio of oil wells, such as the wells 116. The allocation system 102 can utilize the production data 122, reservoir characteristics (the reservoir data 126), equipment capacities (the equipment performance data 124), export limitations (e.g., the constraint data 130). The allocation system 102 can analyze the data to predict performance and optimize production allocation. The allocation system 102 can consider one or more factors such as reservoir permeability, historical flow rates, equipment capabilities, export contracts, and market demand. The allocation system 102 can provide an optimized plan (the plan 104) that maximizes production rates while respecting contractual obligations, equipment capacities, and/or transportation limitations. The data monitoring system 114 can continuously collect data for the wells 116, allowing the allocation system 102 to adjust and optimize allocation dynamically. Operators and decision-makers can access a user interface (e.g., provided by the GUI generator 132 on the output device 134) that presents the optimized plan, real-time performance data, and key performance indicators, enabling them to make informed decisions and maximize production efficiency. In some examples, the specific implementation details, choice of algorithms, and integration steps can vary based on the specific requirements, data availability, and technical constraints of the allocation system 102.
In some instances, the allocation system 102 can receive production data 122 that identifies each well by an identifier, such as Well1, Well2, Well2 and so on until Well20. The production data 122 can identify a monthly production rate for each well over a year (12 months).
The allocation system 102 can receive the equipment performance data 124. The equipment performance data 124 can characterize equipment capacities for each well and consider factors such as pump rates, compressor capacities, and pipeline capacities.
The allocation system 102 can continuously collect or receive real-time data from the data acquisition system 152, such as variables that can include, but not limited to, pressure, temperature, and flow rates. The allocation system 102 can use this real-time data to monitor a performance of each well (e.g., the wells 116) and detect any deviations or anomalies. In some examples, if a well's performance starts to decline or shows signs of potential equipment failure, the allocation system 102 can generate an alert and adjust the plan 104 accordingly. The alert can be generated by the optimizer 128 and be communicated to one or more devices and/or systems for a user. In some instances, the alert is an audible or a visual alert. Thus, the alert in some implementations can be provided on the output device 134. By way of further example, if the real-time data indicates that Well3 is experiencing a drop in flow rates, the allocation system 102 can allocate more production volume to other wells with higher performance to compensate for the shortfall. By dynamically adjusting the production allocation, the allocation system 102 maximizes production rates while ensuring compliance with equipment capacities, export limitations, and contractual obligations.
In yet another example, the allocation system 102 is used to optimize hydrocarbon production of five wells (e.g., the wells 116, as shown in
As disclosed herein, the allocation system 102 can receive relevant data as input, run an optimization algorithm, and analyze the results to determine the effectiveness of the solution in maximizing production rates while considering equipment capacities, reservoir characteristics, and other constraints. For example, monthly production data, equipment capacities, reservoir characteristics, and other assumed constraints can be input into the allocation system 102 can receive. The optimizer 128 of allocation system 102, which in some instances can correspond to an optimization algorithm, can be used to analyze the input data to determine an optimal plan. The optimization algorithm can include mathematical programming or an evolutionary algorithm. The output of the optimization algorithm (the optimizer 128) can be evaluated to determine the effectiveness of the solution in maximizing production rates while adhering to the assumed constraints. This analysis can include examining key performance indicators, such as one or more of a total production volume, utilization of equipment capacities, adherence to contractual obligations, and overall production efficiency. In some instances, the results (the plan 104) obtained by the allocation system 102 can be compared with a baseline scenario (a baseline or existing plan), or a manually determined plan. The comparison can include using a simple equal distribution of production volumes among wells.
In some examples, the allocation system 102 can be validated against real-world scenarios so that an effectiveness of the system can be determined. This can involve testing the allocation system 102 on historical production records and comparing the plan with the actual production outcomes. By following this process, the effectiveness of the allocation system 102 can be assessed in maximizing production rates while considering the assumed constraints. The system's ability to analyze multiple variables, account for equipment capacities, reservoir characteristics, and contractual obligations, and optimize production allocation can lead to improved operational efficiency and resource utilization in real-world hydrocarbon production environments.
Examples of Using the Allocation System with Linear Programming and/or Evolutionary Algorithms
In some examples, to analyze the input data (the well performance data 120 and the constraint data 130 in some instances) and find an optimal plan (the plan 104), the allocation system 102 can use an optimization algorithm (e.g., the optimizer 128). The optimization algorithm can use the trained ML model 106, a mathematical programming algorithm, and/or evolutionary algorithm. For example, the optimizer 128 can include a mathematical programming technique (or algorithm), such as linear programming or mixed-integer programming to formulate and solve optimization problems using well-defined objectives and constraints. These algorithms use mathematical models to optimize production allocation by maximizing production rates while considering equipment capacities, reservoir characteristics, export limitations, and contractual obligations. By formulating the problem as a mathematical program, the optimizer 128 can identify the optimal plan that meets the specified objectives.
In some examples, the optimizer 128 can include an evolutionary algorithm. Evolutionary algorithms, inspired by natural evolutionary processes, are optimization techniques that involve populations of potential solutions. These algorithms iteratively improve the solutions over generations through mechanisms like mutation, crossover, and selection. In the context of hydrocarbon production allocation, the evolutionary algorithm can be programmed to explore different allocation strategies and gradually converge towards an optimal solution (the optimal plan) that maximizes production rates while respecting the constraints. The evolutionary algorithm can be programmed to handle complex and nonlinear problems and is particularly useful when the solution space is large and discontinuous, such as in hydrocarbon production applications.
By utilizing mathematical programming or an evolutionary algorithm, the allocation system 102 can effectively analyze the input data (the well performance data 120 and the constraint data 130 in some examples) and search for the plan. These algorithms can be used to provide a systematic approach to optimize the hydrocarbon production allocation decisions and enable the allocation system 102 to consider multiple variables, constraints, and/or objectives simultaneously. A choice of the specific optimization algorithm can depend on the complexity of the problem, the available data, and the desired trade-offs between solution quality and computational efficiency.
In some examples, the optimizer 128 employs the trained ML model 106 to provide a first plan, the mathematical programming algorithm to provide a second plan, and the evolutionary algorithm to provide a third plan. The plan adjuster 136 can select one of the first, second, and third plans based on the user data 138 and/or other selection criteria.
In an example, production rates and equipment capacities for 20 wells is known (e.g., Well1 to Well20). The allocation system 102 can be employed to find an optimal plan that maximizes a total production while adhering to equipment capacities and maintaining a fair distribution among the 20 wells. For example, the allocation system 102 can receive the production data 122 for the 20 wells, and thus the production rates. The allocation system 102 can receive the equipment performance data 124 specifying equipment capacities for each well, such as pump rates, compressor capacities and/or pipeline capacities for each well. The allocation system 102 can receive constraints, such as export limitations, reservoir characteristics, and contractual obligations.
The optimizer 128 of the allocation system 102 can formulate a linear programming model. For example, the optimizer 128 can define decision variables, for example, let X1, X2, X3, . . . , X20 represent a production allocation for Well1, Well2, Well3, . . . , Well20, respectively. The optimizer 128 can specify or set an objective function, which is to maximize a total production, which is Z=X1+X2+X3+ . . . +X20. The optimizer 128 can apply constraints (e.g., as specified by the constraint data 130) to the linear programming model to ensure that the production allocations for each well do not exceed respective equipment capacities and consider other constraints such as export limitations and contractual obligations. The optimizer 128 can include or use linear programming solver or optimization route to solve the formulated linear programming model and find optimal values for X1, X2, X3, . . . , X20 that maximize the objective function (total production) while satisfying the constraints to provide the optimized plan (the plan 104). The optimized plan can be analyzed to determine how the production volumes are allocated among the 20 wells. In some examples, the optimized plan can be evaluated to determine whether the solution (the optimized plan) adheres to the equipment capacities, export limitations, and other specified constraints. In some examples, a total production achieved with the optimized hydrocarbon allocation plan can be compared with alternative hydrocarbon production allocation plans (or strategies) or baseline scenarios to evaluate the effectiveness of the optimization.
In another example, five oil wells (Well1 to Well5) with known production rates and equipment capacities are employed. The objective is to find the optimal plan that maximizes the total production while adhering to the equipment capacities and maintaining a fair distribution among the wells. The input data to the allocation system 102 can include production rates of the five wells: Well1 (1000 bbl/day), Well2 (800 bbl/day), Well3 (1200 bbl/day), Well4 (900 bbl/day), Well5 (1000 bbl/day), equipment capacities: pump capacities, compressor capacities, and pipeline capacities for each well, and/or other constraints: export limitations, reservoir characteristics, and contractual obligations. The optimizer 128 can formulate the linear programming model. For example, the optimizer 128 can define decision variables, for example, use X1, X2, X3, X4, X5 to represent the production allocation for Well1, Well2, Well3, Well4, Well5, respectively. The optimizer 128 can set or define the objective function that is to maximize the total production, which is Z=X1+X2+X3+X4+X5. The optimizer 128 can apply constraints to ensure that the production allocations for each well do not exceed their respective equipment capacities and consider other constraints such as export limitations and contractual obligations. The optimizer 128 can solve the linear programming model. Using a linear programming solver or optimization routine, the optimizer 128 can solve the formulated linear programming model and find the optimal values for X1, X2, X3, X4, X5 that maximize the objective function (total production) while satisfying the constraints. The optimized plan can be evaluated to determine how the production volumes are allocated among the wells. The evaluation can include determining whether the solution adheres to the equipment capacities, export limitations, and other specified constraints. The total production achieved with the optimized plan can be compared with alternative allocation strategies or baseline scenarios to evaluate the effectiveness of the optimization.
In some examples, respective equipment capacities and production rates are received by the allocation system 102 for five wells (Well1, Well2, Well3, Well4, Well5. The equipment capacities can include: Well1: 1500 bbl/day, Well2: 1000 bbl/day, Well3: 2000 bbl/day, Well4: 1200 bbl/day, and Well5: 1500 bbl/day. The production rates can include: Well1: 1000 bbl/day, Well2: 800 bbl/day, Well3: 1200 bbl/day, Well4: 900 bbl/day, and Well5: 1000 bbl/day.
Accordingly, by utilizing linear programming, the allocation system 102 can find the optimal plan that maximizes total production while respecting the equipment capacities and other constraints. The allocation system 102 can handle more complex scenarios with additional constraints, multiple objectives, and larger numbers of wells, enabling operators to make informed decisions and enhance production efficiency in the hydrocarbon production industry.
An Example of an Effectiveness of the Allocation SystemFor example, an effectiveness of the allocation system 102 for hydrocarbon production allocation can be validated as follows in some instances. Historical production data from multiple wells can be gathered. Reservoir characteristics such as permeability and oil composition can be collected. Equipment capacities, pump rates, compressor capacities, and pipeline capacities can be recorded. Export limitations and market demand can be set. The allocation system 102 can be provided with the data and constraints to find the optimal plan according to one or more examples, as disclosed herein. The results can be analyzed and compared with a baseline (or existing) allocation strategy (plan). By using the allocation system 102 production rates can be significantly improved, such as by 15% compared to the baseline allocation strategy.
Thus, the allocation system 102 effectively allocated production volumes while considering reservoir characteristics, equipment capacities, and/or export limitations. The optimized plan maximized production efficiency and adhered to contractual obligations.
The allocation system 102 provides one or more technical advantages over existing methods in the hydrocarbon production field. This allocation system 102 incorporates one or more AI algorithms, including ML and optimization techniques, to analyze complex production data and refine the allocation of production resources. Such algorithms are adept at understanding the nuanced interconnections within production systems, managing the unpredictability of reservoir behavior, and adjusting to shifts in operational conditions. This leads to more precise and effective allocation decisions, setting this invention apart from the limitations of existing methods. For example, the allocation system 102 can process a wide array of input variables, ranging from production data across numerous wells to details about reservoir characteristics, equipment capacities, export constraints, and historical production records. This broad and inclusive approach to data analysis enables a more informed and data-driven optimization process. Previous methods are limited as such methods rely on simplistic data analyses or limited inputs, resulting in less accurate and effective allocation strategies. Furthermore, the allocation system 102 utilizes real-time monitoring. By continuously collecting data from wells and sensors, the allocation system 102 can dynamically update and optimize hydrocarbon allocation plans in response to changing production conditions. This real-time adaptability ensures that production rates are maximized, constraints are adhered to, and resources are optimally utilized, addressing a gap in prior art methods which often lacked the capability for timely adjustments. The allocation system 102 also introduces multi-objective optimization, tackling the challenge of balancing various objectives like maximizing production rates, optimizing asset utilization, minimizing downtime, and meeting contractual obligations. This contrasts with previous methods that focused solely on maximizing production rates without considering the broader spectrum of operational and contractual needs.
Furthermore, the allocation system 102 offers scalability. The allocation system 102 is designed to manage large-scale production infrastructures encompassing a significant number of wells, facilities, and assets, the invention is scalable and computationally efficient. This makes it well-suited for real-world hydrocarbon operations, overcoming the scalability and practicality challenges faced by prior art methods. By addressing these deficiencies, the allocation system 102 offers enhanced optimization accuracy, real-time adaptability, comprehensive multi-objective optimization, and improved decision-making capabilities. The allocation system 102 can be used in practical implementations in large-scale hydrocarbon operations, offering a suite of benefits that contribute to better production allocation decisions, increased operational efficiency, optimized resource utilization, and elevated profitability. The applications of the allocation system 102 can be broad, extending across oil and gas operators, asset management companies, consulting firms, service providers, reservoir engineering, and planning sectors, as well as regulatory compliance and research and development.
Additional ExamplesIn an example, an oil company operates multiple wells, each with varying production capabilities, equipment efficiencies, and reservoir characteristics. The company wants to optimize its production allocation to maximize output while minimizing costs and adhering to regulatory requirements. The company can develop an ML model using historical data, such as disclosed herein. The historical data can include historical production data from all wells, reservoir performance metrics and/or historical equipment maintenance and failure rates. The ML model is trained to predict production volumes based on the historical data. Using the initial ML model, the company can run simulations to predict outcomes under various scenarios, such as a significant drop in oil prices, introduction of new environmental regulations limiting emissions, and/or an equipment upgrade that could increase production efficiency. The output of these simulations can be provided as new data points, such as adjusted production volumes in response to price changes, required operational changes to comply with new regulations, and/or potential increases in production due to equipment upgrades. The ML model can incorporate these new data points to learn from the simulated outcomes. For instance, the ML model can learn how to relocate production to maximize profitability during low-price periods, what production adjustments keep operations within regulatory limits, and/or which equipment upgrades result in the best return on investment. The company can use the updated predictions to make informed decisions, such as choosing to temporarily cap production on less efficient wells during low-price periods, implement new operational protocols to meet environmental standards, and/or prioritize equipment upgrades that the model predicts will yield significant efficiency gains. As real-world data comes in, the data is fed back into the ML model, further refining its predictive capabilities. The company continues to run new simulations with the updated model, creating a cycle of continuous improvement and learning.
While the disclosure has described several exemplary embodiments, it will be understood by those skilled in the art that various changes can be made, and equivalents can be substituted for elements thereof, without departing from the spirit and scope of the invention. In addition, many modifications will be appreciated by those skilled in the art to adapt a particular instrument, situation, or material to embodiments of the disclosure without departing from the essential scope thereof. Therefore, it is intended that the invention is not limited to the particular embodiments disclosed, or to the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
In view of the foregoing structural and functional description, those skilled in the art will appreciate that portions of the embodiments may be embodied as a method, data processing system, or computer program product. Accordingly, these portions of the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware, such as shown and described with respect to the computer system of
In this regard,
Computer system 2100 includes processing unit 2102, system memory 2104, and system bus 2106 that couples various system components, including the system memory 2104, to processing unit 2102. Dual microprocessors and other multi-processor architectures also can be used as processing unit 2102. System bus 2106 may be any of several types of bus structure including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. System memory 2104 includes read only memory (ROM) 2110 and random access memory (RAM) 2112. A basic input/output system (BIOS) 2114 can reside in ROM 2112 containing the basic routines that help to transfer information among elements within computer system 2100.
Computer system 2100 can include a hard disk drive 2116, magnetic disk drive 2118, e.g., to read from or write to removable disk 2120, and an optical disk drive 2122, e.g., for reading CD-ROM disk 2124 or to read from or write to other optical media. Hard disk drive 2116, magnetic disk drive 2118, and optical disk drive 2122 are connected to system bus 2106 by a hard disk drive interface 2126, a magnetic disk drive interface 2128, and an optical drive interface 2130, respectively. The drives and associated computer-readable media provide nonvolatile storage of data, data structures, and computer-executable instructions for computer system 2100. Although the description of computer-readable media above refers to a hard disk, a removable magnetic disk and a CD, other types of media that are readable by a computer, such as magnetic cassettes, flash memory cards, digital video disks and the like, in a variety of forms, may also be used in the operating environment; further, any such media may contain computer-executable instructions for implementing one or more parts of embodiments shown and disclosed herein. A number of program modules may be stored in drives and RAM 2110, including operating system 2132, one or more application programs 2134, other program modules 2136, and program data 2138. In some examples, the application programs 2134 can include one or more modules (or block diagrams), or systems, as shown and disclosed herein. Thus, in some examples, the application programs 2134 can include the allocation system 102, as shown in
A user may enter commands and information into computer system 2100 through one or more input devices 2140, such as a pointing device (e.g., a mouse, touch screen), keyboard, microphone, joystick, game pad, scanner, and the like. These and other input devices are often connected to processing unit 2102 through a corresponding port interface 2142 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, serial port, or universal serial bus (USB). One or more output devices 2144 (e.g., display, a monitor, printer, projector, or other type of displaying device) is also connected to system bus 2106 via interface 2146, such as a video adapter.
Computer system 2100 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 2148. Remote computer 2148 may be a workstation, computer system, router, peer device, or other common network node, and typically includes many or all the elements described relative to computer system 2100. The logical connections, schematically indicated at 2150, can include a local area network (LAN) and a wide area network (WAN). When used in a LAN networking environment, computer system 2100 can be connected to the local network through a network interface or adapter 2152. When used in a WAN networking environment, computer system 2100 can include a modem, or can be connected to a communications server on the LAN. The modem, which may be internal or external, can be connected to system bus 2106 via an appropriate port interface. In a networked environment, application programs 2134 or program data 2138 depicted relative to computer system 2100, or portions thereof, may be stored in a remote memory storage device 2154.
Although this disclosure includes a detailed description on a computing platform and/or computer, implementation of the teachings recited herein are not limited to only such computing platforms. Rather, embodiments of the present disclosure are capable of being implemented in conjunction with any other type of computing environment now known or later developed.
Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models (e.g., software as a service (SaaS, platform as a service (PaaS), and/or infrastructure as a service (IaaS)) and at least four deployment models (e.g., private cloud, community cloud, public cloud, and/or hybrid cloud). A cloud computing environment can be service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
In some examples, the cloud computing environment 2200 can provide one or more functional abstraction layers. It is to be understood that the cloud computing environment 2200 need not provide all of the one or more functional abstraction layers (and corresponding functions and/or components), as disclosed herein. For example, the cloud computing environment 2200 can provide a hardware and software layer that can include hardware and software components. Examples of hardware components include: mainframes; RISC (Reduced Instruction Set Computer) architecture based servers; servers; blade servers; storage devices; and networks and networking components. In some embodiments, software components include network application server software and database software.
In some examples, the cloud computing environment 2200 can provide a virtualization layer that provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients. In some examples, the cloud computing environment 2200 can provide a management layer that can provide the functions described below. For example, the management layer can provide resource provisioning that can provide dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment. The management layer can also provide metering and pricing to provide cost tracking as resources are utilized within the cloud computing environment 2200, and billing or invoicing for consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. The management layer can also provide a user portal that provides access to the cloud computing environment 2200 for consumers and system administrators. The management layer can also provide service level management, which can provide cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning and fulfillment can also be provided to provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA.
In some examples, the cloud computing environment 2200 can provide a workloads layer that provides examples of functionality for which the cloud computing environment 2200 may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation; software development and lifecycle management; virtual classroom education delivery; data analytics processing; and transaction processing. Various embodiments of the present disclosure can utilize the cloud computing environment 2200.
Embodiments disclosed herein include:
A. A method comprising: receiving, at an allocation system, well performance data for one or more wells and constraints data; predicting, using an ML model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data; and adjusting a production volume of the one or more wells based on the predicted production volume.
B. A system comprising: one or more computing platforms configured to: receive input data for training an ML algorithm, the input data comprising historical production data, historical reservoir data, and historical equipment performance data; preprocess the input data to provide processed input data for training the ML algorithm; train the ML algorithm to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data; and employ the trained ML model to adjust a production volume of the one or more wells based on the predicted production volume.
C. A method comprising: receiving, at an ML training system, input data for training an ML algorithm, the input data comprising historical production data, historical reservoir data, and historical equipment performance data; preprocessing, using a data input processor of the ML training system, the input data to provide processed input data for training the ML algorithm; modifying a loss function to include one or more penalty terms to account for one or more constraints for one or more wells; training, using an ML engine of the ML training system, the ML algorithm according to the modified loss function to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data; outputting, using the ML training system, the trained ML model for use in an allocation system in response to the training; receiving, at an allocation system, well performance data for one or more wells and constraints data; predicting, using the trained ML model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data; simulating, using a simulator, a reservoir model to evaluate an outcome of the predicted production volume for the one or more wells; updating, using the allocation system, the predicted production volume for the one or more wells based on the simulation of the reservoir model; and adjusting a production volume of the one or more wells based on the predicted production volume.
Each of embodiments A through C may have one or more of the following additional elements in any combination: Element 1: repeating the receiving, predicting, and adjusting steps to optimize the production volume of the one or more wells over time; Element 2: simulating, using a simulator, a reservoir model to evaluate an outcome of the predicted production volume for the one or more wells; and updating, using the allocation system, the predicted production volume for the one or more wells based on the simulation of the reservoir model, the repeating comprising the simulating and updating steps; Element 3: generating a number of production volumes for the one or more wells; and selecting one of the production volumes based on user input or selection criteria for adjusting the production volume; Element 4: wherein the well performance data comprises production data, reservoir data, and equipment performance data; Element 5: wherein the predicted production volume is a first predicted production volume, the method further comprising: predicting using a linear programming model a second predicted production volume for the one or more wells based on the well performance data and the constraints data; predicting using an evolutionary algorithm a third predicted production volume for the one or more wells based on the well performance data and the constraints data; and selecting one of the first, second, and third predicted production volumes for adjusting the production volume of the one or more wells; Element 6: receiving input data for training the ML model, the input data comprising historical production data, historical reservoir data, and historical equipment performance data; and preprocessing the input data to provide processed input data for training the ML model; Element 7: wherein the ML model is a first ML model, and the preprocessing comprises predicting using a data prediction model missing data points in the historical production data, the data prediction model corresponding to a second ML model; Element 8: wherein the second ML model is an LSTM; Element 9: wherein the preprocessing comprises identifying and removing using an outlier detector anomalies and/or inconsistent data points in the historical production data; Element 10: wherein the outlier detector comprises a Z-score method or an IQR method; Element 11: wherein the preprocessing comprises generating one or more features based on the historical production data, the one or more features being used in training the ML model; Element 12: partitioning, using a data partitioner, the processed data 216 into a training dataset for training the ML model and a testing dataset for validating the ML model; Element 13: modifying a loss function to include one or more penalty terms based on the constraints data; and training the ML model according to the loss function; Element 14: selecting an ML algorithm from a number of ML algorithms for use as the ML model; Element 15: the ML model is an CSNN; Element 16: wherein the ML model is a first trained ML model, and the one or more computing platform are configured to preprocess to: predict using a data prediction model missing data points in the historical production data, the data prediction model corresponding to a second trained ML model; identify and remove using an outlier detector anomalies and/or inconsistent data points in the historical production data; and generate one or more features based on the historical production data, the one or more features being used in training the ML model; and Element 17: wherein the predicted production volume is a first predicted production volume, the method further comprising: predicting using a linear programming model a second predicted production volume for the one or more wells based on the well performance data and the constraints data; predicting using an evolutionary algorithm a third predicted production volume for the one or more wells based on the well performance data and the constraints data; and selecting one of the first, second, and third predicted production volumes, the simulator being provided with the selected predicted production volume for simulation.
The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, for example, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “contains”, “containing”, “includes”, “including,” “comprises”, and/or “comprising,” and variations thereof, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. In addition, the use of ordinal numbers (e.g., first, second, third, etc.) is for distinction and not counting. For example, the use of “third” does not imply there must be a corresponding “first” or “second.” Also, as used herein, the terms “coupled” or “coupled to” or “connected” or “connected to” or “attached” or “attached to” may indicate establishing either a direct or indirect connection and is not limited to either unless expressly referenced as such. Furthermore, to the extent that the terms “includes,” “has,” “possesses,” and the like are used in the detailed description, claims, appendices and drawings such terms are intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim. The term “based on” means “based at least in part on.” The terms “about” and “approximately” can be used to include any numerical value that can vary without changing the basic function of that value. When used with a range, “about” and “approximately” also disclose the range defined by the absolute values of the two endpoints, e.g., “about 2 to about 4” also discloses the range “from 2 to 4.” Generally, the terms “about” and “approximately” may refer to plus or minus 5-10% of the indicated number.
What has been described above includes mere examples of systems, computer program products and computer-implemented methods. It is, of course, not possible to describe every conceivable combination of components, products and/or computer-implemented methods for purposes of describing this disclosure, but one of ordinary skill in the art can recognize that many further combinations and permutations of this disclosure are possible. The descriptions of the various embodiments have been presented for purposes of illustration but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
Claims
1. A method comprising:
- receiving, at an allocation system, well performance data for one or more wells and constraints data;
- predicting, using a machine learning (ML) model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data; and
- adjusting a production volume of the one or more wells based on the predicted production volume.
2. The method of claim 1, further comprising repeating the receiving, predicting, and adjusting steps to optimize the production volume of the one or more wells over time.
3. The method of claim 2, further comprising
- simulating, using a simulator, a reservoir model to evaluate an outcome of the predicted production volume for the one or more wells; and
- updating, using the allocation system, the predicted production volume for the one or more wells based on the simulation of the reservoir model, the repeating comprising the simulating and updating steps.
4. The method of claim 1, wherein the predicting comprises:
- generating a number of production volumes for the one or more wells; and
- selecting one of the production volumes based on user input or selection criteria for adjusting the production volume.
5. The method of claim 1, wherein the well performance data comprises production data, reservoir data, and equipment performance data.
6. The method of claim 1, wherein the predicted production volume is a first predicted production volume, the method further comprising:
- predicting using a linear programming model a second predicted production volume for the one or more wells based on the well performance data and the constraints data;
- predicting using an evolutionary algorithm a third predicted production volume for the one or more wells based on the well performance data and the constraints data; and
- selecting one of the first, second, and third predicted production volumes for adjusting the production volume of the one or more wells.
7. The method of claim 1, further comprising:
- receiving input data for training the ML model, the input data comprising historical production data, historical reservoir data, and historical equipment performance data; and
- preprocessing the input data to provide processed input data for training the ML model.
8. The method of claim 7, wherein the ML model is a first ML model, and the preprocessing comprises predicting using a data prediction model missing data points in the historical production data, the data prediction model corresponding to a second ML model.
9. The method of claim 8, wherein the second ML model is a Long Short-Term Memory Network (LSTM).
10. The method of claim 7, wherein the preprocessing comprises identifying and removing using an outlier detector anomalies and/or inconsistent data points in the historical production data.
11. The method of claim 10, wherein the outlier detector comprises a Z-score method or an inter-quartile (IQR) method.
12. The method of claim 7, wherein the preprocessing comprises generating one or more features based on the historical production data, the one or more features being used in training the ML model.
13. The method of claim 7, further comprising partitioning, using a data partitioner, the processed data 216 into a training dataset for training the ML model and a testing dataset for validating the ML model.
14. The method of claim 7, further comprising:
- modifying a loss function to include one or more penalty terms based on the constraints data; and
- training the ML model according to the loss function.
15. The method of claim 7, further comprising selecting an ML algorithm from a number of ML algorithms for use as the ML model.
16. The method of claim 7, wherein the ML model is a constraint satisfaction neural network (CSNN).
17. A system comprising:
- one or more computing platforms configured to: receive input data for training a machine learning (ML) algorithm, the input data comprising historical production data, historical reservoir data, and historical equipment performance data; preprocess the input data to provide processed input data for training the ML algorithm; train the ML algorithm to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data; and employ the trained ML model to adjust a production volume of the one or more wells based on the predicted production volume.
18. The system of claim 17, wherein the ML model is a first trained ML model, and the one or more computing platform are configured to preprocess to:
- predict using a data prediction model missing data points in the historical production data, the data prediction model corresponding to a second trained ML model;
- identify and remove using an outlier detector anomalies and/or inconsistent data points in the historical production data; and
- generate one or more features based on the historical production data, the one or more features being used in training the ML model.
19. A method comprising:
- receiving, at a machine learning (ML) training system, input data for training an ML algorithm, the input data comprising historical production data, historical reservoir data, and historical equipment performance data;
- preprocessing, using a data input processor of the ML training system, the input data to provide processed input data for training the ML algorithm;
- modifying a loss function to include one or more penalty terms to account for one or more constraints for one or more wells;
- training, using an ML engine of the ML training system, the ML algorithm according to the modified loss function to provide a trained ML model for predicting a production volume for the one or more wells based on the processed input data;
- outputting, using the ML training system, the trained ML model for use in an allocation system in response to the training;
- receiving, at an allocation system, well performance data for one or more wells and constraints data;
- predicting, using the trained ML model of the allocation system, a production volume for the one or more wells based on the well performance data and the constraints data;
- simulating, using a simulator, a reservoir model to evaluate an outcome of the predicted production volume for the one or more wells;
- updating, using the allocation system, the predicted production volume for the one or more wells based on the simulation of the reservoir model; and
- adjusting a production volume of the one or more wells based on the predicted production volume.
20. The method of claim 19, wherein the predicted production volume is a first predicted production volume, the method further comprising:
- predicting using a linear programming model a second predicted production volume for the one or more wells based on the well performance data and the constraints data;
- predicting using an evolutionary algorithm a third predicted production volume for the one or more wells based on the well performance data and the constraints data; and
- selecting one of the first, second, and third predicted production volumes, the simulator being provided with the selected predicted production volume for simulation.
Type: Application
Filed: May 14, 2024
Publication Date: Nov 20, 2025
Applicant: SAUDI ARABIAN OIL COMPANY (Dhahran)
Inventors: James O. ARUKHE (Dhahran), Yahia A. TELMISANY (Dhahran), Bryan HALL-THOMPSON (Dhahran)
Application Number: 18/664,228