Optimization of a process involving transformation of multiple source media streams into product streams can be very difficult. The media flows proceed continuously in time and are subject to various constraints. Some of the flows are fixed at all times—these are either sources of raw materials that need to be processed with no storage available, or products, whose demands must be satisfied. Some flows are not limited to specific values at each time; instead, total amount of a source consumed, or a product generated for a fixed period of time is set by a contract to a specific target. A deviation from the contracted targets is usually heavily penalized. Some products/source flows are restricted only within certain interval limits. Some flows (products, sources or intermediates) can be stored, usually at additional costs, thus increasing the number of degrees of freedom. The goal is to operate the plant in the most economical way, which typically involves choosing a feasible mixture of products/sources resulting in contract fulfillment and the largest difference between products sales and raw material costs. Due to the presence of periodic contracts and storages, this optimization problem is a dynamic one and has to be solved on a (sufficiently long) time horizon. The main challenge comes from the fact that fulfillment of the contracts in the future influences the present decisions; these decisions are highly sensitive to estimated future trajectories of the fixed source and product streams that are inherently uncertain.
An optimizer is used to help manage a process that has multiple consumption inputs with differing costs, multiple production outputs with differing sale prices and intermediates. The process may have storage capabilities for some consumption inputs, production outputs and intermediates. Further, there may be multiple production and consumption targets for the total amount of consumption inputs/production outputs, consumed/produced over a fixed period of time. The optimizer finds the most economical solution while staying in a region from which the contract target is reachable for any combination of uncertain fixed trajectories from pre-selected intervals.
In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the present invention. The following description of example embodiments is, therefore, not to be taken in a limited sense, and the scope of the present invention is defined by the appended claims.
The functions or algorithms described herein may be implemented in software or a combination of software and human implemented procedures in one embodiment. The software may consist of computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, such functions correspond to modules, which are software stored on computer readable storage devices, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system.
An optimizer is used to help manage a process that has multiple consumption inputs with differing costs, multiple production outputs with differing sale prices and intermediates. The process may have storage capabilities for some consumption inputs, production outputs and intermediates. Further, there may be multiple production and consumption targets for the total amount of consumption inputs/production outputs, consumed/produced over a fixed period of time. These targets are typically negotiated and contracted with external distribution network operators and not fulfillment is heavily penalized. Some of the consumption inputs and production outputs may also be constrained to prescribed values in order to meet specific requirements. Other consumption inputs and production outputs may vary freely within specific bounds, and so can the intermediates. The decision on the current values of variables that can be freely changed depends on reachability of the contracted targets in the future, availability of storage capacities and expected future values of constrained inputs and outputs. The optimizer finds the most economical solution while staying in a region from which the contract target is reachable for any combination of uncertain fixed trajectories from pre-selected intervals.
One example process is used for example purposes only. Many other processes may also be optimized using the algorithms described herein. The optimizer provides an output that may then be used by a process controller to control flows consistent with the most economical solution. In various embodiments, the process may be controlled to switch between consumption inputs, store some inputs and to modify flow of intermediates and product flows.
Boiler 115 produces steam at 120. Either fuel may be used, but each has different costs and may be subject to different supply chains and contracts. In addition, respective transformation factors K1 and K2 identify gains in the transformation of the fuel to steam. Some of the steam indicated at 122, and represented by product P1, may be provided to be used in heating, or other ancillary process on or near the system site. The remainder of the steam may be provided as intermediate I5 to a generator 130. Generator 130 produces electrical power with a transformation factor of K3, which is provided to an electrical grid as product P2, with a corresponding cost of CP2, or may also be consumed on site as indicated by product P3. Power supplied to the grid may also be subject to periodic contracts with an electrical utility company controlling a portion of the grid.
Variables subject to optimization are intermediates and flows of material/product media that are not prescribed by external demands/supplies.
x=[S1T I1T . . . I5T P2T P4T]T,
where superscript T denotes the transposition. The nominal optimization problem is to minimize the following cost function
TS denotes the sampling interval, N the optimization horizon, time instant t+KS1 and t+Kp2 are ends of the contracting periods for high-grade fuel and electricity, respectively; pS1, pp2 are penalties for not fulfilling the respective contracts; variable Vs1(t) (Vp2(t)) denote high-grade fuel amount taken (electrical energy supplied) from the beginning of the respective contracting period to time t; there holds VS1(t+1)=VS1(t)+TSS1(t) and VP2(t+1)=VP2(t)+TSP2(t). In practice, the horizon may span over several contracting periods. Including additional penalty terms associated with these periods is straightforward.
Costs cI2 and cI3 denote the costs associated with storing (e.g., liquefaction) and retrieval (e.g., vaporization) of the high-grade fuel. Finally, cT denotes the cost of storing a volume unit of the high-grade fuel.
The involved variables are restricted by the following set of balance equations that have to be satisfied at any time instant t (the time argument being omitted):
S1−I1−I2=0
I4+P4=S2
K1(I1+I3)+K2I4−I5=P1
−P2+K3I5=P3 (1.2)
These equations can be written in the condensed form as
AE{tilde over (X)}i=BE, {tilde over (X)}=[X(t+1)T . . . X(t+N)T] (1.3)
The involved variables are subject to inequality constraints; first, each of the optimized variables may have an upper and lower bound limit, so that (for each t)
XLo≦X≦XHi (1.4)
Further, the upper and lower limit on stored fuel volume must be imposed,
Also, for guaranteeing stability of combustion, a minimum high-grade-to-low grade fuel ratio must be guaranteed at all times, i.e.,
−(I1+I3)+RminI4≦0 (1.6)
Inequalities (1.4)-(1.6) are represented in matrix form as
A{tilde over (X)}≦B (1.7)
The problem of minimizing cost (1.1) subject to constraints (1.3) and (1.7) can be transformed to a standard linear program. For instance, the penalty term associated with one contract
is replaced by another one
for auxiliary variables z1 and z2, satisfying
This recasts the optimization into a standard linear programming (LP) problem.
Modifications of the problem may be made in further embodiments. For instance, in order to reduce computational complexity while preserving the time horizon length, the so-called blocking is applied, i.e., the media flow variables are allowed to change only at specific time instants; let the set of these instants be denoted as B(t), 1εB(t). Then,
X(t+k)=X(t+k−1), ∀kεB(t). (1.8)
Thus, the flows at instants different from the blocking set are no longer subject to optimization. Moreover, the number of constraints on flows is similarly reduced, being limited to the blocking set. The number of constraints on the storage variables (as in (1.5)) is restricted as well; these constraints may be reduced to the set of time instants
BS(t)={k|k+1εB(t)}∪{N}. (1.9)
It may be desirable in some embodiments to penalize squares of increments of individual variables, i.e.,
where ΔX(t+k)=X(t+k)−X(t+k−1). Weighting matrix WΔ is typically diagonal, with small positive numbers on the diagonal. Hence, the problem becomes that of Quadratic Programming, QP. The additional term should reduce the ill-posedness of LP, i.e., certain ambiguity of the optimum. It thus improves smoothness of the optimal solution without substantially affecting the cost distribution among the media, if the weighting is suitably chosen.
One weakness of this approach is that the right-hand side of balance equalities (1.3) is uncertain. This uncertainty is represented by lower and upper bounds on perturbations on ‘fixed’ steam flows, i.e.,
S2=S20+δs2, δS2min≦δS2≦δS2max
P1=P10+δP1, δP1min≦δP1≦δP1max
P3=P10+δP3, δP3min≦δP3≦δP3max (1.11)
Notice that both nominal values (with zeros in sub-scripts) and perturbation bounds are time-dependent and a priori known. The cost-function is, due to the penalty terms on contracted targets, highly sensitive to the right-hand sides; hence, an additional restriction is needed to keep the process in states from which targets are achievable despite of the uncertainty.
Robust Feasibility Region and its Projection.
Feasibility region for the above problem is given by
F(BE0)={{tilde over (X)}|AE{tilde over (X)}=BE0,A{tilde over (X)}≦B}. (1.12)
Robust feasibility region is then
RF(BE0,Δmin,Δmax)={∩F(BE0+Δ)|Δmin≦Δ≦Δmax} (1.13)
where Δ=[0 δS2 δP1 δP3]T. Due to the simple dependency on the uncertainty, we can have the following simplification
RF[BE0,Δmin,Δmax]=F(BE0+ΔA)∩F(BE0+ΔB) (1.14)
where ΔA=[0 δS2min δP1max δP3max]T and
ΔB=[0 δS2max δP1min δP3min]T. In short, one of the uncertainties is given by the upper bounds on uncertainties on product streams and lower bounds on uncertainties on source streams, while the other one is vice versa.
One of the goals of the optimizer is to avoid heavy penalties from failures to fulfill the contract. For this, a projection of this set to flow variables related to the contracts is of particular interest—specifically to the space
An Approximation of this projection by the subset will be obtained.
Robust Reachability Set of Contract Variables
Here we shall consider the space of contract variables
Further, consider sub-space in that space given by sets
T(t+1,F)× . . . ×T(t+N,F) (1.15)
satisfying
In other words, the above definition says that the sets T(t+k, F) characterize reachability regions in the space of contract variables for specified consumption/production targets and for given trajectories of fixed media (here S2, P1 and P3).
It was implicitly assumed that the contract periods for all media co-inside and occurs once per optimization horizon. The latter assumption was made for the simplicity of exposition and is straightforward to lift. Robust reachability set is given by
In particular, we shall assume.
T(t+k,F(BE0),Δ)=T(t+k,F(BE0+ΔA))∩T(t+k,F(BE0+ΔB)). (1.17)
The original optimization problem is re-formulated so that its solution is more robust with respect to the uncertainty in future source supply/product demands that have to be satisfied. In fact, high penalties are imposed on the squared distance of contract variable trajectories from certain contract reachability regions. If the trajectories are inside these regions, the cost function is the same as the nominal one. In particular, the robustified cost function is given by
where
and
In addition to (1.3)-(1.7), further constraints are imposed for newly introduced auxiliary variables zA and zB:
zA(t+k)εT(t+k,F(B20+ΔA))
zB(t+k)εT(t+k,F(B20+ΔB)). (1.19)
Constraints (1.19) are convex polytopic/polygonal regions in the VS
The number of constraints in (1.20) corresponds to the number of edges bounding the regions in (1.19). The optimization problem of robust economic optimization on a fixed horizon with targets and integral constraints is thus that of Quadratic programming (QP), well known from advanced control and real-time optimization. This formulation may resemble the concept of range control (known from, e.g. Profit Controller or MACE of Honeywell. The difference is, that while the range control concept uses box-shaped regions in each time-frame, (1.20) is more general. Further, the region is not operator-defined, but computed from uncertainty bounds. Note also that this formulation is feasible even if the intersection in (1.14) is empty. Then, the solution is the best trade-off for robustness.
What remains is to find the regions in (1.19), or their suitable representations. This will be addressed in the following sections.
Real-Time Operation of the Optimizer
A process 300 implemented by the optimizer starts at 302. Some of the main portions of the process were discussed above and will further be described in detail with additional figures below. As an overview, the optimizer structure is configured at 305. Configuration includes defining the variables described above, structure of the process, and the algorithms to be implemented by the optimizer. Parameters are read into the optimizer at 310. The parameters include the values of all the variables that are know for a given time period. Criterion and constraint parameters are then pre-computed at 312.
The state of the optimizer is then initialized at 315. The state of the optimizer includes states of storages, state of fulfillment of current contracts, times of contract period ends, and historical values of optimized variables. The state model is fairly straight forward, and describes relations between source materials, intermediates, and product flows.
At 320, it is determined whether or not to run the optimizer. If not (due to e.g., a communication failure, or the decision of the operator to control the process manually), a backup strategy may be applied at 322, and the process ends at 325. When the optimizer is run, new fixed stream predictions are read at 327, and bounds for fixed streams are estimated, and blocking is applied. The next part of the process approximates a robust feasibility set in the contract flow space by first computing feasibility bounds at 322, computing robust target reachability bounds 334, and performing an economic optimization with robust reachability bounds at 336. The process then continues at 338.
At 340, optimal trajectories to subordinate controllers are sent. At 342, if the end of a contract period has been reached, new targets for the next contract are obtained at 345. If not, or once the new targets are obtained, new process data is read at 347. At 350, a check is made to determine if the new process data is acceptable or OK. If not, the data is replaced by predictions at 352. At 354, the optimizer 300 state is updated. If a request for parameter change has been received at 357, the new optimizer parameters are read at 360 and new constraints criterion are pre-computed at 362. The parameter change may result from an operator entering new parameters, or new parameters being received from another source. Processing then continues at 365, where the optimizer is run again at 320, or process is backed up at 322 and ended at 325.
Formulation of the Robust Feasibility Set Approximation
A feasibility region, described by a set of linear inequalities is a convex polytope. To obtain its projection into a sub-space of flows of media under contract, a vertex representation of this polytope is used. The projection of the polytope is obtained as a projection of polytope, which is straightforward. However, finding a set of vertices in a region of high dimension and a large number of inequalities is computationally prohibitive. Therefore, an approximation by a sub-set is addressed. Further, a restriction may be made to up to two media flows under contract. If restricted to two, one is a raw material (or source), and the other a product, as in the above example. That is, however, sufficient for a large class of practical problems. For generality, the source and product flows under contract will be referred to as Si and Pj, respectively.
For simplicity, these two flows will be referred to as Si and Pj. The approximated projection of the feasible space is assumed of the form
P(F)⊃Pt+1(F)×Pt+2(F)× . . . ×Pt+N(F). (1.21)
It is further assumed that there exist two extreme points defined as
This assumption is reasonable in the given context—it can be expected that the largest product demand can be satisfied under the largest input supply and vice-versa.
Each partial set is assumed bounded by a union of two piecewise-affine boundaries:
A sample projection is illustrated at 400 in
Two example feasibility sets are shown at 500 in
These boundaries are obtained by solving a series of optimization problems. The boundaries are coupled across the future time frames t+1, . . . , t+N. Moreover, the overall feasibility should be satisfied. Thus the problem is to be optimized over all free flow variables on the optimization horizon. This coupling of the individual time frames is due to the constraints on internal storages. In the given example, the storage is the liquefying gas tank 112. If there are no internal storages, the problem can be addressed separately for each time-frame. In some prior systems, only an electricity contract is considered and hence, only upper and lower bounds on generated power are to be specified.
The boundary computation starts by obtaining extreme points Pmax*(t+k, F) and pmin*(t+k,F). The following linear programs are performed:
Possibly, this problem can be re-cast as a QP one and include a penalty on increments to improve posedness (a unique solution for a time t for each initial set of data). This problem assumes that the variables are scaled so that the ranges for all flows take similar numerical values.
The extreme points pmax* and pmin* are simple projections of the extreme points computed in (1.25) to the space of contract flows S1 and P2. Recall that the feasible set is given by
F={{tilde over (X)}|AE{tilde over (X)}=BE,A{tilde over (X)}≦B,{tilde over (X)}lo≦{tilde over (X)}≦{tilde over (X)}hi} (1.26)
where the right-hand sides of equality constraints are the perturbed external flows that need to be supplied/consumed. The inequality constraints will be, for simplifying notation, integrated with the flow limits as
In one embodiment, the upper and lower limits are restricted so that pmin*≦[Si(t+k)Pj(t+k)]T≦pmax*.
The boundary segment Bt+k1(F) is obtained, for each time frame, as a piecewise affine function given by connecting a set of points p1(0)(t+k,F)=pmax*(t+k,F), p1(1)(t+k,F), . . . , p1(M
p1(s)(t+k,F)=p1(s-1)(t+k,F)+dp1(s)(t+k,F), s=1, 2, . . . M1 (1.28)
This is shown at 600 in
Alternatively, it would be possible to start from the other extreme point pmin*(t+k, F) and continue towards pmax*(t+k,F). As the problems associated with solving the increments are not perfectly posed, the resulting bounds may not be equivalent. Nevertheless, it is guaranteed that the intermediate points are projections of feasible trajectories, and hence, the set bounded by the obtained line is indeed feasible.
A flow chart for computing feasibility bounds is illustrated at 700 in
In general, several steps are involved in computing the sequences of boundary points of two boundary segments, each for a different uncertainty value. The increments between two boundary points are computed, in the full flow space, as a result of a multi-stage optimization. Let sg=1 if the computation proceeds from pmax* to pmin*, sg=1 otherwise. In the following we considered proceeding with sg=1 when computing the bound segment Bt+k1 and sg=1 for Bt+k2.
The three stages are as follows:
First, a feasibility check is done, for which time instants t+k, k=1, . . . , N, it is possible to progress in the direction of the Si(t+k) axis. The progress is limited to a small increment, 0≦sg·δSi(j)(t+k)≦δSi min. The limit ∂Si min is chosen a priori.
In the second stage, the progress in the Si(t+k) direction computed in the previous stage is fixed. If δSi(t+k) is nonzero, maximum increment ΔPj(t+k) in the Pj(t+k) direction is sought. This gives the smallest slope ΔPj/δSi.
In the third stage, a maximum step forward is looked after, with the slope fixed to the value obtained in the previous stage as illustrated at 800 in
These steps between boundary points are computed as optimization tasks over the full space of flow variables. In the process, a careful constraint management is done. In the first stage, only the set of active constraints (i.e., those which are satisfied as equalities) for p(j−1) is used. The same active set is used in the second stage; however, those which were satisfied as equalities for solution of the first stage are forced as equalities in the second stage [0071]. The third stage uses the full set of constraints of the original problem; those, which are satisfied as equalities in the second stage are forced as equalities. This constraint handling is applied in order to force progress along the boundary set if possible.
Next, it will be described, in the step-by-step manner, how to compute the increment d{tilde over (X)}(s)(F)={tilde over (X)}(s)(F)−{tilde over (X)}(s-1)(F), with explicitly formulated optimization tasks stated in the stages above. A flow chart of a method 900 is shown in
At 935, a limiting rate is obtained, and at 937, a set of active constraints is identified. At 940, feasible steps forward in Si space are found. A set of times K* is then identified at 942 for which no progress towards the endpoint is feasible. A check is made on K* at 945 if this set of points of no progress is the full set of times k=1, 2, . . . , N. If not, processing continues at 947. Otherwise, a flag is set indicating that the process is ending and the last point in the sequence is set to the pre-computed endpoint at 950. This is the standard end of the algorithm. Processing continues at 930.
At 952, a sub-set I1 of active constraints is identified. At 955, a feasible direction in Si×Pj space with minimum slope is obtained. The rate of optimal direction is then obtained at 957, and a set I2 of active constraints is identified at 960. At 962, a largest feasible progress along the optimal direction is found. If a feasible solution is no found at 965, parameters are set at 967. processing then continues at 970.
The steps in the main cycle of this procedure, i.e. from label 5 at 970 in
1. Compute the limiting tangent for the boundary segment as
where ΔPj(s-1)(t+k)=Pj(s-1)(t+k)−Pjend* and
ΔSi(s-1)(t+k)=Si(s-1)(t+k)−Siend*. The symbol e denotes a chosen tolerance. This tangent is used to limit the ascend/descend of the boundary, in order not to miss the pre-computed end-point of the sequence.
2. Find the set I of constraints (1.27) which are active for the point {tilde over (X)}(j−1)(F), i.e., all equality constraints, and those inequality ones that are attained as equalities; Denote ÃI and {tilde over (B)}1 those rows of à and {tilde over (B)}, respectively, so that |AI{tilde over (X)}(j−1)−{tilde over (B)}I|<ε.
3. Solve the linear program
4. Find set of time frames K*{k∥δSi(s)*|<ε} for which no progress is feasible
5. If K*={1, 2, . . . , N}, i.e., no progress is possible, set {tilde over (X)}(s)={tilde over (X)}end and exit the boundary segment computation process. This is the normal exit point of the algorithm.
6. Find the set of rows of ÃI so that for matrix ÃI1 containing these rows satisfies |ÃI1 of(s)<ε. The complement of ÃI1 to ÃI is denoted as ÃI1C.
7. Solve optimization problem
8. Update the optimal tangent in the current boundary segment for all k as
9. Find the latest active constraint set I*3 represented by matrix ÃI3, satisfying |ÃI3Δ{tilde over (X)}*(s)|<ε. The complement of this set to the overall set of constraints is represented by matrix ÃI3C; consisting of rows of matrix Ã. The corresponding rows of vector {tilde over (B)} is denoted as {tilde over (B)}I3C.
10. Solve the linear program
11. If feasible solution to the above problem was found, update the boundary point to {tilde over (X)}(s)={tilde over (X)}(s-1)+d{tilde over (X)}*(s), where d{tilde over (X)}*(s) is the solution of (1.32). Increment s and go to Step [0078];
Otherwise, set {tilde over (X)}(s)={tilde over (X)}end and return. This latter case is an emergency response to the solver failure.
It is not a priori obvious how many boundary points are needed to compute. A test on exceeding a maximum iteration count may be implemented. If it is achieved without proper exit in Step 5, set {tilde over (X)}(s)={tilde over (X)}end.
Also in the above cases it is possible to re-cast the problem as quadratic programming (QP) and add a small penalty on the rate-of-change of the respective flows.
Transforming Feasibility Sets to Target Reachability Sets
Target reachability sets were defined above in Section Robust reachability set of contract variables. Here we shall give an algorithm for obtaining this set from the feasibility set in the contracting flow variables dealt with in the previous paragraph; in the example used earlier. The robust reachability sets are in the space of accumulated amounts (volume, energy) produced or consumed since the beginning of the contracting period.
As previously described, the feasibility set is obtained as a Carthesian product of polytopic sets for each time instant, Pt+1× . . . ×Pt+N. Each polytope Pt+k is obtained as an intersection of two sets, each for a different uncertainty, Pt+k=Pt+k(F(BE0+ΔA))∩Pt+k(F(BE0+ΔB)). It was assumed that this intersection can be bounded by segments Bt+k1(F(BE0+ΔA)) and Bt+k2(F(BE0+ΔB)). Each of the boundary segments bounds a convex unbounded part of the plane and their intersection is Pt+k. They are represented as sets of vertices,
Bt+k1(F(BE0+ΔA))={p1A(t+k), . . . ,pm
Bt+k2(F(BE0+ΔB))={p1B(t+k), . . . ,pm
For a large uncertainty, the intersection Pt+k can be empty. In that case the robust optimal problem forces the trajectory to be as close to these bounds (now bounding two sets with no intersection) as possible.
As for the robust target reachability set, the same representation is used, i.e., is defined as Tt+1× . . . ×Tt+K, where t+K is the end of the contracting period. The polytopic sets Tt+k are represented by boundary segments:
the a-priori known target point. Alternatively, the set Tt+k san be chosen as a convex polytope containing the target value.
The set is computed recursively, for k=K−1, K−2, . . . 1 as follows
As shown in
The system bus 23 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory can also be referred to as simply the memory, and, in some embodiments, includes read-only memory (ROM) 24 and random-access memory (RAM) 25. A basic input/output system (BIOS) program 26, containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, may be stored in ROM 24. The computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 couple with a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. The drives and their associated computer-readable media provide non volatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), redundant arrays of independent disks (e.g., RAID storage devices) and the like, can be used in the exemplary operating environment.
A plurality of program modules can be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 38. Programming for implementing one or more processes or method described herein may be resident on any one or number of these computer-readable media.
A user may enter commands and information into computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, or the like. These other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus 23, but can be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). A monitor 47 or other type of display device can also be connected to the system bus 23 via an interface, such as a video adapter 48. The monitor 47 can display a graphical user interface for the user. In addition to the monitor 47, computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 20 may operate in a networked environment using logical connections to one or more remote computers or servers, such as remote computer 49. These logical connections are achieved by a communication device coupled to or a part of the computer 20; the invention is not limited to a particular type of communications device. The remote computer 49 can be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above I/0 relative to the computer 20, although only a memory storage device 50 has been illustrated. The logical connections depicted in
When used in a LAN-networking environment, the computer 20 is connected to the LAN 51 through a network interface or adapter 53, which is one type of communications device. In some embodiments, when used in a WAN-networking environment, the computer 20 typically includes a modem 54 (another type of communications device) or any other type of communications device, e.g., a wireless transceiver, for establishing communications over the wide-area network 52, such as the internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the computer 20 can be stored in the remote memory storage device 50 of remote computer, or server 49. It is appreciated that the network connections shown are exemplary and other means of, and communications devices for, establishing a communications link between the computers may be used including hybrid fiber-coax connections, T1-T3 lines, DSL's, OC-3 and/or OC-12, TCP/IP, microwave, wireless application protocol, and any other electronic media through any suitable switches, routers, outlets and power lines, as the same are known and understood by one of ordinary skill in the art.
1. A method of optimizing a manufacturing process having source materials, intermediates, products and media storages, the method comprising:
obtaining a model describing relations between source materials, intermediates and product flows;
setting upper and lower bounds for each of the source materials, intermediates and product flows, for storage capacities and for combinations of multiple flows;
obtaining a set of external flows constrained to specified values including at least one source whose supply has to be fully consumed and at least one product whose demand has to be fully satisfied;
determining estimates of future values of these constrained external flows as well as estimates of the upper and lower bound of those flows;
determining a set of external flows with requirements on total production or consumption for fixed periods of time, where these requirements are subject to contracts, periodically negotiated with distribution network operators;
obtaining varying costs of raw materials and products and their predictions;
computing flows of sources, intermediates and products so that all constraints are satisfied and the profit is maximized over a time horizon and, produced/consumed amounts of media under contract since the beginning of contracting period are within a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds;
sending the optimal future trajectories or only the next step values of the optimized flows to sub-ordinate controllers to be enforced on the process;
receiving process values to update internal states from lower control layers or operating in open loop and replacing them by estimates from the previous step; and
repeating the process of determining estimates of future values of constrained external flows and their upper and lower bounds, acquiring varying costs, computing optimal flows, sending the optimal future trajectories and receiving process values with an optimization horizon moved one time-step forward.
2. The method of example 1 wherein a requirement of produced/consumed amounts of media under contract since the beginning of contracting period being in a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds is implemented as a soft constraint adding a penalty on the square of the distance of the trajectory from the region to the optimization criterion with a suitable weighting parameter.
3. The method of example 1 or 2 where an optimization cost function for computing flows contains also a penalty for deviations of produced/consumed amounts of media during the fixed contract interval from the targets specified by the contract.
4. The method of any of examples 1-3 where an optimization cost function for computing flows contains also a penalty on squares of time increments of flows in order to achieve smooth and well posed solution.
5. The method of any of examples 1-4 wherein media flow variables are allowed to change only at specific time instants on the future time horizon and are identified as part of a blocking set.
6. The method of any of examples 1-5 wherein the optimization horizon includes more than one contracting period.
7. The method of any of examples 1-6 and further comprising initializing a state of the optimizer, wherein the state of the optimizer includes states of storages, state of fulfillment of current contracts, times of contract period ends, and historical values of optimized variables.
8. A computer readable storage device having instructions to cause a computer to implement a method of optimizing a manufacturing process having source materials, intermediates, products and media storages, the method comprising:
obtaining a model describing relations between source materials, intermediates and product flows;
obtaining upper and lower bounds for each of the source materials, intermediates and product flows, for storage capacities and for combinations of multiple flows;
obtaining a set of external flows constrained to specified values including a least one source whose supply has to be consumed and at least one product whose demand has to be satisfied;
determining estimates of future values of these constrained external flows as well as estimates of the upper and lower bound of those flows;
determining a set of external flows with requirements on total production or consumption for fixed periods of time, where these requirements are subject to contracts, periodically negotiated with distribution network operators;
obtaining varying costs of raw materials and products and their predictions;
computing flows of sources, intermediates and products so that all constraints are satisfied and the profit is maximized over a time horizon and, produced/consumed amounts of media under contract since the beginning of contracting period are within a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds;
sending the optimal future trajectories or only the next step values of the optimized flows to sub-ordinate controllers to be enforced on the process;
receiving process values to update internal states from lower control layers or operating in open loop and replacing them by estimates from the previous step; and
repeating the process of determining estimates of future values of constrained external flows and their upper and lower bounds, acquiring varying costs, computing optimal flows, sending the optimal future trajectories and receiving process values with an optimization horizon moved one time-step forward.
9. The computer readable storage device of example 8 wherein a requirement of produced/consumed amounts of media under contract since the beginning of contracting period being in a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds is implemented as a soft constraint adding a penalty on the square of the distance of the trajectory from the region to the optimization criterion with a suitable weighting parameter.
10. The computer readable storage device of any of examples 8-9 where an optimization cost function for computing flows contains also a penalty for deviations of produced/consumed amounts of media during the fixed contract interval from the targets specified by the contract.
11. The computer readable storage device of any of examples 8-10 where an optimization cost function for computing flows contains also a penalty on squares of time increments of flows in order to achieve smooth and well posed solution.
12. The computer readable storage device of any of examples 8-11 wherein media flow variables are allowed to change only at specific time instants on the future time horizon and are identified as part of a blocking set.
13. The computer readable storage device of any of examples 8-12 wherein the optimization horizon includes more than one contracting period.
14. The computer readable storage device of any of examples 8-13 and further comprising initializing and a periodic update of a state of the optimizer, wherein the state of the optimizer includes states of storages, state of fulfillment of current contracts, times of contract period ends, and historical values of optimized variables.
15. An optimizer to optimize a manufacturing process having source materials, intermediates, products and media storages, the optimizer comprising:
an input to obtain a model describing relations between source materials, intermediates and product flows;
an input to obtain upper and lower bounds for each of the source materials, intermediates and product flows, for storage capacities and for combinations of multiple flows;
the input further obtaining a set of external flows constrained to specified values including a least one source whose supply has to be consumed and at least one product whose demand has to be satisfied;
the processor determining estimates of future values of these constrained external flows as well as estimates of the upper and lower bound of those flows;
the input further obtaining a set of external flows with requirements on total production or consumption for fixed periods of time, where these requirements are subject to contracts, periodically negotiated with distribution network operators;
the input further obtaining varying costs of raw materials and products and their predictions;
the processor computing flows of sources, intermediates and products so that all constraints are satisfied and the profit is maximized over a time horizon and, produced/consumed amounts of media under contract since the beginning of contracting period are within a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds;
an output to send the optimal future trajectories or only the next step values of the optimized flows to sub-ordinate controllers to be enforced on the process;
the input receiving process values to update internal states from lower control layers or operating in open loop and replacing them by estimates from the previous step; and
the processor repeating the process of determining estimates of future values of constrained external flows and their upper and lower bounds, acquiring varying costs, computing optimal flows, sending the optimal future trajectories and receiving process values with the horizon moved one time-step forward.
16. The optimizer of example 15 wherein the requirement of produced/consumed amounts of media under contract since the beginning of contracting period being in a region guaranteeing satisfying the contract for any combination of trajectories of fixed external flows from the pre-specified bounds is implemented as a soft constraint adding a penalty on the square of the distance of the trajectory from the region to the optimization criterion with a suitable weighting parameter.
17. The optimizer of any of examples 15-16 where the optimization cost function contains also a penalty for deviations of produced/consumed amounts of media during the fixed contract interval from the targets specified by the contract.
18. The optimizer of any of examples 15-17 where the optimization cost function contains also a penalty on squares of time increments of flows in order to achieve smooth and well posed solution.
19. The optimizer of any of examples 15-18 wherein media flow variables are allowed to change only at specific time instants on the future time horizon and are identified as part of a blocking set.
20. The optimizer of any of examples 15-19 wherein the optimization horizon includes more than one contracting period.
21. The optimizer of any of examples 15-20 and further comprising initializing and periodical updating a state of the optimizer, wherein the state of the optimizer includes states of storages, state of fulfillment of current contracts, times of contract period ends, and historical values of optimized variables.
Although a few embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Other embodiments may be within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
12160648 | Mar 2012 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
7310572 | Havlena et al. | Dec 2007 | B2 |
20110231028 | Ozog | Sep 2011 | A1 |
Entry |
---|
Susara A. van den Heever and Ignacio E. Grossmann, A strategy for the integration of production planning and reactive scheduling in the optimization of a hydrogen supply network, Dec. 15, 2003, Computers & Chemical Engineering, vol. 27, Issue 12, pp. 1813-1839. |
“European Application Serial No. 121606487, Extended EP Search Report of Sep. 7, 2012”, 3 pgs. |
Number | Date | Country | |
---|---|---|---|
20130297367 A1 | Nov 2013 | US |