WO2024236353A1 - Intelligent reverse osmosis control - Google Patents
Intelligent reverse osmosis control Download PDFInfo
- Publication number
- WO2024236353A1 WO2024236353A1 PCT/IB2023/055135 IB2023055135W WO2024236353A1 WO 2024236353 A1 WO2024236353 A1 WO 2024236353A1 IB 2023055135 W IB2023055135 W IB 2023055135W WO 2024236353 A1 WO2024236353 A1 WO 2024236353A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processors
- machine
- stage
- variables
- pressure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D61/00—Processes of separation using semi-permeable membranes, e.g. dialysis, osmosis or ultrafiltration; Apparatus, accessories or auxiliary operations specially adapted therefor
- B01D61/02—Reverse osmosis; Hyperfiltration ; Nanofiltration
- B01D61/025—Reverse osmosis; Hyperfiltration
- B01D61/026—Reverse osmosis; Hyperfiltration comprising multiple reverse osmosis steps
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D61/00—Processes of separation using semi-permeable membranes, e.g. dialysis, osmosis or ultrafiltration; Apparatus, accessories or auxiliary operations specially adapted therefor
- B01D61/02—Reverse osmosis; Hyperfiltration ; Nanofiltration
- B01D61/12—Controlling or regulating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/20—Administration of product repair or maintenance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D2317/00—Membrane module arrangements within a plant or an apparatus
- B01D2317/02—Elements in series
- B01D2317/027—Christmas tree arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- RO systems which can be referred to as RO machines
- RO machines which include water purification systems
- the purified water can be used for drinking water, fabricating silicon wafers and various other applications.
- RO systems include RO membranes that remove impurities from the water.
- RO systems can include a booster pump that pushes the water through the membrane and a number of prefilters to remove sediments and other impurities. The system can then store the purified water in a holding tank or pressurized accumulator for subsequent use.
- RO membranes operate by separating feedwater into two flows, concentrate which is high in total dissolved solids (TDS) and permeate which is low in TDS.
- An RO system may have more than one stage, where concentrate from the first stage is the feedwater for the second stage, and so on.
- Most RO machines are two-stage. Each stage typically includes several tubular pressure vessels operating in parallel, each containing several membranes operating in series. Typically, half the feedwater is recovered as permeate in each stage and the other half carries forward to the next stage, so that a single stage machine recovers about 50%, a two-stage machine recovers about 75%, and a three-stage machine recovers about 87.5%. These percentages can be increased by circulating concentrate to a feedwater inlet.
- the TDS becomes more concentrated, and solids may start to precipitate.
- purified water permeates through the membranes, a concentration gradient is established, with TDS more concentrated near the surface of the membrane than in the bulk flow of feedwater, which further contributes to the risk of precipitation and possible fouling of the membranes.
- membrane manufacturers establish operating limits on concentrate flow, permeate flow, and recovery percentage. To protect the membranes mechanically, there are limits on feedwater flow, operating pressure, and hydraulic pressure drop on the concentrate side of the membrane.
- RO systems usually operate at close to maximum capacity, within the predefined operating limits. But during periods of low product water demand, the machine is shut down when the product storage tank is full. While shut down, microbial growth on the membranes may get out of control and cause biological fouling. Optimal operation is also affected by the temperature and TDS of the feedwater which will vary over time.
- Optimizing operation of RO systems includes balancing various considerations.
- the power required by the high-pressure feed pump is one economic consideration, but another important consideration is the water effectively wasted as concentrate (brine) effluent.
- a skilled operator must periodically adjust for these variables.
- the system can include an RO machine and a computer system communicatively coupled to the RO machine.
- the RO machine can include: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine, one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages, valves fluidically coupled to a portion of the plurality of membranes of each stage, the valves controlling various controls within the RO system, the inlet for the feedwater, and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater.
- the computer system can include a memory, one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices, and one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method.
- the method can include: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating
- the system can include an RO machine and a computer system communicatively coupled to the RO machine.
- the RO machine can include: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine, one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages, valves fluidically coupled to a portion of the plurality of membranes of each stage, the valves controlling various controls within the RO system, the inlet for the feedwater, and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater.
- the computer system can include a memory, one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices, and one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method.
- the method can include: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by the active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the
- the method can include: determining, by one or more processors, various variables related to operation of the membranes of a RO machine, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by active components of the RO machine; and
- FIG. 1 depicts a system into which aspects of the present invention can be integrated, such that the embodiments described herein act as control systems for the system depicted in FIG. 1.
- FIG. 2 is a workflow that illustrates various aspects of some embodiments of the present invention including the inclusion of an iterative mathematical model.
- FIG. 3 is a workflow that illustrates various aspects of the learning engine functionality in some embodiments of the present invention including the inclusion of the iterative mathematical model.
- FIG. 4 is a workflow that illustrates various aspects of the learning engine functionality in some embodiments of the present invention including how program code can control the operating variables within limits and mitigate possible future issues.
- FIG. 5 is a block diagram that illustrates various aspects of some embodiments of the present invention.
- FIG. 6 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system operates a machine in a semi- automatic mode when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond.
- FIG. 7 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system described herein can periodically test a step response of each controlled variable in the machines it controls.
- FIG. 8 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system detects sudden changes in the slope versus time of the critical operating parameters.
- FIG. 9 depicts various program blocks that can be utilized to perform various aspects of some embodiments of the present invention.
- FIG. 10 depicts a computer system configured to perform an aspect of an embodiment of the present invention.
- FIG. 11 depicts a computer program product incorporating one or more aspects of the present invention.
- Embodiments of the present invention include intelligent control systems for RO systems.
- this intelligent control system is implemented by communicatively coupling a programmable logic circuit to various sensors in an existing RO system.
- the intelligent control system assures the operational integrity of the RO system.
- Program code comprising a defined algorithm, in examples herein, adjusts feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop in an RO system.
- the program code can control the RO system to yield the highest possible permeate production without exceeding upper operating limits when high output is desired and to allow operation at low output and high recovery without exceeding lower operating limits when less output is required.
- the examples include an intelligent control system where program code executed by a processor keeps several interdependent operating variables within predefined limits by adjusting several interacting control parameters to achieve and maintain optimal performance of a semipermeable membrane-based machine, in any of its conventional configurations, to separate water containing dissolved solids into two streams, one containing low dissolved solids (permeate) and the other containing high dissolved solids (concentrate).
- An RO machine is used herein as an example but other machines with similar applications could also utilize aspects of the embodiments described herein. Certain aspects of the examples herein are of particular note when compared to existing approaches. The enumerated aspects are not an exhaustive list and represent merely certain aspects of some embodiments of the present invention.
- the program code acting as a control system for the machine, comprises an iterative mathematical model and can infer critical variables that are not, or cannot be, directly measured, but to maintain optimal performance, the program code maintains these variables within limits as well. This aspect is depicted in FIGS. 2 and 3, for example.
- the program code can mitigate possible future issues by: 1) detecting a probable failure in a process measurement device in the machine or system; 2) alerting an operator to address and fix the issue; and 3) inferring (including contemporaneously with the alerting) an approximate value of the variable.
- the program code (which is a control system) can allow the machine to continue operating at possibly reduced efficiency, without endangering the integrity of the machine or its components, principally the membranes.
- the program code comprising this control system can continue to operate in a semi-automatic mode when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond.
- the program code can alert an operator to manually adjust the control parameter but also, contemporaneously or additionally, the program code can compensate for the loss of automatic control of the parameter by adjusting the remaining control parameters to preserve system integrity.
- the program code of the control system can monitor critical operating variables over time to predict maintenance needs (e.g., timing for cleaning or replacement of the membranes).
- the program code can also detect sudden changes in the slope versus time of the critical operating parameters to warn the operator of an operating fault, such as incorrect dosing of antiscalant chemicals.
- the program code can compensate (including simultaneously with alerting the operator) for the detected change by reducing permeate production or recovery to preserve the integrity of the machine and its components. Certain of these aspects are depicted in FIG. 8, for example.
- the program code engages in machine learning.
- the program code of the control system can learn how the (e.g., RO) machine will respond to adjustments in the control parameters by periodically calculating the gradient of the change in each controlled variable to a step change in a control parameter. Based on these calculations, the program code can predict future adjustments in the control parameter to achieve the desired value in a critical controlled variable.
- the program code stores the machine’s response to adjustments in a memory and can utilize this memory (e.g., database) as a reference to anticipate issues in a machine moving forward.
- the program code can also continually update this memory resource to reflect any change in trends. Certain of these aspects are illustrated in FIG. 7, for example.
- the program code of the control system can periodically test a step response of each controlled variable to a deliberate step change in a control parameter to determine an optimum interval for recalculation of an output value for the controlled parameter according to which of the controlled variables is critical. Certain of these aspects are illustrated in FIG. 8, for example.
- connection is broadly defined herein to encompass a variety of divergent arrangements and assembly techniques. These arrangements and techniques include, but are not limited to (1) the direct joining of one component and another component with no intervening components therebetween (e.g., the components are in direct physical contact); and (2) the joining of one component and another component with one or more components therebetween, provided that the one component being “connected to” or “contacting” or “coupled to” the other component is somehow in operative communication (e.g., electrically, fluidly, physically, optically, etc.) with the other component (notwithstanding the presence of one or more additional components therebetween).
- operative communication e.g., electrically, fluidly, physically, optically, etc.
- ⁇ 10% such as less than or equal to ⁇ 5%, such as less than or equal to ⁇ 2%, such as less than or equal to ⁇ 1%, such as less than or equal to ⁇ 0.5%, such as less than or equal to ⁇ 0.2%, such as less than or equal to ⁇ 0.1%, such as less than or equal to ⁇ 0.05%.
- ⁇ 5% such as less than or equal to ⁇ 5%
- ⁇ 2% such as less than or equal to ⁇ 1%
- ⁇ 0.5% such as less than or equal to ⁇ 0.2%
- ⁇ 0.1% such as less than or equal to ⁇ 0.05%.
- electrically coupled refers to a transfer of electrical energy between any combination of a power source, an electrode, a conductive surface, a droplet, a conductive trace, wire, waveguide, nanostructures, other circuit segment and the like.
- the terms electrically coupled may be utilized in connection with direct or indirect connections and may pass through various intermediaries, such as a fluid intermediary, an air gap and the like.
- processor refers to a hardware and/or software device that can execute computer instructions, including, but not limited to, one or more software processors, hardware processors, field programmable gate arrays (FPGAs), application- specific integrated circuits (ASICs), and/or programmable logic devices (PLDs), including programmable logic controllers (PLCs).
- FPGAs field programmable gate arrays
- ASICs application- specific integrated circuits
- PLDs programmable logic controllers
- Components of the system that can be utilized to execute aspects of embodiments of the present invention may include specialized hardware, including but not limited to, a GPP, an FPGA and a GPU (graphics processing unit).
- items denoted as processors may include hardware and/or software processors or other processing means, including but not limited to a software defined radio and/or custom hardware.
- program code refers to both software and hard-coded instructions, such as those utilized by a PLC.
- a PLC is a microprocessor-based electronic component that serves as the programmable smarts for simple or isolated applications.
- the program code of a PLC is hard-coded and the PLC includes a microprocessor (a processor) that executes the program code.
- real-time refers to a guaranteed level of computer responsiveness within a specified time constraint, usually milliseconds or microseconds, between an event and its response deadline.
- Real time describes a human sense of time (rather than machine time) that seems immediate.
- Near realtime refers to the timeliness of data or information which has been delayed only by the time required for electronic communication and automatic data processing, meaning that there are no significant delays.
- Embodiments of the present invention are inextricably tied to computing.
- the examples herein include an integration of a control system that utilizes artificial intelligence to operate an RO system effectively and efficiently.
- Many of the examples herein are RO systems that include a PLC-based control system that is communicatively coupled to various components of the RO system, including membranes, pumps, and/or various sensors that monitor the operation of the components.
- the PLC control system is an intelligent control system at least because it utilizes a rules-based expert system to optimize the RO system.
- the PLC that executes the aspects of the rules-based expert system is a specialized hardware component.
- the artificial intelligence provided by the PLC control system described herein improves the current (and future) operation of the RO system into which it is integrated, which includes various aspects that comprise a computing system, such as the PLC.
- Embodiments of the present invention are directed to a practical application and provide significant advantages over existing approaches.
- Embodiments of the present invention include program code integrated into an RO system (e.g., utilizing a PLC communicatively coupled to sensors) to automate control and optimization of the RO systems via artificial intelligence (Al).
- an RO system e.g., utilizing a PLC communicatively coupled to sensors
- Al artificial intelligence
- Embodiments of the present invention are directed to a practical application because they ensure the operational integrity of the RO system by automatically adjusting operating parameters of the RO system (e.g., in order to remain within safe limits), including, but not limited to, the feed pressure, permeate balance, outlet flow, circulation, brine discharge flow, TDS, and/or total recovery. Aspects of various examples herein optimize the operation of RO systems, including keeping the RO system within safe limits, adjusting feed pressure, adjusting brine discharge flow, balancing permeate flux between stages, and/or adjusting circulation flow. [0042] Another practical application is the feed forward control integrated into some of the examples.
- the examples herein can also include a feed forward control, meaning, the program code (e.g., of the PLC) can calculate the required pump speeds and valve positions needed to obtain a desired performance. The program code then feeds these values forward in the control loops for each control parameter, so that the system adjusts quickly to changing requirements, and subsequent to those changes, can use feedback-based control for fine-tuning.
- the program code e.g., of the PLC
- the program code also provides predictive calculations.
- the program code utilizes various variables to perform its (predictive) calculations and some of the values are difficult and/or time consuming or otherwise impractical to measure directly.
- the program code can utilize an iterative model to infer variables not directly measured based on real-time inputs from the RO machine.
- the iterative model which can be generated and/or utilized by the program code can detect an instrument reading that is lost or inconsistent with other known operating variables.
- the program code can then prompt the operator to check its calibration and estimate its correct value to enable continued operation if this is deemed safe. If a feedback signal malfunctions, the program code can continue operating the RO system provided that the program code can estimate values of control variables that can no longer be assessed accurately because of the signal malfunction, the program code can utilize secondary or tertiary controls to keep the machine within safe operating limits.
- the program code prompts an operator to manually adjust the impaired control parameter to a desired level.
- the program code detects and annunciates impairments and can record these impairments in an event log. When the impairments are rectified, the program code can record the corrections of the impairments in the event log as well.
- Embodiments of the present invention provide significantly more than existing approaches to regulating RO systems because unlike the existing approaches, embodiments of the present invention utilize program code (including a defined algorithm) to adjust feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop in an RO system.
- One existing approach is limited to checking various operating variables and advises a user when an issue is detected; however, unlike in the examples herein, in the existing approach, there is no control system that adjusts the operating parameters of the RO system (e.g., including in real-time or near real-time), to optimize performance of the RO system over time, as various variables change.
- Certain approaches can provide results that give a partial picture of the operation of an RO system at a given time, but do not control the system, as a whole, over time.
- certain approaches can achieve at least partial RO control based on limited parameters (i.e., temperature, feedwater conductivity, pH), control exclusively feedwater pressure through manual adjustment, optimize operation by defining certain values (i.e., flux, recovery, pH and antiscalant dose), and use chemicals (e.g., chlorine) to control bacterial growth.
- None of the existing approaches utilize the comprehensive algorithm herein (executed by program code) to adjust feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery in real-time or near real-time while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop.
- FIG. 1 illustrates aspects of an RO system.
- the operation of the RO system 100 can be optimized by utilizing a PLC to execute program code comprising the algorithm described herein for each stage of the RO system 100.
- the RO system 100 includes RO membranes 110 that separate feedwater 120, provided to the RO system via an inlet, into two flows, concentrate, which is high in TDS, and permeate, which is low in TDS.
- an RO machine may have more than one stage, where concentrate from the first stage 1 2 is the feedwater for the second stage 132, and so on.
- the RO system 100 of FIG. 1, like most RO systems, includes two stages, the first stage 122 and the second stage 132.
- the RO system 100 includes a booster pump 133 between the stages, in addition to a high pressure pump 123 in advance of the first stage 122.
- Including the booster pump 133 between stages can be advantageous as, in this example, concentrate can be circulated independent of the preceding stage to the suction of the booster pump.
- the membrane module 114 comprising the RO membranes 110 in the RO system 100 are, in this example, cylindrical and installed in pressure vessels 116 that hold, for example, 6 membrane modules 114, although other RO systems 100 that can include aspects of the present invention can include pressure vessels that hold up to 8 modules.
- the number of membranes in a module is provided merely as an illustrative example and not to suggest any limitations.
- membranes may be 2-1/2”, 4”, 8” or 16” in diameter; the most common diameter is 8”.
- Each stage of each pass can include several pressure vessels connected in parallel, with about half as many pressure vessels in the following stage.
- the RO system 100 of FIG. 1 includes a first pass with three stages and a second pass with two stages.
- a seawater potabilization RO will often have a second pass, where permeate from the first pass is made to pass through membranes specifically designed to retain boron which is not sufficiently retained by the first pass membranes.
- the first and second pass machines can each be controlled by the control system described herein, with some interaction to coordinate flows between the two.
- feedwater is forced through the membranes by high pressure.
- a threshold pressure referred to as the osmotic pressure, that is proportional to the TDS and below which water will not flow through the membrane to the permeate side.
- the osmotic pressure As the feedwater progresses from membrane to membrane and stage to stage, the TDS becomes more concentrated, and solids may start to precipitate.
- purified water permeates through the membranes, a concentration gradient is established, with TDS more concentrated near the surface of the membrane than in the bulk flow of feedwater, which further contributes to the risk of precipitation and possible fouling of the membranes.
- membrane manufacturers establish operating limits on concentrate flow, permeate flow and recovery percentage.
- An RO system (e.g., FIG. 1, 100) has various critical operating parameters. These parameters are enumerated below.
- Minimum concentrate flow - Concentrate flow creates turbulence around the mesh and reduces the concentration gradient, so there is a lower limit on this flow. In this case it is the last element in the first or second stage that will be critical, so the concentrate outlet flow from the pressure vessels of each stage must be monitored.
- Maximum recovery - Manufacturers define an upper limit for the recovery (permeate flow / inflow) for any given membrane module.
- the maximum recovery can be estimated as a function of the measured variables by program code comprising the iterative model.
- Maximum pressure vessel pressure drop Pressure drop in the concentrate flow through the pressure vessel produces axial thrust that could exceed the resistance of the last module, thrust cone or downstream end closure of a pressure vessel, so this must be limited, which places an upper limit on the feedwater and concentrate circulation flows.
- the control system in embodiments of the present invention utilizes a control system that comprises a rules-based expert system, hence, employing Al.
- the rules-based expert system can utilize dimensionless parameters so that they are units agnostic; for example, percent of maximum flow rather than m 3 /h or percent deviation from a limit or setpoint.
- the denominators used in the deviation calculations shown hereafter are provided as examples, for illustrative purposes only, but others could also be utilized in embodiments of the present invention. For example, the upper measurement limit of the instrument used to monitor a controlled variable.
- the program code in embodiments of the present invention utilizes a convention whereby a negative percent deviation indicates a safe value and a positive deviation indicates that something is more likely than not to be problematic.
- a positive deviation means the flow is too high.
- a positive deviation means the flow is too low.
- positive deviation means the flow is more than necessary. To avoid unnecessary ‘hunting’ (repetitive up and down movement of a control parameter), slight negative deviations are ignored by the program code.
- ⁇ 0 may be understood to represent less than a chosen increment below zero, such as ⁇ -0.5%. Hunting can be further reduced by dividing the calculated adjustment to a control parameter by a damping factor that increases as the process variable approaches its limit or setpoint.
- the program code acting as a control system for the machine, comprises an iterative mathematical model and can infer critical variables that are not, or cannot be, directly measured, but to maintain optimal performance, the program code maintains these variables within limits as well.
- the program code cannot at all readily measure flows, pressure drops and recoveries for individual membrane modules within a vessel, but, instead, can estimate these values using an iterative model (mentioned above) based on vessel inlet and outlet conditions.
- Some deviations are specific to a stage (e.g., FIG. 1, 1 2, 132) in which case the program code can check for deviations for each stage. The relevant deviations are defined as follows.
- DevQprm (radial flow of permeate (flux) through the first membrane in the vessel - upper limit for permeate flow) / upper limit for permeate flow.
- DevQin (inlet flow / pressure vessel in stage - inlet flow limit) / inlet flow limit.
- DevQout (lower limit for outlet flow - actual outlet flow) / lower limit for outlet flow.
- DevPDi (pressure drop in the axial flow of concentrate through the first membrane module - upper limit for individual membrane module pressure drop) / upper limit for individual membrane pressure drop.
- DevPDt (total pressure drop in the axial flow of concentrate through the vessel - upper limit for vessel pressure drop) / upper limit for vessel pressure drop.
- DevReci (maximum individual membrane module recovery - upper limit for recovery) / upper limit for recovery.
- DevRect total percent recovery - desired total percent recovery. This is also an optional control parameter, not defined by the membrane manufacturer, but dependent on water quality.
- Total percent recovery total permeate flow / feedwater flow.
- DevCrcPct actual percent circulation - upper limit for circulation.
- Actual percent circulation concentrate circulation flow / concentrate flow from second stage (if present) or first stage (if not).
- DevPrd (total permeate flow - desired product flow) / maximum product flow. DevPrd is not a critical control parameter but rather a setpoint that may or may not be important to the user. Some users will prefer for the machine to operate always at maximum production.
- DevTDScnc (concentrate TDS - upper limit for concentrate TDS) / upper limit for concentrate TDS.
- Conductivity is used as a readily measurable surrogate for TDS.
- the TDS limit depends on the tendency of the dissolved solids to precipitate forming scale as their concentration increases.
- DevTDSprm (permeate TDS - upper limit for permeate TDS) / upper limit for permeate TDS. This deviation is not critical to the operation of the machine but is a setpoint defined by the user according to the required product water purity.
- the program code then feeds values forward in the control loops for each control parameter, so that the system adjusts quickly to changing requirements.
- the program code can use feedback-based control for fine-tuning.
- the control parameters in an RO system can be expressed as percentages for the intelligent control algorithm of the program code.
- a reference pressure can be a maximum discharge pressure of the feed pump.
- a reference flow can be a maximum total inlet flow to the first stage pressure vessels.
- the program code utilizes the flow of concentrate to waste to determine the degree of concentration of salts in the concentrate and the percentage of water recovery. Brine discharge flow also has a secondary effect on the pressure drops in the axial flow of concentrate and the flow into and out of the pressure vessels. It can be adjusted by a flow control valve (including the control system automatically controlling the control valve and/or alerting an operator to adjust the control valve).
- the RO system purifies water as it is forced through the reverse osmosis membrane by high pressure from the feed pump; higher pressure increases the flow of purified water. Pressure also has a secondary effect on the pressure drops caused by axial flow of concentrate through the spiral wound membrane and the percentage of purified water recovered from the feed water.
- Feed pressure is usually controlled by a variable speed drive on the feed pump; it can also be controlled by a flow valve in the feed pump discharge line, but this wastes energy.
- circulation of concentrate from the outlet back to the inlet can be used to control the percentage of recovery in the membranes, allowing a higher overall recovery. It has a secondary effect on the pressure drops and the flow into and out of the pressure vessels.
- the circulation flow can be controlled by a flow regulating valve, in which case the return point is at the suction of the feed pump, or by a circulation pump, in which case the return point is at the discharge of the feed pump.
- Permeate flux through the membranes will be higher in the first stage than the second stage because the concentrate pressure is higher and the osmotic pressure is lower, unless the transmembrane pressure is controlled. Balancing the permeate flux in the stages allows higher permeate production. This can be done by throttling the permeate flow from the first stage with a flow control valve to create back pressure or by increasing the concentrate pressure in the second stage with an interstage pump. Automatic permeate flux balance is for fine control and is often not configured in conventional RO control systems. This aspect therefore provides an advantage over existing approaches.
- control parameters can affect more than one of the variables that are controlled by the program code in embodiments of the present invention.
- These control parameters can be understood as primary and secondary control parameters.
- a primary control parameter is usually a control parameter that has the most direct effect on a variable of interest.
- adjusting feed pressure is the only practical way to control permeate flux and total permeate production.
- Adjusting brine discharge flow is the primary control parameter for overall percentage recovery.
- Adjusting circulation flow is the primary control parameter for single membrane percentage recovery, axial flows and pressure drops. Adjusting permeate backpressure or interstage boost pressure balances the permeate flux.
- brine discharge flow can act as a secondary control for individual membrane module percentage recovery, axial flows and pressure drops, unless circulation is not configured, in which case brine discharge flow will be the primary mechanism.
- Feed pressure controls permeate production and overall recovery, and also can act as a secondary control for axial flows and pressure drops.
- the program code automatically utilizes secondary control mechanisms when primary control mechanisms cannot be utilized.
- Pressure in the RO systems, can affect each controlled variable.
- the program code in the examples herein calculates a ratio of effect versus adjustment, referred to as the gradient.
- the program code maintains a running average of the calculated gradients for the effect of pressure on each controlled variable.
- the program code trains the algorithm it utilizes to adjust operation for the desired effect and adapt to changing water quality and aging of the membranes.
- the program code calculates the gradient for permeate balance versus permeate backpressure or interstage boost pressure.
- the program code periodically determines deviation percentages for each controlled variable, the program code also calculates the changes in the deviations as current deviations (reflecting changes since the previous determinations). The program code then calculates the gradient for each controlled variable as a percent change in deviation / percent change in pressure.
- the program code can apply various criteria so that only reliable gradient calculations are included in the running averages. Based on this repetition, the program code learns how the machine responds. The program code can utilize the learned values moving forward. Because the system equilibrates after adjusting control parameters, the program code can pause for a pre-determined period of time before recalculating deviation percentages.
- the pre-determined period of time can vary depending on the variable that the program code is calculating. In some examples, the predetermined period of time is a few minutes for TDS and a few seconds for other variables.
- Net Driving Pressure is concentrate pressure - osmotic pressure - permeate pressure.
- the program code calculates this value for each stage based on the average of inlet and outlet conditions.
- the program code can store the gradient for flux versus NDP for each stage over time (normalized for feed water temperature which affects flux) so that the trend can indicate gradual deterioration in the performance of the membranes and detect anomalies that could point to component failure.
- the program code calculates this ‘constant’ for each stage and stores the values it calculates over time, which serves as a measure of blockage in the concentrate flow.
- the program code can also calculate, and store over time a ratio of permeate TDS to concentrate TDS, which serves as a measure of TDS leakage and degradation of the membranes.
- the program code can display the values over time (/. ⁇ ?., the trends of these variables) graphically, for example, in a graphical user interface coupled to the processor (e.g., the PLC).
- the program code By visualizing the values in the display (including the trends), the program code provides data in a manner that enables an operator to anticipate or predict when membrane maintenance (e.g., cleaning) should occur to maintain the operability of the machine.
- the program code displays the values over time and based on these values can automatically predict when membrane maintenance should occur to maintain the operability of the machine.
- the program code can display this prediction to an operator through the interface (e.g., as an alert)
- FIG. 2 is a workflow 200 that illustrates how the intelligent controls described in the examples herein assure the operational integrity of the system by staying within safe limits. Membrane manufacturers specify limits on flows, pressure drops and recovery that insure the durability of the membranes. The workflow 200 details how the program code in the examples herein determines various values and utilizes these values to keep the operation of an RO machine within safe limits.
- the program code determines a feed pressure adjustment to reach a specified limit (as provided by the manufacturer) or setpoint (as provided by the user) and which can be stored in a memory accessible to the program code in the examples herein (210).
- the program code determines both an upper limit and a lower limit for the adjustment.
- the program code determines this adjustment as (-)reference pressure x deviation / gradient.
- the program code determines an upper limit for the feed pressure as the current feed pressure less the largest negative adjustment if any required adjustment is negative (based on the analysis of the program code), or the smallest allowable positive adjustment if not, and sets the lower limit based on the constraint that it be no lower than stage 1 pressure drop + stage 2 pressure drop + stage 2 outlet osmotic pressure, so that all membranes can contribute permeate (220).
- the program code determines a circulation adjustment to reach the specified limit (230). Because pressure drops (PD) are proportional to the square of flow, the program code calculates these adjustments as Qin x (SQRT(PDMax / PD) - 1) where Qin is the total inlet flow to each stage. For inlet flows, the program code calculates the adjustments as QinMax - Qin. The program code determines the outlet flow adjustments using QoutMin - Qout. For the individual membrane recovery of each stage, the program code calculates adjustments as (Rec - RecMax) x (PrdStg + Qwst + Qcrc) / RecMax.
- the program code determines brine discharge flow adjustments that would move the controlled variables to their respective limits (240).
- the program code calculates TDS adjustments as Qwst x (TDS / TDSMax - 1).
- the brine discharge flow adjustments for pressure drops, inlet and outlet flows, and individual membrane recoveries are the same as for circulation because both of these affect the flow through the membranes in the same way.
- the program code can calculate a brine discharge flow adjustment for total recovery as (Rect -RectMax) x (Prd + Qwst + Qcrc) / RectMax.
- the program code determines an upper limit for the circulation and brine discharge flows as the current flow less the largest applicable negative adjustment if any required adjustment is negative, or the smallest allowable positive adjustment if not, and sets the lower limit as the current flow less the smallest applicable negative adjustment if any allowed adjustment is negative, or the largest required positive adjustment if not.
- the program code automatically adjusts (or advises an operator, via a user interface, including a graphical user interface (GUI), to adjust) feed pressure to a value that the program code determines meets the permeate production setpoint, bounded by the lower and upper limits (250).
- GUI graphical user interface
- the program code adjusts circulation and brine discharge flows to the lower limits of each to minimize energy consumption and wasted water (260).
- the control parameter adjustments can be divided by a damping factor that increases as the relevant controlled variable approaches its limit or setpoint.
- the program code also determines an adjustment for permeate flux balance as (-)reference pressure x balance deviation / balance gradient (270) to set the pressure from the interstage booster pump if configured, or the stage 1 permeate pressure if not.
- Embodiments of the present invention include sensors that provide various data to the program code as the reverse osmosis process progresses.
- the program code can automatically adjust (or prompt an operator to adjust) the brine discharge flow by a factor of PrdSet/Prd where PrdSet is the permeate production setpoint and Prd is the current permeate production, without exceeding the upper limit as previously determined for brine discharge flow.
- PrdSet is the permeate production setpoint
- Prd is the current permeate production
- the program code can determine that a control parameter needs to be adjusted, not for its direct effect on a controlled variable, but rather for its effect on the upper or lower limit of another control parameter.
- circulation does not directly affect total recovery, increasing circulation will lower the individual membrane recovery and increase the vessel outlet flow which may be limiting the feed pressure or brine discharge flow respectively and thereby the total recovery.
- the program code can determine that these values are not as expected and automatically increase and/or prompt an operator to increase circulation the amount that the program code determined was a downward adjustment in brine discharge flow that could not be executed because of the limitation in membrane recovery or outlet flow.
- the program code calculates this value for each stage and utilizes the larger result to adjust the circulation flow without exceeding the upper limit as previously determined for circulation flow.
- the program code can also adjust circulation based on determining that the permeate production is not as expected. Although circulation does not directly affect permeate production, increasing circulation will lower the individual membrane recovery which may be limiting the feed pressure and thereby the permeate production. In this case, the program code automatically increases and/or prompts an operator to increase circulation by an amount calculated as Vessels x Qin x (MIN(PrdSet / Prd, RectMax / Rect) - 1), again calculated for each stage and taking the larger result without exceeding the upper limit as previously determined for brine discharge flow.
- the program code can increase the circulation so that production can be decreased without diminishing the recovery or dropping below the minimum outlet flow; the circulation increase in this case is calculated as (Prd - PrdSet) x (1 - Rect) / Rect.
- the program code can control the RO system to yield the highest possible permeate production without exceeding upper operating limits when high output is desired and to allow operation at low output and high recovery without exceeding lower operating limits when less output is required/desired.
- FIG. 3 illustrates a workflow of a feed forward aspect of some embodiments of the present invention.
- the program code observes and records a response of the feed pump, brine discharge flow control valve, circulation flow control valve and permeate backpressure control valve (or booster pump) used for permeate flux balancing (310).
- the program code generates response curves, based on these values, to represent pressure versus pump speed and flow, and flow constant versus position for the modulating valves (320).
- the program code utilizes these curves to determine a required pump speed and valve position needed to obtain a (pre-defined) desired performance (330).
- the program code feeds these values into control loops for each control parameter, and upon receiving these values, the program code (in the control loops), adjusts the RO system to quickly (e.g., in real-time or near real-time) change requirements (340).
- a Proportional-Integral-Derivative controller PID that is communicatively coupled to the system (which includes the PLC which can execute the program code hard-coded in the PLC memory) manages fine tuning values to desired controlled variable values (based on the feedback) (350).
- embodiments of the present invention include an iterative model to infer variables that are not directly measured. For example, the recovery rate of the first membrane module in a vessel that typically holds 6 modules is significantly higher than that of the last module in the vessel. The recovered permeate from each membrane is collected in a common permeate pipe. Even then, it is unusual to measure the permeate flow from each stage because of the high cost of a flow meter, so only the total permeate production is measured.
- the methods described herein provide various advantages over third- party software which can only perform off-line calculations and use static variables.
- the program code can utilize methods similar to a third-party (e.g., membrane manufacturer) software, but can calculate the values online, in real-time.
- Membrane manufacturers provide simulation software that is used for off-line configuration of an RO machine.
- the third party software can determine overall operating parameters that will keep the unmeasured variables within limits.
- the software incorporates an aging factor, and the water quality parameters can be adjusted to determine the effect of anticipated variations on operation. But the offline calculations by the manufacturer’s software cannot compensate for dynamically changing water quality and gradual degradation of the membranes throughout the process of utilizing the RO machine.
- an iterative model (which is part of the program code in embodiments of the present invention) provides operating parameters, just like the manufacturer software, but the accuracy and utility of the parameters provided by the iterative model are superior because the iterative model can provide online calculations, based on real-time inputs from the machine, thereby continually optimizing the operation.
- the program code continuously calculates these values as the RO machine operates, so that the values utilized by the program code to control the RO system are current to the present conditions of the RO system.
- Another enumerated aspect of embodiments of the present invention is that in addition to controlling the operating variables within the limits, the program code can mitigate possible future issues by: 1) detecting a probable failure in a process measurement device in the machine or system; 2) alerting an operator to address and fix the issue; and 3) inferring (including contemporaneously with the alerting) an approximate value of the variable.
- the program code (which is a control system) can allow the machine to continue operating at possibly reduced efficiency, without endangering the integrity of the machine or its components, principally the membranes.
- the program code of the iterative model detects an instrument reading that is lost or inconsistent with other known operating variables (410).
- the program code prompts an operator to check its calibration and the program code estimates the correct value for the instrument to enable continued operation if operation without this reading is deemed safe (420).
- the program code of the iterative model detects an instrument reading that is lost or inconsistent with other known operating variables (410) contemporaneously with the program code prompting the operator to check its calibration and the program code estimating the instrument’s correct value to enable continued operation if the instrument is deemed safe (420).
- the feedforward control (of the program code) on observed and recorded response curves allows the system to continue operating ‘blind’ if a feedback signal malfunctions. As a precaution, for the controlled variables whose values are cast in doubt by the malfunction and are therefore estimated, any applicable upper limit can be lowered by the program code, and any applicable lower limit can be raised by the program code.
- FIG. 5 is a block diagram that represents various components of an RO system 500 in embodiments of the present invention.
- the system 500 includes a traditional RO system 510, such as that in FIG. 5.
- various computer system components (hardware and/or software) 520 which can include one or more processors 530 (e.g., a PLC and an HMI), and one or more memories 540.
- the one or more processors 520 execute program code, which includes an algorithm and an iterative model. Program code also collects and manages feedback (e.g., PID control).
- the computer system components 520 can obtain data from various sources, including but not limited to, one or more sensors integrated into the traditional RO system 510 and historical data stored by the program code in a memory 540.
- the processor 530 executing program code, which can be stored in the memory 540, adjusts various aspects of the traditional RO system 510, including but not limited to feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop in the RO system 510.
- FIG. 6 is a workflow 600 that illustrates how the program code comprising this control system can continue to operate in a semi-automatic mode when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond.
- the program code can alert an operator to manually adjust the control parameter but also, contemporaneously or additionally, the program code can compensate for the loss of automatic control of the parameter by adjusting the remaining control parameters to preserve system integrity.
- the program code determines that a control parameter is not responding to a command (610).
- the program code reverts to secondary or tertiary controls to keep the machine within safe operating limits (620).
- the program code prompts the operator to manually adjust the impaired control parameter to a desired level (630).
- the program code can prompt the operator contemporaneously with continuing to operate the machine with secondary or tertiary controls (640). In some examples, if the program code determines that an issue is present which increases a fouling rate of membranes comprising the machine, the program code adjusts the TDS and recovery limits to compensate for the issue. Examples of such an issue include, but are not limited to, an antiscalant chemical having been exhausted and/or a significant degradation in the flux rate.
- the program code detects impairments and annunciates and records these impairments in an event log (650). The program code can also record an eventual correction of the impairment by the program code in the event log (660).
- the program code of the control system can periodically test a step response of each controlled variable to a deliberate step change in a control parameter to determine an optimum interval for recalculation of an output value for the controlled parameter according to which of the controlled variables is critical.
- the program code can evaluate a value “tau” which is the time for a response to reach -63% of its final value after a step change.
- tan comprises time utilized to reflect 63% of a final effect of a step change in feed pressure.
- FIG. 7 illustrates a workflow 700 of this aspect.
- program code executing on a processor obtains an instruction to evaluate tau and multiply tau by -four or five (710) to obtain a reevaluation interval.
- an operator can enter a command (via a GUI) to trigger this sequence when the machine (e.g., the RO system) is operating under stable conditions.
- the machine e.g., the RO system
- the program code confirms that operation of the machine is stable (e.g., within expected pre-configured or pre-defined operating parameters) (720).
- the program code determines that the operation is not stable, the program code does not proceed with the test (725). Based on determining that the machine is stable, the program code implements a step change in feed pressure while freezing other control parameters (730). In some examples, the step change is large enough to produce a reliably measurable change in each measured process variable.
- General response times with an RO machine can vary. While a response time for a pressure and/or flow change can be several seconds, a response time for total dissolved solids can be several minutes. Thus, what can be considered a short time step can vary based on whether the timing is related to pressure and/or flow or total dissolved solids.
- the program code monitors the machine and waits for each variable to reach a new, steady measured value and while waiting, records, at short time steps (e.g., Is for pressure and/or flow and 10s for total dissolved solids (conductivity)), the value of each variable (740). Based on the recorded values over time, the program code determines a time period for each variable to achieve -63% of the final response (750). The program code multiplies each tan by a value about 4 or 5 to determine a reevaluation interval to be used for adjusting a control parameter to control a measured or inferred critical variable (760). The program code resumes regular operation (utilizing control parameters settings from before the test together with the newly determined adjustment interval) (770).
- short time steps e.g., Is for pressure and/or flow and 10s for total dissolved solids (conductivity)
- Program code in embodiments of the present invention can predict maintenance needs, as illustrated in the workflow 800 of FIG. 8.
- the program code detects sudden changes in the slope versus time of critical operating parameters (810). Based on detecting the change, the program code warns (e.g., through a GUI) the operator of an operating fault (e.g., incorrect dosing of antiscalant chemicals) (820). The program code compensates (including simultaneously with alerting the operator) for the detected change by reducing permeate production or recovery to preserve the integrity of the machine and its components (830).
- FIG 9 is an illustration of various program blocks 900 that comprise program code that controls an RO machine (and can be executed by processors integrated into the RO machine and/or communicatively coupled to the RO machine).
- program blocks are only one example of a possible configuration of various controls and functionalities of an RO machine that can be utilized in some embodiments herein.
- the program blocks are separated for illustrative purposes only and not to provide any structural limitations.
- the program blocks can be incorporated into hardware and/or software elements of an RO machine.
- the program blocks 900 are separated into various functionalities that are incorporated into existing RO machines and elements that are disclosed herein which are directed to the functionalities that enables the examples herein to provide significantly more than existing RO machine control systems.
- the program blocks that are not found in existing RO machines are labeled expert system blocks 910.
- program blocks in an RO machine can control functionalities including configuration 905, calibration 915, startup 920, and scanning of instruments 925 (comprising the RO machine).
- the program code can startup 920 the RO machine (e.g., utilizing values from the configuration 905 and calibration 915).
- the program code can continuously scan various instruments 925 to monitor operation of the RO machine.
- the expert system blocks 910 include controls for response time 930, an iterative model 935, program code that validates readings 940, optimize operation 945, predict when the RO machine should be serviced 950, and provide timely warnings 955 when the program code determines there is an issue.
- the response time 930 functionality refers to the program code implementing step changes (e.g., in feed pressure) and monitoring the RO machine, which is discussed in more detail in preceding figures.
- the iterative model 935 can detect an instrument reading that is lost or inconsistent with other known operating variables. Utilizing values generated by the iterative model 935, the program code can validate readings 940 of various instruments comprising the RO machine.
- Program code in the expert system blocks 910 also optimizes operation 945 of the RO machine including automatically configuring elements of the RO systems to operate within optimized parameters. Because the program code monitors operation of the RO machine, the program code can anticipate issues and this can predict when service 950 of the components of the RO machine is needed in the future. The program code can alert users to upcoming service needs. Additionally, the program code can issue warnings 955 contemporaneous with issues experienced by elements of the RO machine.
- the program code records values, readings, operational events, etc. in an event log 960.
- the RO machine comprises program code that enables visualization of the operation (including events and values) in the RO machine, including by generating visualization graphs 965. Program code also can shut down 970 the RO machine.
- FIG. 10 illustrates a block diagram of a resource 400 in computer system, which is part of the technical architecture of certain embodiments of the technique.
- the resource 400 may include a circuitry 502 that may in certain embodiments include a microprocessor 504.
- the computer system 400 may also include a memory 506 (e.g., a volatile memory device such as RAM, DRAM, SRAM, etc.), and storage 508.
- the storage 508 may include a non-volatile memory device (e.g., EEPROM, ROM, PROM, flash, firmware, programmable logic, etc.), magnetic disk drive, optical disk drive, tape drive, etc.
- the storage 508 may comprise an internal storage device, an attached storage device and/or a network accessible storage device.
- the system 400 may include a program logic 510 including code 512 that may be loaded into the memory 508 and executed by the microprocessor 504 or circuitry 502.
- the program logic 510 including code 512 may be stored in the storage 508, or memory 506. In certain other embodiments, the program logic 510 may be implemented in the circuitry 502. Therefore, while FIG. 10 shows the program logic 510 separately from the other elements, the program logic 510 may be implemented in the memory 506 and/or the circuitry 502.
- the program logic 510 may include the program code discussed in this disclosure that facilitates the reconfiguration of elements of various computer networks, including those in various figures.
- a computer program product 500 includes, for instance, one or more non-transitory computer readable storage media 602 to store computer readable program code means or logic 604 thereon to provide and facilitate one or more aspects of the technique.
- aspects of the technique may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit,” “module” or “system”.
- aspects of the technique may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable readonly memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
- Program code embodied on a computer readable medium may be transmitted using an appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the technique may be written in any combination of one or more programming languages, including ladder logic, an object oriented programming language, such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language, PHP, ASP, assembler or similar programming languages, as well as functional programming languages and languages for technical computing (e.g., Python, Matlab).
- the program code may execute entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider an Internet Service Provider
- more than one computer can be used for implementing the program code, including, but not limited to, one or more resources in a cloud computing environment.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- one or more aspects of the technique may be provided, offered, deployed, managed, serviced, etc. by a service provider who offers management of customer environments.
- the service provider can create, maintain, support, etc. computer code and/or a computer infrastructure that performs one or more aspects of the technique for one or more customers.
- the service provider may receive payment from the customer under a subscription and/or fee agreement, as examples. Additionally, or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.
- an application may be deployed for performing one or more aspects of the technique.
- the deploying of an application comprises providing computer infrastructure operable to perform one or more aspects of the technique.
- a computing infrastructure may be deployed comprising integrating computer readable code into a computing system, in which the code in combination with the computing system is capable of performing one or more aspects of the technique.
- a process for integrating computing infrastructure comprising integrating computer readable code into a computer system
- the computer system comprises a computer readable medium, in which the computer medium comprises one or more aspects of the technique.
- the code in combination with the computer system is capable of performing one or more aspects of the technique.
- an environment may include an emulator (e.g., software or other emulation mechanisms), in which a particular architecture (including, for instance, instruction execution, architected functions, such as address translation, and architected registers) or a subset thereof is emulated (e.g., on a native computer system having a processor and memory).
- an emulator e.g., software or other emulation mechanisms
- a particular architecture including, for instance, instruction execution, architected functions, such as address translation, and architected registers
- a subset thereof e.g., on a native computer system having a processor and memory
- one or more emulation functions of the emulator can implement one or more aspects of the technique, even though a computer executing the emulator may have a different architecture than the capabilities being emulated.
- the specific instruction or operation being emulated is decoded, and an appropriate emulation function is built to implement the individual instruction or operation.
- a host computer includes, for instance, a memory to store instructions and data; an instruction fetch unit to fetch instructions from memory and to optionally, provide local buffering for the fetched instruction; an instruction decode unit to receive the fetched instructions and to determine the type of instructions that have been fetched; and an instruction execution unit to execute the instructions. Execution may include loading data into a register from memory; storing data back to memory from a register; or performing some type of arithmetic or logical operation, as determined by the decode unit.
- each unit is implemented in software. For instance, the operations being performed by the units are implemented as one or more subroutines within emulator software.
- a data processing system suitable for storing and/or executing program code includes at least one processor coupled directly or indirectly to memory elements through a system bus.
- the memory elements include, for instance, local memory employed during actual execution of the program code, bulk storage, and cache memory which provide temporary storage of at least some program code to reduce the number of times code must be retrieved from bulk storage during execution.
- I/O devices can be coupled to the system either directly or through intervening VO controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Theoretical Computer Science (AREA)
- Water Supply & Treatment (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Chemical & Material Sciences (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Accounting & Taxation (AREA)
- Game Theory and Decision Science (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Nanotechnology (AREA)
- Primary Health Care (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Public Health (AREA)
- Educational Administration (AREA)
- Separation Using Semi-Permeable Membranes (AREA)
Abstract
Computer-implemented methods and systems for intelligently controlling a reverse osmosis (RO) machine. The method (which can be executed by a system) can include a processor(s) determining variables related to operation of the membranes of an RO machine by measuring, over time, operating limits of the membranes. The processor(s) can iteratively determine variables (e.g., measured and inferred) related to operation of the membranes by applying an iterative mathematical model to determine a portion of the inferred variables. The portion includes one or more critical variables that cannot be measured directly. The processor(s) determines, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine; control parameters are controlled by active components of the RO machine. The processor(s) derives, for each of the various control parameters, an adjustment. Implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits.
Description
INTELLIGENT REVERSE OSMOSIS CONTROL
BACKGROUND OF INVENTION
[0001] Reverse osmosis (RO) systems (which can be referred to as RO machines), which include water purification systems, can be used to purify water. The purified water can be used for drinking water, fabricating silicon wafers and various other applications. RO systems include RO membranes that remove impurities from the water. RO systems can include a booster pump that pushes the water through the membrane and a number of prefilters to remove sediments and other impurities. The system can then store the purified water in a holding tank or pressurized accumulator for subsequent use.
[0002] RO membranes operate by separating feedwater into two flows, concentrate which is high in total dissolved solids (TDS) and permeate which is low in TDS. An RO system may have more than one stage, where concentrate from the first stage is the feedwater for the second stage, and so on. Most RO machines are two-stage. Each stage typically includes several tubular pressure vessels operating in parallel, each containing several membranes operating in series. Typically, half the feedwater is recovered as permeate in each stage and the other half carries forward to the next stage, so that a single stage machine recovers about 50%, a two-stage machine recovers about 75%, and a three-stage machine recovers about 87.5%. These percentages can be increased by circulating concentrate to a feedwater inlet.
[0003] As the feedwater progresses from membrane to membrane and stage to stage, the TDS becomes more concentrated, and solids may start to precipitate. As purified water permeates through the membranes, a concentration gradient is established, with TDS more concentrated near the surface of the membrane than in
the bulk flow of feedwater, which further contributes to the risk of precipitation and possible fouling of the membranes. To avoid this damage to the membranes, membrane manufacturers establish operating limits on concentrate flow, permeate flow, and recovery percentage. To protect the membranes mechanically, there are limits on feedwater flow, operating pressure, and hydraulic pressure drop on the concentrate side of the membrane.
[0004] The aforementioned operating limits make the control of RO systems complicated, requiring well-trained operators to avoid rapid damage to the membranes while optimizing operating conditions for economical production of purified water. For example, to maximize productivity, RO systems usually operate at close to maximum capacity, within the predefined operating limits. But during periods of low product water demand, the machine is shut down when the product storage tank is full. While shut down, microbial growth on the membranes may get out of control and cause biological fouling. Optimal operation is also affected by the temperature and TDS of the feedwater which will vary over time.
[0005] Optimizing operation of RO systems includes balancing various considerations. The power required by the high-pressure feed pump is one economic consideration, but another important consideration is the water effectively wasted as concentrate (brine) effluent. There is cost associated with pumping and pretreating the feedwater and an additional cost for disposing of the brine. In existing systems, a skilled operator must periodically adjust for these variables.
SUMMARY OF INVENTION
[0006] Shortcomings of the prior art are overcome and advantages are provided through the provision of a system for intelligently controlling a reverse
osmosis (RO) machine. The system can include an RO machine and a computer system communicatively coupled to the RO machine. The RO machine can include: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine, one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages, valves fluidically coupled to a portion of the plurality of membranes of each stage, the valves controlling various controls within the RO system, the inlet for the feedwater, and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater. The computer system can include a memory, one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices, and one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method. The method can include: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters
are controlled by active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits, wherein implementing the adjustment comprises setting a value.
[0007] Shortcomings of the prior art are overcome and advantages are provided through the provision of a system for intelligently controlling a reverse osmosis (RO) machine. The system can include an RO machine and a computer system communicatively coupled to the RO machine. The RO machine can include: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine, one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages, valves fluidically coupled to a portion of the plurality of membranes of each stage, the valves controlling various controls within the RO system, the inlet for the feedwater, and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater. The computer system can include a memory, one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices, and one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method. The method can include: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more
processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by the active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits, wherein implementing the adjustment comprises setting a value, wherein a control parameter of the various controls comprises feed pressure, and wherein determining the upper limit and the lower limit for the feed pressure comprises: determining, by the one or more processors, a feed pressure adjustment to reach an operating limit of the operating limits based on a gradient comprising a ratio of change in a controlled variable versus a change in the feed pressure, wherein a smallest upward adjustment added to a current feed pressure is the upper limit for feed pressure; and defining, by the one or more processors, the lower limit for the feed pressure as no lower than a larger of sums for each stage of the one or more successive stages, a concentrate pressure drop in the stage and any previous stages plus an osmotic pressure at an outlet of the stage plus a permeate pressure of the stage.
[0008] Shortcomings of the prior art are overcome and advantages are provided through the provision of a method for intelligently controlling a reverse osmosis (RO) machine. The method can include: determining, by one or more
processors, various variables related to operation of the membranes of a RO machine, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits, and wherein implementing the adjustment comprises setting a value.
[0009] Systems and methods relating to one or more aspects of the technique are also described and may be claimed herein. Further, services relating to one or more aspects of the technique are also described and may be claimed herein.
[0010] Additional features are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
BRIEF DESCRIPTION OF DRAWINGS
[0011] One or more aspects of the present invention are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and objects, features, and advantages of one or more aspects of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawing.
[0012] FIG. 1 depicts a system into which aspects of the present invention can be integrated, such that the embodiments described herein act as control systems for the system depicted in FIG. 1.
[0013] FIG. 2 is a workflow that illustrates various aspects of some embodiments of the present invention including the inclusion of an iterative mathematical model.
[0014] FIG. 3 is a workflow that illustrates various aspects of the learning engine functionality in some embodiments of the present invention including the inclusion of the iterative mathematical model.
[0015] FIG. 4 is a workflow that illustrates various aspects of the learning engine functionality in some embodiments of the present invention including how program code can control the operating variables within limits and mitigate possible future issues.
[0016] FIG. 5 is a block diagram that illustrates various aspects of some embodiments of the present invention.
[0017] FIG. 6 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system operates a machine in a semi-
automatic mode when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond.
[0018] FIG. 7 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system described herein can periodically test a step response of each controlled variable in the machines it controls.
[0019] FIG. 8 is a workflow that illustrates various aspects of the examples herein and in particular, when the control system detects sudden changes in the slope versus time of the critical operating parameters.
[0020] FIG. 9 depicts various program blocks that can be utilized to perform various aspects of some embodiments of the present invention.
[0021] FIG. 10 depicts a computer system configured to perform an aspect of an embodiment of the present invention.
[0022] FIG. 11 depicts a computer program product incorporating one or more aspects of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0023] Embodiments of the present invention include intelligent control systems for RO systems. In some embodiments of the present invention, this intelligent control system is implemented by communicatively coupling a programmable logic circuit to various sensors in an existing RO system. The intelligent control system assures the operational integrity of the RO system. Program code comprising a defined algorithm, in examples herein, adjusts feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow,
outflow, flux, recovery and pressure drop in an RO system. For example, the program code can control the RO system to yield the highest possible permeate production without exceeding upper operating limits when high output is desired and to allow operation at low output and high recovery without exceeding lower operating limits when less output is required.
[0024] As will be described in greater detail herein, the examples include an intelligent control system where program code executed by a processor keeps several interdependent operating variables within predefined limits by adjusting several interacting control parameters to achieve and maintain optimal performance of a semipermeable membrane-based machine, in any of its conventional configurations, to separate water containing dissolved solids into two streams, one containing low dissolved solids (permeate) and the other containing high dissolved solids (concentrate). An RO machine is used herein as an example but other machines with similar applications could also utilize aspects of the embodiments described herein. Certain aspects of the examples herein are of particular note when compared to existing approaches. The enumerated aspects are not an exhaustive list and represent merely certain aspects of some embodiments of the present invention.
[0025] First, in some examples, the program code, acting as a control system for the machine, comprises an iterative mathematical model and can infer critical variables that are not, or cannot be, directly measured, but to maintain optimal performance, the program code maintains these variables within limits as well. This aspect is depicted in FIGS. 2 and 3, for example.
[0026] Second, in addition to controlling the operating variables within the limits, the program code can mitigate possible future issues by: 1) detecting a
probable failure in a process measurement device in the machine or system; 2) alerting an operator to address and fix the issue; and 3) inferring (including contemporaneously with the alerting) an approximate value of the variable. By inferring an approximate value and utilizing this value, the program code (which is a control system) can allow the machine to continue operating at possibly reduced efficiency, without endangering the integrity of the machine or its components, principally the membranes. These aspects are depicted in FIG. 4, for example.
[0027] Third, the program code comprising this control system can continue to operate in a semi-automatic mode when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond. In this situation, the program code can alert an operator to manually adjust the control parameter but also, contemporaneously or additionally, the program code can compensate for the loss of automatic control of the parameter by adjusting the remaining control parameters to preserve system integrity. These aspects are depicted in FIG. 6, for example.
[0028] Fourth, the program code of the control system can monitor critical operating variables over time to predict maintenance needs (e.g., timing for cleaning or replacement of the membranes). The program code can also detect sudden changes in the slope versus time of the critical operating parameters to warn the operator of an operating fault, such as incorrect dosing of antiscalant chemicals. In addition to alerting the operator, the program code can compensate (including simultaneously with alerting the operator) for the detected change by reducing permeate production or recovery to preserve the integrity of the machine and its components. Certain of these aspects are depicted in FIG. 8, for example.
[0029] Fifth, in some examples, the program code engages in machine learning. Specifically, the program code of the control system can learn how the (e.g., RO) machine will respond to adjustments in the control parameters by periodically calculating the gradient of the change in each controlled variable to a step change in a control parameter. Based on these calculations, the program code can predict future adjustments in the control parameter to achieve the desired value in a critical controlled variable. The program code stores the machine’s response to adjustments in a memory and can utilize this memory (e.g., database) as a reference to anticipate issues in a machine moving forward. The program code can also continually update this memory resource to reflect any change in trends. Certain of these aspects are illustrated in FIG. 7, for example.
[0030] Sixth, the program code of the control system can periodically test a step response of each controlled variable to a deliberate step change in a control parameter to determine an optimum interval for recalculation of an output value for the controlled parameter according to which of the controlled variables is critical. Certain of these aspects are illustrated in FIG. 8, for example.
[0031] Examples used herein describe the implementation of the intelligent control system described herein in RO systems or machines, However, as understood by one of skilled in the art, aspects of the present invention can also be utilized for nano-filtration systems. Thus, the example of the RO system is meant to illustrate one type of system into which the aspects herein can be integrated, but it is not an exhaustive list of all systems into which this intelligent control system could be integrated to assist with both productivity and efficiency.
[0032] Aspects of the present invention and certain features, advantages, and details thereof, are explained more fully below with reference to the non-limiting
examples illustrated in the accompanying drawings. Descriptions of well-known materials, fabrication tools, processing techniques, etc., are omitted so as not to unnecessarily obscure the invention in detail. It should be understood, however, that the detailed description and the specific examples, while indicating aspects of the invention, are given by way of illustration only, and not by way of limitation. Various substitutions, modifications, additions, and/or arrangements, within the spirit and/or scope of the underlying inventive concepts will be apparent to those skilled in the art from this disclosure.
[0033] The terms “connect,” “connected,” “contact” “coupled” and/or the like are broadly defined herein to encompass a variety of divergent arrangements and assembly techniques. These arrangements and techniques include, but are not limited to (1) the direct joining of one component and another component with no intervening components therebetween (e.g., the components are in direct physical contact); and (2) the joining of one component and another component with one or more components therebetween, provided that the one component being “connected to” or “contacting” or “coupled to” the other component is somehow in operative communication (e.g., electrically, fluidly, physically, optically, etc.) with the other component (notwithstanding the presence of one or more additional components therebetween). It is to be understood that some components that are in direct physical contact with one another may or may not be in electrical contact and/or fluid contact with one another. Moreover, two components that are electrically connected, electrically coupled, optically connected, optically coupled, fluidly connected or fluidly coupled may or may not be in direct physical contact, and one or more other components may be positioned therebetween.
[0034] The terms “including” and “comprising”, as used herein, mean the same thing.
[0035] The terms “substantially”, “approximately”, “about”, “relatively,” or other such similar terms that may be used throughout this disclosure, including the claims, are used to describe and account for small fluctuations, such as due to variations in processing, from a reference or parameter. Such small fluctuations include a zero fluctuation from the reference or parameter as well. For example, they can refer to less than or equal to ± 10%, such as less than or equal to ± 5%, such as less than or equal to ± 2%, such as less than or equal to ± 1%, such as less than or equal to ± 0.5%, such as less than or equal to ± 0.2%, such as less than or equal to ± 0.1%, such as less than or equal to ± 0.05%. If used herein, the terms “substantially”, “approximately”, “about”, “relatively,” or other such similar terms may also refer to no fluctuations.
[0036] As used herein, “electrically coupled” refers to a transfer of electrical energy between any combination of a power source, an electrode, a conductive surface, a droplet, a conductive trace, wire, waveguide, nanostructures, other circuit segment and the like. The terms electrically coupled may be utilized in connection with direct or indirect connections and may pass through various intermediaries, such as a fluid intermediary, an air gap and the like.
[0037] As used herein, the term “processor” refers to a hardware and/or software device that can execute computer instructions, including, but not limited to, one or more software processors, hardware processors, field programmable gate arrays (FPGAs), application- specific integrated circuits (ASICs), and/or programmable logic devices (PLDs), including programmable logic controllers (PLCs). Components of the system that can be utilized to execute aspects of embodiments of the present invention may include specialized hardware, including but not limited to, a GPP, an FPGA and a GPU (graphics processing unit). Additionally, items denoted as processors may include hardware and/or software processors or
other processing means, including but not limited to a software defined radio and/or custom hardware. The term “program code” refers to both software and hard-coded instructions, such as those utilized by a PLC. A PLC is a microprocessor-based electronic component that serves as the programmable smarts for simple or isolated applications. Thus, the program code of a PLC is hard-coded and the PLC includes a microprocessor (a processor) that executes the program code.
[0038] As used herein, the term “real-time” refers to a guaranteed level of computer responsiveness within a specified time constraint, usually milliseconds or microseconds, between an event and its response deadline. Real time describes a human sense of time (rather than machine time) that seems immediate. Near realtime refers to the timeliness of data or information which has been delayed only by the time required for electronic communication and automatic data processing, meaning that there are no significant delays.
[0039] Embodiments of the present invention are inextricably tied to computing. The examples herein include an integration of a control system that utilizes artificial intelligence to operate an RO system effectively and efficiently. Many of the examples herein are RO systems that include a PLC-based control system that is communicatively coupled to various components of the RO system, including membranes, pumps, and/or various sensors that monitor the operation of the components. The PLC control system is an intelligent control system at least because it utilizes a rules-based expert system to optimize the RO system. The PLC that executes the aspects of the rules-based expert system is a specialized hardware component. The artificial intelligence provided by the PLC control system described herein improves the current (and future) operation of the RO
system into which it is integrated, which includes various aspects that comprise a computing system, such as the PLC.
[0040] Embodiments of the present invention are directed to a practical application and provide significant advantages over existing approaches. Embodiments of the present invention include program code integrated into an RO system (e.g., utilizing a PLC communicatively coupled to sensors) to automate control and optimization of the RO systems via artificial intelligence (Al).
Practical applications of examples described herein include but are not limited to: 1) predicting instrument failures in advance; 2) detecting, including in advance, and automatically correcting various operational failures; 3) provide indications to operators of issues with recommendations of what adjustments can be made to address these issues; and 4) automatically configuring elements of the RO systems to operate within optimized parameters. Because of the integration of Al elements into the examples described herein, these examples can be understood as intelligent control systems for RO systems.
[0041] Embodiments of the present invention are directed to a practical application because they ensure the operational integrity of the RO system by automatically adjusting operating parameters of the RO system (e.g., in order to remain within safe limits), including, but not limited to, the feed pressure, permeate balance, outlet flow, circulation, brine discharge flow, TDS, and/or total recovery. Aspects of various examples herein optimize the operation of RO systems, including keeping the RO system within safe limits, adjusting feed pressure, adjusting brine discharge flow, balancing permeate flux between stages, and/or adjusting circulation flow.
[0042] Another practical application is the feed forward control integrated into some of the examples. As will be discussed herein, the examples herein can also include a feed forward control, meaning, the program code (e.g., of the PLC) can calculate the required pump speeds and valve positions needed to obtain a desired performance. The program code then feeds these values forward in the control loops for each control parameter, so that the system adjusts quickly to changing requirements, and subsequent to those changes, can use feedback-based control for fine-tuning.
[0043] The program code also provides predictive calculations. The program code utilizes various variables to perform its (predictive) calculations and some of the values are difficult and/or time consuming or otherwise impractical to measure directly. Thus, to provide continuous optimized operation of the RO system, which is in itself a practical application, the program code can utilize an iterative model to infer variables not directly measured based on real-time inputs from the RO machine.
[0044] As noted above, certain of the practical applications of the examples herein is that they can detect (and/or predict) issues with components of the RO system. For example, in embodiments of the present invention, the iterative model which can be generated and/or utilized by the program code can detect an instrument reading that is lost or inconsistent with other known operating variables. The program code can then prompt the operator to check its calibration and estimate its correct value to enable continued operation if this is deemed safe. If a feedback signal malfunctions, the program code can continue operating the RO system provided that the program code can estimate values of control variables that can no longer be assessed accurately because of the signal malfunction, the program code can utilize secondary or tertiary controls to keep the machine within
safe operating limits. Contemporaneously and/or subsequently, the program code prompts an operator to manually adjust the impaired control parameter to a desired level. The program code detects and annunciates impairments and can record these impairments in an event log. When the impairments are rectified, the program code can record the corrections of the impairments in the event log as well.
[0045] Embodiments of the present invention provide significantly more than existing approaches to regulating RO systems because unlike the existing approaches, embodiments of the present invention utilize program code (including a defined algorithm) to adjust feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop in an RO system. One existing approach is limited to checking various operating variables and advises a user when an issue is detected; however, unlike in the examples herein, in the existing approach, there is no control system that adjusts the operating parameters of the RO system (e.g., including in real-time or near real-time), to optimize performance of the RO system over time, as various variables change. Certain approaches can provide results that give a partial picture of the operation of an RO system at a given time, but do not control the system, as a whole, over time. For example, certain approaches can achieve at least partial RO control based on limited parameters (i.e., temperature, feedwater conductivity, pH), control exclusively feedwater pressure through manual adjustment, optimize operation by defining certain values (i.e., flux, recovery, pH and antiscalant dose), and use chemicals (e.g., chlorine) to control bacterial growth. None of the existing approaches utilize the comprehensive algorithm herein (executed by program code) to adjust feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery in real-time or near real-time while
respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop.
[0046] FIG. 1 illustrates aspects of an RO system. The operation of the RO system 100 can be optimized by utilizing a PLC to execute program code comprising the algorithm described herein for each stage of the RO system 100. As illustrated in FIG. 1, the RO system 100, includes RO membranes 110 that separate feedwater 120, provided to the RO system via an inlet, into two flows, concentrate, which is high in TDS, and permeate, which is low in TDS. As illustrated in FIG. 1, an RO machine may have more than one stage, where concentrate from the first stage 1 2 is the feedwater for the second stage 132, and so on. The RO system 100 of FIG. 1, like most RO systems, includes two stages, the first stage 122 and the second stage 132. Typically, half the feedwater is recovered as permeate in each stage and the other half carries forward to the next stage, so that a single stage machine recovers -50%, a two-stage machine recovers -75% and a three-stage machine recovers -87.5%. These percentages can be increased by circulating concentrate to the feedwater inlet 125. In this RO system 100, the product 140 exits through an outlet 136 after the second stage 132. Waste 141 can exit through an outlet 119 after the first stage 122.
[0047] The RO system 100 includes a booster pump 133 between the stages, in addition to a high pressure pump 123 in advance of the first stage 122. Including the booster pump 133 between stages (e.g., the first stage 122 and the second stage 132) can be advantageous as, in this example, concentrate can be circulated independent of the preceding stage to the suction of the booster pump. The membrane module 114 comprising the RO membranes 110 in the RO system 100 are, in this example, cylindrical and installed in pressure vessels 116 that hold, for example, 6 membrane modules 114, although other RO systems 100 that can
include aspects of the present invention can include pressure vessels that hold up to 8 modules. The number of membranes in a module is provided merely as an illustrative example and not to suggest any limitations. In some RO systems, membranes may be 2-1/2”, 4”, 8” or 16” in diameter; the most common diameter is 8”. Each stage of each pass can include several pressure vessels connected in parallel, with about half as many pressure vessels in the following stage. The RO system 100 of FIG. 1 includes a first pass with three stages and a second pass with two stages. A seawater potabilization RO will often have a second pass, where permeate from the first pass is made to pass through membranes specifically designed to retain boron which is not sufficiently retained by the first pass membranes. The first and second pass machines can each be controlled by the control system described herein, with some interaction to coordinate flows between the two.
[0048] In RO systems (e.g., FIG. 1, 100) feedwater is forced through the membranes by high pressure. There is a threshold pressure, referred to as the osmotic pressure, that is proportional to the TDS and below which water will not flow through the membrane to the permeate side. As the feedwater progresses from membrane to membrane and stage to stage, the TDS becomes more concentrated, and solids may start to precipitate. As purified water permeates through the membranes, a concentration gradient is established, with TDS more concentrated near the surface of the membrane than in the bulk flow of feedwater, which further contributes to the risk of precipitation and possible fouling of the membranes. To avoid this, membrane manufacturers establish operating limits on concentrate flow, permeate flow and recovery percentage. To protect the membranes mechanically, there are also limits on feedwater flow, operating pressure and hydraulic pressure drop on the concentrate side of the membrane.
[0049] Operating limits complicate control of RO systems or machines. These systems are generally controlled by well-trained operators to avoid rapid damage to the membranes and to find the optimum operating conditions for economical production of purified water. As aforementioned, the power required by the high- pressure feed pump is one economic consideration, but much more important is the water effectively wasted as concentrate (brine) effluent. There is cost associated with pumping and pretreating the feedwater and additional cost for disposing of the brine.
[0050] Because of the costs associated with operating RO systems, they are generally run at close to maximum capacity, with predefined operating parameters. Also because of the costs, during periods of low product water demand, the machine is shut down when the product storage tank is full. While shut down, microbial growth on the membranes may get out of control causing biological fouling. Optimal operation is affected by the temperature and TDS of the feedwater which will vary over time. A skilled operator can adjust for these variables, but this is manually intensive. In embodiments of the present invention, the program code controls the RO system automatically, continually, and more precisely than such an operator, while permitting variable permeate production.
[0051] An RO system (e.g., FIG. 1, 100) has various critical operating parameters. These parameters are enumerated below.
[0052] Maximum feed pressure - The feedwater / concentrate side of the membranes is pressurized to force water through the membrane while the permeate side is at near atmospheric pressure. The transmembrane pressure (TMP) is limited to avoid physical damage to the membrane. The first membrane (e.g., FIG. 1, 117) in the first stage sees the highest TMP.
[0053] Maximum inflow - The membrane is spiral wound around the central permeate collector pipe with the layers separated by a mesh that allows concentrate and permeate to flow between alternate layers, with concentrate flowing axially and permeate flowing in a spiral toward the collector. Excess flow on the concentrate side could damage the mesh, so there is a limit to the inflow. Again, the first membrane sees the highest inflow, though it could be the first membrane in the first or second stage since there are fewer pressure vessels in the second stage.
[0054] Maximum permeate flow (flux) - With higher rate of flow through the membrane, the concentration gradient increases, with risk of precipitation of solids at the face of the membrane, so the flux through the membrane must be limited. Since the first membrane in the first stage sees the highest TMP and lowest TDS, it will once again be the limiting element in this respect. It is not practical to measure the permeate flow of each membrane module since these come together within the pressure vessel in the collector tube, so this value is estimated by program code comprising the iterative model as a function of the measured variables.
[0055] Minimum concentrate flow - Concentrate flow creates turbulence around the mesh and reduces the concentration gradient, so there is a lower limit on this flow. In this case it is the last element in the first or second stage that will be critical, so the concentrate outlet flow from the pressure vessels of each stage must be monitored.
[0056] Maximum recovery - Manufacturers define an upper limit for the recovery (permeate flow / inflow) for any given membrane module. The maximum recovery can be estimated as a function of the measured variables by program code comprising the iterative model.
[0057] Maximum pressure vessel pressure drop - Pressure drop in the concentrate flow through the pressure vessel produces axial thrust that could exceed the resistance of the last module, thrust cone or downstream end closure of a pressure vessel, so this must be limited, which places an upper limit on the feedwater and concentrate circulation flows.
[0058] Maximum membrane module pressure drop - The pressure drop in the concentrate flow can cause telescoping of the spiral wound membrane, so this must be estimated by modelling (it is impractical to measure this directly) and limited. The first membrane in each stage sees the highest inflow and so will be the critical point.
[0059] The control system in embodiments of the present invention utilizes a control system that comprises a rules-based expert system, hence, employing Al. The rules-based expert system can utilize dimensionless parameters so that they are units agnostic; for example, percent of maximum flow rather than m3/h or percent deviation from a limit or setpoint. The denominators used in the deviation calculations shown hereafter are provided as examples, for illustrative purposes only, but others could also be utilized in embodiments of the present invention. For example, the upper measurement limit of the instrument used to monitor a controlled variable.
[0060] For limits and setpoints, the program code in embodiments of the present invention utilizes a convention whereby a negative percent deviation indicates a safe value and a positive deviation indicates that something is more likely than not to be problematic. For upper limits, like feedwater inflow a positive deviation means the flow is too high. However, for a lower limit like concentrate outflow, a positive deviation means the flow is too low. For a setpoint like desired permeate
production, positive deviation means the flow is more than necessary. To avoid unnecessary ‘hunting’ (repetitive up and down movement of a control parameter), slight negative deviations are ignored by the program code.
[0061] In the example, wherever the term < 0 is used, it may be understood to represent less than a chosen increment below zero, such as < -0.5%. Hunting can be further reduced by dividing the calculated adjustment to a control parameter by a damping factor that increases as the process variable approaches its limit or setpoint.
[0062] An aspect of some embodiments of the present invention, which was enumerated earlier, is that the program code, acting as a control system for the machine, comprises an iterative mathematical model and can infer critical variables that are not, or cannot be, directly measured, but to maintain optimal performance, the program code maintains these variables within limits as well. In embodiments of the present invention, the program code cannot at all readily measure flows, pressure drops and recoveries for individual membrane modules within a vessel, but, instead, can estimate these values using an iterative model (mentioned above) based on vessel inlet and outlet conditions. Some deviations are specific to a stage (e.g., FIG. 1, 1 2, 132) in which case the program code can check for deviations for each stage. The relevant deviations are defined as follows.
[0063] DevQprm = (radial flow of permeate (flux) through the first membrane in the vessel - upper limit for permeate flow) / upper limit for permeate flow.
[0064] DevQin = (inlet flow / pressure vessel in stage - inlet flow limit) / inlet flow limit.
[0065] DevQout = (lower limit for outlet flow - actual outlet flow) / lower limit for outlet flow.
[0066] DevPDi = (pressure drop in the axial flow of concentrate through the first membrane module - upper limit for individual membrane module pressure drop) / upper limit for individual membrane pressure drop.
[0067] DevPDt = (total pressure drop in the axial flow of concentrate through the vessel - upper limit for vessel pressure drop) / upper limit for vessel pressure drop.
[0068] DevReci = (maximum individual membrane module recovery - upper limit for recovery) / upper limit for recovery.
[0069] DevRect = total percent recovery - desired total percent recovery. This is also an optional control parameter, not defined by the membrane manufacturer, but dependent on water quality. Total percent recovery = total permeate flow / feedwater flow.
[0070] DevCrcPct = actual percent circulation - upper limit for circulation.
Actual percent circulation = concentrate circulation flow / concentrate flow from second stage (if present) or first stage (if not).
[0071] DevPrd = (total permeate flow - desired product flow) / maximum product flow. DevPrd is not a critical control parameter but rather a setpoint that may or may not be important to the user. Some users will prefer for the machine to operate always at maximum production.
[0072] DevTDScnc = (concentrate TDS - upper limit for concentrate TDS) / upper limit for concentrate TDS. Conductivity is used as a readily measurable
surrogate for TDS. The TDS limit depends on the tendency of the dissolved solids to precipitate forming scale as their concentration increases.
[0073] DevTDSprm = (permeate TDS - upper limit for permeate TDS) / upper limit for permeate TDS. This deviation is not critical to the operation of the machine but is a setpoint defined by the user according to the required product water purity.
[0074] In embodiments of the present invention, the program code then feeds values forward in the control loops for each control parameter, so that the system adjusts quickly to changing requirements. In some examples, after the program code feeds the values, it can use feedback-based control for fine-tuning. The control parameters in an RO system can be expressed as percentages for the intelligent control algorithm of the program code. A reference pressure can be a maximum discharge pressure of the feed pump. A reference flow can be a maximum total inlet flow to the first stage pressure vessels.
[0075] In the RO systems that utilize the control system disclosed herein, the program code utilizes the flow of concentrate to waste to determine the degree of concentration of salts in the concentrate and the percentage of water recovery. Brine discharge flow also has a secondary effect on the pressure drops in the axial flow of concentrate and the flow into and out of the pressure vessels. It can be adjusted by a flow control valve (including the control system automatically controlling the control valve and/or alerting an operator to adjust the control valve).
[0076] In the examples herein, the RO system purifies water as it is forced through the reverse osmosis membrane by high pressure from the feed pump; higher pressure increases the flow of purified water. Pressure also has a secondary
effect on the pressure drops caused by axial flow of concentrate through the spiral wound membrane and the percentage of purified water recovered from the feed water. Feed pressure is usually controlled by a variable speed drive on the feed pump; it can also be controlled by a flow valve in the feed pump discharge line, but this wastes energy.
[0077] While it is not always configured, circulation of concentrate from the outlet back to the inlet can be used to control the percentage of recovery in the membranes, allowing a higher overall recovery. It has a secondary effect on the pressure drops and the flow into and out of the pressure vessels. The circulation flow can be controlled by a flow regulating valve, in which case the return point is at the suction of the feed pump, or by a circulation pump, in which case the return point is at the discharge of the feed pump.
[0078] Permeate flux through the membranes will be higher in the first stage than the second stage because the concentrate pressure is higher and the osmotic pressure is lower, unless the transmembrane pressure is controlled. Balancing the permeate flux in the stages allows higher permeate production. This can be done by throttling the permeate flow from the first stage with a flow control valve to create back pressure or by increasing the concentrate pressure in the second stage with an interstage pump. Automatic permeate flux balance is for fine control and is often not configured in conventional RO control systems. This aspect therefore provides an advantage over existing approaches.
[0079] As discussed earlier, control parameters can affect more than one of the variables that are controlled by the program code in embodiments of the present invention. These control parameters can be understood as primary and secondary control parameters. A primary control parameter is usually a control parameter
that has the most direct effect on a variable of interest. For examples, adjusting feed pressure is the only practical way to control permeate flux and total permeate production. Adjusting brine discharge flow is the primary control parameter for overall percentage recovery. Adjusting circulation flow is the primary control parameter for single membrane percentage recovery, axial flows and pressure drops. Adjusting permeate backpressure or interstage boost pressure balances the permeate flux.
[0080] In embodiments of the present invention, if a control parameter reaches a high or low limit, or fails to respond to automatic control, then the program code can utilize alternate mechanisms to keep the operating parameters within limits and continue operating as well as possible under the circumstances. For example, brine discharge flow can act as a secondary control for individual membrane module percentage recovery, axial flows and pressure drops, unless circulation is not configured, in which case brine discharge flow will be the primary mechanism. Feed pressure controls permeate production and overall recovery, and also can act as a secondary control for axial flows and pressure drops.
[0081] The program code automatically utilizes secondary control mechanisms when primary control mechanisms cannot be utilized.
[0082] Pressure, in the RO systems, can affect each controlled variable. Each time the feed pressure is adjusted by a significant amount and other control parameters are steady, the program code in the examples herein calculates a ratio of effect versus adjustment, referred to as the gradient. The program code maintains a running average of the calculated gradients for the effect of pressure on each controlled variable. Hence, the program code trains the algorithm it utilizes to adjust operation for the desired effect and adapt to changing water quality and
aging of the membranes. Similarly, the program code calculates the gradient for permeate balance versus permeate backpressure or interstage boost pressure.
[0083] The program code periodically determines deviation percentages for each controlled variable, the program code also calculates the changes in the deviations as current deviations (reflecting changes since the previous determinations). The program code then calculates the gradient for each controlled variable as a percent change in deviation / percent change in pressure. The program code can apply various criteria so that only reliable gradient calculations are included in the running averages. Based on this repetition, the program code learns how the machine responds. The program code can utilize the learned values moving forward. Because the system equilibrates after adjusting control parameters, the program code can pause for a pre-determined period of time before recalculating deviation percentages. The pre-determined period of time can vary depending on the variable that the program code is calculating. In some examples, the predetermined period of time is a few minutes for TDS and a few seconds for other variables.
[0084] In embodiments of the present invention, Net Driving Pressure (NDP) is concentrate pressure - osmotic pressure - permeate pressure. The program code calculates this value for each stage based on the average of inlet and outlet conditions. The program code can store the gradient for flux versus NDP for each stage over time (normalized for feed water temperature which affects flux) so that the trend can indicate gradual deterioration in the performance of the membranes and detect anomalies that could point to component failure.
[0085] Axial flow (Q) and pressure drop (PD) are related by the equation PD = (Q/k)2 where k is referred to as the flow constant. The program code calculates this
‘constant’ for each stage and stores the values it calculates over time, which serves as a measure of blockage in the concentrate flow. The program code can also calculate, and store over time a ratio of permeate TDS to concentrate TDS, which serves as a measure of TDS leakage and degradation of the membranes. The program code can display the values over time (/.<?., the trends of these variables) graphically, for example, in a graphical user interface coupled to the processor (e.g., the PLC). By visualizing the values in the display (including the trends), the program code provides data in a manner that enables an operator to anticipate or predict when membrane maintenance (e.g., cleaning) should occur to maintain the operability of the machine. In some embodiments of the present invention, the program code displays the values over time and based on these values can automatically predict when membrane maintenance should occur to maintain the operability of the machine. The program code can display this prediction to an operator through the interface (e.g., as an alert)
[0086] FIG. 2 is a workflow 200 that illustrates how the intelligent controls described in the examples herein assure the operational integrity of the system by staying within safe limits. Membrane manufacturers specify limits on flows, pressure drops and recovery that insure the durability of the membranes. The workflow 200 details how the program code in the examples herein determines various values and utilizes these values to keep the operation of an RO machine within safe limits.
[0087] Referring to the workflow, for each controlled variable, the program code determines a feed pressure adjustment to reach a specified limit (as provided by the manufacturer) or setpoint (as provided by the user) and which can be stored in a memory accessible to the program code in the examples herein (210). The program code determines both an upper limit and a lower limit for the adjustment.
The program code determines this adjustment as (-)reference pressure x deviation / gradient. In some examples, the program code determines an upper limit for the feed pressure as the current feed pressure less the largest negative adjustment if any required adjustment is negative (based on the analysis of the program code), or the smallest allowable positive adjustment if not, and sets the lower limit based on the constraint that it be no lower than stage 1 pressure drop + stage 2 pressure drop + stage 2 outlet osmotic pressure, so that all membranes can contribute permeate (220).
[0088] For each controlled variable that is affected by circulation (this excludes TDS, permeate flows, and total recovery), the program code determines a circulation adjustment to reach the specified limit (230). Because pressure drops (PD) are proportional to the square of flow, the program code calculates these adjustments as Qin x (SQRT(PDMax / PD) - 1) where Qin is the total inlet flow to each stage. For inlet flows, the program code calculates the adjustments as QinMax - Qin. The program code determines the outlet flow adjustments using QoutMin - Qout. For the individual membrane recovery of each stage, the program code calculates adjustments as (Rec - RecMax) x (PrdStg + Qwst + Qcrc) / RecMax.
[0089] Similar to the circulation adjustments, the program code determines brine discharge flow adjustments that would move the controlled variables to their respective limits (240). The program code calculates TDS adjustments as Qwst x (TDS / TDSMax - 1). The brine discharge flow adjustments for pressure drops, inlet and outlet flows, and individual membrane recoveries are the same as for circulation because both of these affect the flow through the membranes in the same way. The program code can calculate a brine discharge flow adjustment for total recovery as (Rect -RectMax) x (Prd + Qwst + Qcrc) / RectMax. The program code determines an upper limit for the circulation and brine discharge flows as the
current flow less the largest applicable negative adjustment if any required adjustment is negative, or the smallest allowable positive adjustment if not, and sets the lower limit as the current flow less the smallest applicable negative adjustment if any allowed adjustment is negative, or the largest required positive adjustment if not.
[0090] The program code automatically adjusts (or advises an operator, via a user interface, including a graphical user interface (GUI), to adjust) feed pressure to a value that the program code determines meets the permeate production setpoint, bounded by the lower and upper limits (250). The program code adjusts circulation and brine discharge flows to the lower limits of each to minimize energy consumption and wasted water (260). In some embodiments of the present invention, to avoid overshoot (Gibbs phenomenon) when adjusting to a new set point, at each iteration the control parameter adjustments can be divided by a damping factor that increases as the relevant controlled variable approaches its limit or setpoint. The program code also determines an adjustment for permeate flux balance as (-)reference pressure x balance deviation / balance gradient (270) to set the pressure from the interstage booster pump if configured, or the stage 1 permeate pressure if not.
[0091] In ideal conditions, when there is no instrument failure, for example, the control system disclosed herein can utilize the aspects illustrated in FIG. 2 to keep the operation of a reverse osmosis machine within safe limits. However, one of the advantages of the examples herein is that the program code can operate under less than ideal circumstances and can still enable the safe maintenance and operation of RO systems.
[0092] Embodiments of the present invention include sensors that provide various data to the program code as the reverse osmosis process progresses. In one example, if the program code detects that all operational limits are satisfied, but the permeate production is different from the setpoint defined by the operator or a Supervisory Control and Data Acquisition (SCADA) system, the program code can automatically adjust (or prompt an operator to adjust) the brine discharge flow by a factor of PrdSet/Prd where PrdSet is the permeate production setpoint and Prd is the current permeate production, without exceeding the upper limit as previously determined for brine discharge flow.
[0093] The program code can determine that a control parameter needs to be adjusted, not for its direct effect on a controlled variable, but rather for its effect on the upper or lower limit of another control parameter. Although circulation does not directly affect total recovery, increasing circulation will lower the individual membrane recovery and increase the vessel outlet flow which may be limiting the feed pressure or brine discharge flow respectively and thereby the total recovery. In this circumstance, the program code can determine that these values are not as expected and automatically increase and/or prompt an operator to increase circulation the amount that the program code determined was a downward adjustment in brine discharge flow that could not be executed because of the limitation in membrane recovery or outlet flow. The program code calculates this value for each stage and utilizes the larger result to adjust the circulation flow without exceeding the upper limit as previously determined for circulation flow.
[0094] The program code can also adjust circulation based on determining that the permeate production is not as expected. Although circulation does not directly affect permeate production, increasing circulation will lower the individual membrane recovery which may be limiting the feed pressure and thereby the
permeate production. In this case, the program code automatically increases and/or prompts an operator to increase circulation by an amount calculated as Vessels x Qin x (MIN(PrdSet / Prd, RectMax / Rect) - 1), again calculated for each stage and taking the larger result without exceeding the upper limit as previously determined for brine discharge flow. When the production is greater than the setpoint, the program code can increase the circulation so that production can be decreased without diminishing the recovery or dropping below the minimum outlet flow; the circulation increase in this case is calculated as (Prd - PrdSet) x (1 - Rect) / Rect.
[0095] By adjusting circulation, the program code can control the RO system to yield the highest possible permeate production without exceeding upper operating limits when high output is desired and to allow operation at low output and high recovery without exceeding lower operating limits when less output is required/desired.
[0096] FIG. 3 illustrates a workflow of a feed forward aspect of some embodiments of the present invention. In this workflow 300, the program code observes and records a response of the feed pump, brine discharge flow control valve, circulation flow control valve and permeate backpressure control valve (or booster pump) used for permeate flux balancing (310). The program code generates response curves, based on these values, to represent pressure versus pump speed and flow, and flow constant versus position for the modulating valves (320). The program code utilizes these curves to determine a required pump speed and valve position needed to obtain a (pre-defined) desired performance (330).
The program code feeds these values into control loops for each control parameter, and upon receiving these values, the program code (in the control loops), adjusts the RO system to quickly (e.g., in real-time or near real-time) change requirements (340). After this initial adjustment, a Proportional-Integral-Derivative controller
(PID) that is communicatively coupled to the system (which includes the PLC which can execute the program code hard-coded in the PLC memory) manages fine tuning values to desired controlled variable values (based on the feedback) (350).
[0097] Because it is impractical to measure all of the operating variables that the control system should manage to keep the RO system functioning as desired, embodiments of the present invention include an iterative model to infer variables that are not directly measured. For example, the recovery rate of the first membrane module in a vessel that typically holds 6 modules is significantly higher than that of the last module in the vessel. The recovered permeate from each membrane is collected in a common permeate pipe. Even then, it is unusual to measure the permeate flow from each stage because of the high cost of a flow meter, so only the total permeate production is measured.
[0098] The methods described herein provide various advantages over third- party software which can only perform off-line calculations and use static variables. In contrast, in examples herein, the program code can utilize methods similar to a third-party (e.g., membrane manufacturer) software, but can calculate the values online, in real-time. Membrane manufacturers provide simulation software that is used for off-line configuration of an RO machine. The third party software can determine overall operating parameters that will keep the unmeasured variables within limits. The software incorporates an aging factor, and the water quality parameters can be adjusted to determine the effect of anticipated variations on operation. But the offline calculations by the manufacturer’s software cannot compensate for dynamically changing water quality and gradual degradation of the membranes throughout the process of utilizing the RO machine. Thus, an iterative model (which is part of the program code in embodiments of the present invention)
provides operating parameters, just like the manufacturer software, but the accuracy and utility of the parameters provided by the iterative model are superior because the iterative model can provide online calculations, based on real-time inputs from the machine, thereby continually optimizing the operation. The program code continuously calculates these values as the RO machine operates, so that the values utilized by the program code to control the RO system are current to the present conditions of the RO system.
[0099] Another enumerated aspect of embodiments of the present invention is that in addition to controlling the operating variables within the limits, the program code can mitigate possible future issues by: 1) detecting a probable failure in a process measurement device in the machine or system; 2) alerting an operator to address and fix the issue; and 3) inferring (including contemporaneously with the alerting) an approximate value of the variable. By inferring an approximate value and utilizing this value, the program code (which is a control system) can allow the machine to continue operating at possibly reduced efficiency, without endangering the integrity of the machine or its components, principally the membranes. These aspects are illustrated in FIG. 4. The workflow 400 of FIG. 4 depicts how embodiments of the present invention can maintain continuity of operation of an RO system amidst an impairment. In an embodiment of the present invention, the program code of the iterative model detects an instrument reading that is lost or inconsistent with other known operating variables (410). The program code prompts an operator to check its calibration and the program code estimates the correct value for the instrument to enable continued operation if operation without this reading is deemed safe (420). In some embodiments of the present invention, the program code of the iterative model detects an instrument reading that is lost or inconsistent with other known operating variables (410) contemporaneously with
the program code prompting the operator to check its calibration and the program code estimating the instrument’s correct value to enable continued operation if the instrument is deemed safe (420). The feedforward control (of the program code) on observed and recorded response curves allows the system to continue operating ‘blind’ if a feedback signal malfunctions. As a precaution, for the controlled variables whose values are cast in doubt by the malfunction and are therefore estimated, any applicable upper limit can be lowered by the program code, and any applicable lower limit can be raised by the program code.
[00100] FIG. 5 is a block diagram that represents various components of an RO system 500 in embodiments of the present invention. The system 500 includes a traditional RO system 510, such as that in FIG. 5. Communicatively coupled to the system are various computer system components (hardware and/or software) 520, which can include one or more processors 530 (e.g., a PLC and an HMI), and one or more memories 540. The one or more processors 520 execute program code, which includes an algorithm and an iterative model. Program code also collects and manages feedback (e.g., PID control). The computer system components 520 can obtain data from various sources, including but not limited to, one or more sensors integrated into the traditional RO system 510 and historical data stored by the program code in a memory 540. The processor 530, executing program code, which can be stored in the memory 540, adjusts various aspects of the traditional RO system 510, including but not limited to feed pressure, concentrate circulation, brine flow, and permeate flux balancing for optimal production and recovery while respecting operational limits on membrane inflow, outflow, flux, recovery and pressure drop in the RO system 510.
[00101] FIG. 6 is a workflow 600 that illustrates how the program code comprising this control system can continue to operate in a semi-automatic mode
when one of its control parameters or the corresponding feedback signal for a given control parameter, fails to respond. As discussed earlier, in this situation, the program code can alert an operator to manually adjust the control parameter but also, contemporaneously or additionally, the program code can compensate for the loss of automatic control of the parameter by adjusting the remaining control parameters to preserve system integrity. As illustrated in the workflow 600, the program code determines that a control parameter is not responding to a command (610). The program code reverts to secondary or tertiary controls to keep the machine within safe operating limits (620). The program code prompts the operator to manually adjust the impaired control parameter to a desired level (630). The program code can prompt the operator contemporaneously with continuing to operate the machine with secondary or tertiary controls (640). In some examples, if the program code determines that an issue is present which increases a fouling rate of membranes comprising the machine, the program code adjusts the TDS and recovery limits to compensate for the issue. Examples of such an issue include, but are not limited to, an antiscalant chemical having been exhausted and/or a significant degradation in the flux rate. The program code detects impairments and annunciates and records these impairments in an event log (650). The program code can also record an eventual correction of the impairment by the program code in the event log (660).
[00102] As discussed earlier, the program code of the control system can periodically test a step response of each controlled variable to a deliberate step change in a control parameter to determine an optimum interval for recalculation of an output value for the controlled parameter according to which of the controlled variables is critical. To test a step response, the program code can evaluate a value “tau” which is the time for a response to reach -63% of its final
value after a step change. In some examples, tan comprises time utilized to reflect 63% of a final effect of a step change in feed pressure.
[00103] FIG. 7 illustrates a workflow 700 of this aspect. Referring to FIG. 7, program code executing on a processor obtains an instruction to evaluate tau and multiply tau by -four or five (710) to obtain a reevaluation interval. In some examples, an operator can enter a command (via a GUI) to trigger this sequence when the machine (e.g., the RO system) is operating under stable conditions. By triggering this process when the machine is operating under stable conditions, the regular operation of the machine is less likely to be negatively impacted by moderate perturbance, which triggering this procedure can generate. Based on receiving the instruction, the program code confirms that operation of the machine is stable (e.g., within expected pre-configured or pre-defined operating parameters) (720). If the program code determines that the operation is not stable, the program code does not proceed with the test (725). Based on determining that the machine is stable, the program code implements a step change in feed pressure while freezing other control parameters (730). In some examples, the step change is large enough to produce a reliably measurable change in each measured process variable. General response times with an RO machine can vary. While a response time for a pressure and/or flow change can be several seconds, a response time for total dissolved solids can be several minutes. Thus, what can be considered a short time step can vary based on whether the timing is related to pressure and/or flow or total dissolved solids. The program code monitors the machine and waits for each variable to reach a new, steady measured value and while waiting, records, at short time steps (e.g., Is for pressure and/or flow and 10s for total dissolved solids (conductivity)), the value of each variable (740). Based on the recorded values over time, the program code determines a time period for each variable to achieve
-63% of the final response (750). The program code multiplies each tan by a value about 4 or 5 to determine a reevaluation interval to be used for adjusting a control parameter to control a measured or inferred critical variable (760). The program code resumes regular operation (utilizing control parameters settings from before the test together with the newly determined adjustment interval) (770).
[00104] Program code in embodiments of the present invention can predict maintenance needs, as illustrated in the workflow 800 of FIG. 8. In this example, the program code detects sudden changes in the slope versus time of critical operating parameters (810). Based on detecting the change, the program code warns (e.g., through a GUI) the operator of an operating fault (e.g., incorrect dosing of antiscalant chemicals) (820). The program code compensates (including simultaneously with alerting the operator) for the detected change by reducing permeate production or recovery to preserve the integrity of the machine and its components (830).
[00105] FIG 9 is an illustration of various program blocks 900 that comprise program code that controls an RO machine (and can be executed by processors integrated into the RO machine and/or communicatively coupled to the RO machine). These program blocks are only one example of a possible configuration of various controls and functionalities of an RO machine that can be utilized in some embodiments herein. The program blocks are separated for illustrative purposes only and not to provide any structural limitations. The program blocks can be incorporated into hardware and/or software elements of an RO machine.
[00106] Referring to FIG. 9, the program blocks 900 are separated into various functionalities that are incorporated into existing RO machines and elements that are disclosed herein which are directed to the functionalities that enables the
examples herein to provide significantly more than existing RO machine control systems. The program blocks that are not found in existing RO machines are labeled expert system blocks 910. As illustrated in FIG. 9, program blocks in an RO machine can control functionalities including configuration 905, calibration 915, startup 920, and scanning of instruments 925 (comprising the RO machine). Once the RO machine is configured (which can occur in advance of usage) and calibrated (which can also occur in advance of usage), the program code can startup 920 the RO machine (e.g., utilizing values from the configuration 905 and calibration 915). As the RO machine operates, the program code can continuously scan various instruments 925 to monitor operation of the RO machine.
[00107] The expert system blocks 910 include controls for response time 930, an iterative model 935, program code that validates readings 940, optimize operation 945, predict when the RO machine should be serviced 950, and provide timely warnings 955 when the program code determines there is an issue. The response time 930 functionality refers to the program code implementing step changes (e.g., in feed pressure) and monitoring the RO machine, which is discussed in more detail in preceding figures. The iterative model 935 can detect an instrument reading that is lost or inconsistent with other known operating variables. Utilizing values generated by the iterative model 935, the program code can validate readings 940 of various instruments comprising the RO machine. Program code in the expert system blocks 910 also optimizes operation 945 of the RO machine including automatically configuring elements of the RO systems to operate within optimized parameters. Because the program code monitors operation of the RO machine, the program code can anticipate issues and this can predict when service 950 of the components of the RO machine is needed in the future. The program code can alert users to upcoming service needs. Additionally, the program code
can issue warnings 955 contemporaneous with issues experienced by elements of the RO machine.
[00108] Various other elements in existing systems can work with the expert system blocks 910. The program code records values, readings, operational events, etc. in an event log 960. The RO machine comprises program code that enables visualization of the operation (including events and values) in the RO machine, including by generating visualization graphs 965. Program code also can shut down 970 the RO machine.
[00109] FIG. 10 illustrates a block diagram of a resource 400 in computer system, which is part of the technical architecture of certain embodiments of the technique. The resource 400 may include a circuitry 502 that may in certain embodiments include a microprocessor 504. The computer system 400 may also include a memory 506 (e.g., a volatile memory device such as RAM, DRAM, SRAM, etc.), and storage 508. The storage 508 may include a non-volatile memory device (e.g., EEPROM, ROM, PROM, flash, firmware, programmable logic, etc.), magnetic disk drive, optical disk drive, tape drive, etc. The storage 508 may comprise an internal storage device, an attached storage device and/or a network accessible storage device. The system 400 may include a program logic 510 including code 512 that may be loaded into the memory 508 and executed by the microprocessor 504 or circuitry 502.
[00110] In certain embodiments, the program logic 510 including code 512 may be stored in the storage 508, or memory 506. In certain other embodiments, the program logic 510 may be implemented in the circuitry 502. Therefore, while FIG. 10 shows the program logic 510 separately from the other elements, the program logic 510 may be implemented in the memory 506 and/or the circuitry
502. The program logic 510 may include the program code discussed in this disclosure that facilitates the reconfiguration of elements of various computer networks, including those in various figures.
[00111] Using the processing resources of a resource 400 to execute software, computer-readable code or instructions, does not limit where this code can be stored. Referring to FIG. 10, in one example, a computer program product 500 includes, for instance, one or more non-transitory computer readable storage media 602 to store computer readable program code means or logic 604 thereon to provide and facilitate one or more aspects of the technique.
[00112] As will be appreciated by one skilled in the art, aspects of the technique may be embodied as a system, method or computer program product.
Accordingly, aspects of the technique may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system". Furthermore, aspects of the technique may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
[00113] Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical or any suitable combination thereof. A computer
readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
[00114] A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable readonly memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[00115] Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or
transport a program for use by or in connection with an instruction execution system, apparatus or device.
[00116] Program code embodied on a computer readable medium may be transmitted using an appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[00117] Computer program code for carrying out operations for aspects of the technique may be written in any combination of one or more programming languages, including ladder logic, an object oriented programming language, such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language, PHP, ASP, assembler or similar programming languages, as well as functional programming languages and languages for technical computing (e.g., Python, Matlab). The program code may execute entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). Furthermore, more than one computer can be used for implementing the program code, including, but not limited to, one or more resources in a cloud computing environment.
[00118] Aspects of the technique are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams,
and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[00119] These computer program instructions, also referred to as software and/or program code, may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
[00120] The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[001 1] The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the
technique. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardwarebased systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[00122] In addition to the above, one or more aspects of the technique may be provided, offered, deployed, managed, serviced, etc. by a service provider who offers management of customer environments. For instance, the service provider can create, maintain, support, etc. computer code and/or a computer infrastructure that performs one or more aspects of the technique for one or more customers. In return, the service provider may receive payment from the customer under a subscription and/or fee agreement, as examples. Additionally, or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.
[00123] In one aspect of the technique, an application may be deployed for performing one or more aspects of the technique. As one example, the deploying of an application comprises providing computer infrastructure operable to perform one or more aspects of the technique.
[00124] As a further aspect of the technique, a computing infrastructure may be deployed comprising integrating computer readable code into a computing system, in which the code in combination with the computing system is capable of performing one or more aspects of the technique.
[00125] As yet a further aspect of the technique, a process for integrating computing infrastructure comprising integrating computer readable code into a computer system may be provided. The computer system comprises a computer readable medium, in which the computer medium comprises one or more aspects of the technique. The code in combination with the computer system is capable of performing one or more aspects of the technique.
[00126] Further, other types of computing environments can benefit from one or more aspects of the technique. As an example, an environment may include an emulator (e.g., software or other emulation mechanisms), in which a particular architecture (including, for instance, instruction execution, architected functions, such as address translation, and architected registers) or a subset thereof is emulated (e.g., on a native computer system having a processor and memory). In such an environment, one or more emulation functions of the emulator can implement one or more aspects of the technique, even though a computer executing the emulator may have a different architecture than the capabilities being emulated. As one example, in emulation mode, the specific instruction or operation being emulated is decoded, and an appropriate emulation function is built to implement the individual instruction or operation.
[00127] In an emulation environment, a host computer includes, for instance, a memory to store instructions and data; an instruction fetch unit to fetch instructions from memory and to optionally, provide local buffering for the fetched instruction;
an instruction decode unit to receive the fetched instructions and to determine the type of instructions that have been fetched; and an instruction execution unit to execute the instructions. Execution may include loading data into a register from memory; storing data back to memory from a register; or performing some type of arithmetic or logical operation, as determined by the decode unit. In one example, each unit is implemented in software. For instance, the operations being performed by the units are implemented as one or more subroutines within emulator software.
[00128] Further, a data processing system suitable for storing and/or executing program code is usable that includes at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements include, for instance, local memory employed during actual execution of the program code, bulk storage, and cache memory which provide temporary storage of at least some program code to reduce the number of times code must be retrieved from bulk storage during execution.
[001 9] Input/Output or I/O devices (including, but not limited to, keyboards, Human-Machine-Interface (HMI) displays, pointing devices, DASD, tape, CDs, DVDs, thumb drives and other memory media, etc.) can be coupled to the system either directly or through intervening VO controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.
[00130] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used
herein, the singular forms "a,” "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising", when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.
[00131] The corresponding structures, materials, acts, and equivalents of all means or steps plus function elements in the descriptions below, if any, are intended to include any structure, material, or act for performing the function in combination with other elements as specifically noted. The description of the technique has been presented for purposes of illustration and description but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular uses contemplated.
Claims
1. A system for intelligently controlling a reverse osmosis (RO) machine, the system comprising: an RO machine, the RO machine comprising: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine; one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages; one or more valves fluidically coupled to a portion of the plurality of membranes of each stage, the one or more valves controlling various controls within the RO system; the inlet for the feedwater; and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater; and a computer system communicatively coupled to the RO machine, the computer system comprising: a memory; one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices; and
one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method, the method comprising: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the
adjustment obtains optimal permeate recovery in the RO machine within the operating limits, wherein implementing the adjustment comprises setting a value.
2. The system of claim 1, wherein the various control parameters are selected from the group consisting of: feed pressure, concentrate circulation, and brine discharge flow.
3. The system of claim 1, wherein in the RO machine comprises more than one stage, and wherein the various control parameters are selected from the group consisting of: feed pressure, concentrate circulation, and brine discharge flow, prior stage permeate pressure, and interstage booster pressure.
4. The system of claim 1, wherein the active components of the RO machine comprise the one or more pumps, and the one or more valves of the RO machine.
5. The system of claim 4, wherein the one or more pumps comprise one or more adjustable pumps, and wherein the one or more valves comprise one or more modulating valves.
6. The system of claim 4, wherein the pumps are selected from a group consisting of: a high pressure feed pump, one or more interstage booster pumps, and a circulation pump, and wherein the one or more valves are selected from the group consisting of: a waste control valve, a circulation flow control valve, and a permeate pressure control valve.
7. The system of claim 1, the method further comprising:
obtaining, by the one or more processors, iteratively, over time, from one or more components comprising the RO system, a response to the change in feed pressure; and generating, by the one or more processors, based on the response, one or more response gradients.
8. The system of claim 7, the method further comprising: determining, by the one or more processors, based on the one or more response gradients, values comprising pump speeds for the one or more pumps and valve positions for the one or more valves to obtain a pre-determined performance from the RO system.
9. The system of claim 8, further comprising: determining, by the one or more processors, a time interval in which the RO machine will adjust feed pressure, wherein the feed pressure is a control parameter of the various control parameters, the determining comprising: obtaining, by the one or more processors, via an interface, a command to trigger an evaluation of a step change response to feed pressure in the RO machine for measurements in the RO machine obtained by the one or more measurement devices; confirming, by the one or more processors, that the RO machine is operating within pre-determined operating parameters, based on the operating limits of the membranes; based on the confirming, implementing, commencing, by the one or more processors, the step change sequence, wherein the step change
sequence comprises facilitating a step change in feed pressure, while maintaining other control parameters of the various control parameters; monitoring, by the one or more processors, the RO machine until the measured variables reach new consistent values, wherein the monitoring comprises recording intermittent values for the variables during the monitoring; determining, by the one or more processors, a time period for each variable a tau for each variable; multiplying, by the one or more processors, a largest tau of the taus for each variable by a static value to determine the time interval; and resuming, by the one or more processors, regular operation of the RO machine.
10. The system of claim 9, wherein the confirming that the RO machine is operating within pre-determined operating parameters further comprises: obtaining, by the one or more processors, coefficients of variation for the various control parameters; and confirming, by the one or more processors, that the various control parameters are stable, based on the coefficients of variation.
11. The system of claim 10, wherein the static value is a value in a range of 2 to 8.
12. The system of claim 10, wherein the time interval comprises a reevaluation interval, the method further comprising:
utilizing, by the one or more processors, the reevaluation interval to determine adjustments to the control parameters.
13. The system of claim 1, wherein the one or more successive stages each comprise one or more pressure vessels, each stage of the one or more successive stage comprising one or more membrane modules, and wherein a control parameter of the various controls comprises feed pressure, wherein determining the upper limit and the lower limit for the feed pressure comprises: determining, by the one or more processors, a feed pressure adjustment to reach an operating limit of the operating limits based on a gradient comprising a ratio of change in a controlled variable versus a change in the feed pressure, wherein a smallest upward adjustment added to a current feed pressure is the upper limit for feed pressure; and defining, by the one or more processors, the lower limit for the feed pressure as no lower than a larger of sums for each stage of the one or more successive stages, a concentrate pressure drop in the stage and any previous stages plus an osmotic pressure at an outlet of the stage plus a permeate pressure of the stage.
14. The system of claim 1, wherein a control parameter of the various control parameters comprises brine discharge flow, wherein determining the upper limit and the lower limit for the brine discharge flow comprises: obtaining, by the one or more processors, a first set of values from the various variables impacting the upper limit for a brine discharge flow adjustment for the RO machine, wherein the first set of values comprise, a maximum inlet flow to a stage of the one or more stages, a maximum pressure drop in a single
membrane of the plurality of the membranes, and a total pressure drop through the stage of the one or more successive stages; obtaining, by the one or more processors, a second set of values from the various variables impacting the lower limit for a brine discharge flow adjustment for the RO machine, wherein the second set of values comprises a minimum outlet flow from the stage of the one or more successive stages, a maximum recovery in a single membrane of the stage of the one or more successive stages, and a maximum total dissolved solids in a brine; and determining, by the one or more processors, the brine discharge flow adjustment, wherein, based on the first set of values, a smallest upward adjustment, or a largest negative adjustment, added to a current brine discharge flow, defines the upper limit for brine discharge flow, and wherein, based on the second set of values, a largest upward adjustment, or a smallest negative adjustment, added to a current brine discharge flow, defines the lower limit for brine discharge flow.
15. The system of claim 1, wherein a control parameter of the various control parameters comprises circulation flow, wherein determining the upper limit and the lower limit for the circulation flow comprises: determining, by the one or more processors, a circulation flow adjustment, based on a maximum flow into a stage of the one or more successive stages, a maximum pressure drop in a single membrane of the plurality of the membranes, or a maximum total pressure drop through the stage of the one or more successive stages, wherein a smallest upward adjustment, or a largest negative adjustment, added to a current circulation flow, defines the upper limit for the circulation flow;
defining, by the one or more processors, the lower limit for the circulation flow based on a minimum outlet flow from the stage of the one or more successive stages and a maximum recovery in the single membrane of the plurality of the membranes, wherein a largest upward adjustment added to the current circulation flow, defines the upper limit for circulation flow.
16. The system of claim 1, wherein the one or more successive stages comprise two or more successive stages, and wherein the stages of the two or more successive stages each comprise one or more pressure vessels and one or more membrane modules, and wherein a control parameters of the various control parameters comprises prior stage permeate pressure, and wherein determining an adjustment to the prior stage permeate pressure comprises: determining, by the one or more processors, a value for the prior stage permeate pressure, wherein the value for the prior stage permeate is equal to an immediate successive stage permeate pressure plus half of a pressure drop through the prior stage plus a difference in osmotic pressure of the two stages plus an accumulated percent difference between a maximum membrane flux at the prior stage and maximum membrane flux at the immediate successive stage; and automatically adjusting, by the one or more processors, the prior stage permeate pressure to the determined value for the prior stage permeate pressure.
17. The system of claim 1, wherein the one or more successive stages comprise two stages, and wherein the stages of the two stages each comprise one or more pressure vessels and one or more membrane modules, and wherein a control parameters of the various control parameters comprises interstage booster pressure, and wherein determining an adjustment to the interstage booster pressure comprises:
determining, by the one or more processors, a value for interstage booster pressure, wherein the value for the interstage booster pressure is equal to half of a pressure drop through the two stages plus a difference in osmotic pressure of the two stages plus an accumulated percent difference between maximum membrane flux of a first stage of the two stages and maximum membrane flux of the second stage of the two stages; and automatically adjusting, by the one or more processors, the interstage booster pressure to the determined value for the interstage booster pressure.
18. The system of claim 1, wherein the method further comprises: feeding, by the one or more processors, the values for the adjustments into control loops for each control parameter of the various control parameters; and automatically adjusting, by the one or more processors, the RO system to utilize the values for the adjustments.
19. The system of claim 18, the method further comprising: based on the automatically adjusting utilizing the values, controlling, by the one or more processors, feedback-based control for fine tuning of the RO machine.
20. The system of claim 1, wherein the method further comprising: feeding, by the one or more processors, the values into control loops for each control of the various controls; and automatically adjusting, by the one or more processors, the RO system to utilize the values.
21. The system of claim 20, the method further comprising:
based on the automatically adjusting utilizing the values, controlling, by the one or more processors, feedback-based control for fine tuning of the RO machine.
22. The system of claim 1, the method further comprising: detecting, by the one or more processors, a lost reading or an inconsistent reading from an instrument in the RO system; and prompting, by the one or more processors, an operator of the RO machine to check the instrument for operability.
23. The system of claim 1, the method further comprising: detecting, by the one or more processors, a probable failure in a process measurement device of the one or more measurement devices in the RO machine; alerting, by the one or more processors, via an interface communicatively coupled to the one or more processors, an operator of the probable failure; contemporaneously with the alerting, inferring, by the one or more processors, an approximate value of a variable of the various variables related to the operation of the membranes; and continuing, by the one or more processors, operation of the membranes at a reduced efficiency utilizing the approximate value as a control.
24. The system of claim 23, wherein the detecting the lost reading or the inconsistent reading from the instrument in the RO system comprises: comparing, by the one or more processors, the lost reading or the inconsistent reading to an expected reading, wherein the expected reading is stored
in the memory, and wherein the expected reading was determined by the iterative model.
25. The system of claim 1, wherein one or more of the measured variables and the inferred variables are impacted by an adjustment to concentrate circulation, wherein the adjustment to concentrate circulation comprises an adjustment to a control of the various controls, wherein deriving the adjustment to the concentrate circulation comprises an adjustment enabling a total recovery to reach a specified limit.
26. The system of claim 1, the method further comprising: for each of the various control parameters, implementing, by the one or more processors, the adjustment.
27. The system of claim 1, the method further comprising: communicating, by the one or more processors, continuously with the one or more sensors; obtaining, based on the continuously communicating, responses from the one or more sensors; determining, by the one or more processors, based on the obtaining, that a feedback signal corresponding to a sensor of the one or more sensors, is not responding within an expected interval; alerting, by the one or more processors, via an interface communicatively coupled to the one or more processors, an operator to manually adjust a given control of the various controls, wherein the given control corresponds to the feedback signal; and
contemporaneously with the alerting, automatically adjusting, by the one or more processors, a portion of the various controls excluding the given control to compensate for loss of the feedback signal from the sensor.
28. The system of claim 1, wherein determining various variables related to the operation of the membranes further comprises: monitoring, by the one or more processors, over time, the various variables, to determine operational trends; predicting, based on changes in the various variables over time, future maintenance requirements for the membranes; and alerting, by the one or more processors, via an interface communicatively coupled to the one or more processors, an operator to the future maintenance requirements.
29. The system of claim 26, wherein the monitoring includes: observing, by the one or more processors, sudden changes in slope versus time of the various variables.
30. A system for intelligently controlling a reverse osmosis (RO) machine, the system comprising: an RO machine, the RO machine comprising: one or more successive stages wherein each stage may comprise a plurality of membranes, wherein the plurality of membranes at each stage collectively comprise the membranes of the RO machine, wherein the one or more successive stages each comprise one or more pressure vessels, each
stage of the one or more successive stages each comprise comprising one or more membrane modules; one or more pumps preceding at least the first stage, wherein the one or more pumps move feedwater, concentrate or permeate from an inlet to a stage or from each earlier stage to a later stage of the one or more successive stages; valves fluidically coupled to a portion of the plurality of membranes of each stage, the valves controlling various controls within the RO system; the inlet for the feedwater; and outlets for the concentrate and the permeate, produced by the RO machine from the feedwater; and a computer system communicatively coupled to the RO machine, the computer system comprising: a memory; one or more sensors dispersed throughout the RO machine, a portion of the sensors comprising one or more measurement devices; and one or more processors in communication with the memory and with the one or more sensors, wherein the computer system is configured to perform a method, the method comprising: determining, by the one or more processors, various variables related to the operation of the membranes, the determining comprising:
measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly; determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by the active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits, wherein implementing the adjustment comprises setting a value, wherein a control parameter of the various controls comprises feed pressure, and wherein determining the upper limit and the lower limit for the feed pressure comprises: determining, by the one or more processors, a feed pressure adjustment to reach an operating limit of the operating
limits based on a gradient comprising a ratio of change in a controlled variable versus a change in the feed pressure, wherein a smallest upward adjustment added to a current feed pressure is the upper limit for feed pressure; and defining, by the one or more processors, the lower limit for the feed pressure as no lower than a larger of sums for each stage of the one or more successive stages, a concentrate pressure drop in the stage and any previous stages plus an osmotic pressure at an outlet of the stage plus a permeate pressure of the stage.
31. A computer-implemented method for intelligently controlling a reverse osmosis (RO) machine, the method comprising: determining, by one or more processors, various variables related to operation of the membranes of a RO machine, the determining comprising: measuring, by the one or more processors, over time, variables comprising operating limits of the membranes; and iteratively determining, by the one or more processors, based on inferring values of variables utilizing a method in a simulation, variables related to operation of the membranes, wherein the measured variables and the inferred variables comprise the variables, wherein the iteratively determining comprises applying an iterative mathematical model to determine a portion of the inferred variables, wherein the portion comprises one or more critical variables that cannot be measured directly;
determining, by the one or more processors, based on the variables, an upper limit and a lower limit for various control parameters within the RO machine, wherein the various control parameters are controlled by active components of the RO machine; and deriving, by the one or more processors, for each of the various control parameters, an adjustment, wherein implementing the adjustment obtains optimal permeate recovery in the RO machine within the operating limits, and wherein implementing the adjustment comprises setting a value.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2023/055135 WO2024236353A1 (en) | 2023-05-18 | 2023-05-18 | Intelligent reverse osmosis control |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2023/055135 WO2024236353A1 (en) | 2023-05-18 | 2023-05-18 | Intelligent reverse osmosis control |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024236353A1 true WO2024236353A1 (en) | 2024-11-21 |
Family
ID=93519024
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2023/055135 Pending WO2024236353A1 (en) | 2023-05-18 | 2023-05-18 | Intelligent reverse osmosis control |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024236353A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110147285A1 (en) * | 2008-07-21 | 2011-06-23 | Degremount | Reverse-osmosis water desalination plant |
| US20160046503A1 (en) * | 2014-08-12 | 2016-02-18 | Water Planet, Inc. | Intelligent fluid filtration management system |
| US20180297867A1 (en) * | 2014-12-12 | 2018-10-18 | Artesion, Inc. | Processing including a membrane and gas recycling system for forward osmosis water treatment systems using switchable polar solvents |
| WO2021243458A1 (en) * | 2020-06-02 | 2021-12-09 | Synauta Inc. | Apparatus and methods for cleaning reverse osmosis systems |
-
2023
- 2023-05-18 WO PCT/IB2023/055135 patent/WO2024236353A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110147285A1 (en) * | 2008-07-21 | 2011-06-23 | Degremount | Reverse-osmosis water desalination plant |
| US20160046503A1 (en) * | 2014-08-12 | 2016-02-18 | Water Planet, Inc. | Intelligent fluid filtration management system |
| US20180297867A1 (en) * | 2014-12-12 | 2018-10-18 | Artesion, Inc. | Processing including a membrane and gas recycling system for forward osmosis water treatment systems using switchable polar solvents |
| WO2021243458A1 (en) * | 2020-06-02 | 2021-12-09 | Synauta Inc. | Apparatus and methods for cleaning reverse osmosis systems |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12201944B2 (en) | Apparatus and methods for cleaning reverse osmosis systems | |
| Bartman et al. | Minimizing energy consumption in reverse osmosis membrane desalination using optimization-based control | |
| AU2020218379B2 (en) | Water treatment methods and apparatus | |
| EP3512813B1 (en) | Containerized desalination system | |
| US20220241728A1 (en) | Water purification apparatus, and a method for controlling a water purification apparatus | |
| Gao et al. | Energy-optimal control of RO desalination | |
| JP5862363B2 (en) | Water treatment system | |
| CN110267723A (en) | Water Filtration Systems for Reducing Total Dissolved Solids Creep Effects by Recirculation | |
| CN103619761A (en) | Control system for wastewater treatment plants with membrane bioreactors | |
| JP7583535B2 (en) | Learning model generation device | |
| WO2013093537A1 (en) | A method and a system for monitoring and control of fouling and and optimization thereof of two side membrane fouling process | |
| Pascual et al. | Data-driven models of steady state and transient operations of spiral-wound RO plant | |
| WO2012069892A2 (en) | System and method for operation of reverse osmosis units | |
| CN101274197B (en) | Automatic draining and supplying device for controlling pH of leaching tower, , and working method thereof | |
| WO2024236353A1 (en) | Intelligent reverse osmosis control | |
| WO2023089394A1 (en) | Digital model based reverse osmosis plant operation and optimization | |
| AU2017202157A1 (en) | Method and system for minimizing energy consumption during reverse osmosis unit operation | |
| EP4173697A1 (en) | Method and system to monitor and control continuous ultrafiltration process units | |
| JP2013022543A (en) | Membrane treatment device and method of operation of membrane module | |
| CN120225266A (en) | Systems and methods for optimizing cross-flow membrane filtration devices | |
| JP7548033B2 (en) | Desalination Equipment | |
| JP2019104000A (en) | Management apparatus for mbr plant, cleaning chemical ordering system for mbr plant, and chemical ordering method and chemical ordering method for mbr plant | |
| US20240124333A1 (en) | Method for controlling ro system | |
| JP2016067987A (en) | Filtration system | |
| JP2004139235A (en) | Stable operation method at the start of fluid process |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23937353 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2025/013776 Country of ref document: MX |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |