DIGITAL MODEL BASED CONFIGURABLE PLANT OPTIMIZATION AND OPERATION

A data processing system enables a user to select performance indicators in terms of which a plant operation is to be optimized. The system receives data from instruments monitoring plant operation and a user selection of a performance indicators to optimize in accordance with one or more set-points for assets at the plant. The system generates a plurality of values for the performance indicator via the model and based on the data and a plurality of test values for the set-point. The system determines one or more settings for one or more set-points of at least one of the plurality of assets at the plant based on the plurality of values for the performance indicator and the plurality of test values for the set-point and provides the one or more settings for the one or more set-points to adjust the performance of the plant.

BACKGROUND

A processing plant can utilize different assets, including for example equipment, to perform various functions as a part of the process or production of the plant. These assets can vary in many ways, including for example in their performance, energy consumption, throughput and the amount of resources they use. As efficiencies and performance of the individual processing plant assets change over time, the efficiency of the overall plant operation can be affected, as well. Such variations can make accurate monitoring of the plant operation challenging, thereby making it more difficult to reliably and efficiently manage settings of the assets.

SUMMARY

As plant operating conditions change over time, the plant's performance and efficiency can deteriorate to suboptimal performance. When this occurs, plant personnel, such as operators and analysts, can benefit from knowing specific adjustments that can be made to individual plant assets (e.g. equipment) so that they could restore the plant's efficiency and maintain the plant's performance at its optimal state. For example, the operators could benefit from knowing which asset adjustments had resulted in efficient or improved plant operation under the same or similar conditions in the past. Process analysists can benefit from being able to determine which operating conditions are correlated to improved plant operation, given particular asset settings. Knowing this information can help both understand how these complex processes work, mitigate risk and maintain plant's operation at a high level despite changing conditions.

This technical solution can accurately and efficiently account for changing operating conditions, as well as identify settings for assets that were determined to have worked for processes at a particular plant under similar conditions. This technical solution can quickly analyze operating conditions of a plant and assets thereof, and efficiently use systems with models to determine an adjustment to settings at the plant. The technical solution can provide in real-time a notice to the plant operators to adjust particular plant settings in order to maintain optimal operation of the plant regardless of the changing conditions. Thus, this technical solution can allow operators, process engineers, and analysts who are experienced in plant operations, but not necessarily in optimization methods or algorithms, to utilize models, such as a digital twin, along with specialized and configurable optimization function to optimize the operation of the plant in accordance with the users' own preferences and configurations. Specifically, the present solution can enable a user to select particular performance parameters for which the user wants to optimize the plant operation, such as for example a plant product throughput or a plant energy consumption, or both. The solution can allow the user to input, select or define particular set-points for particular plant assets that the user wants to adjust in order to implement the desired optimization. The solution can also allow the user to input, select or define state parameters that can be used to identify the state conditions of the plant. In doing so, the solution provides a way for the users to configure plant optimization in accordance with particular performance indicators as well as choose which assets and set-points wants to adjust to achieve the improved operation. The users can select particular modeled state parameters to use for observing the state of the modeled plant performance in order to monitor the results of the modeled performance using various testing set-points input into the model. By observing the outcomes of the modeled performance in view of the input test set-points, the solution can identify the set-points for the assets to use at the plant that provide the desired optimal performance indicators.

In some aspects, this technical solution relates to a system of optimizing operation of a plant. The system can include a data processing system having at least one processor coupled with memory. The data processing system can provide a prompt for optimization of a performance of a plant indicating a plurality of performance indicators in a model of the plant. The data processing system can receive data from a plurality of physical instruments monitoring operation of a plurality of assets at the plant. The data processing system can receive a selection, via the prompt, of a performance indicator of the plurality of performance indicators to optimize in accordance with a set-point of an asset of the plurality of assets. The data processing system can generate a plurality of values for the performance indicator via the model and based on the data and a plurality of test values for the set-point. The data processing system can determine one or more settings for one or more set-points of at least one of the plurality of assets at the plant based on the plurality of values for the performance indicator and the plurality of test values for the set-point. The data processing system can provide the one or more settings for the one or more set-points to adjust the performance of the plant.

In some aspects, the present solution relates to a method of optimizing operation of a plant. The method can be performed by a data processing system having memory and one or more processors. The method can include the data processing system providing a prompt for optimization of a performance of a plant indicating a plurality of performance indicators in a model of the plant. The method can include the data processing system receiving data from a plurality of physical instruments monitoring operation of a plurality of assets at the plant and a selection, via the prompt, of a performance indicator of the plurality of performance indicators to optimize in accordance with a set-point of an asset of the plurality of assets. The method can include the data processing system generating a plurality of values for the performance indicator via the model and based on the data and a plurality of test values for the set-point. The data processing system can include the data processing system determining one or more settings for one or more set-points of at least one of the plurality of assets at the plant based on the plurality of values for the performance indicator and the plurality of test values for the set-point. The method can include the data processing system providing the one or more settings for the one or more set-points to adjust the performance of the plant.

DETAILED DESCRIPTION

Following below are more detailed descriptions of various concepts related to, and implementations of, methods, apparatuses, and systems of optimizing operation of a plant. The various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways.

Manually looking through historical data, or via computer spreadsheets or data logging software, is impractical, time-consuming, expensive and ineffective. Given that plant conditions can change at any time, including when analysists and operators may not be noticing any changes taking place, suboptimal operation can be undetected and underway for a prolonged period of time before the plant personnel take notice. Making matters worse is that finding the solution from that point takes more time and the results can likely be imperfect as solutions for finding optimal settings that were successful for the particular conditions in the past are not available. Moreover, optimizing plant for particular type of performance that the user can choose and with particular assets and set-points that the user chooses to use to achieve the optimization remains unavailable. Therefore, optimizing the plant's operation for a particular type of performance and using particular set-points for selected assets and doing so quickly and efficiently is technically challenging.

This technical solution addresses these and other challenges by providing systems and methods for optimizing plant operation via a data processing system. By providing a prompt of the data processing system for optimization of a performance of a plant and receiving of a performance indicator of the plurality of performance indicators to optimize in accordance with a set-point of an asset of the plurality of assets, the user can specify the preferred type of optimization the user wants to accomplish and the particular set-points for the assets the user wants to use. By generating a plurality of values for the performance indicator via the model and based on the data and a plurality of test values for the set-point and determining one or more settings for one or more set-points of at least one of the plurality of assets at the plant based on the plurality of values for the performance indicator and the plurality of test values for the set-point, the solution provides optimal settings that were successful for the particular conditions in the past. By providing the one or more settings for the one or more set-points to adjust the performance of the plant, the solution can provide the operators with the adjustment instructions instantaneously or at any period of time, thus allowing for a quick response and adjustment. This technical solution can produce results on a frequent basis and can be configured to produce new results periodically, such as every few minutes, hours, or days. This can allow the plant operators to keep the plant running with optimal set-points continuously adjusting for the changes to the plant's operating conditions.

In addition, the present solution is also useful in the scenarios where the assets (e.g. equipment at the plant) has been worn out or degraded and so it does not operate as designed, and so finding optimal set-points and troubleshooting the system can be challenging. By relying on the data that includes physical and virtual measurements, the present solution compensates for this problem. Similarly, where design equations assume no degradation or assume a degradation constant, such a rough assumption can be fixed with the present solution in which the optimization is done with actual historical operating data, better accounting for wear, degradation, or other changes. For the similar reasons, the present solution's data-driven approach can be beneficial in situations where accurate equations for the plant process simply do not exist or are not sufficiently accurate be practical.

The solution can also provide reliable modeling for processes in which well-defined equations are not available or are subject to constant change, thus making them inaccurate, which occurs for example, in various biological and chemical applications, such as those relating to wastewater treatment. The present solution improves the accuracy of the modeled data by treating it as a black-box problem in which the user does not modify any functions, models or internal code, but simply provides inputs and the solution provides the optimized set-point outputs. This provides an added advantage that the level of knowledge of optimization processing is minimized for the user, allowing the users to add new variables and parameters for the optimization without rewriting any optimization code or functions. This can keep the plant running optimally as the plant changes due to variations in influent conditions, equipment degradation or contamination, growth and cycle of biological processes.

FIG.1depicts an example system to model a plant10. The system can include at least one data processing system100in communication with at least one plant10and at least one client device20over at least one communication network101. Data processing system100can include at least one plant database110that can include asset data112, topology data114, connectivity and flow data116, instrumentation data118and measurements119. Data processing system100can include at least one model generator130that can include one or more models135A-135N, including for example a model135A that can comprise an at least one asset layer122, topology layer124, connectivity and flow layer126, and instrumentation layer128. Data processing system100can include at least one interface15, at least one rules engine140, at least one simulator145, at least one resource utilization monitor150and at least one alert generator155. The data processor system100can include a virtual data generator160that includes one or more virtual instruments165and one or more virtual instrumentation data170.

The plant10can include at least one asset12A-N, such as machines, devices or tools, for operating or facilitating a process. The plant10can include at least one measurement instrument18A-N that can take measurements or data on or corresponding to at least one asset12A-N or to the process at the plant10. The plant10can include at least one interface15to communicate with the data processing system100or client device20via the communication network101. The data processing system100can include at least one plant database110. The plant database110can store data from any number of plants or facilities, including for example, the illustrated plant10. The plant database110can include asset data112, topology data114, connectivity and flow data116and instrumentation data118. The data in the plant database110can for example include information or data on plant10and its asset(s)12, their topology, their connectivity and flow, as well as the data from measurement instruments18at the plant10.

A plant10can include any plant (e.g., a facility) that performs a process or that includes a system to be modeled. The plant10can include any plant, factory or a fabrication facility. Plant10can include a manufacturing facility, a service or production facility, a retail facility. Plant10can include one or more plants or one or more facilities working together implementing one or more processes, activities or productions. A plant10can include any one or more facilities running any one or more processes, such as processes for servicing, manufacturing, production, sales or any other commercial activity. Plant10can include, for example, a water treatment plant, a water desalination plant, a pulp and paper plant, a chemical synthesis pharmaceutical plant, a nuclear power plant, a semiconductor device fabrication facility, a consumer electronics factory, a retail facility, an automobile factory, an aircraft factory, such as an airplane or a drone factory, a solar power plant, a wind energy plant, an oil drilling plant, a food processing plant or a beverage producing plant. Plant10can include a distillation plant or an ion exchange plant. Plant10can include fluid treatment plant that uses a membrane-based process, including for instance an electrodialysis reversal plant, reverse osmosis plant, a nanofiltration plant, a membrane distillation plant, or a forward osmosis plant. Plant10can include a freezing desalination plant, geothermal desalination plant, solar desalination plant, or a methane hydrate crystallization plant. Plant10can be modeled by a digital twin system generated and run by the data processing system100using the data from assets12A-N and instruments18A-N.

Assets12A-N can be any assets used for or in a process or production, including equipment, machines, devices, systems and tools that perform any function related to a process or a system at the plant10. An asset12can include, for example, any type or form of a system or any of its component, such for example a thermal system, a chemical system, a biochemical system, a mechanical system, an electrical or an electronic system, an electromechanical system, a biological system, a photoelectric system, a photovoltaic system, a membrane system, a filtration system, a fluid processing system, a solid material processing system, a gas processing system, or any other type and form of a system used in a plant10.

Assets12A-N can include any electromechanical machines or devices, such as a pump, including an air pump, a water pump, an oil pump, a mud pump, a drilling pump, a low or a high pressure pump, a turbo pump, or a cryogenic pump. An asset12can include a motor, an engine, or any other type of a system converting energy into motion or vice versa. An asset12can include a wind or a water turbine, a stirring system or a propeller or a fan system. An asset12can include a press, such as a mechanical press or a hydraulic press, or systems such as a grinder or a pulverizer, a conveyor belt or a pulley system. The asset12can include a mechanical clarifier, such as for example, a wastewater clarifier.

Assets12A-N can include any type and form of a heating or cooling device. An asset12can include an oven or a heater, a furnace, such as a natural gas furnace, a single-stage or multi-stage furnace system, a forced air or gas furnace, or a dryer. The asset12can include a combustion system or any of its potential components, such as for example a combustor, a burner, or an igniter. An asset12can include a cooler, a fridge or a freezer, air conditioner, cooling tower, chiller or a heat exchanger.

Assets12A-N can include any type and form of filtration systems or devices, such as a water filter, an air filter, an oil filter, or a cartridge filter. Asset12can include a distillation system or any of its subsystems and components, as well as a reverse osmosis system or any of its subsystems and components, such as a reverse osmosis production train, that can include one or more reverse osmosis membranes. Asset12can include an ozonation system and any one or more of its components and subsystems. Assets12A-N can include any type and form of storage or pressure systems, such as a tank or a storage device for materials or fluids, such as a water tank, an oil tank, an air tank, a solvent reservoir, a high or low pressure chamber or a pressure tank, or an aeration basin.

An instrument18A-N can include any type and form of a device for sensing, measuring or a data collection. An instrument18can include a fluid flow sensor, such as a flow gauge or a flow rate sensor or detector, a mass flow meter or a differential pressure meter. An instrument18can include a sensor or a detector measuring force, velocity, acceleration, temperature, pressure, chemical composition, salinity of a fluid, concentration of salts or oils, or concentration of certain particles or molecules in a fluid, such as the concentration of oxygen-based or carbon-based molecules. Instrument18can, for example, measure density of a fluid or a solid material, oxidation level, concentration of smoke or ashes. An instrument18can include a position, a vibration or a photo optic sensor or a detector. An instrument18can include a vibration sensor, a piezo sensor, a strain gauge, a humidity sensor. An instrument18can include a vision or an imaging or a light sensor or detector, a particle sensor, a motion sensor, a leak sensor or a chemical sensor. An instrument18can include sensors for detecting chemical molecules.

An instrument18can include systems and functionalities that interface with a sensor and processes and stores its measurements. For example, an instrument18includes circuitry for scaling and amplifying the sensor signal. The instrument18can include the functionality for digitizing the sensor signal. The instrument18can include the functionality for collecting and storing sensor readings or values.

An interface15at the data processing system100, as well as an interface15A at the plant10, or interface15B at the client device20, can include any computer or a digital system interface for digital communication or interaction between the data processing system100, plant10or the client device20. An interface15can include hardware and software to provide a computer interface functionality for a user to interact to or from the data processing system100. An interface15can include an application interface or a program interface to provide a means of interaction. Interface15can include a web browser interface, a graphical user interface, a menu interface, a form based interface or a natural language interface. Interface15can include a user interface to enable a user to manually enter data from physical instruments and sensors, such as instruments18.

A data processing system100can include any combination of hardware and software for modeling a plant or a plant10. A data processing system100can include a system for creating and running a digital twin. A data processing system100can include functionality for generating a model of a system or a process at a plant10. The data processing system100can model the system or the process by constructing a model135that includes multiple layers122-128. The layers122-128can include or be based on physical data about the assets12, their topology, connectivity and flow or movement of materials among them, as well as their sensor instrumentation18and such sensor measurements119. Rules engine140can utilize any number of rules to assist in creating the model135by providing and establishing sets of relationships between different parts of the modeled system. Data processing system100can use the generated model135to generate virtual data with the help of virtual data generator160. The generated virtual data can include virtual instruments165and their corresponding virtual instrumentation data170. Data processing system100can use the simulator145to simulate the process using the real and virtual data or to optimize the process. The data processing system100can, for example, optimize the process by predicting future performance of the process or the assets, determine when each of the assets should be serviced or replaced, or determine the optimal settings for the assets. The monitoring of the assets can be done using resource utilization monitor150. Alert generator155can generate one or more alerts when any one of the assets12modeled in the model135drop their performance, quality, or status below a threshold.

The data processing system100can operate on any type and form of a computing device, such as a cloud system, a server-device or client device that comprises or uses features or systems, such as those described for exampleFIG.7. The data processing system100can therefore communicate over a network101with a plant10and a client device20. Data processing system100can include at least at least one logic device such as a computing device having one or more processors to communicate via the network101.

The data processing system100can include at least one computation resource, server, processor or memory. For example, the data processing system100can include a plurality of computation resources or servers located in at least one data center. The data processing system100can include multiple, logically-grouped servers and facilitate distributed computing techniques. The logical group of servers may be referred to as a data center, cloud computing environment, cloud server, server farm or a machine farm. The servers can also be geographically dispersed. A data center or machine farm may be administered as a single entity, or the machine farm can include a plurality of machine farms. The servers within each machine farm can be heterogeneous—one or more of the servers or machines can operate according to one or more type of operating system platform.

A plant database110can include one or more local or distributed databased for storing data corresponding to one or more plants10, or facilities10, their processes and the assets performing such processes. A data processing system100can include one or a plurality of plant databases110. A plant database110can include a database management system for facilitating storing, accessing and using of the stored data. Plant database110can be designed to have the same data structures for all plants or facilities or to be optimized for a particular10and to include features unique to individual facilities.

A plant database110can include any information on assets running a process at a plant10. For example, a plant database110can include any information on the assets themselves, or their internal state, status, configurations and settings. A plant database110can include any information on the geometric or spatial relationships or arrangements of the assets12at the plant10. The plant database110can include information on connections between the assets12, as well as any direction of flow between the assets12. Plant database110can include any data from instruments18at the plant, as well as the location of those instruments18and their relation to the assets12and the process run by the assets12itself.

Asset data112can include any information on assets12A-N. For example, asset data112can include information on each individual asset12as well as collective information on assets12A-N as a whole. Asset data112can include any technical information specific to an individual asset12, such as for example, its name, make and model, its serial number, its latest updated firmware or software versions, its individual settings and configurations, its individual operation state or operation data. Asset data112can include asset12specifications, including all of the data from its data or specification sheet. Asset data112can include asset12's estimate of useful life remaining, its current operating efficiency, the time since its last service or update, its current battery life or current power level. Asset data112can include information on asset's power usage or consumption, its electrical current draw, or its resistance or impedance. Asset data112can include the asset's internal sensor readings, such as, for example, the asset's temperature, pressure, vibration, force, flow rate, fluid velocity, turbidity, or any other readings that can be taken or considered for an asset12, either internally or externally.

Asset data112can include any information on a collection of assets12A-N, including any asset12A-N group settings or configurations. For example, asset data112can include information or data on asset12A-N collective updates, reconfigurations, or modifications. Asset data112can include information on management of two or more assets12in a plant10as a group. Asset data112can include information on synchronization or coordination between any assets12A-N. Asset data112can include any data or information that can be used for monitoring or determining performance of an asset12.

Asset data112can include information on models of particular pieces of equipment, including for example models that mimic inputs, outputs and entire performance of the individual piece of equipment. For example, asset data112can include a model of a pump, including the pump's specific inflow and outflow of fluid pumped, power consumptions, settings, configurations, capacity and any other features used for accurately modeling such a pump in operation. Asset data112can include similar models for any other type and form of equipment, device or tool described herein, including among others a filter, a clarifier, an aerial basin, a product tank, an ozonation system, a sterilizer, a heater, heat exchanger, a valve or any other similar systems and components.

Topology data114can comprise any information or data corresponding to arrangement of assets12A-N. Topology data114can include information on geometric properties or spatial relations between assets12A-N. Topology data114can include information that identifies which asset12interfaces with which other assets or in what order or arrangement. Topology data114can include any information or data describing placement, arrangement, organization, interaction or spacing between assets12A-N.

Topology data114can include information on the order of individual assets in a process or production. Topology data114can also include a description of one asset12that is a sub-asset of another asset12. For example, a membrane asset can be a sub-asset of a pressure vessel, an RO membrane array or RO train asset. For example, a pressure vessel, an RO membrane array or an RO train asset can be comprised of one or more membrane assets, and can include other assets such as pumps, filters, energy recovery devices and control/throttling valves. Each of these components can be treated as assets12of the model135. For example, topology data114can include information that asset12B stands between an asset12A and asset12C. Topology data114can include information that assets12A and12B are arranged one next to the other. For example, topology data114can include information on which asset12interfaces with which other asset12at the plant10and how they are spaced with respect to each other. Topology data114can include information that arranges all assets12A-N from the first to the last in their order in which they appear in the process run at the plant10.

Connectivity and flow data116includes any information or data on connections and flow between assets12A-N. For example, connectivity and flow data116includes information on which asset12is connected to which other asset12and how, as well as the information on the direction of flow of materials between the connected assets. Connectivity and flow data116can include data and information on how one or more outputs of an asset12are connected to one or more inputs of another asset12or in which direction is the flow between these two assets. For example, connectivity and flow data116can include information or data on how one or more outputs of an asset12A are connected to inputs of two or more assets12of the plurality of assets12A-N as well as information on the direction of the flow between the two assets. Connectivity and flow data116can include information and data on direction of flow of the process materials between the outputs of two or more assets12are connected to an input of an asset12.

Connectivity and flow data116can include any information on valves used in the connectivity of the assets. Data116can include a valve's make and model, its performance, throughput, capacity and any other information for accurately determining the flow in the modeled process or system. For example, connectivity and flow data116can include a model of a valve to accurately model the flow through the valve at any of the valve's settings.

Connectivity and flow data116can include any information on the specification of the connection between assets12. For example, connectivity and flow data116can include information or specifications on the diameter of a pipe between assets12, or the length of a pipe, a corner of a pipe and the angle and radius of the corner. Connectivity and flow data116can include information or specification on the size or speed of a conveyor belt between two assets12, size of a channel through which fluid flows. Connectivity and flow data116can include number or devices or vehicles moving materials between assets12, such as for example a number and sizes of carts or vehicles for moving materials. Connectivity and flow data116can include information on any one or more devices handling movement from an asset12A to an asset12B. Connectivity and flow data116can include information on any paths, channels, or devices for moving materials handled or processed by assets12between the assets themselves.

Connectivity and flow data116can include any information or data on movement or flow of materials handled or processed by assets12A-N. The materials handled or processed can include any material, substance, product or object handled or processed by assets12A-N, including, for example: fluid (whether liquid or gas), sludge, wastewater, drinking water, still water or carbonated water, natural gas, pressure gasses, mud, oil, petroleum, natural rocks or ore, sediment, sand, cement, mortar, bricks, building materials, articles of food, articles of clothing, mechanical or electrical devices, consumer electronics and their parts, automobiles and their parts, solar panels, wind turbines, pharmaceutical products, medical products, or any other type and sort of materials that can be the part of the flow processed or moved by assets12at a plant10.

Instrumentation data118can include any information on one or more instruments18A-N and any data from instruments18A-N. Instrumentation data118can include data on the location of the instruments18A-N in the process modeled at the plant10. For example, instrumentation data118can include data on location of each instrument18, such as a sensor, with respect to the assets12. Instrumentation data118can include information on the type of instrument18, its make and model, its calibration, internal settings and configuration, and operation. Instrumentation data118can include data on time of calibration of the instrument18from which data is collected or the accuracy range of the measurements.

Measurements119can include data and readings from the instruments18. Measurements119A-N can correspond to a plurality of instruments18A-N from which they have originated. For example, measurements119A can correspond to an instrument18A, while measurements119B can correspond to an instrument18B, and so on. Therefore, measurements119from each individual instrument18can be stored in an individual data structure of the plant database110.

Measurements119can include measurements or data of any sensors or detectors discussed herein in connection with measurement instruments18A-N. For example, measurements119can include measurement data on fluid flow, pressure, temperature, fluid density, salinity, concentration of particular particles or molecules, electric charge, voltage potential, electric current, optical signal, or any other measurements that instruments18A-N discussed herein could measure. Measurements119can include measured data organized and stored in any digital format, including data structures for each type of instrument18.

Measurements119can include individual measurements from instruments18A-N or a stream of data from instruments18A-N taken over time. For example, measurements119can include a single measurement or a series of measurements from an instrument18. When series of measurements are taken, such measurements can, for example, be taken periodically over time. Measurements119can thus include a stream of data measurements taken at particular periodic time intervals. Measurements119can include multiple measurements from an instrument18taken based on particular process events, such as events occurring during the process at plant10, such as daily start or end of a production, plant maintenance, asset service times, asset testing, asset maintenance, or similar.

Measurements119can include real-time data streamed from the plant10. For example, measurements119can include streamed real-time measurements of flow rate at an input into a particular asset12. Measurements119can include streamed real-time measurements of a flow rate at an output of a particular asset12. As measurements119can include

Plant database110can include multiple data structures for storing and keeping track of measurements119from different instruments18A-N10as well as for storing asset data112, topology data114, connectivity and flow data116and instrumentation data118. For example, plant database110can include one data structure for storing all measurements119from a first instrument18A, and a second data structure for storing all measurements119from a second instrument18B. Plant database110can store metadata on the measurements119, including for example data on timing when each reading was taken, data on periodicity of data measurements, time stamps for each data measurement, and type of data measurement, such as for example what is it that the measurement119is particularly measuring. Plant database110can include a data structure for each types of data112-118.

A model135can include any model of a part of a plant10, the entire plant10or of plurality of plants10. A model135can include a model of a system or a process run or operated at or by the plant10, such as a manufacturing system or process, a filtration system or process, a water treatment system or process, an oil drilling system or process, or any other system or process discussed herein. A model135can include a digital twin of a plant10, including for example a digital twin of a part of a plant10that runs a particular process. A model135can include a digital twin of a plurality of processes run or operated at or by the plant10, such as for example processes related to a function, product or a service. A model135can include a digital twin of one or more processes operated across multiple facilities10, such as for example filtration processes where one plant10runs one part of a process and another plant10runs another part of the process.

A model135can include multiple layers for describing a process or operation of one or more plants10. For example, a model can include an asset layer122, a topology layer124, a connectivity and flow layer126or instrumentation layer128. For example a model135can include fewer than four of these layers. For example, a model135can include any one or two or three of the stated four layers. A model135can include the stated four layers and one or more additional layers, such as a virtual layer comprising virtual instrumentation165and its corresponding virtual data170.

Asset layer122can include any digital description, depiction, representation or modeling of assets12. Asset layer122can include descriptions, depictions, representations or modeling using any asset data112. For example, asset layer122can include a representation of one or more assets12in a model135, such as a depiction, a figure, a drawing, a model or sketch of assets12, any one of which can be done using information from asset data112. Asset layer122can include identification of any asset12A-N from asset data112of a plant10. Asset layer122can include any asset data112information on any assets12A-N pertaining to a process being modeled by model135. Asset layer122can include technical data on any one of shown assets12A-N, such as technical information or data included in asset data112.

Asset layer122can include one or more models of one or more assets12modeled in model135. The model of an asset can include a model of an asset12itself, to describe the asset's inputs, outputs and its performance. For example, when an asset12of the asset layer122is a piece of equipment, asset layer122can include the model of that asset and its components. The model of the asset can describe or represent asset's individual performance characteristics, including asset's input and output connections, asset's power consumption, asset's configurations and settings, asset's processing functionality, asset's throughput, and so on. By providing models of assets12, asset layer122can enable modeling of those components as a part of the model135.

A topology layer124can include any digital description, depiction, representation or modeling of topology of assets12. Topology layer124can include descriptions, depictions, representations or modeling using any topology data114. Topology layer can include a depiction, a figure, a drawing, a model or sketch of arrangement or topology of assets12in a process run or operated at or by plant10. The depiction, drawing or a sketch can be done using information from topology data114. Topology layer124can include arrangements, geometric relations or relative positions involving assets12A-N. Topology layer124can include any data from topology data114of a plant10. Topology layer124can include any topology data114information on any arrangement, ordering or positioning of any assets12A-N pertaining to a process being modeled by model135. Topology layer124can include data on distances or spacing between assets12A-N, such as length of distances between the assets12A-N, coordination data on the locations of assets12A-N, order of assets12A-N and so on.

A connectivity and flow layer126can include any digital description, depiction, representation or modeling of connectivity and flow between assets12. Connectivity and flow layer126can include descriptions, depictions, representations or modeling using any connectivity and flow data116. Connectivity and flow layer126can include a depiction, a figure, a drawing, a model or sketch of connections between assets12in a process run or operated at or by plant10. The depiction, drawing or a sketch can be done using information from connectivity and flow data116. Connectivity and flow layer126can include specifications on the means for moving process material from one asset12to another asset12, such as for example a diameter or a radius of a pipe, a length of the pipe, a width or speed of a conveyor belt, a size of a channel through which fluid flows, a type of a vehicle for moving materials between the assets12and its speed and capacity, and any information on connectivity between assets12and flow of process materials between assets12.

Connectivity and flow layer126can include models of the connections between the assets12. For example, when asset layer122includes models of the individual assets12, the connectivity and flow layer126can include models of connections between the assets. For example, when assets12are pieces of equipment of a reverse osmosis plant, connectivity and flow layer126can include models of pipes interconnecting the assets12. Connectivity and flow layer126can include models of flow controllers between the assets, including valves, “T” connectors and various other components for connecting the assets.

An instrumentation layer128can include any digital description, depiction, representation or modeling of one or more measurement instruments18and their data. Instrumentation layer128can include descriptions, depictions, representations or modeling using any instrumentation data118. Instrumentation layer128can include a depiction, a figure, a drawing, a model or sketch of instruments18A-N taking measurements at a particular location in a process. For example, instrumentation layer128can illustrate, depict, represent, sketch or model instruments18A-N and their locations with respect to assets12. Instrumentation layer128can include measurements119of the instruments18in the model135. The illustration, depiction, drawing, modeling or a sketch can be done using information from instrumentation data118. An instrumentation layer128can include depiction of locations of instruments18A-N with respect to assets12A-N as described by their topology data114or connectivity and flow data116. Instrumentation layer128can include any measurements119taken by instruments18A-N, where instruments18A-N can be represented or identified in instrumentation data118.

A model generator130can include any combination of hardware and software for constructing or generating a model135. For example, the model generator130can include a user interface, such as an interface15A or15B to enable a user to enter, identify or describe one or more assets12, instruments18and plant10. The model generator130can use the plant database110and any of its information to generate a model135.

The model generator130can include any combination of hardware and software functions and scripts for generating or constructing any layer of the model. The model generator130can include the software functionality, scripts, computer programs and functions to generate layers122-128using their corresponding data112-118. For example, model generator130can generate the asset layer122using the asset data112. Model generator130can generate the topology layer124using topology data114. Model generator130can generate the connectivity and flow layer126using connectivity and flow data116. Model generator130can generate the instrumentation layer128using instrumentation data118. Model generator130can generate the instrumentation layer128using measurements119.

The model generator130can include the functionality to combine the layers122-128into a single model135of a plant10. For example, model generator130can include the functionality to combine the information from layers122-128into a single representation of the process. Model generator130can generate the model depicting layers122-128individually as well as a combination, showing how the process operates.

The model generator130can include the functionality to add to the model135virtual instruments165, as generated by virtual data generator160. The model generator can place the virtual instruments165at various locations, such as locations where instruments18A-N are not present. Model generator130can add a new separate layer for the virtual instruments165, or can combine the virtual instruments165to the instruments18depicted in the instrumentation layer128. Model generator130can add virtual instrumentation data170to the virtual instruments165. The model generator130can process the virtual instrumentation data170using the same techniques used to process the instrumentation data118.

A model generator130can include scripts, functions and computer code for training a model135using training data. Training data can include asset data112, topology data114, connectivity and flow data116and instrumentation data118. Training data can include virtual instrumentation data170from virtual instruments165. For example, training data can utilize various instrumentation data118to train the model135rates of flow between different assets at the model. Training data can use a combination of instrumentation data118and virtual instrumentation data170to train the model135.

The model generator130can train the model135using training data to identify or predict events, such as breakdown, time for service or end of life of one or more assets12, performance of one or more assets12through time, performance of the assets and the process through time, and so on. Model generator130can utilize virtual instruments165and virtual instrumentation data170to predict future events and performance

The model generator130can generate or train the model135using an artificial intelligence (“AI”) model, including for example a machine learning (“ML”) function or technique. The model generator130can include an AI or ML function and use any type of machine learning technique, including, for example, supervised learning, unsupervised learning, or reinforcement learning. The model generator130can use functions such as linear regression, logistic regression, a decision tree, support vector machine, Naïve Bayes, k-nearest neighbor, k-means, random forest, dimensionality reduction function, or gradient boosting functions.

Virtual instruments165can include any virtual objects performing functions of measuring, sensing or counting any feature or output of the model135using any combination of physical instruments118or their measurements119. Virtual instruments165can include any virtual objects mimicking instrument18A-N, any functionality of an instrument18or can include any digital representation of an instrument18.

A virtual instrument165can be placed in a part of a model135that corresponds to a location in which an instrument18is missing. For example, when a model135of a plant10is generated by a model generator130, instruments18can be placed in the respective locations as they exist in the plant10, whereas virtual instruments165can be placed in locations in which physical instruments18are not present. In some implementations, in the model135virtual instruments165can be placed right next to, or within, physical instruments18. Virtual instruments165can, for example, provide virtual readings at the locations that are not measured by instruments18at the plant10. In doing so, virtual instruments165can fill in missing data and help improve the accuracy and granularity of the model135.

Virtual instruments165can include, measure or keep track of one or more performance indicators, such as key performance indicators (KPIs). The key performance indicators can be measurements that are not normally measured using physical sensor or a detector, such as for example, efficiency of an asset, such as a filter or a pump, a quality of the output of the asset, a total output of the piece of the asset within a time period, a total asset output over asset's lifetime, an estimate of a total asset output left before the asset has to be serviced, provided maintenance or replaced, a current throughput of an asset, a throughput of an asset within a set time period, such as a daily, a monthly, or annual asset throughput, a concentration of particular molecules or components in the output fluid of an asset, a rate of permeate flow from an asset, a normalized pressure drop across one or more objects or features, an energy consumption of an asset, number of hours an asset has operated, the type of service or replacement completed last time.

Virtual instruments165can measure or gather data (e.g., virtual instrumentation data170) on any number of different parameters, including for example one or more of the following: approximate concentrate throttling valve coefficient, average normalized permeate flow change per month since last cleaning, average normalized pressure drop change per month since last cleaning, average normalized salt passage change per month since last cleaning, average running hours between cleanings, average time between cleanings, average water produced between cleanings, cleaning effectiveness normalized permeate flowrate, cleaning effectiveness normalized pressure drop, cleaning effectiveness normalized salt passage, concentrate density, concentrate flowrate, concentrate osmotic pressure, concentrate pressure, concentrate total dissolve solids (“TDS”), daily energy consumption, daily membranes replaced, daily production, daily running hours, daily water treated, efficiency, feed flowrate, feed osmotic pressure, feed TDS, flux, food to microorganism ratio (“f/m”), hydraulic retention time (“hrt”), inlet density, internal recycle (“ir”), ion concentrations, maximum membrane element feed flowrate, maximum membrane element flux, maximum membrane element permeate flowrate, maximum membrane element recovery, membrane cleaning or replacement signal, membrane replacement signal, membrane salt permeability, membrane water permeability, minimum membrane element concentrate flowrate, mixed liquor suspended solids (“miss”), net positive suction head available, net positive suction head required, new membrane permeate flow, new membrane pressure drop, new membrane salt passage, normalized permeate flow after cleaning, normalized permeate flow before cleaning, normalized permeate flow change since last cleaning, normalized permeate flow change since last replacement, normalized permeate flowrate, normalized pressure drop, normalized pressure drop after cleaning, normalized pressure drop before cleaning, normalized pressure drop change since last cleaning, normalized pressure drop change since last replacement, normalized salt passage, normalized salt passage after cleaning, normalized salt passage before cleaning, normalized salt passage change since last cleaning, normalized salt passage change since last replacement, number membranes replaced, organic volumetric loading rate, permeate flow normalization factor, permeate flow percent change due to membrane conditions, permeate flow percent change due to operating conditions, permeate flowrate, permeate osmotic pressure, permeate TDS, power consumption (1 phase alternate current (“AC”)), power consumption (3 phase AC), power consumption (centrifugal pump), power consumption direct current (“DC”), pressure boost, pressure drop, pressure drop normalization factor, pressure drop percent change due to membrane conditions, pressure drop percent change due to operating conditions, recovery, returned activated sludge (“RAS”), rotational speed, running hours since last cleaning, running hours since last replacement, salt passage, salt passage normalization factor, salt passage percent change due to membrane conditions, salt passage percent change due to operating conditions, sludge retention time (“SRT”), sludge volume index (“SVI”), specific energy consumption (reverse osmosis), time since last cleaning, time since last replacement, variable frequency drive (“VFD”) percentage, wasted activated sludge (“WAS”), water produced since last cleaning, water produced since last replacement, weekly energy consumption, weekly production, weekly running hours, weekly uptime and weekly water treated.

Virtual instrumentation data170can include any functionality of an instrumentation data118. Since a virtual instrument165can be a virtual representation of any physical instrument18, virtual instrumentation data170will accordingly correspond to the type of data for that virtual instrument165. For example, when a virtual instrument165is a flow rate sensor, the corresponding virtual instrumentation data170will be a flow rate sensor data. Similarly, when a virtual instrument165is a pressure sensor, its corresponding sensor data will be a pressure sensor data. Virtual instrumentation data170can include a location and type of an instrument18that it represents, including its type and model, internal settings, configurations and any other features identified for a physical instrument18.

Virtual instrumentation data170can include any data that would have been taken by a physical instrument18of a particular model at the location at which the virtual instrument165is placed. For example, if a virtual instrument165is a temperature gauge at some location, the virtual instrumentation data170can include temperature readings at that location. If the physical instrument18of that particular model would be set to take measurements119periodically, then the virtual instrumentation data170can take measurements periodically, as well.

Virtual Data Generator160can include any combination of hardware and software, including scripts, software functions and code to create or generate virtual instruments165and determine their corresponding virtual instrumentation data170. Virtual data generator160can generate one or more virtual instruments165anywhere in the model135. For example, virtual data generator can identify one or more locations in which instruments18are missing and can generate one or more virtual instruments165at those locations. The generated virtual instruments165can be of any type, and can be based on, or mimic any instruments18A-N.

Virtual data generator160can include any functions, scripts and computer code for determining virtual instrumentation data170for any virtual instrument165. Virtual data generator160can determine virtual instrumentation data170per event, periodically, or at set times. Virtual data generator can determine virtual instrumentation data170for a virtual instrument165by performing mathematical functions on one or more instrumentation data118for one or more physical instruments18at the plant10. For example, virtual data generator160can determine virtual instrumentation data170of a virtual pressure sensor165by performing mathematical functions on instrumentation data118for one or more physical pressure sensor instruments18A-N. For example, virtual data generator160can determine virtual instrumentation data170by calculating an average, a median, or a mode of two or more readings in the instrumentation data118from two or more physical instruments18at the plant. Virtual data generator160can determine virtual instrumentation data170by determining a trend of the instrumentation data118and finding a function that most closely maps the instrumentation data measurements119over time. Virtual data generator160can then extrapolate from the data using the closest-fit function and thereby predict future readings of the virtual measurements119.

Virtual data generator160can determine virtual instrumentation data170by finding a relationships or correlations between various instrumentation data118from different instruments18A-N. For example, a virtual data generator160can determine that there is a correlation or a relationship between one or more temperature sensors instrument18A and one or more salinity sensor instruments18B. The virtual instrument165for sensing salinity in a fluid can then can determine its salinity based at least in part on the measurements119from a temperature sensor instrument18. Similarly, a virtual data generator160can determine that there is a relationship or a correlation between data of two or more instruments18measuring pressure at a fluid at the input into a filter and a flow rate of the output of the fluid through the filter. In such an example, a virtual instrument165for measuring flow rate through the filter can be determined or calculated, at least in part, based on the measurements119from a physical pressure sensor instrument18at the fluid input into the filter. Accordingly, virtual data generator160can use relationships or correlations between different sensor readings to generate virtual instrumentation data170at virtual sensors165. To implement these calculations using such relationships, virtual data generator160can rely on the rules by the rules engine140to establish the relationships between different sensors, different components, different assets or different parts of the system or process.

Virtual data generator160can determine virtual instrumentation data170based on the location of virtual instrument165in relation to physical instruments18in the process being modeled. Virtual data generator160can, for example, calculate an average, a median or mode value of data from two physical pressure sensor instruments18to determine or calculate the pressure for a virtual instrument165located in between the two physical pressure sensor instruments18. Virtual data generator160can, for example, calculate an average, a median or mode value of data from two physical temperature sensor instruments18to determine or calculate the temperature for a virtual instrument165located in between the two physical temperature sensor instruments18. Similarly, the virtual data generator160can calculate an average, a median or mode value of data from two physical fluid salinity sensor instruments18to determine or calculate the salinity for a virtual instrument165located in between the two physical salinity sensor instruments18.

Virtual data generator160can generate a virtual layer for the model135. The virtual layer can be similar to layers122-128, as depicted in the examples ofFIGS.3A-3B. The virtual layer can include virtual instruments165, their topology and arrangement with respect to other parts of the model135, such as assets12for example. The virtual data layer can include relationships and functions with respect to the physical components, such as assets12or instruments18, for example.

A rules engine140can include software, scripts and computer code to form and utilize rules for generating virtual instruments165and virtual instrument data170. Rules engine140can utilize one or more rules to determine a set of relationships between different assets12, instruments18and virtual instruments165. Rules engine140can include rules on defining the relationships between connected assets, such that for example, the rule defines how input of one asset operates as function of an output of another asset, or how a process material output from one asset makes its way into another asset, or how material pumped by one asset (pump) is pressurized to flow through one or more pipes to other downstream assets, or how measurements119from o pressure instrument18affects the modeled rate of flow through an asset12where the instrument is located. Rules engine140can include or utilize a data structure that can indicate interaction and relationships between assets. The data structure can include fields, which can be populated by a user through a user interface. The rules engine140can then run the rules based on the user inputs to provide sets of relationships.

Rules engine140can include rules that dictate how particular connections facilitate operation between various assets. For example, rules engine140can include rules to describe how a pipe operates between an asset that is a water pump and another asset that is a water tank. Rules engine140can include rules to describe how pressure from one side of an asset affects or transfer to pressure on another side of an asset. Rules engine140can include rules that describe how temperature from one asset causes particular behavior of that asset, or other assets. Rules engine140can include rules that control the relationship between assets and the fluids or other materials they handle, between temperature and pressure of materials or fluids, between chemical composition and results, and so on.

Rules engine140can include functions and algorithms that are agnostic to the plant10and that automatically derive new information from the data in the plant database110. Rules engine140can include a domain specific language (DSL) and automatic solver system that can enable the plant-agnostic encoding of rules and automatic derivation of facts. A rule can include a concrete rule defining a plant-agnostic logical implication of interaction of assets or instruments. A fact can be auto-derived implementation of that rule at a specific plant.

For example, an engineer may specify a fact once, independent of a specific plant. This can include abstracting physical plants as a digital collection of assets, instrumentation, and connectedness and expressing laws as a function of these underlying plant agnostic resources. The solver can include a search engine over all possible facts that can be inferred, given the set of inference rules. The solver can sit atop the DSL and derive the parameter framework.

A rules engine140can include software, scripts and computer code to form and utilize rules to automatically generate new information, such as virtual instruments165and their corresponding virtual instrumentation data170. Once generated, such new information can then be exposed for interface access. The rules engine140can implement automatic derivation of virtual data works by considering the system of types of assets12, their associated physical instruments18, and connectivity and flow data116and running these configuration details through a set of rules. These rules are plant agnostic rules that define how to automatically derive new information.

A rules engine140, for example, includes plant agnostic law that may automatically generate virtual instruments165and their corresponding virtual instrumentation data170when appropriate conditions are met. For example, in the event that a model135is for a reverse osmosis (“RO”) plant, if an asset12is of a particular type, namely a RO train, and if the asset12is measured by instruments18at its inlet and at its outlet, then the rules engine140automatically generates a virtual instrument165for the RO train for virtually measuring RO recovery.

A data processing system100or the rules engine140can auto-derive new information responsive to input properties and asset type information being satisfied. This can happen, for example, when a virtual instrument (or a physical instrument) that takes or calculates particular measurements is identified. The identification can be based on identifying an asset of the specific type in the system, particular plant industry type, or any other information.

FIG.8includes a table having information on various properties and parameters relating virtual instruments165and their associated virtual measurements170, particular assets, process or industry types or inputs and outputs. The table inFIG.8can include input properties and asset type information that can be used to identify appropriate rules to run and auto-derive the new information by the rules engine140. The input properties and asset type information can be used to identify a particular rule in the rules engine140that can be applicable to a particular combination of one or more of applicable assets, process types, input or output properties and KPIs. Responsive to identifying that one or more parameters in the table, including for example applicable assets, input properties or process types, match one or more rules in the rules engine140, the rules engine140can select those rules as the rules to run to auto-derive new information. The rules engine140can trigger the one or more identified rules and run those one or more rules based on any combination of the one or more input data, including for example parameter inputs fromFIG.8. The KPIs identified by the rules engine140can be the KPIs offered to the user to select the KPIs in which the user is interested and declining the KPIs which the user does not want to use. The KPIs inFIG.8can include for example parameters from which the user can select optimization inputs200, such as performance indicators210and state parameters230discussed in connection withFIGS.12-21.

Model generator130can include the software, scripts and computer code to utilize the virtual instruments165and the virtual instrumentation data170the same way as the physical instrumentation data118, discussed above. Model generator130can utilize virtual data generator160to include virtual instruments165into the instrumentation layer128along with the physical instruments18described in the instrumentation data118. Model generator130can, together with virtual data generator160, modify the model135to integrate virtual instruments165together with virtual instrumentation data170. As model generator130and the virtual data generator160can be a combined generator function, they can operate as single function comprising the functionality of both.

Simulator145includes software, scripts and computer code to simulate the operation of the process modeled in the model135. The simulator145can take the model135along with its layers122-128utilize the measurements119to simulate the operation of the model135. For example, simulator145can take the model135that includes generated layers122-128from their corresponding data112-118and then input measurements119to determine the rate of operation of the model, the rate of operation of individual modeled assets12, flow through various parts of the process, and so on.

Simulator145can include physics-based models for generating simulations. Simulator145can include an AI or ML based models for generating simulations. The simulation layer can expose control points to which simulation models can be interfaced. For instance, a model that varies operating conditions can be used to find an operating optimum. Also a model that simulates the process with a variety of different types of assets, including their different make and models in order to be able to suggest equipment retrofits. Other examples may include simulating to reduce chemical dosing or simulating to detect deviation from safe operating limits.

Resource Utilization Monitor150can include software, scripts and computer code to determine efficiency of utilization of assets12. Resource utilization monitor150can comprise the functionality to determine the resource utilization of assets12, either independently or in view of their efficiency, performance, throughput and other features. Resource utilization monitor150can determine how much longer each asset12of the model135can continue performing before their replacement or servicing is warranted. As assets12can have a duration of time during which they can be operated at some range of efficiencies, once their efficiency falls and their utilization can become costly. Resource utilization monitor150can utilize any information in the plant database110to monitor the utilization of the assets12over time. Once the asset utilization for a particular asset12falls below a particular threshold, resource utilization monitor150can determine that that it is more cost-effective to replace, provide maintenance or service the asset12than to keep operating it at the current rate. Resource utilization monitor150can make that determination with respect to a particular threshold of performance, efficiency, power consumption or throughput of the asset.

Alert Generator155can include software, scripts and computer code to generate an alert with respect to optimizing the process described in the model135. For example, an alert generator155can generate an alert when one or more assets12is nearing its end of life. An alert generator155can generate an alert when one or more assets12are nearing its time of service or replacement. An alert generator155can generate an alert to indicate that one or more assets12can be reconfigured and can identify and recommend optimal services for the assets. For example, an alert generator155can determine that a RO membrane was serviced only once before and that it can be serviced again, instead of being replaced and generate an alert stating that the service is recommended over replacement. Accordingly, alert generator155can include information on particular way to service the asset. An alert generator155can generate an alert when one or more assets12can be reconfigured a particular way in order to optimize the process modeled by model135.

An alert generator155can generate an alert that the asset has a limited amount of throughput left before a next service of the asset. For example, an alert generator155can utilize a resource utilization monitor150to determine how much more processed material throughput an asset will be able to produce before the next service, maintenance, or replacement of the asset. An alert generator155can then generate an alert displaying the amount of remaining throughput for the asset before the asset is to be serviced or replace.

Alert generator155can include functionality to observe resource utilization monitor150and determine when an alert should be generated. Alert generator155can generate one or more alerts based on performance of one or more assets12. An alert generator155can generate an alert when the resource utilization monitor150observes that an asset12consumes more energy than a particular predetermined level. For example, an alert generator155can generate an alert when an asset12begins to consume more energy for the amount of work completed than it has done in the past. This determination can be based on the instrumentation data118and measurements119or the virtual instruments165and virtual instrumentation data170that measure the energy consumption of the asset.

For example an alert generator155can generate an alert based on resource utilization monitor150determining that performance of an asset is below a particular threshold. The threshold can be set with respect to any asset performance level, such as for example: asset's usage of energy, asset's production throughput, asset's fluid flow, asset's production rate, asset's product quality, asset's output data, such as detection of particular characteristics in asset's product output, asset's sensor readings and asset's virtual instrumentation readings or data170.

By monitoring the asset's performance or operation by the resource utilization monitor150, the alert generator155can generate any notification or indication when a set threshold is met or exceeded. For example, alert generator155can generate a notification or an indication that an asset is nearing the end of its efficient operation or that asset's service, maintenance or replacement is coming up. This can be done based on resource utilization monitor150detecting an amount of chemicals in the fluid output of the asset that exceeds a set threshold. Likewise, an alert generator155can generate a notification that an asset is nearing the end of efficient operation or the service, maintenance or replacement is approaching. This can be done based on a resource utilization monitor150detecting that the fluid pressure at the asset input exceeds a set threshold. An alert generator155can generate a notification that an asset is nearing the end of efficient operation or the service, maintenance or replacement is soon or approaching at a particular time in the future or within a particular time interval in the future. This can be done based on a resource utilization monitor150detecting that the one or more of a temperature of the asset or the power consumption of the asset exceeds a set threshold.

The data processing system100can combine features from various components and functions fromFIG.1to perform digital twin modelling. For example, data processing system can use the simulator145to perform a simulation of the plant, such as plant10, based on the set of relationships from rules engine140applied to the plurality of assets12in the model135, one or more measurements119and one or more virtual measurements170. The data processing system100can utilize alert generator155to generate a notification to service a particular asset12responsive to a comparison of a virtual measurement170with a threshold. The threshold can be determined based on a resource utilization monitor150's estimate of utilization of a resource from continued performance of the same particular asset12without servicing that asset. The data processing system100can utilize alert generator155to determine the threshold based on resource utilization monitor150's estimate of utilization of a resource from continued performance of the same particular asset without servicing the same asset.

For example, a data processing system100can receive the one or more measurements119from a particular physical instrument18of the one or more physical instruments located at or within a threshold distance of a particular asset12A of the plurality of assets12A-N. The data processing system100can determine, based on the set of relationships from the rules engine140and the one or more measurements119input into the model, a virtual measurement170for a virtual instrument165located at or within the threshold distance from an asset12B, that is different than asset12A and the alert generator155can generate the notification to service the second asset based such determination. The threshold distance can be any distance, such as within 1 m, 2 m, 5 m or 10 m from an asset, or within 0.1 m, 0.3 m or 0.7 m from the asset.

A data processing system100can use the model generator130to construct a first layer of the plurality of layers based on data on the plurality of assets at the plant, such as for example the asset layer122that can be constructed based on asset data112. The model generator130can construct a second layer of the plurality of layers based on data on the topology of the plurality of assets at the plant, such as for example the topology layer124that can be constructed based on topology data114. The model generator130can construct a third layer of the plurality of layers based on data on connections and flow path of the plurality of assets at the plant, such as for example the connectivity and flow layer126that can be constructed based on connectivity and flow data116. The model generator130can construct a fourth layer of the plurality of layers based on data on the one or more physical instruments at the plant, such as for example the instrumentation layer128that can be constructed based on instrumentation data118. The interface15of the data processing system can generate a display of the model comprising the first layer, the second layer, the third layer and the fourth layer.

For example, a data processing system100can receive the one or more measurements119of at least one of a flow rate of fluid, a salinity of fluid or a fluid temperature at or within a threshold distance from a first asset of the plurality of assets. The data processing system119can determine, based on the set of relationships by a rules engine140and the one or more measurements119input into the model135, a virtual measurement170of at least one of the flow rate of fluid, the salinity of fluid or the fluid temperature at or within the threshold distance from the asset12A or at or within the threshold distance from an asset12B of the plurality of assets.

The data processing system100can use the simulator145to perform a simulation of a fluid processing plant at plant10based on the model135, the set of relationships from the rules engine140, one or more measurements119and a virtual measurement170. The data processing system100can generate, responsive to a simulation by a simulator145, the notification from alert generator155on efficiency of performance of the first asset or the second asset. The data processing system100can receive, second one or more measurements119for a second one or more physical instruments18located at a second plant10comprising a second plurality of assets12and determine, based on a second set of relationships from the rules engine on interactions between the second plurality of assets12, a second virtual measurement170for a second virtual sensor165located at the second plant10.

FIG.2Adepicts an example of a model generator130comprising or storing various different models135is illustrated. The model generator130can store models across various different industries, enabling the users from any such industries to create their models135independent from any other models135. Using the multi-layer structure of the models135, the data processing system100can abstract away various process or system specific details and apply the same model generating functionality across various different plants10and industries. In doing so, model generator130can comprise or generate and operate models135from many disparate technologies and industries without requiring domain-based knowledge from such technologies and industries in order to create the model.

The model generator130can include or store models135A-N that differ from each other based on different types of assets12that they include. The models can be organized or catalogued based on their types or key assets that they use. For example, a model generator130can include membrane system models, such as ultrafiltration, microfiltration, nanofiltration and reverse osmosis models135. The model generator130can include bioreactor system models, such as conventional activated sludge, membrane bioreactor, sequential batch reactor and moving-bed bioreactor models135. The model generator130can include anaerobic digestion models, such as anaerobic activated sludge, internal circulation reactor, and upflow anaerobic sludge blanket digestion models135. The model generator130can include chemical system models, such as coagulation-flocculation, ion exchange, wastewater nutrient addition and deionization models135. The model generator130can include rotary equipment models, such as pump, lower, turbocharger, pressure exchanger and motor models. The model generator130can include thermal system models, such as evaporator, heat exchanger and cooling tower models. The model generator can include holistic system wide learning models, including brackish desalination, seawater desalination, sewage treatment, industrial effluent, zero-liquid discharge and biowaste treatment models135.

As the data processing system100can be implemented as a cloud-base software as a service, various models135of disparate technologies and applications can be preloaded, allowing the users to use them as a general starting point which the user can specify and configure into models135specifically mimicking the actual plant10of their choice.

FIG.2Bdepicts an example flow diagram of a process that can be modeled by a data processing system100.FIG.2Bshows a flow diagram of an example pulp and paper (wastewater) process that can be implemented in a plant10. The data processing system100can provide a digital twin model of the illustrated pulp and paper (wastewater) process by creating a model135. The model135can utilize the information from the flow diagram to extract asset data112of the assets, the topology data114of the arrangement or connectivity and flow data116of the connectivity and flow between the assets12of the model135.

In the flow diagram, an untreated (raw) waste water is input into a primary mechanical clarifier, which can correspond to an asset12A of a model135. The output flow from the asset12A can be input into an aeration basin (asset12B), from which it can be input into a secondary clarifier (asset12C).

The asset12C, being the last asset in the chain, has two outputs. The first output includes effluent water that is safe to be discharged into a river or the sea. The second output however includes a return activated sludge and goes either back into aeration basin (asset12B) to be once again filtered by the second clarifier (asset12C). The second output can include the sludge that cannot be further processed and that can be output to a sludge thickener.

FIG.2Billustrates an example flow diagram that can provide some asset data112in relation to assets12, some topology data114in relation to the arrangement of the assets and some connectivity and flow data116, with respect to the flow of the process across the assets.

FIG.2Cdepicts an example flow diagram of a flow diagram of a process that can be modeled by a data processing system100is illustrated.FIG.2Cshows a flow diagram of an example food and beverage process that utilizes a reverse osmosis (RO) system. The data processing system100can provide a digital twin model of the illustrated process by creating a model135that has eleven assets12, their illustrated topology and connectivity and flow.

The example flow diagram begins with a raw water tank, which in a model135can be described as an asset12A. The fluid that is output from the raw water tank is input into a raw water pump (asset12B), the output of which can be fed into a filtration process that implements multimedia filtration or ultrafiltration (asset12C). The output fluid from the filtration process can then go into a sterilization process (asset12D), the output of which can go into a high pressure pump (asset12E). The output from the high pressure pump can then be input into a Reverse Osmosis (RO) system (asset12F), the output of which can then be fed into a product tank (asset12G), the output of which can then be input into a product pump (asset12H). The output from the asset pump can be input into ozonation system (asset12I), the output of which can then be input into an ultraviolet (UV) sterilizer (asset12J), the output of which can then be fed into a cartridge filter (asset12K). The output from the cartridge filter can then finally be fed to the use point, which means it is ready for consumption.

The flow diagram ofFIG.2Crelates to an illustration that can provide some plant database110data on the process to be modeled. The data can include asset data112on assets12A-K, topology data114on the arrangement of assets and connectivity and flow data116showing the flow path of the material being processed.

FIGS.3A,3B and4depict examples of a model135for a RO process that can be operated at a plant10. WhileFIG.3Aillustrates an example model135of a RO process containing the four layers122-128and their physical data and measurements, theFIG.3Billustrates an example of a model135of the same RO process that includes not only the physical data, but virtual data as well.FIG.4illustrates a close-up simulated model135fromFIG.3Bwith a greater level of detail. These three figures together help illustrate how data layers122-128form a model135and how virtual data improves the model, all of which can then be simulated by a simulator145.

FIG.3Adepicts an example model135using physical data from a plant database110is illustrated.FIG.3Aillustrates an asset layer122comprising seven assets12that are more clearly shown and identified in the relatedFIG.4, in which the assets are shown as: a feed pump, a cartridge filter, a booster pump a high pressure pump, an energy recovery device, a RO train and a perishable tank.

Vertically lined up with and standing above the asset layer122is topology layer124. The topology layer124includes connecting lines describing the arrangement between the assets in asset layer122. The arrangement is illustrated with lines having nodes at their ends, which can be used to denote the distance and direction between each of the assets.

Vertically lined up with the topology layer124and standing above it, is a connectivity and flow layer126. The connectivity and flow layer126includes arrows indicating direction of the connections between the assets, thereby specifying in which direction the processed material, in this case fluid, is moving across or through the assets12

Vertically lined up with the connectivity and flow layer126is the instrumentation layer128. The instrumentation layer128includes circles denoting locations where physical instruments18, such as sensors, are located with respect to the assets12in the model135.

Combining all four layers122-128is the model135at the bottom of theFIG.3Ain which all four layers are incorporated into a single representation model of the RO process. Since the model does not include any virtual data, it is limited to only physical instrumentation data118and physical measurements119. This model135can include a digital replica of the reverse osmosis (RO) process at the plant10.

In contrast toFIG.3A,FIG.3Bshows the same four layers122-128as inFIG.3A, but including another layer of virtual data at the top. The virtual data layer can include the same layer functionality as the instrumentation layer128, for example, except that it includes virtual instruments165and their virtual instrumentation data170. The virtual layer can therefore comprise virtual instruments165disposed very similar to the way assets12are disposed in the asset layer122, e.g., simply placed into their respective locations in which they would have existed had they been real instruments at the plant10.

FIG.3Billustrates an example virtual layer on top of the four layers122-128that includes four virtual instruments165along with their corresponding “f(x) derived functions” which denote functions for calculating the virtual instrumentation data170. In particular, as more clearly depicted inFIG.4, all four virtual instruments165can be disposed in the vicinity of the RO train asset. One virtual instrument165can be disposed at the flow path between the fluid output of the booster pump and the input of the RO train. A second virtual instrument165can be disposed between the fluid output of the high pressure pump and the input of the RO train. A third virtual instrument165can be disposed at the flow path between the output of the RO train and the input into the energy recovery device. The fourth virtual instrument165can be disposed between the output of the RO Train and the input of the permeate tank. By placing these four virtual instruments165at these locations, the model135can acquires four more important data points that can help it better estimate the performance of the RO system.

Because theFIG.3Bincludes the virtual data layer on top of the four layers122-128, the corresponding model135includes both physical and virtual data. Accordingly, model135ofFIG.3Bincludes asset layers122-128, and a set of virtual instruments165and their corresponding virtual instrumentation data170. As illustrated inFIG.3B, the virtual instrumentation data can be generated using mathematical functions based on physical instrumentation118and their corresponding measurements119.

FIG.4depicts an example of a simulated model135that uses both physical and virtual data is illustrated.FIG.4shows a more-detailed version of aFIG.3Bmodel, along with the above-discussed four virtual instruments165and their corresponding virtual instrumentation data170that in this illustration are denoted as “f(x) auto derived” functions. Instrumentation data170therefore can include mathematical functions that automatically determine virtual instrumentation data170from physical instruments18and their corresponding physical measurements119.

FIG.5depicts an example method500. Method500can be implemented by data processor system100illustrated inFIG.1with the help of any technical features inFIG.7or any other feature or component described anywhere herein. At a high level method500includes a step502at which a data processing system100provides a graphical user interface enabling a user to configure a model of a system or a plant to be generated by model generator130. At ACT504, data processing system100loads historical data, including for example, spreadsheets with data for one or more sensor instruments18. At ACT506, data processing system establishes a live data connectivity to enable direct data connection to the plant10, over a network101and including, for example, via one or more cloud functionalities. At ACT508, data processing system can process the plant information and derive new, virtual information as a function of the plant configuration. At ACT510, data processing system100continues to process the digital twin functionality to keep updating the model135based on streamed updated data.

At ACT502, an interface15of a data processing system100provides a graphical user interface. The graphical user interface can include, for example, the interface features. At ACT502, a model135, such as for example the illustrated Digital Twin level 1 (DT1), can be configured using the plant's piping and instrumentation diagrams (P&IDs), process flow diagrams (“FDs), plant operation procedures and equipment data sheets. The configuration can be completed by the user. For example, a user of the data processing system100can use equipment data sheets to specify or select assets12. The user can use P&IDs or PFDs to specify the assets' topology in the system or process being modeled. The user can also use the P&IDs and PFDs to specify the connectivity and flow between the assets12. The user can also utilize P&IDs to identify and specify the physical instrumentation, such as sensors, deployed in the plant10.

At ACT504, data processing system100loads historic instrumentation data measurements119. For example, a model generator130can load historical measurements119via an interface15with user's inputs or user provided files. The loaded instrumentation measurements119can include historic data of any number of physical instruments18at the plant10. Historic data can be keyed by tag identifiers. For example, in step502, a user may have a specific tag, FT-101. Uploading a spreadsheet which contains data for this tag will map this historic data to said instrument18, such as a sensor in the system. As such, the historic data of a particular physical instrument18at plant10can remain associated with that instrument18.

At ACT506, interface15of the data processing system100establishes a live data connectivity with plant10. Established live data connectivity can enable installation or configuration of one or more internet-of-things (IoT) devices and establish a direct data connection to the cloud via a supported data exchange protocol, such as for example a message queuing telemetry transport (MQTT) or representational state transfer (REST) protocols.

At ACT508, the data processing system100can execute the “fact” auto-derivation to have the model generator130, acting as a digital twin engine, process the plant information and derive the new information as a function of the plant configuration. For example, model generator130can process the information in plant database110and generate an updated model135. The model generator130can utilize a virtual data generator160to generate virtual instrumentation165and calculate its virtual data measurements170. Model generator130can receive new real-time measurements119for one or more sensors, and in response to the new real-time measurements119update the model135and recalculate the virtual measurements170.

At ACT510, the data processing system100runs the digital twin model135that continues to process incoming streaming data and keeps all derived process intelligence. This can include, for example, the virtual measurements170, which can be continuously updated as the new physical data measurements119are being received. Model generator130can continuously run the model135in response to new real-time data updates from physical instruments18. The virtual data generator160can simultaneously recalculate the virtual measurements170in response to the new real-time data.

FIG.6Adepicts an example method600. Method600can be implemented by a data processing system100ofFIG.1, alone or with the any of the features of theFIG.7or any other components described herein. At ACT602a data processing system100can acquire plant data. At ACT604, data processing system100can receive measurements from physical instruments18. At ACT606, data processing system100can identify virtual instruments165. At ACT608, data processing system100can construct the model135. At ACT610, data processing system100can use rules for interactions between the assets from the rules engine140. At ACT612, data processing system100can determine data for virtual instruments165. At ACT614, data processing system100can simulate the model135. At ACT616, data processing system100can determine a threshold for servicing an asset. At ACT618, data processing system100can predict future performance of an asset. At ACT620, data processing system100can generate a notification to service the asset.

At ACT602, data processing system100can acquire any data of a plant10. For example, data processing system100can acquire any one or more of asset data112, topology data114, connectivity and flow data116and instrumentation data118. Data processing system100can also acquire measurements119from any instruments18A-N at plant10. For example, an interface15of the data processing system100can receive data from plant10. Acquired data can include any information on assets12and their specifications, functionalities, performance, inputs and outputs, throughput and efficiencies, resources utilized such as the electrical power or gas or any other information to develop, configure or specify the models of assets12in the model135. Acquired data can include any information on the connectivity, connections and instrumentation18to be modeled in the model135, including their specifications, sizes, shapes, performance characteristics, throughput, functionalities, efficiencies and any other information for their modeling within the model135.

A data processing system100can receive user selections from an interface15, where the user selects one or more descriptions of the system or a process operating at the plant10. For example, the user can select an industry of the system or process to be modeled, a type of a system or process to be modeled, the complexity level of the system or process to be modeled, functionality of the system or process to be modeled or any other feature or characteristic of the process or system operating at the plant10. Responsive to such user selections, data processing system100can load from a plurality of preconfigured models135stored at the model generator130a particular model135that corresponds to the user's description. Data processing system100can receive selections or descriptions of asset data112, topology data114, connectivity and flow data116, instrumentation data118or measurements119from user selections at the interface15. Data processing system100can acquire at least some of the received data via a network101, or from one or more user inputs or selections.

At ACT604, data processing system can receive measurements119. The measurements119can be any measurements or data from physical instruments18at the plant10. Data processing system100can utilize the interface15to acquire measurements119as a user's input. Data processing system100can include past measurements119, such as for instance one or more files of data comprising series of past sensor readings form instruments18. Data processing system100can load the history data of the measurements119from any number of instruments18through files, scripts or spreadsheets having such data. The data processing system100can receive measurements119through a stream of data from the interface15of the plant10. For example, measurements119can include real-time sensor data, which can be received over the network101. Data processing system100can receive measurements119comprising a plurality of measurements for each of a plurality of physical instruments at the plant10.

At ACT606, data processing system100can identify virtual instruments165to include into the model. Identified virtual instruments165can be, for example, one or more KPIs. Data processing system can identify virtual instruments165in response to identifying the type of the system or process at the plant10. For example, virtual instruments165can be identified in response to the user descriptions of the system or process to be modeled at ACT602. Virtual instruments165can also be identified in response to identifying the model135. For example, a data processing system100can identify a model135based on user's descriptions of the system or process at the plant10, and the identified model135can include a set of predetermined virtual instruments165. The data processing system100can then allow the user to select the virtual instruments165to keep or decline.

At ACT608, data processing system100can construct a model135. A model generator130can construct the model135. The model generator130can construct the model135based on the user selections describing the system or process at the plant10at ACT602. The model generator130can construct the model135based on any one or more data from plant database110. For example, the model generator130can construct a model135based on any one or more of asset data112, topology data114, connectivity and flow data116and instrumentation data118. The model generator130can construct the model135based on measurements119.

The model generator130can construct model135by constructing the layers122-128and then lining them up vertically, such as for example inFIGS.3A-4. When the layers122-128line up vertically, the model generator130can combine the layers122-128to construct the model135. The model generator130can use any combination of one or more layers of the asset layer122, topology layer124, connectivity and flow layer126and instrumentation layer128to construct the model. The model generator130can construct the model to include a layer of virtual data. The layer of virtual data can include virtual instruments165and virtual instrumentation data170. The layer of virtual data can also be lined up vertically as layers122-128and combined to construct the model135that comprises virtual instrumentation165and its data170.

At ACT610, data processing system100can use rules to specify interactions between assets of the model135. The model generator130can construct the model135based on execution of rules from the rules engine140that describes the operation of the model135. The rules can specify how assets connect to each other, how fluid or any other material processed by the assets flows or moves from one asset to the next, the rate at which the process material moves and the power consumption for such operations. The rules can specify one or more physics-based properties, such as for example the physics of the fluid flow through the model135, relationship between the volume, temperature and pressure of a fluid in a given space, relationship between mass, acceleration and force, relationship between velocity, time and distance. Rules can also reference the specific type of asset, the quality characteristic of a time-series signal (raw, cleaned), the specific properties of the time series signal (flowrate, conductivity, temperature, pH), the material properties of the plumbing (or medium) that connects the assets and the variation in altitude between connected assets.

At ACT612, data processing system100can determine data for virtual instruments. A data processing system100can first identify virtual instrumentation165and then determine the virtual instrumentation data170. Data processing system100can identify and place one or more KPIs in one or more locations of the model135and determine their virtual data170.

Virtual instrumentation data170can be determined by determining its value from calculations that are based on instrumentation measurements119. For example, virtual instrumentation data170can be calculated using a formula for efficiency of an asset and inputs from the instrumentation data119. Virtual instrumentation data170can be determined by using a formula for performance of a RO membrane using one or more sensor measurements119that surround the membrane. For example, virtual instrumentation data170can be determined based on fluid inlet pressure, fluid outlet pressure, fluid temperature, fluid salinity or any other measurements119described herein.

At ACT614, data processing system100can simulate the model. Simulator145can simulate the model135based on the rules from the rules engine140. Simulator145can simulate the model135based on the physical measurements119. Simulator145can simulate the model135based on the virtual instruments165and the corresponding virtual instrumentation data170. The simulation can illustrate how the system or process being modeled in model135operates, including the operation of the individual assets, their individual throughputs, efficiencies, power consumption and rate of operation.

At ACT616, data processing system100can determine a threshold for servicing an asset. The resource utilization monitor150can determine the threshold for servicing an asset based on any one or more of: usage data of an asset, duration of time since the asset was last serviced or replaced, condition of the asset, amount of time the asset has been in operation, performance of the asset, efficiency of the asset, energy consumption of the asset, quality of performance of the asset, configuration of the asset, settings of the asset or any other features of an asset12discussed herein.

The threshold may be the recommended threshold for operating an asset without a service. The threshold may be a threshold beyond which operating the asset may be more costly than stopping production or service and servicing the asset. The threshold may be a threshold beyond which asset operation will provide diminishing returns for the user. The threshold may be a threshold beyond which the asset will not perform at a desired or recommended performance, speed, efficiency, throughput or quality. The threshold may be any threshold of acceptable performance, quality of production or efficiency below which the asset should not perform. The threshold may include any threshold below which the continued operation of the asset will incur more cost than generate revenue, given the diminished efficiency, throughput, quality of output or performance. The threshold may also be any threshold discussed herein.

At ACT618, data processing system can predict future performance of a particular asset in the model. Simulator145can predict future performance of a particular asset based on historical measurements119. Simulator145can predict the future performance of a particular asset based on a real-time measurements119. Simulator145can determine future performance of an asset based on the trend of asset related physical instrumentation measurements119over time. For example, simulator145can determine future asset performance by determining that asset's performance has been changing over time. Simulator145can determine future asset performance by determining that asset's power consumption has been changing over time. Simulator145can determine future asset performance by determining that asset related measurements119have been changing over time, such as for example pressure measurements, temperature measurements, permeation measurements, measurements of concentration of particular substances or molecules, or any other measurements119described herein. Simulator145can work together with a resource utilization monitor150to determine resource consumption, power consumption, and performance of the asset over time. Simulator145or resource utilization monitor150can take determined changes in the instrumentation measurements119over time and extrapolate their values into the future to determine where those values will be in the future. Resource utilization monitor150or Simulator145can then determine that resource utilization of the asset in the future will exceed a threshold.

At ACT620, data processing system100can generate a notification to service the asset. Alert generator155can generate a notification to service the asset based on the future data for performance determined at ACT618falling beyond the threshold determined at ACT616. Alert generator155can generate a notification to service an asset by requiring asset's service by a service professional, such as an equipment technician or equipment field engineer. Alert generator155can generate a notification to replace the asset. Alert generator155can generate a notification that states the time in the future when the asset will have to be serviced. For example, alert generator155can generate a notification a month before the asset is to be serviced to alert the user to schedule a timely asset service. Alert generator155can thereafter send one or more timely reminders to remind the user to schedule the service at the stated time in the future.

Alert generator155can generate the notification to service the asset at a time in the future based on resource utilization monitor150determining that asset performance will fall below the threshold at ACT616. For example, resource utilization monitor can determine the asset's threshold for acceptable power consumption, efficiency or performance. The alert generator can generate the notification based on the simulator145determining that asset performance will fall below the threshold at a particular point in the future. The alert generator155can alert the user of the particular point in the future when the asset will have to be serviced. The notification can include description of the desired service, such as a cleaning, oil change, parts change, parts replacement or entire asset replacement.

FIG.6Bdepicts an example method650. Method650can be implemented by a data processing system100ofFIG.1or any other components or features described herein. In a brief overview, method650includes ACT652data processing system inputs historical data of physical measurements into a model135. At ACT654, virtual data generator160determines virtual instruments and virtual instruments data170. At ACT656, simulator145generates an estimate of future plant performance based on the simulated model of the historical data. At ACT658, data processing system100receives updated or real-time data from physical instruments18. At ACT660, virtual data generator160determines updated virtual instrumentation data170. At ACT662, simulator145simulates the model based on updated or real-time data and updated virtual instrumentation data170. The ACT658-662can form a loop to provide for a method of continued updating of a digital twin model and its physical and virtual data.

At ACT652, data processing system100inputs into a model generator130historical data of measurements119from physical instruments18a plant10. Data processing system can input data into a model using any techniques described in connection with the step604of the model600. Historical data of measurements119from physical instruments18at the plant10can include, for example files, scripts, tables or spreadsheets, of data recordings from one or more physical instruments18. Data can include time stamps and values to track historical trends for each of the physical instruments18.

At ACT654, virtual data generator160determines data for virtual instruments. A virtual data generator160can determine, for example, any number of virtual instruments165in a model135. Virtual data generator160can identify or determine locations for the virtual instruments165. Virtual data generator160can determine virtual instrumentation data170for virtual instruments165based on the rules on asset interactions from the rules engine140, or based on user's selections. Virtual data generator160can determine virtual instrumentation data170for virtual instruments165based on the model135, including for example all of the layers122-128and the corresponding data112-118on which they are based.

At ACT656, a simulator145simulates the model135. The simulator145can simulate the model135based on historical measurements119. The simulator145can simulate the model based on the real-time received data. The simulator145can simulate the model using virtual instrumentation165and its virtual data measurements170. The simulator145can generate an estimate of future performance of the model135. The simulator145can determine the estimate of future performance using any techniques or steps described in step618of the method600.

At ACT658, data processing system100receives an updated data on the assets. Updated data can include, for example, fresh set of readings or measurements from physical instruments18at the plant10. Updated data can include, for example, real-time measurements119streamed over a network101. Updated or real-time measurements119can include any measurements119or their features as in step652, except that the data is updated and more recent. Updated data on the assets can include one or more new replacement assets to replace one or more of the old assets. The new replacement assets can include, for example, updated performance characteristics, throughput, efficiency and power consumption.

At ACT660, data processing system100determines updated virtual instrumentation data170. Virtual data generator160can determine updated virtual instrumentation data170based on the updated data or real-time measurements119. Virtual data generator160can, for example, recalculate the functions and calculations for virtual instruments165using the updated measurements119to determine updated virtual instrumentation data170.

At ACT665, simulator145simulates the model of the plant10based on updated data or real-time measurements and based on updated data for virtual instruments. The model generator130can rerun the model based on the updated/real-time measurements119, and the simulator145can rerun the simulation of the updated model135. The simulator can rerun the updated model135using the updated virtual instrumentation data170. The simulator145can estimate the future performance of the model135using replacement assets12instead of one or more original assets to determine the different in the performance using the new replacement assets. The simulator145can then determine the actual difference in performance between the new updated model that uses replacement assets and the old model that used the original assets.

At the end of ACT662, the method650can go back again to ACT658, forming a continuous loop between ACT658and662to provide for a digital twin model that continuously updates its model, based on the updated new data, including the new real-time, or periodically updated, physical measurements119and their corresponding virtual instrumentation data170.

With respect to an implementation of the methods600and650, the present solution is directed to a method of modeling a plant. The methods600or650can include receiving, by a data processing system having at least one processor and coupled with memory, one or measurements from one or more physical instruments located at a plant comprising a plurality of assets that perform one or more functions at the plant. The methods600or650can include identifying, by the data processing system, a virtual instrument for a location at the plant that lacks a physical instrument at the location. The methods600or650can include determining, by the data processing system, based on a set of relationships on interactions between the plurality of assets and the one or more measurements input into a model constructed with a plurality of layers corresponding to: i) the plurality of assets at the plant; ii) a topology of the plurality of assets; iii) connections and flow path of the plurality of assets; and iv) the one or more physical instruments at the plant, a virtual measurement for the virtual instrument. The methods600or650can include generating, by the data processing system responsive to a comparison of the virtual measurement with a threshold, a notification to service at least one of the plurality of assets.

The methods600or650can include performing, by the data processing system, a simulation of the plant based on the set of relationships applied to the plurality of assets in the model, the one or more measurements and the virtual measurement, and generating, by the data processing system, the notification in response to the simulation.

The methods600or650can include determining, by the data processing system, the threshold based on an estimate of utilization of a resource from continued performance of at least a first asset of the plurality of assets without servicing the first asset.

The methods600or650can include receiving, by the data processing system, the one or more measurements from a first physical instrument of the one or more physical instruments located at or within a threshold distance from a first asset of the plurality of assets. The methods600or650can include determining, by the data processing system based on the set of relationships and the one or more measurements input into the model, the virtual measurement for the virtual instrument located at or within the threshold distance from a second asset of the plurality of assets. The method can include generating, by the data processing system, the notification to service the second asset based on determining.

The methods600or650can include receiving, by the data processing system, the one or more measurements from a first physical instrument of the one or more physical instruments located at a first location at or within a threshold distance from a first asset of the plurality of assets. The method can include determining, by the data processing system based on the set of relationships and the one or more measurements input into the model, the virtual measurement for the virtual instrument located at a second location at or within the threshold distance from the first asset. The method can include generating, by the data processing system, the notification to service the first asset based on determining.

The methods600or650can include receiving, by the data processing system, the one or more measurements from a first physical instrument of the one or more physical instruments located at a first location at or within a threshold distance a first asset of the plurality of assets. The methods600or650can include determining, by the data processing system based on the set of relationships and the one or more measurements input into the model, the virtual measurement for the virtual instrument located at a second location at or within the threshold distance the first asset. The methods600or650can include generating, by the data processing system, the notification to service a second asset of the plurality of assets based on determining.

The methods600or650can include constructing, by the data processing system, a first layer of the plurality of layers based on data on the plurality of assets at the plant, a second layer of the plurality of layers based on data on the topology of the plurality of assets at the plant, a third layer of the plurality of layers based on data on connections and flow path of the plurality of assets at the plant, and a fourth layer of the plurality of layers based on data on the one or more physical instruments at the plant. The methods600or650can include generating, by the data processing system, a display of the model comprising the first layer, the second layer, the third layer and the fourth layer.

The methods600or650of the present solution can include receiving, by the data processing system, the one or more measurements of at least one of a flow rate of fluid, a salinity of fluid or a fluid temperature at or within a threshold distance from a first asset of the plurality of assets. The methods600or650can include determining, by the data processing system, based on the set of relationships and the one or more measurements input into the model, the virtual measurement of at least one of the flow rate of fluid, the salinity of fluid or the fluid temperature at or within the threshold distance from the first asset or at or within the threshold distance from a second asset of the plurality of assets.

The methods600or650of the present solution can include performing, by the data processing system, a simulation of a fluid processing plant based on the model, the set of relationships, the one or more measurements and the virtual measurement. The method can include generating, by the data processing system responsive to the simulation, the notification on efficiency of performance of the first asset or the second asset.

The methods600or650of the present solution can include receiving, by the data processing system, second one or more measurements for a second one or more physical instruments located at a second plant comprising a second plurality of assets. The methods600or650can include determining, by the data processing system based on a second set of relationships on interactions between the second plurality of assets, a second virtual measurement for a second virtual sensor located at the second plant.

FIG.7is a block diagram of an example computer system700. The computer system or computing device700can include or be used to implement the data processing system100, or its components such as the model generator130, plant database110, virtual data generator160, simulator145, interface15, resource utilization monitor150and alert generator155. The computing system700includes a bus705or other communication component for communicating information and a processor710or processing circuit coupled to the bus705for processing information. The computing system700can include one or more processors710or processing circuits coupled to the bus for processing information. The computing system700can include memory such as main memory715, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus705for storing information, and instructions to be executed by the processor710. The main memory715can be or include the plant database110or model generator130including any number of models135. The main memory715can also be used for storing position information, temporary variables, or other intermediate information during execution of instructions by the processor710. The computing system700can include a read only memory (ROM)720or other static storage device coupled to the bus705for storing static information and instructions for the processor710. A storage device725, such as a solid state device, magnetic disk or optical disk, can be coupled to the bus705to persistently store information and instructions. The storage device725can include or be part of the plant database110.

The computing system700may be coupled via the bus705to a display735, such as a liquid crystal display, or active matrix display, for displaying information to a user. An input device730, such as a keyboard including alphanumeric and other keys, may be coupled to the bus705for communicating information and command selections to the processor710. The input device730can include a touch screen display735. The input device730can also include a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor710and for controlling cursor movement on the display735. The display735can be part of the data processing system100, the client device20or other component ofFIG.1, for example.

The processes, systems and methods described herein can be implemented by the computing system700in response to the processor710executing an arrangement of instructions contained in main memory715. Such instructions can be read into main memory715from another computer-readable medium, such as the storage device725. Execution of the arrangement of instructions contained in main memory715causes the computing system700to perform the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory715. Hard-wired circuitry can be used in place of or in combination with software instructions together with the systems and methods described herein. Systems and methods described herein are not limited to any specific combination of hardware circuitry and software.

The computing system such as data processing system100or system700can include or be operating on clients and servers. A client and server are generally remote from each other and typically interact through a communication network (e.g., the network101). The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, a server transmits data (e.g., data packets representing a digital component) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server (e.g., received by the data processing system100from the client device20, instruments or sensors18).

The separation of various system components does not require separation in all implementations, and the described program components can be included in a single hardware or software product. For example, the data processing system100, the model generator130, virtual data generator160, simulator145, resource utilization monitor150or alert generator155can be a single component, app, or program, or a logic device having one or more processing circuits, or part of one or more servers of the data processing system100.

InFIG.9, an example system for servicing a plant10, such as a reverse osmosis plant, is illustrated. In a brief overview, the example system ofFIG.9can include at least one data processing system100in communication with at least one plant10and at least one client device20over at least one communication network101. The at least one plant10can include one or more assets12, which can include one or more RO membrane assets12, as well as one or more instruments18, that can include one or more RO membrane instruments18.

At least one data processing system100ofFIG.9can include at least one plant database110that can include one or more asset data112, one or more topology data114, one or more connectivity and flow data116, one or more membrane instrumentation data118and one or more membrane measurements119. Data processing system100A can include at least one model generator130that can include one or more models135, including for example a one or more RO plant models135A and one or more RO membrane asset models135B. The RO plant model135A can comprise an at least one asset layer122, at least one topology layer124, at least one connectivity and flow layer126, and at least one instrumentation layer128. The at least one RO membrane asset model135B can include a model of state of a RO membrane asset12. Data processing system100can include at least one interface15, at least one rules engine140, at least one simulator145, at least one resource utilization monitor150and at least one alert generator155. The data processor system100can include at least one virtual data generator160that includes one or more virtual instruments165and one or more virtual instrumentation data170. The at least one simulator145can include at least one optimizer180and at least one forecaster185.

Plant10can be any plant10discussed in connection withFIG.1, including for example a plant for processing fluid. Plant10can be a reverse osmosis (“RO”) plant10. The RO plant10can include several different assets12for a RO system or a process run therein. For example, a RO plant can include assets12, such as those discussed and illustrated in connection withFIG.2C, in which the asset12F is identified as a RO system. The RO plant10can also include other assets12surrounding the RO system asset12F, such as the raw water tank, raw water pump, filtration process (multimedia filtration, ultrafiltration), sterilization process, high pressure pump, product tank, product pump, ozonation system, UV sterilizer and the cartridge filter of theFIG.2C. Each of these assets12, as well as any others at the plant10, can be collectively referred to as the assets12of the RO plant10.

The RO plant10can also include a different selection and arrangement of assets12, including for example those discussed in connection withFIG.4, such as: the feed pump, the cartridge filter, the high pressure pump, the booster pump, an energy recovery device, the RO train and the perishable tank. These assets12can be collectively referred to as the assets12of the RO plant10.

The RO membrane asset12, sometimes herein referred to as the RO membrane module, or the RO system, can include any type and form of a system utilizing a RO membrane for fluid processing. The RO membrane asset12can include a plurality of RO modules, RO trains or vessels of RO membranes. The RO membrane asset12can include the asset12ofFIG.2Cor the RO train ofFIG.4. The RO membrane asset12can include any system or component that uses a pressure driven separation process based on semipermeable membrane along with the principles of crossflow filtration to filter fluid through it.

The RO membrane asset12can include one or more reverse osmosis filters, either individual or in a membrane skid. The RO membrane asset12can include carbon prefilters, carbon postfilters, polypropylene sediment filters, 1-micron polypropylene water filters and the RO membrane filtration stage for removal of excessive amounts of minerals and metals. The RO membrane asset12can include a single-stage, two-stage, three-stage, four-stage, five-stage RO train or RO system. The RO membrane asset12can include an RO system with any other number of stages. RO membrane asset12can also include an array of RO membranes organized into sets of individual RO membrane modules. The RO membrane asset12can include any reverse osmosis-based filtration system for fluid.

The RO membrane asset12can be configured to operate in conjunction with one or more pumps for pumping fluid into and through the RO membrane asset12. For this reason, the RO membrane asset12can be integrated with a fluid pump that can supply the fluid input into the RO membrane asset12. The RO membrane asset12can include any system or components utilizing an RO membrane that treats pumped or pressured water through the RO membrane.

Instruments18at the RO plant10can include any number of RO membrane instruments18. RO membrane instruments18can include any sensors, detectors or measurement devices for taking measurements or sensor data at an RO plant10. RO membrane instruments18can include any sensors, detectors or measurement devices for sensing, measuring or recording data relating to or indicative of an RO membrane asset12and its processing or operation.

RO membrane instruments18can include any type and form of sensors, detectors or measurement instruments measuring or taking data on, or indicative of, any one or more of: pressure or temperature, normalized salt passage, normalized product flow decline, pump speed, economic life of cleaning/replacement of the membrane, a change in pressure or a pressure drop, product flow, feed pressure, feed pressure limits, product conductivity, product conductivity limits, feed salinity, feed temperature, feed pressure, output salinity, output temperature, output pressure, running hours since the last cleaning/replacement, specific energy consumption, turbidity, salinity, water permeability and more. RO membrane instruments18can be placed upstream, downstream or within the RO membrane asset12. RO membrane instruments18can be placed inside of, on top of, to the side of, or otherwise within a threshold distance of the RO membrane asset12, such as for example within a threshold of 0.1 m, 0.5 m, 1 m, 1.5 m or 2 m from the RO membrane asset12. The RO membrane instruments18can gather measurements or readings that can be used by a virtual data generator160to produce one or more virtual instruments for the RO membrane asset12or for RO plant10. The RO membrane instruments can gather measurements or readings that can be used to generate one or more virtual instruments165and their corresponding virtual instrumentation data170.

A plant database110can include one or more asset data112, which can include one or more RO membrane asset12data. Topology data114can further include the topology data of the assets at the RO plant10. Topology data114can also include internal topology of a RO membrane asset12, which can be used for making a model of the RO membrane asset model. Connectivity and flow data116can include connectivity and flow data on the assets12at the RO plant10, but it can also include connectivity and flow data on the internal components and subsystems of the RO membrane asset12. Instrumentation data118can include any data on RO membrane instruments18. Measurements119can include any measurements or readings at the RO plant10, including any measurements on RO membrane asset12, or within a threshold distance of the RO membrane asset12. The threshold distance can be for example, up to 0.1 m, 0.5 m, 1 m, 1.5 m and 2 m.

The RO plant model135A can include the RO plant model that can utilize the asset layer122, topology layer124, connectivity and flow layer126and the instrumentation layer128of the RO plant10. The RO plant model135A can model the entire system or process at the plant10. For example the RO plant model135A can include a model of a RO plant10along with all its assets12including the RO membrane asset12. The RO membrane asset model135B can include a model of any RO membrane asset12. The RO membrane model135can include models, such as the ones illustrated or discussed in connection withFIGS.2A,2C,3A,3B and4.

The RO plant model135A can include the RO membrane asset model135B. For example, a RO plant model135A can model assets12and the RO membrane asset model135B can be used in place of a RO membrane asset12to more accurately determine and monitor its state. This can improve accuracy of both the RO plant model135A and the RO membrane asset model135B.

RO membrane asset model135B can also include the model of the RO membrane asset12and its internal operation, subsets and components. The RO membrane asset model135B can include for example the state of its individual RO membrane modules, sets of membrane filters, individual membranes themselves, as well as the internal arrangement of RO membrane modules within the RO membrane asset12and the flow through RO membrane asset12. RO membrane asset model135B can model and monitor the fluid pressure and flow, temperature, salinity, turbidity, permeability or any other property of the fluid or environment inside of, or surrounding the RO membrane asset12.

RO membrane asset model135B can include a model of various stages of a RO membrane asset12, including any of its RO membrane sets or trains, any prefilters, postfilters, along with any other RO membrane asset12internal components, their arrangement and configuration. A model135can include a membrane fouling model, which can include a model of a RO system or a membrane along with its internal degradation or deterioration, due to its prolonged usage.

RO membrane asset model135B of the membrane asset12can include both reversible and irreversible loss of performance as a function of time. Model135can include a mathematical model or a function for normalized membrane flux decline or parameters like membrane water permeability, normalized salt passage, membrane salt permeability including linear (irreversible) and exponential (reversible) factors. Such a mathematical model or function can be implemented by a rules engine140based on one or more rules applying reversible and irreversible factors to the RO membrane asset12.

RO membrane asset model135B can include a model of a fouling of the membrane over time. RO membrane asset model135state of the membrane can be determined by modelling water permeability, salt permeability and pressure drop factors in or around a RO membrane asset12. This can serve for indicative analysis of the membrane lifecycle costs associated with performance decline with different fouling rates. Even though real plant normalization curves can often be noisy, depending on a variety of measured and un-measured variables changing on shorter timescales and the instrumentation noise and calibration drift, their average or median trends can be sufficiently clear and indicative of changes in the system. As such these inputs can be preprocessed and averaged over a set range in order to determine the overall trends. In response to these parameters trends, extrapolated from the averaged or median trends, the data processing system100can determine that there is a high level membrane degradation due to irreversible fouling and recommend the partial replacement of membrane surface, or the full replacement, to bring back the original water flux of total membrane system.

RO membrane asset model135B can account for the type of prior service provided to the RO membrane asset12. For example, the model can include an indication of whether the last service included a complete membrane replacement or a partial membrane replacement. A RO plant10can change all of the membrane elements in all RO trains at the same time. A RO plant10can change one RO train at a time. A RO plant10can change some RO elements in each vessel at a time. Some RO plants10that decide to change one or two elements per vessel every year or so, or every several months, and they can keep a track of the replaced membranes very carefully. RO plants10can keep records about new and old element positions inside the pressure vessels if partial replacement is performed.

The RO membrane asset model135B can track the membrane fouling using a pressure drop measurement, which can be either virtual measurement165or physical measurement119. For RO trains with multiple stages, each stage's pressure drop or the overall pressure drop of the RO train can be used for this purposes. A pressure drop factor (k) [bar/(m3/h){circumflex over ( )}b] can have a more clear trend and a model135can model its behavior using the same structure that can be used also for a membrane salt permeability. The pressure drop coefficient can based on an exponential pressure drop. For example, the pressure drop can be calculated based on a factor of an average or a median value of a feed flowrate and a concentrate flow rate which can then have an exponent value to the power 1.5. The exponent however can be any number, such as for example any number between 1.0 and 10, such as for example, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9, 10 or more.

RO membrane asset model135B can also rely on parameters, such as water permeability, normalized salt passage or membrane salt permeability for the RO membrane asset12, as they can be indicative of operational temperature, membrane fouling and other related factors. The membrane model135B can include a function that is based, at least in part on the combination of one or more of the inputs of: a temperature, a feed salinity, length of time since the last cleaning or partial replacement action, the length of time since the last membrane replacement, a reference temperature, a reference feed salinity and one or more model parameters.

RO membrane asset model135B can further include parameters or inputs relating the feed salinity, feed temperature, feed pressure, as well as any other parameters or inputs discussed elsewhere herein, including any measurements from any physical or virtual instruments.

Model135of a RO membrane asset12can include a parameter for incorporating the effect of a partial membrane replacement to the model. Partial membrane replacement can change the irreversible fouling for at least a part of a membrane. Model135can include a parameter indicative of the replacement efficiency (Meff) to improve the model accuracy by accounting for the fact that partial replacements do not improve the membrane efficiency as complete replacements that remove all the used or partially deteriorated membrane components.

If a RO plant partially replaces the membranes, the shape of the graph of the sensor readings from the RO membrane instruments18can be different than in the case where the RO plant replaces all the membranes. After each partial membrane replacement, the irreversible fouling can be changed. New RO membrane elements that are installed into the system can be placed into the tail positions of the pressure vessels to prevent them from being over fluxed and thus becoming fouled prematurely. The elements that are usually removed from the vessel can be the lead membranes since they can work the hardest (e.g. they run at the highest flux rate and many times are the ones that become the most fouled). Their service or replacement can include a complete removal and reloading of all elements or very carefully removing the lead elements and then slowly pushing the remaining elements forward. The RO membrane elements however can also be removed from the front end, the middle sections or the whole assembly can be replaced as once.

An optimizer180of a simulator145can include the structure and functionality, including hardware and software combination, scripts, program code, executables or applications for optimizing a model135or an asset, such as a RO membrane asset12. The optimizer180can include the functionality for determining the level of performance of an asset, such as a RO membrane asset12. The optimizer180can include the functionality for determining the current level of performance for an asset, such as a RO membrane asset12. The optimizer180can include the functionality for determining an optimal level of performance for an asset, a level of performance to maximize the production throughput, a level of performance to maximize the longevity of the asset, a level of performance to maximize the energy savings of the asset and a level of performance to maximize the quality of the product.

The optimizer180can include one or more optimization functions for finding the optimal settings of a given plant10, such as the RO plant10. The optimization functions can include the functionality to find the optimal settings to: maximize the plant production, maximize the efficiency of the plant's production, minimize operational costs, maximize the energy savings during the production, maximize the throughput, maximize the longevity of the assets12, maximize the longevity of a RO membrane asset12, or maximize the quality of the output of the RO membrane asset12. The optimization function of the optimizer180can find the optimal settings to maintain a production above an acceptable threshold level while minimizing the expenses associated with the production.

The optimizer180can identify presets, settings, set-points, operation modes and configurations of assets12of a RO plant10to run the RO plant10at an optimal level. The optimizer180can utilize one or more simulations of a model135to find optimal asset12settings, presets, set-points, operation modes and configurations. The optimal asset12settings, presets, set-points, operation modes and configuration can be identified to: maximize the plant operation performance, maximize the plant operation throughput, maximize the plant operation energy efficiency, minimize operational costs and maximize product quality. The optimizer can find such optimal solutions within constraints of recommended settings or limits of one or more assets. Optimizer180can utilize simulator145and its simulations independently from forecaster185and vice versa. Optimizer180can use simulator145to run simulations that optimize set-points to the modeled assets12independently from forecaster185. Optimizer180can use simulator145to run simulations that optimize set-points to the modeled assets12together with the forecaster185performing such simulations based on future predicted set-points.

As a membrane performance deteriorates with operating time, both membrane permeability and salt rejection can decline at certain rates. Because of this, optimizer180can determine the optimum maintenance schedule for the assets12, including the RO membrane asset12, including for example the RO modules cleaning, maintenance, cleaning or partial or full replacement. Membranes that are still in quality condition can be effectively cleaned. However, after prolonged exposure to fouling conditions, performance restoration through membrane cleaning can no longer be effective as the limits of system performance (e.g. feed pressure and permeate quality) can be exceeded. At that point, either all or some of the old membranes can be replaced with new elements to restore the system performance.

The forecaster185of a simulator145can include structure and functionality, including hardware and software combination, scripts, program code, executables or applications for forecasting performance of the plant10or its systems and processes. Forecaster185can utilize simulations to identify future operation of plant10, given processes that are expected to occur in time, such as asset12deterioration, reduced efficiencies, and more. Forecaster185can use historical data of various measurements, including virtual and physical data, to determine trends for various readings and measurements over time. Forecaster185can then extrapolate future performance from the past and present readings. Forecaster185can then make determinations about a performance of a particular asset12, such as RO membrane asset12, through time in the future. In combination with the determinations from a resource utilization monitor150, such as when a production or operation falls below a threshold, Forecaster185can determine a time in the future when an asset12, such as a RO membrane asset12, should have its maintenance, replacement of parts, service or total replacement.

Forecaster185can simulate operation of a plant10using different assets. For example, forecaster185can run a simulation of a RO plant10if a different RO membrane asset12is used instead of a current one, to find the performance characteristics under those circumstances. Similarly, forecaster185can run a simulation of a RO plant using different pumps or other assets12, and identify how different would the performance of plant10be with such assets12. Forecaster185can utilize simulator145and its simulations independently from Optimizer180and vice versa. Forecaster185can use simulator145to run simulations that forecast future operation based on predicted future input values, independently from Optimizer180. The forecaster185can utilize the simulator145together with Optimizer180, thus performing optimization and a simulation together.

Forecaster185can make the determination of time duration until the next RO membrane service, maintenance or replacement together with other components of the data processing system100, including resource utilization monitor. Forecaster185can determine the time until the next RO membrane service based on several criteria, including: normalize salt passage, normalized product decline, pump speed, economic life of the membrane, cleaning/replacement previously done on the membrane, pressure drop, product flow, feed pressure and feed pressure limits and product conductivity limits and running hours since last service or replacement.

Utilizing the optimizer180and the forecaster185, data processing system100can determine the time (in hours or days) when the membrane skid should be serviced. The benefit of servicing the membrane can be balanced against the costs of such servicing. While servicing adds expenses, not servicing also has costs, including for example a risk of damage to the membranes, noncompliance, excessive energy usage, higher operating costs, more burden on other assets12, and others, all of which can be monitored or determined by the resource utilization monitor150.

Optimizer180can recommend optimal operating set-points based, at least in part, on the current operating conditions and the state of the membrane. The optimal operating set-points can be determined based on an objective function and constraints, while the state of the membrane can be determined by modelling water permeability, salt permeability and pressure drop factors in or around a RO membrane asset12.

An individual optimizer180for an RO plant10can be run for each RO train or a set of RO membranes independently. Therefore, optimization of a RO plant that includes multiple separate sets of RO membrane assets12can include multiple optimizers180, with one optimizer180addressing one or more of each sets of RO membrane assets12. The set-points can include parameters that the plant operators have either direct or indirect control over. These parameters can be adjusted by in the model135of the RO membrane asset12while leaving all other inputs constant. By changing the parameters in the model, the RO optimizer180can observe results and hone in on the optimal operation. The set-points can include those for a permeate flow and recovery and concentrate valve coefficient. The set-points can also correspond to the feed flow, feed pressure, temperature, permeate flow, recovery and concentrate flow as well as any other feature that can be measured by physical or virtual instruments discussed herein.

The optimizer180, alone or in combination with RO membrane asset model135B, can use the data from physical and virtual measurements, including for example the feed TDS, feed temperature, product pressure and pump inlet pressure. The derived parameter data can be collected and preprocessed to remove outlier values in it. Following the preprocessing, the optimizer180or the RO membrane asset model135B can average the values from the measurements over the last set number of days, where the set number of days can be specified when creating the optimization study. By averaging the values the model can determine the operating conditions for the optimization function in the optimizer180. The forecasting implemented by the forecaster185can be made under the assumption that the RO train will continue to operate at similar conditions in the future. The assumption can be changed however if any of the physical or virtual measurements indicate a trend of change that can affect the performance in the future, in which case the future projected operation can be adjusted.

RO membrane asset model135or the optimizer180can determine the state of the RO membrane asset12based on modelling membrane coefficients. The inputs to the function that can calculate the membrane coefficients can include one or more derived virtual measurements. The inputs to function that can calculate the membrane coefficients can include coefficients indicative of the feed pressure, temperature or flow, permeate osmotic coefficients, and RO membrane asset12configuration parameters, such as the number of pressure vessels, membrane elements, etc. The derived parameters can be pre-processed with those used for current operating conditions. These inputs can be used to calculate water permeability, salt permeability, pressure drop factors and a flow coefficient. The average over the last set number of days can be used for the optimization simulation.

Optimizer180can work alone or in combination with the resource utilization monitor150to minimize the cost of operation of the RO plant10. The optimizer180or the resource utilization monitor150can include a function calculating the expense of RO plant operation using the current, or projected, state of the modeled RO plant. The function can state that the expense of the operation is the sum of cost of energy usage, the brine disposal cost and the feed water cost divided by the permeate flow. The function can also include any other costs associated with the plant operation. The energy cost can be calculated from the pump energy usage or the amount of other source of energy, such as the gasoline or diesel for example, the brine disposal and feed water costs can be calculated using their market value.

The RO membrane asset model135can include constraints to prevent the model from suggesting unrealistic or undesirable operating points. The constraints can include, for example: maximum and minimum recovery, maximum and minimum flow, maximum and minimum concentrate valve flow coefficient, maximum product, maximum pump speed, maximum feed pressure, maximum membrane element flux, maximum membrane element recovery, minimum feed flow and maximum brine flow. The optimizer180can run the optimization function within the confines of these constraints for any one of the input parameters. Similarly, the simulator145and the forecaster185can simulate or forecast the performance of the models simulated using the constraints.

Optimizer180, alone or in combination with the resource utilization monitor150, can take the model135with current operating conditions, membrane conditions and set-points and calculate the current expense of operating the plant10. The optimizer180can then vary the set-points to find the optimal operating point within the constraints for the model135. If the operating point is different from the current operating point, an alert generator155can suggest the optimal set-points for one or more assets12to the user. The optimizer180can also work together with the alert generator155to inform the user of the estimated benefits, such as savings, and other operating parameters such as the feed flow or the performance at the optimal point.

A system to service a plant that processes fluid can include a data processing system comprising memory and one or more processors. The data processing system can receive data for a membrane in a plant comprising a plurality of assets to process fluid, where the data is indicative of at least one of a fluid permeability of the membrane or a salt permeability of the membrane. The data processing system can determine a level of performance of the membrane based on the data for the membrane input into a model of the plant generated with a topology indicative of one or more relationships between the plurality of assets and a flow path between the plurality of assets. The data processing system can predict, based on the model and responsive to the level of performance input into an optimization function for the plant, a time at which the level of performance degrades below a threshold. The data processing system can provide a notification of the time at which the level of performance degrades below the threshold predicted using the optimization function to cause servicing of the membrane used to process the fluid at the plant.

The data processing system can receive data for a first asset of the plurality of assets to process the fluid, the first asset located upstream from the membrane, and determine the level of performance of the membrane based on the data for the first asset. The data processing system can determine the level of performance of the membrane at a second time based on the data for the membrane and the data for the first asset, and predict, based on the model and the level of performance of the membrane at the second time, the time at which the level of performance degrades below the threshold. The data processing system can generate the optimization function based on the data for the membrane and the data for the first asset, and determine the threshold based on an estimate of resource utilization associated with operating the membrane without service.

The data processing system can generate the optimization function based on the data for the membrane and one or more operating conditions of the plurality of assets and provide a notification comprising optimal operating set-points based on the optimization function. The data processing system can generate, based on the optimization function, one or more optimized set-points for the plurality of assets to operate the plant at an efficiency above an efficiency threshold, the one or more optimized set-points including values for one or more of a permeate flow through the membrane, a recovery coefficient, a concentrate valve coefficient, a fluid feed flow and a fluid feed pressure, and provide a notification comprising optimal set-points based on the optimization function. The data processing system can determine an estimate of resource utilization based on at least one of electricity cost, brine disposal cost, feed water cost or a rate of permeating flow through the membrane.

The data processing system can receive the data for the membrane comprising an indication of at least one of a fluid salinity, a fluid temperature, a fluid pressure, or a rate of permeating flow through the membrane, and predict the time at which the level of performance degrades below the threshold based on the model and responsive to the at least one of the fluid salinity, the fluid temperature, the fluid pressure, or the rate of permeating flow through the membrane. The data processing system can receive the data for the membrane comprising an indication of at least one of a length of time since a prior servicing of the membrane or a replacement efficiency of the membrane at the prior servicing and predict the time at which the level of performance degrades below the threshold based on the model and responsive to the at least one of the length of time or the replacement efficiency. The data processing system can receive the data of the membrane as a real-time data stream; and determine the level of performance based on inputting the data received as the real-time data stream into the model.

FIG.10illustrates an example method1000. The method1000can be implemented by a data processing system100ofFIG.1orFIG.9, along with any features of theFIG.7or any other components, functions or features described herein. At ACT1002a data processing system100can receive reverse osmosis data. At ACT1004, data processing system100can determine a level of performance using a RO membrane asset model135B alone or in combination with RO plant model135A. At ACT1006, data processing system100can input the level of performance into an optimization function. At ACT1008, data processing system100can predict a RO membrane model performance. At ACT1010, data processing system100can provide a notification to a user. At ACT1012, data processing system100can receive updated RO data. At ACT1014, data processing system100can determine updated level of performance using a RO membrane asset model. At ACT1016, data processing system100can input updated level of performance into optimization function. At ACT1018, data processing system100can predict updated RO membrane asset performance. At ACT1020, data processing system100can provide an updated notification to the user.

At ACT1002a data processing system100can receive reverse osmosis (RO) data. The data can be received from plant10, such as a RO plant10. The received RO data can include any data about a RO plant10, including systems and processes operating at the RO plant10. The received data can include asset data112, topology data114, connectivity and flow data116and instrumentation data118of a plant10, such as a RO plant10. The received data can include measurements119described herein, such as the measurements from the instruments18and any virtual instrumentation data170that can be based on instruments18described herein. Data received can include historical data, a file with past physical or virtual data measurement values. Data received can include a periodically updated data or a real-time data stream.

The received RO data can include any data indicative of or related to a RO membrane asset12or RO membrane instruments18. Received RO data can include data from sensor or detector readings from RO membrane instruments18. The received data can include data or information indicative of the state or status of RO membrane asset12including for example: pressure or temperature, normalized salt passage, normalized product flow decline, pump speed, life of cleaning/replacement of the membrane, a change in pressure or a pressure drop, product flow, feed pressure, feed pressure limits, product conductivity, product conductivity limits, feed salinity, feed temperature, feed pressure, output salinity, output temperature, output pressure, running hours since the last cleaning/replacement, specific energy consumption, turbidity, salinity, fluid or water permeability, membrane water permeability, normalized salt passage, membrane salt permeability. The received data can include any data or information indicative of the state or condition of the RO membrane asset12.

The data processing system can receive the data for a first asset of the plurality of assets to process the fluid. The first asset can be located upstream from the RO membrane asset12.

At ACT1004, data processing system100can determine a level of performance using a RO membrane asset model135B. Data processing system100can determine the level of performance using a RO plant model135A. Data processing system100can determine the level of performance based on the RO plant model135A and RO membrane asset model135B.

The determined level of performance can include the level of performance of one or more assets12at a RO Plant10, the level of performance of the RO plant10, or the level of performance of a RO membrane asset12. Data processing system100can determine the level of performance of any one or more assets12at the plant10. Data processing system100can determine the level performance of any of the RO plant assets12, including any assets12discussed herein, such as for example assets12in connection withFIGS.2C,3A,3B and4. Data processing system100can determine a level of performance of the RO membrane asset12by inputting the data for the RO membrane asset12into a RO plant model135A generated using a topology indicating one or more relationships between the plurality of assets and a flow path between the plurality of assets.

Data processing system can determine the level of performance of a RO membrane asset12using a RO membrane asset model135B. The level of performance can be determined based on the RO membrane asset model135running the model using the data received at ACT1002. Data processing system100can determine the level of performance using a simulator145, an optimizer180or forecaster185, along with any of their functionalities described herein. The data processing system100can determine the level of performance of the membrane based on the data for a first asset of the plurality of assets that is located upstream from the membrane.

Data processing system100can determine the level of performance of RO membrane asset12based on data from any RO membrane instruments18discussed herein. The data from RO membrane instruments can be input into a RO membrane asset model135B. The level of performance can be determined based on any virtual instrumentation data170generated based on data from any RO membrane instruments18discussed herein. The virtual instrumentation data170generated based on RO membrane instruments18data can be input into RO membrane asset model135to determine the level of performance.

The level of performance can be determined based on the data from RO membrane instruments18input into a RO plant model135A that includes and runs an internal RO membrane asset model135B. The level of performance can be determined based on the virtual instrumentation data170that is generated based on RO membrane instruments input into a RO plant model135that includes and runs an internal RO membrane asset model135. The level of performance can be determined based on both data from any combination of assets12at the RO plant, the RO membrane instruments18and the virtual instrumentation data170that is based on RO membrane instruments18, being input into any combination of RO membrane asset model135B or RO plant model135A.

At ACT1006, data processing system100can input the level of performance into an optimization function. The data processing system100can input the level of performance into a simulator145for processing with one or more simulation functions of the simulator145. The data processing system100can input the level of performance into one or more optimizers180. The optimizer180can run various set-points of assets12of the plant10in the RO plant model135or RO membrane asset model135B in order to identify the set-points that produce the most optimal performance. The optimizer can then compare the set-points of the models135A or135B to determine if there is a difference between the set-points of the current system and the system with optimal set-points.

The level of performance can be input into an optimizer180to determine if the set-points of the RO membrane asset12are different from set-points in the simulation that produced the most optimal results. The level of performance can be input into an optimizer180to determine if the set-points of the assets12of the plant10are different from set-points in the simulation that produced the most optimal results.

The data processing system100can generate the optimization function, based at least in part, on the data for the membrane and the data for a first asset of a plurality of assets at a plant10. The data processing system100can generate the optimization function based on the data for the membrane and one or more operating conditions of the plurality of assets. The data processing system100can generate, based on the optimization function, one or more optimized set-points for the plurality of assets to operate the plant at an efficiency above an efficiency threshold. The one or more optimized set-points including values for one or more of a permeate flow through the membrane, a recovery coefficient, a concentrate valve coefficient, a fluid feed flow, a pump speed, a concentrate flow and a fluid feed pressure.

The optimizer180can compare the current level of performance of the plant10with different levels of performance of plant10simulated by simulator145in which the optimizer180or the optimization function varies settings, inputs or configurations of one or more assets12at the RO plant10. The optimizer180can compare the current level of performance of the plant10with different levels of performance of plant10simulated using varied settings, inputs or configurations. The optimizer180can compare the current level of performance of the RO membrane asset12with different levels of performance of RO membrane asset12simulated by simulator145in which the optimizer180or the optimization function varies settings, inputs or configurations of assets12at the RO membrane asset12and other assets12at the RO plant10. The settings can be varied by the optimization function or the optimizer180within the constraints, to ensure that operation of assets12does not exceed recommended operation limits.

The optimal performance to which the optimizer can compare the set-points can include the performance that is the most efficient, the performance that saves most energy, the performance that produces most throughput, the performance that provides most longevity for the assets, including for example the RO membrane asset12, the performance that provides a desired set throughput or the performance that provides a desired rate of deterioration of the one or more assets, including the RO membrane asset12.

The optimal set-points can be selected responsive to a determination that they do not violate constraints of the assets. For example, the set-points identified by the data processing system100as the optimal set-points can continue being the optimal set-points of a model135even if the modeled performance is inferior to the performance of a model135completed with another set of set-points if such another set of set-points include one or more set-points that violate a constraint of an asset12. The optimal set-point can still be maintained as the optimal set-point in response to determination that the new set-point that were run by the model135violate a constraint for an asset12, regardless of the new set-point performance being superior to the performance of the optimal set of set-points. Accordingly, the optimal performance does not have to be the most optimal performance, but rather the performance that is most optimal within the constraints for any of the assets12.

At ACT1008, data processing system100can predict a RO membrane asset performance. The data processing system can predict the RO plant10performance. The RO membrane asset12performance or the RO Plant10performance can be predicted using a simulator145or a forecaster185. Forecaster185can predict a future trend of a function comprising data measurements from an instrument18or a virtual instrument165. Forecaster185can predict future trends for any number of functions of data measurements from any number of instruments18or virtual instruments165. Future trends can be determined based on projected future values of the measurements that continue the average or median trend that has occurred in the data over the past set amount of time. Current or real-time data can also be used to project future values. A fit model can be used to project future values, such as for example a fit model based on a best fit function of the past values. The amount of time over which the future trends can be determined can be one or more hours or one or more days, such as for example up to 1, 2, 3, 4, 6, 9, 12, 18, 24, 36, 48 or 72 hours, or up to 1, 2, 3, 5, 7, 10, 12, 14, 15, 21, 28 or 30 days.

The data processing system can predict a RO membrane asset performance using a simulation function of a simulator145. The simulation function with the Optimizer180can be used to provide operating set-points for predicting RO member asset performance. The data processing system can predict a RO membrane asset performance using a simulation function of a simulator145with the forecaster185to predict the future RO membrane asset performance.

The data processing system100can predict, based on the RO plant model135A or RO membrane asset model135B, and responsive to inputting the level of performance into an optimization function at ACT1006, a time at which the level of performance degrades below a threshold. The prediction at ACT1008can take place either directly based on the ACT1004or ACT1006. The threshold can be a threshold determined by a resource utilization monitor150. The threshold can also be determined based on user inputs, design guidelines or best practices. The threshold can be determined based on the cost of continuing to operate a RO membrane asset12without performing a service on it. The data processing system100can predict the time at which the level of performance crosses the threshold based on at least one of the RO plant model135A and RO membrane asset model135B and the at least one of the fluid salinity, the fluid temperature, the fluid pressure, or the rate of permeating flow through the membrane. Data processing system100can predict the time at which the level of performance degrades below the threshold based on the model and responsive to the at least one of the length of time since last service of the asset or the replacement efficiency. The data processing system100can determine the level of performance based on inputting the data received as the real-time data stream into the model.

Forecaster185or the simulator145can predict the RO membrane asset12performance based on a RO membrane asset model135B run using determined future readings from assets12, including RO membrane instruments and virtual instruments165. Forecaster185or the simulator145can predict the RO plant10performance based on a RO plant model135A run using determined future readings from assets12, including RO membrane instruments and virtual instruments165.

At ACT1010, data processing system100can provide a notification or an indication to a user. Data processing system100or alert generator155can provide a notification via a user interface15. The notification can include a push notification or an indication in a page that the user can access. The notification can indicate that the level of performance can be improved by modifying one or more set-points one or more assets12. The notification can indicate that the level of performance can be improved by modifying one or more set-points of a RO membrane asset12. The notification can indicate that the level of performance can be improved by modifying set-points within the constraints for the one or more assets12. The notification can indicate that the level of performance can be improved by replacing one or more assets12. The notification can indicate that the level of performance can be improved by servicing RO membrane asset12. The notification can indicate that the level of performance can be improved by replacing or partially replacing the RO membrane asset12. The notification can provide the amount of improvement that would gained by any of these actions.

The notification or an indication can state a time at which the level of performance degrades below the threshold to cause servicing of the membrane used to process the fluid at the plant. The notification can state a time when the level of performance of RO membrane asset12degrades below the threshold. The notification can state a time when the level of performance of any asset12degrades below the threshold.

The notification or an indication can state an amount of input or amount of output at which the level of performance of an asset12will reach the end of its efficient operation. The notification can state an amount of final product, such as for example clean water, at which the level of performance of an asset12will each the end of its acceptable level of performance. The data processing system100can provide a notification of the time at which the level of performance degrades below the threshold, or crosses the threshold, using the optimization function at ACT1006. The notification can cause servicing, cleaning, replacing, flushing or partially replacing one or more parts of the membrane asset used to process the fluid at the plant. The data processing system can determine the threshold based on an estimate of resource utilization associated with operating the membrane without service. The data processing system can determine an estimate of resource utilization based on at least one of electricity cost, brine disposal cost, feed water cost and a rate of permeating flow through the membrane.

At ACT1012, data processing system100can receive updated RO data. Data processing system100can receive any updated data from RO plant10. For example, data processing system100can receive a stream of real-time sensor measurement data from instruments18, including from RO membrane instruments18. The updated RO data can include a periodically updated data or event-based data. The updated RO data can include any functionality or features of data received at ACT1002.

At ACT1014, data processing system100can determine updated level of performance using a RO membrane asset model. The data processing system100can determine the updated level of model based on the updated data received at ACT1012. The data processing system100can determine the updated level of performance using any actions or functionality discussed in connection with ACT1004based on the updated data from ACT1012.

At ACT1016, data processing system100can input updated level of performance into optimization function. The data processing system100can input the updated level of performance into optimization function based on the updated data received at ACT1012. The data processing system100input updated level of performance into optimization function in connection with any actions or functionality discussed in connection with ACT1006based on the updated data from ACT1012.

At ACT1018, data processing system100can predict updated RO membrane asset performance. The data processing system100can predict updated RO membrane asset performance based on the updated data received at ACT1012. The data processing system100can predict updated RO membrane asset performance using any actions or functionality discussed in connection with ACT1008based on the updated data from ACT1012.

At ACT1020, data processing system100can provide an updated notification to the user. The data processing system100can provide an updated notification to the user based on the updated data received at ACT1012. The data processing system100can provide an updated notification to the user using any actions or functionality discussed in connection with ACT1010based on the updated data from ACT1012.

FIG.11illustrates an example method1100. The method1100can be implemented by a data processing system100ofFIG.1orFIG.9, along with any features of theFIG.7or any other components, functions or features described herein. At ACT1102, a data processing system100can preprocess data. At ACT1104, the data processing system100can determine the RO system state. At ACT1106, the data processing system100can begin the optimization1105of the system using ACTS1106,1108and1110. At ACT1106, the data processing system100can try new set-points. At ACT1108, the data processing system100can simulate RO operation. At ACT1110, the data processing system100can calculate costs and constraint violations. At ACT1112, the data processing system100can return optimal set-points.

At ACT1102, a data processing system100preprocesses data. Data preprocessing can include removing outliers, filling in of missing values and smoothing or removing noisy data. Data preprocessing can include resolving inconsistencies in data, integration of data from different sources or with different formats and integration of data into a structured format. Data preprocessing can include data normalization. Data preprocessing can include creating data for data values, such as adding metadata or labeling particular sets of data or values.

At ACT1104, the data processing system100can determine the state of the RO plant10or the RO membrane asset12. The data processing system100can determine the RO system state using a RO plant model135A. The data processing system100can determine the RO system state using a RO plant model135B. The data processing system100can determine the RO system state using the RO plant model135A and RO plant model135B together. The data processing system100can determine the state of the RO plant10and the state of the RO membrane asset12by modeling the RO membrane asset12within the model of the RO plant10. The data processing system100can perform this ACT using any ACTS of method1000, including for example ACT1004.

At ACT1106, the data processing system can try new set-points in order to find the most optimal operation. The new set-points can be applied to any one or more of the assets12of the model135A and model135. The new set-points can be chosen in response to, or based on, the set-points used in a prior calculation of the performance of the model. The new set-points can be chosen from a range of acceptable set-points of each of the assets12. The data processing system100can try setting different configurations and settings for any of the assets12. The data processing system100can try setting any parameters, configurations, set-points or performance modes that can affect the performance of any of the assets12.

At ACT1108, the data processing system100simulates the RO operation. The data processing system100can simulate the RO operation by simulating the model135A for the RO plant10. The data processing system100can simulate the RO operation by simulating the model135B of the RO membrane asset12. The data processing system can simulate the RO operation by simulating the models135A and135B together. The simulation of the models135A and135B together can include treating the model135B as a subset of the model135A. The data processing system can determine the level of performance of the RO membrane asset12based on the performance of at least one, or both of the model135A or model135B operating at the set-points input in ACT1106.

The data processing system100can simulate the RO operation using a simulation function of a simulator145. The simulation function can be used independently or together with the Optimizer180. The simulation function can provide the operating set-points for predicting RO member asset performance. The data processing system100can predict a RO operation using a simulation function of a simulator145with the forecaster185to predict the future RO membrane asset performance.

As the new measurements119from instruments18at the plant10can continue to be updated, the simulated RO operation can reflect updated model135A or135B that can result in a change of performance for a set of new set-points. The selection of the new set-points can be completed responsive to the measurements119updated from the instruments18at plant10. The data processing system100can simulate the RO operation using any functions or any ACTS of method1000, including for example ACTS1006and1008.

At ACT1110, the data processing system100calculates the costs and constraint violations of the system. The data processing system100can calculate the resources utilized by RO plant10system based on the simulated RO operation at ACT1108and based on the set-points entered at ACT1106. The costs can be calculated using steps any methodology described herein, including at least in ACTS1008and1010.

Optimal set-points can include the set-points that produced the most preferred RO plant operation up until that point. Data processing system100can continue running the optimization1105function through ACTS1106,1108and1110in a loop, continuously updating and seeking most optimal set-points. Optimization function of the optimizer180can run optimization1105utilizing RO plant model135to test out various set-points for assets12and find the set-points that provide the most optimal operation of the plant10. Optimization1105can include looping function in which the optimization function can utilize the RO digital twin in order to continuously try different set-points for the modeled plant10at the RO plant model135A. The optimization results can then be fed into experiment results for each day historically and compare against reference values. Experiment results can be plotted into a graph

New data from instruments18at the plant10, including RO membrane instruments18data, can be updated to the models135A or135B. The new data can be updated automatically, such as via a real-time data stream that updates the models135A and135B in real time and during the cycling of the optimization1105ACTS1106,1108and1110. The optimal set-points can be selected when the set-points input into the simulation at ACT1108of the updated models135A or135B produce results that are superior to the most optimal results up until that point.

Optimal set-points can also be selected within the constraints for any of the assets. For example, a new set of set-points can be input at ACT1106and a simulation can be run at1108, and they can provide superior results against calculated costs at ACT1110. However, if those set-points violate the constraints of any of the assets, then these set-points can be not selected as the most optimal set-points because they violated the constraint. Therefore, set-points identified as optimal set-points can provide worse results than new set-points to which it is compared, but if the optimal set-points don't violate the constraints that the new constraints violate, then the prior optimal set-points can still be maintained as optimal despite producing inferior results to the new set of set-points. Accordingly, the optimal performance can include the performance within the constraints for any of the assets12, disqualifying the optimal performance that violates any of the asset12constraints.

At ACT1112, the optimization function can return optimal set-points to the data processing system100. The optimal set-points can be the set-points that have produced the most optimal result up to date. The optimal set-points can be the set-points that have produced the most optimal results up to date while not violating the constraints of the assets12. After completing ACT1110, the data processing system100can or loop back to ACT1106to restart the optimization cycle again. The data processing system100can return a new set of set-points responsive to identifying the new set-points as producing the most optimal results, while also going back to ACT1106to continue optimizing by comparing a new round of set-points for the RO plant10and/or RO membrane asset12and any new updated data from instruments18that has updated the models135.

Referring now toFIG.12, an example of a system for optimization of a plant10is illustrated. For example,FIG.12can refer to a system for optimizing a plant per performance indicators the user chooses and using the set-points for assets that the user choose.FIG.12depicts an example system that can include at least one data processing system100in communication with at least one plant10and at least one client device20over at least one communication network101. The at least one plant10can include any number of assets12and instruments18, and an interface15A, such as interface15of the data processing system100. At least one data processing system100can include at least one plant database110including at least one measurements119A-N that can include data from instruments18. Data processing system100can include a model135that can include optimization inputs200. Data processing system100can include at least one Configurable Optimization Engine280(“COE280”) that can include optimization inputs200, optimization functions285, preprocessor250and postprocessor255. Data processing system100can include at least one interface15, which just as interfaces15A and15B, can include at least one optimization inputs200and at least one optimization outputs245. Optimization inputs200can include at least one performance indicators210, at least one asset set-points220, at least one constraints225, at least one state parameters230and at least one data time settings240. Performance indicators210can include at least one virtual instruments165, at least one instrument18or both. State parameters230can include at least one virtual instruments165, at least one instruments18or both. Optimization outputs245can include at least one set-point setting250and optimized performance info255.

At a high level, the system illustrated inFIG.12can provide a solution for optimizing plant operation in accordance with particular user selected performance indicators. The present solution can include a COE280which can include optimization functions285and a prompt at interface15in which the user can create a study for defining the optimization inputs200to be used for the optimization. The data from a plant10can be streamed to the plant database110and collected as historical data. The historical data can be input into the COE280(e.g. a playbook engine), which can use the data, the model135and the user provided optimization inputs200to determine optimization outputs245for optimizing the plant10.

In the initial set up, the user can define optimization inputs200via a prompt at interface15. The user can select performance indicators210, including for example, modeled instruments18or virtual instruments165(e.g. KPIs) for which readings to optimize, such as for example, maximize, minimize or set to a target or threshold value or range. The user can select set-points220for particular assets12at the plant10that can be adjusted (e.g. knobs to turn) to find the modeled optimized performance. The user can also select constraints225for any set-points220, state parameters230or any other optimization inputs200, to ensure that they remain within the acceptable range. The user can select or define the state parameters230to use as relevant indicators of the modeled state of performance of the plant10, or to identify the optimization outputs245. COE280can determine the output set-point settings250and the optimized performance information255for the optimized values of performance indicators210. The determination can be made based on correlating, interpolating or extrapolating various set-points220with their corresponding performance indicators210for similar state parameter230.

In the case of a user that is a process analyst looking for relationships between (e.g. correlations, interpolations or extrapolations) various set-points220and their corresponding performance indicators210, the user can define state parameters230, which can be used to determine how similar operating conditions are at various set-points220in the past and the present conditions. Upon identifying set-points220that, based on the historical and present data, result in improved plant operation under the same or similar conditions, the COE280can identify the set-point settings250to be used for the assets12. The COE280can run various modeled conditions using model135of the plant10varying set-point220values in order to determine which set-points220are most optimal, identifying them, either as is or adjusted, as the set-point settings250.

In addition to aforementioned functionalities or features, plant database110can include or store measurements119A-N of any number of sensors, detectors or measurement devices on plant10. Plant database110can include or store any virtual instrumentation data170. The virtual instrumentation data170can be from virtual instruments165from the model135of the plant10. Data stored in plant database can include readings from any instruments18or virtual instruments165which can be organized and arranged. Data can be arranged in a manner that corresponds to the COE280in order to be used for training of the optimization functions285. Data can be time stamped and include metadata for the timing or manner in which the reading was made. Readings from instruments18or virtual instruments165can be arranged into collections of data providing a snapshot in time of the plant10operation, whether physically or modeled. Collections of data can include assets220, performance indicators210, state parameters230and any other measurements119A-N from physical instruments18or virtual instrumentation data170from virtual instruments165corresponding to the same snapshot or set of environments at the plant10.

Interface15can include a prompt, such as a web browser prompt, for entering optimization inputs200. Interface15can provide buttons and prompts for the user to enter optimization inputs200to specify, configure or define the type of optimization the user wants to perform. Interface15can include software and hardware to display to the user the prompts for inputting, defining or selecting optimization inputs200, including performance indicators210, asset set-points220, constraints225, state parameters230, and data time settings240.

Optimization inputs200can include any user inputs or selections enabling the user to configure or customize the optimization to be performed by the data processing system100. The inputs or selections can select, define or input performance indicators210, including any virtual instruments165and instrument18, any number of asset set-points220, state parameters230and constraints225, as well as any number of data time settings240. Optimization inputs200can be selected from list or set of choices, or can be entered, defined or specified by the user. Optimization inputs200can include selection of particular instruments18or virtual instruments165to use as performance indicators210or as state parameters230. Optimization inputs200can include selections of types of constraints225, their corresponding values. Optimization inputs200both and data time settings240for various performance indicators210, state parameters and asset set-points220, which can define time dependencies between various variables, such as for example between some performance indicators210and state parameters230.

Performance indicators210can include any physical or modeled indicator for monitoring performance of a plant10. Performance indicators210can include any virtual instruments165(e.g. KPIs) or physical instruments18from the plant10. Performance indicators210can include modeled readings or values based on which the optimization is to be performed. For example, performance indicators210can be used to determine the state of performance of the plant based on optimization inputs200and plant data (e.g. measurements119A-N and virtual instrumentation data170). Performance indicators210can include the output based on which the set of set-points220input into the model135, optimizer180, or both, can be selected as the set-point settings250that provide the most optimized (e.g. maximized, minimized or set to a target value) performance indicators210.

Performance indicators210can include virtual instruments165, instruments18whose values are to be used as the performance of the plant to be optimized. Optimized performance indicators210can be performance indicators210that are maximized, minimized or set at a particular operation threshold or target. For example, performance indicators210can include process features or parameters that the plant operator wants to minimize, such as for example, the energy consumption amount, the cost per product, and the rate of wear and tear of the assets12or the rate of errors in the product or the faulty product rate. Performance indicators210can include process features that the plant operator wants to maximize, such as for example the product throughput rate, the product to energy consumption ratio or the ratio of product output to the resource input. Performance indicators210can include process parameters or feature that the plant operator wants to maintain at a particular operation rate or threshold, such as for example a particular power or energy consumption input rates or at a particular input or output rate, a particular pressure level, temperature level or a process rate level. In an example of a water processing plant10, a user can include any KPIs illustrated in the first column ofFIG.8, such as for example pressure drop (reverse osmosis), recovery, feed flowrate, permeate flowrate or normalized permeate flowrate. Performance indicators210selected by the user can include any combination of some that are minimized, some that are maximized and some that are set at a particular range.

An asset set-point220, sometimes also referred to as a set-point220, can include any desired or target value for operation an asset12at a plant10. Set-points220can include target setting for operation of any asset12at a particular rate of operation. For example, a set-point220can include a setting for a flow of a pump at a particular rate, a setting for applying a particular amount of electrical energy to a motor, a setting for applying a particular flow rate to a valve or any other setting for defining a rate of operation of any particular asset12. For instance, set-points220can include target value for defining the rate of operation of a high pressure pump, a stirrer, a heater, a chiller, a reverse osmosis system, a sterilization process tool, a switch, a product pump, a valve or any other asset12.

Set-points220provided by the user can include a range within which test values for the set-points220can be selected. For example, a set-point220can include an upper bound and a lower bound, defining a range of test values for set-point220that can be used for optimization.

State parameters230can include any indicators that can be used to determine the state of the plant10or its process. State parameters230can include any combination of virtual instruments165and instruments18, with either physical or modeled values processed by a model135, an optimizer180, or both. State parameters230can include a selection of virtual instruments165and instruments18from which the state of environment of the past data can be compared and matched with the state of the present environment.

State parameters230can provide indication of the state of the plant10at any particular point in the past for which particular performance indicators210had particular values. For example, state parameters230can be used to compare the present state of the plant10whose performance is to be optimized to the state of performance of the same plant10in the past. This can be done, for example, by comparing current state parameters230against the same state parameters230in the past and finding time periods in the past during which the state parameters230were same or similar to those currently at the plant. State parameters230can be same or similar to the state parameters230when, for example, they match each other to within a particular threshold range, such as 0.1%, 0.2%, 0.3%, 0.5%, 0.7%, 1%, 1.5%, 2%, 2.5%, 3%, 3.5%. 4%, 5%, 7%, 10%, 15% or 20%. State parameters230from the past data that most closely match the state parameters230that are currently in the plant10(e.g. match to within a particular threshold range) can be identified as having the same or similar conditions to those at are currently at the plant10.

Constraints225can include any limitation, such a lower or an upper limit, for any optimization input200, including performance indicators210, set-points220and state parameters230. Constraints225can include an upper or a lower limit, or both, for an optimization input200. A constraint225can include a maximum or a minimum acceptable value, thus maintaining an optimization input200within the constraints225and defining a range of acceptable values for the optimization input200. For example, a state parameter230or a performance indicator210can include an upper constraint225A and a lower constraint225B, such that the state parameter230can have any value between the constraint225A and225B. For example, a state parameter230or a performance indicator210can correspond to a pressure gauge reading and it can have its upper constraint225set to 15 PSI and its lower constraint225set to 5 PSI. In such an example, the state parameter230or the performance indicator210can have any values between 5 PSI and 15 PSI, but not any outside of it.

Constraints225for state parameters230can be used to determine if the state parameters230of the past are same or similar to the current state parameters230at the plant. For example, constraints225can be set to a particular threshold range for which the state parameters230have to match, discarding those that are outside of the range. For example, constraints225can include a range around the state parameters230, such as for example 0.1%, 0.2%, 0.3%, 0.5%, 0.7%, 1%, 1.5%, 2%, 2.5%, 3%, 3.5%. 4%, 5%, 7%, 10%, 15% or 20% from the present value of the state parameter230. Constraints225can be used to discard all historical data for which state parameters230fall outside of the set range from the current state parameters230.

Data time settings240can include a time range of the historical data (e.g. readings from instruments18or virtual instruments165) in the plant database110which to use for optimization. For example, data time settings240can include a time range of the past year for which to use the historical data. Data time settings240can include the historical data for the past week, month, six months, a year, several years or more. Data time settings240can include historical data within any time period, such as between any two dates that the user can select. Data time settings240can include values beyond which the data is stale and should not be used.

Data time settings240can include time offset values for shifting time stamps and temporally aligning particular readings that have a predetermined time delay between each other. For example, there can be a predetermined time delay between a particular sensor reading (e.g. instrument18) and a particular performance indicator210(e.g. a virtual sensor165reading that can be downstream and thereby delayed from changes at instrument18). Data time settings240can include set time delays, time off-sets or time shifts for the particular sensor with respect to the given performance indicator210in order to more accurately observe the correlation or cause and effect between the sensor and the performance indicator. For example, if a temperature change at a fluid input of a water treatment plant10can affect a performance indicator210at the output of the same plant, data time settings240can account for the time delay between a temperature change at the fluid input and the performance indicator210at the output. Data time settings240data can include time offset values to account for any time delays between any instrument18and virtual instruments165, including performance indicators210, state parameters230, or both. Data time settings240can include for example a time offset for time shifting data from a particular state parameter230, or a set-point220to a particular performance indicator210. If a time delay between a first sensor at the filter input and a second sensor at the filter output is known, a data time settings240can be used to account for that delay for the purposes of a model135, an optimizer180, or both.

Optimization outputs245can include any outputs relating optimization. Optimization outputs245can include output calculations or determinations from an optimizer180or COE280. Optimization outputs245can include set-point settings250or optimized performance information255. Optimization outputs245can include information on the collection of set-point settings250and what performance indicator210values they produce. Optimization outputs245can include information on improved efficiency or operation between the present operation and the expected improved operation with the set-point settings250applied to assets12.

Set-point settings250, also referred to as the optimized set-point settings or asset set-point settings250, can include set-points220for any number of assets12that optimizer180or COE280determines produce an improved or most optimal plant10operation. Set-point settings250can be selected from or based on set-points220based on performance indicators210they produce. Set-point settings250can include set-point220values that are determined, selected or calculated by optimizer180or COE280to produce the optimal or improved performance indicator210from the current performance indicator210. For example, if a user selects performance indicators210to be minimized, maximized or set to a particular target level, the set-point settings250can include set-points220values which when applied to assets12will produce desired maximized, minimized or target level performance of the performance indicators210.

Optimized performance information255can include any information on the expected performance of the plant10when set-point settings250are applied to assets12. Optimized performance information255can be arranged in a table, rows or columns showing any combination of set-point settings250and their corresponding performance indicators210, state parameters230and data time settings240. Optimized performance information255can also include information on savings or improvement performance between the present operation of the plant and the plant operated based on each set-point settings250. The optimized performance information255can include several set-point settings250and their corresponding performance indicators, state parameters230and data settings, providing the user with options to choose between various set-point settings250and their respective improved performances, expected instruments18readings and expected virtual instruments165readings.

Configurable Optimization Engine280can include any hardware, software or a combination of hardware and software for identifying optimization outputs245based on optimization inputs200. COE280can include code, programs, instructions, scripts or any other functionality that use optimization inputs200for determining optimized or improved plant10operation, including based on performance indicators210and state parameters230. COE280can include any functionality of an optimizer180.

COE280can compare modeled plant10operation data (e.g. set-points220, state parameters230and performance indicators210) with the current plant operation data (e.g. current set-points220, state parameters230and performance indicators210) in order to identify the set-point settings250to optimize the performance indicators210at the plant. COE280can determine plant10operation data (e.g. set-points, state parameters and performance indicators) for any range of historical and present data for the plant using models135. COE280can then identify plant10operation data whose state parameters most closely match the present state parameters and among that subset of identified matching operation data find set-points220for which performance indicators are most optimal (e.g. maximized, minimized or set to particular threshold).

COE280can include the functionality that inputs various input test values for asset set-points220within constraints225into a model135. COE280can determine and keep track of performance indicator210values that are within the constraints225. The COE280can include the functionality determine the performance indicator210values for the input asset set-points220. COE280can utilize optimization functions285to identify from historical or current data in plant database110those environment conditions that are similar to the current conditions in the plant10(e.g. via state parameters230). COE280can then, once identifying similar conditions (e.g. within the constraints225for the state parameters230) identify set-points220that are different than the current set-points for the assets and that have resulted in improved performance indicators210over those that are currently at the plant10. COE280can include software code, functions or instructions or other functionality for setting and applying any data time settings240to any one or more, or a combination of one or more, virtual instruments165and instruments18.

COE280can include software, scripts, computer code or functions establishing or implementing artificial intelligence (“AI”) or machine learning (“ML”) function. COE280can include functions that, for example, use trained machine learning models to identify optimized performance indicators210and their corresponding state parameters230and set-points220to identify the most optimal set-points to use for the assets (e.g. set-point settings250). COE280can include the functionality to train machine learning models using the data from plant database110. For example, a ML function of the COE280can be trained using data from instruments18and virtual instruments165to compare and correlate plant10operation performance between its various inputs and outputs. For example, a COE280can include a machine learning function that correlates asset set-points220with performance indicators210based on the past or present data from plant database110. COE280can include the functionality to train a machine learning functionality to correlate different state parameters230with different asset set-points220in order to determine environments or situations in the past in which the plant10achieved a particular performance. COE280can compare the present state parameters230against historical state parameters230to find matching environments and situations. Within such matching environments and situations, COE280can identify the set-points220which provide improved performance indicators210over the present ones. COE280can include the functionality to correlate set-points220for different assets12to state parameters230, performance indicators210, or both.

Optimization functions285can include any scripts, functions, instructions or other functionality for identifying optimized operation of plant10. The optimized operation of plant10can be any operation of plant10that utilizes set-points220within constraints225to provide most desirable performance indicators, such as for example performance indicators210that are minimized, maximized or set at a threshold. Optimization functions285can include machine learning scripts, code or sets of instructions or any other AI or ML related functionality. Optimization functions285can include one or more Similarity and Pareto search functions, Bayesian optimization functions, neural network-based functions or any other optimization functions or approaches.

Optimization functions285of the COE280can each include the scripts, computer code, and other functionality to identify set-points settings250by using any one or a combination of correlating, interpolating and extrapolating of optimal performance indicator210values with respect to set-points220in the historical or current data. For example, optimization functions285and COE280can include the functionality to find a relationship between (e.g. correlate, interpolate, extrapolate, find fit curve functions between) different set-points220with performance indicators210. The correlation, interpolation or extrapolation can be applied in accordance with constraints225limiting the range of set-points220and in for the data in which state parameters230of the historical data match the state parameters230of the current state at the plant10within an acceptable tolerance range. The acceptable tolerance range can include, for example, 0.5%, 1%, 2%, 3%, 4%, 5%, 7%, 10%, 15% or 20% of the corresponding state parameters230.

Optimization functions285or COE280can include the functionality to correlate or interpolate different set-points220with respect to performance indicators210using an interpolation function. Optimization functions285or COE280can interpolate a function based on the plotted set-points220with respect to performance indicators210and state parameters230. One or more functions can be interpolated for one or more set-points220, based on state parameters230and performance indicators. From an interpolated function, one or more set-point settings250can be identified along with their corresponding performance indicators210. For example, an interpolated function can identify a performance indicator210as a function of a set-point220. Likewise, an interpolated function can identify a set-point220as a function of performance indicators210. Optimization functions285or COE280can include the functionality to extrapolate one or more functions for set-points220with respect to performance indicators210and state parameters230. For example, COE280can extrapolate set-points220, based on state parameters230and performance indicators210. From the function, the COE280can determine one or more set-point settings250for their particular performance indicators210, based on the extrapolated function.

Preprocessor250can include any hardware, software or a combination of hardware and software for preprocessing data from plant database110. Preprocessor can include scrips, code, functions or instructions to identify and filter outlier data points, filling in of missing values and smoothing or removing noisy data. Preprocessor250can include the functionality for resolving inconsistencies in data, integration of data from different sources or with different formats and integration of data into a structured format. Preprocessor250can include the functionality for data normalization, creating data for data values, such as adding metadata or labeling particular sets of data or values. Preprocessor250can make all data from all instruments18and virtual instruments165in a single and uniform format.

Postprocessor255can include any scripts, code, functions or instructions for gathering any number of sets of optimization outputs245. A set of outputs245can include a particular set of set-points220for one or more assets12that produce a particular performance indicator210. Postprocessor255can include an arrangement of outputs arranged in descending order from the most optimal performance indicators210and their corresponding set-point settings220and the related optimized performance information255to the least optimal performance indicators210and their corresponding set-points220and the related optimized performance information255. Postprocessor255can include the functionality to select a set number of best performing set-point settings250and their corresponding performance information255.

Postprocessor255can include the functionality to apply weights to different optimized performance information255in order to select the best set-point settings250. For instance, the user may identify weights for various performance indicators210. Postprocessor255can apply the weights to the performance indicators210to rank optimization outputs245with set-points settings250and their corresponding performance indicators221higher based on the weights applied to performance indicators210. Postprocessor255can include the functionality to produce and arrange optimization outputs245in accordance with the performance of the plant10in each of the settings.

Referring now toFIG.13, a system diagram illustrates an example workflow of a data processing system100working with a COE280.FIG.13shows data from a plant database110that can be continuously fed into a preprocessor250. Plant database110can include asset data112, topology data114, connectivity and flow data116, instrumentation data118, measurements119A-N, and virtual instrumentation data170. After preprocessing, the output data from the preprocessor250can be fed into a COE280or model135and optimization inputs200can be input into the COE280. COE280can utilize the model135together with preprocessed data from preprocessor250and its own functionality to provide a continuous stream of optimization outputs245to the user.

Still referring toFIG.13, a plant database110can include data streamed from instruments18at the plant10, such as sensors, detectors logs, tests and other sources. Streamed data can include measurements119A-N. Plant database110can also include data streamed from virtual instruments165(e.g. virtual instrumentation data170), which can be generated based on models135that utilize the measurements119A-N. Plant database110can include various manufacturer data and design and control information, such as asset data112, topology data114, connectivity and flow data116and instrumentation data118. The data can include historical data and current data and can include readings gathered over any range of minutes, hours, days, weeks, months and years.

Preprocessor250can preprocess the data (e.g. remove outliers, fill in the gaps, add or modify metadata, including time stamps etc.) before it is sent to COE280or model135. COE280can use the preprocessed data together with optimization inputs200and to determine and produce optimization outputs245. Optimization outputs245can be provided continuously on a recurring basis, such as for example every one or several minutes, every one or several hours, every one or several days or every one or several weeks or months.

The optimization problem to be solved can be can be identified by the data processing system100, or the COE280, based on optimization inputs200. COE280can identify the performance indicators210for which to perform optimization, based on user selections. For example, a user can select a particular type of model135, such as for example, a reverse osmosis plant model135. The COE280can determine, in response to the user selection, performance indicators210of this model for which to run optimization, such as for example, maximized processed fluid throughput or minimized plant energy efficiency.

Optimization functions285of the COE280can be trained using the preprocessed historical or current data. COE280can time shift different data entries or readings based on the data time settings240. COE280can therefore time shift certain performance indicators210or state parameters230based on data time settings240.

Optimization functions285, which can be used and switched can include Similarity and Pareto search functions, Bayesian optimization functions, neural network-based functions or other similar functions known or used in the field. COE280can utilize any optimization functions285to determine optimal set-points settings250and their corresponding optimized performance information255. Determination can be done by correlating, interpolating or extrapolating data in plant database110. COE280can make the determination based on the operation of an optimization function285that is calibrated or trained using data from plant database110. Optimization function285can therefore continuously improve over time as new data is streamed and as new determinations are made.

Still referring toFIG.13, COE280can search through historical data for operating points (e.g. state parameters230within constraints225) to identify time frames in the past whose state parameters230closely match the current state parameters230. COE280can determine, from the identified time frames, those set-points220that produce performance indicators210that are most optimal (e.g. maximized, minimized or set to a particular target as selected or defined by the user). Suboptimal performance indicators210can include performance indicators210that are not maximized and constitute deteriorated plant operation, such as for example when performance indicators210indicate that the plant operates at less than maximum throughput or spends more than minimal amount of energy required to perform its process. COE280can recommend set-points220or operation that has not occurred before by training optimization functions285on the past data and using them as a model to estimate operation at different set-points220. Optimization functions285can work together with one or more models135to estimate operation at various set-points220. For a set of set-point values input into the COE280, the model135or both, performance indicator210values can be gathered and arranged or organized into combinations of performance indicator210and set-point220values that have occurred before but not been seen together.

COE280can derive a function of the set-points250based on the performance indicators210and state parameters230. The function can be determined based on set-points250used as data points to plot a curve. In some embodiments the curve can be a fit curve to the data points. COE280can use a function, such as a fit curve, the correlation, interpolation and/or extrapolation to identify set-points250based on the optimization inputs200. COE280can utilize relations between set-points220correlation or interpolation to identify optimized set-point settings250and their corresponding performance indicator210values. COE280can utilize extrapolation beyond historical values of the combinations of values to produce the optimized set-point settings250and their corresponding performance indicator210values.

During creation of studies at the interface15, users can indicate which optimization inputs200they can control and which virtual instruments165or instruments18can be used as state parameter230. The set-point settings250and their corresponding state parameters230and performance indicators210can be used to train the model for the next recommendation, providing a feedback loop to continually increase model accuracy. COE280, as well as any other data processing system100components, can be utilized locally on a local computing device or over a cloud and via a browser function at interface15.

Referring now toFIGS.14-20, examples of prompts at interface15for setting up an optimization study by a user are illustrated. InFIG.14, interface15includes a page for selecting performance indicators210(e.g. objectives) of the study. The user selects two performance indicators210: Recovery and Specific Energy Consumption for a Reverse Osmosis model, choosing to maximize the Recovery and minimize the Specific Energy Consumption.

FIG.15illustrates an example of interface15for setting up set-points220which can be used for optimization. Set-points220selected inFIG.15include Recovery (Reverse Osmosis, RO-1 Hourly) and RO-1 Product Flow (Reverse Osmosis, RO-1 Hourly), along with their corresponding lower and upper bounds. The lower bound for Recovery is 70 and upper bound is 100, while the lower bound for Product Flow is 32 and upper bound is 50.

FIG.16illustrates an example of interface15with a page for setting up state parameters230. The user selects state parameters230: Feed Temperature, Feed Conductivity, Feed pH, Normalized Product Flow, Normalized Pressure Drop and Normalized Salt Passage. Weights for the Feed pH is set to 1, while the weight for the Normalized Product Flow is set to 3.

FIG.17illustrates an example of interface15with a page for setting up constraints225. Constraints225selected in the illustrated example inFIG.17include Product Conductivity, Booster Pump Speed and Difference between Maximum and Actual Recovery. Lower bound for Product Conductivity is set to 0, while upper bound is set to 15. Lower bound for Booster Pump Speed is set to 60, while its upper bound is set to 100.

FIG.18illustrates an example of interface15with a page for setting up data time settings240(e.g. search options) in which the user selects a time period over which the historical data from plant database110is to be used for the optimization. Data time settings240selected include 999, which can correspond to a maximum value, indicating that all data is used, and no stale data is removed.

FIG.19illustrates an example of interface15with a page for Study attributes in which the user names the optimization study and selects the time period over which the study will be updated. The user selects to name the optimization study a New Study and chooses to have the optimization updated every hour.

FIG.20illustrates an example of interface15with a page of optimization outputs245. Optimization outputs245in the example inFIG.20depicts current conditions and recommended value for each of the state parameters230, along with their respective percentage match. For example, state parameter230named Normalized Product shows its current condition of 75.6, while the recommended match is 78.2, with match accuracy of 96.5%. Optimization outputs245also provide recommended performance indicators210. For example, performance indicator210named Recovery has the current value of 82.5% and the Recommended at 84.0%, while Specific Energy has the current value of 0.720 and recommended value would be 0.600 kwh/kgal. Optimization outputs245include increase in recovery rate of 1.54% and reduction in energy of 0.0602 kWh/m3, thereby showing the user how each of the performance indicators210will be improved if the recommended set-point settings250are accepted. The button for the set-point settings250is on the left side ofFIG.20, allowing for the user to open the page with the set-point settings250to view them and apply them to assets12.

Data processing system100can include functionality for optimizing operation of a plant. It can provide a prompt enabling the user to optimize a performance of a plant by selecting a plurality of performance indicators in a model of the plant from the prompt. The system can include the functionality, such as a COE280, to receive data from a plurality of physical instruments monitoring operation of a plurality of assets at the plant and to receive from the prompt the user's selection of a performance indicator of the plurality of performance indicators to optimize in accordance with a set-point of an asset of the plurality of assets. The system can use the COE280to generate a plurality of values for the performance indicator via the model135and based on the data and a plurality of test values for the set-point. The system can use the COE280to determine one or more settings for one or more set-points of at least one of the plurality of assets at the plant using one of a correlation, interpolation or extrapolation between the plurality of values for the performance indicator and the plurality of test values for the set-point. The system can also include the functionality, such as the optimization outputs provided to the interface15, to provide the one or more settings for the one or more set-points to adjust the performance of the plant.

Data processing system100can receive, via the prompt, a selection of one or more constraints for the set-point and generate the plurality of values for the performance indicator via the model and based on the plurality of test values for the set-point within the one or more constraints of the set-point. The system can provide the one or more settings for the one or more set-points to adjust operation of the at least one of the plurality of assets at the plant and display the one or more settings for the one or more set-points and optimized performance of the plant determined based on the settings for the one or more set-points input into the model.

Data processing system100can select, based on an input by a user, the model of the plant from a plurality of models for a plurality of plants, the model of the plant modeling operation of the plurality of assets at the plant. The system can receive selection of two or more performance indicators of the plurality of performance indicators, two or more set-points for at least two or more the plurality of assets and two or more constraints for the two or more set-points, generate the plurality of values for the two or more performance indicators via the model and based on the data and the plurality of test values for the two or more set-points within two or more constraints for the two or more set-points, and determine two or more settings for the two or more set-points using a correlation between the plurality of values for the two or more performance indicators and the plurality of test values for the two or more set-points.

Data processing system100receive, via a real-time data stream, updated data from the plurality of physical instruments, generate an updated plurality of values for the performance indicator via the model and based on the updated data and the plurality of test values for the set-point. The system can determine one or more updated settings for one or more set-points of at least one of the plurality of assets at the plant using a correlation between the updated plurality of values for the performance indicator and the plurality of test values for the set-point. The system can provide the one or more updated settings for the one or more set-points to adjust the performance of the plant.

Data processing system100can preprocess the data from the plurality of physical instruments, and receive data comprising the preprocessed data from the plurality of physical instruments. The system can train a learning optimization function using the data, and determine the one or more settings for one or more set-points of at least one of the plurality of assets at the plant further based on the correlation established by the learning optimization function. The system can receive, via the prompt, data from the plurality of physical instruments monitoring operation of the plurality of assets for water treatment at the plant and provide the one or more settings for the one or more set-points to adjust the performance of the one or more assets for water treatment at the plant. The system can receive, via the prompt, the selection of the performance indicator for one or more of a reverse osmosis recovery rate and a reverse osmosis energy consumption to optimize in accordance with the set-point for one of a fluid pump operation, a valve operation, a fluid pressure and a reverse osmosis product flow, and provide the one or more settings for the one or more set-points to adjust the one of the reverse osmosis recovery rate and the reverse osmosis energy consumption of the plant.

FIG.21depicts an example method2100. Method2100can be implemented by a data processing system100ofFIG.12, alone or with any of the features discussed anywhere herein, including for example inFIG.1,7,9or13. At ACT2102, a data processing system100can receive data of a plant. At ACT2104, data processing system100can receive optimization inputs. At ACT2106, data processing system100can preprocess received data. At ACT2108, data processing system100can generate performance indicator values based on a model135. At ACT2110, data processing system100can determine set-point settings based on optimization inputs. At ACT2112, data processing system100can post-process optimization output data. At ACT2114, data processing system100can provide optimization output data to the user.

At ACT2102, data processing system100, or any of its components, including for example COE280, can receive data from a plant10. Data can be received from a prompt for optimization of a performance of a plant indicating a plurality of performance indicators in a model of the plant that can be provided by the data processing system100. Received data can include historical and present data of a plant10. Historical and present data can include a file, a set of one or more files, a table of values, or data stored in a database, such as plant database110, or a database, such as a database110itself. Received data can be from a plurality of physical instruments monitoring operation of a plurality of assets at the plant and any data that can be stored in a plant database110, including any combination of one or more of asset data112, topology data114, connectivity and flow data116, instrumentation data118, measurements119A-N and virtual instrumentation data170. The received data can include data from sensors, detectors, data logs or any other measurements119A-N as well as virtual instrumentation data170of any virtual instruments165determined by one or more models135. Data processing system100can receive, via the prompt, data from the plurality of physical instruments monitoring operation of the plurality of assets for water treatment at the plant.

Received data, such as measurements119A-N or virtual instrumentation data170can include any measurement values taken over any period of time. The received data reading values can be time stamped and organized based on their time stamps so that each reading can be traced to a time period. Received data can provide records of measurement values from any number of individual instrument18at plant10taken over an extended period of time, such as a day, a week, a month or one or more years. Received data from instruments18can include values of instrument18measurements taken periodically, such as every second or every 5, 10, 30 or 45 seconds, every minute or every 5, 10, 15, 30 or 45 minutes, every hour or every 2, 4, 6, 12 or 18 hours or every one or more days.

Data can be received, via a connection over a network101. Data can be streamed via a real-time stream from the plant10. Data can include historical and present data. Data can include modeled values, for example including performance indicators210, set-points220, state parameters230, taken over time and stored into time frames. Data can be received via other means, such as a loaded file or an FTP comprising historical data. Data processing system can receive, via a real-time data stream, updated data from the plurality of physical instruments18at the plant10.

At ACT2104, data processing system100can receive optimization inputs200. Optimization inputs200can be received from a prompt function of an interface15, such as a selection, via the prompt, of a performance indicator of the plurality of performance indicators to optimize in accordance with a set-point of an asset of the plurality of assets. Data processing system100can select, based on an input by a user, the model of the plant from a plurality of models for a plurality of plants, the model of the plant modeling operation of the plurality of assets at the plant. Data processing system100can receive selection of two or more performance indicators of the plurality of performance indicators, two or more set-points for at least two or more the plurality of assets and two or more constraints for the two or more set-points. Data processing system100can receive, via the prompt, the selection of the performance indicator for one or more of a reverse osmosis recovery rate and a reverse osmosis energy consumption to optimize in accordance with the set-point for one of a fluid pump operation, a valve operation, a fluid pressure and a reverse osmosis product flow.

Optimization inputs200can be received over a network101from interface15A of plant10or from interface15B on a client device20. Optimization inputs200can be received from a file received via data at ACT2102. Received optimization inputs200can include any combination of user selected or user defined one or more performance indicators210(e.g. instruments18or virtual instruments165), one or more asset set-points220, one or more state parameters230(e.g. instruments18or virtual instruments165that provide the state or environment conditions at the plant10) and one or more constraints225for state parameters230or performance indicators210as well as one or more data time settings240. Received optimization inputs200can include user selections, user inputs or user definitions of performance indicators210, state parameters230, asset set-points220, constraints225and data time settings240. Optimization inputs200can be selected, defined or entered by a user via a prompt on interface15, a received data file from a client device20or plant10.

At ACT2106, data processing system100can preprocess historical and present data received at ACT2102. Data processing system100can utilize preprocessor250to remove outliers, fill in any missing values, smooth or remove noisy data. Data preprocessing can resolve inconsistencies in data, integrate data from different sources or with different formats and integrate data into a structured format or a format suitable for COE280. Data can be normalized and data for the data values can be created, including for example creating or adding of metadata or labeling particular sets of data or values. For example, preprocessing can include time stamping or data measurements from any instruments18in a suitable data format so that all values from all instruments18can be used simultaneously to determine the state of operation of the plant10at any particular time.

At ACT2108, data processing system100can generate performance indicator values based on a model. The data processing system can generate a plurality of values for the performance indicator via the model and based on the data and a plurality of test values for the set-point. The data processing system can generate the plurality of values for the performance indicator via the model and based on the plurality of test values for the set-point within the one or more constraints of the set-point. Data processing system100can generate the plurality of values for the two or more performance indicators via the model and based on the data and the plurality of test values for the two or more set-points within two or more constraints for the two or more set-points. The data processing system100can generate an updated plurality of values for the performance indicator via the model and based on the updated data, such as the updated data received via a real-time data stream, and the plurality of test values for the set-point.

Performance indicators210can be generated or calculated based on any combination of one or more instances of one or more models135. Performance indicator values can be generated using one or more AI or ML functions, such as those described in connection with COE280or optimization functions285. Performance indicators210can be generated based on an instance of a model135of a plant determining state parameters230and performance indicators210based on measurements119A-N and one or more of asset data112, topology data114, connectivity and flow data116and instrumentation data118input into the model135.

A data processing system100can generate performance indicator210values by entering any combination of one or more asset set-points220and state parameters230into the model135and solving for performance indicator210values. The data processing system100can generate performance indicators210by maintaining asset set-points220and state parameters230constrained within constraints225as they are input into model135. Performance indicators210can be determined by plotting a plurality of output results of performance indicators210modeled in model135as well as the set-points and state parameters230for each of the performance indicator210values. Data processing system100can determine two or more settings for the two or more set-points using a correlation between the plurality of values for the two or more performance indicators and the plurality of test values for the two or more set-points.

At ACT2110, data processing system100can determine set-point settings250and any other optimization outputs245based on optimization inputs200. For example, COE280can determine set-point settings250and optimized performance information255based on any combination of one or more performance indicators210, asset set-points220and state parameters230within constraints225. The performance indicators210, asset set-points220and state parameters230within constraints225can include values modeled by model135and stored as a set of values for a particular plant10state or condition. COE280can make the determination by running the model135using model inputs and determining one or more performance indicators210, asset set-points220and state parameters230within constraints225multiple times. COE280can store model135outputs for each time the model is run into a plant database, such as for example time stamped measurements119A-N or virtual instrumentation data170. The data processing system100can determine one or more settings for one or more set-points of at least one of the plurality of assets at the plant using a correlation between the plurality of values for the performance indicator and the plurality of test values for the set-point. Data processing system100can determine one or more updated settings for one or more set-points of at least one of the plurality of assets at the plant using a correlation between the updated plurality of values for the performance indicator and the plurality of test values for the set-point.

COE280can determine optimization outputs245by comparing current state parameters235at the plant with the state parameters235from the historical data. Data processing system100can determine the current state or conditions at the plant10by running the model135using the most recent plant10data (e.g. current measurements119A-N and other data from database110). COE280can compare and find matching historical state parameters230that correspond to and closely match current state parameters230of the plant. The matched past state parameters230can match the current state parameters within the constraints225. The matched past state parameters230can match the current performance parameters within a particular set tolerance range, such as within 0.1%, 0.5%, 1%, 1.5%, 2%, 2.5%, 3%, 4%, 5%, 10%, 15% or 20% of the current value for each state parameter230. Data sets of the historical state parameters230that are most closely matched to the current state parameters230can be ranked, by the COE280, higher than those that are less closely matched. By identifying state parameters230that most closely match the current state parameters230COE280can narrow down the range of data sets from which the most optimal performance indicator210can be identified.

COE280can identify set-points settings250by identifying performance indicators210that are maximized, minimized or nearest the threshold or target value as defined or selected by the user at ACT2104. Performance indicators210can be identified based on their value with respect to the current performance indicator210value from the model135that ran the current plant10data. Performance indicators210can be determined based on set-points220and state parameters230input into the model135. COE280can identify set-point settings250by identifying the set-point220inputs into the model135that are closest to the one of maximized value, minimized value or closest to the threshold or target value identified by the user.

COE280can determine performance indicators210by searching through historical data for operating points (e.g. state parameters230within constraints225) to identify time frames in the past whose state parameters230closely match the current state parameters230. COE280can determine, from the identified time frames, those set-points220that produce performance indicators210that are most optimal (e.g. maximized, minimized or set to a particular target as selected or defined by the user). COE280can identify set-points220or operation that has not occurred before by training optimization functions285on the past data and using them as a model to estimate operation at different set-points220. Optimization functions285can work together with one or more models135to estimate operation at various set-points220. For a set of set-point values input into the COE280, the model135or both, performance indicator210values can be gathered and arranged or organized into combinations of performance indicator210and set-point220values that have occurred before but not been seen together.

COE280can determine set-points250based on the performance indicators210, set-points220and state parameters230. Determination can be made based on a fit curve that can be derived for set-points220. The curve can include a fit curve to show the trend of performance indicators210with respect to various set-points220. COE280can use the correlation, interpolation and/or extrapolation to identify set-points250based on the optimization inputs200. COE280can utilize correlation or interpolation to identify optimized set-point settings250and their corresponding performance indicator210values. COE280can utilize extrapolation beyond historical values of the combinations of values to produce the optimized set-point settings250and their corresponding performance indicator210values.

A data processing system100can utilize one or more AI or an ML functions of COE280to determine set-points settings250and their corresponding performance indicators210. AI or ML functions can identify performance indicators210from prior state parameters230that closely match the state parameters230of the present state at the plant10. AI or ML function of COE280can include learning functions to identify the state parameters230that match the present state within an acceptable range, such as for example 0.5%, 1%, 1.5%, 2%, 3%, 4%, 5% or 10% of the current value of the same state parameters230. Performance indicators210can be generated based on inputting plurality of test values for one or more set-points220. The one or more set-points220can be identified within the data set of the matched state parameters230.

A plurality test values can be selected from a range of acceptable values for set-points220. One or more performance indicators210can be generated based on the plurality of test values for one or more set-points220input into a model135and using the model135to generate the performance indicators for test values input. The model135can be run a plurality of times in order to test plurality of test values for set-points220and to generate a plurality of one or more performance indicators210. COE280can determine set-point settings250based on an AI or ML function identifying modeled performance indicators210that are nearest to the maximized, minimized or target value of the performance indicators210and have the modeled state parameters230most closely mapping onto the state parameters230. For example, COE280can use a trained model to identify set-point settings250by identifying set-points220modeled in the model135whose modeled state parameters230resemble the present values of the state parameters230in the plant10within an acceptable range and have a most improved performance indicators210(e.g. performance indicators210whose values are maximized, minimized or closest to the set target value.)

COE280can determine set-point settings250based on a function developed based on a plurality of test values for set-points220input into a model135a set number of times and the plurality of modeled values for performance indicators210determined by the model135from running of the model the set number of times. COE280can determine set-point settings250, and other optimization outputs245, based on a correlation of the test values for set-points220input into the model and the modeled performance indicators210. COE280can determine set-point settings250, and other optimization outputs245, based on an interpolation of the test values for set-points220input into the model and the modeled performance indicators210. COE280can determine set-point settings250, and other optimization outputs245, based on an extrapolation of the test values for set-points220input into the model and the modeled performance indicators210. The plotted results of performance indicators210, state parameters230and asset set-points220can be correlated, interpolated or extrapolated to determine set-point settings250.

At ACT2112, data processing system100can post-process the optimization output data. Postprocessor255can gather any number of sets of optimization outputs245, where each set can include one or more performance indicators210, set-points220, state parameters230within constraints225and their corresponding optimization outputs245that can include the corresponding set-points settings250and optimized performance information255. Postprocessor255can organize and prepare a set of outputs245that can include a particular set of set-points220for one or more assets12that produce a particular performance indicator210. Postprocessor255can arrange outputs245in a descending order from the most optimal performance indicators210at the top and their corresponding set-points220and their corresponding state parameters230down to the least optimal ones at the bottom. Postprocessor255can select a set number of best performing set-point settings250and their corresponding performance information255from the set of outputs245.

Postprocessor255can apply weights to different optimized performance information255in order to select the best set-point settings250. For instance, the user may identify weights for various performance indicators210as part of optimization inputs200and the postprocessor255can apply the weights to the performance indicators210to rank optimization outputs245with set-points settings250and their corresponding performance indicators221higher or lower based on the weights applied to performance indicators210. Postprocessor255can determine the percentage rate improvement in terms of the performance indicators210by which the plant10will perform should the corresponding set of set-points220be applied.

At ACT2114, data processing system100can provide optimization output data to the user. Interface15can display the optimization outputs245to the user. Interface15can provide selections for sets of set-points250and optimized performance information255for the user to select the one the user wants to apply. The interface15can provide various sets of set-point settings250and their corresponding information, including optimization inputs200and optimization outputs245determined at ACT2110to a GUI on a display to enable the user to select which of the sets of set-point settings250the user wants to choose. The optimization outputs245provided to the user can enable the user to apply the set-point settings250to optimize the plant10operation and improve its performance. The data processing system100can provide the one or more settings for the one or more set-points to adjust the performance of the plant. The data processing system can provide the one or more settings for the one or more set-points to adjust the one of the reverse osmosis recovery rate and the reverse osmosis energy consumption of the plant.

The data processing system100can display the one or more settings for the one or more set-points and optimized performance of the plant determined based on the settings for the one or more set-points input into the model. The data processing system100can display the one or more settings for the one or more set-points and optimized performance of the plant determined based on the settings for the one or more set-points input into the model. Data processing system100can provide the one or more updated settings for the one or more set-points to adjust the performance of the plant in response to the updated data being received, such as via a real-time data stream. The data processing system can provide the one or more settings for the one or more set-points to adjust the performance of the one or more assets for water treatment at the plant.