Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DIGITAL MODEL BASED CONFIGURABLE PLANT OPTIMIZATION AND OPERATION
Document Type and Number:
WIPO Patent Application WO/2023/126700
Kind Code:
A1
Abstract:
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 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.

Inventors:
BHARADWAJ DEVESH (CA)
VALDIVIEZO RENZO (CA)
VICKERMAN ADAM (CA)
Application Number:
PCT/IB2022/059469
Publication Date:
July 06, 2023
Filing Date:
October 04, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PANI ENERGY INC (CA)
International Classes:
G16Z99/00
Domestic Patent References:
WO2021019551A12021-02-04
WO2021069098A12021-04-15
Foreign References:
JP2021159870A2021-10-11
US20200142364A12020-05-07
Download PDF:
Claims:
What is claimed is:

CLAIMS

1. A system of optimizing operation of a plant, comprising: a data processing system having at least one processor coupled with memory, to: provide a prompt for optimization of a performance of a plant indicating a plurality of performance indicators in a model of the plant; receive 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; 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; 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; and provide the one or more settings for the one or more set-points to adjust the performance of the plant.

2. The system of claim 1, comprising the data processing system to: 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.

3. The system of claim 1, comprising the data processing system to: 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. 4. The system of claim 1, comprising the data processing system to 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.

5. The system of claim 1, comprising the data processing system to: 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 based on the plurality of values for the two or more performance indicators and the plurality of test values for the two or more set-points.

6. The system of claim 1, comprising the data processing system to: receive, 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; determine one or more updated settings for one or more set-points of at least one of the plurality of assets at the plant based on the updated plurality of values for the performance indicator and the plurality of test values for the set-point; and provide the one or more updated settings for the one or more set-points to adjust the performance of the plant.

7. The system of claim 1, comprising the data processing system to: preprocess the data from the plurality of physical instruments; and receive data comprising the preprocessed data from the plurality of physical instruments.

8. The system of claim 1, comprising the data processing system to: 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 learning optimization function.

9. The system of claim 1, comprising the data processing system to: 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.

10. The system of claim 9, comprising the data processing system to: 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.

11. A method of optimizing operation of a plant, comprising: providing, by a data processing system comprising memory and one or more processors, a prompt for optimization of a performance of a plant indicating a plurality of performance indicators in a model of the plant; receiving, by the data processing system, 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; generating, by the data processing system, 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; determining, by the data processing system, one or more settings for one or more setpoints 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 providing, by the data processing system, the one or more settings for the one or more set-points to adjust the performance of the plant.

12. The method of claim 11, comprising: receiving, by the data processing system via the prompt, a selection of one or more constraints for the set-point; and generating, by the data processing system, 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.

13. The method of claim 11, comprising: providing, by the data processing system, 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 displaying, by the data processing system, 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.

14. The method of claim 11, comprising selecting, by the data processing system 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.

15. The method of claim 11, comprising: receiving, by the data processing system, 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; generating, by the data processing system, 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 determining, by the data processing system, two or more settings for the two or more setpoints based on the plurality of values for the two or more performance indicators and the plurality of test values for the two or more set-points. 16. The method of claim 11, comprising: receiving, by the data processing system via a real-time data stream, updated data from the plurality of physical instruments; generating, by the data processing system, 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; determining, by the data processing system, one or more updated settings for one or more set-points of at least one of the plurality of assets at the plant based on the updated plurality of values for the performance indicator and the plurality of test values for the set-point; and providing, by the data processing system, the one or more updated settings for the one or more set-points to adjust the performance of the plant.

17. The method of claim 11 comprising: preprocessing, by the data processing system, the data from the plurality of physical instruments; and receiving, by the data processing system, data comprising the preprocessed data from the plurality of physical instruments.

18. The method of claim 11 comprising: training, by the data processing system, a learning optimization function using the data; and determining, by the data processing system, the one or more settings for one or more setpoints of at least one of the plurality of assets at the plant further based on the learning optimization function.

19. The method of claim 11, comprising: receiving, by the data processing system via the prompt, data from the plurality of physical instruments monitoring operation of the plurality of assets for water treatment at the plant; and providing, by the data processing system, 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.

20. The method of claim 19, comprising: receiving, by the data processing system 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 providing, by the data processing system, 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.

Description:
DIGITAL MODEL BASED CONFIGURABLE PLANT OPTIMIZATION AND OPERATION

CROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This application claims the benefit of priority to U.S. Patent Application No. 17/566,165, filed on December 30, 2021, which is hereby incorporated by reference herein in its entirety for all purposes.

BACKGROUND

[0002] 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

[0003] 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.

[0004] 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 setpoints 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.

[0005] 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.

[0006] 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.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The accompanying drawings are not intended to be drawn to scale. Like reference numbers and designations in the various drawings indicate like elements. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:

[0008] FIG. 1 is an illustration of an example data processing system operating over a network, in accordance with implementations.

[0009] FIG. 2A is an illustration of an example of a model generator comprising different models, in accordance with implementations. [0010] FIG. 2B is an illustration of an example of a flow diagram of a process to be modeled by a data processing system, in accordance with implementations.

[0011] FIG. 2C is an illustration of another example of a flow diagram of a process to be modeled by the data processing system, in accordance with implementations.

[0012] FIG. 3A is an illustration of an example of a multi-layer model that uses physical data, in accordance with implementations.

[0013] FIG. 3B is an illustration of an example a multi-layer model that uses physical and virtual data, in accordance with implementations.

[0014] FIG. 4 is an illustration of an example of a simulated multi-layer model that uses physical and virtual data, in accordance with implementations.

[0015] FIG. 5 is an illustration of an example a method for configuring and executing a model, in accordance with implementations.

[0016] FIG. 6A is an illustration of an example a method for constructing and using a model, in accordance with implementations.

[0017] FIG. 6B is an illustration of an example a method for using a model with real-time data, in accordance with implementations.

[0018] FIG. 7 is a block diagram illustrating an architecture for a computer system that can be employed to implement elements of the systems and methods described and illustrated herein, including, for example, the systems depicted in FIGS. 1, 12 and 13 the operational flows or methods depicted in FIGS. 5 and 6A-6B, 10-11 and 21, in accordance with implementations.

[0019] FIG. 8 is an illustration of a table with various parameters that can be used by the data processing system 100 for identifying and triggering rules, in accordance with implementations.

[0020] FIG. 9 is an illustration of an example data processing system modeling a RO plant 10, in accordance with implementations.

[0021] FIG. 10 is an illustration of an example a method for modeling a RO plant, in accordance with implementations.

[0022] FIG. 11 is an illustration of an example of a method for optimizing the operation of a RO plant, in accordance with implementations. [0023] FIG. 12 is an illustration of an example data processing system for configurable optimization of a plant, in accordance with implementations.

[0024] FIG. 13 is another illustration of an example data processing system for configurable optimization of a plant, in accordance with implementations.

[0025] FIGS. 14-20 are illustrations of example prompts for the user interface for performing configurable optimization of a plant, in accordance with implementations.

[0026] FIG. 21 is an illustration of an example a method for performing configurable optimization of a plant, in accordance with implementations.

DETAILED DESCRIPTION

[0027] 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.

[0028] 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.

[0029] 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 setpoint, 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.

[0030] 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.

[0031] 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.

[0032] FIG. 1 depicts an example system to model a plant 10. The system can include at least one data processing system 100 in communication with at least one plant 10 and at least one client device 20 over at least one communication network 101. Data processing system 100 can include at least one plant database 110 that can include asset data 112, topology data 114, connectivity and flow data 116, instrumentation data 118 and measurements 119. Data processing system 100 can include at least one model generator 130 that can include one or more models 135A-135N, including for example a model 135A that can comprise an at least one asset layer 122, topology layer 124, connectivity and flow layer 126, and instrumentation layer 128. Data processing system 100 can include at least one interface 15, at least one rules engine 140, at least one simulator 145, at least one resource utilization monitor 150 and at least one alert generator 155. The data processor system 100 can include a virtual data generator 160 that includes one or more virtual instruments 165 and one or more virtual instrumentation data 170.

[0033] The plant 10 can include at least one asset 12A-N, such as machines, devices or tools, for operating or facilitating a process. The plant 10 can include at least one measurement instrument 18A-N that can take measurements or data on or corresponding to at least one asset 12A-N or to the process at the plant 10. The plant 10 can include at least one interface 15 to communicate with the data processing system 100 or client device 20 via the communication network 101. The data processing system 100 can include at least one plant database 110. The plant database 110 can store data from any number of plants or facilities, including for example, the illustrated plant 10. The plant database 110 can include asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. The data in the plant database 110 can for example include information or data on plant 10 and its asset(s) 12, their topology, their connectivity and flow, as well as the data from measurement instruments 18 at the plant 10.

[0034] A plant 10 can include any plant (e.g., a facility) that performs a process or that includes a system to be modeled. The plant 10 can include any plant, factory or a fabrication facility. Plant 10 can include a manufacturing facility, a service or production facility, a retail facility. Plant 10 can include one or more plants or one or more facilities working together implementing one or more processes, activities or productions. A plant 10 can 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. Plant 10 can 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. Plant 10 can include a distillation plant or an ion exchange plant. Plant 10 can 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. Plant 10 can include a freezing desalination plant, geothermal desalination plant, solar desalination plant, or a methane hydrate crystallization plant. Plant 10 can be modeled by a digital twin system generated and run by the data processing system 100 using the data from assets 12A-N and instruments 18A-N.

[0035] Assets 12A-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 plant 10. An asset 12 can 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 plant 10.

[0036] Assets 12A-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 asset 12 can include a motor, an engine, or any other type of a system converting energy into motion or vice versa. An asset 12 can include a wind or a water turbine, a stirring system or a propeller or a fan system. An asset 12 can 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 asset 12 can include a mechanical clarifier, such as for example, a wastewater clarifier.

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

[0038] Assets 12A-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. Asset 12 can 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. Asset 12 can include an ozonation system and any one or more of its components and subsystems. Assets 12A-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.

[0039] An instrument 18A-N can include any type and form of a device for sensing, measuring or a data collection. An instrument 18 can 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 instrument 18 can 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 carbonbased molecules. Instrument 18 can, for example, measure density of a fluid or a solid material, oxidation level, concentration of smoke or ashes. An instrument 18 can include a position, a vibration or a photo optic sensor or a detector. An instrument 18 can include a vibration sensor, a piezo sensor, a strain gauge, a humidity sensor. An instrument 18 can 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 instrument 18 can include sensors for detecting chemical molecules.

[0040] An instrument 18 can include systems and functionalities that interface with a sensor and processes and stores its measurements. For example, an instrument 18 includes circuitry for scaling and amplifying the sensor signal. The instrument 18 can include the functionality for digitizing the sensor signal. The instrument 18 can include the functionality for collecting and storing sensor readings or values.

[0041] An interface 15 at the data processing system 100, as well as an interface 15A at the plant 10, or interface 15B at the client device 20, can include any computer or a digital system interface for digital communication or interaction between the data processing system 100, plant 10 or the client device 20. An interface 15 can include hardware and software to provide a computer interface functionality for a user to interact to or from the data processing system 100. An interface 15 can include an application interface or a program interface to provide a means of interaction. Interface 15 can include a web browser interface, a graphical user interface, a menu interface, a form based interface or a natural language interface. Interface 15 can include a user interface to enable a user to manually enter data from physical instruments and sensors, such as instruments 18.

[0042] A data processing system 100 can include any combination of hardware and software for modeling a plant or a plant 10. A data processing system 100 can include a system for creating and running a digital twin. A data processing system 100 can include functionality for generating a model of a system or a process at a plant 10. The data processing system 100 can model the system or the process by constructing a model 135 that includes multiple layers 122-128. The layers 122-128 can include or be based on physical data about the assets 12, their topology, connectivity and flow or movement of materials among them, as well as their sensor instrumentation 18 and such sensor measurements 119. Rules engine 140 can utilize any number of rules to assist in creating the model 135 by providing and establishing sets of relationships between different parts of the modeled system. Data processing system 100 can use the generated model 135 to generate virtual data with the help of virtual data generator 160. The generated virtual data can include virtual instruments 165 and their corresponding virtual instrumentation data 170. Data processing system 100 can use the simulator 145 to simulate the process using the real and virtual data or to optimize the process. The data processing system 100 can, 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 monitor 150. Alert generator 155 can generate one or more alerts when any one of the assets 12 modeled in the model 135 drop their performance, quality, or status below a threshold.

[0043] The data processing system 100 can 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 example FIG. 7. The data processing system 100 can therefore communicate over a network 101 with a plant 10 and a client device 20. Data processing system 100 can include at least at least one logic device such as a computing device having one or more processors to communicate via the network 101.

[0044] The data processing system 100 can include at least one computation resource, server, processor or memory. For example, the data processing system 100 can include a plurality of computation resources or servers located in at least one data center. The data processing system 100 can 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.

[0045] A plant database 110 can include one or more local or distributed databased for storing data corresponding to one or more plants 10, or facilities 10, their processes and the assets performing such processes. A data processing system 100 can include one or a plurality of plant databases 110. A plant database 110 can include a database management system for facilitating storing, accessing and using of the stored data. Plant database 110 can be designed to have the same data structures for all plants or facilities or to be optimized for a particular 10 and to include features unique to individual facilities.

[0046] A plant database 110 can include any information on assets running a process at a plant 10. For example, a plant database 110 can include any information on the assets themselves, or their internal state, status, configurations and settings. A plant database 110 can include any information on the geometric or spatial relationships or arrangements of the assets 12 at the plant 10. The plant database 110 can include information on connections between the assets 12, as well as any direction of flow between the assets 12. Plant database 110 can include any data from instruments 18 at the plant, as well as the location of those instruments 18 and their relation to the assets 12 and the process run by the assets 12 itself.

[0047] Asset data 112 can include any information on assets 12A-N. For example, asset data 112 can include information on each individual asset 12 as well as collective information on assets 12A-N as a whole. Asset data 112 can include any technical information specific to an individual asset 12, 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 data 112 can include asset 12 specifications, including all of the data from its data or specification sheet. Asset data 112 can include asset 12’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 data 112 can include information on asset’s power usage or consumption, its electrical current draw, or its resistance or impedance. Asset data 112 can 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 asset 12, either internally or externally.

[0048] Asset data 112 can include any information on a collection of assets 12A-N, including any asset 12A-N group settings or configurations. For example, asset data 112 can include information or data on asset 12A-N collective updates, reconfigurations, or modifications. Asset data 112 can include information on management of two or more assets 12 in a plant 10 as a group. Asset data 112 can include information on synchronization or coordination between any assets 12A-N. Asset data 112 can include any data or information that can be used for monitoring or determining performance of an asset 12.

[0049] Asset data 112 can 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 data 112 can 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 data 112 can 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.

[0050] Topology data 114 can comprise any information or data corresponding to arrangement of assets 12A-N. Topology data 114 can include information on geometric properties or spatial relations between assets 12A-N. Topology data 114 can include information that identifies which asset 12 interfaces with which other assets or in what order or arrangement. Topology data 114 can include any information or data describing placement, arrangement, organization, interaction or spacing between assets 12A-N.

[0051] Topology data 114 can include information on the order of individual assets in a process or production. Topology data 114 can also include a description of one asset 12 that is a subasset of another asset 12. 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 assets 12 of the model 135. For example, topology data 114 can include information that asset 12B stands between an asset 12A and asset 12C. Topology data 114 can include information that assets 12A and 12B are arranged one next to the other. For example, topology data 114 can include information on which asset 12 interfaces with which other asset 12 at the plant 10 and how they are spaced with respect to each other. Topology data 114 can include information that arranges all assets 12A-N from the first to the last in their order in which they appear in the process run at the plant 10.

[0052] Connectivity and flow data 116 includes any information or data on connections and flow between assets 12A-N. For example, connectivity and flow data 116 includes information on which asset 12 is connected to which other asset 12 and how, as well as the information on the direction of flow of materials between the connected assets. Connectivity and flow data 116 can include data and information on how one or more outputs of an asset 12 are connected to one or more inputs of another asset 12 or in which direction is the flow between these two assets. For example, connectivity and flow data 116 can include information or data on how one or more outputs of an asset 12A are connected to inputs of two or more assets 12 of the plurality of assets 12A-N as well as information on the direction of the flow between the two assets. Connectivity and flow data 116 can include information and data on direction of flow of the process materials between the outputs of two or more assets 12 are connected to an input of an asset 12.

[0053] Connectivity and flow data 116 can include any information on valves used in the connectivity of the assets. Data 116 can 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 data 116 can include a model of a valve to accurately model the flow through the valve at any of the valve’s settings.

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

[0055] Connectivity and flow data 116 can include any information or data on movement or flow of materials handled or processed by assets 12A-N. The materials handled or processed can include any material, substance, product or object handled or processed by assets 12A-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 assets 12 at a plant 10.

[0056] Instrumentation data 118 can include any information on one or more instruments 18A-N and any data from instruments 18A-N. Instrumentation data 118 can include data on the location of the instruments 18A-N in the process modeled at the plant 10. For example, instrumentation data 118 can include data on location of each instrument 18, such as a sensor, with respect to the assets 12. Instrumentation data 118 can include information on the type of instrument 18, its make and model, its calibration, internal settings and configuration, and operation.

Instrumentation data 118 can include data on time of calibration of the instrument 18 from which data is collected or the accuracy range of the measurements.

[0057] Measurements 119 can include data and readings from the instruments 18. Measurements 119A-N can correspond to a plurality of instruments 18A-N from which they have originated. For example, measurements 119A can correspond to an instrument 18A, while measurements 119B can correspond to an instrument 18B, and so on. Therefore, measurements 119 from each individual instrument 18 can be stored in an individual data structure of the plant database 110.

[0058] Measurements 119 can include measurements or data of any sensors or detectors discussed herein in connection with measurement instruments 18A-N. For example, measurements 119 can 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 instruments 18A-N discussed herein could measure. Measurements 119 can include measured data organized and stored in any digital format, including data structures for each type of instrument 18.

[0059] Measurements 119 can include individual measurements from instruments 18A-N or a stream of data from instruments 18A-N taken over time. For example, measurements 119 can include a single measurement or a series of measurements from an instrument 18. When series of measurements are taken, such measurements can, for example, be taken periodically over time. Measurements 119 can thus include a stream of data measurements taken at particular periodic time intervals. Measurements 119 can include multiple measurements from an instrument 18 taken based on particular process events, such as events occurring during the process at plant 10, such as daily start or end of a production, plant maintenance, asset service times, asset testing, asset maintenance, or similar.

[0060] Measurements 119 can include real-time data streamed from the plant 10. For example, measurements 119 can include streamed real-time measurements of flow rate at an input into a particular asset 12. Measurements 119 can include streamed real-time measurements of a flow rate at an output of a particular asset 12. As measurements 119 can include

[0061] Plant database 110 can include multiple data structures for storing and keeping track of measurements 119 from different instruments 18A-N 10 as well as for storing asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. For example, plant database 110 can include one data structure for storing all measurements 119 from a first instrument 18A, and a second data structure for storing all measurements 119 from a second instrument 18B. Plant database 110 can store metadata on the measurements 119, 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 measurement 119 is particularly measuring. Plant database 110 can include a data structure for each types of data 112-118.

[0062] A model 135 can include any model of a part of a plant 10, the entire plant 10 or of plurality of plants 10. A model 135 can include a model of a system or a process run or operated at or by the plant 10, 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 model 135 can include a digital twin of a plant 10, including for example a digital twin of a part of a plant 10 that runs a particular process. A model 135 can include a digital twin of a plurality of processes run or operated at or by the plant 10, such as for example processes related to a function, product or a service. A model 135 can include a digital twin of one or more processes operated across multiple facilities 10, such as for example filtration processes where one plant 10 runs one part of a process and another plant 10 runs another part of the process.

[0063] A model 135 can include multiple layers for describing a process or operation of one or more plants 10. For example, a model can include an asset layer 122, a topology layer 124, a connectivity and flow layer 126 or instrumentation layer 128. For example a model 135 can include fewer than four of these layers. For example, a model 135 can include any one or two or three of the stated four layers. A model 135 can include the stated four layers and one or more additional layers, such as a virtual layer comprising virtual instrumentation 165 and its corresponding virtual data 170.

[0064] Asset layer 122 can include any digital description, depiction, representation or modeling of assets 12. Asset layer 122 can include descriptions, depictions, representations or modeling using any asset data 112. For example, asset layer 122 can include a representation of one or more assets 12 in a model 135, such as a depiction, a figure, a drawing, a model or sketch of assets 12, any one of which can be done using information from asset data 112. Asset layer 122 can include identification of any asset 12A-N from asset data 112 of a plant 10. Asset layer 122 can include any asset data 112 information on any assets 12A-N pertaining to a process being modeled by model 135. Asset layer 122 can include technical data on any one of shown assets 12A-N, such as technical information or data included in asset data 112.

[0065] Asset layer 122 can include one or more models of one or more assets 12 modeled in model 135. The model of an asset can include a model of an asset 12 itself, to describe the asset’s inputs, outputs and its performance. For example, when an asset 12 of the asset layer 122 is a piece of equipment, asset layer 122 can 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 assets 12, asset layer 122 can enable modeling of those components as a part of the model 135.

[0066] A topology layer 124 can include any digital description, depiction, representation or modeling of topology of assets 12. Topology layer 124 can include descriptions, depictions, representations or modeling using any topology data 114. Topology layer can include a depiction, a figure, a drawing, a model or sketch of arrangement or topology of assets 12 in a process run or operated at or by plant 10. The depiction, drawing or a sketch can be done using information from topology data 114. Topology layer 124 can include arrangements, geometric relations or relative positions involving assets 12A-N. Topology layer 124 can include any data from topology data 114 of a plant 10. Topology layer 124 can include any topology data 114 information on any arrangement, ordering or positioning of any assets 12A-N pertaining to a process being modeled by model 135. Topology layer 124 can include data on distances or spacing between assets 12A-N, such as length of distances between the assets 12A-N, coordination data on the locations of assets 12A-N, order of assets 12A-N and so on.

[0067] A connectivity and flow layer 126 can include any digital description, depiction, representation or modeling of connectivity and flow between assets 12. Connectivity and flow layer 126 can include descriptions, depictions, representations or modeling using any connectivity and flow data 116. Connectivity and flow layer 126 can include a depiction, a figure, a drawing, a model or sketch of connections between assets 12 in a process run or operated at or by plant 10. The depiction, drawing or a sketch can be done using information from connectivity and flow data 116. Connectivity and flow layer 126 can include specifications on the means for moving process material from one asset 12 to another asset 12, 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 assets 12 and its speed and capacity, and any information on connectivity between assets 12 and flow of process materials between assets 12.

[0068] Connectivity and flow layer 126 can include models of the connections between the assets 12. For example, when asset layer 122 includes models of the individual assets 12, the connectivity and flow layer 126 can include models of connections between the assets. For example, when assets 12 are pieces of equipment of a reverse osmosis plant, connectivity and flow layer 126 can include models of pipes interconnecting the assets 12. Connectivity and flow layer 126 can include models of flow controllers between the assets, including valves, “T” connectors and various other components for connecting the assets.

[0069] An instrumentation layer 128 can include any digital description, depiction, representation or modeling of one or more measurement instruments 18 and their data. Instrumentation layer 128 can include descriptions, depictions, representations or modeling using any instrumentation data 118. Instrumentation layer 128 can include a depiction, a figure, a drawing, a model or sketch of instruments 18A-N taking measurements at a particular location in a process. For example, instrumentation layer 128 can illustrate, depict, represent, sketch or model instruments 18A-N and their locations with respect to assets 12. Instrumentation layer 128 can include measurements 119 of the instruments 18 in the model 135. The illustration, depiction, drawing, modeling or a sketch can be done using information from instrumentation data 118. An instrumentation layer 128 can include depiction of locations of instruments 18A-N with respect to assets 12A-N as described by their topology data 114 or connectivity and flow data 116. Instrumentation layer 128 can include any measurements 119 taken by instruments 18A-N, where instruments 18A-N can be represented or identified in instrumentation data 118. [0070] A model generator 130 can include any combination of hardware and software for constructing or generating a model 135. For example, the model generator 130 can include a user interface, such as an interface 15 A or 15B to enable a user to enter, identify or describe one or more assets 12, instruments 18 and plant 10. The model generator 130 can use the plant database 110 and any of its information to generate a model 135.

[0071] The model generator 130 can include any combination of hardware and software functions and scripts for generating or constructing any layer of the model. The model generator 130 can include the software functionality, scripts, computer programs and functions to generate layers 122-128 using their corresponding data 112-118. For example, model generator 130 can generate the asset layer 122 using the asset data 112. Model generator 130 can generate the topology layer 124 using topology data 114. Model generator 130 can generate the connectivity and flow layer 126 using connectivity and flow data 116. Model generator 130 can generate the instrumentation layer 128 using instrumentation data 118. Model generator 130 can generate the instrumentation layer 128 using measurements 119.

[0072] The model generator 130 can include the functionality to combine the layers 122-128 into a single model 135 of a plant 10. For example, model generator 130 can include the functionality to combine the information from layers 122-128 into a single representation of the process. Model generator 130 can generate the model depicting layers 122-128 individually as well as a combination, showing how the process operates.

[0073] The model generator 130 can include the functionality to add to the model 135 virtual instruments 165, as generated by virtual data generator 160. The model generator can place the virtual instruments 165 at various locations, such as locations where instruments 18A-N are not present. Model generator 130 can add a new separate layer for the virtual instruments 165, or can combine the virtual instruments 165 to the instruments 18 depicted in the instrumentation layer 128. Model generator 130 can add virtual instrumentation data 170 to the virtual instruments 165. The model generator 130 can process the virtual instrumentation data 170 using the same techniques used to process the instrumentation data 118.

[0074] A model generator 130 can include scripts, functions and computer code for training a model 135 using training data. Training data can include asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. Training data can include virtual instrumentation data 170 from virtual instruments 165. For example, training data can utilize various instrumentation data 118 to train the model 135 rates of flow between different assets at the model. Training data can use a combination of instrumentation data 118 and virtual instrumentation data 170 to train the model 135.

[0075] The model generator 130 can train the model 135 using training data to identify or predict events, such as breakdown, time for service or end of life of one or more assets 12, performance of one or more assets 12 through time, performance of the assets and the process through time, and so on. Model generator 130 can utilize virtual instruments 165 and virtual instrumentation data 170 to predict future events and performance

[0076] The model generator 130 can generate or train the model 135 using an artificial intelligence (“Al”) model, including for example a machine learning (“ML”) function or technique. The model generator 130 can include an Al or ML function and use any type of machine learning technique, including, for example, supervised learning, unsupervised learning, or reinforcement learning. The model generator 130 can use functions such as linear regression, logistic regression, a decision tree, support vector machine, Naive Bayes, k-nearest neighbor, k- means, random forest, dimensionality reduction function, or gradient boosting functions.

[0077] Virtual instruments 165 can include any virtual objects performing functions of measuring, sensing or counting any feature or output of the model 135 using any combination of physical instruments 118 or their measurements 119. Virtual instruments 165 can include any virtual objects mimicking instrument 18A-N, any functionality of an instrument 18 or can include any digital representation of an instrument 18.

[0078] A virtual instrument 165 can be placed in a part of a model 135 that corresponds to a location in which an instrument 18 is missing. For example, when a model 135 of a plant 10 is generated by a model generator 130, instruments 18 can be placed in the respective locations as they exist in the plant 10, whereas virtual instruments 165 can be placed in locations in which physical instruments 18 are not present. In some implementations, in the model 135 virtual instruments 165 can be placed right next to, or within, physical instruments 18. Virtual instruments 165 can, for example, provide virtual readings at the locations that are not measured by instruments 18 at the plant 10. In doing so, virtual instruments 165 can fill in missing data and help improve the accuracy and granularity of the model 135. [0079] Virtual instruments 165 can 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.

[0080] Virtual instruments 165 can measure or gather data (e.g., virtual instrumentation data 170) 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.

[0081] Virtual instrumentation data 170 can include any functionality of an instrumentation data 118. Since a virtual instrument 165 can be a virtual representation of any physical instrument 18, virtual instrumentation data 170 will accordingly correspond to the type of data for that virtual instrument 165. For example, when a virtual instrument 165 is a flow rate sensor, the corresponding virtual instrumentation data 170 will be a flow rate sensor data. Similarly, when a virtual instrument 165 is a pressure sensor, its corresponding sensor data will be a pressure sensor data. Virtual instrumentation data 170 can include a location and type of an instrument 18 that it represents, including its type and model, internal settings, configurations and any other features identified for a physical instrument 18. [0082] Virtual instrumentation data 170 can include any data that would have been taken by a physical instrument 18 of a particular model at the location at which the virtual instrument 165 is placed. For example, if a virtual instrument 165 is a temperature gauge at some location, the virtual instrumentation data 170 can include temperature readings at that location. If the physical instrument 18 of that particular model would be set to take measurements 119 periodically, then the virtual instrumentation data 170 can take measurements periodically, as well.

[0083] Virtual Data Generator 160 can include any combination of hardware and software, including scripts, software functions and code to create or generate virtual instruments 165 and determine their corresponding virtual instrumentation data 170. Virtual data generator 160 can generate one or more virtual instruments 165 anywhere in the model 135. For example, virtual data generator can identify one or more locations in which instruments 18 are missing and can generate one or more virtual instruments 165 at those locations. The generated virtual instruments 165 can be of any type, and can be based on, or mimic any instruments 18A-N.

[0084] Virtual data generator 160 can include any functions, scripts and computer code for determining virtual instrumentation data 170 for any virtual instrument 165. Virtual data generator 160 can determine virtual instrumentation data 170 per event, periodically, or at set times. Virtual data generator can determine virtual instrumentation data 170 for a virtual instrument 165 by performing mathematical functions on one or more instrumentation data 118 for one or more physical instruments 18 at the plant 10. For example, virtual data generator 160 can determine virtual instrumentation data 170 of a virtual pressure sensor 165 by performing mathematical functions on instrumentation data 118 for one or more physical pressure sensor instruments 18A-N. For example, virtual data generator 160 can determine virtual instrumentation data 170 by calculating an average, a median, or a mode of two or more readings in the instrumentation data 118 from two or more physical instruments 18 at the plant. Virtual data generator 160 can determine virtual instrumentation data 170 by determining a trend of the instrumentation data 118 and finding a function that most closely maps the instrumentation data measurements 119 over time. Virtual data generator 160 can then extrapolate from the data using the closest-fit function and thereby predict future readings of the virtual measurements 119.

[0085] Virtual data generator 160 can determine virtual instrumentation data 170 by finding a relationships or correlations between various instrumentation data 118 from different instruments 18A-N. For example, a virtual data generator 160 can determine that there is a correlation or a relationship between one or more temperature sensors instrument 18A and one or more salinity sensor instruments 18B. The virtual instrument 165 for sensing salinity in a fluid can then can determine its salinity based at least in part on the measurements 119 from a temperature sensor instrument 18. Similarly, a virtual data generator 160 can determine that there is a relationship or a correlation between data of two or more instruments 18 measuring 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 instrument 165 for measuring flow rate through the filter can be determined or calculated, at least in part, based on the measurements 119 from a physical pressure sensor instrument 18 at the fluid input into the filter. Accordingly, virtual data generator 160 can use relationships or correlations between different sensor readings to generate virtual instrumentation data 170 at virtual sensors 165. To implement these calculations using such relationships, virtual data generator 160 can rely on the rules by the rules engine 140 to establish the relationships between different sensors, different components, different assets or different parts of the system or process.

[0086] Virtual data generator 160 can determine virtual instrumentation data 170 based on the location of virtual instrument 165 in relation to physical instruments 18 in the process being modeled. Virtual data generator 160 can, for example, calculate an average, a median or mode value of data from two physical pressure sensor instruments 18 to determine or calculate the pressure for a virtual instrument 165 located in between the two physical pressure sensor instruments 18. Virtual data generator 160 can, for example, calculate an average, a median or mode value of data from two physical temperature sensor instruments 18 to determine or calculate the temperature for a virtual instrument 165 located in between the two physical temperature sensor instruments 18. Similarly, the virtual data generator 160 can calculate an average, a median or mode value of data from two physical fluid salinity sensor instruments 18 to determine or calculate the salinity for a virtual instrument 165 located in between the two physical salinity sensor instruments 18.

[0087] Virtual data generator 160 can generate a virtual layer for the model 135. The virtual layer can be similar to layers 122-128, as depicted in the examples of FIGS. 3A-3B. The virtual layer can include virtual instruments 165, their topology and arrangement with respect to other parts of the model 135, such as assets 12 for example. The virtual data layer can include relationships and functions with respect to the physical components, such as assets 12 or instruments 18, for example.

[0088] A rules engine 140 can include software, scripts and computer code to form and utilize rules for generating virtual instruments 165 and virtual instrument data 170. Rules engine 140 can utilize one or more rules to determine a set of relationships between different assets 12, instruments 18 and virtual instruments 165. Rules engine 140 can 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 measurements 119 from o pressure instrument 18 affects the modeled rate of flow through an asset 12 where the instrument is located. Rules engine 140 can 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 engine 140 can then run the rules based on the user inputs to provide sets of relationships.

[0089] Rules engine 140 can include rules that dictate how particular connections facilitate operation between various assets. For example, rules engine 140 can 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 engine 140 can include rules to describe how pressure from one side of an asset affects or transfer to pressure on another side of an asset. Rules engine 140 can include rules that describe how temperature from one asset causes particular behavior of that asset, or other assets. Rules engine 140 can 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.

[0090] Rules engine 140 can include functions and algorithms that are agnostic to the plant 10 and that automatically derive new information from the data in the plant database 110. Rules engine 140 can 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. [0091] 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.

[0092] A rules engine 140 can include software, scripts and computer code to form and utilize rules to automatically generate new information, such as virtual instruments 165 and their corresponding virtual instrumentation data 170. Once generated, such new information can then be exposed for interface access. The rules engine 140 can implement automatic derivation of virtual data works by considering the system of types of assets 12, their associated physical instruments 18, and connectivity and flow data 116 and running these configuration details through a set of rules. These rules are plant agnostic rules that define how to automatically derive new information.

[0093] A rules engine 140, for example, includes plant agnostic law that may automatically generate virtual instruments 165 and their corresponding virtual instrumentation data 170 when appropriate conditions are met. For example, in the event that a model 135 is for a reverse osmosis (“RO”) plant, if an asset 12 is of a particular type, namely a RO train, and if the asset 12 is measured by instruments 18 at its inlet and at its outlet, then the rules engine 140 automatically generates a virtual instrument 165 for the RO train for virtually measuring RO recovery.

[0094] A data processing system 100 or the rules engine 140 can 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.

[0095] FIG. 8 includes a table having information on various properties and parameters relating virtual instruments 165 and their associated virtual measurements 170, particular assets, process or industry types or inputs and outputs. The table in FIG.8 can 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 engine 140. The input properties and asset type information can be used to identify a particular rule in the rules engine 140 that 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 engine 140, the rules engine 140 can select those rules as the rules to run to auto-derive new information. The rules engine 140 can 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 from FIG. 8. The KPIs identified by the rules engine 140 can 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 in FIG. 8 can include for example parameters from which the user can select optimization inputs 200, such as performance indicators 210 and state parameters 230 discussed in connection with FIGS. 12-21.

[0096] Model generator 130 can include the software, scripts and computer code to utilize the virtual instruments 165 and the virtual instrumentation data 170 the same way as the physical instrumentation data 118, discussed above. Model generator 130 can utilize virtual data generator 160 to include virtual instruments 165 into the instrumentation layer 128 along with the physical instruments 18 described in the instrumentation data 118. Model generator 130 can, together with virtual data generator 160, modify the model 135 to integrate virtual instruments 165 together with virtual instrumentation data 170. As model generator 130 and the virtual data generator 160 can be a combined generator function, they can operate as single function comprising the functionality of both.

[0097] Simulator 145 includes software, scripts and computer code to simulate the operation of the process modeled in the model 135. The simulator 145 can take the model 135 along with its layers 122-128 utilize the measurements 119 to simulate the operation of the model 135. For example, simulator 145 can take the model 135 that includes generated layers 122-128 from their corresponding data 112-118 and then input measurements 119 to determine the rate of operation of the model, the rate of operation of individual modeled assets 12, flow through various parts of the process, and so on.

[0098] Simulator 145 can include physics-based models for generating simulations. Simulator 145 can include an Al 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.

[0099] Resource Utilization Monitor 150 can include software, scripts and computer code to determine efficiency of utilization of assets 12. Resource utilization monitor 150 can comprise the functionality to determine the resource utilization of assets 12, either independently or in view of their efficiency, performance, throughput and other features. Resource utilization monitor 150 can determine how much longer each asset 12 of the model 135 can continue performing before their replacement or servicing is warranted. As assets 12 can 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 monitor 150 can utilize any information in the plant database 110 to monitor the utilization of the assets 12 over time. Once the asset utilization for a particular asset 12 falls below a particular threshold, resource utilization monitor 150 can determine that that it is more cost-effective to replace, provide maintenance or service the asset 12 than to keep operating it at the current rate. Resource utilization monitor 150 can make that determination with respect to a particular threshold of performance, efficiency, power consumption or throughput of the asset.

[0100] Alert Generator 155 can include software, scripts and computer code to generate an alert with respect to optimizing the process described in the model 135. For example, an alert generator 155 can generate an alert when one or more assets 12 is nearing its end of life. An alert generator 155 can generate an alert when one or more assets 12 are nearing its time of service or replacement. An alert generator 155 can generate an alert to indicate that one or more assets 12 can be reconfigured and can identify and recommend optimal services for the assets. For example, an alert generator 155 can 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 generator 155 can include information on particular way to service the asset. An alert generator 155 can generate an alert when one or more assets 12 can be reconfigured a particular way in order to optimize the process modeled by model 135. [0101] An alert generator 155 can generate an alert that the asset has a limited amount of throughput left before a next service of the asset. For example, an alert generator 155 can utilize a resource utilization monitor 150 to 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 generator 155 can then generate an alert displaying the amount of remaining throughput for the asset before the asset is to be serviced or replace.

[0102] Alert generator 155 can include functionality to observe resource utilization monitor 150 and determine when an alert should be generated. Alert generator 155 can generate one or more alerts based on performance of one or more assets 12. An alert generator 155 can generate an alert when the resource utilization monitor 150 observes that an asset 12 consumes more energy than a particular predetermined level. For example, an alert generator 155 can generate an alert when an asset 12 begins 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 data 118 and measurements 119 or the virtual instruments 165 and virtual instrumentation data 170 that measure the energy consumption of the asset.

[0103] For example an alert generator 155 can generate an alert based on resource utilization monitor 150 determining 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 data 170.

[0104] By monitoring the asset’s performance or operation by the resource utilization monitor 150, the alert generator 155 can generate any notification or indication when a set threshold is met or exceeded. For example, alert generator 155 can 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 monitor 150 detecting an amount of chemicals in the fluid output of the asset that exceeds a set threshold. Likewise, an alert generator 155 can 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 monitor 150 detecting that the fluid pressure at the asset input exceeds a set threshold. An alert generator 155 can 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 monitor 150 detecting that the one or more of a temperature of the asset or the power consumption of the asset exceeds a set threshold.

[0105] The data processing system 100 can combine features from various components and functions from FIG. 1 to perform digital twin modelling. For example, data processing system can use the simulator 145 to perform a simulation of the plant, such as plant 10, based on the set of relationships from rules engine 140 applied to the plurality of assets 12 in the model 135, one or more measurements 119 and one or more virtual measurements 170. The data processing system 100 can utilize alert generator 155 to generate a notification to service a particular asset 12 responsive to a comparison of a virtual measurement 170 with a threshold. The threshold can be determined based on a resource utilization monitor 150’s estimate of utilization of a resource from continued performance of the same particular asset 12 without servicing that asset. The data processing system 100 can utilize alert generator 155 to determine the threshold based on resource utilization monitor 150’s estimate of utilization of a resource from continued performance of the same particular asset without servicing the same asset.

[0106] For example, a data processing system 100 can receive the one or more measurements 119 from a particular physical instrument 18 of the one or more physical instruments located at or within a threshold distance of a particular asset 12A of the plurality of assets 12A-N. The data processing system 100 can determine, based on the set of relationships from the rules engine 140 and the one or more measurements 119 input into the model, a virtual measurement 170 for a virtual instrument 165 located at or within the threshold distance from an asset 12B, that is different than asset 12A and the alert generator 155 can generate the notification to service the second asset based such determination. The threshold distance can be any distance, such as within Im, 2m, 5m or 10m from an asset, or within 0.1m, 0.3m or 0.7m from the asset.

[0107] A data processing system 100 can use the model generator 130 to 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 layer 122 that can be constructed based on asset data 112. The model generator 130 can 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 layer 124 that can be constructed based on topology data 114. The model generator 130 can 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 layer 126 that can be constructed based on connectivity and flow data 116. The model generator 130 can 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 layer 128 that can be constructed based on instrumentation data 118. The interface 15 of 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.

[0108] For example, a data processing system 100 can receive the one or more measurements 119 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 data processing system 119 can determine, based on the set of relationships by a rules engine 140 and the one or more measurements 119 input into the model 135, a virtual measurement 170 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 asset 12A or at or within the threshold distance from an asset 12B of the plurality of assets.

[0109] The data processing system 100 can use the simulator 145 to perform a simulation of a fluid processing plant at plant 10 based on the model 135, the set of relationships from the rules engine 140, one or more measurements 119 and a virtual measurement 170. The data processing system 100 can generate, responsive to a simulation by a simulator 145, the notification from alert generator 155 on efficiency of performance of the first asset or the second asset. The data processing system 100 can receive, second one or more measurements 119 for a second one or more physical instruments 18 located at a second plant 10 comprising a second plurality of assets 12 and determine, based on a second set of relationships from the rules engine on interactions between the second plurality of assets 12, a second virtual measurement 170 for a second virtual sensor 165 located at the second plant 10.

[0110] FIG. 2A depicts an example of a model generator 130 comprising or storing various different models 135 is illustrated. The model generator 130 can store models across various different industries, enabling the users from any such industries to create their models 135 independent from any other models 135. Using the multi-layer structure of the models 135, the data processing system 100 can abstract away various process or system specific details and apply the same model generating functionality across various different plants 10 and industries. In doing so, model generator 130 can comprise or generate and operate models 135 from many disparate technologies and industries without requiring domain-based knowledge from such technologies and industries in order to create the model.

[0111] The model generator 130 can include or store models 135A-N that differ from each other based on different types of assets 12 that they include. The models can be organized or catalogued based on their types or key assets that they use. For example, a model generator 130 can include membrane system models, such as ultrafiltration, microfiltration, nanofiltration and reverse osmosis models 135. The model generator 130 can include bioreactor system models, such as conventional activated sludge, membrane bioreactor, sequential batch reactor and moving-bed bioreactor models 135. The model generator 130 can include anaerobic digestion models, such as anaerobic activated sludge, internal circulation reactor, and upflow anaerobic sludge blanket digestion models 135. The model generator 130 can include chemical system models, such as coagulation-flocculation, ion exchange, wastewater nutrient addition and deionization models 135. The model generator 130 can include rotary equipment models, such as pump, lower, turbocharger, pressure exchanger and motor models. The model generator 130 can 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 models 135.

[0112] As the data processing system 100 can be implemented as a cloud-base software as a service, various models 135 of 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 models 135 specifically mimicking the actual plant 10 of their choice.

[0113] FIG. 2B depicts an example flow diagram of a process that can be modeled by a data processing system 100. FIG. 2B shows a flow diagram of an example pulp and paper (wastewater) process that can be implemented in a plant 10. The data processing system 100 can provide a digital twin model of the illustrated pulp and paper (wastewater) process by creating a model 135. The model 135 can utilize the information from the flow diagram to extract asset data 112 of the assets, the topology data 114 of the arrangement or connectivity and flow data 116 of the connectivity and flow between the assets 12 of the model 135.

[0114] In the flow diagram, an untreated (raw) waste water is input into a primary mechanical clarifier, which can correspond to an asset 12A of a model 135. The output flow from the asset 12A can be input into an aeration basin (asset 12B), from which it can be input into a secondary clarifier (asset 12C).

[0115] The asset 12C, 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 (asset 12B) to be once again filtered by the second clarifier (asset 12C). The second output can include the sludge that cannot be further processed and that can be output to a sludge thickener.

[0116] Fig 2B illustrates an example flow diagram that can provide some asset data 112 in relation to assets 12, some topology data 114 in relation to the arrangement of the assets and some connectivity and flow data 116, with respect to the flow of the process across the assets.

[0117] FIG. 2C depicts an example flow diagram of a flow diagram of a process that can be modeled by a data processing system 100 is illustrated. FIG. 2C shows a flow diagram of an example food and beverage process that utilizes a reverse osmosis (RO) system. The data processing system 100 can provide a digital twin model of the illustrated process by creating a model 135 that has eleven assets 12, their illustrated topology and connectivity and flow.

[0118] The example flow diagram begins with a raw water tank, which in a model 135 can be described as an asset 12A. The fluid that is output from the raw water tank is input into a raw water pump (asset 12B), the output of which can be fed into a filtration process that implements multimedia filtration or ultrafiltration (asset 12C). The output fluid from the filtration process can then go into a sterilization process (asset 12D), the output of which can go into a high pressure pump (asset 12E). The output from the high pressure pump can then be input into a Reverse Osmosis (RO) system (asset 12F), the output of which can then be fed into a product tank (asset 12G), the output of which can then be input into a product pump (asset 12H). The output from the asset pump can be input into ozonation system (asset 121), the output of which can then be input into an ultraviolet (UV) sterilizer (asset 12J), the output of which can then be fed into a cartridge filter (asset 12K). The output from the cartridge filter can then finally be fed to the use point, which means it is ready for consumption.

[0119] The flow diagram of FIG. 2C relates to an illustration that can provide some plant database 110 data on the process to be modeled. The data can include asset data 112 on assets 12A-K, topology data 114 on the arrangement of assets and connectivity and flow data 116 showing the flow path of the material being processed.

[0120] FIGS. 3A, 3B and 4 depict examples of a model 135 for a RO process that can be operated at a plant 10. While FIG. 3A illustrates an example model 135 of a RO process containing the four layers 122-128 and their physical data and measurements, the FIG. 3B illustrates an example of a model 135 of the same RO process that includes not only the physical data, but virtual data as well. FIG. 4 illustrates a close-up simulated model 135 from FIG. 3B with a greater level of detail. These three figures together help illustrate how data layers 122-128 form a model 135 and how virtual data improves the model, all of which can then be simulated by a simulator 145.

[0121] FIG. 3 A depicts an example model 135 using physical data from a plant database 110 is illustrated. FIG. 3 A illustrates an asset layer 122 comprising seven assets 12 that are more clearly shown and identified in the related FIG. 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.

[0122] Vertically lined up with and standing above the asset layer 122 is topology layer 124. The topology layer 124 includes connecting lines describing the arrangement between the assets in asset layer 122. 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.

[0123] Vertically lined up with the topology layer 124 and standing above it, is a connectivity and flow layer 126. The connectivity and flow layer 126 includes 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 assets 12

[0124] Vertically lined up with the connectivity and flow layer 126 is the instrumentation layer 128. The instrumentation layer 128 includes circles denoting locations where physical instruments 18, such as sensors, are located with respect to the assets 12 in the model 135.

[0125] Combining all four layers 122-128 is the model 135 at the bottom of the FIG. 3 A in 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 data 118 and physical measurements 119. This model 135 can include a digital replica of the reverse osmosis (RO) process at the plant 10.

[0126] In contrast to FIG. 3 A, FIG. 3B shows the same four layers 122-128 as in FIG. 3 A, but including another layer of virtual data at the top. The virtual data layer can include the same layer functionality as the instrumentation layer 128, for example, except that it includes virtual instruments 165 and their virtual instrumentation data 170. The virtual layer can therefore comprise virtual instruments 165 disposed very similar to the way assets 12 are disposed in the asset layer 122, e.g., simply placed into their respective locations in which they would have existed had they been real instruments at the plant 10.

[0127] FIG. 3B illustrates an example virtual layer on top of the four layers 122-128 that includes four virtual instruments 165 along with their corresponding “f(x) derived functions” which denote functions for calculating the virtual instrumentation data 170. In particular, as more clearly depicted in FIG. 4, all four virtual instruments 165 can be disposed in the vicinity of the RO train asset. One virtual instrument 165 can be disposed at the flow path between the fluid output of the booster pump and the input of the RO train. A second virtual instrument 165 can be disposed between the fluid output of the high pressure pump and the input of the RO train. A third virtual instrument 165 can be disposed at the flow path between the output of the RO train and the input into the energy recovery device. The fourth virtual instrument 165 can be disposed between the output of the RO Train and the input of the permeate tank. By placing these four virtual instruments 165 at these locations, the model 135 can acquires four more important data points that can help it better estimate the performance of the RO system.

[0128] Because the FIG. 3B includes the virtual data layer on top of the four layers 122-128, the corresponding model 135 includes both physical and virtual data. Accordingly, model 135 of FIG. 3B includes asset layers 122-128, and a set of virtual instruments 165 and their corresponding virtual instrumentation data 170. As illustrated in FIG. 3B, the virtual instrumentation data can be generated using mathematical functions based on physical instrumentation 118 and their corresponding measurements 119.

[0129] FIG. 4 depicts an example of a simulated model 135 that uses both physical and virtual data is illustrated. FIG. 4 shows a more-detailed version of a FIG.3B model, along with the above-discussed four virtual instruments 165 and their corresponding virtual instrumentation data 170 that in this illustration are denoted as “f(x) auto derived” functions. Instrumentation data 170 therefore can include mathematical functions that automatically determine virtual instrumentation data 170 from physical instruments 18 and their corresponding physical measurements 119.

[0130] FIG. 5 depicts an example method 500. Method 500 can be implemented by data processor system 100 illustrated in FIG. 1 with the help of any technical features in FIG. 7 or any other feature or component described anywhere herein. At a high level method 500 includes a step 502 at which a data processing system 100 provides a graphical user interface enabling a user to configure a model of a system or a plant to be generated by model generator 130. At ACT 504, data processing system 100 loads historical data, including for example, spreadsheets with data for one or more sensor instruments 18. At ACT 506, data processing system establishes a live data connectivity to enable direct data connection to the plant 10, over a network 101 and including, for example, via one or more cloud functionalities. At ACT 508, data processing system can process the plant information and derive new, virtual information as a function of the plant configuration. At ACT 510, data processing system 100 continues to process the digital twin functionality to keep updating the model 135 based on streamed updated data.

[0131] At ACT 502, an interface 15 of a data processing system 100 provides a graphical user interface. The graphical user interface can include, for example, the interface features. At ACT 502, a model 135, such as for example the illustrated Digital Twin level 1 (DTI), 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 system 100 can use equipment data sheets to specify or select assets 12. 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 assets 12. The user can also utilize P&IDs to identify and specify the physical instrumentation, such as sensors, deployed in the plant 10.

[0132] At ACT 504, data processing system 100 loads historic instrumentation data measurements 119. For example, a model generator 130 can load historical measurements 119 via an interface 15 with user’s inputs or user provided files. The loaded instrumentation measurements 119 can include historic data of any number of physical instruments 18 at the plant 10. Historic data can be keyed by tag identifiers. For example, in step 502, 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 instrument 18, such as a sensor in the system. As such, the historic data of a particular physical instrument 18 at plant 10 can remain associated with that instrument 18.

[0133] At ACT 506, interface 15 of the data processing system 100 establishes a live data connectivity with plant 10. Established live data connectivity can enable installation or configuration of one or more internet-of-things (loT) 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.

[0134] At ACT 508, the data processing system 100 can execute the “fact” auto-derivation to have the model generator 130, 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 generator 130 can process the information in plant database 110 and generate an updated model 135. The model generator 130 can utilize a virtual data generator 160 to generate virtual instrumentation 165 and calculate its virtual data measurements 170. Model generator 130 can receive new real-time measurements 119 for one or more sensors, and in response to the new real-time measurements 119 update the model 135 and recalculate the virtual measurements 170.

[0135] At ACT 510, the data processing system 100 runs the digital twin model 135 that continues to process incoming streaming data and keeps all derived process intelligence. This can include, for example, the virtual measurements 170, which can be continuously updated as the new physical data measurements 119 are being received. Model generator 130 can continuously run the model 135 in response to new real-time data updates from physical instruments 18. The virtual data generator 160 can simultaneously recalculate the virtual measurements 170 in response to the new real-time data.

[0136] FIG. 6A depicts an example method 600. Method 600 can be implemented by a data processing system 100 of FIG. 1, alone or with the any of the features of the FIG. 7 or any other components described herein. At ACT 602 a data processing system 100 can acquire plant data. At ACT 604, data processing system 100 can receive measurements from physical instruments 18. At ACT 606, data processing system 100 can identify virtual instruments 165. At ACT 608, data processing system 100 can construct the model 135. At ACT 610, data processing system 100 can use rules for interactions between the assets from the rules engine 140. At ACT 612, data processing system 100 can determine data for virtual instruments 165. At ACT 614, data processing system 100 can simulate the model 135. At ACT 616, data processing system 100 can determine a threshold for servicing an asset. At ACT 618, data processing system 100 can predict future performance of an asset. At ACT 620, data processing system 100 can generate a notification to service the asset.

[0137] At ACT 602, data processing system 100 can acquire any data of a plant 10. For example, data processing system 100 can acquire any one or more of asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. Data processing system 100 can also acquire measurements 119 from any instruments 18A-N at plant 10. For example, an interface 15 of the data processing system 100 can receive data from plant 10. Acquired data can include any information on assets 12 and 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 assets 12 in the model 135. Acquired data can include any information on the connectivity, connections and instrumentation 18 to be modeled in the model 135, including their specifications, sizes, shapes, performance characteristics, throughput, functionalities, efficiencies and any other information for their modeling within the model 135.

[0138] A data processing system 100 can receive user selections from an interface 15, where the user selects one or more descriptions of the system or a process operating at the plant 10. 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 plant 10. Responsive to such user selections, data processing system 100 can load from a plurality of preconfigured models 135 stored at the model generator 130 a particular model 135 that corresponds to the user’s description. Data processing system 100 can receive selections or descriptions of asset data 112, topology data 114, connectivity and flow data 116, instrumentation data 118 or measurements 119 from user selections at the interface 15. Data processing system 100 can acquire at least some of the received data via a network 101, or from one or more user inputs or selections.

[0139] At ACT 604, data processing system can receive measurements 119. The measurements 119 can be any measurements or data from physical instruments 18 at the plant 10. Data processing system 100 can utilize the interface 15 to acquire measurements 119 as a user’s input. Data processing system 100 can include past measurements 119, such as for instance one or more files of data comprising series of past sensor readings form instruments 18. Data processing system 100 can load the history data of the measurements 119 from any number of instruments 18 through files, scripts or spreadsheets having such data. The data processing system 100 can receive measurements 119 through a stream of data from the interface 15 of the plant 10. For example, measurements 119 can include real-time sensor data, which can be received over the network 101. Data processing system 100 can receive measurements 119 comprising a plurality of measurements for each of a plurality of physical instruments at the plant 10.

[0140] At ACT 606, data processing system 100 can identify virtual instruments 165 to include into the model. Identified virtual instruments 165 can be, for example, one or more KPIs. Data processing system can identify virtual instruments 165 in response to identifying the type of the system or process at the plant 10. For example, virtual instruments 165 can be identified in response to the user descriptions of the system or process to be modeled at ACT 602. Virtual instruments 165 can also be identified in response to identifying the model 135. For example, a data processing system 100 can identify a model 135 based on user’s descriptions of the system or process at the plant 10, and the identified model 135 can include a set of predetermined virtual instruments 165. The data processing system 100 can then allow the user to select the virtual instruments 165 to keep or decline.

[0141] At ACT 608, data processing system 100 can construct a model 135. A model generator 130 can construct the model 135. The model generator 130 can construct the model 135 based on the user selections describing the system or process at the plant 10 at ACT 602. The model generator 130 can construct the model 135 based on any one or more data from plant database 110. For example, the model generator 130 can construct a model 135 based on any one or more of asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. The model generator 130 can construct the model 135 based on measurements 119.

[0142] The model generator 130 can construct model 135 by constructing the layers 122-128 and then lining them up vertically, such as for example in FIGS. 3A-4. When the layers 122-128 line up vertically, the model generator 130 can combine the layers 122-128 to construct the model 135. The model generator 130 can use any combination of one or more layers of the asset layer 122, topology layer 124, connectivity and flow layer 126 and instrumentation layer 128 to construct the model. The model generator 130 can construct the model to include a layer of virtual data. The layer of virtual data can include virtual instruments 165 and virtual instrumentation data 170. The layer of virtual data can also be lined up vertically as layers 122- 128 and combined to construct the model 135 that comprises virtual instrumentation 165 and its data 170.

[0143] At ACT 610, data processing system 100 can use rules to specify interactions between assets of the model 135. The model generator 130 can construct the model 135 based on execution of rules from the rules engine 140 that describes the operation of the model 135. 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 model 135, 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 timeseries 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.

[0144] At ACT 612, data processing system 100 can determine data for virtual instruments. A data processing system 100 can first identify virtual instrumentation 165 and then determine the virtual instrumentation data 170. Data processing system 100 can identify and place one or more KPIs in one or more locations of the model 135 and determine their virtual data 170.

[0145] Virtual instrumentation data 170 can be determined by determining its value from calculations that are based on instrumentation measurements 119. For example, virtual instrumentation data 170 can be calculated using a formula for efficiency of an asset and inputs from the instrumentation data 119. Virtual instrumentation data 170 can be determined by using a formula for performance of a RO membrane using one or more sensor measurements 119 that surround the membrane. For example, virtual instrumentation data 170 can be determined based on fluid inlet pressure, fluid outlet pressure, fluid temperature, fluid salinity or any other measurements 119 described herein.

[0146] At ACT 614, data processing system 100 can simulate the model. Simulator 145 can simulate the model 135 based on the rules from the rules engine 140. Simulator 145 can simulate the model 135 based on the physical measurements 119. Simulator 145 can simulate the model 135 based on the virtual instruments 165 and the corresponding virtual instrumentation data 170. The simulation can illustrate how the system or process being modeled in model 135 operates, including the operation of the individual assets, their individual throughputs, efficiencies, power consumption and rate of operation.

[0147] At ACT 616, data processing system 100 can determine a threshold for servicing an asset. The resource utilization monitor 150 can 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 asset 12 discussed herein.

[0148] 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.

[0149] At ACT 618, data processing system can predict future performance of a particular asset in the model. Simulator 145 can predict future performance of a particular asset based on historical measurements 119. Simulator 145 can predict the future performance of a particular asset based on a real-time measurements 119. Simulator 145 can determine future performance of an asset based on the trend of asset related physical instrumentation measurements 119 over time. For example, simulator 145 can determine future asset performance by determining that asset’s performance has been changing over time. Simulator 145 can determine future asset performance by determining that asset’s power consumption has been changing over time. Simulator 145 can determine future asset performance by determining that asset related measurements 119 have 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 measurements 119 described herein. Simulator 145 can work together with a resource utilization monitor 150 to determine resource consumption, power consumption, and performance of the asset over time. Simulator 145 or resource utilization monitor 150 can take determined changes in the instrumentation measurements 119 over time and extrapolate their values into the future to determine where those values will be in the future. Resource utilization monitor 150 or Simulator 145 can then determine that resource utilization of the asset in the future will exceed a threshold.

[0150] At ACT 620, data processing system 100 can generate a notification to service the asset. Alert generator 155 can generate a notification to service the asset based on the future data for performance determined at ACT 618 falling beyond the threshold determined at ACT 616. Alert generator 155 can 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 generator 155 can generate a notification to replace the asset. Alert generator 155 can generate a notification that states the time in the future when the asset will have to be serviced. For example, alert generator 155 can generate a notification a month before the asset is to be serviced to alert the user to schedule a timely asset service. Alert generator 155 can thereafter send one or more timely reminders to remind the user to schedule the service at the stated time in the future.

[0151] Alert generator 155 can generate the notification to service the asset at a time in the future based on resource utilization monitor 150 determining that asset performance will fall below the threshold at ACT 616. 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 simulator 145 determining that asset performance will fall below the threshold at a particular point in the future. The alert generator 155 can 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.

[0152] FIG. 6B depicts an example method 650. Method 650 can be implemented by a data processing system 100 of FIG. 1 or any other components or features described herein. In a brief overview, method 650 includes ACT 652 data processing system inputs historical data of physical measurements into a model 135. At ACT 654, virtual data generator 160 determines virtual instruments and virtual instruments data 170. At ACT 656, simulator 145 generates an estimate of future plant performance based on the simulated model of the historical data. At ACT 658, data processing system 100 receives updated or real-time data from physical instruments 18. At ACT 660, virtual data generator 160 determines updated virtual instrumentation data 170. At ACT 662, simulator 145 simulates the model based on updated or real-time data and updated virtual instrumentation data 170. The ACT 658-662 can form a loop to provide for a method of continued updating of a digital twin model and its physical and virtual data.

[0153] At ACT 652, data processing system 100 inputs into a model generator 130 historical data of measurements 119 from physical instruments 18 a plant 10. Data processing system can input data into a model using any techniques described in connection with the step 604 of the model 600. Historical data of measurements 119 from physical instruments 18 at the plant 10 can include, for example files, scripts, tables or spreadsheets, of data recordings from one or more physical instruments 18. Data can include time stamps and values to track historical trends for each of the physical instruments 18.

[0154] At ACT 654, virtual data generator 160 determines data for virtual instruments. A virtual data generator 160 can determine, for example, any number of virtual instruments 165 in a model 135. Virtual data generator 160 can identify or determine locations for the virtual instruments 165. Virtual data generator 160 can determine virtual instrumentation data 170 for virtual instruments 165 based on the rules on asset interactions from the rules engine 140, or based on user’s selections. Virtual data generator 160 can determine virtual instrumentation data 170 for virtual instruments 165 based on the model 135, including for example all of the layers 122-128 and the corresponding data 112-118 on which they are based.

[0155] At ACT 656, a simulator 145 simulates the model 135. The simulator 145 can simulate the model 135 based on historical measurements 119. The simulator 145 can simulate the model based on the real-time received data. The simulator 145 can simulate the model using virtual instrumentation 165 and its virtual data measurements 170. The simulator 145 can generate an estimate of future performance of the model 135. The simulator 145 can determine the estimate of future performance using any techniques or steps described in step 618 of the method 600.

[0156] At ACT 658, data processing system 100 receives an updated data on the assets. Updated data can include, for example, fresh set of readings or measurements from physical instruments 18 at the plant 10. Updated data can include, for example, real-time measurements 119 streamed over a network 101. Updated or real-time measurements 119 can include any measurements 119 or their features as in step 652, 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.

[0157] At ACT 660, data processing system 100 determines updated virtual instrumentation data 170. Virtual data generator 160 can determine updated virtual instrumentation data 170 based on the updated data or real-time measurements 119. Virtual data generator 160 can, for example, recalculate the functions and calculations for virtual instruments 165 using the updated measurements 119 to determine updated virtual instrumentation data 170.

[0158] At ACT 665, simulator 145 simulates the model of the plant 10 based on updated data or real-time measurements and based on updated data for virtual instruments. The model generator 130 can rerun the model based on the updated/real-time measurements 119, and the simulator 145 can rerun the simulation of the updated model 135. The simulator can rerun the updated model 135 using the updated virtual instrumentation data 170. The simulator 145 can estimate the future performance of the model 135 using replacement assets 12 instead of one or more original assets to determine the different in the performance using the new replacement assets. The simulator 145 can 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.

[0159] At the end of ACT 662, the method 650 can go back again to ACT 658, forming a continuous loop between ACT 658 and 662 to 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 measurements 119 and their corresponding virtual instrumentation data 170.

[0160] With respect to an implementation of the methods 600 and 650, the present solution is directed to a method of modeling a plant. The methods 600 or 650 can 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 methods 600 or 650 can 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 methods 600 or 650 can 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 methods 600 or 650 can 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.

[0161] The methods 600 or 650 can 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.

[0162] The methods 600 or 650 can 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.

[0163] The methods 600 or 650 can 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 methods 600 or 650 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 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.

[0164] The methods 600 or 650 can 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.

[0165] The methods 600 or 650 can 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 methods 600 or 650 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 the first asset. The methods 600 or 650 can include generating, by the data processing system, the notification to service a second asset of the plurality of assets based on determining.

[0166] The methods 600 or 650 can 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 methods 600 or 650 can 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. [0167] The methods 600 or 650 of 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 methods 600 or 650 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 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.

[0168] The methods 600 or 650 of 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.

[0169] The methods 600 or 650 of 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 methods 600 or 650 can 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.

[0170] FIG. 7 is a block diagram of an example computer system 700. The computer system or computing device 700 can include or be used to implement the data processing system 100, or its components such as the model generator 130, plant database 110, virtual data generator 160, simulator 145, interface 15, resource utilization monitor 150 and alert generator 155. The computing system 700 includes a bus 705 or other communication component for communicating information and a processor 710 or processing circuit coupled to the bus 705 for processing information. The computing system 700 can include one or more processors 710 or processing circuits coupled to the bus for processing information. The computing system 700 can include memory such as main memory 715, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 705 for storing information, and instructions to be executed by the processor 710. The main memory 715 can be or include the plant database 110 or model generator 130 including any number of models 135. The main memory 715 can also be used for storing position information, temporary variables, or other intermediate information during execution of instructions by the processor 710. The computing system 700 can include a read only memory (ROM) 720 or other static storage device coupled to the bus 705 for storing static information and instructions for the processor 710. A storage device 725, such as a solid state device, magnetic disk or optical disk, can be coupled to the bus 705 to persistently store information and instructions. The storage device 725 can include or be part of the plant database 110.

[0171] The computing system 700 may be coupled via the bus 705 to a display 735, such as a liquid crystal display, or active matrix display, for displaying information to a user. An input device 730, such as a keyboard including alphanumeric and other keys, may be coupled to the bus 705 for communicating information and command selections to the processor 710. The input device 730 can include a touch screen display 735. The input device 730 can also include a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 710 and for controlling cursor movement on the display 735. The display 735 can be part of the data processing system 100, the client device 20 or other component of FIG. 1 , for example.

[0172] The processes, systems and methods described herein can be implemented by the computing system 700 in response to the processor 710 executing an arrangement of instructions contained in main memory 715. Such instructions can be read into main memory 715 from another computer-readable medium, such as the storage device 725. Execution of the arrangement of instructions contained in main memory 715 causes the computing system 700 to perform the illustrative processes described herein. One or more processors in a multiprocessing arrangement may also be employed to execute the instructions contained in main memory 715. 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.

[0173] Although an example computing system has been described in FIG. 7, the subject matter including the operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.

[0174] The subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, e.g., one or more circuits of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatuses. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. While a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer- readable storage devices or received from other sources.

[0175] The terms “data processing system” “computing device” “component” or “data processing apparatus” encompass various apparatuses, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures. For example, data processing system 100, model generator 130, virtual data generator 160, simulator 145, resource utilization monitor 150 and alert generator 155 as well as all other data processing system 100 components can include or share one or more data processing apparatuses, systems, computing devices, or processors.

[0176] A computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program can correspond to a file in a file system. A computer program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0177] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs (e.g., components of the data processing system 100 to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatuses can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0178] The subject matter described herein can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification, or a combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0179] The computing system such as data processing system 100 or system 700 can 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 network 101). 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 system 100 from the client device 20, instruments or sensors 18).

[0180] While operations are depicted in the drawings in a particular order, such operations are not required to be performed in the particular order shown or in sequential order, and all illustrated operations are not required to be performed. Actions described herein can be performed in a different order.

[0181] 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 system 100, the model generator 130, virtual data generator 160, simulator 145, resource utilization monitor 150 or alert generator 155 can 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 system 100.

[0182] In FIG. 9, an example system for servicing a plant 10, such as a reverse osmosis plant, is illustrated. In a brief overview, the example system of FIG. 9 can include at least one data processing system 100 in communication with at least one plant 10 and at least one client device 20 over at least one communication network 101. The at least one plant 10 can include one or more assets 12, which can include one or more RO membrane assets 12, as well as one or more instruments 18, that can include one or more RO membrane instruments 18.

[0183] At least one data processing system 100 of FIG.9 can include at least one plant database 110 that can include one or more asset data 112, one or more topology data 114, one or more connectivity and flow data 116, one or more membrane instrumentation data 118 and one or more membrane measurements 119. Data processing system 100A can include at least one model generator 130 that can include one or more models 135, including for example a one or more RO plant models 135 A and one or more RO membrane asset models 135B. The RO plant model 135 A can comprise an at least one asset layer 122, at least one topology layer 124, at least one connectivity and flow layer 126, and at least one instrumentation layer 128. The at least one RO membrane asset model 135B can include a model of state of a RO membrane asset 12. Data processing system 100 can include at least one interface 15, at least one rules engine 140, at least one simulator 145, at least one resource utilization monitor 150 and at least one alert generator 155. The data processor system 100 can include at least one virtual data generator 160 that includes one or more virtual instruments 165 and one or more virtual instrumentation data 170. The at least one simulator 145 can include at least one optimizer 180 and at least one forecaster 185.

[0184] Plant 10 can be any plant 10 discussed in connection with FIG. 1, including for example a plant for processing fluid. Plant 10 can be a reverse osmosis (“RO”) plant 10. The RO plant 10 can include several different assets 12 for a RO system or a process run therein. For example, a RO plant can include assets 12, such as those discussed and illustrated in connection with FIG. 2C, in which the asset 12F is identified as a RO system. The RO plant 10 can also include other assets 12 surrounding the RO system asset 12F, 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 the FIG. 2C. Each of these assets 12, as well as any others at the plant 10, can be collectively referred to as the assets 12 of the RO plant 10.

[0185] The RO plant 10 can also include a different selection and arrangement of assets 12, including for example those discussed in connection with FIG. 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 assets 12 can be collectively referred to as the assets 12 of the RO plant 10.

[0186] The RO membrane asset 12, 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 asset 12 can include a plurality of RO modules, RO trains or vessels of RO membranes. The RO membrane asset 12 can include the asset 12 of FIG. 2C or the RO train of FIG. 4. The RO membrane asset 12 can 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.

[0187] The RO membrane asset 12 can include one or more reverse osmosis filters, either individual or in a membrane skid. The RO membrane asset 12 can 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 asset 12 can include a single-stage, two-stage, three-stage, four-stage, five-stage RO train or RO system. The RO membrane asset 12 can include an RO system with any other number of stages. RO membrane asset 12 can also include an array of RO membranes organized into sets of individual RO membrane modules. The RO membrane asset 12 can include any reverse osmosis-based filtration system for fluid.

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

[0189] Instruments 18 at the RO plant 10 can include any number of RO membrane instruments 18. RO membrane instruments 18 can include any sensors, detectors or measurement devices for taking measurements or sensor data at an RO plant 10. RO membrane instruments 18 can include any sensors, detectors or measurement devices for sensing, measuring or recording data relating to or indicative of an RO membrane asset 12 and its processing or operation.

[0190] RO membrane instruments 18 can 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 instruments 18 can be placed upstream, downstream or within the RO membrane asset 12. RO membrane instruments 18 can be placed inside of, on top of, to the side of, or otherwise within a threshold distance of the RO membrane asset 12, such as for example within a threshold of 0.1m, 0.5m, Im, 1.5m or 2m from the RO membrane asset 12. The RO membrane instruments 18 can gather measurements or readings that can be used by a virtual data generator 160 to produce one or more virtual instruments for the RO membrane asset 12 or for RO plant 10. The RO membrane instruments can gather measurements or readings that can be used to generate one or more virtual instruments 165 and their corresponding virtual instrumentation data 170.

[0191] A plant database 110 can include one or more asset data 112, which can include one or more RO membrane asset 12 data. Topology data 114 can further include the topology data of the assets at the RO plant 10. Topology data 114 can also include internal topology of a RO membrane asset 12, which can be used for making a model of the RO membrane asset model. Connectivity and flow data 116 can include connectivity and flow data on the assets 12 at the RO plant 10, but it can also include connectivity and flow data on the internal components and subsystems of the RO membrane asset 12. Instrumentation data 118 can include any data on RO membrane instruments 18. Measurements 119 can include any measurements or readings at the RO plant 10, including any measurements on RO membrane asset 12, or within a threshold distance of the RO membrane asset 12. The threshold distance can be for example, up to 0.1m, 0.5m, Im, 1.5m and 2m.

[0192] The RO plant model 135 A can include the RO plant model that can utilize the asset layer 122, topology layer 124, connectivity and flow layer 126 and the instrumentation layer 128 of the RO plant 10. The RO plant model 135A can model the entire system or process at the plant 10. For example the RO plant model 135 A can include a model of a RO plant 10 along with all its assets 12 including the RO membrane asset 12. The RO membrane asset model 135B can include a model of any RO membrane asset 12. The RO membrane model 135 can include models, such as the ones illustrated or discussed in connection with FIGS. 2A, 2C, 3A, 3B and 4.

[0193] The RO plant model 135A can include the RO membrane asset model 135B. For example, a RO plant model 135A can model assets 12 and the RO membrane asset model 135B can be used in place of a RO membrane asset 12 to more accurately determine and monitor its state. This can improve accuracy of both the RO plant model 135A and the RO membrane asset model 135B.

[0194] RO membrane asset model 135B can also include the model of the RO membrane asset 12 and its internal operation, subsets and components. The RO membrane asset model 135B 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 asset 12 and the flow through RO membrane asset 12. RO membrane asset model 135B 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 asset 12.

[0195] RO membrane asset model 135B can include a model of various stages of a RO membrane asset 12, including any of its RO membrane sets or trains, any prefilters, postfilters, along with any other RO membrane asset 12 internal components, their arrangement and configuration. A model 135 can 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.

[0196] RO membrane asset model 135B of the membrane asset 12 can include both reversible and irreversible loss of performance as a function of time. Model 135 can 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 engine 140 based on one or more rules applying reversible and irreversible factors to the RO membrane asset 12.

[0197] RO membrane asset model 135B can include a model of a fouling of the membrane over time. RO membrane asset model 135 state of the membrane can be determined by modelling water permeability, salt permeability and pressure drop factors in or around a RO membrane asset 12. 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 system 100 can 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.

[0198] RO membrane asset model 135B can account for the type of prior service provided to the RO membrane asset 12. 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 plant 10 can change all of the membrane elements in all RO trains at the same time. A RO plant 10 can change one RO train at a time. A RO plant 10 can change some RO elements in each vessel at a time. Some RO plants 10 that 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 plants 10 can keep records about new and old element positions inside the pressure vessels if partial replacement is performed.

[0199] The RO membrane asset model 135B can track the membrane fouling using a pressure drop measurement, which can be either virtual measurement 165 or physical measurement 119. 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) A b] can have a more clear trend and a model 135 can 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. [0200] RO membrane asset model 135B can also rely on parameters, such as water permeability, normalized salt passage or membrane salt permeability for the RO membrane asset 12, as they can be indicative of operational temperature, membrane fouling and other related factors. The membrane model 135B 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.

[0201] RO membrane asset model 135B 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.

[0202] Model 135 of a RO membrane asset 12 can 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. Model 135 can include a parameter indicative of the replacement efficiency (M e ff) 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. [0203] If a RO plant partially replaces the membranes, the shape of the graph of the sensor readings from the RO membrane instruments 18 can 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.

[0204] An optimizer 180 of a simulator 145 can include the structure and functionality, including hardware and software combination, scripts, program code, executables or applications for optimizing a model 135 or an asset, such as a RO membrane asset 12. The optimizer 180 can include the functionality for determining the level of performance of an asset, such as a RO membrane asset 12. The optimizer 180 can include the functionality for determining the current level of performance for an asset, such as a RO membrane asset 12. The optimizer 180 can 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.

[0205] The optimizer 180 can include one or more optimization functions for finding the optimal settings of a given plant 10, such as the RO plant 10. 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 assets 12, maximize the longevity of a RO membrane asset 12, or maximize the quality of the output of the RO membrane asset 12. The optimization function of the optimizer 180 can find the optimal settings to maintain a production above an acceptable threshold level while minimizing the expenses associated with the production.

[0206] The optimizer 180 can identify presets, settings, set-points, operation modes and configurations of assets 12 of a RO plant 10 to run the RO plant 10 at an optimal level. The optimizer 180 can utilize one or more simulations of a model 135 to find optimal asset 12 settings, presets, set-points, operation modes and configurations. The optimal asset 12 settings, 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. Optimizer 180 can utilize simulator 145 and its simulations independently from forecaster 185 and vice versa. Optimizer 180 can use simulator 145 to run simulations that optimize set-points to the modeled assets 12 independently from forecaster 185. Optimizer 180 can use simulator 145 to run simulations that optimize set-points to the modeled assets 12 together with the forecaster 185 performing such simulations based on future predicted setpoints. [0207] As a membrane performance deteriorates with operating time, both membrane permeability and salt rejection can decline at certain rates. Because of this, optimizer 180 can determine the optimum maintenance schedule for the assets 12, including the RO membrane asset 12, 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.

[0208] The forecaster 185 of a simulator 145 can include structure and functionality, including hardware and software combination, scripts, program code, executables or applications for forecasting performance of the plant 10 or its systems and processes. Forecaster 185 can utilize simulations to identify future operation of plant 10, given processes that are expected to occur in time, such as asset 12 deterioration, reduced efficiencies, and more. Forecaster 185 can use historical data of various measurements, including virtual and physical data, to determine trends for various readings and measurements over time. Forecaster 185 can then extrapolate future performance from the past and present readings. Forecaster 185 can then make determinations about a performance of a particular asset 12, such as RO membrane asset 12, through time in the future. In combination with the determinations from a resource utilization monitor 150, such as when a production or operation falls below a threshold, Forecaster 185 can determine a time in the future when an asset 12, such as a RO membrane asset 12, should have its maintenance, replacement of parts, service or total replacement.

[0209] Forecaster 185 can simulate operation of a plant 10 using different assets. For example, forecaster 185 can run a simulation of a RO plant 10 if a different RO membrane asset 12 is used instead of a current one, to find the performance characteristics under those circumstances. Similarly, forecaster 185 can run a simulation of a RO plant using different pumps or other assets 12, and identify how different would the performance of plant 10 be with such assets 12. Forecaster 185 can utilize simulator 145 and its simulations independently from Optimizer 180 and vice versa. Forecaster 185 can use simulator 145 to run simulations that forecast future operation based on predicted future input values, independently from Optimizer 180. The forecaster 185 can utilize the simulator 145 together with Optimizer 180, thus performing optimization and a simulation together.

[0210] Forecaster 185 can make the determination of time duration until the next RO membrane service, maintenance or replacement together with other components of the data processing system 100, including resource utilization monitor. Forecaster 185 can 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.

[0211] Utilizing the optimizer 180 and the forecaster 185, data processing system 100 can 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 assets 12, and others, all of which can be monitored or determined by the resource utilization monitor 150.

[0212] Optimizer 180 can 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 asset 12.

[0213] An individual optimizer 180 for an RO plant 10 can 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 assets 12 can include multiple optimizers 180, with one optimizer 180 addressing one or more of each sets of RO membrane assets 12. 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 model 135 of the RO membrane asset 12 while leaving all other inputs constant. By changing the parameters in the model, the RO optimizer 180 can 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. [0214] The optimizer 180, alone or in combination with RO membrane asset model 135B, 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 optimizer 180 or the RO membrane asset model 135B 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 optimizer 180. The forecasting implemented by the forecaster 185 can 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.

[0215] RO membrane asset model 135 or the optimizer 180 can determine the state of the RO membrane asset 12 based 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 asset 12 configuration 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.

[0216] Optimizer 180 can work alone or in combination with the resource utilization monitor 150 to minimize the cost of operation of the RO plant 10. The optimizer 180 or the resource utilization monitor 150 can 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. [0217] The RO membrane asset model 135 can 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 optimizer 180 can run the optimization function within the confines of these constraints for any one of the input parameters. Similarly, the simulator 145 and the forecaster 185 can simulate or forecast the performance of the models simulated using the constraints.

[0218] Optimizer 180, alone or in combination with the resource utilization monitor 150, can take the model 135 with current operating conditions, membrane conditions and set-points and calculate the current expense of operating the plant 10. The optimizer 180 can then vary the setpoints to find the optimal operating point within the constraints for the model 135. If the operating point is different from the current operating point, an alert generator 155 can suggest the optimal set-points for one or more assets 12 to the user. The optimizer 180 can also work together with the alert generator 155 to 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. [0219] 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.

[0220] 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.

[0221] 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 setpoints 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.

[0222] 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. [0223] FIG. 10 illustrates an example method 1000. The method 1000 can be implemented by a data processing system 100 of FIG. 1 or FIG. 9, along with any features of the FIG. 7 or any other components, functions or features described herein. At ACT 1002 a data processing system 100 can receive reverse osmosis data. At ACT 1004, data processing system 100 can determine a level of performance using a RO membrane asset model 135B alone or in combination with RO plant model 135 A. At ACT 1006, data processing system 100 can input the level of performance into an optimization function. At ACT 1008, data processing system 100 can predict a RO membrane model performance. At ACT 1010, data processing system 100 can provide a notification to a user. At ACT 1012, data processing system 100 can receive updated RO data. At ACT 1014, data processing system 100 can determine updated level of performance using a RO membrane asset model. At ACT 1016, data processing system 100 can input updated level of performance into optimization function. At ACT 1018, data processing system 100 can predict updated RO membrane asset performance. At ACT 1020, data processing system 100 can provide an updated notification to the user.

[0224] At ACT 1002 a data processing system 100 can receive reverse osmosis (RO) data. The data can be received from plant 10, such as a RO plant 10. The received RO data can include any data about a RO plant 10, including systems and processes operating at the RO plant 10. The received data can include asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118 of a plant 10, such as a RO plant 10. The received data can include measurements 119 described herein, such as the measurements from the instruments 18 and any virtual instrumentation data 170 that can be based on instruments 18 described 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.

[0225] The received RO data can include any data indicative of or related to a RO membrane asset 12 or RO membrane instruments 18. Received RO data can include data from sensor or detector readings from RO membrane instruments 18. The received data can include data or information indicative of the state or status of RO membrane asset 12 including 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 asset 12.

[0226] 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 asset 12. [0227] At ACT 1004, data processing system 100 can determine a level of performance using a RO membrane asset model 135B. Data processing system 100 can determine the level of performance using a RO plant model 135A. Data processing system 100 can determine the level of performance based on the RO plant model 135 A and RO membrane asset model 135B.

[0228] The determined level of performance can include the level of performance of one or more assets 12 at a RO Plant 10, the level of performance of the RO plant 10, or the level of performance of a RO membrane asset 12. Data processing system 100 can determine the level of performance of any one or more assets 12 at the plant 10. Data processing system 100 can determine the level performance of any of the RO plant assets 12, including any assets 12 discussed herein, such as for example assets 12 in connection with FIG. 2C, 3 A, 3B and 4. Data processing system 100 can determine a level of performance of the RO membrane asset 12 by inputting the data for the RO membrane asset 12 into a RO plant model 135A generated using a topology indicating one or more relationships between the plurality of assets and a flow path between the plurality of assets.

[0229] Data processing system can determine the level of performance of a RO membrane asset 12 using a RO membrane asset model 135B. The level of performance can be determined based on the RO membrane asset model 135 running the model using the data received at ACT 1002. Data processing system 100 can determine the level of performance using a simulator 145, an optimizer 180 or forecaster 185, along with any of their functionalities described herein. The data processing system 100 can 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.

[0230] Data processing system 100 can determine the level of performance of RO membrane asset 12 based on data from any RO membrane instruments 18 discussed herein. The data from RO membrane instruments can be input into a RO membrane asset model 135B. The level of performance can be determined based on any virtual instrumentation data 170 generated based on data from any RO membrane instruments 18 discussed herein. The virtual instrumentation data 170 generated based on RO membrane instruments 18 data can be input into RO membrane asset model 135 to determine the level of performance.

[0231] The level of performance can be determined based on the data from RO membrane instruments 18 input into a RO plant model 135 A that includes and runs an internal RO membrane asset model 135B. The level of performance can be determined based on the virtual instrumentation data 170 that is generated based on RO membrane instruments input into a RO plant model 135 that includes and runs an internal RO membrane asset model 135. The level of performance can be determined based on both data from any combination of assets 12 at the RO plant, the RO membrane instruments 18 and the virtual instrumentation data 170 that is based on RO membrane instruments 18, being input into any combination of RO membrane asset model 135B or RO plant model 135A.

[0232] At ACT 1006, data processing system 100 can input the level of performance into an optimization function. The data processing system 100 can input the level of performance into a simulator 145 for processing with one or more simulation functions of the simulator 145. The data processing system 100 can input the level of performance into one or more optimizers 180. The optimizer 180 can run various set-points of assets 12 of the plant 10 in the RO plant model 135 or RO membrane asset model 135B in order to identify the set-points that produce the most optimal performance. The optimizer can then compare the set-points of the models 135A or 135B to determine if there is a difference between the set-points of the current system and the system with optimal set-points.

[0233] The level of performance can be input into an optimizer 180 to determine if the set-points of the RO membrane asset 12 are different from set-points in the simulation that produced the most optimal results. The level of performance can be input into an optimizer 180 to determine if the set-points of the assets 12 of the plant 10 are different from set-points in the simulation that produced the most optimal results.

[0234] The data processing system 100 can 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 plant 10. The data processing system 100 can 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 system 100 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, a pump speed, a concentrate flow and a fluid feed pressure.

[0235] The optimizer 180 can compare the current level of performance of the plant 10 with different levels of performance of plant 10 simulated by simulator 145 in which the optimizer 180 or the optimization function varies settings, inputs or configurations of one or more assets 12 at the RO plant 10. The optimizer 180 can compare the current level of performance of the plant 10 with different levels of performance of plant 10 simulated using varied settings, inputs or configurations. The optimizer 180 can compare the current level of performance of the RO membrane asset 12 with different levels of performance of RO membrane asset 12 simulated by simulator 145 in which the optimizer 180 or the optimization function varies settings, inputs or configurations of assets 12 at the RO membrane asset 12 and other assets 12 at the RO plant 10. The settings can be varied by the optimization function or the optimizer 180 within the constraints, to ensure that operation of assets 12 does not exceed recommended operation limits. [0236] 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 asset 12, 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 asset 12.

[0237] 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 system 100 as the optimal set-points can continue being the optimal set-points of a model 135 even if the modeled performance is inferior to the performance of a model 135 completed 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 asset 12. 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 model 135 violate a constraint for an asset 12, 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 assets 12.

[0238] At ACT 1008, data processing system 100 can predict a RO membrane asset performance. The data processing system can predict the RO plant 10 performance. The RO membrane asset 12 performance or the RO Plant 10 performance can be predicted using a simulator 145 or a forecaster 185. Forecaster 185 can predict a future trend of a function comprising data measurements from an instrument 18 or a virtual instrument 165. Forecaster 185 can predict future trends for any number of functions of data measurements from any number of instruments 18 or virtual instruments 165. 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. [0239] The data processing system can predict a RO membrane asset performance using a simulation function of a simulator 145. The simulation function with the Optimizer 180 can 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 simulator 145 with the forecaster 185 to predict the future RO membrane asset performance. [0240] The data processing system 100 can predict, based on the RO plant model 135A or RO membrane asset model 135B, and responsive to inputting the level of performance into an optimization function at ACT 1006, a time at which the level of performance degrades below a threshold. The prediction at ACT 1008 can take place either directly based on the ACT 1004 or ACT 1006. The threshold can be a threshold determined by a resource utilization monitor 150. 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 asset 12 without performing a service on it. The data processing system 100 can predict the time at which the level of performance crosses the threshold based on at least one of the RO plant model 135A and RO membrane asset model 135B 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 system 100 can 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 system 100 can determine the level of performance based on inputting the data received as the real-time data stream into the model.

[0241] Forecaster 185 or the simulator 145 can predict the RO membrane asset 12 performance based on a RO membrane asset model 135B run using determined future readings from assets 12, including RO membrane instruments and virtual instruments 165. Forecaster 185 or the simulator 145 can predict the RO plant 10 performance based on a RO plant model 135A run using determined future readings from assets 12, including RO membrane instruments and virtual instruments 165.

[0242] At ACT 1010, data processing system 100 can provide a notification or an indication to a user. Data processing system 100 or alert generator 155 can provide a notification via a user interface 15. 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 assets 12. The notification can indicate that the level of performance can be improved by modifying one or more set-points of a RO membrane asset 12. The notification can indicate that the level of performance can be improved by modifying set-points within the constraints for the one or more assets 12. The notification can indicate that the level of performance can be improved by replacing one or more assets 12. The notification can indicate that the level of performance can be improved by servicing RO membrane asset 12. The notification can indicate that the level of performance can be improved by replacing or partially replacing the RO membrane asset 12. The notification can provide the amount of improvement that would gained by any of these actions.

[0243] 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 asset 12 degrades below the threshold. The notification can state a time when the level of performance of any asset 12 degrades below the threshold.

[0244] The notification or an indication can state an amount of input or amount of output at which the level of performance of an asset 12 will 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 asset 12 will each the end of its acceptable level of performance. The data processing system 100 can 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 ACT 1006. 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.

[0245] At ACT 1012, data processing system 100 can receive updated RO data. Data processing system 100 can receive any updated data from RO plant 10. For example, data processing system 100 can receive a stream of real-time sensor measurement data from instruments 18, including from RO membrane instruments 18. 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 ACT 1002.

[0246] At ACT 1014, data processing system 100 can determine updated level of performance using a RO membrane asset model. The data processing system 100 can determine the updated level of model based on the updated data received at ACT 1012. The data processing system 100 can determine the updated level of performance using any actions or functionality discussed in connection with ACT 1004 based on the updated data from ACT 1012.

[0247] At ACT 1016, data processing system 100 can input updated level of performance into optimization function. The data processing system 100 can input the updated level of performance into optimization function based on the updated data received at ACT 1012. The data processing system 100 input updated level of performance into optimization function in connection with any actions or functionality discussed in connection with ACT 1006 based on the updated data from ACT 1012.

[0248] At ACT 1018, data processing system 100 can predict updated RO membrane asset performance. The data processing system 100 can predict updated RO membrane asset performance based on the updated data received at ACT 1012. The data processing system 100 can predict updated RO membrane asset performance using any actions or functionality discussed in connection with ACT 1008 based on the updated data from ACT 1012.

[0249] At ACT 1020, data processing system 100 can provide an updated notification to the user. The data processing system 100 can provide an updated notification to the user based on the updated data received at ACT 1012. The data processing system 100 can provide an updated notification to the user using any actions or functionality discussed in connection with ACT 1010 based on the updated data from ACT 1012.

[0250] FIG. 11 illustrates an example method 1100. The method 1100 can be implemented by a data processing system 100 of FIG. 1 or FIG. 9, along with any features of the FIG. 7 or any other components, functions or features described herein. At ACT 1102, a data processing system 100 can preprocess data. At ACT 1104, the data processing system 100 can determine the RO system state. At ACT 1106, the data processing system 100 can begin the optimization 1105 of the system using ACTS 1106, 1108 and 1110. At ACT 1106, the data processing system 100 can try new set-points. At ACT 1108, the data processing system 100 can simulate RO operation. At ACT 1110, the data processing system 100 can calculate costs and constraint violations. At ACT 1112, the data processing system 100 can return optimal set-points.

[0251] At ACT 1102, a data processing system 100 preprocesses 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.

[0252] At ACT 1104, the data processing system 100 can determine the state of the RO plant 10 or the RO membrane asset 12. The data processing system 100 can determine the RO system state using a RO plant model 135 A. The data processing system 100 can determine the RO system state using a RO plant model 135B. The data processing system 100 can determine the RO system state using the RO plant model 135 A and RO plant model 135B together. The data processing system 100 can determine the state of the RO plant 10 and the state of the RO membrane asset 12 by modeling the RO membrane asset 12 within the model of the RO plant 10. The data processing system 100 can perform this ACT using any ACTS of method 1000, including for example ACT 1004. [0253] At ACT 1106, 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 assets 12 of the model 135A and model 135. 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 assets 12. The data processing system 100 can try setting different configurations and settings for any of the assets 12. The data processing system 100 can try setting any parameters, configurations, set-points or performance modes that can affect the performance of any of the assets 12.

[0254] At ACT 1108, the data processing system 100 simulates the RO operation. The data processing system 100 can simulate the RO operation by simulating the model 135A for the RO plant 10. The data processing system 100 can simulate the RO operation by simulating the model 135B of the RO membrane asset 12. The data processing system can simulate the RO operation by simulating the models 135 A and 135B together. The simulation of the models 135A and 135B together can include treating the model 135B as a subset of the model 135A. The data processing system can determine the level of performance of the RO membrane asset 12 based on the performance of at least one, or both of the model 135A or model 135B operating at the set-points input in ACT 1106.

[0255] The data processing system 100 can simulate the RO operation using a simulation function of a simulator 145. The simulation function can be used independently or together with the Optimizer 180. The simulation function can provide the operating set-points for predicting RO member asset performance. The data processing system 100 can predict a RO operation using a simulation function of a simulator 145 with the forecaster 185 to predict the future RO membrane asset performance.

[0256] As the new measurements 119 from instruments 18 at the plant 10 can continue to be updated, the simulated RO operation can reflect updated model 135A or 135B 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 measurements 119 updated from the instruments 18 at plant 10. The data processing system 100 can simulate the RO operation using any functions or any ACTS of method 1000, including for example ACTS 1006 and 1008.

[0257] At ACT 1110, the data processing system 100 calculates the costs and constraint violations of the system. The data processing system 100 can calculate the resources utilized by RO plant 10 system based on the simulated RO operation at ACT 1108 and based on the setpoints entered at ACT 1106. The costs can be calculated using steps any methodology described herein, including at least in ACTS 1008 and 1010.

[0258] Optimal set-points can include the set-points that produced the most preferred RO plant operation up until that point. Data processing system 100 can continue running the optimization 1105 function through ACTS 1106, 1108 and 1110 in a loop, continuously updating and seeking most optimal set-points. Optimization function of the optimizer 180 can run optimization 1105 utilizing RO plant model 135 to test out various set-points for assets 12 and find the set-points that provide the most optimal operation of the plant 10. Optimization 1105 can 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 plant 10 at the RO plant model 135A. 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 [0259] New data from instruments 18 at the plant 10, including RO membrane instruments 18 data, can be updated to the models 135 A or 135B. The new data can be updated automatically, such as via a real-time data stream that updates the models 135A and 135B in real time and during the cycling of the optimization 1105 ACTS 1106, 1108 and 1110. The optimal set-points can be selected when the set-points input into the simulation at ACT 1108 of the updated models 135A or 135B produce results that are superior to the most optimal results up until that point. [0260] 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 ACT 1106 and a simulation can be run at 1108, and they can provide superior results against calculated costs at ACT 1110. 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 assets 12, disqualifying the optimal performance that violates any of the asset 12 constraints.

[0261] At ACT 1112, the optimization function can return optimal set-points to the data processing system 100. 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 assets 12. After completing ACT 1110, the data processing system 100 can or loop back to ACT 1106 to restart the optimization cycle again. The data processing system 100 can 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 ACT 1106 to continue optimizing by comparing a new round of set-points for the RO plant 10 and/or RO membrane asset 12 and any new updated data from instruments 18 that has updated the models 135.

[0262] Referring now to FIG. 12, an example of a system for optimization of a plant 10 is illustrated. For example, FIG. 12 can 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.12 depicts an example system that can include at least one data processing system 100 in communication with at least one plant 10 and at least one client device 20 over at least one communication network 101. The at least one plant 10 can include any number of assets 12 and instruments 18, and an interface 15 A, such as interface 15 of the data processing system 100. At least one data processing system 100 can include at least one plant database 110 including at least one measurements 119A-N that can include data from instruments 18. Data processing system 100 can include a model 135 that can include optimization inputs 200. Data processing system 100 can include at least one Configurable Optimization Engine 280 (“COE 280”) that can include optimization inputs 200, optimization functions 285, preprocessor 250 and postprocessor 255. Data processing system 100 can include at least one interface 15, which just as interfaces 15 A and 15B, can include at least one optimization inputs 200 and at least one optimization outputs 245. Optimization inputs 200 can include at least one performance indicators 210, at least one asset set-points 220, at least one constraints 225, at least one state parameters 230 and at least one data time settings 240. Performance indicators 210 can include at least one virtual instruments 165, at least one instrument 18 or both. State parameters 230 can include at least one virtual instruments 165, at least one instruments 18 or both. Optimization outputs 245 can include at least one set-point setting 250 and optimized performance info 255.

[0263] At a high level, the system illustrated in FIG. 12 can provide a solution for optimizing plant operation in accordance with particular user selected performance indicators. The present solution can include a COE 280 which can include optimization functions 285 and a prompt at interface 15 in which the user can create a study for defining the optimization inputs 200 to be used for the optimization. The data from a plant 10 can be streamed to the plant database 110 and collected as historical data. The historical data can be input into the COE 280 (e.g. a playbook engine), which can use the data, the model 135 and the user provided optimization inputs 200 to determine optimization outputs 245 for optimizing the plant 10.

[0264] In the initial set up, the user can define optimization inputs 200 via a prompt at interface 15. The user can select performance indicators 210, including for example, modeled instruments 18 or virtual instruments 165 (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-points 220 for particular assets 12 at the plant 10 that can be adjusted (e.g. knobs to turn) to find the modeled optimized performance. The user can also select constraints 225 for any set-points 220, state parameters 230 or any other optimization inputs 200, to ensure that they remain within the acceptable range. The user can select or define the state parameters 230 to use as relevant indicators of the modeled state of performance of the plant 10, or to identify the optimization outputs 245. COE 280 can determine the output set-point settings 250 and the optimized performance information 255 for the optimized values of performance indicators 210. The determination can be made based on correlating, interpolating or extrapolating various set-points 220 with their corresponding performance indicators 210 for similar state parameter 230.

[0265] In the case of a user that is a process analyst looking for relationships between (e.g. correlations, interpolations or extrapolations) various set-points 220 and their corresponding performance indicators 210, the user can define state parameters 230, which can be used to determine how similar operating conditions are at various set-points 220 in the past and the present conditions. Upon identifying set-points 220 that, based on the historical and present data, result in improved plant operation under the same or similar conditions, the COE 280 can identify the set-point settings 250 to be used for the assets 12. The COE 280 can run various modeled conditions using model 135 of the plant 10 varying set-point 220 values in order to determine which set-points 220 are most optimal, identifying them, either as is or adjusted, as the set-point settings 250.

[0266] In addition to aforementioned functionalities or features, plant database 110 can include or store measurements 119A-N of any number of sensors, detectors or measurement devices on plant 10. Plant database 110 can include or store any virtual instrumentation data 170. The virtual instrumentation data 170 can be from virtual instruments 165 from the model 135 of the plant 10. Data stored in plant database can include readings from any instruments 18 or virtual instruments 165 which can be organized and arranged. Data can be arranged in a manner that corresponds to the COE 280 in order to be used for training of the optimization functions 285. Data can be time stamped and include metadata for the timing or manner in which the reading was made. Readings from instruments 18 or virtual instruments 165 can be arranged into collections of data providing a snapshot in time of the plant 10 operation, whether physically or modeled. Collections of data can include assets 220, performance indicators 210, state parameters 230 and any other measurements 119A-N from physical instruments 18 or virtual instrumentation data 170 from virtual instruments 165 corresponding to the same snapshot or set of environments at the plant 10.

[0267] Interface 15 can include a prompt, such as a web browser prompt, for entering optimization inputs 200. Interface 15 can provide buttons and prompts for the user to enter optimization inputs 200 to specify, configure or define the type of optimization the user wants to perform. Interface 15 can include software and hardware to display to the user the prompts for inputting, defining or selecting optimization inputs 200, including performance indicators 210, asset set-points 220, constraints 225, state parameters 230, and data time settings 240.

[0268] Optimization inputs 200 can include any user inputs or selections enabling the user to configure or customize the optimization to be performed by the data processing system 100. The inputs or selections can select, define or input performance indicators 210, including any virtual instruments 165 and instrument 18, any number of asset set-points 220, state parameters 230 and constraints 225, as well as any number of data time settings 240. Optimization inputs 200 can be selected from list or set of choices, or can be entered, defined or specified by the user. Optimization inputs 200 can include selection of particular instruments 18 or virtual instruments 165 to use as performance indicators 210 or as state parameters 230. Optimization inputs 200 can include selections of types of constraints 225, their corresponding values. Optimization inputs 200 both and data time settings 240 for various performance indicators 210, state parameters and asset set-points 220, which can define time dependencies between various variables, such as for example between some performance indicators 210 and state parameters 230. [0269] Performance indicators 210 can include any physical or modeled indicator for monitoring performance of a plant 10. Performance indicators 210 can include any virtual instruments 165 (e.g. KPIs) or physical instruments 18 from the plant 10. Performance indicators 210 can include modeled readings or values based on which the optimization is to be performed. For example, performance indicators 210 can be used to determine the state of performance of the plant based on optimization inputs 200 and plant data (e.g. measurements 119A-N and virtual instrumentation data 170). Performance indicators 210 can include the output based on which the set of set-points 220 input into the model 135, optimizer 180, or both, can be selected as the setpoint settings 250 that provide the most optimized (e.g. maximized, minimized or set to a target value) performance indicators 210.

[0270] Performance indicators 210 can include virtual instruments 165, instruments 18 whose values are to be used as the performance of the plant to be optimized. Optimized performance indicators 210 can be performance indicators 210 that are maximized, minimized or set at a particular operation threshold or target. For example, performance indicators 210 can 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 assets 12 or the rate of errors in the product or the faulty product rate. Performance indicators 210 can 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 indicators 210 can 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 plant 10, a user can include any KPIs illustrated in the first column of FIG. 8, such as for example pressure drop (reverse osmosis), recovery, feed flowrate, permeate flowrate or normalized permeate flowrate. Performance indicators 210 selected 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.

[0271] An asset set-point 220, sometimes also referred to as a set-point 220, can include any desired or target value for operation an asset 12 at a plant 10. Set-points 220 can include target setting for operation of any asset 12 at a particular rate of operation. For example, a set-point 220 can 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 asset 12. For instance, setpoints 220 can 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 asset 12.

[0272] Set-points 220 provided by the user can include a range within which test values for the set-points 220 can be selected. For example, a set-point 220 can include an upper bound and a lower bound, defining a range of test values for set-point 220 that can be used for optimization.

[0273] State parameters 230 can include any indicators that can be used to determine the state of the plant 10 or its process. State parameters 230 can include any combination of virtual instruments 165 and instruments 18, with either physical or modeled values processed by a model 135, an optimizer 180, or both. State parameters 230 can include a selection of virtual instruments 165 and instruments 18 from which the state of environment of the past data can be compared and matched with the state of the present environment.

[0274] State parameters 230 can provide indication of the state of the plant 10 at any particular point in the past for which particular performance indicators 210 had particular values. For example, state parameters 230 can be used to compare the present state of the plant 10 whose performance is to be optimized to the state of performance of the same plant 10 in the past. This can be done, for example, by comparing current state parameters 230 against the same state parameters 230 in the past and finding time periods in the past during which the state parameters 230 were same or similar to those currently at the plant. State parameters 230 can be same or similar to the state parameters 230 when, 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 parameters 230 from the past data that most closely match the state parameters 230 that are currently in the plant 10 (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 plant 10.

[0275] Constraints 225 can include any limitation, such a lower or an upper limit, for any optimization input 200, including performance indicators 210, set-points 220 and state parameters 230. Constraints 225 can include an upper or a lower limit, or both, for an optimization input 200. A constraint 225 can include a maximum or a minimum acceptable value, thus maintaining an optimization input 200 within the constraints 225 and defining a range of acceptable values for the optimization input 200. For example, a state parameter 230 or a performance indicator 210 can include an upper constraint 225A and a lower constraint 225B, such that the state parameter 230 can have any value between the constraint 225A and 225B. For example, a state parameter 230 or a performance indicator 210 can correspond to a pressure gauge reading and it can have its upper constraint 225 set to 15PSI and its lower constraint 225 set to 5PSI. In such an example, the state parameter 230 or the performance indicator 210 can have any values between 5PSI and 15PSI, but not any outside of it.

[0276] Constraints 225 for state parameters 230 can be used to determine if the state parameters 230 of the past are same or similar to the current state parameters 230 at the plant. For example, constraints 225 can be set to a particular threshold range for which the state parameters 230 have to match, discarding those that are outside of the range. For example, constraints 225 can include a range around the state parameters 230, 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 parameter 230. Constraints 225 can be used to discard all historical data for which state parameters 230 fall outside of the set range from the current state parameters 230.

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

[0278] Data time settings 240 can 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. instrument 18) and a particular performance indicator 210 (e.g. a virtual sensor 165 reading that can be downstream and thereby delayed from changes at instrument 18). Data time settings 240 can include set time delays, time off-sets or time shifts for the particular sensor with respect to the given performance indicator 210 in 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 plant 10 can affect a performance indicator 210 at the output of the same plant, data time settings 240 can account for the time delay between a temperature change at the fluid input and the performance indicator 210 at the output. Data time settings 240 data can include time offset values to account for any time delays between any instrument 18 and virtual instruments 165, including performance indicators 210, state parameters 230, or both. Data time settings 240 can include for example a time offset for time shifting data from a particular state parameter 230, or a set-point 220 to a particular performance indicator 210. 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 settings 240 can be used to account for that delay for the purposes of a model 135, an optimizer 180, or both.

[0279] Optimization outputs 245 can include any outputs relating optimization. Optimization outputs 245 can include output calculations or determinations from an optimizer 180 or COE 280. Optimization outputs 245 can include set-point settings 250 or optimized performance information 255. Optimization outputs 245 can include information on the collection of set-point settings 250 and what performance indicator 210 values they produce. Optimization outputs 245 can include information on improved efficiency or operation between the present operation and the expected improved operation with the set-point settings 250 applied to assets 12.

[0280] Set-point settings 250, also referred to as the optimized set-point settings or asset setpoint settings 250, can include set-points 220 for any number of assets 12 that optimizer 180 or COE 280 determines produce an improved or most optimal plant 10 operation. Set-point settings 250 can be selected from or based on set-points 220 based on performance indicators 210 they produce. Set-point settings 250 can include set-point 220 values that are determined, selected or calculated by optimizer 180 or COE 280 to produce the optimal or improved performance indicator 210 from the current performance indicator 210. For example, if a user selects performance indicators 210 to be minimized, maximized or set to a particular target level, the set-point settings 250 can include set-points 220 values which when applied to assets 12 will produce desired maximized, minimized or target level performance of the performance indicators 210. [0281] Optimized performance information 255 can include any information on the expected performance of the plant 10 when set-point settings 250 are applied to assets 12. Optimized performance information 255 can be arranged in a table, rows or columns showing any combination of set-point settings 250 and their corresponding performance indicators 210, state parameters 230 and data time settings 240. Optimized performance information 255 can also include information on savings or improvement performance between the present operation of the plant and the plant operated based on each set-point settings 250. The optimized performance information 255 can include several set-point settings 250 and their corresponding performance indicators, state parameters 230 and data settings, providing the user with options to choose between various set-point settings 250 and their respective improved performances, expected instruments 18 readings and expected virtual instruments 165 readings.

[0282] Configurable Optimization Engine 280 can include any hardware, software or a combination of hardware and software for identifying optimization outputs 245 based on optimization inputs 200. COE 280 can include code, programs, instructions, scripts or any other functionality that use optimization inputs 200 for determining optimized or improved plant 10 operation, including based on performance indicators 210 and state parameters 230. COE 280 can include any functionality of an optimizer 180.

[0283] COE 280 can compare modeled plant 10 operation data (e.g. set-points 220, state parameters 230 and performance indicators 210) with the current plant operation data (e.g. current set-points 220, state parameters 230 and performance indicators 210) in order to identify the set-point settings 250 to optimize the performance indicators 210 at the plant. COE 280 can determine plant 10 operation data (e.g. set-points, state parameters and performance indicators) for any range of historical and present data for the plant using models 135. COE 280 can then identify plant 10 operation data whose state parameters most closely match the present state parameters and among that subset of identified matching operation data find set-points 220 for which performance indicators are most optimal (e.g. maximized, minimized or set to particular threshold).

[0284] COE 280 can include the functionality that inputs various input test values for asset setpoints 220 within constraints 225 into a model 135. COE 280 can determine and keep track of performance indicator 210 values that are within the constraints 225. The COE 280 can include the functionality determine the performance indicator 210 values for the input asset set-points 220. COE 280 can utilize optimization functions 285 to identify from historical or current data in plant database 110 those environment conditions that are similar to the current conditions in the plant 10 (e.g. via state parameters 230). COE 280 can then, once identifying similar conditions (e.g. within the constraints 225 for the state parameters 230) identify set-points 220 that are different than the current set-points for the assets and that have resulted in improved performance indicators 210 over those that are currently at the plant 10. COE 280 can include software code, functions or instructions or other functionality for setting and applying any data time settings 240 to any one or more, or a combination of one or more, virtual instruments 165 and instruments 18.

[0285] COE 280 can include software, scripts, computer code or functions establishing or implementing artificial intelligence (“Al”) or machine learning (“ML”) function. COE 280 can include functions that, for example, use trained machine learning models to identify optimized performance indicators 210 and their corresponding state parameters 230 and set-points 220 to identify the most optimal set-points to use for the assets (e.g. set-point settings 250). COE 280 can include the functionality to train machine learning models using the data from plant database 110. For example, a ML function of the COE 280 can be trained using data from instruments 18 and virtual instruments 165 to compare and correlate plant 10 operation performance between its various inputs and outputs. For example, a COE 280 can include a machine learning function that correlates asset set-points 220 with performance indicators 210 based on the past or present data from plant database 110. COE 280 can include the functionality to train a machine learning functionality to correlate different state parameters 230 with different asset set-points 220 in order to determine environments or situations in the past in which the plant 10 achieved a particular performance. COE 280 can compare the present state parameters 230 against historical state parameters 230 to find matching environments and situations. Within such matching environments and situations, COE 280 can identify the set-points 220 which provide improved performance indicators 210 over the present ones. COE 280 can include the functionality to correlate set-points 220 for different assets 12 to state parameters 230, performance indicators 210, or both.

[0286] Optimization functions 285 can include any scripts, functions, instructions or other functionality for identifying optimized operation of plant 10. The optimized operation of plant 10 can be any operation of plant 10 that utilizes set-points 220 within constraints 225 to provide most desirable performance indicators, such as for example performance indicators 210 that are minimized, maximized or set at a threshold. Optimization functions 285 can include machine learning scripts, code or sets of instructions or any other Al or ML related functionality. Optimization functions 285 can include one or more Similarity and Pareto search functions, Bayesian optimization functions, neural network-based functions or any other optimization functions or approaches.

[0287] Optimization functions 285 of the COE 280 can each include the scripts, computer code, and other functionality to identify set-points settings 250 by using any one or a combination of correlating, interpolating and extrapolating of optimal performance indicator 210 values with respect to set-points 220 in the historical or current data. For example, optimization functions 285 and COE 280 can include the functionality to find a relationship between (e.g. correlate, interpolate, extrapolate, find fit curve functions between) different set-points 220 with performance indicators 210. The correlation, interpolation or extrapolation can be applied in accordance with constraints 225 limiting the range of set-points 220 and in for the data in which state parameters 230 of the historical data match the state parameters 230 of the current state at the plant 10 within 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 parameters 230.

[0288] Optimization functions 285 or COE 280 can include the functionality to correlate or interpolate different set-points 220 with respect to performance indicators 210 using an interpolation function. Optimization functions 285 or COE 280 can interpolate a function based on the plotted set-points 220 with respect to performance indicators 210 and state parameters 230. One or more functions can be interpolated for one or more set-points 220, based on state parameters 230 and performance indicators. From an interpolated function, one or more set-point settings 250 can be identified along with their corresponding performance indicators 210. For example, an interpolated function can identify a performance indicator 210 as a function of a setpoint 220. Likewise, an interpolated function can identify a set-point 220 as a function of performance indicators 210. Optimization functions 285 or COE 280 can include the functionality to extrapolate one or more functions for set-points 220 with respect to performance indicators 210 and state parameters 230. For example, COE 280 can extrapolate set-points 220, based on state parameters 230 and performance indicators 210. From the function, the COE 280 can determine one or more set-point settings 250 for their particular performance indicators 210, based on the extrapolated function.

[0289] Preprocessor 250 can include any hardware, software or a combination of hardware and software for preprocessing data from plant database 110. 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. Preprocessor 250 can 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. Preprocessor 250 can include the functionality for data normalization, creating data for data values, such as adding metadata or labeling particular sets of data or values. Preprocessor 250 can make all data from all instruments 18 and virtual instruments 165 in a single and uniform format.

[0290] Postprocessor 255 can include any scripts, code, functions or instructions for gathering any number of sets of optimization outputs 245. A set of outputs 245 can include a particular set of set-points 220 for one or more assets 12 that produce a particular performance indicator 210. Postprocessor 255 can include an arrangement of outputs arranged in descending order from the most optimal performance indicators 210 and their corresponding set-point settings 220 and the related optimized performance information 255 to the least optimal performance indicators 210 and their corresponding set-points 220 and the related optimized performance information 255. Postprocessor 255 can include the functionality to select a set number of best performing setpoint settings 250 and their corresponding performance information 255.

[0291] Postprocessor 255 can include the functionality to apply weights to different optimized performance information 255 in order to select the best set-point settings 250. For instance, the user may identify weights for various performance indicators 210. Postprocessor 255 can apply the weights to the performance indicators 210 to rank optimization outputs 245 with set-points settings 250 and their corresponding performance indicators 221 higher based on the weights applied to performance indicators 210. Postprocessor 255 can include the functionality to produce and arrange optimization outputs 245 in accordance with the performance of the plant 10 in each of the settings.

[0292] Referring now to FIG. 13, a system diagram illustrates an example workflow of a data processing system 100 working with a COE 280. FIG. 13 shows data from a plant database 110 that can be continuously fed into a preprocessor 250. Plant database 110 can include asset data 112, topology data 114, connectivity and flow data 116, instrumentation data 118, measurements 119A-N, and virtual instrumentation data 170. After preprocessing, the output data from the preprocessor 250 can be fed into a COE 280 or model 135 and optimization inputs 200 can be input into the COE 280. COE 280 can utilize the model 135 together with preprocessed data from preprocessor 250 and its own functionality to provide a continuous stream of optimization outputs 245 to the user.

[0293] Still referring to FIG. 13, a plant database 110 can include data streamed from instruments 18 at the plant 10, such as sensors, detectors logs, tests and other sources. Streamed data can include measurements 119 A-N. Plant database 110 can also include data streamed from virtual instruments 165 (e.g. virtual instrumentation data 170), which can be generated based on models 135 that utilize the measurements 119A-N. Plant database 110 can include various manufacturer data and design and control information, such as asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118. 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.

[0294] Preprocessor 250 can preprocess the data (e.g. remove outliers, fill in the gaps, add or modify metadata, including time stamps etc.) before it is sent to COE 280 or model 135. COE 280 can use the preprocessed data together with optimization inputs 200 and to determine and produce optimization outputs 245. Optimization outputs 245 can 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.

[0295] The optimization problem to be solved can be can be identified by the data processing system 100, or the COE 280, based on optimization inputs 200. COE 280 can identify the performance indicators 210 for which to perform optimization, based on user selections. For example, a user can select a particular type of model 135, such as for example, a reverse osmosis plant model 135. The COE 280 can determine, in response to the user selection, performance indicators 210 of this model for which to run optimization, such as for example, maximized processed fluid throughput or minimized plant energy efficiency.

[0296] Optimization functions 285 of the COE 280 can be trained using the preprocessed historical or current data. COE 280 can time shift different data entries or readings based on the data time settings 240. COE 280 can therefore time shift certain performance indicators 210 or state parameters 230 based on data time settings 240.

[0297] Optimization functions 285, 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. COE 280 can utilize any optimization functions 285 to determine optimal set-points settings 250 and their corresponding optimized performance information 255. Determination can be done by correlating, interpolating or extrapolating data in plant database 110. COE 280 can make the determination based on the operation of an optimization function 285 that is calibrated or trained using data from plant database 110. Optimization function 285 can therefore continuously improve over time as new data is streamed and as new determinations are made.

[0298] Still referring to FIG. 13, COE 280 can search through historical data for operating points (e.g. state parameters 230 within constraints 225) to identify time frames in the past whose state parameters 230 closely match the current state parameters 230. COE 280 can determine, from the identified time frames, those set-points 220 that produce performance indicators 210 that are most optimal (e.g. maximized, minimized or set to a particular target as selected or defined by the user). Suboptimal performance indicators 210 can include performance indicators 210 that are not maximized and constitute deteriorated plant operation, such as for example when performance indicators 210 indicate that the plant operates at less than maximum throughput or spends more than minimal amount of energy required to perform its process. COE 280 can recommend set-points 220 or operation that has not occurred before by training optimization functions 285 on the past data and using them as a model to estimate operation at different setpoints 220. Optimization functions 285 can work together with one or more models 135 to estimate operation at various set-points 220. For a set of set-point values input into the COE 280, the model 135 or both, performance indicator 210 values can be gathered and arranged or organized into combinations of performance indicator 210 and set-point 220 values that have occurred before but not been seen together.

[0299] COE 280 can derive a function of the set-points 250 based on the performance indicators 210 and state parameters 230. The function can be determined based on set-points 250 used as data points to plot a curve. In some embodiments the curve can be a fit curve to the data points. COE 280 can use a function, such as a fit curve, the correlation, interpolation and/or extrapolation to identify set-points 250 based on the optimization inputs 200. COE 280 can utilize relations between set-points 220 correlation or interpolation to identify optimized setpoint settings 250 and their corresponding performance indicator 210 values. COE 280 can utilize extrapolation beyond historical values of the combinations of values to produce the optimized set-point settings 250 and their corresponding performance indicator 210 values.

[0300] During creation of studies at the interface 15, users can indicate which optimization inputs 200 they can control and which virtual instruments 165 or instruments 18 can be used as state parameter 230. The set-point settings 250 and their corresponding state parameters 230 and performance indicators 210 can be used to train the model for the next recommendation, providing a feedback loop to continually increase model accuracy. COE 280, as well as any other data processing system 100 components, can be utilized locally on a local computing device or over a cloud and via a browser function at interface 15.

[0301] Referring now to FIGS. 14-20, examples of prompts at interface 15 for setting up an optimization study by a user are illustrated. In FIG. 14, interface 15 includes a page for selecting performance indicators 210 (e.g. objectives) of the study. The user selects two performance indicators 210: Recovery and Specific Energy Consumption for a Reverse Osmosis model, choosing to maximize the Recovery and minimize the Specific Energy Consumption.

[0302] FIG. 15 illustrates an example of interface 15 for setting up set-points 220 which can be used for optimization. Set-points 220 selected in FIG. 15 include 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.

[0303] FIG. 16 illustrates an example of interface 15 with a page for setting up state parameters 230. The user selects state parameters 230: 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.

[0304] FIG. 17 illustrates an example of interface 15 with a page for setting up constraints 225. Constraints 225 selected in the illustrated example in FIG. 17 include 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.

[0305] FIG. 18 illustrates an example of interface 15 with a page for setting up data time settings 240 (e.g. search options) in which the user selects a time period over which the historical data from plant database 110 is to be used for the optimization. Data time settings 240 selected include 999, which can correspond to a maximum value, indicating that all data is used, and no stale data is removed.

[0306] FIG. 19 illustrates an example of interface 15 with 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.

[0307] FIG. 20 illustrates an example of interface 15 with a page of optimization outputs 245. Optimization outputs 245 in the example in FIG. 20 depicts current conditions and recommended value for each of the state parameters 230, along with their respective percentage match. For example, state parameter 230 named Normalized Product shows its current condition of 75.6, while the recommended match is 78.2, with match accuracy of 96.5%. Optimization outputs 245 also provide recommended performance indicators 210. For example, performance indicator 210 named 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 outputs 245 include increase in recovery rate of 1.54% and reduction in energy of 0.0602k Wh/m3, thereby showing the user how each of the performance indicators 210 will be improved if the recommended set-point settings 250 are accepted. The button for the set-point settings 250 is on the left side of FIG. 20, allowing for the user to open the page with the setpoint settings 250 to view them and apply them to assets 12.

[0308] Data processing system 100 can 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 COE 280, 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 COE 280 to generate a plurality of values for the performance indicator via the model 135 and based on the data and a plurality of test values for the set-point. The system can use the COE 280 to 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 setpoint. The system can also include the functionality, such as the optimization outputs provided to the interface 15, to provide the one or more settings for the one or more set-points to adjust the performance of the plant.

[0309] Data processing system 100 can 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.

[0310] Data processing system 100 can 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 setpoints, 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.

[0311] Data processing system 100 receive, 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.

[0312] Data processing system 100 can 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.

[0313] FIG. 21 depicts an example method 2100. Method 2100 can be implemented by a data processing system 100 of FIG. 12, alone or with any of the features discussed anywhere herein, including for example in FIGS. 1, 7, 9 or 13. At ACT 2102, a data processing system 100 can receive data of a plant. At ACT 2104, data processing system 100 can receive optimization inputs. At ACT 2106, data processing system 100 can preprocess received data. At ACT 2108, data processing system 100 can generate performance indicator values based on a model 135. At ACT 2110, data processing system 100 can determine set-point settings based on optimization inputs. At ACT 2112, data processing system 100 can post-process optimization output data. At ACT 2114, data processing system 100 can provide optimization output data to the user.

[0314] At ACT 2102, data processing system 100, or any of its components, including for example COE 280, can receive data from a plant 10. 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 system 100. Received data can include historical and present data of a plant 10. 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 database 110, or a database, such as a database 110 itself. 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 database 110, including any combination of one or more of asset data 112, topology data 114, connectivity and flow data 116, instrumentation data 118, measurements 119A-N and virtual instrumentation data 170. The received data can include data from sensors, detectors, data logs or any other measurements 119A-N as well as virtual instrumentation data 170 of any virtual instruments 165 determined by one or more models 135. Data processing system 100 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.

[0315] Received data, such as measurements 119A-N or virtual instrumentation data 170 can 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 instrument 18 at plant 10 taken over an extended period of time, such as a day, a week, a month or one or more years. Received data from instruments 18 can include values of instrument 18 measurements 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.

[0316] Data can be received, via a connection over a network 101. Data can be streamed via a real-time stream from the plant 10. Data can include historical and present data. Data can include modeled values, for example including performance indicators 210, set-points 220, state parameters 230, 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 instruments 18 at the plant 10.

[0317] At ACT 2104, data processing system 100 can receive optimization inputs 200. Optimization inputs 200 can be received from a prompt function of an interface 15, 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 system 100 can 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 system 100 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. Data processing system 100 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.

[0318] Optimization inputs 200 can be received over a network 101 from interface 15A of plant 10 or from interface 15B on a client device 20. Optimization inputs 200 can be received from a file received via data at ACT 2102. Received optimization inputs 200 can include any combination of user selected or user defined one or more performance indicators 210 (e.g. instruments 18 or virtual instruments 165), one or more asset set-points 220, one or more state parameters 230 (e.g. instruments 18 or virtual instruments 165 that provide the state or environment conditions at the plant 10) and one or more constraints 225 for state parameters 230 or performance indicators 210 as well as one or more data time settings 240. Received optimization inputs 200 can include user selections, user inputs or user definitions of performance indicators 210, state parameters 230, asset set-points 220, constraints 225 and data time settings 240. Optimization inputs 200 can be selected, defined or entered by a user via a prompt on interface 15, a received data file from a client device 20 or plant 10.

[0319] At ACT 2106, data processing system 100 can preprocess historical and present data received at ACT 2102. Data processing system 100 can utilize preprocessor 250 to 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 COE 280. 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 instruments 18 in a suitable data format so that all values from all instruments 18 can be used simultaneously to determine the state of operation of the plant 10 at any particular time.

[0320] At ACT 2108, data processing system 100 can 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 system 100 can 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 system 100 can 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.

[0321] Performance indicators 210 can be generated or calculated based on any combination of one or more instances of one or more models 135. Performance indicator values can be generated using one or more Al or ML functions, such as those described in connection with COE 280 or optimization functions 285. Performance indicators 210 can be generated based on an instance of a model 135 of a plant determining state parameters 230 and performance indicators 210 based on measurements 119A-N and one or more of asset data 112, topology data 114, connectivity and flow data 116 and instrumentation data 118 input into the model 135.

[0322] A data processing system 100 can generate performance indicator 210 values by entering any combination of one or more asset set-points 220 and state parameters 230 into the model 135 and solving for performance indicator 210 values. The data processing system 100 can generate performance indicators 210 by maintaining asset set-points 220 and state parameters 230 constrained within constraints 225 as they are input into model 135. Performance indicators 210 can be determined by plotting a plurality of output results of performance indicators 210 modeled in model 135 as well as the set-points and state parameters 230 for each of the performance indicator 210 values. Data processing system 100 can 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 setpoints.

[0323] At ACT 2110, data processing system 100 can determine set-point settings 250 and any other optimization outputs 245 based on optimization inputs 200. For example, COE 280 can determine set-point settings 250 and optimized performance information 255 based on any combination of one or more performance indicators 210, asset set-points 220 and state parameters 230 within constraints 225. The performance indicators 210, asset set-points 220 and state parameters 230 within constraints 225 can include values modeled by model 135 and stored as a set of values for a particular plant 10 state or condition. COE 280 can make the determination by running the model 135 using model inputs and determining one or more performance indicators 210, asset set-points 220 and state parameters 230 within constraints 225 multiple times. COE 280 can store model 135 outputs for each time the model is run into a plant database, such as for example time stamped measurements 119A-N or virtual instrumentation data 170. The data processing system 100 can 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 system 100 can determine one or more updated settings for one or more setpoints 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.

[0324] COE 280 can determine optimization outputs 245 by comparing current state parameters 235 at the plant with the state parameters 235 from the historical data. Data processing system 100 can determine the current state or conditions at the plant 10 by running the model 135 using the most recent plant 10 data (e.g. current measurements 119A-N and other data from database 110). COE 280 can compare and find matching historical state parameters 230 that correspond to and closely match current state parameters 230 of the plant. The matched past state parameters 230 can match the current state parameters within the constraints 225. The matched past state parameters 230 can 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 parameter 230. Data sets of the historical state parameters 230 that are most closely matched to the current state parameters 230 can be ranked, by the COE 280, higher than those that are less closely matched. By identifying state parameters 230 that most closely match the current state parameters 230 COE 280 can narrow down the range of data sets from which the most optimal performance indicator 210 can be identified.

[0325] COE 280 can identify set-points settings 250 by identifying performance indicators 210 that are maximized, minimized or nearest the threshold or target value as defined or selected by the user at ACT 2104. Performance indicators 210 can be identified based on their value with respect to the current performance indicator 210 value from the model 135 that ran the current plant 10 data. Performance indicators 210 can be determined based on set-points 220 and state parameters 230 input into the model 135. COE 280 can identify set-point settings 250 by identifying the set-point 220 inputs into the model 135 that are closest to the one of maximized value, minimized value or closest to the threshold or target value identified by the user.

[0326] COE 280 can determine performance indicators 210 by searching through historical data for operating points (e.g. state parameters 230 within constraints 225) to identify time frames in the past whose state parameters 230 closely match the current state parameters 230. COE 280 can determine, from the identified time frames, those set-points 220 that produce performance indicators 210 that are most optimal (e.g. maximized, minimized or set to a particular target as selected or defined by the user). COE 280 can identify set-points 220 or operation that has not occurred before by training optimization functions 285 on the past data and using them as a model to estimate operation at different set-points 220. Optimization functions 285 can work together with one or more models 135 to estimate operation at various set-points 220. For a set of set-point values input into the COE 280, the model 135 or both, performance indicator 210 values can be gathered and arranged or organized into combinations of performance indicator 210 and set-point 220 values that have occurred before but not been seen together.

[0327] COE 280 can determine set-points 250 based on the performance indicators 210, setpoints 220 and state parameters 230. Determination can be made based on a fit curve that can be derived for set-points 220. The curve can include a fit curve to show the trend of performance indicators 210 with respect to various set-points 220. COE 280 can use the correlation, interpolation and/or extrapolation to identify set-points 250 based on the optimization inputs 200. COE 280 can utilize correlation or interpolation to identify optimized set-point settings 250 and their corresponding performance indicator 210 values. COE 280 can utilize extrapolation beyond historical values of the combinations of values to produce the optimized set-point settings 250 and their corresponding performance indicator 210 values.

[0328] A data processing system 100 can utilize one or more Al or an ML functions of COE 280 to determine set-points settings 250 and their corresponding performance indicators 210. Al or ML functions can identify performance indicators 210 from prior state parameters 230 that closely match the state parameters 230 of the present state at the plant 10. Al or ML function of COE 280 can include learning functions to identify the state parameters 230 that 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 parameters 230. Performance indicators 210 can be generated based on inputting plurality of test values for one or more set-points 220. The one or more set-points 220 can be identified within the data set of the matched state parameters 230.

[0329] A plurality test values can be selected from a range of acceptable values for set-points 220. One or more performance indicators 210 can be generated based on the plurality of test values for one or more set-points 220 input into a model 135 and using the model 135 to generate the performance indicators for test values input. The model 135 can be run a plurality of times in order to test plurality of test values for set-points 220 and to generate a plurality of one or more performance indicators 210. COE 280 can determine set-point settings 250 based on an Al or ML function identifying modeled performance indicators 210 that are nearest to the maximized, minimized or target value of the performance indicators 210 and have the modeled state parameters 230 most closely mapping onto the state parameters 230. For example, COE 280 can use a trained model to identify set-point settings 250 by identifying set-points 220 modeled in the model 135 whose modeled state parameters 230 resemble the present values of the state parameters 230 in the plant 10 within an acceptable range and have a most improved performance indicators 210 (e.g. performance indicators 210 whose values are maximized, minimized or closest to the set target value.)

[0330] COE 280 can determine set-point settings 250 based on a function developed based on a plurality of test values for set-points 220 input into a model 135 a set number of times and the plurality of modeled values for performance indicators 210 determined by the model 135 from running of the model the set number of times. COE 280 can determine set-point settings 250, and other optimization outputs 245, based on a correlation of the test values for set-points 220 input into the model and the modeled performance indicators 210. COE 280 can determine set-point settings 250, and other optimization outputs 245, based on an interpolation of the test values for set-points 220 input into the model and the modeled performance indicators 210. COE 280 can determine set-point settings 250, and other optimization outputs 245, based on an extrapolation of the test values for set-points 220 input into the model and the modeled performance indicators 210. The plotted results of performance indicators 210, state parameters 230 and asset set-points 220 can be correlated, interpolated or extrapolated to determine set-point settings 250.

[0331] At ACT 2112, data processing system 100 can post-process the optimization output data. Postprocessor 255 can gather any number of sets of optimization outputs 245, where each set can include one or more performance indicators 210, set-points 220, state parameters 230 within constraints 225 and their corresponding optimization outputs 245 that can include the corresponding set-points settings 250 and optimized performance information 255. Postprocessor 255 can organize and prepare a set of outputs 245 that can include a particular set of set-points 220 for one or more assets 12 that produce a particular performance indicator 210. Postprocessor 255 can arrange outputs 245 in a descending order from the most optimal performance indicators 210 at the top and their corresponding set-points 220 and their corresponding state parameters 230 down to the least optimal ones at the bottom. Postprocessor 255 can select a set number of best performing set-point settings 250 and their corresponding performance information 255 from the set of outputs 245.

[0332] Postprocessor 255 can apply weights to different optimized performance information 255 in order to select the best set-point settings 250. For instance, the user may identify weights for various performance indicators 210 as part of optimization inputs 200 and the postprocessor 255 can apply the weights to the performance indicators 210 to rank optimization outputs 245 with set-points settings 250 and their corresponding performance indicators 221 higher or lower based on the weights applied to performance indicators 210. Postprocessor 255 can determine the percentage rate improvement in terms of the performance indicators 210 by which the plant 10 will perform should the corresponding set of set-points 220 be applied.

[0333] At ACT 2114, data processing system 100 can provide optimization output data to the user. Interface 15 can display the optimization outputs 245 to the user. Interface 15 can provide selections for sets of set-points 250 and optimized performance information 255 for the user to select the one the user wants to apply. The interface 15 can provide various sets of set-point settings 250 and their corresponding information, including optimization inputs 200 and optimization outputs 245 determined at ACT 2110 to a GUI on a display to enable the user to select which of the sets of set-point settings 250 the user wants to choose. The optimization outputs 245 provided to the user can enable the user to apply the set-point settings 250 to optimize the plant 10 operation and improve its performance. The data processing system 100 can 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.

[0334] The data processing system 100 can 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 system 100 can 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 system 100 can 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.

[0335] Having now described some illustrative implementations, it is apparent that the foregoing is illustrative and not limiting, having been provided by way of example. In particular, although many of the examples presented herein involve specific combinations of method acts or system elements, those acts and those elements may be combined in other ways to accomplish the same objectives. Acts, elements and features discussed in connection with one implementation are not intended to be excluded from a similar role in other implementations or implementations.

[0336] The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including” “comprising” “having” “containing” “involving” “characterized by” “characterized in that” and variations thereof herein, is meant to encompass the items listed thereafter, equivalents thereof, and additional items, as well as alternate implementations consisting of the items listed thereafter exclusively. In one implementation, the systems and methods described herein consist of one, each combination of more than one, or all of the described elements, acts, or components.

[0337] Any references to implementations or elements or acts of the systems and methods herein referred to in the singular may also embrace implementations including a plurality of these elements, and any references in plural to any implementation or element or act herein may also embrace implementations including only a single element. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, their components, acts, or elements to single or plural configurations. References to any act or element being based on any information, act or element may include implementations where the act or element is based at least in part on any information, act, or element.

[0338] Any implementation disclosed herein may be combined with any other implementation or embodiment, and references to “an implementation,” “some implementations,” “one implementation” or the like are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the implementation may be included in at least one implementation or embodiment. Such terms as used herein are not necessarily all referring to the same implementation. Any implementation may be combined with any other implementation, inclusively or exclusively, in any manner consistent with the aspects and implementations disclosed herein.

[0339] References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. References to at least one of a conjunctive list of terms may be construed as an inclusive OR to indicate any of a single, more than one, and all of the described terms. For example, a reference to “at least one of ‘A’ and ‘B’” can include only ‘A’, only ‘B’, as well as both ‘A’ and ‘B’. Such references used in conjunction with “comprising” or other open terminology can include additional items.

[0340] Where technical features in the drawings, detailed description or any claim are followed by reference signs, the reference signs have been included to increase the intelligibility of the drawings, detailed description, and claims. Accordingly, neither the reference signs nor their absence have any limiting effect on the scope of any claim elements.

[0341] The systems and methods described herein may be embodied in other specific forms without departing from the characteristics thereof. The foregoing implementations are illustrative rather than limiting of the described systems and methods. Scope of the systems and methods described herein is thus indicated by the appended claims, rather than the foregoing description, and changes that come within the meaning and range of equivalency of the claims are embraced therein.