1. Technical Field
The present application relates generally to computer-implemented monitoring and control of refinery activities.
2. Description of the Related Art
Oil refining is a complex and valuable process. Since the introduction of computers into operating refineries, a goal has been to integrate the decision making of management with automatic actuation by control systems. For many years, refiners have been developing computer programs to optimize the operation of oil refineries. This computer-based optimization activity can be divided into three types of solutions: planning and scheduling, multivariable constraint control (MVCC), and real-time modelling and unit optimization of various refinery operating units. To date, however, each of these types of solutions has inherent limitations or deficiencies that have inhibited the development of a satisfactory integrated solution.
A first type of solution is the use of a refinery planning and scheduling model, which has been implemented by many refineries. Refineries must plan their operations weeks and months in advance in order satisfy the long lead times required for purchase of crude oil supply and contracts for product delivery. This is done in part by solving a linear or non-linear programming model which generally uses a multi-period, steady-state, regression based model of the entire refinery operation to calculate a refinery optimum operation plan weeks and months into the future. The refinery planning and scheduling model is usually used in two modes. In planning mode the model is solved using a linear or non-linear programming algorithm and is usually run bi-weekly or monthly. Its main purpose is to determine the best average operating conditions for the planning period, typically the next two to four weeks, for each of the refinery units in order to assure satisfaction of required product properties such as the octane number of the gasoline produced and volumes of products to be produced during the planning period. The solution of the planning model provides for the optimal operating solution for the average conditions of the planning period. In scheduling mode the same model is run as a short term simulation of the refinery, typically once weekly and predicting daily operations out into the future. The purpose of the scheduling solution is to insure the satisfaction of inventory constraints on storage tanks used to hold crude oil feed, intermediate streams, and the final products that are ultimately shipped by pipeline or in batches on boats, trucks and railcars.
A weakness of this planning and scheduling model is that it is a crude representation of the operation of the entire refinery, which is a complex set of chemical processes. Another is that the planning and scheduling model and its input data require manual update because the input data is not directly measurable in the process. The model in this solution represents an average of the period being modelled; so, for example, it cannot distinguish between daytime and nighttime operation when changes in ambient temperature can have a dramatic impact on the optimum operating point of the refinery. The inability to match the planning model to the current behavior of the process and the modelling of only average behavior often results in a planning model that significantly deviates from the actual refinery behavior. The planning model therefore requires specific know-how from the users of the model to adjust the solution so that it is achievable by the refinery operators. While planning and scheduling software has been developed to make the manual manipulation of the planning solutions easier than in the past, the planning and scheduling model's limitations are a cause of poor integration with actual operational decisions in the refinery.
A second solution used in refinery optimization that has received wide attention and implementation is multivariable constraint control (MVCC). Multivariable regression models, which include pricing constraints, are derived from process data that is generated by conducting experiments on individual process units, such as the fluid catalytic cracking unit (FCCU). The models are solved using linear, but sometimes non-linear, optimizers to arrive at control parameters that are applied by controllers to each of the individual process units. Recent advances in MVCC model identification have made these regression models very reliable and easily derivable even under closed-loop operation of the individual process units. The objective function pricing values are often supplied by the previously mentioned refinery planning and scheduling optimization. A weakness of these MVCC controllers is the nature of the model. Because it is derived from regression of operating data, there is some reduction in fidelity of the model to actual operation; and the optimization of the MVCC model will not reliably extrapolate a solution outside of its experience since the model is derived from operating data.
Accordingly, refiners have attempted to implement a third type of optimization, unit optimization, in their refineries in the form of first-principles models of the refinery operating units such as Crude and Vacuum Distillation, fluid catalytic cracking (FCC) and Hydrocracking in order to calculate an accurate optimum for each individual process unit. These optimization models consist of detailed models based on first principles of chemistry and physics of reaction kinetics, tray by tray distillation, valves, heat exchangers and all of the process equipment in the process unit. In addition, the stream flows are disaggregated into very detailed representation of the molecules and compounds that are constituents of crude oil and its product streams, even though few of these components can be directly measured in the process streams. The resulting models are very large and complex sometimes consisting of as many as 60,000 equations for a single process operating unit.
In this configuration these unit optimizations sit in a hierarchy below the refinery planning and scheduling model and above the process unit MVCCs. The purpose of these optimizers is to overcome a lack of fidelity in the MVCC models. While these types of unit optimizers have reportedly been successfully implemented with initial reports of high profit, only a small number of refining companies have attempted to implement these optimizers due to the complexity of the models and the intensive effort of highly skilled engineers required to implement them. Even then, due to the complexity and difficulty of maintaining the models and their optimization, refineries have abandoned this solution and returned to the use of planning optimization and the MVCC solution for refinery optimization. A further reported problem is that the increased profits in using complex unit optimizers of this type over the above-mentioned solutions can only be measured when unit optimization was initiated; after a period of operation, it becomes difficult to determine how much additional profit was being realized by this solution without actually turning off unit optimization and returning to the basic combination of planning optimization and MVCC controllers. This problem is due to shifts in the operational baseline resulting from changes in the mix of crude oils being processed, and changes in the products and product distribution goals of the refinery.
Another deficiency in these unit optimizations is that they fail to capitalize on the opportunity to optimize inter-unit interaction. Because planning and scheduling optimization, in part, attempts to optimize inter-unit interactions, some refiners have attempted to link unit optimizations with each other to try to achieve refinery-wide optimization with the aforementioned first-principles models. However, these implementations are much larger, involving hundreds of thousands of equations, and are more complex and more difficult to maintain than a single unit optimization.
There have been attempts to link MVCCs together by a coordinating linear program that receives its pricing from the planning optimization and integrates the operation of the MVCCs. One failing of this approach is in the limitations of the linear model of highly non-linear reaction processes such as the FCC. In a variation on this approach users have attempted to operate closed form kinetic models of such non-linear reaction processes on-line and calculate numeric derivatives of these models, which are then passed to the coordinating linear program in order to allow it to approximate the non-linear process behavior. A deficiency in this approach is that the closed form kinetic models are difficult to automatically match to current reaction process conditions. Another is that the derivatives computed for these models are calculated by sequentially perturbing each input and solving the model, which is a tedious and computationally burdensome process. Further, in order to ensure convergence of the kinetic models, the user must set wide convergence criteria, which may result in unreliable and noisy derivatives that change significantly from solution interval to solution interval. In practice, these noisy derivatives are not implemented and this solution reverts to be a fixed linear program coordinating MVCCs, resulting in the loss of the benefit of having a first principles model while introducing significant complexity in the implementation.
Moreover, even with various attempts at optimizing and integrating processes, in practice various incompatibilities between the objectives of planning and scheduling and those of plant control still presents a challenge. The planning and scheduling priority, typically, is to ensure that future volumes of feed and product that have been committed to under contract (a factor external to actual plant conditions) are consumed and produced while also achieving the required product qualities (determined according to factors internal to the plant). On the other hand, the process control priority of the MVCCs may be to meet product quality specifications rather than the necessary product volumes. Another challenge in accomplishing integration is that each of the steps in long term planning of refinery operation, short term scheduling of refinery operation, and control and operation of the refinery are each in themselves complex endeavors involving teams of numerous people focused on accomplishing the goals and objectives of each of their assigned functions of planning, scheduling, operation and control of the refinery. The level of complexity and effort in each activity complicates the ability of the different departments to communicate compatible objectives and constraints on meeting those objectives to each other. Further, these specialized needs of these departments are satisfied using different types of models of the process that are specifically purposed to support the specific planning, scheduling and control functions. As noted above, planning and scheduling models are typically steady-state regression models; these are often regressed from data generated by perturbing a first-principles engineering model of the individual processes. The process control models in the MVCCs, on the other hand, are typically dynamic regression models developed by regression of data generated by perturbing the actual process around a particular operating point. Also as noted above, the update cycles for running these models typically do not line up.
As a result of the practical mismatches in optimization models, frequencies with which they are run, and objectives, there are often mismatches in the targets and constraints of the two types of optimization. As part of the monthly planning cycle, planners often conduct a plan versus actual reconciliation in which a plan set at the beginning of the previous cycle is compared to the actual achieved performance in that cycle. After accounting for unplanned interruption of operations, delayed start-ups, and other unplanned events, under typical industry conditions there can be at least one dollar ($1) per barrel of feed in unaccounted profit loss from that forecast by the planner. A significant portion of that loss can be due to the mismatched targets and constraints of the planning and scheduling models and the operational targets and constraints of the MVCCs. In North America alone, currently approximately twenty million barrels of crude oil are processed in refineries every day. The amount of profit loss available for recapture can thus be considered significant; in addition, recapturing this loss would assist in reducing waste output since more crude oil could then be converted to higher value transportation fuels.
In some instances there may be more than one identified source of profit loss that may require significant re-work by some or all of the planning, scheduling, operations and control departments. Calculation of the profit loss associated with each of the sources of mismatch between planning and control targets and constraints allows for prioritization of effort to correct the loss.
In drawings which illustrate by way of example only embodiments of the present application,
The embodiments described herein provide a solution directed to the foregoing problems in the integration of planning, scheduling, and process control. Mismatches between targets and constraint limits for product volumes and qualities in the planning and scheduling optimization and the targets and constraint limits in MVCC optimization are computed and indicated for subsequent adjustment and control of operations. Accordingly, a means is provided for closing the gap between planned profit and actual operating profit of a process which is scheduled using a single-period or multi-period, steady-state planning model and optimization program. The planning model and optimization program can be based on a linear programming or non-linear programming model, and further can be controlled on-line by means of linear or non-linear multivariable constraint controls. A current state of the plant operations, such as the current economic state determined using current operating conditions, is compared with a planned optimum state, such as the planned economic optimum computed by the process planning optimization, itself based on forecasted production rates and product qualities. Differences between the actual and planned states—such as the actual and planned profits—are computed and the sources of those differences are identified, thus providing means for aligning the targets of planning optimization and process control. Subject to process operation permission, MVCC constraint limits can be changed to meet constraint limits in the planning optimization; alternatively or in addition, subject to planning permission, the planning constraint limits can be changed to meet MVCC constraint limits.
In addition, embodiments described herein provide a solution to problems in multi-unit optimization of a refinery or a similar process, such as an ethylene production process in which naphtha or ethane is cracked in thermal cracking reactors to produce ethylene, propylene and other chemicals which are then separated in a distillation train, using steady-state models based on first principles of physics and chemistry. In particular, a computer apparatus and method is provided to calculate a refinery operating optimum which integrates with presently available refinery planning and scheduling optimizers and process unit MVCCs. First principles, rigorous, kinetic models are employed for refinery reaction processes such as FCC, Hydrocracker, and gasoline Reformer. Gain-only models derived from regression of process data are used for all other processes within the refinery operation that are linear or behave linearly in the permissible operating space, such as distillation. The derivation of the kinetic models and gain-only models are within the abilities of the person of ordinary skill in the art. For example, the gain-only models may be the same as those used for MVCC models.
The hydrocracker unit outputs naphtha, jet and diesel fuels, which in turn are input to downstream units; in this example, the hydrocracker naphtha is input to the reformer unit 6. The FCCU 4 output includes propane and butane, which are input to an alkylation unit 5, gasoline, and light cycle oil. The various outputs from the crude distillation unit 1 and the downstream hydrocracker unit 3, FCCU 4, alkylation unit 5 and reformer 6 are delivered to various gasoline, jet/kerosene and distillate pools 7, 8, 9 respectively for storage. For example, crude distillation output light naphtha and the reformate output from the reformer 6 as well as the alkylate output from the alkylation unit 5 and the gasoline output from the FCCU 4 are delivered to the gasoline pool 7, while the crude distillation output kerosene and hydrocracker output jet fuel are delivered to the jet/kerosene pool 8 and the crude distillation output diesel, hydrocracker output diesel, and light cycle oil are delivered to the distillate pool 9. The components of the various unit models are shown in
It will be appreciated by those skilled in the art that the flow diagram of
Turning first to multi-unit optimization,
The optimization module 12 receives pricing data for each stream from the planning and scheduling optimizer 10, and sensor-measured variables from the refinery processes, and sends targets and constraint limits computed by its optimization solution directly to the MVCCs 13. The optimization module 12 includes modules to check pricing data for reasonableness, and can be configured to alert a human operator in the event the pricing is not reasonable, so that the operator can optionally run off-line cases to study the effect of the new pricing before implementing it online. The sensor-measured variables can include stream flows, stream 90% boiling points, percentage content of pure components, stream temperatures, and reactor temperatures. The sensor data may be received substantially continuously or only periodically (for example hourly). In some embodiments, the input values to the optimization solution, including stream 90% boiling points, percent content of a pure component, or road and motor octane number, may be inferred from raw data. The input values may also be determined from laboratory-measured variables, for example as in the case of octane number.
The test process module 22 examines selected process measurements for each process unit which are inputs to the test function of the test process module 22. A first test implemented by the module 22 is to determine if the process measurement values detected by sensors at the refinery process unit are valid. The sensors typically detect and record periodic measurements from the process unit, for example once every minute. For example, one validity test is for change from measurement values read during a last scheduled test. If the values have not changed for some time the sensor used to determine the process measurements is presumed to have failed and the measurement is deemed to be bad or invalid. If this is the case, the process measurement value is re-tested at a later time (for example, after the sensor problem is corrected) by the test process module 22.
Once the values have been determined to be valid, the set of valid values is tested to determine if the corresponding process unit is in a steady state or not. The steady-state test can be to determine whether or not the standard deviation of the last hour of one minute values of a particular measurement detected by the process unit sensor is less than a specified maximum amount. This test can be applied to a group of selected process variables used to define the operation of the process unit. If the tests conducted at the test process module 22 are satisfied, the next step is to reconcile the process model to be optimized against the set of validated current process measurements by the reconciliation optimization module 23.
Reconciliation of plant data is preferred because there is always sufficient error in process measurements so that material and energy balances will not close 100%. However, in order for a valid optimization solution to be calculated the problem should start at a mathematically balanced starting point. The reconciliation optimization module 23 operates on a set of model equations representing a model of the plant and its process units, a portion of which is shown in
min F=ΣiWti(Measi−Modeli)2
where for each measured value i, Meas is a plant measurement value or the measured input, Model is a model-calculated value or estimated value corresponding to the plant measurement, Wt is a weighting factor or penalty function on the error (i.e., the difference between Meas and Model, squared). The values of Wt are set based on the known reliability of the measurements, Meas. For example, the variables identified as invalid in the validity test have Wt=0, while those that are considered highly reliable such as temperatures have much larger penalties. The sum of the weighted errors is taken over all measured values.
Once the reconciliation is completed the values of the reconciled variables output by the reconciliation optimization module 23 become the input variables for the real-time economic optimization module 25. The real-time economic (or profit) optimization module 25 carries out an economic optimization of the same model equations used by the reconciliation optimization module 23, but now subject to the economic optimization function:
where Modeli is each reconciled process variable value from the reconciliation optimization module 23; Targeti can be an externally-set target or constraint corresponding to the variable (e.g., stream 90% boiling points, percent content, octane number, stream and/or reactor temperature, production stream volume, or production stream quality), and is calculated by the planning and scheduling optimization unit 10; Costi is a price per unit of the target as determined by the planning and scheduling optimization unit 10; Qmodelj is a set of process variable qualities calculated in the model, a special subset of Modeli; Qmodelj values are optimized against Qtargetj, which are quality targets for the various stream flows for each of the process units, and are also calculated and provided by the planning and scheduling optimization module 10. Qcostj is the price per unit corresponding to Qtargetj, and is also provided by the planning and scheduling optimization module 10. The resultant optimized variables from the economic optimization function solution are then provided as operating target or constraint values to each of the corresponding MVCCs.
Costi and Qcostj are preferably the last set of valid prices provided by the refinery planning and scheduling optimization module 10. When the refinery planning optimization is run by the module 10 (typically, once every two to four weeks) a new set of prices are generated for feed, intermediate streams and products and provided to a price validity checker module 24 before the prices are provided to the real-time economic optimization module 25. The price validity checker module 24 can alert the operator to significant changes in pricing compared to historical data maintained for the checker module 24, or of prices outside of a range of acceptability. While prices determined to be valid by the checker module 24 may be automatically provided as input to the real-time economic optimization module 24, operator intervention may be required to pass the new prices to the economic optimization module 24 regardless of the results of the validity test.
The output from the economic optimization module 25 and output from the planning and scheduling module 10 are provided as input to a profit calculation module 26, which compares the expected profit that would be achieved if a prior art refinery planning solution were implemented compared to the expected profit achieved by implementing the solution provided by the economic optimization module 25 using the profit calculation:
Profit=Σ{(F−FLP)└$LPF+$LPP(P−PLP)┘}
where the variables F are a special subset of variables Modeli, namely, the optimized product flow rates (e.g., measured in barrels per day, or BPD), and P are a special subset of the variables Qmodeli, namely the optimized product stream qualities. F and P are obtained from the economic optimization module 24. The variables FLP and QLP are the product flow and quality targets that the planning and scheduling optimization unit 10 would have passed to the corresponding MVCC without the intervention of the real-time optimization module 12. The variables $FLP and $QLP are pricing of product flows and quality, respectively, as provided by the planning and scheduling optimization unit 10. The profit calculation thus provides an estimate of the profit achieved by the real-time optimization module 12 over the profit that would have been achieved if the planning optimization unit 10's solution had been implemented by the MVCCs. It should be recognized that this profit calculation is likely a conservative estimate of the actual profit because in the current state of the art the scheduling and planning solution-MVCC implementation requires significant manual intervention in order to provide the correct targets to the MVC—meaning that even if accurate, there may be a delay before the targets computed by the scheduling and planning optimization module 12 are implemented at the MVCCs, whereas the profit calculated by the profit calculation module 26 is an actual result that can be achieved.
Thus, with reference to the simplified flowsheet of a sample refinery shown in
In addition to improved model fidelity a key advantage of the real-time optimization module 12 over the operating plan calculated by the planning and scheduling optimization unit 10 is that the optimization module 12 can exploit real-time change of refinery conditions such as diurnal change, variation in crude blend, and change in operating performance of the units while the planning optimization module 12 can only work on averages. A simple example of the benefits of the real-time optimization module 12 is that in a refinery which is constrained by heat removal capacity the optimal time to push production is at night and unlike the MVCCs, the real-time optimization module 12 can be used to optimally re-distribute the production of octane barrels between the various units.
Turning next to integration of planning, scheduling, and process control, it has been discovered that concepts discussed above may also be applied to the problem of identifying mismatches between the targets and constraints set for planning and scheduling optimization, and those of MVCC optimization. An example is provided in the context of what may be considered a subprocess within the refinery's overall process, in this case a naphtha circuit in an oil refinery, a simplified example flow diagram for which is illustrated in
Again, it will be appreciated by those skilled in the art that the flow diagram of
The values obtained for these variables are tested for validity at block 82 according to user specified limits by a test process module. If a value is determined to be invalid, then the method returns to block 81 to await the next cycle. If all values are determined to be valid, they may then be tested by the test process module at block 83 to determine if the corresponding process unit is in a steady state according to user-specified limits at block 84, also as described above. If a unit is not in a steady state, then again the method returns to block 81. Otherwise, the process measurements are deemed to be suitable for use in a profit calculation at block 86.
In the meantime, on the planning side, a scheduler may periodically issue via a schedule module a new set of planning prices and scheduled production variable targets for a refinery in accordance with the planning and scheduling model. The model may include target and constraint values for the various units in the refinery, as may be determined from the linear or non-linear programming model mentioned above. An example of production targets and prices that may be produced by the scheduler is provided in Table 2. In Table 2, values which are taken from a planning solution are denoted by the syntax <LP> <Table Name> <Item Name>, where <LP> indicates that in this example, the source of the value was from a linear programming planning model; values which are taken from a scheduling solution are denoted by the syntax <Schedule> <Item Name>:
A validity test can also be run on these values using a set of user specified limits at block 84, for instance to determine the validity of the planning prices within a specified range. If the target production and price values are determined to be valid, the prices, targets and associated constraints for the process or subprocess of interest are published at block 85. While the publication of this data may occur on a periodic basis, this is not necessarily coincident with the initiation of the method by the scheduling module at block 81; as noted above, the planning model may be run monthly, while the scheduling model may be run weekly, whereas the method of block 80 may be executed hourly, although either of these periods may be adjusted. Regardless, whenever the method is executed, the last valid set of prices, targets and constraints published by the scheduler may be used.
The prices, targets and constraints determined by planning and scheduling and published at block 85, and the production volumes obtained from refinery data and tested at blocks 82 and 83, are then used as input to a profit calculation module at block 86. In this embodiment, the profit calculation module operates on the user-specified variables for which production values were obtained in block 82 and calculates a differential profit value. The differential profit value is a comparison of the profit that would be achieved if the planned production target had been met with the actual profit realized by the actual refinery process or subprocess. The calculation may be expressed as:
Profit=Σ{FlowPlant└$LPF+$LPP(QualityPlant−QualitySched)┘−FlowSched×$LPF}
where FlowPlant is the measured product flow (e.g. in BPD) based on refinery data; FlowSched is the scheduled value for the product flow; QualityPlant is a measured product property; QualitySched is the scheduled value for that product property; $FLP is the price for the product (e.g. in dollars per barrel) as provided by planning and scheduling; and $PLP is the price for the product property, also as provided by planning and scheduling. Input to each unit (feeds) are assigned negative price values, as they constitute a cost of production; output (product) is assigned a positive value. In addition, cost of any significant energy consumption during the operation of the process or subprocess of interest (e.g. furnace fuels) may be added to the summation. Alternate formulations of this profit equation expressing the profit difference between scheduled production and actual performance may be derived by those skilled in the art. A non-zero result in this profit calculation is indicative of a mismatch between the targets and constraints set for planning and scheduling versus operational targets and constraints; in a typical refinery scenario, the result is often expected to be negative.
Thus, in the example of
At block 87, a profit-loss rationalization is undertaken, for example by a rationalization module, to determine whether or not any mismatch detected between planning and operation is significant enough to require action, and if action is required to eliminate or reduce the mismatch, whether a change is to be made to the planning and scheduling targets and constraints or to the MVCC targets and constraints. Identification of a significant mismatch may be carried out by comparing the calculated profit difference to a corresponding predefined tolerance limit to determine whether it exceeds the limit. Identification can also be carried out by a visual analysis of plotted historical differential profit values. Furthermore, the source of the mismatch between the targets and constraints may be identified according to the granularity of the profit differences calculated at block 86: if profit differences are calculated and recorded for each individual unit within a refinery process or subprocess, the source or sources of the mismatch may be more readily located by identifying those process units producing a greater than expected profit differential.
Once the changes to the planning and scheduling or MVCC targets and constraints have been identified, new targets and constraints for planning and scheduling, or for the MVCCs, as the case may be, are published at block 88. Accordingly, the impact of targets and constraints set for both planning and scheduling models and for MVCCs can be more readily detected, facilitating the improvement of both through remedial alterations made to the targets or constraints of one or the other, or both (subject to permission), resulting in improved integration of the planning, scheduling and control functions.
In this particular example the latter was in fact the case and the problem was that the operators did not have a means of communicating the plant operating constraint that prevented lowering the naphtha cutpoint target back to the planners. By supervising the calculations generated according to the embodiments described above, it becomes possible to discern this issue; then the planners and schedulers could re-run their planning and scheduling cases to determine if there is a sufficient incentive to incorporate the new information in the operating plan. The average North American refinery processes approximately 200,000 Barrels of crude oil per day which, at $0.08/Barrel, in this case works out to $16,000/day during the summer operating period, or approximately $1,000,000/year. That is a sufficiently high incentive for the planning and scheduling departments to investigate this issue.
It will be understood by those skilled in the art that the invention is not limited to the embodiment described here and can be applied to any process which is scheduled using a single-period or multi-period planning model and is controlled by multivariable constraint controls.
The systems and methods disclosed herein are presented only by way of example and are not meant to limit the scope of the subject matter described herein. Other variations of the systems and methods described above will be apparent to those skilled in the art and as such are considered to be within the scope of the subject matter described herein. For example, it should be understood that steps and the order of the steps in the processing described herein may be altered, modified and/or augmented and still achieve the desired outcome. Throughout the specification, terms such as “may” and “can” are used interchangeably and use of any particular term should not be construed as limiting the scope or requiring experimentation to implement the claimed subject matter or embodiments described herein.
The systems' and methods' data may be stored in one or more data stores. The data stores can be of many different types of storage devices and programming constructs, such as RAM, ROM, flash memory, programming data structures, programming variables, etc. It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
Code adapted to provide the systems and methods described above may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. Various functional units described herein have been expressly or implicitly described as modules and agents, in order to more particularly emphasize their independent implementation and operation. It is also noted that an agent, module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The various functional units may be implemented in hardware circuits comprising custom VLSI circuits or gate arrays; field-programmable gate arrays; programmable array logic; programmable logic devices; commercially available logic chips, transistors, and other such components. Modules implemented as software for execution by a processor or processors may comprise one or more physical or logical blocks of code that may be organized as one or more of objects, procedures, or functions. The modules need not be physically located together, but may comprise code stored in different locations, such as over several memory devices, capable of being logically joined for execution. Modules may also be implemented as combinations of software and hardware, such as a processor operating on a set of operational data or instructions.
A portion of the disclosure of this patent document contains material which is or may be subject to one or more of copyright, design patent, industrial design, or unregistered design protection. The rightsholder has no objection to the reproduction of any such material as portrayed herein through facsimile reproduction of the patent document or patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all rights whatsoever.
The present application claims priority to U.S. patent application Ser. No. 13/817,048 filed 14 Feb. 2013, which is a national stage entry of PCT/CA2011/050503 filed 17 Aug. 2011, which claims priority to U.S. Provisional Application No. 61/374,877 filed 18 Aug. 2010, the entireties of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61374877 | Aug 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13817048 | Apr 2013 | US |
Child | 13774028 | US |