Sequential deterministic optimization based control system and method

The embodiments described herein include one embodiment that a control method including executing an infeasible search algorithm during a first portion of a predetermined sample period to search for a feasible control trajectory of a plurality of variables of a controlled process, executing a feasible search algorithm during a second portion of the predetermined sample period to determine the feasible control trajectory if the infeasible search algorithm does not determine a feasible control trajectory, and controlling the controlled process by application of the feasible control trajectory.

BACKGROUND

The invention relates generally to control systems and more particularly to deterministic optimization based control of systems.

Generally, control system, such as an industrial plant or a power generation system, may be dynamic and include various constraints. For example, the constraints on the control system may be the result of actuator limits, operational constraints, economical restrictions, and/or safety restrictions. Accordingly, control of such a multivariable constrained dynamic system may be complex. Techniques such as coupled multi-loop proportional-integral-derivative (PID) controllers may not be best suited for handling the control of such complex control systems. On the other hand, one process control technique capable of handling the multivariable constraints is optimization based control (OBC). Specifically, OBC may improve the performance of the control system by enabling the system to operate closer to the various constraints (i.e., via dynamic optimization).

However, OBC may be computationally demanding because the dynamic optimization calculation may involve solving a constrained optimization problem such as quadratic programming (QP) problems at each sampling time. Utilizing a general solver may take seconds or even minutes. In addition, it may be difficult to predict the time it takes for the optimizer to solve the constrained optimization problems. Accordingly, to utilize OBC to control systems with faster dynamics, it may often be beneficial to enable deterministic OBC to provide a feasible control action within a predetermined control time.

SUMMARY

A first embodiment provides a control method including executing an infeasible search algorithm during a first portion of a predetermined sample period to search for a feasible control trajectory of a plurality of variables of a controlled process, executing a feasible search algorithm during a second portion of the predetermined sample period to determine the feasible control trajectory if the infeasible search algorithm does not determine a feasible control trajectory, and controlling the controlled process by application of the feasible control trajectory.

A second embodiment provides a control method, including executing an infeasible search algorithm during a first portion of a predetermined sample period to search for a feasible control trajectory of a plurality of variables of a controlled process, if the infeasible search algorithm does not determine a feasible control trajectory during the first portion of the sample period, making a current control trajectory of the infeasible search algorithm feasible and stabilizing at the end of the first portion of the sample period, executing a feasible search algorithm during a second portion of the sample period to determine the feasible control trajectory based upon the stabilized current control trajectory, and controlling the controlled process by application of the feasible control trajectory.

A third embodiment provides a control system, including memory circuitry for storing executable code, and processing circuitry for executing the code. The code defining steps that, when executed executes an infeasible search algorithm during a first portion of a predetermined sample period to search for a feasible control trajectory of a plurality of variables of a controlled process, if the infeasible search algorithm does not determine a feasible control trajectory during the first portion of the sample period, executes a feasible search algorithm during a second portion of the sample period to determine the feasible control trajectory, and controls the controlled process by application of the feasible control trajectory.

DETAILED DESCRIPTION

The present disclosure is generally directed toward systems and methods for deterministic optimization-based control (OBC) of a control system, such as an industrial plant, a power generation system, or the like. Generally, control systems may utilize process control techniques to control the system. For example, some control systems utilize proportional-integral-derivative (PID) controllers coupled in a multi-loop configuration. Multi-loop PID controllers may offer a fast real-time control of a control system. In addition, PID controllers may run on embedded systems with less computational power. However, when control system has complex dynamics and/or its operation is constrained, the complexity of the process control may greatly increase and multi-loop PID controllers may not provide adequate control. For example, the control system may include processes with large dead times or non-minimum phase dynamics.

One process control technique for control of dynamic multivariable systems is optimization-based control (OBC), which can offer better control (e.g. reduces process variations to enable operation closer to constraints at more profitable operating points). Specifically, OBC uses a process model to predict future process output trajectories based on process input trajectories. In other words, OBC computes trajectories of manipulated variables to optimize the objective function (i.e., minimize costs). As used herein, the cost includes the determination of how well the output trajectories match the desired setpoints. It should be appreciated that in linear control systems, the cost may be captured as a quadratic programming (QP) problem. Accordingly, the dynamic optimization included in the OBC may be computationally complex and run on computer servers with general solvers, which may take seconds or even minutes to produce a solution. Thus, to include OBC on an embedded system for real-time process control, it may be beneficial to improve the efficiency of OBC while ensuring that it is stabilizing.

Accordingly, one embodiment provides a control method including determining a linear approximation of a pre-determined non-linear model of a process to be controlled, determining a convex approximation of the nonlinear constraint set, determining an initial stabilizing feasible control trajectory for a plurality of sample periods of a control trajectory, executing an optimization-based control algorithm to improve the initial stabilizing feasible control trajectory for a plurality of sample periods of a control trajectory, and controlling the controlled process by application of the feasible control trajectory within a predetermined time window. In other words, deterministic OBC may be utilized for real-time control of systems with fast dynamics by including a stabilization function to produce a stable feasible solution (i.e., a solution that does not increase the cost function) available for each predetermined sampling time.

By way of introduction,FIG.1depicts an embodiment of a control system10for a plant/process12. Generally, the control system10may control the functioning of the plant/process12, which may be an industrial manufacturing system, an automation system, a power generation system, a turbine system, or the like. Accordingly, as depicted, the control system10may control the plant/process12to transform material inputs14into material outputs16. For example, the plant/process12may be a sugar crystallization process that transforms sugar syrup (i.e., material input14) into sugar crystals (i.e., material output16). In addition, the control system10may control the output variables (i.e., controlled variables)18by manipulating the input variables20(i.e., manipulated and disturbance variables). Going back to the sugar crystallization example, the control system10may manipulate a steam valve (i.e., manipulated variable) to control a temperature (i.e., controlled variable). In some embodiments, the material input can be a manipulated variable as well (for example a controller can control the feed rate for a material input to the plant).

To optimize the control of the plant/process12, the control system10may further include optimization based control (OBC)22configured to find a stabilizing feasible solution for an optimization problem within a predetermined time window. In other words, the OBC22may determine feasible actions (i.e., solution) for the control system10to take. Specifically, the OBC22may be configured to determine a control trajectory26(i.e., a set of actions) over a control horizon (i.e., period of time to take the actions). Accordingly, the OBC22may sample the state of the plant/process12at specified sampling times. In some embodiments, the state of the plant/process12may include the previous output variables18, a desired output trajectory23, a desired control trajectory24, or any combination thereof. Based on the sampled state of the plant/process12, the OBC22may determine the control trajectory26(i.e., a feasible solution to the optimization problem) during the control time. As used herein, control time refers to the time during which the plant/process12is functioning, which may be in real-time. After the control trajectory26is determined by the OBC22, in some embodiments, the control trajectory26is compared to the desired control trajectory24in a comparator32to determine the input variables20to the plant/process12(i.e., actions to be taken in the control system10). Alternatively, the control trajectory26may be directly reflected in the input variables20. It should be appreciated that the OBC22may be implemented on an embedded system, such as ControlLogix, available from available from Rockwell Automation, of Milwaukee, Wis.

To facilitate determining the control trajectory26, as depicted, the OBC22includes a pre-determined model28and a deterministic solver30. Specifically, the deterministic solver30may use a feasible search strategy, such as a primal active set method, to determine solutions to the constrained optimization problem. As will be described in more detail below, a feasible search strategy begins at a starting point within the feasible region of the control system10and moves around the feasible region to search for an optimum feasible solution (i.e., control trajectory with minimum cost). In other words, the deterministic solver30may determine various feasible actions (i.e., control trajectories) that may be taken by the control system10. Based on the feasible solutions determined by the deterministic solver30, the model28may be utilized to predict the behavior of the process/plant12. In linear systems or non-linear systems with a linear approximation, the model28may be a linear model such as a state space model, a step or impulse response model, an autoregressive with exogenous terms (ARX) model, a transfer function model, or the like. As such, the OBC22may compare the cost of each feasible solution and select the control trajectory26with the lowest cost.

Ideally, the control trajectory26determined is the optimum solution with the lowest cost associated, but, as described above, the optimization calculation may be complex. Accordingly, as will be described in further detail below in the Detailed Example section, the techniques described herein aim to increase the efficiency of the dynamic optimization calculation. For example, the techniques described herein may modify an objective (i.e., cost) function to define the control system10constraints with simple bounds. Thus, the dynamic optimization computation may be greatly reduced and executed on an embedded system because many dynamic optimization solvers (e.g., quadratic-programming (QP) solvers) more efficiently handle simple bounds compared to complex constraints.

Although the dynamic optimization may be efficiently configured, the OBC22may not always find the optimum (i.e., lowest cost) control trajectory26during each control time. However, in practice, a stable sub-optimal control trajectory26may be sufficient. As used herein, the control trajectory26is stabilizing when the cost does not increase compared to the previous step by taking the actions.

To facilitate the functions described herein, it should be appreciated that the OBC22may include a processor, useful for executing computing instructions (i.e., steps), and memory, useful for storing computer instructions (i.e., code) and/or data. As depicted inFIG.2, the OBC22may implement the processor through processing circuitry34and the memory through memory circuitry36. More specifically, the processing circuitry34may be configured to handle the general functionality of the control system, such as controlling actuators, as well as the functions of OBC22, such as dynamic optimization. In addition, as depicted inFIG.3, the processing circuitry34may include multiple processing components (e.g., parallel processor cores or separate processor modules), which may enable the processing circuitry34to better manage various functions. For example, as depicted, a first processing component38may perform the general operations of the control system10. The general operations of the control system10may include controlling components of the control system10, performing calculations, and the like. As for the OBC22functions, the computationally intensive dynamic optimization may be performed on the second processing component40. Accordingly, this enables the dynamic optimization to be called from the first processing component38and executed synchronously or asynchronously on the second processing component40, which may improve the efficiency of the optimization calculation. Alternatively, it should be appreciated that the dynamic optimization may be performed on the first processing core38along with the general functions of the control system10. Furthermore, as depicted, the processing circuitry34includes N processing components, which may each be configured to handle different functions, such as calculating a linear approximation, of the control system10.

Turning back toFIG.2, the memory circuitry36may store computer instructions (i.e., code) describing the model28, the deterministic solver30, configuration parameters42, as well as other instructions44, such as computing virtual measurements for unmeasured process variables for the general functioning of the control system10. Specifically, the instructions stored in the memory circuit may be configured to guide the functioning of the model28and the deterministic solver30. Accordingly, the memory circuitry36is communicatively coupled to the processing circuitry34to enable to processing circuitry34to read and/or execute the instructions (i.e., steps).

Furthermore, the depicted embodiment of the OBC22further includes an output interface46, a user interface48, a network interface50, and a feedback interface52. Specifically, the user interface48may be configured to enable a user to communicate with the OBC22. For example, as depicted inFIG.4, the user interface48may include a graphical-user-interface (GUI)54configured to display metrics of the OBC22, such as the control trajectory26determined. In addition, the user interface48may include buttons56, which enable the user to input commands to the OBC22. Similar to the user interface48, the network interface50may enable a user to communicate with the OBC22over a network58, such as a wide-area-network (WAN). In some embodiments, the network58may be a EtherNet/IP Network or a ControlNet Network, available from Rockwell Automation, of Milwaukee, Wis. More specifically, as depicted inFIG.4, the network interface50may be communicatively coupled to the network58via a communication module60. Alternatively, the network interface50may be communicatively coupled directly the network58through the backplane of the OBC22. Furthermore, as depicted, the network58may be communicatively coupled to a remote monitoring/control system62, such as a supervisory control and data acquisition (SCADA), to enable the user to remotely communicate with the OBC22. Accordingly, as depicted inFIG.2, both the user interface48and the network interface50are communicatively coupled to the processing circuitry34to enable user commands to be communicated to the processing circuitry34and information concerning the OBC22to be communicated to the user. Note that each module in memory circuitry36may be configured such that it can respond as a server responding to the queries from various interfaces. For example, the model module28can be queried by the user interface to report its fidelity. In addition the model module28may be called by solver code module30to determine the optimal control trajectory.

Turning back toFIG.2, as described above, the OBC22may be configured to determine stabilizing feasible control trajectories for the control system10based on feedback from the plant/process12. As such, the feedback interface52may be configured to receive feedback, such as the previous output variables18, the desired output trajectory23, the desired control trajectory24, or any combination thereof, and communicate it to the processing circuitry34. For example, the feedback interface52may be a serial port located on the backplane of the OBC22, which enables the OBC22to receive samples from sensors in the control system10. After the processing circuitry34determines a control trajectory26, the control trajectory26is communicated to the output interface46. As will be described in more detail below, the processing circuitry34may utilize various search functions (e.g., QP solvers) and stabilization functions to determine the control trajectory26. Thus, the output interface46may be configured to transmit the control trajectory26to the plant/process12. Similar to the feedback interface52, the output interface46may be a serial port located on the backplane of the OBC22to enable the output interface to communicate with a controller controlling inputs into the plant/process12. It should be appreciated that as described above, the controller may be the same processing component, a different core of a processor, or a different processor module.

As described above, the processing circuitry34may utilize various solver methods (i.e., algorithms) to facilitate determining a control trajectory26(i.e., dynamic optimization). Examples of such solver methods are depicted inFIGS.5A-5C. Included in each figure, as depicted, is a feasible region64and an infeasible region66. More specifically, the feasible region64is all of the solutions or control trajectories26that do not violate the constraints of the control system10. On the other hand, the solutions or control trajectories in the infeasible region66violate the constraints of the control system10and are infeasible. As depicted, constraints are depicted as constraint lines68, which separate the feasible region64and the infeasible region66. As described above, the constraints may be the result of actuator limits, technological restrictions, economical restrictions, and/or safety restrictions.

Specifically,FIGS.5A and5Bdepict feasible search methods (i.e., algorithms) andFIG.5Cdepicts an infeasible search method (i.e., algorithms). However, it should be appreciated that the figures are not meant to depict any particular search method or algorithm and are merely illustrative. As depicted in bothFIG.5AandFIG.5B, the feasible search method begins from a feasible point70within the feasible region64. From the starting feasible point70, the feasible search method moves around the feasible region64searching for the optimum solution (i.e., control trajectory)72during the control time. In some cases, as shown inFIG.5A, an optimum control trajectory72is found. In others, as shown inFIG.5B, a suboptimal but still feasible control trajectory74is found. An example of a feasible search method is a primal active set solver method (i.e., algorithm). Comparatively, as depicted inFIG.5C, the infeasible search method begins from an infeasible point76within the infeasible region66. From the starting infeasible point76, the infeasible search method determines infeasible solutions until it converges on the optimum solution (i.e., control trajectory)72. An example of an infeasible search method is a dual active set solver method. Accordingly, it should be appreciated that, if terminated before the optimum control trajectory72is found, the feasible search method will produce a feasible control trajectory, but the infeasible search method may produce an infeasible control trajectory.

In addition, as described above, the dynamic optimization (e.g., feasible search method or infeasible search method) may be run asynchronously from the rest of the control system10. Thus, if a less than optimum control trajectory is found during the control time, the optimization may continue into the following control times, which gives the OBC22more time for complex optimization calculations. Furthermore, when the optimum control trajectory72is found, it may be time shifted, padded, and included in future optimization calculations.

Furthermore, is some cases, the infeasible search method may converge on an optimum solution (i.e., control trajectory) faster than the feasible search method; however, as noted above, the infeasible search may produce an infeasible solution if terminated prematurely. Accordingly, to utilize the strengths of both the feasible search method and the infeasible search method, as depicted inFIG.6, a sequential deterministic optimization based control (OBC) process (i.e., algorithm)78may be implemented on the OBC22. Specifically, this may include dividing the maximum execution time (i.e., control time) between the infeasible search method and the feasible search method and running them sequentially. Beginning the process78, user-defined setpoints80and/or feasible targets (i.e., infeasible setpoints mapped into feasible region)82may be input into an initial (i.e., upstream) processing, which may be configured to determine a starting point and constraints (i.e., active set) for the following search methods (process block84). For example, this may include using a warm start based on a previous solution. Based on the starting point and constraints, the infeasible search method may run (process block86). More specifically, the infeasible search method86may run for a period of time shorter than the maximum execution time (i.e., control time). If the infeasible search method86finds the optimum solution, the process78may cease. If on the other hand, during its allotted time, the infeasible search78has found an infeasible solution, a projection operation occurs to project the infeasible solution into the feasible region64(process block88). In some embodiments, this may involve finding the point in the feasible region64closest to the infeasible solution. Another example projection operation88may be seen in the Detailed Example section.

Because in some embodiments the infeasible search86and the projection operation88may find a suboptimal solution (i.e., control trajectory74) during the allotted execution time, a stabilization process90may be useful, however optional, to stabilize the control system10. In other words, the stabilization process90may be configured to reduce the risk that the cost of the control system10will increase because of the suboptimal control trajectory74. As depicted inFIG.7, the stabilization process90may begin by computing a feasible solution or control trajectory (process block92). In relation toFIG.6, the feasible solution is the projection of the infeasible solution into the feasible region64.

To stabilize the control system10, the feasible solution determined in process block92(i.e., first stabilizing control trajectory) may be compared to a previous solution (i.e., second stabilizing control trajectory) determined in process block94. More specifically, the previous solution is advanced, which may include shifting and padding, to the next control time (process block96). As an example,FIG.8Adepicts a control trajectory98with a control horizon of six (i.e., six time steps) determined at time i. As described above, the control trajectory98represents a setting of a manipulated variable, such as the percent a valve is open. Accordingly, based on the control trajectory98, the control system10will take a first action100for the control time between time i and time i+1. At time i+1, the first action100has been performed. Thus, as depicted inFIG.8B, the remaining control trajectory98(i.e., trajectory between time i+1 and time i+6) is time shifted to form a previous solution102. In addition, because the control horizon for the time shifted control trajectory is five (i.e., five time steps), the previous solution is102is padded with an additional control system action104. In some embodiments, this may include repeating the last control system action106. Furthermore,FIG.8Bdepicts a newly calculated solution108, such as by process block88, represented by the dashed line. Accordingly, the previous solution102may be compared to the newly calculated solution108.

Turning back toFIG.7, after the previous solution102and the newly calculated solution108are adjusted to the same control horizon, one characteristic to be compared may be the cost of each. Accordingly, based on the objective (i.e. cost) function, the cost for the newly calculated solution108(process block110) and the cost of the previous solution92may be calculated (process block112). Next, the cost of the new solution110is compared with the cost of the previous solution102(process block114). Finally, the solution (i.e., control trajectory) with the lowest cost may be selected (process block116).

Turning back toFIG.6, the feasible search method may be initialized with either the projected solution determined in process block88or the stabilized solution determined in process block90(process block118). Initializing the feasible search88with results from the infeasible search86may enhance the efficiency of the feasible search88. For example, this may include initializing the feasible search88with a better initial point, initial active set (i.e., set of constraints), and/or matrix factorizations. Furthermore, as will described in more detail in the Detailed Example section, the searches (i.e.,88and86) may be implemented to use the same matrix factorization, which results in a seamless transition between the two. Finally, based on the control trajectory determined by the feasible search88, the manipulated variables20may be input into the plant/process12to be controlled (process block120).

FIGS.9and10depict different embodiments of OBCs22utilizing the sequential deterministic optimization based process control78. Furthermore, as depicted, both embodiments utilize a dual active set solver method122as the infeasible search method and a primal active set solver method124as the feasible search method. As there may be several implementations for each solver method (i.e.,122and124), different implementations pairing (i.e., an implementation of dual active search122paired with an implementation of primal active set solver124) can be found in the Detailed Example section.

As described inFIG.6, process78begins with initial processing84. In the embodiment depicted inFIG.9, the initial processing84may include initializing the dual active set solver (process block126). As depicted, initializing the dual active set solver may optionally utilize a warm start128. Specifically, the warm start128may guess an optimal active set (i.e., set of constraints)130based on a previous solution132. Accordingly, the warm start may be useful when the dynamic optimization problem is similar in subsequent control times. If a warm start is not utilized, the initial active set is empty. Based on the initial active set, a dual feasible point and active set134may be determined. If a warm start128is used, constraints corresponding to dual variables (i.e., Lagrange multipliers) with the wrong (i.e., negative) sign in the guessed optimal active set130may be removed until all dual variable have correct (i.e., nonnegative) sign. A further description of the dual variables may be seen in the Detailed Example section. Alternatively, if the warm start128is not used, the dual feasible point may be the unconstrained solution of the optimization problem.

Next, as described inFIG.6, the dual feasible point and active set134are used to initialize the dual active set solver method122, and if the dual active set solver method122finds the optimum solution in its allotted time, the process78terminates. If the allotted time has expired, the projection processing88projects the infeasible solution into the feasible region64. In the depicted embodiment, the projection processing produces a primal feasible point and active set136.

The primal active set solver method124may then be initialized through various manners. For example, the primal active set solver method124may use the result of the projection processing136, adjust the result of the projection processing136by adding selected constraints that become active after the projection operation136, or adjust the result of the projection processing136by adding selected constraints that become active after the projection operation136and by adding artificial constraints to satisfy a constrained sub-problem. Finally, the primal active set solver method124may use the remaining time to search for an optimum solution (i.e., control trajectory).

In addition to the functions included inFIG.9,FIG.10further includes the stabilization process90, which may be useful for optimization problems with simple bound constraints. Specially, for this type of well-structured constraints, the projection operation can be efficiently calculated, for example by a clipping operation.

Furthermore, as described above, the OBC22may be run on multiple components (i.e.,38and40), which enables multiple processes to be run asynchronously. Accordingly, as depicted inFIG.11, the OBC22may utilize multiple optimization searches in parallel, which as should be appreciate may increase the probability of finding the optimum solution (i.e. control trajectory). Specifically,FIG.11depicts a parallel deterministic optimization based control (OBC) process138including the sequential deterministic optimization based control (OBC) process78. As depicted, the sequential deterministic optimization based control (OBC) process78is in parallel with another optimization search (i.e., solver)140, which may be any optimization solver method (i.e., algorithm). It may be useful to parallel process78with another infeasible search86that is allotted a longer maximum execution time because, as described above, process78will return a feasible solution. Alternatively, process78may be paralleled with another feasible search88so that the feasible search may serve as a backup to process78while additionally searching for the optimum solution (i.e., control trajectory).

After process78and optimization search140have terminated, the results may be compared. For example, as depicted, the cost of process78(process block142) and the cost of the parallel optimization search140(process block144) may be calculated based on the objective (i.e., cost) function. These costs may be compared (process block146) and the lower cost may be selected (process block148). Finally, based on the control trajectory selected, the manipulated variables20input into the plant/process12may be controlled (process block120).

In addition, it should be appreciated that the optimization searches (i.e.,78and140) may be run synchronously or asynchronously. For example, process78and parallel optimization search140may be called substantially simultaneously. Alternatively, one (i.e.,78or140) may be called and allowed to run on a processing component (e.g.,38or40) while the control system10continues with its normal functioning, which provides the search method (i.e.,78or140) with a longer search time. Then, the other (i.e.,78or140) may be called subsequently.

DETAILED EXAMPLE

Below is a detailed example to help illustrate the techniques taught herein. First, as described above, the efficiency of the OBC22may be increased by simplifying the dynamic optimization calculation. In some embodiments, this may include simplifying the model28. Generally, the model28may be expressed as a standard formula.
y=AuΔu+yfree(1)
where

Δu=[(Δu1)T, (Δu2)T, . . . , (Δunu)T]T—future changes of all inputs arranged in a vector

nu—number of inputs

ny—number of outputs

N=nc—number of control moves

Specifically, the standard formula (equation 1) reflects the superposition principle: the total future response (i.e., output trajectory) is a sum of responses to future inputs and responses to past inputs, disturbances, and initial conditions (i.e., yfree). The response yfreemay be updated at each sample time according to particular model structure. Accordingly, the predicted output trajectory of the j-th output may be expressed similar to equation 1.
yj=AujΔu+yjfree(2)
where

Furthermore, the following equation represents the changes of inputs (i.e., incremental inputs).
Δu(k)=u(k)−u(k−1)  (3)
In addition, the following represent the absolute inputs.
un=[un(t),un(t+1), . . . ,un(t+nc−1)]T—future trajectory of n-th input
u=[(u1)T,(u2)T, . . . ,(unu)]T—all future input trajectories arranged in a vector  (4)

Thus, to help simplify the above equations, relative inputs may be used instead of incremental inputs. Specifically, the constraints may be simplified and the Hessian matrix may be better conditioned. As used herein urrepresents the relative input and is defined as difference from current value of input. Accordingly, urmay be expressed as follows.
uri(k)=ui(k)−u0i(5)
where

uri—i-th relative input

u0i=ui(t−1)—current value of the i-th input

Based on the definition of un, equation (5) may alternatively expressed as follows.
uri=ui−1u0i, 1T=[1,1, . . . 1]T(6)

Thus, the linear transformation between the relative input (ur) and the incremental input (Δu) is as follows.

In addition to simplifying the model28, cost function (i.e., objection function) may also be simplified to enhance the efficiency of the OBC22. Generally, a quadratic objective function may be expressed as follows.

Using standard algebraic manipulation the objective function can be transformed to the following quadratic form.
Jy(Δu)=½ΔuTGyΔu+fyTΔu+C(10)
where Gyis Hessian, fyis a linear term and C is constant term that can be omitted for optimization. We assume that Bnmatrices are positive definite and so Gyis also positive definite.

In some cases, controlled variable (i.e., output) may lie within a specific range (i.e., between yminand ymax). This formulation may lead to more robust and less aggressive control actions but may also results in a more complex optimization calculation. However, if the optimization calculation has hard constraints on outputs, then an infeasible control trajectory may be found. Accordingly, soft constraints with slack variables may be used. However, in order to not to dramatically increase number of decision variables or number of complex constraints, the optimization calculation may be simplified by only adding one additional variable with simple bounds per constrained output. This additional variable may be interpreted as an optimized target that must lie within the specific output range (i.e., between yminand ymax). For example, output target trajectory) ytmay be defined by an additional decision variable z and the constrained outputs may be defined by nzwith indices k1. . . knz. Accordingly, objective function and constraints may be defined as follows.

Accordingly, taking advantage of that fact that feasible search method more efficiently hand simple bound constraints as compared to complex constraints150(e.g., a rate of change constraint), depicted inFIG.12A, the simple bound constraints152may be configured to act as a funnel as depicted inFIG.12B. Thus, the simple bounds may be expressed as follows.

n=1⁢…⁢nu:umaxrn(i)=min⁡(umax(n)-u0(n),i·Δ⁢umax(n)),i=1⁢…⁢nc⁢uminrn(i)=max⁡(umin(n)-u0(n),-i·Δ⁢umin(n))_⁢umaxrn=[umaxrn(1),…,umaxrn(nC)]T,umaxr=[(umaxr⁢1)T,…,(umaxrnu)T]T⁢uminrn=[umaxrn(1),…,umaxrn(nC)]T,uminr=[(uminr⁢1)T,…,(uminrnu)T]T(16)
Thus, the optimization calculation may be expressed as follows.

n—number of decision variables (length of x)

N—number of control moves (blocks) per control input

Further efficiency enhancements may be made to the various search method. For example, rotations may be used to simplify an active set (i.e., constraints) matrix A. Specifically, factorization may be used to rotate the active set matrix when a constraint is added or deleted from active set. The described stable implementation is based on a modified Cholesky factorization of the Hessian matrix G where U is an upper triangular matrix.
G=UUT(19)
Thus, the modified Cholesky factorization may be computed using a standard Cholesky factorization and a permutation matrix P as follows.

As described in equation (20) the Hessian matrix is first permuted. Then the standard Cholesky factorization is calculated. Finally, the triangular matrix is permuted to get matrix U. Accordingly the following factorization of the matrix U−1N+, where T+is an upper triangular matrix, may be used.

(M+)T⁢U1⁢N+=[T+0]⁢(M+)T⁢M+=D-1⁢D=diag(d1,d2,..dn)=[D100D2]⁢}q}n-q(21)
Furthermore, the J+matrix may be calculated by the following equation.

J+=U-T⁢M+=[L-T⁢M1+⁢L-T⁢M2+]=[J1+︸q⁢J2+︸n-q](22)
The described factorization has advantage of upper triangularity of matrix U−1. Thus when N+is composed of an initial part of an identity matrix the factorization is readily available.

As described above, plane rotations may be performed when a constraint is added or removed from the active set. For example, constraint p may be removed from the active set because the corresponding dual variable upis negative. Furthermore, the following matrix structure is assumed.
N+=[N1npN2], N=[N1N2],  (23)
Matrix N+may first be reordered so that normal npis moved to the last column as follows.
Nr+=[N1N2np]  (24)
Thus, the triangularity of the matrix T+may be affected as follows.

In order to restore its upper triangularity, a set of plane rotations Q may be applied to upper Hessenberg sub-matrix [V tp2] where γ is scalar.

Q[V⁢tp⁢2]=[T2d10J1],Tr+=[I00Q]⁢TH+=[T1Sd10T200γ]=[Td10γ],d=[d1γ](26)
To nullify elements under the main diagonal, the rotations may be applied to matrix rows in the following order: (1,2), (2,3), . . . (q−p, q−p+1). The same set of plane rotations Q may be applied to corresponding columns (p,p+1), . . . (q−1,q) of matrix J+as follows.

On the other hand, constraints may be added to the active set when. For example, constraint nkmay be added to active set as follows.
A2=AU{k}, N2=[Nnk], A+=A2U{p}, N+=[N2np]  (28)

To update the matrix Tr+, the last column d is shifted to the right and a new column h is put in its place as follows.

Similar to removing a constraint, for the new active set, a sequence of rotations Q may be applied to restore the triangularity. Based on the structure of the Tr+, it may be sufficient to nullify all but the first element of the vector h2. Specifically, the rotations to be applied in the planes (n−q, n−q−1), (n−q−1, n−q−2), . . . (2, 1) as follows.

h2=[xxxx]→[xxy0]→[xz00]→[α000]=h2¯⁢d2=[x000]→[x000]→[x000]→[ab00]=d2¯(30)
After these rotations are applied to Tr+, the resulting triangular matrix is denoted as T+. If fast rotations are applied then also corresponding diagonal elements of matrix D are updated. The same set of rotations may be applied to the columns of matrix J+as follows.

After the above operations, the number of active constraints and notation of matrices may be updated as follows.

In a dual active set solver method, when constraint n+is violated, the step direction may be calculated as follows.

JT⁢n+=[J1TJ2T]⁢n+=[d1d2]=d⁢z=H⁢n+=J2⁢D2⁢d2⁢r=-T-1⁢d1(33)
As used herein the primal space is represented by z and the dual space is represented by r. And, when the constraint n+is selected to be deleted from the active set, step direction may be calculated as follows.
z=−Hn+=−J2D2d2
r=T−1d1(34)

As described in the Detailed Description section, the dual active set solver122and the primal active set solver124search methods may be implemented through various implementations. More specifically, each implementation of the solver methods (i.e.,122and124) may be based on a method of matrix factorization. For example, the techniques described herein may be based on the Goldfarb method of matrix factorization. Alternatively, other implementations of the search methods may be used; however, to improve the transition between the dual active set solver122and the primal active set solver124, it may be beneficial to utilize implementations that are based on the same matrix factorization method. Thus, the matrix factorization function may be shared by the solver methods (i.e.,122and124) and the transition may be seamless. Other matrix factorization pairings that facilitate these benefits are as follows:

Finally, as described above in the Detailed Description Section, various embodiments of the projection operation136may be used. For example, when constraints are simple, sparse or well-structured the projection operation136may be efficiently calculated. In particular, the projection operation (PROJ)136described below may be used on the following simple constraints.
i=0 . . .nc−1:
umin(n)≤un(t+i)≤umax(n)—simple bounds
Δumin(n)≤Δun(t+i)≤Δumax(n)—rate of change constraints  (35)
Hard constraints may be imposed by clipping as follows.

Once a feasible point is obtained, the corresponding initial active set may be calculated. Furthermore, to exploit the final matrix factorizations of infeasible search86, the initial active set of the feasible solver88may be equal to the final active set of infeasible search86. After the projection operation136, some of the constraints may no longer be active and vice versa. If a constraint is no longer active, then it may be designated as artificial. During the course of the run of the optimization calculation, artificial active constraints may be deleted preferentially. If a constraint becomes active after the projection operation, it is not added to the initial active set of the feasible solver88, but may be added during the execution of the feasible solver88.

Generally, the above techniques enable deterministic optimization control to be used with plants/process12with fast dynamics. More specifically, the OBC22is configured to advantageous utilize the characteristics of feasible and infeasible search methods to provide a feasible control trajectory during each control time, which in some embodiments includes using the infeasible search method and the feasible search method sequentially. In other words, the control time may be divided between the two search methods.