This disclosure pertains to automated flare control, and in particular, to automated flare minimization algorithm in gas-oil separation plants.
A gas-oil separation plant (GOSP) is a continuous separation process used to refine crude oil, Goals of a GOSP include achieving maximum liquid recovery with stabilized oil separated from gas, and water separated from gases and oil. In other words, one purpose of a GOSP is to remove water, salt, and volatile hydrocarbon gases from wet crude oil after it is obtained from a hydrocarbon-bearing reservoir. A GOSP can include a high pressure production trap (HPPT), a low pressure production trap (LPPT), a low pressure degassing tank (LPDT), a dehydrator unit, first and second stage desalting units, a water/oil separation plant (WOSEP), a stabilizer column, centrifugal pumps, heat exchangers, and reboilers. In a GOSP, vessel pressure is often reduced in several stages to allow the controlled separation of volatile components, such as entrained vapors.
The present disclosure describes techniques that can be used for detecting and minimizing gas flare in a GOSP.
In some implementations, a method for controlling flare of a gas oil separation system includes determining that a gas flare is indicated as non-routine based on a gas flare process variable exceeding a target value for gas flare; activating an automated detection and minimization of flare (ADMF) process executed by ADMF logic; determining, by the ADMF logic executing ADMF process, that a process variable value for each of a plurality of pressure indicator controllers exceeds a corresponding setpoint value for each of the plurality of pressure indicator controllers; and based on the process variable value of each of the plurality of pressure indicator controllers exceeding the pressure indicator controller setpoint value: identifying a tag number for each of the plurality of pressure indicator controllers; and causing a notification to be sent to an operator to inspect the pressure indicator controllers.
A non-transitory, computer-readable storage medium storing instructions that, when executed by a hardware processor, cause the hardware processor to perform operations that include determining that a gas flare is indicated as non-routine based on a gas flare process variable exceeding a target value for gas flare; activating an automated detection and minimization of flare (ADMF) process executed by ADMF logic; determining, by the ADMF logic executing ADMF process, that a process variable value for each of a plurality of pressure indicator controllers exceeds a corresponding setpoint value for each of the plurality of pressure indicator controllers; and based on the process variable value of each of the plurality of pressure indicator controllers exceeding the pressure indicator controller setpoint value: identifying a tag number for each of the plurality of pressure indicator controllers; and causing a notification to be sent to an operator to inspect the pressure indicator controllers.
A system can include a gas flare stack; a gas flare flow meter; a plurality of pressure control valves; and a non-transitory, computer-readable storage medium storing instructions that, when executed by a hardware processor, cause the hardware processor to perform operations. The operations can include determining that a gas flare is indicated as non-routine based on a gas flare process variable exceeding a target value for gas flare; activating an automated detection and minimization of flare (ADMF) process executed by ADMF logic; determining, by the ADMF logic executing ADMF process, that a process variable value for each of a plurality of pressure indicator controllers exceeds a corresponding setpoint value for each of the plurality of pressure indicator controllers; and based on the process variable value of each of the plurality of pressure indicator controllers exceeding the pressure indicator controller setpoint value: identifying a tag number for each of the plurality of pressure indicator controllers; and causing a notification to be sent to an operator to inspect the pressure indicator controllers.
In some embodiments, determining that a gas flare is indicated as non-routine based on a gas flare process variable exceeding a target value for gas flare comprises comparing a process variable for gas flare against a target setpoint for the gas flare.
Some embodiments include, based on the process variable value of each of the plurality of pressure indicator controllers not exceeding the pressure indicator controller setpoint value: determining, by the ADMF logic executing ADMF process, that a process variable for each of a plurality of pressure indicator controller manipulation indicator value is equal to zero; and applying a tight shutoff to each pressure control valve for a predetermined period of time.
In some embodiments, the predetermined period of time comprises five minutes.
Some embodiments include determining that a gas flare is indicated as non-routine based on a gas flare process variable exceeding a setpoint value for gas flare; and determining a new target setpoint for the gas flare.
Some embodiments include comparing plant flare source temperature against gas flare temperature; and identifying a source of the gas flare based on the comparison of the plant flare source temperature against the gas flare temperature.
In some embodiments, activating the ADMF process includes determining that an equipment shutdown status indicates that equipment has not been shutdown within a predetermined amount of time prior to the non-routine gas flare; determining that a gas flare alarm is active; and determining that an investigation command has been activated.
The previously described implementation is implementable using a computer-implemented method; a non-transitory, computer-readable medium storing computer-readable instructions to perform the computer-implemented method; and a computer-implemented system including a computer memory interoperably coupled with a hardware processor configured to perform the computer-implemented method/the instructions stored on the non-transitory, computer-readable medium.
The subject matter described in this specification can be implemented in particular implementations, so as to realize one or more of the following advantages. Aspects of this disclosure uses observable metrics to initiate the automated flare minimization investigation algorithm, as opposed to uncertain leakage sources. This disclosure describes a process that acts as fail-safe mode. The algorithm and logic is programmed to stop investigate in case of any process or normal equipment shutdown flaring. The process can take quick action to restore target flare flow setpoint, capture any intermittent control valve malfunction and log it in the system, combine all associated flare parameters in one algorithm, faster recovery from non-routine flaring, resulting in much more stable operations. This in turn minimizes operator intervention. The process can also apply tight shut off for all flaring source pressure control valve which can validate and eliminate pressure control valves bad integrity.
The details of one or more implementations of the subject matter of this specification are set forth in the Detailed Description, the accompanying drawings, and the claims. Other features, aspects, and advantages of the subject matter will become apparent from the Detailed Description, the claims, and the accompanying drawings.
Like reference numbers and designations in the various drawings indicate like elements.
The following detailed description describes techniques for detecting and minimizing flaring events in a gas-oil separation plant. Various modifications, alterations, and permutations of the disclosed implementations can be made and will be readily apparent to those of ordinary skill in the art, and the general principles defined may be applied to other implementations and applications, without departing from scope of the disclosure. In some instances, details unnecessary to obtain an understanding of the described subject matter may be omitted so as to not obscure one or more described implementations with unnecessary detail and inasmuch as such details are within the skill of one of ordinary skill in the art. The present disclosure is not intended to be limited to the described or illustrated implementations, but to be accorded the widest scope consistent with the described principles and features.
By way of example,
Interface skimmer location, such as for example oily water interface skimmer 124 proximate the interface between the oil and water, can be provided by a vessel vendor, such as a dehydrator or desalter vendor, and the location can vary depending on the vessel type. The level of the skimmer can be adjustable in some embodiments, for example above an inlet feed, or below an inlet feed, or adjustable relative to the emulsion layer. In some embodiments, electrical grids comprising electrostatic electrodes are in the oil phase within a vessel such as a desalter or dehydrator, which has lesser conductivity (greater resistance) than the aqueous phase.
Three-phase separation vessel with insulated electrostatic electrodes 134 can have fed to it oil-in-water emulsions from a variety of sources, as shown in
Dehydrated oil from dehydrator 122 proceeds via dehydrated oil outlet stream 146 through mixing valve 148 to first stage desalter 150. At mixing valve 148, dehydrated oil outlet stream 146 is mixed with recycled wash water from recycled wash water stream 152. First stage desalter 150 includes an oily water interface skimmer 154 proximate the interface between the oil and water within first stage desalter 150. An oily water stream exits first stage desalter 150 by oily water outlet stream 156, and then proceeds via stream 160 to recycled stream 132. Recycled stream 132 proceeds to the three-phase separation vessel with insulated electrostatic electrodes 134. Water exits first stage desalter 150 by water outlet stream 162 and is recycled via pump 164 to recycled wash water line 166, where it is mixed at mixing valve 120 with crude oil from LPDT 106. Oil exits first stage desalter 150 at oil outlet stream 168 and is mixed with a wash water stream 170 (wash water stream 170 containing a lower concentration of salts than the crude oil exiting first stage desalter 150) at mixing valve 172.
Mixed oil and water enters second stage desalter 174. Second stage desalter 174 includes an oily water interface skimmer 176 proximate the interface between the oil and water within second stage desalter 174. An oily water stream exits second stage desalter 174 by oily water outlet stream 178 to, and then proceeds via stream 182 to recycled stream 132. Recycled stream 132 proceeds to the three-phase separation vessel with insulated electrostatic electrodes 134. Water exits second stage desalter 174 by water outlet stream 175 to pump 177 and enters mixing valve 148 by recycled wash water stream 152.
Dehydrated and desalted oil from second stage desalter 174 proceeds via oil outlet stream 184 through a depressurizing valve 186 to a crude oil stabilizer 188 for removal of volatile hydrocarbon compounds, before the stabilized, desalted, and dehydrated crude oil is pumped via crude shipping pumps 190 as a dry crude product through dry crude product stream 192. Volatile hydrocarbons exit crude oil stabilizer 188 by off-gas outlet stream 194. In the embodiment shown, crude oil stabilizer 188 does not have reboilers, but in other embodiments one or more reboilers can be applied.
In other embodiments, a flow control valve can be used for improved flow control. A flowmeter can be provided upstream of a control valve and receive its set point from the de-activation signals from the electrodes to stop flow of a slip stream from the rag layer level. A deactivation signal from the electrodes also can be used to control (open) a water level control valve to reduce the water level in a vessel to below an oily water interface skimmer, such that an oily water interface is proximate an oily water interface skimmer. In some embodiments, a flow control valve will set to continuously withdraw the rag layer at a laboratory estimated flow after conducting an emulsion test. This flow can increase gradually when all electrodes are not deactivated. In some embodiments, an oily water interface skimmer is a fixed pipe installed in the emulsion layer with a plurality of open holes to withdraw the rag layer across a vessel.
In three-phase separation vessel with insulated electrostatic electrodes 134, insulated electrostatic electrodes are capable of handling up to 100% water cut, and the electrodes can be fully deactivated at about 100% water cut, which means only water is being withdrawn from dehydrator 122, first stage desalter 150, and second stage desalter 174, rather than a desired rag layer, or oil-in-water emulsion layer. While the embodiment of
Dehydrator 122 includes a level indicator and controller (LIC) 127 to control a control valve 129, first stage desalter 150 includes LIC 157 to control a control valve 159, and second stage desalter 174 includes LIC 179 to control a control valve 181. LIC's 127, 157, 179 can be used alternative to or in addition to flow indicators and controllers (FIC's). In dehydrator 122, first stage desalter 150, and second stage desalter 174, rag layers or the layer between oil and water in the vessels is withdrawn in a continuous, or discontinuous, manner under automatic interface level control instead of restricted flow as show in
In three-phase separation vessel with insulated electrostatic electrodes 134, insulated electrostatic electrodes are capable of handling up to 100% water cut, and the electrodes can be fully deactivated at sensing or detecting 100% water cut, which means only water is being withdrawn from dehydrator 122, first stage desalter 150, and second stage desalter 174, rather than the desired rag layer, or oil in water emulsion layer. By testing, detecting, or sensing if the flow through three-phase separation vessel with insulated electrostatic electrodes 134 is about 100% water, operators or program logic can readjust, limit, increase, or change the location of the slip stream withdrawal from separation vessels such as dehydrator 122, first stage desalter 150, and second stage desalter 174. For example, if about 100% water was detected passing through three-phase separation vessel with insulated electrostatic electrodes 134, control valves 129, 159, 181 could be deactivated, or flow could be reduced but continued to avoid or reduce the formation of a rag layer in vessels 122, 150, 174.
In three-phase separation vessel with insulated electrostatic electrodes 134, insulated electrostatic electrodes are capable of handling up to 100% water cut, and the electrodes can be fully deactivated at sensing or detecting 100% water cut, which means only water is being withdrawn from dehydrator 122, first stage desalter 150, and second stage desalter 174, rather than the desired rag layer, or oil in water emulsion layer. By testing, detecting, or sensing if the flow through three-phase separation vessel with insulated electrostatic electrodes 134 is about 100% water, operators or program logic can readjust, limit, increase, or change the location of the slip stream withdrawal from separation vessels such as dehydrator 122, first stage desalter 150, and second stage desalter 174. For example, if about 100% water was detected passing through three-phase separation vessel with insulated electrostatic electrodes 134, control valves 129, 159, 181 could be deactivated, or flow could be reduced but continued to avoid or reduce the formation of a rag layer in vessels 122, 150, 174.
In
Recycled stream 132, optionally along with other oil-in-water emulsion sources 115, proceeds to mixing unit 1102 for mixing with steam from steam injection stream 1104 (either or both externally modulated steam and DSI). Mixing unit 1102 can include one or more steam injection nozzles to mix recycled rag layer stream 132 with low or high pressure steam, for example available at a temperature of about 300° F. and a pressure of about 50 psig or more. Steam injection can heat and break an oil-in-water emulsion in an emulsion rag layer. Heating a rag layer lessens its viscosity and consequently increases the water droplet coalescing and settling rate. In some GOSP's, heating crude for treatment prior to the dehydrators and desalters in a trim heater, for example, trim heat exchanger 118, is not available. Therefore, steam injection upstream of a three-phase separator aids in breaking emulsions and increases water separation in synergistic addition to the electrostatic effect in an electrostatic separator, such as three-phase separation vessel with insulated electrostatic electrodes 134. This results in advantageously improved water separation downstream of mixing unit 1102 in three-phase separation vessel with insulated electrostatic electrodes 134 and LPDT 106, with water to be removed from the process via water outlet stream 138 and water outlet 114. Any gas separated in three-phase separation vessel with insulated electrostatic electrodes 134 can be vented via line 1106, optionally connected to a flare stack 1108.
In embodiments, a computing system, such as computing system 800, can be used to monitor process variables and sensors, control valves, control timers, and implement algorithms. An example algorithm can include the automated detection and minimization flare process described herein.
This disclosure describes an automated flare minimization investigation process and logic to detect and minimize flaring in gas-oil separation plants (GOSPs). The logic will monitor any non-routine flaring and minimize the non-routine flaring through analysis and a sequence of actions. Each GOSP facility has a target flaring amount, and exceeding the target flaring amount can cause the automated detection and minimize flare (ADMF) process to initiate.
GOSP flaring systems that have only one monitoring device to measure total flaring flow can result in several problems that can lead to non-routine flaring & unidentified flare sources. Such non-routine flaring can only be fixed through a manual interference, troubleshooting, and maintenance services. The problems can be listed as follow:
Based on the aforementioned challenges, this disclosure describes an automated algorithm and logic that perform continuous monitoring of the flaring parameters. In case a target flaring amount is exceeded, the control logic performs an automated sequence of actions that can verify that non-routine flaring is not caused by normal process flaring or recent equipment shutdown, apply tight shutoff for all flaring line pressure control valves (PCVs), verify controller motion output integrity, calculate non-routine flaring amount and detect it from normal flaring controller setpoint, and compare flare temperature to all GOSPs flaring source temperature and analyze the results of the comparison to identify a source of flaring.
This disclosure describes automated logic to detect routine & non-routine flaring, as shown in the process flow chart of
If the FI-1009.PV gas flare process variable does exceed the target flare, thereby indicating a non-routine flaring, the ADMF logic can compare all pressure indicator controller (PIC) set point (PIC.SP) against a corresponding PIC process variable (PIC.PV) (206). If, by the comparison of the PIC. SP against the PIC.PV, the ADMF logic determines that any PIC.SP>PIC.PV, the ADMF logic can conclude that flaring is normal (204) and that excess flaring is caused by process flaring PIC, and will notify an operator by pressure controller tag number. Put simply, the ADMF logic will check and verify that PIC.SP>PIC.PV. If any PIC.SP<PIC.PV, there is an upnormal condition due to the process variable exceeding the setpoint. The affected PIC can be displayed in the DCS.
If the ADMF logic determines that PIC.SP<PIC.PV, that means the ADMF logic is to check and make sure all manipulated indicator variables for all flares are zero: PIC.MV=0. (208) If PIC.MV does not equal 0, then the ADMF logic can cause pressure control valves (PCV) to close and can notify an operator. (210) Manipulated indicator variables are the output from the controller. MV means manipulated variable. A MV value of zero means that the signal sent to the valve commands complete closure.
If PIC.MV=0 at 208, then the ADMF logic can cause a tight shut off to be applied to all pressure control valves for a period of time (e.g., 1-5 minutes) by given-10% as an output PIC.MV. (212)
Then the ADMF logic can check if the gas flare process variable exceeds the target flare, similar to 202 above (e.g., does FI-1009.PV>Target flare?) (214). If FI-1009.PV<=target flare, then normal flaring is occurring due to the control of one or more of the above changes to pressure control valves. If FI-1009.PV>target flare, a calculation block will start to calculate a new set point for the flow indicator controller which controls minimium flare flow (FIC-801) as follows (216):
New setpoint=(current setpoint of FIC-801.SV-FI-1009.PV)+TargetFlare.SV
The ADMF logic can compare plant flare sources temperatures versus current flaring temperature. (218) The ADMF logic can identify the source of flaring as explained below. (220)
302, 304, 306: For the ADMF process to start, flare gas flow should be characterized as not normal, with respect to the comparison of flare flow against predetermined values. E.g., Normal flare flow from the calculation function block (NORMFLOW.PV.OFF) equal “0” and Normal flare flow from the calculation function block (NORMFLOW.PV.ON) equal “1” (which is inverted prior to entering the logical element). NORMFLOW.PV is the result of the calculation to determine whether observed flare flow exceeds target setpoint. At 306, INVST-CMD.MV.0 selector switch for ADMF is selected to investigate is set to “1”. The logical comparison outputs a “1” for activating the ADMF process and a “0” for deactivating the ADMF process or keeping the ADMF process off.
At 310, flare flow meter FI-1009.ALARM.IOP equal “O” healthy and
At 308, no recent equipment or plant shutdown have been occurred recently SHUTDOWN.PV.1 320 equal “1.” “Recently” can be defined by a timer value 320, where shutdown reset timer can be defined as a certain amount of time from a shutdown of a compressor or other equipment.
If the above mentioned inputs are all equal “1” and the INVST-CMD.MV.2 equal “0”, the AMDF (ADMF-ST.PV.L) 324 will start. INVST-CMD.MV.2 is an internal DCS switch to control the start of the AMDF logic.
As shown in
The (SHUTDOWN.PV.0) function 326 can receive a pulse input from the plant gas compressors running indication (e.g., (XL-020-C) 314, (XL-070-C) 316, and (XL-014-C) 318), so if any compressor goes to shutdown status, the plant gas compressor will drive a pulse input equal to “1” to the shutdown status, which activates (SHUTDOWN.PV.0) and consequently stops the ADMF by SHUTDOWN.PV.1 328 inverted input to (ADMF-ST.PV.L) 322. in this scenario the logic will be rest after 15 minutes as shown in shutdown reset timer line.
The second part of the logic, when the (ADMF-ST.PV.OFF) 410 is equal “0” it will start the timer function block (TM-FLARE.OP.START) 444 set @ 60 seconds during that the logic will apply valves tight shut off by −10%.
The third logic to check the integrity of flare pressure control valve close status, so any input from the following valves (PCV-029B 412, PCV-042B 414, PCV-092B 416, PCV-014B 418, PCV-023 420, PCV-4001 422 or PCV-3012 424) is equal “0” the AND gate output will be “0” which will latch PCVSNCL.PV.L 448 to “0” which will display in ADMF sequence table
If (ADMF-ST.PV.ON) 426 is equal “0” and any input from the following valves (PCV-029B 412, PCV-042B 414, PCV-092B 416, PCV-014B 418, PCV-023 420, PCV-4001 422 or PCV-3012 424) is equal “0” will activate PCVSNCL.PV.L 448 to “0” this will display the not fully close valve in the ADMF sequence table in
Step 2 (shown in
Step three (shown in
The following is an example calculation script, (!FLARE Tight shut off). The script will make sure all valves are closed through PCVSNCL.PV equal “1” and all limit switches for abovementioned valves from lines 2-8 are in close position, before applying tight shut off:
(!FLARE PROCESS) in order to start the logic this script lines will verify no process flaring present by comparing process variable of controller versus the set point as shown in
In the following example pseudocode, (!FIC-801 REMOTE SET POINT) calculation script of remote set point as follow “New setpoint=(current setpoint of FIC801.SV-FI1009.PV)+TargetFlare.SV” and coded from line-2 to line-8. (! TARGET FLARE SET POINT) this script will detect non-routine flaring by comparing target flare which set by the proponent provided by production engineer vs flare flow meter FI-1009 as shown in
The following pseudocode shows the script which will continuously analysis and compare flare line temperature (TI-1009) reading with GOSP flare lines readings of High-Pressure Production Trap (HPPT) Gas compressor K001A flare line, (HPPT) Gas compressor K001B flare line, Low Pressure Production Trap (LPPT) Gas compressor K002 flare line, High-Pressure Production Trap (HPPT) flare line, Low Pressure Production Trap (LPPT), High-Pressure Test Trap (HPTT) flare line & degassing vessel flare line, any reading approach or within 2% of (TI-1009) the detected equipment will be display in the DCS graphic ADMF sequence table
The above pseudocode represent example algorithms that can be used for the ADMF process described herein. Other functions and calls and instructions can also be used in a similar or analogous manner without deviating from the scope of this disclosure.
The computer 802 can serve in a role as a client, a network component, a server, a database, a persistency, or components of a computer system for performing the subject matter described in the present disclosure. The illustrated computer 802 is communicably coupled with a network 830. In some implementations, one or more components of the computer 802 can be configured to operate within different environments, including cloud-computing-based environments, local environments, global environments, and combinations of environments.
At a top level, the computer 802 is an electronic computing device operable to receive, transmit, process, store, and manage data and information associated with the described subject matter. According to some implementations, the computer 802 can also include, or be communicably coupled with, an application server, an email server, a web server, a caching server, a streaming data server, or a combination of servers.
The computer 802 can receive requests over network 830 from a client application (for example, executing on another computer 802). The computer 802 can respond to the received requests by processing the received requests using software applications. Requests can also be sent to the computer 802 from internal users (for example, from a command console), external (or third) parties, automated applications, entities, individuals, systems, and computers.
Each of the components of the computer 802 can communicate using a system bus 803. In some implementations, any or all of the components of the computer 802, including hardware or software components, can interface with each other or the interface 804 (or a combination of both) over the system bus 803. Interfaces can use an application programming interface (API) 812, a service layer 813, or a combination of the API 812 and service layer 813. The API 812 can include specifications for routines, data structures, and object classes. The API 812 can be either computer-language independent or dependent. The API 812 can refer to a complete interface, a single function, or a set of APIs.
The service layer 813 can provide software services to the computer 802 and other components (whether illustrated or not) that are communicably coupled to the computer 802. The functionality of the computer 802 can be accessible for all service consumers using this service layer. Software services, such as those provided by the service layer 813, can provide reusable, defined functionalities through a defined interface. For example, the interface can be software written in JAVA, C++, or a language providing data in extensible markup language (XML) format. While illustrated as an integrated component of the computer 802, in alternative implementations, the API 812 or the service layer 813 can be stand-alone components in relation to other components of the computer 802 and other components communicably coupled to the computer 802. Moreover, any or all parts of the API 812 or the service layer 813 can be implemented as child or sub-modules of another software module, enterprise application, or hardware module without departing from the scope of the present disclosure.
The computer 802 includes an interface 804. Although illustrated as a single interface 804 in
The computer 802 includes a processor 805. Although illustrated as a single processor 805 in
The computer 802 also includes a database 806 that can hold data for the computer 802 and other components connected to the network 830 (whether illustrated or not). For example, database 806 can be an in-memory, conventional, or a database storing data consistent with the present disclosure. In some implementations, database 806 can be a combination of two or more different database types (for example, hybrid in-memory and conventional databases) according to particular needs, desires, or particular implementations of the computer 802 and the described functionality. Although illustrated as a single database 806 in
The computer 802 also includes a memory 807 that can hold data for the computer 802 or a combination of components connected to the network 830 (whether illustrated or not). Memory 807 can store any data consistent with the present disclosure. In some implementations, memory 807 can be a combination of two or more different types of memory (for example, a combination of semiconductor and magnetic storage) according to particular needs, desires, or particular implementations of the computer 802 and the described functionality. Although illustrated as a single memory 807 in
The application 808 can be an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer 802 and the described functionality. For example, application 808 can serve as one or more components, modules, or applications. Further, although illustrated as a single application 808, the application 808 can be implemented as multiple applications 808 on the computer 802. In addition, although illustrated as internal to the computer 802, in alternative implementations, the application 808 can be external to the computer 802.
The computer 802 can also include a power supply 814. The power supply 814 can include a rechargeable or non-rechargeable battery that can be configured to be either user- or non-user-replaceable. In some implementations, the power supply 814 can include power-conversion and management circuits, including recharging, standby, and power management functionalities. In some implementations, the power-supply 814 can include a power plug to allow the computer 802 to be plugged into a wall socket or a power source to, for example, power the computer 802 or recharge a rechargeable battery.
There can be any number of computers 802 associated with, or external to, a computer system containing computer 802, with each computer 802 communicating over network 830. Further, the terms “client,” “user,” and other appropriate terminology can be used interchangeably, as appropriate, without departing from the scope of the present disclosure. Moreover, the present disclosure contemplates that many users can use one computer 802 and one user can use multiple computers 802.
Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Software implementations of the described subject matter can be implemented as one or more computer programs. Each computer program can include one or more modules of computer program instructions encoded on a tangible, non transitory, computer-readable computer-storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively, or additionally, the program instructions can be encoded in/on an artificially generated propagated signal. For example, the signal can be a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to a suitable receiver apparatus for execution by a data processing apparatus. The computer-storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of computer-storage mediums.
The terms “data processing apparatus,” “computer,” and “electronic computer device” (or equivalent as understood by one of ordinary skill in the art) refer to data processing hardware. For example, a data processing apparatus can encompass all kinds of apparatuses, devices, and machines for processing data, including by way of example, a programmable processor, a computer, or multiple processors or computers. The apparatus can also include special purpose logic circuitry including, for example, a central processing unit (CPU), a field-programmable gate array (FPGA), or an application specific integrated circuit (ASIC). In some implementations, the data processing apparatus or special purpose logic circuitry (or a combination of the data processing apparatus or special purpose logic circuitry) can be hardware- or software-based (or a combination of both hardware- and software-based). The apparatus can optionally include code that creates an execution environment for computer programs, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of execution environments. The present disclosure contemplates the use of data processing apparatuses with or without conventional operating systems, such as LINUX, UNIX, WINDOWS, MAC OS, ANDROID, or IOS.
A computer program, which can also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language. Programming languages can include, for example, compiled languages, interpreted languages, declarative languages, or procedural languages. Programs can be deployed in any form, including as stand-alone programs, modules, components, subroutines, or units for use in a computing environment. A computer program can, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, for example, one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files storing one or more modules, sub programs, or portions of code. A computer program can be deployed for execution on one computer or on multiple computers that are located, for example, at one site or distributed across multiple sites that are interconnected by a communication network. While portions of the programs illustrated in the various figures may be shown as individual modules that implement the various features and functionality through various objects, methods, or processes, the programs can instead include a number of sub-modules, third-party services, components, and libraries. Conversely, the features and functionality of various components can be combined into single components as appropriate. Thresholds used to make computational determinations can be statically, dynamically, or both statically and dynamically determined.
The methods, processes, or logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The methods, processes, or logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, for example, a CPU, an FPGA, or an ASIC.
Computers suitable for the execution of a computer program can be based on one or more of general and special purpose microprocessors and other kinds of CPUs. The elements of a computer are a CPU for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a CPU can receive instructions and data from (and write data to) a memory.
Graphics processing units (GPUs) can also be used in combination with CPUs. The GPUs can provide specialized processing that occurs in parallel to processing performed by CPUs. The specialized processing can include artificial intelligence (AI) applications and processing, for example. GPUs can be used in GPU clusters or in multi-GPU computing.
A computer can include, or be operatively coupled to, one or more mass storage devices for storing data. In some implementations, a computer can receive data from, and transfer data to, the mass storage devices including, for example, magnetic, magneto optical disks, or optical disks. Moreover, a computer can be embedded in another device, for example, a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device such as a universal serial bus (USB) flash drive.
Computer readable media (transitory or non-transitory, as appropriate) suitable for storing computer program instructions and data can include all forms of permanent/non-permanent and volatile/non volatile memory, media, and memory devices. Computer readable media can include, for example, semiconductor memory devices such as random access memory (RAM), read only memory (ROM), phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices. Computer readable media can also include, for example, magnetic devices such as tape, cartridges, cassettes, and internal/removable disks. Computer readable media can also include magneto optical disks and optical memory devices and technologies including, for example, digital video disc (DVD), CD ROM, DVD+/−R, DVD-RAM, DVD-ROM, HD-DVD, and BLU-RAY. The memory can store various objects or data, including caches, classes, frameworks, applications, modules, backup data, jobs, web pages, web page templates, data structures, database tables, repositories, and dynamic information. Types of objects and data stored in memory can include parameters, variables, algorithms, instructions, rules, constraints, and references. Additionally, the memory can include logs, policies, security or access data, and reporting files. The processor and the memory can be supplemented by, or incorporated into, special purpose logic circuitry.
Implementations of the subject matter described in the present disclosure can be implemented on a computer having a display device for providing interaction with a user, including displaying information to (and receiving input from) the user. Types of display devices can include, for example, a cathode ray tube (CRT), a liquid crystal display (LCD), a light-emitting diode (LED), and a plasma monitor. Display devices can include a keyboard and pointing devices including, for example, a mouse, a trackball, or a trackpad. User input can also be provided to the computer through the use of a touchscreen, such as a tablet computer surface with pressure sensitivity or a multi-touch screen using capacitive or electric sensing. Other kinds of devices can be used to provide for interaction with a user, including to receive user feedback including, for example, sensory feedback including visual feedback, auditory feedback, or tactile feedback. Input from the user can be received in the form of acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to, and receiving documents from, a device that the user uses. For example, the computer can send web pages to a web browser on a user's client device in response to requests received from the web browser.
The term “graphical user interface,” or “GUI,” can be used in the singular or the plural to describe one or more graphical user interfaces and each of the displays of a particular graphical user interface. Therefore, a GUI can represent any graphical user interface, including, but not limited to, a web browser, a touch-screen, or a command line interface (CLI) that processes information and efficiently presents the information results to the user. In general, a GUI can include a plurality of user interface (UI) elements, some or all associated with a web browser, such as interactive fields, pull-down lists, and buttons. These and other UI elements can be related to or represent the functions of the web browser.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, for example, as a data server, or that includes a middleware component, for example, an application server. Moreover, the computing system can include a front-end component, for example, a client computer having one or both of a graphical user interface or a Web browser through which a user can interact with the computer. The components of the system can be interconnected by any form or medium of wireline or wireless digital data communication (or a combination of data communication) in a communication network. Examples of communication networks include a local area network (LAN), a radio access network (RAN), a metropolitan area network (MAN), a wide area network (WAN), Worldwide Interoperability for Microwave Access (WIMAX), a wireless local area network (WLAN) (for example, using 802.11 a/b/g/n or 802.20 or a combination of protocols), all or a portion of the Internet, or any other communication system or systems at one or more locations (or a combination of communication networks). The network can communicate with, for example, Internet Protocol (IP) packets, frame relay frames, asynchronous transfer mode (ATM) cells, voice, video, data, or a combination of communication types between network addresses.
The computing system can include clients and servers. A client and server can generally be remote from each other and can typically interact through a communication network. The relationship of client and server can arise by virtue of computer programs running on the respective computers and having a client-server relationship.
Cluster file systems can be any file system type accessible from multiple servers for read and update. Locking or consistency tracking may not be necessary since the locking of exchange file system can be done at application layer. Furthermore, Unicode data files can be different from non-Unicode data files.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in this specification in the context of separate implementations can also be implemented, in combination, in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations, separately, or in any suitable sub-combination. Moreover, although previously described features may be described as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
Particular implementations of the subject matter have been described. Other implementations, alterations, and permutations of the described implementations are within the scope of the following claims as will be apparent to those skilled in the art. While operations are depicted in the drawings or claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed (some operations may be considered optional), to achieve desirable results. In certain circumstances, multitasking or parallel processing (or a combination of multitasking and parallel processing) may be advantageous and performed as deemed appropriate.
Moreover, the separation or integration of various system modules and components in the previously described implementations should not be understood as requiring such separation or integration in all implementations. It should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Accordingly, the previously described example implementations do not define or constrain the present disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of the present disclosure.
Furthermore, any claimed implementation is considered to be applicable to at least a computer-implemented method; a non-transitory, computer-readable medium storing computer-readable instructions to perform the computer-implemented method; and a computer system including a computer memory interoperably coupled with a hardware processor configured to perform the computer-implemented method or the instructions stored on the non-transitory, computer-readable medium.